diff --git a/.github/workflows/unit_tests.yml b/.github/workflows/unit_tests.yml index d71a03ca5b9..d36d0a6398e 100644 --- a/.github/workflows/unit_tests.yml +++ b/.github/workflows/unit_tests.yml @@ -13,10 +13,10 @@ jobs: runs-on: ubuntu-20.04 strategy: matrix: - python: [2.7, 3.6] + python: [3.6] modules_tool: [Lmod-7.8.22, Lmod-8.6.8] module_syntax: [Lua, Tcl] - # exclude some configurations: only test Tcl module syntax with Lmod 8.x and Python 2.7 & 3.6 + # exclude some configurations: only test Tcl module syntax with Lmod 8.x and Python 3.6 exclude: - modules_tool: Lmod-7.8.22 module_syntax: Tcl @@ -34,7 +34,7 @@ jobs: key: eb-sourcepath - name: set up Python - uses: actions/setup-python@v2 + uses: actions/setup-python@v4 with: python-version: ${{matrix.python}} architecture: x64 @@ -159,12 +159,12 @@ jobs: runs-on: ubuntu-20.04 strategy: matrix: - python: [2.7, 3.6, 3.7] + python: [3.6] steps: - uses: actions/checkout@v2 - name: set up Python - uses: actions/setup-python@v1 + uses: actions/setup-python@v4 with: python-version: ${{matrix.python}} diff --git a/RELEASE_NOTES b/RELEASE_NOTES index 26d8721fa48..f3ce7640d11 100644 --- a/RELEASE_NOTES +++ b/RELEASE_NOTES @@ -3,10 +3,95 @@ 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 17,098 easyconfig files, for 3,085 different software packages, +The latest version of easybuild-easyconfig provides 17,511 easyconfig files, for 3,161 different software packages, incl. 39 different (compiler) toolchains. +v4.8.0 (7 Jul 2023) +-------------------- + +feature release + +- added easyconfigs for foss/2023a (#18264) and intel/2023a (#18275) common toolchains +- added example easyconfig files for 76 new software packages: + - 3d-dna (#9258), affinity (#18051), AIMAll (#13153), alleleIntegrator (#17923), AlphaPulldown (#17774), + ASCAT (#17923), ASF-SearchAPI (#18179), ATAT (#18213), AutoDockSuite (#9678), axel (#10961), BayesPrism (#17885), + BGC-Bayesian-genomic-clines (#18005), CalculiX-CrunchiX (#16805), CASA (#18055), cctbx-base (#17774), + Circuitscape (#16720), CppHeaderParser (#18272), CuCLARK (#9482), cuteSV (#18077), DALI (#18204), DaliLite (#17989), + DEICODE (#18181), dm-haiku (#18013), dominate (#18086), dx-toolkit (#18232), easel (#18156), ecFlow (#15719), + EDirect (#17479), FragPipe (#18161), GEM (#18120), gemelli (#18120), GLIMPSE (#18163), GRIDSS (#18170), + HOOMD-blue (#18224), KerasTuner (#18197), LayoutParser (#18220), LISFLOOD-FP (#18194), LuaRocks (#18073), + mannkendall (#18043), MOB-suite (#16798), molecularGSM (#13150), MONAI-Label (#18180), MView (#18198), + NanoStat (#18201), oxDNA (#18175 + #18214), pastml (#15336), pbipa (#18229), Perl-bundle-CPAN (#17970), PheWeb (#10951), + plinkliftover (#18136), pmt (#18052), PyBioLib (#18124), Pychopper (#10344), pydicom-seg (#18180), + pyMannKendall (#18044), pypmt (#18045), python-mujoco (#18253), pytorch-CycleGAN-pix2pix (#18086), + PyTorch-Image-Models (#18220), PyWBGT (#17980), Safetensors (#18220), Sniffles (#18048), strace (#14381), + Structure_threader (#18219), subset-bam (#18032), SVclone (#18084), SVIM (#18071), Tapenade (#18109), + TensorFlow-Graphics (#17465), timm (#17787), Trinotate (#18124), Ultralytics (#17894), visdom (#18086), + wrapt (#18125), xclip (#17055), xdotool (#17055) +- added additional easyconfigs for various supported software packages, including: + - AGAT 1.1.0, alleleCount 4.2.1, AMS 2023.101, ANSYS 2023R1, BayesTraits 3.0.2, Bismark 0.24.1, BLAST+ 2.14.0, + boto3 1.26.163, Bowtie2 2.5.1, BUSCO 5.4.7, Cellpose 2.2.2, CHERAB 1.4.0, CmdStanR 0.5.2, CNVkit 0.9.10, + corner 2.2.2, CUDA 12.1.1 + 12.2.0, cuDNN 8.9.2.26, cutadapt 4.4, cuTENSOR 1.7.0.1, CVXOPT 1.3.1, Dalton 2020.1, + datamash 1.8, deepTools 3.5.2, DIAMOND 2.1.8, DMTCP 3.0.0, dorado 0.3.0 + 0.3.1, dtcmp 1.1.4, duplex-tools 0.3.3, + elastix 5.0.0, Emacs 28.2, emcee 3.1.4, Extrae 4.0.4, fastp 0.23.4, FlexiBLAS 3.3.1, fontconfig 2.14.2, + FreeSurfer 7.4.0, freetype 2.13.0, GATK 4.4.0.0, GBprocesS 4.0.0.post1, GCC 11.4.0, GCTA 1.94.1, GDRCopy 2.3.1, + Geant4 11.1.2, Geant4-data 11.1, GetOrganelle 1.7.7.0, git 2.41.0, GMAP-GSNAP 2023-04-20, GROMACS 2023.1, + hifiasm 0.19.5, Horovod 0.25.0, hwloc 2.9.1, InterProScan 5.62, IQ-TREE 2.2.2.3, ITSTool 2.0.7, JAGS 4.3.2, + Julia 1.9.0, libfabric 1.18.0, libheif 1.16.2, libjxl 0.8.1, LibLZF 3.6, LMfit 1.2.1, LSD2 2.4.1, LuaJIT 2.1.0, + lwgrp 1.0.5, MAGeCK 0.5.9.5, MATLAB 2023a, MaxQuant 2.4.2.0.eb, MCR R2022a.5, meshio 5.3.4, Meson 1.1.1, + minimap2 2.26, MMseqs2 14-7e284, mpifileutils 0.11.1, MuJoCo 2.2.2, nanomath 1.3.0, ncbi-vdb 3.0.5, NCCL 2.18.3, + Nextflow 23.04.2, ngspice 39, ont-fast5-api 4.1.1, OpenBLAS 0.3.23, OpenMPI 4.1.5, openpyxl 3.1.2, + OSU-Micro-Benchmarks 7.1-1, parasail 2.6.2, Paraver 4.11.1, ParaView 5.11.1, patchelf 0.18.0, Perl 5.36.1, + PMIx 4.2.4, POT 0.9.0, PSI4 1.7, psutil 5.9.4, psycopg2 2.9.6, PyCalib 20230531, pycocotools 2.0.6, + pyfaidx 0.7.2.1, pyiron 0.3.0, PyQtGraph 0.13.3, Pysam 0.21.0, pySCENIC 0.12.1, pyspoa 0.0.9, Python 3.11.3, + python-parasail 1.3.4, PyTorch 1.13.1, rasterio 1.3.8, regionmask 0.10.0, Ruby 3.2.2, Rust 1.70.0, ScaFaCoS 1.0.4, + seqtk 1.4, SRA-Toolkit 3.0.5, statsmodels 0.14.0, strace 5.14, Subversion 1.14.2, SUNDIALS 6.5.1, tidymodels 1.1.0, + tokenizers 0.13.3, torchaudio 0.12.0, TransDecoder 5.5.0, Transformers 4.29.2 + 4.30.2, UCC 1.2.0, UCC-CUDA 1.2.0, + UCX 1.14.1, UCX-CUDA 1.14.1, util-linux 2.39, VASP 6.3.2, VTK 9.2.6, WhatsHap 1.7, X11 20230603, xarray 2023.4.2, + XlsxWriter 3.1.2, XML-LibXML 2.0208, xorg-macros 1.20.0, zlib-ng 2.0.7 +- minor enhancements, including: + - add CI check for -DCMAKE_BUILD_TYPE, should use build_type instead (#14008) + - enhance sanity check for recent LibTIFF easyconfigs (#17975) + - update JupyterLab v3.5.0 to set `$JUPYTERLAB_SETTINGS_DIR` and `$JUPYTERLAB_WORKSPACES_DIR` on loading of module (#17982) + - use custom easyblock for Rust 1.65.0 (#18174) and Rust 1.70.0 (#18167) + - update easyconfig for Nextflow 23.04.2 to use `install_cmds` (#18173) + - add extra packages to recent R easyconfigs (#18029, #18063, #18122, #18195, #18245) + - add extra packages to recent R-bundle-Bioconductor easyconfigs (#18196, #18246) +- various bug fixes, including: + - add patches to fix TensorFlow 2.7.1 on POWER (#16795) + - fix patches + extensions in easyconfig for TensorFlow 2.8.4 w/ foss/2021b (#17058) + - stick to FFmpeg 4.4.2 as dependency for SoX 14.4.2 (#17998) + - add pkgconfig as build dependency for nodejs , required for finding ICU dependency (#18007) + - fix exec permissions for all binaries & scripts of L_RNA_scaffolder 20190530 (#18030) + - update SUNDIALS dependency for Cantera v2.6.0 to v6.5.1 + add missing dependencies (#18041) + - fix --sanity-check-only for MAGeCK v0.5.9.4 (#18047) + - enable building static libs and check for libexslt.* in libxslt (#18064) + - add -pthread flag for dorado (#18072) + - add missing patch files for Qt5 5.15.2 to fix build problems with glibc 2.34 (#18087) + - add missing pkgconf build dependency for XML-LibXML v2.0208 (#18159) + - update homepage for NWChem 7.x (#18184) + - update homepage for SUNDIALS 5.x and 6.x (#18186) + - add missing source_urls for SimpleITK (#18212) + - use patch files for Qt5 v5.17.7 to fix compatiblity with glibc 2.34 (#18230) + - fix incorrect version for GMAP-GSNAP 2021-12-17 (was 2021-21-17) (#18231) + - fix CUDA build of recent TensorFlow easyconfigs when using compiler symlinks (#18235) + - use patch to make ncbi-vdb 2.11.2 compatible with HDF5 1.12.2 (#18236) + - update source_urls for Velvet 1.2.10 (#18237) + - use upstream patch for symbol compatibility in XZ 5.2.5 (#18250) + - update source url for pkgconf (#18271) +- other changes: + - stop running easyconfig unit tests with Python 2.7 (#18006) + - fix toolchain for networkx-3.0 (foss/2022b -> gfbf/2022b) (#18061) + - remove unused PyTorch patch (#18062) + - allow multiple dependency variants of ncbi-vdb for SRA-TOolkit per easyconfigs generation, as long as versions match (#18098) + - bump OpenSSL 1.1 wrapper fallback to 1.1.1u (#18188) + - remove default `separate_build_dir = True` and `build_type = 'Release'` from double-conversion (#18222) + - remove default `separate_build_dir = True` and `CMAKE_BUILD_TYPE=Release` from MariaDB (#18223) + - remove incorrect '-Dgallium-drivers=swrast' configure option in ROOT easyconfigs (#18260) + - change base compiler for intel/2023.03 to GCCcore/12.3.0 (required to use it as intel/2023a) (#18263) + + v4.7.2 (27 May 2023) -------------------- @@ -99,6 +184,7 @@ update/bugfix release - bump versions in Java wrappers to latest builds that include ppc64le: Java/8.362, Java/11.0.8, Java/17.0.6 (#17775) - move Arb and polymake to gfbf/foss since FLINT is now at gfbf/foss (#17869) + v4.7.1 (March 20th 2023) ------------------------ diff --git a/easybuild/easyconfigs/0/3d-dna/3d-dna-180922-GCCcore-8.2.0-Python-2.7.15.eb b/easybuild/easyconfigs/0/3d-dna/3d-dna-180922-GCCcore-8.2.0-Python-2.7.15.eb new file mode 100644 index 00000000000..5dec8adc921 --- /dev/null +++ b/easybuild/easyconfigs/0/3d-dna/3d-dna-180922-GCCcore-8.2.0-Python-2.7.15.eb @@ -0,0 +1,35 @@ +easyblock = 'Tarball' + +name = '3d-dna' +version = '180922' +versionsuffix = '-Python-%(pyver)s' +local_githash = '529ccf46599825b3047e58a69091d599e9858a19' + +homepage = 'https://github.com/theaidenlab/3d-dna' +description = """3D de novo assembly (3D DNA) pipeline""" + +toolchain = {'name': 'GCCcore', 'version': '8.2.0'} + +source_urls = ['https://github.com/theaidenlab/%(name)s/archive'] +sources = [{'download_filename': '%s.zip' % local_githash, 'filename': SOURCE_ZIP}] +checksums = ['348c3e019ea29e47382eb2d85228a56bc11b316c130afabae016ad8e7d7640ca'] + +dependencies = [ + ('Python', '2.7.15'), + ('LASTZ', '1.02.00'), + ('Java', '1.8', '', SYSTEM), + ('parallel', '20190622'), +] + +postinstallcmds = ['chmod 755 %(installdir)s/*.sh'] + +sanity_check_paths = { + 'files': ['run-asm-pipeline.sh', 'run-asm-pipeline-post-review.sh'], + 'dirs': [], +} + +sanity_check_commands = ["run-asm-pipeline.sh --help"] + +modextrapaths = {'PATH': ''} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/a/ABINIT/ABINIT-9.2.1-foss-2019b.eb b/easybuild/easyconfigs/a/ABINIT/ABINIT-9.2.1-foss-2019b.eb new file mode 100644 index 00000000000..e5246fc8c99 --- /dev/null +++ b/easybuild/easyconfigs/a/ABINIT/ABINIT-9.2.1-foss-2019b.eb @@ -0,0 +1,59 @@ +# +easyblock = 'ConfigureMake' + +name = 'ABINIT' +version = '9.2.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': 'foss', 'version': '2019b'} +toolchainopts = {'usempi': True, 'pic': True} + +source_urls = ['https://www.abinit.org/sites/default/files/packages/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['4aa2deaeec385ff1624669a59768e1a6655f6367f8f109e69944244e000142a0'] + +builddependencies = [ + ('Python', '3.7.4'), +] +dependencies = [ + ('libxc', '4.3.4'), + ('netCDF', '4.7.1'), + ('netCDF-Fortran', '4.5.2'), + ('HDF5', '1.10.5'), +] + +# Ensure MPI. +configopts = '--with-mpi="yes" --enable-openmp="no" ' + +# BLAS/Lapack +configopts += '--with-linalg-flavor="openblas" LINALG_LIBS="-L${EBROOTOPENBLAS}/lib -lopenblas" ' + +# FFTW3 support +configopts += '--with-fft-flavor=fftw3 FFTW3_LIBS="-L${EBROOTFFTW} -lfftw3f -lfftw3" ' + +# libxc support +configopts += '--with-libxc=${EBROOTLIBXC} ' + +# hdf5/netcdf4 support +configopts += '--with-netcdf="${EBROOTNETCDF}" ' +configopts += '--with-netcdf-fortran="${EBROOTNETCDFMINFORTRAN}" ' +configopts += '--with-hdf5="${EBROOTHDF5}" ' + +# make sure --free-line-length-none is added to FCFLAGS +configopts += 'FCFLAGS="${FCFLAGS} --free-line-length-none" ' + +# `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.2.1-intel-2019b.eb b/easybuild/easyconfigs/a/ABINIT/ABINIT-9.2.1-intel-2019b.eb new file mode 100644 index 00000000000..846d9837a95 --- /dev/null +++ b/easybuild/easyconfigs/a/ABINIT/ABINIT-9.2.1-intel-2019b.eb @@ -0,0 +1,57 @@ +# +easyblock = 'ConfigureMake' + +name = 'ABINIT' +version = '9.2.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': '2019b'} +toolchainopts = {'usempi': True, 'pic': True} + +source_urls = ['https://www.abinit.org/sites/default/files/packages/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['4aa2deaeec385ff1624669a59768e1a6655f6367f8f109e69944244e000142a0'] + +builddependencies = [ + ('Python', '3.7.4'), +] +dependencies = [ + ('libxc', '4.3.4'), + ('netCDF', '4.7.1'), + ('netCDF-Fortran', '4.5.2'), + ('HDF5', '1.10.5'), +] + +# 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}" ' + +# `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/AGAT/AGAT-1.1.0-GCC-12.2.0.eb b/easybuild/easyconfigs/a/AGAT/AGAT-1.1.0-GCC-12.2.0.eb new file mode 100644 index 00000000000..4dc0f64dff3 --- /dev/null +++ b/easybuild/easyconfigs/a/AGAT/AGAT-1.1.0-GCC-12.2.0.eb @@ -0,0 +1,69 @@ +# easybuild easyconfig +# +# John Dey Fred Hutchinson Cancer Center +# Thomas Eylenbosch - Gluo NV +# +easyblock = 'Bundle' + +name = 'AGAT' +version = '1.1.0' + +homepage = 'https://agat.readthedocs.io/en/latest/' +description = """AGAT: Another GTF/GFF Analysis Toolkit. Suite of tools to handle gene annotations + in any GTF/GFF format.""" + +toolchain = {'name': 'GCC', 'version': '12.2.0'} + +builddependencies = [('binutils', '2.39')] + +dependencies = [ + ('Perl', '5.36.0'), + ('BioPerl', '1.7.8'), +] + +exts_defaultclass = 'PerlModule' +exts_filter = ("perl -e 'require %(ext_name)s'", '') + +exts_list = [ + ('Set::Object', '1.42', { + 'source_tmpl': 'Set-Object-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RU/RURBAN'], + 'checksums': ['d18c5a8a233eabbd0206cf3da5b00fcdd7b37febf12a93dcc3d1c026e6fdec45'], + }), + ('File::Share', '0.27', { + 'source_tmpl': 'File-Share-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IN/INGY'], + 'checksums': ['d6e8f4b55ebd38e0bb45e44392e3fa27dc1fde16abc5d1ff53e157e19a5755be'], + }), + ('Sort::Naturally', '1.03', { + 'source_tmpl': 'Sort-Naturally-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + 'checksums': ['eaab1c5c87575a7826089304ab1f8ffa7f18e6cd8b3937623e998e865ec1e746'], + }), + ('Class::MethodMaker', '2.24', { + 'source_tmpl': 'Class-MethodMaker-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SC/SCHWIGON/class-methodmaker'], + 'checksums': ['5eef58ccb27ebd01bcde5b14bcc553b5347a0699e5c3e921c7780c3526890328'], + }), + ('Term::ProgressBar', '2.23', { + 'source_tmpl': 'Term-ProgressBar-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MANWAR'], + 'checksums': ['defc03fb9f4ac1c9df1359d312bff3c0865ddefbf3aba64cd42a69a86215d49d'], + }), + (name, version, { + 'modulename': 'AGAT::Utilities', + 'source_urls': ['https://github.com/NBISweden/AGAT/archive/refs/tags'], + 'sources': [{'download_filename': 'v%(version)s.tar.gz', 'filename': '%(name)s-%(version)s.tar.gz'}], + 'checksums': ['38e3df0d0a3817a38e8d824e9d865926c7da6eccc83d583f890faf72e62d7002'], + }), +] + +modextrapaths = {'PERL5LIB': 'lib/perl5/site_perl/%(perlver)s/'} + +sanity_check_paths = { + 'files': [], + 'dirs': ['bin', 'lib/perl5/site_perl/%(perlver)s/%(name)s'], +} + +sanity_check_commands = ['agat_convert_bed2gff.pl --help'] +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/a/AIMAll/AIMAll-19.10.12-intel-2020b-linux_64bit.eb b/easybuild/easyconfigs/a/AIMAll/AIMAll-19.10.12-intel-2020b-linux_64bit.eb new file mode 100644 index 00000000000..1bce2a99d52 --- /dev/null +++ b/easybuild/easyconfigs/a/AIMAll/AIMAll-19.10.12-intel-2020b-linux_64bit.eb @@ -0,0 +1,39 @@ +easyblock = 'Tarball' + +name = 'AIMAll' +version = '19.10.12' +versionsuffix = '-linux_64bit' + +homepage = 'http://aim.tkgristmill.com' +description = """ +AIMAll is an easy to use, accurate, reliable and efficient quantum chemistry software package for performing +comprehensive, quantitative and visual QTAIM analyses of molecular systems - starting from molecular wavefunction +data.""" + +toolchain = {'name': 'intel', 'version': '2020b'} + +download_instructions = """Download sources from http://aim.tkgristmill.com/download/download.html (requires login). +To run in professional mode, add required license files to the main AIMAll directory.""" +sources = [ + {'filename': 'aimall_%s_linux_64bit.tar.gz' % version.replace('.', '_'), + 'extract_cmd': 'tar -xzf %s --strip-components=1'}, + # {'filename': 'license_file_b.lslicb', 'extract_cmd': 'cp %s .'}, + # {'filename': 'license_file_a.lslica', 'extract_cmd': 'cp %s .'}, +] +checksums = [ + 'bf369ec8dd829c23a954b1c405edc7d8a01034d106cabc9c332bf7c4c177a54c', # aimall_19_10_12_linux_64bit.tar.gz +] + +buildininstalldir = True +skipsteps = ['install'] + +modextrapaths = {'PATH': ''} + +sanity_check_paths = { + 'files': ['bin/%s.exe' % x for x in ['aimext', 'aimint', 'aimqb', 'aimstudio', 'aimsum', 'aimutil']], + 'dirs': [], +} + +sanity_check_commands = ['aimqb.ish -nogui -help'] + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/a/AMS/AMS-2023.101-iimpi-2022a-intelmpi.eb b/easybuild/easyconfigs/a/AMS/AMS-2023.101-iimpi-2022a-intelmpi.eb new file mode 100644 index 00000000000..9a285b8b7a4 --- /dev/null +++ b/easybuild/easyconfigs/a/AMS/AMS-2023.101-iimpi-2022a-intelmpi.eb @@ -0,0 +1,47 @@ +easyblock = 'Tarball' + +name = 'AMS' +version = '2023.101' +versionsuffix = '-intelmpi' + +homepage = 'https://www.scm.com/amsterdam-modeling-suite/' +description = """ +The Amsterdam Modeling Suite (AMS) provides a comprehensive set of modules for +computational chemistry and materials science, from quantum mechanics to fluid +thermodynamics. +""" + +toolchain = {'name': 'iimpi', 'version': '2022a'} + +sources = ['ams%(version)s.pc64_linux.intelmpi.bin.tgz'] +checksums = ['0060933e85cfe1795280cba88e5b2329cfcf83061e7e9b18321e49dd77dd4d46'] + +dependencies = [('libGLU', '9.0.2')] + +keepsymlinks = True + +sanity_check_paths = { + 'files': [], + 'dirs': ['atomicdata', 'bin', 'examples'], +} + +# check if license file is installed +# sanity_check_commands = ['dirac check'] + +modextrapaths = { + 'AMSHOME': '', + 'AMSBIN': 'bin', + 'AMSRESOURCES': 'atomicdata', +} + +modextravars = { + # use Intel MPI from EasyBuild + 'SCM_USE_LOCAL_IMPI': '1', +} + +modloadmsg = """These environment variables need to be defined before using AMS: + * $SCMLICENSE: path to AMS license file + * $SCM_TMPDIR: path to user scratch directory +""" + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/a/ANSYS/ANSYS-2023R1.eb b/easybuild/easyconfigs/a/ANSYS/ANSYS-2023R1.eb new file mode 100644 index 00000000000..1cde6ac65a3 --- /dev/null +++ b/easybuild/easyconfigs/a/ANSYS/ANSYS-2023R1.eb @@ -0,0 +1,30 @@ +name = 'ANSYS' +version = '2023R1' + +homepage = 'https://www.ansys.com' +description = """ANSYS simulation software enables organizations to confidently predict + how their products will operate in the real world. We believe that every product is + a promise of something greater. """ + +toolchain = SYSTEM + +download_instructions = 'Manually obtain (ANSYS%(version)s_LINX64_DISKX.iso) from your ANSYS vendor' +# Custom extract command is used since iso sources contain duplicate file. +sources = [ + {'filename': 'ANSYS%(version)s_LINX64_DISK1.iso', 'extract_cmd': '7z x -aos %s'}, + {'filename': 'ANSYS%(version)s_LINX64_DISK2.iso', 'extract_cmd': '7z x -aos %s'}, + {'filename': 'ANSYS%(version)s_LINX64_DISK3.iso', 'extract_cmd': '7z x -aos %s'}, +] +checksums = [ + {'ANSYS2023R1_LINX64_DISK1.iso': 'c4f5ea8616d3fe4ba129d482c00ce3429455e887dbc993421a585a6d5cb7a686'}, + {'ANSYS2023R1_LINX64_DISK2.iso': 'fceedb512f35626b6aeab8b53d76979d8eef43c6ade33032c5782b64afddcfb0'}, + {'ANSYS2023R1_LINX64_DISK3.iso': '2164453a2aae50159899177feaf8242cb269593209e1a34977534a3915636cf5'}, +] + +osdependencies = [('p7zip-plugins', 'p7zip-full')] # for extracting iso-files + +# Specify license_server and license_server_port here, or use EB_ANSYS_LICENSE_SERVER and EB_ANSYS_LICENSE_SERVER_PORT +# license_server = "ansys.lic.example.com" +# license_server_port = "1234:5678" + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/a/ASCAT/ASCAT-3.1.2-foss-2022a-R-4.2.1.eb b/easybuild/easyconfigs/a/ASCAT/ASCAT-3.1.2-foss-2022a-R-4.2.1.eb new file mode 100644 index 00000000000..41567de2406 --- /dev/null +++ b/easybuild/easyconfigs/a/ASCAT/ASCAT-3.1.2-foss-2022a-R-4.2.1.eb @@ -0,0 +1,30 @@ +easyblock = 'RPackage' + +name = 'ASCAT' +version = '3.1.2' +versionsuffix = '-R-%(rver)s' + +homepage = 'https://github.com/VanLoo-lab/ascat' +description = """ASCAT is a method to derive copy number profiles of tumor cells, + accounting for normal cell admixture and tumor aneuploidy.""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +source_urls = ['https://github.com/VanLoo-lab/ascat/archive/refs/tags/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['5d65aef417ad12ea0e638b4179def5a9b8f25e1ccd757e41a6509534fe20eb17'] + +dependencies = [ + ('R', '4.2.1'), + ('R-bundle-Bioconductor', '3.15', versionsuffix), + ('alleleCount', '4.2.1'), +] + +start_dir = '%(name)s' + +sanity_check_paths = { + 'files': [], + 'dirs': ['%(name)s'] +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/a/ASF-SearchAPI/ASF-SearchAPI-6.5.0-foss-2022a.eb b/easybuild/easyconfigs/a/ASF-SearchAPI/ASF-SearchAPI-6.5.0-foss-2022a.eb new file mode 100644 index 00000000000..0ee44c7ec65 --- /dev/null +++ b/easybuild/easyconfigs/a/ASF-SearchAPI/ASF-SearchAPI-6.5.0-foss-2022a.eb @@ -0,0 +1,47 @@ +easyblock = "PythonBundle" + +name = 'ASF-SearchAPI' +version = '6.5.0' + +homepage = 'https://docs.asf.alaska.edu/' +description = """asf_search is a Python module for performing searches of the ASF catalog. In +addition, it offers baseline functionality and download support.""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), + ('Shapely', '1.8.2'), +] + +use_pip = True + +exts_list = [ + ('remotezip', '0.12.1', { + 'checksums': ['ce65b7910c5c25d8950ed402023592967f5791ac14987141c050016ffad18dec'], + }), + ('tzdata', '2022.7', { + 'checksums': ['fe5f866eddd8b96e9fcba978f8e503c909b19ea7efda11e52e39494bad3a7bfa'], + }), + ('pytz-deprecation-shim', '0.1.0.post0', { + 'sources': ['pytz_deprecation_shim-%(version)s.tar.gz'], + 'checksums': ['af097bae1b616dde5c5744441e2ddc69e74dfdcb0c263129610d85b87445a59d'], + }), + ('tzlocal', '4.2', { + 'checksums': ['ee5842fa3a795f023514ac2d801c4a81d1743bbe642e3940143326b3a00addd7'], + }), + ('dateparser', '1.1.8', { + 'checksums': ['86b8b7517efcc558f085a142cdb7620f0921543fcabdb538c8a4c4001d8178e3'], + }), + ('tenacity', '8.2.2', { + 'checksums': ['43af037822bd0029025877f3b2d97cc4d7bb0c2991000a3d59d71517c5c969e0'], + }), + ('asf_search', version, { + 'checksums': ['fda492742fa47737c451c33590d93d226e2b1ddee51d430fe5c853f74f03e5f3'], + }), +] + +sanity_pip_check = True + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/a/ATAT/ATAT-3.36-GCCcore-9.3.0.eb b/easybuild/easyconfigs/a/ATAT/ATAT-3.36-GCCcore-9.3.0.eb new file mode 100644 index 00000000000..5b29bd248a6 --- /dev/null +++ b/easybuild/easyconfigs/a/ATAT/ATAT-3.36-GCCcore-9.3.0.eb @@ -0,0 +1,72 @@ +# Copyright (c) 2020 The Rector and Visitors of the University of Virginia +# +# Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated +# documentation files (the "Software"), to deal in the Software without restriction, including without +# limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the +# Software, and to permit persons to whom the Software is furnished to do so, subject to the following +# conditions: +# +# The above copyright notice and this permission notice shall be included in all copies or substantial portions +# of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +# TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF +# CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. +# +# Ruoshi Sun +# Research Computing, University of Virginia +# 2020-05-24 + +easyblock = 'ConfigureMake' + +name = 'ATAT' +version = '3.36' + +homepage = 'https://www.brown.edu/Departments/Engineering/Labs/avdw/atat/' +description = """ +The Alloy-Theoretic Automated Toolkit (ATAT) is a generic name that refers to a collection of alloy theory tools +""" + +toolchain = {'name': 'GCCcore', 'version': '9.3.0'} + +source_urls = ['http://alum.mit.edu/www/avdw/%(namelower)s'] +sources = ['%%(namelower)s%s.tar.gz' % version.replace('.', '_')] +checksums = ['e829da5b714a012b5fc456d1060cfdb784642a8c0cbb702d409497b65466ee39'] + +builddependencies = [ + ('binutils', '2.34') +] + +skipsteps = ['configure'] + +local_bindir = '%(builddir)s/%(namelower)s/bin' + +prebuildopts = 'mkdir -p %s && ' % local_bindir +buildopts = 'BINDIR=%s' % local_bindir + +local_install1 = 'make -C src BINDIR=%s install && ' % local_bindir +local_install2 = 'make -C glue/jobctrl BINDIR=%s install && ' % local_bindir +local_install3 = 'make -C glue/vasp BINDIR=%s install' % local_bindir + +install_cmd = local_install1 + local_install2 + local_install3 + +local_to_copy = ['bin', 'data', 'doc', 'examples', 'glue', 'license.txt'] + +postinstallcmds = [ + 'cp -r %%(builddir)s/%%(namelower)s/%s %%(installdir)s' % x for x in local_to_copy +] + +sanity_check_paths = { + 'files': ['bin/maps'], + 'dirs': local_to_copy[:-1] +} + +sanity_check_commands = [ + "maps --help 2>&1 | grep '^MIT Ab initio Phase Stability (MAPS) code %(version)s'" +] + +modloadmsg = "First-time users please run:\necho set atatdir=$EBROOTATAT > $HOME/.atat.rc\n" + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/a/AUGUSTUS/AUGUSTUS-3.5.0-foss-2022b.eb b/easybuild/easyconfigs/a/AUGUSTUS/AUGUSTUS-3.5.0-foss-2022b.eb new file mode 100644 index 00000000000..b82557238dc --- /dev/null +++ b/easybuild/easyconfigs/a/AUGUSTUS/AUGUSTUS-3.5.0-foss-2022b.eb @@ -0,0 +1,73 @@ +# Updated by: Pavel Grochal (INUITS) +# License: GPLv2 + +easyblock = 'ConfigureMake' + +name = 'AUGUSTUS' +version = '3.5.0' + +homepage = 'https://bioinf.uni-greifswald.de/augustus/' +description = "AUGUSTUS is a program that predicts genes in eukaryotic genomic sequences" + +toolchain = {'name': 'foss', 'version': '2022b'} + +github_account = 'Gaius-Augustus' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['5ed6ce6106303b800c5e91d37a250baff43b20824657b853ae04d11ad8bdd686'] + +builddependencies = [ + ('Python', '3.10.8'), +] + +dependencies = [ + ('zlib', '1.2.12'), + ('Boost', '1.81.0'), + ('GSL', '2.7'), + ('SAMtools', '1.17'), + ('HTSlib', '1.17'), # also provides tabix + ('BCFtools', '1.17'), + ('lpsolve', '5.5.2.11'), + ('SuiteSparse', '5.13.0', '-METIS-5.1.0'), + ('BamTools', '2.5.2'), + ('SQLite', '3.39.4'), +] + +skipsteps = ['configure'] + +# run "make clean" to avoid using binaries included with the source tarball +prebuildopts = "make clean && " + +_tmpl = 'INCLUDE_PATH_{dep}=-I{root}{incl} LIBRARY_PATH_{dep}="-L{root}{lib} -Wl,-rpath,{root}{lib}"' + +buildopts = ' '.join([ + 'COMPGENEPRED=true SQLITE=true ZIPINPUT=true MYSQL=false CXX="$CXX" ', + _tmpl.format(dep='ZLIB', root='$EBROOTZLIB', incl='/include', lib='/lib'), + _tmpl.format(dep='BOOST', root='$EBROOTBOOST', incl='/include', lib='/lib'), + _tmpl.format(dep='LPSOLVE', root='$EBROOTLPSOLVE', incl='/include', lib='/lib'), + _tmpl.format(dep='SUITESPARSE', root='$EBROOTSUITESPARSE', incl='/include', lib='/lib'), + _tmpl.format(dep='GSL', root='$EBROOTGSL', incl='/include', lib='/lib'), + _tmpl.format(dep='SQLITE', root='$EBROOTSQLITE', incl='/include', lib='/lib'), + _tmpl.format(dep='BAMTOOLS', root='$EBROOTBAMTOOLS', incl='/include/bamtools', lib='/lib'), + _tmpl.format(dep='HTSLIB', root='$EBROOTHTSLIB', incl='/include/htslib', lib='/lib'), +]) + +preinstallopts = "sed -i '/ln -sf/d' Makefile && " +installopts = 'INSTALLDIR=%(installdir)s ' + +sanity_check_paths = { + 'files': ['bin/augustus', 'bin/bam2hints', 'bin/etraining', 'bin/fastBlockSearch', + 'bin/filterBam', 'bin/getSeq', 'bin/homGeneMapping', 'bin/joingenes', + 'bin/load2sqlitedb', 'bin/prepareAlign'], + 'dirs': ['config', 'scripts'], +} +sanity_check_commands = ['augustus --help'] + +modextrapaths = {'PATH': 'scripts'} +modextravars = { + 'AUGUSTUS_BIN_PATH': '%(installdir)s/bin', + 'AUGUSTUS_CONFIG_PATH': '%(installdir)s/config', + 'AUGUSTUS_SCRIPTS_PATH': '%(installdir)s/scripts', +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/a/Abseil/Abseil-20230125.2-GCCcore-11.3.0.eb b/easybuild/easyconfigs/a/Abseil/Abseil-20230125.2-GCCcore-11.3.0.eb new file mode 100644 index 00000000000..ae09e8b085b --- /dev/null +++ b/easybuild/easyconfigs/a/Abseil/Abseil-20230125.2-GCCcore-11.3.0.eb @@ -0,0 +1,31 @@ +easyblock = 'CMakeMake' + +name = 'Abseil' +version = '20230125.2' + +homepage = 'https://abseil.io/' +description = """Abseil is an open-source collection of C++ library code designed to augment the +C++ standard library. The Abseil library code is collected from Google's own +C++ code base, has been extensively tested and used in production, and is the +same code we depend on in our daily coding lives.""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} +toolchainopts = {'pic': True, 'cstd': 'c++17'} + +source_urls = ['https://github.com/abseil/abseil-cpp/archive/refs/tags'] +sources = ['%(version)s.tar.gz'] +checksums = ['9a2b5752d7bfade0bdeee2701de17c9480620f8b237e1964c1b9967c75374906'] + +builddependencies = [ + ('binutils', '2.38'), + ('CMake', '3.24.3'), +] + +configopts = '-DBUILD_SHARED_LIBS=ON ' + +sanity_check_paths = { + 'files': ['lib/libabsl_base.%s' % SHLIB_EXT], + 'dirs': ['include/absl'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/a/AlphaPulldown/AlphaPulldown-0.30.4-foss-2020b.eb b/easybuild/easyconfigs/a/AlphaPulldown/AlphaPulldown-0.30.4-foss-2020b.eb new file mode 100644 index 00000000000..05ab7469fa0 --- /dev/null +++ b/easybuild/easyconfigs/a/AlphaPulldown/AlphaPulldown-0.30.4-foss-2020b.eb @@ -0,0 +1,84 @@ +# created by Denis Kristak (Inuits) +easyblock = 'PythonBundle' + +name = 'AlphaPulldown' +version = '0.30.4' + +homepage = 'https://github.com/KosinskiLab/AlphaPulldown' +description = """AlphaPulldown is a Python package that streamlines protein-protein +interaction screens and high-throughput modelling of higher-order oligomers using AlphaFold-Multimer""" + +toolchain = {'name': 'foss', 'version': '2020b'} + +dependencies = [ + ('Python', '3.8.6'), + ('OpenMM', '7.5.0'), + ('Kalign', '3.3.1'), + ('PyYAML', '5.3.1'), + ('cctbx-base', '2020.8'), + ('jax', '0.2.19'), # also provides absl-py + ('Biopython', '1.78'), + ('h5py', '3.1.0'), + ('IPython', '7.18.1'), + ('JupyterLab', '2.2.8'), + ('matplotlib', '3.3.3'), + ('TensorFlow', '2.4.1'), + ('tqdm', '4.56.2'), + ('dm-tree', '0.1.5'), +] + +use_pip = True + +exts_list = [ + ('py3Dmol', '2.0.1.post1', { + 'modulename': 'py3Dmol', + 'checksums': ['add70ecf8f647970925eb8c1043c5c1343813fa49e613b77f0628e522c4148ac'], + }), + ('PDBFixer', '1.7', { + 'source_urls': ['https://github.com/openmm/pdbfixer/archive/refs/tags/'], + 'sources': [{'download_filename': 'v%(version)s.tar.gz', 'filename': '%(name)s-%(version)s.tar.gz'}], + 'checksums': ['a0bef3c52a7bbe69a6aea5333f51f3e7d158339be5829aed19b0344bd66d4eea'], + }), + ('dm-haiku', '0.0.4', { + 'modulename': 'haiku', + 'patches': ['%(name)s-%(version)s_fix-deps.patch'], + 'source_urls': ['https://github.com/deepmind/dm-haiku/archive/refs/tags/'], + 'sources': [{'download_filename': 'v%(version)s.tar.gz', 'filename': '%(name)s-%(version)s.tar.gz'}], + 'checksums': [ + {'dm-haiku-0.0.4.tar.gz': 'e9896d161938b53f869fde207f3f6fca496d09b2a47d21dd9b6b65e897ad6aab'}, + {'dm-haiku-0.0.4_fix-deps.patch': 'c509e0aa049401f340234b0a5eba59c9e8af8eff94b9e92f0693aeadfa4c5aa8'}, + ], + }), + ('toolz', '0.11.1', { + 'checksums': ['c7a47921f07822fe534fb1c01c9931ab335a4390c782bd28c6bcc7c2f71f3fbf'], + }), + ('importlib-resources', '5.12.0', { + 'modulename': 'importlib_resources', + 'source_tmpl': 'importlib_resources-%(version)s.tar.gz', + 'checksums': ['4be82589bf5c1d7999aedf2a45159d10cb3ca4f19b2271f8792bc8e6da7b22f6'], + }), + ('contextlib2', '21.6.0', { + 'checksums': ['ab1e2bfe1d01d968e1b7e8d9023bc51ef3509bba217bb730cee3827e1ee82869'], + }), + ('ml-collections', '0.1.1', { + 'sources': ['ml_collections-%(version)s.tar.gz'], + 'checksums': ['3fefcc72ec433aa1e5d32307a3e474bbb67f405be814ea52a2166bfc9dbe68cc'], + }), + (name, version, { + 'patches': ['%(name)s-%(version)s_fix-deps.patch'], + 'sources': ['%(namelower)s-%(version)s.tar.gz'], + 'checksums': [ + {'alphapulldown-0.30.4.tar.gz': '7797500abaee2e92d28034dc97844bca8c8d7281817e29dc110220824e9d1b5b'}, + {'AlphaPulldown-0.30.4_fix-deps.patch': 'fc5bf395cb36d02efa6d538df49749e722b2d2c257197e3dac83a81c9405c0c9'}, + ], + }), +] + +sanity_pip_check = True + +sanity_check_paths = { + 'files': ['bin/run_multimer_jobs.py', 'bin/rename_colab_search_a3m.py'], + 'dirs': ['lib/python%(pyshortver)s/site-packages/alphapulldown'], +} + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/a/AlphaPulldown/AlphaPulldown-0.30.4-fosscuda-2020b.eb b/easybuild/easyconfigs/a/AlphaPulldown/AlphaPulldown-0.30.4-fosscuda-2020b.eb new file mode 100644 index 00000000000..fe9b5468284 --- /dev/null +++ b/easybuild/easyconfigs/a/AlphaPulldown/AlphaPulldown-0.30.4-fosscuda-2020b.eb @@ -0,0 +1,84 @@ +# created by Denis Kristak (Inuits) +easyblock = "PythonBundle" + +name = "AlphaPulldown" +version = "0.30.4" + +homepage = "https://github.com/KosinskiLab/AlphaPulldown" +description = """AlphaPulldown is a Python package that streamlines protein-protein +interaction screens and high-throughput modelling of higher-order oligomers using AlphaFold-Multimer""" + +toolchain = {'name': 'fosscuda', 'version': '2020b'} + +dependencies = [ + ('Python', '3.8.6'), + ("OpenMM", "7.5.0"), + ("Kalign", "3.3.1"), + ('PyYAML', '5.3.1'), + ("cctbx-base", "2020.8"), + ('jax', '0.2.19'), # also provides absl-py + ('Biopython', '1.78'), + ('h5py', '3.1.0'), + ('IPython', '7.18.1'), + ('JupyterLab', '2.2.8'), + ('matplotlib', '3.3.3'), + ('TensorFlow', '2.4.1'), + ('tqdm', '4.56.2'), + ('dm-tree', '0.1.5'), +] + +use_pip = True + +exts_list = [ + ('py3Dmol', '2.0.1.post1', { + 'modulename': 'py3Dmol', + 'checksums': ['add70ecf8f647970925eb8c1043c5c1343813fa49e613b77f0628e522c4148ac'], + }), + ('PDBFixer', '1.7', { + 'source_urls': ['https://github.com/openmm/pdbfixer/archive/refs/tags/'], + 'sources': [{'download_filename': 'v%(version)s.tar.gz', 'filename': '%(name)s-%(version)s.tar.gz'}], + 'checksums': ['a0bef3c52a7bbe69a6aea5333f51f3e7d158339be5829aed19b0344bd66d4eea'], + }), + ('dm-haiku', '0.0.4', { + 'modulename': 'haiku', + 'patches': ['%(name)s-%(version)s_fix-deps.patch'], + 'source_urls': ['https://github.com/deepmind/dm-haiku/archive/refs/tags/'], + 'sources': [{'download_filename': 'v%(version)s.tar.gz', 'filename': '%(name)s-%(version)s.tar.gz'}], + 'checksums': [ + {'dm-haiku-0.0.4.tar.gz': 'e9896d161938b53f869fde207f3f6fca496d09b2a47d21dd9b6b65e897ad6aab'}, + {'dm-haiku-0.0.4_fix-deps.patch': 'c509e0aa049401f340234b0a5eba59c9e8af8eff94b9e92f0693aeadfa4c5aa8'}, + ], + }), + ('toolz', '0.11.1', { + 'checksums': ['c7a47921f07822fe534fb1c01c9931ab335a4390c782bd28c6bcc7c2f71f3fbf'], + }), + ('importlib-resources', '5.12.0', { + 'modulename': 'importlib_resources', + 'source_tmpl': 'importlib_resources-%(version)s.tar.gz', + 'checksums': ['4be82589bf5c1d7999aedf2a45159d10cb3ca4f19b2271f8792bc8e6da7b22f6'], + }), + ('contextlib2', '21.6.0', { + 'checksums': ['ab1e2bfe1d01d968e1b7e8d9023bc51ef3509bba217bb730cee3827e1ee82869'], + }), + ('ml-collections', '0.1.1', { + 'sources': ['ml_collections-%(version)s.tar.gz'], + 'checksums': ['3fefcc72ec433aa1e5d32307a3e474bbb67f405be814ea52a2166bfc9dbe68cc'], + }), + (name, version, { + 'patches': ['%(name)s-%(version)s_fix-deps.patch'], + 'sources': ['%(namelower)s-%(version)s.tar.gz'], + 'checksums': [ + {'alphapulldown-0.30.4.tar.gz': '7797500abaee2e92d28034dc97844bca8c8d7281817e29dc110220824e9d1b5b'}, + {'AlphaPulldown-0.30.4_fix-deps.patch': 'fc5bf395cb36d02efa6d538df49749e722b2d2c257197e3dac83a81c9405c0c9'}, + ], + }), +] + +sanity_pip_check = True + +sanity_check_paths = { + "files": ['bin/run_multimer_jobs.py', 'bin/rename_colab_search_a3m.py'], + "dirs": ["lib/python%(pyshortver)s/site-packages/alphapulldown"], +} + +moduleclass = "data" diff --git a/easybuild/easyconfigs/a/AlphaPulldown/AlphaPulldown-0.30.4_fix-deps.patch b/easybuild/easyconfigs/a/AlphaPulldown/AlphaPulldown-0.30.4_fix-deps.patch new file mode 100644 index 00000000000..37773ee4bbd --- /dev/null +++ b/easybuild/easyconfigs/a/AlphaPulldown/AlphaPulldown-0.30.4_fix-deps.patch @@ -0,0 +1,35 @@ +making dependencies less strict +author: Denis Kristak (Inuits) +--- setup.cfg_orig 2023-05-05 15:41:50.159415210 +0200 ++++ setup.cfg 2023-05-05 15:41:28.563066879 +0200 +@@ -17,19 +17,19 @@ + include_package_data = True + python_requires = ==3.8.* + install_requires = +- absl-py >= 0.13.0 +- dm-haiku==0.0.9 +- dm-tree==0.1.6 +- h5py==3.1.0 ++ absl-py >= 0.10.0 ++ dm-haiku==0.0.4 ++ dm-tree==0.1.5 ++ h5py==2.10.0 + matplotlib==3.3.3 +- ml-collections==0.1.0 +- numpy==1.21.6 +- pandas==1.3.4 +- tensorflow==2.9.0 +- importlib-resources==5.8.0 ++ ml-collections==0.1.1 ++ numpy==1.19.4 ++ pandas==1.1.4 ++ tensorflow==2.4.1 ++ importlib-resources==5.12.0 + biopython==1.78 +- nbformat==5.4.0 +- py3Dmol==2.0.1 ++ nbformat==5.0.7 ++ py3Dmol==2.0.1.post1 + ipython + tqdm + appdirs diff --git a/easybuild/easyconfigs/a/AlphaPulldown/dm-haiku-0.0.4_fix-deps.patch b/easybuild/easyconfigs/a/AlphaPulldown/dm-haiku-0.0.4_fix-deps.patch new file mode 100644 index 00000000000..4fe3da29116 --- /dev/null +++ b/easybuild/easyconfigs/a/AlphaPulldown/dm-haiku-0.0.4_fix-deps.patch @@ -0,0 +1,10 @@ +make dependencies less strict +Author: Denis Kristak (Inuits) +--- requirements_orig.txt 2021-04-12 10:32:51.000000000 +0100 ++++ requirements.txt 2023-05-05 18:13:43.278174328 +0100 +@@ -1,4 +1,4 @@ + absl-py>=0.7.1 + numpy>=1.18.0 +-tabulate>=0.8.9 ++tabulate>=0.8.7 + typing_extensions; python_version<"3.8" \ No newline at end of file diff --git a/easybuild/easyconfigs/a/Anaconda3/Anaconda3-2023.03-1.eb b/easybuild/easyconfigs/a/Anaconda3/Anaconda3-2023.03-1.eb new file mode 100644 index 00000000000..db18ed4f421 --- /dev/null +++ b/easybuild/easyconfigs/a/Anaconda3/Anaconda3-2023.03-1.eb @@ -0,0 +1,31 @@ +# author: Jillian Rowe +# config upgrade to v5.1.0 by Adam Huffman +# config upgrade to v5.0.1, v5.3.0, 2018.12, 2019.07, +# 2019.10, 2020.2, 2020.11, 2022.05, +# 2022.10 by J. Hein +# config upgrade to 2019.03 by Davide Vanzo +easyblock = 'EB_Anaconda' + +name = 'Anaconda3' +version = '2023.03-1' + +homepage = 'https://www.anaconda.com' +description = """Built to complement the rich, open source Python community, +the Anaconda platform provides an enterprise-ready data analytics platform +that empowers companies to adopt a modern open data science analytics architecture. +""" + +toolchain = SYSTEM + +source_urls = ['https://repo.anaconda.com/archive/'] +local_arch = {'arm64': 'aarch64'}.get(ARCH, ARCH) +sources = ['%%(name)s-%%(version)s-Linux-%s.sh' % local_arch] +checksums = [ + { + '%(name)s-%(version)s-Linux-x86_64.sh': '95102d7c732411f1458a20bdf47e4c1b0b6c8a21a2edfe4052ca370aaae57bab', + '%(name)s-%(version)s-Linux-ppc64le.sh': 'a31f2d6da83534cff7c994403cc11fa634b31fcd10eb4153d00233345ee084b2', + '%(name)s-%(version)s-Linux-aarch64.sh': '54e600faa2af63a25717af30ecaddf1ee428cdfebd3721a70f41462e232e8153', + } +] + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/a/AutoDock-GPU/AutoDock-GPU-1.5.3-GCC-11.3.0-CUDA-11.7.0.eb b/easybuild/easyconfigs/a/AutoDock-GPU/AutoDock-GPU-1.5.3-GCC-11.3.0-CUDA-11.7.0.eb new file mode 100644 index 00000000000..d2feffd75b6 --- /dev/null +++ b/easybuild/easyconfigs/a/AutoDock-GPU/AutoDock-GPU-1.5.3-GCC-11.3.0-CUDA-11.7.0.eb @@ -0,0 +1,60 @@ +easyblock = 'MakeCp' + +name = 'AutoDock-GPU' +version = '1.5.3' +versionsuffix = '-CUDA-%(cudaver)s' + +homepage = 'https://github.com/ccsb-scripps/AutoDock-GPU' +description = """OpenCL and Cuda accelerated version of AutoDock. It leverages its embarrasingly +parallelizable LGA by processing ligand-receptor poses in parallel over +multiple compute units. +AutoDock is a suite of automated docking tools. It is designed to predict how +small molecules, such as substrates or drug candidates, bind to a receptor of +known 3D structure.""" + +toolchain = {'name': 'GCC', 'version': '11.3.0'} +toolchainopts = {'cstd': 'c++11'} + +github_account = 'ccsb-scripps' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['6557df95eed99323befddcef6b8da8b67eba22476efccd1e69a87ffdf075e5f4'] + +dependencies = [ + ('CUDA', '11.7.0', '', SYSTEM), +] + +parallel = 1 + +# Default CUDA compute capabilities (override via --cuda-compute-capabilities) +cuda_compute_capabilities = ['5.2', '6.0', '6.1', '7.0'] +# put CUDA compute capabilities in a shell variable to strip dots in make command +prebuildopts = 'CUDA_CC_TARGETS="%(cuda_cc_space_sep)s"; ' + +# Use complation flags from EB +prebuildopts += "sed -i 's/^LFLAGS=.*/LFLAGS=$(LDFLAGS)/;s/^CFLAGS=.*/CFLAGS+=$(IFLAGS) $(LFLAGS)/' Makefile.Cuda && " + +prebuildopts += 'GPU_INCLUDE_PATH=$EBROOTCUDA/include ' +prebuildopts += 'GPU_LIBRARY_PATH=$EBROOTCUDA/lib ' + +# build for CUDA with defined CUDA compute capabilities +buildopts = 'DEVICE=CUDA TARGETS="${CUDA_CC_TARGETS//./}"' + +files_to_copy = [ + (['bin/*'], 'bin'), + (['doc', 'examples', 'LICENSE', 'LICENSE_LGPL', 'README.md'], 'share'), + (['input'], 'share/examples'), +] + +postinstallcmds = [ + "cd %(installdir)s/bin && ln -s autodock_gpu_64wi autodock_gpu", +] + +sanity_check_paths = { + 'files': ['bin/autodock_gpu', 'bin/autodock_gpu_64wi', 'bin/adgpu_analysis'], + 'dirs': ['share'], +} + +sanity_check_commands = [('autodock_gpu', '--help')] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/a/AutoDockSuite/AutoDockSuite-4.2.6-GCCcore-8.3.0.eb b/easybuild/easyconfigs/a/AutoDockSuite/AutoDockSuite-4.2.6-GCCcore-8.3.0.eb new file mode 100644 index 00000000000..c1f2898ba56 --- /dev/null +++ b/easybuild/easyconfigs/a/AutoDockSuite/AutoDockSuite-4.2.6-GCCcore-8.3.0.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'AutoDockSuite' +version = '4.2.6' + +homepage = 'https://autodock.scripps.edu/' + +description = """ + AutoDock is a suite of automated docking tools. It is designed to + predict how small molecules, such as substrates or drug candidates, bind to + a receptor of known 3D structure. +""" + +toolchain = {'name': 'GCCcore', 'version': '8.3.0'} + +source_urls = ['https://autodock.scripps.edu/wp-content/uploads/sites/56/2021/10'] +sources = ['%(namelower)s-%(version)s-src.tar.gz'] +checksums = ['4b24ce4baf216a5e1a6a79bb664eeed684aed17cede64ff0061aa1bcc17874c4'] + +builddependencies = [('binutils', '2.32')] + +preconfigopts = ['cd %s &&' % x for x in ['autodock', 'autogrid']] +prebuildopts = preconfigopts +preinstallopts = preconfigopts + +sanity_check_paths = { + 'files': ["bin/autodock4", "bin/autogrid4"], + 'dirs': [] +} + +sanity_check_commands = ['%s %s' % (x, y) for x in ['autodock4', 'autogrid4'] for y in ['--help', '--version']] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/a/Autoconf/Autoconf-2.71-GCCcore-12.3.0.eb b/easybuild/easyconfigs/a/Autoconf/Autoconf-2.71-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..0b47b6d9a77 --- /dev/null +++ b/easybuild/easyconfigs/a/Autoconf/Autoconf-2.71-GCCcore-12.3.0.eb @@ -0,0 +1,48 @@ +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': '12.3.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['431075ad0bf529ef13cb41e9042c542381103e80015686222b8a9d4abef42a1c'] + +builddependencies = [ + ('binutils', '2.40'), +] + +dependencies = [ + ('M4', '1.4.19'), + # non-standard Perl modules are required, + # see https://github.com/easybuilders/easybuild-easyconfigs/issues/1822 + ('Perl', '5.36.1'), +] + +preconfigopts = "export PERL='/usr/bin/env perl' && " + +sanity_check_paths = { + 'files': ["bin/%s" % x + for x in ["autoconf", "autoheader", "autom4te", "autoreconf", + "autoscan", "autoupdate", "ifnames"]], + 'dirs': [], +} + +sanity_check_commands = [ + "autoconf --help", + "autom4te --help", +] + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/a/Autoconf/Autoconf-2.71-GCCcore-13.1.0.eb b/easybuild/easyconfigs/a/Autoconf/Autoconf-2.71-GCCcore-13.1.0.eb new file mode 100644 index 00000000000..de56240d150 --- /dev/null +++ b/easybuild/easyconfigs/a/Autoconf/Autoconf-2.71-GCCcore-13.1.0.eb @@ -0,0 +1,48 @@ +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': '13.1.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['431075ad0bf529ef13cb41e9042c542381103e80015686222b8a9d4abef42a1c'] + +builddependencies = [ + ('binutils', '2.40'), +] + +dependencies = [ + ('M4', '1.4.19'), + # non-standard Perl modules are required, + # see https://github.com/easybuilders/easybuild-easyconfigs/issues/1822 + ('Perl', '5.36.1'), +] + +preconfigopts = "export PERL='/usr/bin/env perl' && " + +sanity_check_paths = { + 'files': ["bin/%s" % x + for x in ["autoconf", "autoheader", "autom4te", "autoreconf", + "autoscan", "autoupdate", "ifnames"]], + 'dirs': [], +} + +sanity_check_commands = [ + "autoconf --help", + "autom4te --help", +] + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/a/Automake/Automake-1.16.5-GCCcore-12.3.0.eb b/easybuild/easyconfigs/a/Automake/Automake-1.16.5-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..86496ab7d32 --- /dev/null +++ b/easybuild/easyconfigs/a/Automake/Automake-1.16.5-GCCcore-12.3.0.eb @@ -0,0 +1,39 @@ +easyblock = 'ConfigureMake' + +name = 'Automake' +version = '1.16.5' + +homepage = 'https://www.gnu.org/software/automake/automake.html' + +description = "Automake: GNU Standards-compliant Makefile generator" + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['07bd24ad08a64bc17250ce09ec56e921d6343903943e99ccf63bbf0705e34605'] + +builddependencies = [ + ('binutils', '2.40'), +] + +dependencies = [ + ('Autoconf', '2.71'), + # non-standard Perl modules are required, + # see https://github.com/easybuilders/easybuild-easyconfigs/issues/1822 + ('Perl', '5.36.1'), +] + +preconfigopts = "export PERL='/usr/bin/env perl' && " + +sanity_check_paths = { + 'files': ['bin/aclocal', 'bin/automake'], + 'dirs': [] +} + +sanity_check_commands = [ + "aclocal --help", + "automake --help", +] + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/a/Automake/Automake-1.16.5-GCCcore-13.1.0.eb b/easybuild/easyconfigs/a/Automake/Automake-1.16.5-GCCcore-13.1.0.eb new file mode 100644 index 00000000000..93493ff6472 --- /dev/null +++ b/easybuild/easyconfigs/a/Automake/Automake-1.16.5-GCCcore-13.1.0.eb @@ -0,0 +1,39 @@ +easyblock = 'ConfigureMake' + +name = 'Automake' +version = '1.16.5' + +homepage = 'https://www.gnu.org/software/automake/automake.html' + +description = "Automake: GNU Standards-compliant Makefile generator" + +toolchain = {'name': 'GCCcore', 'version': '13.1.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['07bd24ad08a64bc17250ce09ec56e921d6343903943e99ccf63bbf0705e34605'] + +builddependencies = [ + ('binutils', '2.40'), +] + +dependencies = [ + ('Autoconf', '2.71'), + # non-standard Perl modules are required, + # see https://github.com/easybuilders/easybuild-easyconfigs/issues/1822 + ('Perl', '5.36.1'), +] + +preconfigopts = "export PERL='/usr/bin/env perl' && " + +sanity_check_paths = { + 'files': ['bin/aclocal', 'bin/automake'], + 'dirs': [] +} + +sanity_check_commands = [ + "aclocal --help", + "automake --help", +] + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/a/Autotools/Autotools-20220317-GCCcore-12.3.0.eb b/easybuild/easyconfigs/a/Autotools/Autotools-20220317-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..57d84ce4906 --- /dev/null +++ b/easybuild/easyconfigs/a/Autotools/Autotools-20220317-GCCcore-12.3.0.eb @@ -0,0 +1,24 @@ +easyblock = 'Bundle' + +name = 'Autotools' +version = '20220317' # 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': '12.3.0'} + +dependencies = [ + ('Autoconf', '2.71'), # 20210128 + ('Automake', '1.16.5'), # 20211003 + ('libtool', '2.4.7'), # 20220317 +] + +# Pure bundle -- no need to specify 'binutils' used when building GCCcore +# toolchain as build dependency + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/a/Autotools/Autotools-20220317-GCCcore-13.1.0.eb b/easybuild/easyconfigs/a/Autotools/Autotools-20220317-GCCcore-13.1.0.eb new file mode 100644 index 00000000000..37eed5a53f3 --- /dev/null +++ b/easybuild/easyconfigs/a/Autotools/Autotools-20220317-GCCcore-13.1.0.eb @@ -0,0 +1,24 @@ +easyblock = 'Bundle' + +name = 'Autotools' +version = '20220317' # 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': '13.1.0'} + +dependencies = [ + ('Autoconf', '2.71'), # 20210128 + ('Automake', '1.16.5'), # 20211003 + ('libtool', '2.4.7'), # 20220317 +] + +# Pure bundle -- no need to specify 'binutils' used when building GCCcore +# toolchain as build dependency + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/a/affinity/affinity-20230524-foss-2022a.eb b/easybuild/easyconfigs/a/affinity/affinity-20230524-foss-2022a.eb new file mode 100644 index 00000000000..ca44c02246d --- /dev/null +++ b/easybuild/easyconfigs/a/affinity/affinity-20230524-foss-2022a.eb @@ -0,0 +1,30 @@ +easyblock = 'MakeCp' + +name = 'affinity' +version = '20230524' +local_commit = '7d4d426' + +homepage = 'https://github.com/vkarak/affinity' +description = """A small C++ wrapper for managing Linux CPU sets and CPU affinity. +It also includes a tool to report binding, which is useful for testing different binding options""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +source_urls = ['https://github.com/vkarak/affinity/archive/'] +sources = ['%s.tar.gz' % local_commit] +checksums = ['d4d245deca0ac46c870773f6c5f43d4a5d4d2a13cefdf4d912f3588ee2d41072'] + +buildopts = r'CXX="$MPICXX" OPENMP=1 MPI=1 ' +buildopts += '&& mkdir -p bin && mv affinity bin/' +buildopts += '&& rm Makefile && rm README.md && rm -r src && rm -r tests' + +files_to_copy = ['*'] + +sanity_check_commands = ['mpirun -np 1 affinity'] + +sanity_check_paths = { + 'files': ['bin/affinity'], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/a/affinity/affinity-20230524-intel-2022a.eb b/easybuild/easyconfigs/a/affinity/affinity-20230524-intel-2022a.eb new file mode 100644 index 00000000000..03af1139e3a --- /dev/null +++ b/easybuild/easyconfigs/a/affinity/affinity-20230524-intel-2022a.eb @@ -0,0 +1,30 @@ +easyblock = 'MakeCp' + +name = 'affinity' +version = '20230524' +local_commit = '7d4d426' + +homepage = 'https://github.com/vkarak/affinity' +description = """A small C++ wrapper for managing Linux CPU sets and CPU affinity. +It also includes a tool to report binding, which is useful for testing different binding options""" + +toolchain = {'name': 'intel', 'version': '2022a'} + +source_urls = ['https://github.com/vkarak/affinity/archive/'] +sources = ['%s.tar.gz' % local_commit] +checksums = ['d4d245deca0ac46c870773f6c5f43d4a5d4d2a13cefdf4d912f3588ee2d41072'] + +buildopts = r'CXX="$MPICXX" OPENMP=1 MPI=1 ' +buildopts += '&& mkdir -p bin && mv affinity bin/' +buildopts += '&& rm Makefile && rm README.md && rm -r src && rm -r tests' + +files_to_copy = ['*'] + +sanity_check_commands = ['mpirun -np 1 affinity'] + +sanity_check_paths = { + 'files': ['bin/affinity'], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/a/alleleCount/alleleCount-4.2.1-GCC-11.3.0.eb b/easybuild/easyconfigs/a/alleleCount/alleleCount-4.2.1-GCC-11.3.0.eb new file mode 100644 index 00000000000..69fc3d7f616 --- /dev/null +++ b/easybuild/easyconfigs/a/alleleCount/alleleCount-4.2.1-GCC-11.3.0.eb @@ -0,0 +1,89 @@ +## +# This is an easyconfig file for EasyBuild, see https://github.com/easybuilders/easybuild +# +# Author: Jonas Demeulemeester +# The Francis Crick Institute, London, UK +## + +easyblock = 'ConfigureMake' + +name = 'alleleCount' +version = '4.2.1' + +homepage = 'http://cancerit.github.io/alleleCount/' +description = """ The alleleCount package primarily exists to prevent code duplication +between some other projects, specifically AscatNGS and Battenberg. As of v4 the perl +code wraps the C implementation of allele counting code for BAM/CRAM processing. """ + +toolchain = {'name': 'GCC', 'version': '11.3.0'} + +source_urls = ['https://github.com/cancerit/%(name)s/archive/v%(version)s'] +sources = ['v%(version)s.tar.gz'] +checksums = ['dbec2d47fb4fad8ead72f55c4b6e3c02b216cbed285c05617b62e9a38c32e400'] + +# HTSlib 1.7 is built, used and removed again in the provided setup script +dependencies = [ + ('Perl', '5.34.1'), + ('HTSlib', '1.15.1'), + ('libdeflate', '1.10'), +] + +skipsteps = ['configure'] + +buildopts = "-C c && cd perl && perl Makefile.PL INSTALL_BASE=%(installdir)s " +preinstallopts = "cd perl && " +installopts = " && cd .. && cp -a c/bin/alleleCounter %(installdir)s/bin/" + +exts_defaultclass = 'PerlModule' +exts_filter = ("perl -e 'require %(ext_name)s'", '') +exts_default_options = { + 'buildopts': '', + 'preinstallopts': '', + 'installopts': '', +} + +exts_list = [ + ('Const::Fast', '0.014', { + 'source_tmpl': 'Const-Fast-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT/'], + 'checksums': ['f805953a08c57846a16a4d85d7b766398afaf7c36c1465fcb1dea09e5fa394db'], + }), + ('Devel::Cover', '1.40', { + 'source_tmpl': 'Devel-Cover-%(version)s.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/P/PJ/PJCJ/'], + 'checksums': ['26e2f431fbcf7bff3851f352f83b84067c09ff206f40ab975cad8d2bafe711a8'], + }), + ('Pod::Coverage', '0.23', { + 'source_tmpl': 'Pod-Coverage-%(version)s.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/R/RC/RCLAMP/'], + 'checksums': ['30b7a0b0c942f44a7552c0d34e9b1f2e0ba0b67955c61e3b1589ec369074b107'], + }), + ('Pod::Parser', '1.66', { + 'source_tmpl': 'Pod-Parser-%(version)s.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/M/MA/MAREKR/'], + 'checksums': ['22928a7bffe61b452c05bbbb8f5216d4b9cf9fe2a849b776c25500d24d20df7c'], + }), + ('Devel::Symdump', '2.18', { + 'source_tmpl': 'Devel-Symdump-%(version)s.tar.gz', + 'source_urls': ['http://cpan.metacpan.org/authors/id/A/AN/ANDK/'], + 'checksums': ['826f81a107f5592a2516766ed43beb47e10cc83edc9ea48090b02a36040776c0'], + }), +] + +postinstallcmds = ["chmod u+w %(installdir)s/bin/alleleCounter.pl"] + +fix_perl_shebang_for = ['bin/alleleCounter.pl'] + +sanity_check_paths = { + 'files': ['bin/alleleCounter', 'bin/alleleCounter.pl'], + 'dirs': ['lib/perl5'], +} + +sanity_check_commands = [ + "alleleCounter --help", + "alleleCounter.pl --help", +] + +modextrapaths = {'PERL5LIB': ['lib/perl5', 'lib/perl5/site_perl/%(perlver)s']} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/a/alleleIntegrator/alleleIntegrator-0.8.8-foss-2022a-R-4.2.1.eb b/easybuild/easyconfigs/a/alleleIntegrator/alleleIntegrator-0.8.8-foss-2022a-R-4.2.1.eb new file mode 100644 index 00000000000..103d3b10eeb --- /dev/null +++ b/easybuild/easyconfigs/a/alleleIntegrator/alleleIntegrator-0.8.8-foss-2022a-R-4.2.1.eb @@ -0,0 +1,53 @@ +easyblock = 'Bundle' + +name = 'alleleIntegrator' +version = '0.8.8' +# There is only one release in the repo called "PublishedVersion.tar.gz" +local_commit = '7bf7970' +versionsuffix = '-R-%(rver)s' + +homepage = 'https://github.com/constantAmateur/alleleIntegrator' +description = 'R package to generate allele specific counts for scRNA data and use it to identify cancer cells' + +toolchain = {'name': 'foss', 'version': '2022a'} + +dependencies = [ + ('R', '4.2.1'), + ('alleleCount', '4.2.1'), + ('BCFtools', '1.15.1'), + ('parallel', '20220722'), + ('ASCAT', '3.1.2', versionsuffix) +] + +exts_defaultclass = 'RPackage' +exts_default_options = { + 'sources': ['%(name)s_%(version)s.tar.gz'], + 'source_urls': [ + 'https://cran.r-project.org/src/contrib/Archive/%(name)s', # package archive + 'https://cran.r-project.org/src/contrib/', # current version of packages + 'https://cran.freestatistics.org/src/contrib', # mirror alternative for current packages + ], +} + +exts_list = [ + ('grr', '0.9.5', { + 'checksums': ['292606de2983ac5840c90d3e0977441b482c9e73c1674b662f8b4fb8f3632b2b'], + }), + ('Matrix.utils', '0.9.8', { + 'checksums': ['ebc59d3ef751775515586ff1f2396e429a1e9d91a10099d804134fcf74c0ae28'], + }), + (name, version, { + 'source_urls': ['https://github.com/constantAmateur/alleleIntegrator/archive/'], + 'sources': [{'download_filename': '7bf7970.tar.gz', 'filename': '%(namelower)s-%(version)s.tar.gz'}], + 'checksums': ['9e852c37485548c27c8ce29b90d163818c394410874d459e4fd92f184e4ff004'], + }), +] + +sanity_check_paths = { + 'files': [], + 'dirs': [name], +} + +modextrapaths = {'R_LIBS_SITE': ''} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/a/attr/attr-2.5.1-GCCcore-11.3.0.eb b/easybuild/easyconfigs/a/attr/attr-2.5.1-GCCcore-11.3.0.eb new file mode 100644 index 00000000000..ca867bfaae6 --- /dev/null +++ b/easybuild/easyconfigs/a/attr/attr-2.5.1-GCCcore-11.3.0.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'attr' +version = '2.5.1' + +homepage = 'https://savannah.nongnu.org/projects/attr' + +description = """Commands for Manipulating Filesystem Extended Attributes""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +source_urls = [GNU_SAVANNAH_SOURCE] +sources = [SOURCE_TAR_GZ] +checksums = ['bae1c6949b258a0d68001367ce0c741cebdacdd3b62965d17e5eb23cd78adaf8'] + +builddependencies = [('binutils', '2.38')] + +sanity_check_paths = { + 'files': ['bin/attr', 'bin/getfattr', 'bin/setfattr', + 'include/%(name)s/attributes.h', 'include/%(name)s/error_context.h', + 'include/%(name)s/libattr.h', 'lib/libattr.a', + 'lib/libattr.%s' % SHLIB_EXT], + 'dirs': ['share'], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/a/axel/axel-2.17.9-GCCcore-8.3.0.eb b/easybuild/easyconfigs/a/axel/axel-2.17.9-GCCcore-8.3.0.eb new file mode 100644 index 00000000000..3b8baf41014 --- /dev/null +++ b/easybuild/easyconfigs/a/axel/axel-2.17.9-GCCcore-8.3.0.eb @@ -0,0 +1,37 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +easyblock = 'ConfigureMake' + +name = 'axel' +version = '2.17.9' + +github_account = "axel-download-accelerator" +homepage = 'https://github.com/%(github_account)s/%(name)s' +description = """Lightweight CLI download accelerator """ + +toolchain = {'name': 'GCCcore', 'version': '8.3.0'} + +source_urls = ['https://github.com/%(github_account)s/%(name)s/releases/download/v%(version)s'] +sources = [SOURCE_TAR_BZ2] +checksums = ['d50dfbc59cb04fa70fb8d414579259c3eefe2a87aab52611309feeec9acb851a'] + +builddependencies = [ + ('binutils', '2.32'), + ('pkg-config', '0.29.2'), + ('gettext', '0.20.1'), +] + +dependencies = [ + ('OpenSSL', '1.1', '', SYSTEM), +] + +sanity_check_paths = { + 'files': ['bin/axel'], + 'dirs': [], +} + +sanity_check_commands = [ + "axel -h", + "axel --version", +] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/a/axel/axel-2.17.9-GCCcore-9.3.0.eb b/easybuild/easyconfigs/a/axel/axel-2.17.9-GCCcore-9.3.0.eb new file mode 100644 index 00000000000..de813fa81e5 --- /dev/null +++ b/easybuild/easyconfigs/a/axel/axel-2.17.9-GCCcore-9.3.0.eb @@ -0,0 +1,37 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +easyblock = 'ConfigureMake' + +name = 'axel' +version = '2.17.9' + +github_account = "axel-download-accelerator" +homepage = 'https://github.com/%(github_account)s/%(name)s' +description = """Lightweight CLI download accelerator """ + +toolchain = {'name': 'GCCcore', 'version': '9.3.0'} + +source_urls = ['https://github.com/%(github_account)s/%(name)s/releases/download/v%(version)s'] +sources = [SOURCE_TAR_BZ2] +checksums = ['d50dfbc59cb04fa70fb8d414579259c3eefe2a87aab52611309feeec9acb851a'] + +builddependencies = [ + ('binutils', '2.34'), + ('pkg-config', '0.29.2'), + ('gettext', '0.20.1'), +] + +dependencies = [ + ('OpenSSL', '1.1', '', SYSTEM), +] + +sanity_check_paths = { + 'files': ['bin/axel'], + 'dirs': [], +} + +sanity_check_commands = [ + "axel -h", + "axel --version", +] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/b/BBMap/BBMap-39.01-GCC-12.2.0.eb b/easybuild/easyconfigs/b/BBMap/BBMap-39.01-GCC-12.2.0.eb new file mode 100644 index 00000000000..143f1964116 --- /dev/null +++ b/easybuild/easyconfigs/b/BBMap/BBMap-39.01-GCC-12.2.0.eb @@ -0,0 +1,34 @@ +easyblock = 'MakeCp' + +name = 'BBMap' +version = '39.01' + +homepage = 'https://sourceforge.net/projects/bbmap/' +description = """BBMap short read aligner, and other bioinformatic tools.""" + +toolchain = {'name': 'GCC', 'version': '12.2.0'} + +source_urls = [SOURCEFORGE_SOURCE] +sources = ['%(name)s_%(version)s.tar.gz'] +checksums = ['98608da50130c47f3abd095b889cc87f60beeb8b96169b664bc9d849abe093e6'] + +dependencies = [('Java', '11', '', SYSTEM)] + +prebuildopts = 'cd jni && ' + +local_suff = {'Darwin': 'osx', 'Linux': 'linux'}[OS_TYPE] +buildopts = "-f makefile.%s" % local_suff + +files_to_copy = ['*'] + +sanity_check_paths = { + 'files': ['bbmap.sh', 'jni/libbbtoolsjni.%s' % SHLIB_EXT], + 'dirs': [] +} + +modextrapaths = {'PATH': ''} + +modloadmsg = "For improved speed, add 'usejni=t' to the command line of %(name)s tools which support the use of the" +modloadmsg += " compiled jni C code.\n" + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/b/BGC-Bayesian-genomic-clines/BGC-Bayesian-genomic-clines-1.03-gompi-2021a.eb b/easybuild/easyconfigs/b/BGC-Bayesian-genomic-clines/BGC-Bayesian-genomic-clines-1.03-gompi-2021a.eb new file mode 100644 index 00000000000..e8407c2ac0a --- /dev/null +++ b/easybuild/easyconfigs/b/BGC-Bayesian-genomic-clines/BGC-Bayesian-genomic-clines-1.03-gompi-2021a.eb @@ -0,0 +1,36 @@ +easyblock = 'MakeCp' + +name = 'BGC-Bayesian-genomic-clines' +version = '1.03' +local_commit = '9c8c8cb' + +homepage = 'https://github.com/zgompert/BGC-Bayesian-genomic-clines' +description = """Collection of code for Bayesian genomic cline analyses.""" + +toolchain = {'name': 'gompi', 'version': '2021a'} + +github_account = 'zgompert' +source_urls = [GITHUB_SOURCE] +sources = ['%s.tar.gz' % local_commit] +patches = [('%(name)s-%(version)s_Makefile.patch', 1)] +checksums = [ + {'9c8c8cb.tar.gz': '105cd1f545c5d9cd55d965436e8e31934fc77a5981399aa6373acd6e42f73cf1'}, + {'BGC-Bayesian-genomic-clines-1.03_Makefile.patch': + 'c32853077658731dba2ac7f4916a67f43c9f7679916d602750a8c70d60d810de'}, +] + +dependencies = [ + ('GSL', '2.7'), + ('HDF5', '1.10.7'), +] + +files_to_copy = [ + (['bgc', 'estpost'], 'bin'), +] + +sanity_check_paths = { + 'files': ['bin/bgc', 'bin/estpost'], + 'dirs': ['bin'], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/b/BGC-Bayesian-genomic-clines/BGC-Bayesian-genomic-clines-1.03_Makefile.patch b/easybuild/easyconfigs/b/BGC-Bayesian-genomic-clines/BGC-Bayesian-genomic-clines-1.03_Makefile.patch new file mode 100644 index 00000000000..a2e7e14105c --- /dev/null +++ b/easybuild/easyconfigs/b/BGC-Bayesian-genomic-clines/BGC-Bayesian-genomic-clines-1.03_Makefile.patch @@ -0,0 +1,20 @@ +# Add a Makefile to compile according to instructions +# in https://github.com/zgompert/BGC-Bayesian-genomic-clines/blob/main/bgc_manual.pdf +# Added by steven.vandenbrande@kuleuven.be +--- /dev/null 1970-01-01 01:00:00.000000000 +0100 ++++ BGC-Bayesian-genomic-clines/Makefile 2023-05-25 19:16:20.145112000 +0200 +@@ -0,0 +1,14 @@ ++CXX = h5c++ ++CXXFLAGS = -Wall -O3 ++LIBS = -lgsl -lgslcblas ++ ++all: bgc estpost ++ ++bgc: ++ $(CXX) $(CXXFLAGS) -o $@ bgc_main_v1.03.C bgc_func_hdf5_v1.03.C \ ++ bgc_func_linkage_v1.03.C bgc_func_ngs_v1.03.C bgc_func_write_v1.03.C \ ++ bgc_func_initialize_v1.03.C bgc_func_mcmc_v1.03.C bgc_func_readdata_v1.03.C \ ++ mvrandist_v1.03.c $(LIBS) ++ ++estpost: ++ $(CXX) $(CXXFLAGS) -o $@ estpost_h5_v1.03.c $(LIBS) diff --git a/easybuild/easyconfigs/b/BLAST+/BLAST+-2.14.0-gompi-2022b.eb b/easybuild/easyconfigs/b/BLAST+/BLAST+-2.14.0-gompi-2022b.eb new file mode 100644 index 00000000000..142ad4eb6aa --- /dev/null +++ b/easybuild/easyconfigs/b/BLAST+/BLAST+-2.14.0-gompi-2022b.eb @@ -0,0 +1,51 @@ +# # +# EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos , Kenneth Hoste (UGent) +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a component of +# the policy: https://hpcbios.readthedocs.org/en/latest/HPCBIOS_2012-94.html +# # + +easyblock = 'ConfigureMake' + +name = 'BLAST+' +version = '2.14.0' + +homepage = 'https://blast.ncbi.nlm.nih.gov/' +description = """Basic Local Alignment Search Tool, or BLAST, is an algorithm + for comparing primary biological sequence information, such as the amino-acid + sequences of different proteins or the nucleotides of DNA sequences.""" + +toolchain = {'name': 'gompi', 'version': '2022b'} +toolchainopts = {'usempi': True, 'pic': True} + +source_urls = ['https://ftp.ncbi.nlm.nih.gov/blast/executables/%(namelower)s/%(version)s/'] +sources = ['ncbi-blast-%(version)s+-src.tar.gz'] +checksums = ['bf477f1b0c3b82f0b7a7094bf003a9a83e37e3b0716c1df799060c4feab17500'] + +dependencies = [ + ('zlib', '1.2.12'), + ('bzip2', '1.0.8'), + ('PCRE', '8.45'), + ('Boost', '1.81.0'), + ('GMP', '6.2.1'), + ('libpng', '1.6.38'), + ('libjpeg-turbo', '2.1.4'), + ('LMDB', '0.9.29'), +] + +configopts = "--with-64 --with-z=$EBROOTZLIB --with-bz2=$EBROOTBZIP2 " +configopts += "--with-pcre=$EBROOTPCRE --with-boost=$EBROOTBOOST " +configopts += "--with-gmp=$EBROOTGMP --with-png=$EBROOTLIBPNG " +configopts += "--with-jpeg=$EBROOTLIBJPEGMINTURBO --with-lmdb=$EBROOTLMDB" + +sanity_check_paths = { + 'files': ['bin/blastn', 'bin/blastp', 'bin/blastx'], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/b/BLAT/BLAT-3.7-GCC-11.2.0.eb b/easybuild/easyconfigs/b/BLAT/BLAT-3.7-GCC-11.2.0.eb new file mode 100644 index 00000000000..1036c2e6acd --- /dev/null +++ b/easybuild/easyconfigs/b/BLAT/BLAT-3.7-GCC-11.2.0.eb @@ -0,0 +1,55 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# +# Copyright:: Copyright 2012-2013 The Cyprus Institute +# Authors:: Andreas Panteli , Thekla Loizou +# Contributors:: Alex Domingo (Vrije Universiteit Brussel) +# License:: MIT/GPL +# +## + +name = 'BLAT' +version = '3.7' + +homepage = 'https://genome.ucsc.edu/goldenPath/help/blatSpec.html' +description = """BLAT on DNA is designed to quickly find sequences of 95% and +greater similarity of length 25 bases or more.""" + +toolchain = {'name': 'GCC', 'version': '11.2.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://genome-test.gi.ucsc.edu/~kent/src/'] +sources = ['%%(namelower)sSrc%s.zip' % ''.join(version.split('.'))] +patches = ['BLAT-%(version)s_mend-tests.patch'] +checksums = [ + {'blatSrc37.zip': '88ee2b272d42ab77687c61d200b11f1d58443951069feb7e10226a2509f84cf2'}, + {'BLAT-3.7_mend-tests.patch': '1f42c7fadf7676a5cc3a2016f70089c3541aa1d53816cf86072682c44cf311a6'}, +] + +# BLAT relies on a bundled old version of HTSlib. We use the bundled library +# because it is statically linked and the newer HTSlib in this toolchain is not +# API compatible with it. +dependencies = [ + ('freetype', '2.11.0'), + ('libiconv', '1.16'), + ('libpng', '1.6.37'), + ('MariaDB', '10.6.4'), + ('OpenSSL', '1.1', '', SYSTEM), + ('util-linux', '2.37'), + ('zlib', '1.2.11'), +] + +pretestopts = 'PATH="%(builddir)s/blatSrc/bin:$PATH"' +runtest = 'test' + +_blat_bins = ["blat", "faToNib", "faToTwoBit", "gfClient", "gfServer", "nibFrag", "pslPretty", + "pslReps", "pslSort", "twoBitInfo", "twoBitToFa"] + +files_to_copy = [(["bin/%s" % x for x in _blat_bins] + ["webBlat/webBlat"], 'bin')] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in _blat_bins + ["webBlat"]], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/b/BLIS/BLIS-0.9.0-GCC-12.3.0.eb b/easybuild/easyconfigs/b/BLIS/BLIS-0.9.0-GCC-12.3.0.eb new file mode 100644 index 00000000000..c481e2a27c4 --- /dev/null +++ b/easybuild/easyconfigs/b/BLIS/BLIS-0.9.0-GCC-12.3.0.eb @@ -0,0 +1,42 @@ +easyblock = 'ConfigureMake' + +name = 'BLIS' +version = '0.9.0' + +homepage = 'https://github.com/flame/blis/' +description = """BLIS is a portable software framework for instantiating high-performance +BLAS-like dense linear algebra libraries.""" + +toolchain = {'name': 'GCC', 'version': '12.3.0'} + +source_urls = ['https://github.com/flame/blis/archive/'] +sources = ['%(version)s.tar.gz'] +patches = [ + '%(name)s-%(version)s_disable_power9_kernels.patch', + '%(name)s-%(version)s_enable_ppc_autodetect.patch', +] +checksums = [ + '1135f664be7355427b91025075562805cdc6cc730d3173f83533b2c5dcc2f308', # 0.9.0.tar.gz + # BLIS-0.9.0_disable_power9_kernels.patch + 'ed7a326bc5c5c21c42faefbec2fd7be609d1c7236981b466475edace39307279', + # BLIS-0.9.0_enable_ppc_autodetect.patch + 'f373fb252c0d14036fb631f048091976cceb02abb3e570a97fbaeac2fbb12328', +] +builddependencies = [ + ('Python', '3.11.3'), + ('Perl', '5.36.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.4.7-foss-2022b.eb b/easybuild/easyconfigs/b/BUSCO/BUSCO-5.4.7-foss-2022b.eb new file mode 100644 index 00000000000..6d290ed51d9 --- /dev/null +++ b/easybuild/easyconfigs/b/BUSCO/BUSCO-5.4.7-foss-2022b.eb @@ -0,0 +1,56 @@ +# Updated by: Pavel Grochal (INUITS) +# Updated by: Sebastien Moretti (SIB) + +easyblock = 'PythonPackage' + +name = 'BUSCO' +version = '5.4.7' + +homepage = 'https://busco.ezlab.org/' +description = "BUSCO: assessing genome assembly and annotation completeness with single-copy orthologs" +# software_license = 'LicenseMIT' + +toolchain = {'name': 'foss', 'version': '2022b'} + +source_urls = ['https://gitlab.com/ezlab/%(namelower)s/-/archive/%(version)s'] +sources = [SOURCELOWER_TAR_BZ2] +checksums = ['6725dde07e5db0a3a785842c664ee2aa1af7e02850e487daab478145d09f603a'] + +dependencies = [ + ('Python', '3.10.8'), + ('SciPy-bundle', '2023.02'), # for pandas + ('R', '4.2.2'), # for R and ggplot2 + ('Biopython', '1.81'), + ('BLAST+', '2.14.0'), + ('HMMER', '3.3.2'), + ('prodigal', '2.6.3'), + ('AUGUSTUS', '3.5.0'), + ('SEPP', '4.5.1'), + ('MetaEuk', '6'), + ('BBMap', '39.01'), +] + +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 --cpu %(parallel)s --mode geno --out test_bacteria.out", + "busco -i %(installdir)s/test_data/eukaryota/genome.fna --cpu %(parallel)s --mode geno --out test_eukaryota.out", +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/b/Bandage/Bandage-0.9.0-GCCcore-11.3.0.eb b/easybuild/easyconfigs/b/Bandage/Bandage-0.9.0-GCCcore-11.3.0.eb new file mode 100644 index 00000000000..264152f103d --- /dev/null +++ b/easybuild/easyconfigs/b/Bandage/Bandage-0.9.0-GCCcore-11.3.0.eb @@ -0,0 +1,30 @@ +easyblock = 'MakeCp' + +name = 'Bandage' +version = '0.9.0' + +homepage = 'http://rrwick.github.io/Bandage' +description = "Bandage is a program for visualising de novo assembly graphs" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +source_urls = ['https://github.com/rrwick/Bandage/archive'] +sources = ['v%(version)s.tar.gz'] +checksums = ['04de8152d8bf5e5aa32b41a63cf1c23e1fee7b67ccd9f1407db8dc2824ca4e30'] + +builddependencies = [('binutils', '2.38')] + +dependencies = [('Qt5', '5.15.5')] + +prebuildopts = "qmake Bandage.pro && " + +files_to_copy = [(['Bandage'], 'bin')] + +sanity_check_paths = { + 'files': ['bin/Bandage'], + 'dirs': [], +} + +sanity_check_commands = ["Bandage --help && ldd $(which Bandage)"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/b/BayesPrism/BayesPrism-2.0-foss-2022a-R-4.2.1.eb b/easybuild/easyconfigs/b/BayesPrism/BayesPrism-2.0-foss-2022a-R-4.2.1.eb new file mode 100644 index 00000000000..a95446be4a1 --- /dev/null +++ b/easybuild/easyconfigs/b/BayesPrism/BayesPrism-2.0-foss-2022a-R-4.2.1.eb @@ -0,0 +1,33 @@ +easyblock = 'RPackage' + +name = 'BayesPrism' +version = '2.0' +# Still have versionsuffix because we need Bioconductor, which also still has it +versionsuffix = '-R-%(rver)s' +github_account = 'Danko-Lab' +local_commit = '1ad3e82' + +homepage = 'https://github.com/Danko-Lab/BayesPrism' +description = """Bayesian cell Proportion Reconstruction Inferred using Statistical Marginalization + (BayesPrism): A Fully Bayesian Inference of Tumor Microenvironment composition and gene expression + """ + +toolchain = {'name': 'foss', 'version': '2022a'} + +dependencies = [ + ('R', '4.2.1'), + ('R-bundle-Bioconductor', '3.15', versionsuffix), +] + +source_urls = ['https://github.com/%(github_account)s/%(name)s/archive/'] +sources = [{'download_filename': '%s.tar.gz' % local_commit, 'filename': SOURCE_TAR_GZ}] +checksums = ['bfbddbb6853422ddc327166ef5c9c581d3a7baa21d8734af95c55f02e5cf66bd'] + +start_dir = 'BayesPrism' + +sanity_check_paths = { + 'files': [], + 'dirs': ['%(name)s'], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/b/BayesTraits/BayesTraits-3.0.2-Linux.eb b/easybuild/easyconfigs/b/BayesTraits/BayesTraits-3.0.2-Linux.eb new file mode 100644 index 00000000000..9f4b79cae32 --- /dev/null +++ b/easybuild/easyconfigs/b/BayesTraits/BayesTraits-3.0.2-Linux.eb @@ -0,0 +1,34 @@ +# 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 = "Tarball" + +name = 'BayesTraits' +version = '3.0.2' +versionsuffix = '-Linux' + +homepage = 'https://github.com/AndrewPMeade/BayesTraits-Public' +description = """ BayesTraits is a computer package for performing analyses of trait + evolution among groups of species for which a phylogeny or sample of phylogenies is + available. This new package incoporates our earlier and separate programes Multistate, + Discrete and Continuous. BayesTraits can be applied to the analysis of traits that adopt + a finite number of discrete states, or to the analysis of continuously varying traits. + Hypotheses can be tested about models of evolution, about ancestral states and about + correlations among pairs of traits. """ + +toolchain = SYSTEM + +source_urls = ['https://github.com/AndrewPMeade/BayesTraits-Public/raw/main/BayesTraitsV%(version)s/'] +sources = ['BayesTraitsV%(version)s%(versionsuffix)s.tar.gz'] +checksums = ['8b4dbd48583f970d3a4e363685940a9c99d412be1b2e96eb682294f751b4fa51'] + +sanity_check_paths = { + 'files': ['BayesTraitsV3', 'Primates.trees', 'Mammal.trees'], + 'dirs': [], +} + +modextrapaths = {'PATH': ''} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/b/BioPerl/BioPerl-1.7.8-GCCcore-12.2.0.eb b/easybuild/easyconfigs/b/BioPerl/BioPerl-1.7.8-GCCcore-12.2.0.eb new file mode 100644 index 00000000000..8caddd5df22 --- /dev/null +++ b/easybuild/easyconfigs/b/BioPerl/BioPerl-1.7.8-GCCcore-12.2.0.eb @@ -0,0 +1,56 @@ +# easybuild easyconfig +# +# John Dey jfdey@fredhutch.org +# +# Fred Hutchinson Cancer Research Center +# Thomas Eylenbosch - Gluo NV + +easyblock = 'PerlModule' + +name = 'BioPerl' +version = '1.7.8' + +homepage = 'http://www.bioperl.org/' +description = """Bioperl is the product of a community effort to produce Perl code which is useful in biology. + Examples include Sequence objects, Alignment objects and database searching objects.""" + +toolchain = {'name': 'GCCcore', 'version': '12.2.0'} + +builddependencies = [('binutils', '2.39')] + +dependencies = [ + ('Perl', '5.36.0'), + ('XML-LibXML', '2.0208'), +] + +exts_defaultclass = 'PerlModule' +exts_filter = ("perldoc -lm %(ext_name)s ", "") + +exts_list = [ + ('XML::Writer', '0.900', { + 'source_tmpl': 'XML-Writer-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JO/JOSEPHW'], + 'checksums': ['73c8f5bd3ecf2b350f4adae6d6676d52e08ecc2d7df4a9f089fa68360d400d1f'], + }), + (name, version, { + 'source_tmpl': '%(name)s-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CJ/CJFIELDS/'], + 'checksums': ['c490a3be7715ea6e4305efd9710e5edab82dabc55fd786b6505b550a30d71738'], + }), + ('Bio::Procedural', '1.7.4', { + 'source_tmpl': 'Bio-Procedural-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CJ/CJFIELDS/'], + 'checksums': ['d2bd9cfbb091eee2d80ed6cf812ac3813b1c8a1aaca20671037f5f225d31d1da'], + }), +] + +modextrapaths = { + 'PERL5LIB': 'lib/perl5/site_perl/%(perlver)s/', +} + +sanity_check_paths = { + 'files': [], + 'dirs': ['bin', 'lib/perl5/site_perl/%(perlver)s/Bio'], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/b/Bismark/Bismark-0.24.1-GCC-12.2.0.eb b/easybuild/easyconfigs/b/Bismark/Bismark-0.24.1-GCC-12.2.0.eb new file mode 100644 index 00000000000..324c2f74ac2 --- /dev/null +++ b/easybuild/easyconfigs/b/Bismark/Bismark-0.24.1-GCC-12.2.0.eb @@ -0,0 +1,41 @@ +## +# 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 +# +# Updated to 0.23.1 +# J. Sassmannshausen NHS/GSTT + +easyblock = 'Tarball' + +name = 'Bismark' +version = '0.24.1' + +homepage = 'https://www.bioinformatics.babraham.ac.uk/projects/bismark/' +description = "A tool to map bisulfite converted sequence reads and determine cytosine methylation states" + +toolchain = {'name': 'GCC', 'version': '12.2.0'} + +source_urls = ['https://github.com/FelixKrueger/Bismark/archive/refs/tags/'] +sources = ['%(version)s.tar.gz'] +checksums = ['c5409f5fa470ea5ac07327ced28c60b793f5ef88c5a7bc75b71dde0f52f39894'] + +dependencies = [ + ('Perl', '5.36.0'), + ('Bowtie2', '2.5.1'), + ('SAMtools', '1.17'), +] + +sanity_check_commands = ['bismark --help'] + +sanity_check_paths = { + 'files': ['bismark', 'bismark2bedGraph', 'bismark2report', 'bismark_genome_preparation', + 'bismark_methylation_extractor', 'coverage2cytosine', 'deduplicate_bismark'], + 'dirs': [], +} + +modextrapaths = {'PATH': ''} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/b/Bison/Bison-3.8.2-GCCcore-11.4.0.eb b/easybuild/easyconfigs/b/Bison/Bison-3.8.2-GCCcore-11.4.0.eb new file mode 100644 index 00000000000..527f9ab53d1 --- /dev/null +++ b/easybuild/easyconfigs/b/Bison/Bison-3.8.2-GCCcore-11.4.0.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'Bison' +version = '3.8.2' + +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.4.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['06c9e13bdf7eb24d4ceb6b59205a4f67c2c7e7213119644430fe82fbd14a0abb'] + +builddependencies = [ + ('M4', '1.4.19'), + # use same binutils version that was used when building GCCcore toolchain + ('binutils', '2.40', '', SYSTEM), +] + +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/Bowtie2/Bowtie2-2.5.1-GCC-12.2.0.eb b/easybuild/easyconfigs/b/Bowtie2/Bowtie2-2.5.1-GCC-12.2.0.eb new file mode 100644 index 00000000000..54650aff98a --- /dev/null +++ b/easybuild/easyconfigs/b/Bowtie2/Bowtie2-2.5.1-GCC-12.2.0.eb @@ -0,0 +1,54 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel +# Modified by: Robert Schmidt +# Ottawa Hospital Research Institute - Bioinformatics Team +# Modified by: Adam Huffman +# The Francis Crick Institute +# Modified by: Kurt Lust, UAntwerp +# Modified by: Sebastien Moretti for non-x86_64 systems +# SIB Swiss Institute of Bioinformatics + +name = 'Bowtie2' +version = '2.5.1' +_simde_version = '20220504' +_simde_commit = 'cbef1c1' + +homepage = 'https://bowtie-bio.sourceforge.net/bowtie2/index.shtml' +description = """ Bowtie 2 is an ultrafast and memory-efficient tool for aligning sequencing reads + to long reference sequences. It is particularly good at aligning reads of about 50 up to 100s or 1,000s + of characters, and particularly good at aligning to relatively long (e.g. mammalian) genomes. + Bowtie 2 indexes the genome with an FM Index to keep its memory footprint small: for the human genome, + its memory footprint is typically around 3.2 GB. Bowtie 2 supports gapped, local, and paired-end alignment modes.""" + +toolchain = {'name': 'GCC', 'version': '12.2.0'} +toolchainopts = {'pic': True, 'cstd': 'gnu++98'} + +source_urls = [('https://sourceforge.net/projects/bowtie-bio/files/%(namelower)s/%(version)s', 'download')] +sources = ['%(namelower)s-%(version)s-source.zip'] +checksums = ['cb6cbbbb5a7167a2f21a3d63cb9774336361f540e1ec3d8ff907f955c35f71b8'] + +# SIMD Everywhere implementations only, for non-x86_64 systems +if ARCH != 'x86_64': + source_urls += ['https://github.com/simd-everywhere/simde-no-tests/archive'] + sources += [ + {'download_filename': '%s.zip' % _simde_commit, + 'filename': 'simde-%s.zip' % _simde_version, + 'extract_cmd': 'unzip %%s && mv simde*-%s*/* %%(namelower)s-%%(version)s/third_party/simde/' % _simde_commit, + } + ] + checksums += ['d01f084ef5ff69b0a9b96370ae314fe1e55ef3339b25afcd3385958ac0e6ad68'] + +dependencies = [ + ('zlib', '1.2.12'), + ('Perl', '5.36.0'), + ('Python', '3.10.8'), +] + +# to add script folder to path just uncomment this line +# modextrapaths = {'PATH': 'scripts'} + +sanity_check_commands = ['bowtie2 --help', 'bowtie2-build --help'] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/b/barrnap/barrnap-0.9-gompi-2022a.eb b/easybuild/easyconfigs/b/barrnap/barrnap-0.9-gompi-2022a.eb new file mode 100644 index 00000000000..a857af10dc5 --- /dev/null +++ b/easybuild/easyconfigs/b/barrnap/barrnap-0.9-gompi-2022a.eb @@ -0,0 +1,28 @@ +easyblock = 'Tarball' + +name = 'barrnap' +version = '0.9' + +homepage = 'https://github.com/tseemann/barrnap' +description = "Barrnap (BAsic Rapid Ribosomal RNA Predictor) predicts the location of ribosomal RNA genes in genomes." + +toolchain = {'name': 'gompi', 'version': '2022a'} + +source_urls = ['https://github.com/tseemann/barrnap/archive/'] +sources = ['%(version)s.tar.gz'] +checksums = ['36c27cd4350531d98b3b2fb7d294a2d35c15b7365771476456d7873ba33cce15'] + +dependencies = [ + ('Perl', '5.34.1'), + ('HMMER', '3.3.2'), + ('BEDTools', '2.30.0'), +] + +sanity_check_paths = { + 'files': ['bin/barrnap'], + 'dirs': [], +} + +sanity_check_commands = ["barrnap --help"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/b/binutils/binutils-2.40-GCCcore-11.4.0.eb b/easybuild/easyconfigs/b/binutils/binutils-2.40-GCCcore-11.4.0.eb new file mode 100644 index 00000000000..f8fd00a923f --- /dev/null +++ b/easybuild/easyconfigs/b/binutils/binutils-2.40-GCCcore-11.4.0.eb @@ -0,0 +1,31 @@ +name = 'binutils' +version = '2.40' + +homepage = 'https://directory.fsf.org/project/binutils/' +description = "binutils: GNU binary utilities" + +toolchain = {'name': 'GCCcore', 'version': '11.4.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] +checksums = ['d7f82c4047decf43a6f769ac32456a92ddb6932409a585c633cdd4e9df23d956'] + +builddependencies = [ + ('flex', '2.6.4'), + ('Bison', '3.8.2'), + # use same binutils version that was used when building GCC toolchain, to 'bootstrap' this binutils + ('binutils', version, '', SYSTEM) +] + +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.13'), +] + +# 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/boto3/boto3-1.26.163-GCCcore-12.2.0.eb b/easybuild/easyconfigs/b/boto3/boto3-1.26.163-GCCcore-12.2.0.eb new file mode 100644 index 00000000000..8a9debf1c2c --- /dev/null +++ b/easybuild/easyconfigs/b/boto3/boto3-1.26.163-GCCcore-12.2.0.eb @@ -0,0 +1,39 @@ +easyblock = 'PythonBundle' + +name = 'boto3' +version = '1.26.163' + +homepage = 'https://github.com/boto/boto3' +description = """Boto3 is the Amazon Web Services (AWS) Software Development Kit +(SDK) for Python, which allows Python developers to write software that makes +use of services like Amazon S3 and Amazon EC2.""" + +toolchain = {'name': 'GCCcore', 'version': '12.2.0'} + +builddependencies = [ + ('binutils', '2.39'), +] + +dependencies = [ + ('Python', '3.10.8'), +] + +exts_list = [ + ('botocore', '1.29.163', { + 'checksums': ['f374bea656bf9025ad685f47e7b8ff9e20b1a2584823855ba1c4c58957768612'], + }), + ('jmespath', '1.0.1', { + 'checksums': ['90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe'], + }), + ('s3transfer', '0.6.1', { + 'checksums': ['640bb492711f4c0c0905e1f62b6aaeb771881935ad27884852411f8e9cacbca9'], + }), + (name, version, { + 'checksums': ['341ad62c53f9717cfe5fb2ae33e34f2dd3ee930abaa0fc864a10c018c0c78783'], + }), +] + +use_pip = True +sanity_pip_check = True + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/b/build/build-0.10.0-foss-2022b.eb b/easybuild/easyconfigs/b/build/build-0.10.0-foss-2022b.eb new file mode 100644 index 00000000000..784b28f5fb3 --- /dev/null +++ b/easybuild/easyconfigs/b/build/build-0.10.0-foss-2022b.eb @@ -0,0 +1,31 @@ +easyblock = 'PythonBundle' + +name = 'build' +version = '0.10.0' + +homepage = 'https://github.com/pypa/build' +description = """A simple, correct Python build frontend.""" + +toolchain = {'name': 'foss', 'version': '2022b'} + +dependencies = [ + ('Python', '3.10.8'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('pyproject_hooks', '1.0.0', { + 'checksums': ['f271b298b97f5955d53fb12b72c1fb1948c22c1a6b70b315c54cedaca0264ef5'], + }), + (name, version, { + 'checksums': ['d5b71264afdb5951d6704482aac78de887c80691c52b88a9ad195983ca2c9269'], + }), +] + +sanity_check_commands = [ + "python3 -m build -V", +] + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/c/CASA/CASA-6.5.5-21-py3.8.eb b/easybuild/easyconfigs/c/CASA/CASA-6.5.5-21-py3.8.eb new file mode 100644 index 00000000000..17290c03cf6 --- /dev/null +++ b/easybuild/easyconfigs/c/CASA/CASA-6.5.5-21-py3.8.eb @@ -0,0 +1,29 @@ +easyblock = "Tarball" + +name = 'CASA' +version = '6.5.5-21' +versionsuffix = '-py3.8' + +homepage = 'https://casa.nrao.edu/' +description = """ +CASA, the Common Astronomy Software Applications package, is the primary data processing software for the Atacama Large +Millimeter/submillimeter Array (ALMA) and NSF's Karl G. Jansky Very Large Array (VLA), and is frequently used also for +other radio telescopes. The CASA software can process data from both single-dish and aperture-synthesis telescopes, and +one of its core functionalities is to support the data reduction and imaging pipelines for ALMA, VLA and the VLA Sky +Survey (VLASS). +""" + +toolchain = SYSTEM + +# Some hosts struggle with SSL handshake during download, manual download may be required. +# Ref. https://github.com/easybuilders/easybuild-easyconfigs/pull/18075) +source_urls = ['https://casa.nrao.edu/download/distro/casa/release/rhel/'] +sources = ['casa-%%(version)s%s.tar.xz' % versionsuffix] +checksums = ['f1bbd088a1aa0130984a684ade03702f2ff93627af14b038dce01d8253f58c15'] + +sanity_check_paths = { + 'files': ['bin/casaviewer', 'bin/casa'], + 'dirs': [] +} + +moduleclass = 'astro' diff --git a/easybuild/easyconfigs/c/CD-HIT/CD-HIT-4.8.1-GCC-12.2.0.eb b/easybuild/easyconfigs/c/CD-HIT/CD-HIT-4.8.1-GCC-12.2.0.eb new file mode 100644 index 00000000000..2ea7a9a4fae --- /dev/null +++ b/easybuild/easyconfigs/c/CD-HIT/CD-HIT-4.8.1-GCC-12.2.0.eb @@ -0,0 +1,39 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# changed toolchain and Perl version +# Updated by: Thomas Eylenbosch(Gluo N.V.) + +easyblock = 'MakeCp' + +name = 'CD-HIT' +version = '4.8.1' + +homepage = 'http://weizhongli-lab.org/cd-hit/' +description = """ CD-HIT is a very widely used program for clustering and + comparing protein or nucleotide sequences.""" + +toolchain = {'name': 'GCC', 'version': '12.2.0'} +toolchainopts = {'openmp': True} + +source_urls = ['https://github.com/weizhongli/cdhit/releases/download/V%(version)s/'] +sources = ['%(namelower)s-v%(version)s-2019-0228.tar.gz'] +checksums = ['26172dba3040d1ae5c73ff0ac6c3be8c8e60cc49fc7379e434cdf9cb1e7415de'] + +dependencies = [ + ('Perl', '5.36.0'), + ('zlib', '1.2.12'), +] + +buildopts = ' CC="$CXX" CCFLAGS="$CPPFLAGS $CXXFLAGS"' + +local_list_of_executables = ['cd-hit', 'cd-hit-est', 'cd-hit-2d', 'cd-hit-est-2d', 'cd-hit-div', 'cd-hit-454'] + +files_to_copy = [(local_list_of_executables, 'bin'), (['*.pl'], 'bin'), 'README', 'doc', 'license.txt'] + +fix_perl_shebang_for = ['bin/*.pl'] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in local_list_of_executables], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/c/CHERAB/CHERAB-1.4.0-foss-2020b.eb b/easybuild/easyconfigs/c/CHERAB/CHERAB-1.4.0-foss-2020b.eb new file mode 100644 index 00000000000..e87a4eff595 --- /dev/null +++ b/easybuild/easyconfigs/c/CHERAB/CHERAB-1.4.0-foss-2020b.eb @@ -0,0 +1,31 @@ +easyblock = 'PythonPackage' + +name = 'CHERAB' +version = '1.4.0' + +homepage = 'https://cherab.github.io/documentation/index.html' + +description = """CHERAB is a python library for forward modelling diagnostics + based on spectroscopic plasma emission.""" + +toolchain = {'name': 'foss', 'version': '2020b'} + +sources = [SOURCELOWER_TAR_GZ] +checksums = ['c0b3c48e91582ca7e9aad0f45f982791820e070ad1c1fb17d41d58c35cadda8b'] + +builddependencies = [ + ('Cython', '3.0a5'), +] + +dependencies = [ + ('Python', '3.8.6'), + ('SciPy-bundle', '2020.11'), + ('matplotlib', '3.3.3'), + ('Raysect', '0.7.1') +] + +download_dep_fail = True +use_pip = True +sanity_pip_check = True + +moduleclass = 'phys' diff --git a/easybuild/easyconfigs/c/CHERAB/CHERAB-1.4.0-intel-2020b.eb b/easybuild/easyconfigs/c/CHERAB/CHERAB-1.4.0-intel-2020b.eb new file mode 100644 index 00000000000..95c8e30c605 --- /dev/null +++ b/easybuild/easyconfigs/c/CHERAB/CHERAB-1.4.0-intel-2020b.eb @@ -0,0 +1,31 @@ +easyblock = 'PythonPackage' + +name = 'CHERAB' +version = '1.4.0' + +homepage = 'https://cherab.github.io/documentation/index.html' + +description = """CHERAB is a python library for forward modelling diagnostics + based on spectroscopic plasma emission.""" + +toolchain = {'name': 'intel', 'version': '2020b'} + +sources = [SOURCELOWER_TAR_GZ] +checksums = ['c0b3c48e91582ca7e9aad0f45f982791820e070ad1c1fb17d41d58c35cadda8b'] + +builddependencies = [ + ('Cython', '3.0a5'), +] + +dependencies = [ + ('Python', '3.8.6'), + ('SciPy-bundle', '2020.11'), + ('matplotlib', '3.3.3'), + ('Raysect', '0.7.1') +] + +download_dep_fail = True +use_pip = True +sanity_pip_check = True + +moduleclass = 'phys' diff --git a/easybuild/easyconfigs/c/CLHEP/CLHEP-2.4.5.3-GCC-11.3.0.eb b/easybuild/easyconfigs/c/CLHEP/CLHEP-2.4.5.3-GCC-11.3.0.eb new file mode 100644 index 00000000000..5abbe184435 --- /dev/null +++ b/easybuild/easyconfigs/c/CLHEP/CLHEP-2.4.5.3-GCC-11.3.0.eb @@ -0,0 +1,27 @@ +easyblock = 'CMakeMake' + +name = 'CLHEP' +version = '2.4.5.3' + +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': '11.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://proj-clhep.web.cern.ch/proj-clhep/dist1/'] +sources = [SOURCELOWER_TGZ] +checksums = ['45f63eeb097f02fe67b86a7dadbf10d409b401c28a1a3e172db36252c3097c13'] + +builddependencies = [('CMake', '3.23.1')] + +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/CLHEP/CLHEP-2.4.6.2-GCC-11.3.0.eb b/easybuild/easyconfigs/c/CLHEP/CLHEP-2.4.6.2-GCC-11.3.0.eb new file mode 100644 index 00000000000..f557d9b7075 --- /dev/null +++ b/easybuild/easyconfigs/c/CLHEP/CLHEP-2.4.6.2-GCC-11.3.0.eb @@ -0,0 +1,29 @@ +easyblock = 'CMakeMake' + +name = 'CLHEP' +version = '2.4.6.2' + +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': '11.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://proj-clhep.web.cern.ch/proj-clhep/dist1/'] +sources = [SOURCELOWER_TGZ] +checksums = ['aded73e49bac85a5b4e86f64a0ee3d6f3cfe5551b0f7731c78b6d8f9dac6e8dc'] + +builddependencies = [ + ('CMake', '3.24.3'), +] + +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/CNVkit/CNVkit-0.9.10-foss-2022b-R-4.2.2.eb b/easybuild/easyconfigs/c/CNVkit/CNVkit-0.9.10-foss-2022b-R-4.2.2.eb new file mode 100644 index 00000000000..66c165e9b21 --- /dev/null +++ b/easybuild/easyconfigs/c/CNVkit/CNVkit-0.9.10-foss-2022b-R-4.2.2.eb @@ -0,0 +1,57 @@ +easyblock = 'PythonBundle' + +name = 'CNVkit' +version = '0.9.10' +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': '2022b'} + +dependencies = [ + ('Python', '3.10.8'), + ('scikit-learn', '1.2.1'), + ('Biopython', '1.81'), + ('matplotlib', '3.7.0'), + ('networkx', '3.0'), + ('Pillow', '9.4.0'), + ('Pysam', '0.21.0'), + ('PyYAML', '6.0'), + ('pyfaidx', '0.7.2.1'), + ('R', '4.2.2'), + ('R-bundle-Bioconductor', '3.16', versionsuffix), +] + +exts_list = [ + ('reportlab', '3.6.8', { + 'checksums': ['dc7657fcb0bc3e485c3c869a44dddb52d711356a01a456664b7bef827222c982'], + }), + ('pomegranate', '0.14.8', { + 'checksums': ['2296651290482dd53204ffaaaea267ceee057ce1b3ef1f9d9793febe66d6693d'], + }), + (name, version, { + 'modulename': 'cnvlib', + # workflow test disabled for now during build - directory available for later running + # 'postinstallcmds': ['cd test/ && make'], + 'postinstallcmds': ['cp -a test %(installdir)s'], + 'source_tmpl': 'v%(version)s.tar.gz', + 'source_urls': ['https://github.com/etal/cnvkit/archive/'], + 'checksums': ['56739496f1f59511661107e662d81e5fd8af413571e853b0a1b34d882a19349a'], + }), +] + +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/CUDA/CUDA-12.1.1.eb b/easybuild/easyconfigs/c/CUDA/CUDA-12.1.1.eb new file mode 100644 index 00000000000..ea9cf216ca3 --- /dev/null +++ b/easybuild/easyconfigs/c/CUDA/CUDA-12.1.1.eb @@ -0,0 +1,24 @@ +name = 'CUDA' +version = '12.1.1' +local_nv_version = '530.30.02' + +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: + 'd74022d41d80105319dfa21beea39b77a5b9919539c0487a05caaf2446d6a70e', + 'cuda_%%(version)s_%s_linux_ppc64le.run' % local_nv_version: + 'c5950381f2c01fd52692372fc8e51d599e940ada2af2c82c3cc854ecff933eae', + 'cuda_%%(version)s_%s_linux_sbsa.run' % local_nv_version: + '45ea4cd860f0a26d3db8ce032530f2ee0b55abdd587545213d395a73623b4278' +}] + +moduleclass = 'system' diff --git a/easybuild/easyconfigs/c/CUDA/CUDA-12.2.0.eb b/easybuild/easyconfigs/c/CUDA/CUDA-12.2.0.eb new file mode 100644 index 00000000000..d6ea95abd16 --- /dev/null +++ b/easybuild/easyconfigs/c/CUDA/CUDA-12.2.0.eb @@ -0,0 +1,24 @@ +name = 'CUDA' +version = '12.2.0' +local_nv_version = '535.54.03' + +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: + 'ecf3d2afadcbac029f0f4505785810d52d006e4b87ba79ff3f984336a2bbf518', + 'cuda_%%(version)s_%s_linux_ppc64le.run' % local_nv_version: + 'f7b5fde5f727b51c380c6199200d0525e8585475944ff8ad2791d06734f54230', + 'cuda_%%(version)s_%s_linux_sbsa.run' % local_nv_version: + '9c90d79bb63952cd30f1f57f9f8fe11e7a8967bba6f824df45d3464b5d37e5d8' +}] + +moduleclass = 'system' diff --git a/easybuild/easyconfigs/c/CVXOPT/CVXOPT-1.3.1-foss-2022a.eb b/easybuild/easyconfigs/c/CVXOPT/CVXOPT-1.3.1-foss-2022a.eb new file mode 100644 index 00000000000..9bac0454227 --- /dev/null +++ b/easybuild/easyconfigs/c/CVXOPT/CVXOPT-1.3.1-foss-2022a.eb @@ -0,0 +1,42 @@ +easyblock = 'PythonPackage' + +name = 'CVXOPT' +version = '1.3.1' + +homepage = 'https://cvxopt.org' +description = """CVXOPT is a free software package for convex optimization based on the Python programming language. + Its main purpose is to make the development of software for convex optimization applications straightforward by + building on Python's extensive standard library and on the strengths of Python as a high-level programming language. +""" + +toolchain = {'name': 'foss', 'version': '2022a'} +toolchainopts = {'pic': True} + +source_urls = [PYPI_LOWER_SOURCE] +sources = [SOURCELOWER_TAR_GZ] + +patches = ['CVXOPT-1.3.1_fix-setup-py.patch'] + +checksums = [ + '8d567981cbfa2a4ba1667b3e6f73cb941cf1c6992bf1438911035963294aa498', # cvxopt-1.3.1.tar.gz + '350904c0427d4652fc73b95b7e0d78a17c917cb94ed6c356dbbbfb07f2173849', # CVXOPT-1.3.1_fix-setup-py.patch +] + +dependencies = [ + ('Python', '3.10.4'), + ('SuiteSparse', '5.13.0', '-METIS-5.1.0'), + ('GSL', '2.7'), +] + +use_pip = True +sanity_pip_check = True +download_dep_fail = True + +preinstallopts = 'CVXOPT_BUILD_FFTW=1 CVXOPT_BUILD_GSL=1 CVXOPT_BLAS_EXTRA_LINK_ARGS="$LIBLAPACK" ' +preinstallopts += 'CVXOPT_FFTW_EXTRA_LINK_ARGS="$LIBFFT" CVXOPT_SUITESPARSE_SRC_DIR=$EBROOTSUITESPARSE' + +installopts = ' --no-binary cvxopt' + +sanity_check_commands = ['cd %(builddir)s/%(namelower)s-%(version)s && python -m unittest discover -s tests'] + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/c/CVXOPT/CVXOPT-1.3.1_fix-setup-py.patch b/easybuild/easyconfigs/c/CVXOPT/CVXOPT-1.3.1_fix-setup-py.patch new file mode 100644 index 00000000000..4788469ac8f --- /dev/null +++ b/easybuild/easyconfigs/c/CVXOPT/CVXOPT-1.3.1_fix-setup-py.patch @@ -0,0 +1,130 @@ +# Patches the setup.py to use EB settings for BLAS/LAPACK, FFTW, etc +# original by wpoely86@gmail.com, ported to v1.2.1 by Kenneth Hoste (HPC-UGent) +# Update: Petr Král (INUITS) +diff -u cvxopt-1.3.1/setup.py.orig cvxopt-1.3.1/setup.py +--- cvxopt-1.3.1/setup.py.orig 2023-05-10 13:52:37.000000000 +0200 ++++ cvxopt-1.3.1/setup.py 2023-06-28 10:58:21.228590970 +0200 +@@ -90,9 +90,11 @@ + LAPACK_LIB = os.environ.get("CVXOPT_LAPACK_LIB",LAPACK_LIB) + BLAS_LIB_DIR = os.environ.get("CVXOPT_BLAS_LIB_DIR",BLAS_LIB_DIR) + BLAS_EXTRA_LINK_ARGS = os.environ.get("CVXOPT_BLAS_EXTRA_LINK_ARGS",BLAS_EXTRA_LINK_ARGS) ++FFTW_EXTRA_LINK_ARGS = os.environ.get("CVXOPT_FFTW_EXTRA_LINK_ARGS",'') + if type(BLAS_LIB) is str: BLAS_LIB = BLAS_LIB.strip().split(';') + if type(LAPACK_LIB) is str: LAPACK_LIB = LAPACK_LIB.strip().split(';') +-if type(BLAS_EXTRA_LINK_ARGS) is str: BLAS_EXTRA_LINK_ARGS = BLAS_EXTRA_LINK_ARGS.strip().split(';') ++if type(BLAS_EXTRA_LINK_ARGS) is str: BLAS_EXTRA_LINK_ARGS = BLAS_EXTRA_LINK_ARGS.strip().split(' ') ++if type(FFTW_EXTRA_LINK_ARGS) is str: FFTW_EXTRA_LINK_ARGS = FFTW_EXTRA_LINK_ARGS.strip().split(' ') + BUILD_GSL = int(os.environ.get("CVXOPT_BUILD_GSL",BUILD_GSL)) + GSL_LIB_DIR = os.environ.get("CVXOPT_GSL_LIB_DIR",GSL_LIB_DIR) + GSL_INC_DIR = os.environ.get("CVXOPT_GSL_INC_DIR",GSL_INC_DIR) +@@ -128,7 +130,7 @@ + # optional modules + + if BUILD_GSL: +- gsl = Extension('gsl', libraries = M_LIB + ['gsl'] + BLAS_LIB, ++ gsl = Extension('gsl', libraries = M_LIB + ['gsl'], + include_dirs = [ GSL_INC_DIR ], + library_dirs = [ GSL_LIB_DIR, BLAS_LIB_DIR ], + define_macros = GSL_MACROS, +@@ -137,11 +139,11 @@ + extmods += [gsl]; + + if BUILD_FFTW: +- fftw = Extension('fftw', libraries = ['fftw3'] + BLAS_LIB, ++ fftw = Extension('fftw', + include_dirs = [ FFTW_INC_DIR ], + library_dirs = [ FFTW_LIB_DIR, BLAS_LIB_DIR ], + define_macros = FFTW_MACROS, +- extra_link_args = BLAS_EXTRA_LINK_ARGS, ++ extra_link_args = BLAS_EXTRA_LINK_ARGS + FFTW_EXTRA_LINK_ARGS, + sources = ['src/C/fftw.c'] ) + extmods += [fftw]; + +@@ -153,7 +155,7 @@ + extmods += [glpk]; + + if BUILD_DSDP: +- dsdp = Extension('dsdp', libraries = ['dsdp'] + LAPACK_LIB + BLAS_LIB, ++ dsdp = Extension('dsdp', libraries = ['dsdp'], + include_dirs = [ DSDP_INC_DIR ], + library_dirs = [ DSDP_LIB_DIR, BLAS_LIB_DIR ], + extra_link_args = BLAS_EXTRA_LINK_ARGS, +@@ -162,19 +164,19 @@ + + # Required modules + +-base = Extension('base', libraries = M_LIB + LAPACK_LIB + BLAS_LIB, ++base = Extension('base', + library_dirs = [ BLAS_LIB_DIR ], + define_macros = MACROS, + extra_link_args = BLAS_EXTRA_LINK_ARGS, + sources = ['src/C/base.c','src/C/dense.c','src/C/sparse.c']) + +-blas = Extension('blas', libraries = BLAS_LIB, ++blas = Extension('blas', + library_dirs = [ BLAS_LIB_DIR ], + define_macros = MACROS, + extra_link_args = BLAS_EXTRA_LINK_ARGS, + sources = ['src/C/blas.c'] ) + +-lapack = Extension('lapack', libraries = LAPACK_LIB + BLAS_LIB, ++lapack = Extension('lapack', + library_dirs = [ BLAS_LIB_DIR ], + define_macros = MACROS, + extra_link_args = BLAS_EXTRA_LINK_ARGS, +@@ -182,9 +184,10 @@ + + if not SUITESPARSE_SRC_DIR: + umfpack = Extension('umfpack', +- libraries = ['umfpack','cholmod','amd','colamd','suitesparseconfig'] + LAPACK_LIB + BLAS_LIB + RT_LIB, ++ libraries = ['umfpack','cholmod','amd','colamd','suitesparseconfig'] + RT_LIB, + include_dirs = [SUITESPARSE_INC_DIR], + library_dirs = [SUITESPARSE_LIB_DIR, BLAS_LIB_DIR], ++ extra_link_args = BLAS_EXTRA_LINK_ARGS, + sources = ['src/C/umfpack.c']) + else: + umfpack = Extension('umfpack', +@@ -195,7 +198,6 @@ + SUITESPARSE_SRC_DIR + '/SuiteSparse_config' ], + library_dirs = [ BLAS_LIB_DIR ], + define_macros = MACROS + [('NTIMER', '1'), ('NCHOLMOD', '1')], +- libraries = LAPACK_LIB + BLAS_LIB, + extra_compile_args = UMFPACK_EXTRA_COMPILE_ARGS, + extra_link_args = BLAS_EXTRA_LINK_ARGS, + sources = [ 'src/C/umfpack.c', +@@ -208,14 +210,13 @@ + + if not SUITESPARSE_SRC_DIR: + cholmod = Extension('cholmod', +- libraries = ['cholmod','colamd','amd','suitesparseconfig'] + LAPACK_LIB + BLAS_LIB + RT_LIB, ++ libraries = ['cholmod','colamd','amd','suitesparseconfig'] + RT_LIB, + include_dirs = [SUITESPARSE_INC_DIR], + library_dirs = [SUITESPARSE_LIB_DIR, BLAS_LIB_DIR], + sources = [ 'src/C/cholmod.c' ]) + else: + cholmod = Extension('cholmod', + library_dirs = [ BLAS_LIB_DIR ], +- libraries = LAPACK_LIB + BLAS_LIB, + include_dirs = [ SUITESPARSE_SRC_DIR + '/CHOLMOD/Include', + SUITESPARSE_SRC_DIR + '/COLAMD', + SUITESPARSE_SRC_DIR + '/AMD/Include', +@@ -237,17 +238,18 @@ + libraries = ['amd','suitesparseconfig'] + RT_LIB, + include_dirs = [SUITESPARSE_INC_DIR], + library_dirs = [SUITESPARSE_LIB_DIR], ++ extra_link_args = BLAS_EXTRA_LINK_ARGS, + sources = ['src/C/amd.c']) + else: + amd = Extension('amd', + include_dirs = [SUITESPARSE_SRC_DIR + '/AMD/Include', + SUITESPARSE_SRC_DIR + '/SuiteSparse_config' ], + define_macros = MACROS + [('NTIMER', '1')], ++ extra_link_args = BLAS_EXTRA_LINK_ARGS, + sources = [ 'src/C/amd.c', SUITESPARSE_SRC_DIR + '/SuiteSparse_config/SuiteSparse_config.c'] + + glob(SUITESPARSE_SRC_DIR + '/AMD/Source/*.c') ) + + misc_solvers = Extension('misc_solvers', +- libraries = LAPACK_LIB + BLAS_LIB, + library_dirs = [ BLAS_LIB_DIR ], + define_macros = MACROS, + extra_link_args = BLAS_EXTRA_LINK_ARGS, diff --git a/easybuild/easyconfigs/c/CalculiX-CrunchiX/CalculiX-CrunchiX-2.20-foss-2021a.eb b/easybuild/easyconfigs/c/CalculiX-CrunchiX/CalculiX-CrunchiX-2.20-foss-2021a.eb new file mode 100644 index 00000000000..723fc090225 --- /dev/null +++ b/easybuild/easyconfigs/c/CalculiX-CrunchiX/CalculiX-CrunchiX-2.20-foss-2021a.eb @@ -0,0 +1,50 @@ +# Author: Jasper Grimm (UoY) +easyblock = 'MakeCp' + +name = 'CalculiX-CrunchiX' +version = '2.20' + +homepage = 'http://www.calculix.de' +description = 'A Free Software Three-Dimensional Structural Finite Element Program' + +toolchain = {'name': 'foss', 'version': '2021a'} + +source_urls = ['http://www.dhondt.de'] +sources = ['ccx_%(version)s.src.tar.bz2'] +patches = ['CalculiX-CrunchiX-2.20_improve-makefile.patch'] +checksums = [ + {'ccx_2.20.src.tar.bz2': '63bf6ea09e7edcae93e0145b1bb0579ea7ae82e046f6075a27c8145b72761bcf'}, + {'CalculiX-CrunchiX-2.20_improve-makefile.patch': + 'ada15598029d231f804f61d959ce91e2bb3a58749fe5955398f42fbe87dc970c'}, +] + +builddependencies = [ + ('Perl', '5.32.1', '-minimal'), +] + +dependencies = [ + ('arpack-ng', '3.8.0'), + ('SPOOLES', '2.2'), +] + +start_dir = 'CalculiX/ccx_%(version)s/src' + +prebuildopts = 'CFLAGS="$CFLAGS $CPPFLAGS" FFLAGS="$FFLAGS -fallow-argument-mismatch"' +buildopts = 'SPOOLES_INC_DIR="$EBROOTSPOOLES/include/spooles"' + +files_to_copy = [(['ccx_%(version)s'], 'bin')] + +postinstallcmds = ['cd %(installdir)s/bin && ln -sf ccx_%(version)s ccx'] + +sanity_check_paths = { + 'files': ['bin/ccx'], + 'dirs': [], +} + +sanity_check_commands = [ + # ccx {,-v} exit with code 201 + "ccx | grep 'Usage: CalculiX.exe -i jobname'", + "ccx -v | grep 'Version %(version)s'", +] + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/c/CalculiX-CrunchiX/CalculiX-CrunchiX-2.20_improve-makefile.patch b/easybuild/easyconfigs/c/CalculiX-CrunchiX/CalculiX-CrunchiX-2.20_improve-makefile.patch new file mode 100644 index 00000000000..63ef672d908 --- /dev/null +++ b/easybuild/easyconfigs/c/CalculiX-CrunchiX/CalculiX-CrunchiX-2.20_improve-makefile.patch @@ -0,0 +1,39 @@ +Author: Jasper Grimm +Description: Makefile hardening, link shared libraries not hardcoded static ones +---------------------------------------------------------------------------------- +diff -Nru CalculiX/ccx_2.20/src/Makefile CalculiX.1/ccx_2.20/src/Makefile +--- CalculiX/ccx_2.20/src/Makefile 2022-07-31 17:06:31.000000000 +0100 ++++ CalculiX.1/ccx_2.20/src/Makefile 2022-12-06 16:24:27.000000000 +0000 +@@ -1,9 +1,9 @@ + +-CFLAGS = -Wall -O2 -I ../../../SPOOLES.2.2 -DARCH="Linux" -DSPOOLES -DARPACK -DMATRIXSTORAGE -DNETWORKOUT +-FFLAGS = -Wall -O2 ++CFLAGS += -Wall -O2 -I$(SPOOLES_INC_DIR) -DARCH="Linux" -DSPOOLES -DARPACK -DMATRIXSTORAGE -DNETWORKOUT ++FFLAGS += -Wall -O2 + +-CC=cc +-FC=gfortran ++CC?=cc ++FC?=gfortran + + .c.o : + $(CC) $(CFLAGS) -c $< +@@ -18,15 +18,10 @@ + OCCXC = $(SCCXC:.c=.o) + OCCXMAIN = $(SCCXMAIN:.c=.o) + +-DIR=../../../SPOOLES.2.2 ++LIBS = -lspooles -lpthread -larpack -lflexiblas -lm -lc + +-LIBS = \ +- $(DIR)/spooles.a \ +- ../../../ARPACK/libarpack_INTEL.a \ +- -lpthread -lm -lc +- +-ccx_2.20: $(OCCXMAIN) ccx_2.20.a $(LIBS) +- ./date.pl; $(CC) $(CFLAGS) -c ccx_2.20.c; $(FC) -Wall -O2 -o $@ $(OCCXMAIN) ccx_2.20.a $(LIBS) -fopenmp ++ccx_2.20: $(OCCXMAIN) ccx_2.20.a ++ ./date.pl; $(CC) $(CFLAGS) -c ccx_2.20.c; $(FC) -Wall -O2 -o $@ $(OCCXMAIN) ccx_2.20.a $(LIBS) -fopenmp $(LDFLAGS) + + ccx_2.20.a: $(OCCXF) $(OCCXC) + ar vr $@ $? diff --git a/easybuild/easyconfigs/c/Cantera/Cantera-2.6.0-foss-2022a.eb b/easybuild/easyconfigs/c/Cantera/Cantera-2.6.0-foss-2022a.eb index 2b8fbc5a70c..c5e1ed193ac 100644 --- a/easybuild/easyconfigs/c/Cantera/Cantera-2.6.0-foss-2022a.eb +++ b/easybuild/easyconfigs/c/Cantera/Cantera-2.6.0-foss-2022a.eb @@ -15,9 +15,12 @@ checksums = ['7273622ea76a53373cee820f939613b15eea3dd83db6e1b127c5ed043f77dc5b'] dependencies = [ ('Python', '3.10.4'), - ('SciPy-bundle', '2022.05'), + ('h5py', '3.7.0'), + ('pygraphviz', '1.10'), + ('JupyterLab', '3.5.0'), + ('matplotlib', '3.5.2'), ('Boost', '1.79.0'), - ('SUNDIALS', '6.3.0'), + ('SUNDIALS', '6.5.1'), ('yaml-cpp', '0.7.0'), ('ruamel.yaml', '0.17.21'), ] diff --git a/easybuild/easyconfigs/c/Cellpose/Cellpose-2.2.2-foss-2022a-CUDA-11.7.0.eb b/easybuild/easyconfigs/c/Cellpose/Cellpose-2.2.2-foss-2022a-CUDA-11.7.0.eb new file mode 100644 index 00000000000..d0f93dfe418 --- /dev/null +++ b/easybuild/easyconfigs/c/Cellpose/Cellpose-2.2.2-foss-2022a-CUDA-11.7.0.eb @@ -0,0 +1,61 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# Author: Denis Kristak +easyblock = 'PythonBundle' + +name = 'Cellpose' +version = '2.2.2' +versionsuffix = '-CUDA-%(cudaver)s' + +homepage = 'https://www.cellpose.org' +description = """a generalist algorithm for cellular segmentation""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +builddependencies = [ + ('CMake', '3.23.1'), +] + +dependencies = [ + ('CUDA', '11.7.0', '', SYSTEM), + ('Python', '3.10.4'), + ('OpenCV', '4.6.0', versionsuffix + '-contrib'), + ('SciPy-bundle', '2022.05'), + ('PyQt5', '5.15.5'), + ('PyTorch', '1.12.0', versionsuffix), + ('PyQtGraph', '0.13.3'), + ('numba', '0.56.4', versionsuffix), + ('tqdm', '4.64.0'), + ('imagecodecs', '2022.9.26'), + ('scikit-build', '0.15.0'), +] + +use_pip = True + +exts_list = [ + ('tifffile', '2023.4.12', { + 'checksums': ['2fa99f9890caab919d932a0acaa9d0f5843dc2ef3594e212963932e20713badd'], + }), + ('natsort', '8.3.1', { + 'checksums': ['517595492dde570a4fd6b6a76f644440c1ba51e2338c8a671d7f0475fda8f9fd'], + }), + ('fastremap', '1.13.5', { + 'preinstallopts': "export PBR_VERSION=1.2.3 && ", + 'source_tmpl': '%(version)s.tar.gz', + 'source_urls': ['https://github.com/seung-lab/fastremap/archive/'], + 'checksums': ['ee0e9e798e9f331b7c46e98768735a42bb6e287b3aa56c31c322ba585f4036b7'], + }), + ('roifile', '2023.5.12', { + 'checksums': ['32eeba0d9ad52cc249d6a234b737c1808a6c5d7d9baae6453709eb74222b3433'], + }), + (name, version, { + # OpenCV dependency provides opencv-contrib-python (equivalent to opencv-python-headless) + 'preinstallopts': "sed -i 's/opencv-python-headless/opencv-contrib-python/g' setup.py && ", + 'source_tmpl': '%(namelower)s-%(version)s.tar.gz', + 'use_pip_extras': 'gui', + 'checksums': ['f21773d364d117eb6fd84c3fb27375845ef373793139ef1668c15491294a3b47'], + }), +] + +sanity_pip_check = True + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/c/Cellpose/Cellpose-2.2.2-foss-2022a.eb b/easybuild/easyconfigs/c/Cellpose/Cellpose-2.2.2-foss-2022a.eb new file mode 100644 index 00000000000..ccb478c890b --- /dev/null +++ b/easybuild/easyconfigs/c/Cellpose/Cellpose-2.2.2-foss-2022a.eb @@ -0,0 +1,59 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# Author: Denis Kristak +easyblock = 'PythonBundle' + +name = 'Cellpose' +version = '2.2.2' + +homepage = 'https://www.cellpose.org' +description = """a generalist algorithm for cellular segmentation""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +builddependencies = [ + ('CMake', '3.23.1'), +] + +dependencies = [ + ('Python', '3.10.4'), + ('OpenCV', '4.6.0', '-contrib'), + ('SciPy-bundle', '2022.05'), + ('PyQt5', '5.15.5'), + ('PyTorch', '1.12.0'), + ('PyQtGraph', '0.13.3'), + ('numba', '0.56.4'), + ('tqdm', '4.64.0'), + ('imagecodecs', '2022.9.26'), + ('scikit-build', '0.15.0'), +] + +use_pip = True + +exts_list = [ + ('tifffile', '2023.4.12', { + 'checksums': ['2fa99f9890caab919d932a0acaa9d0f5843dc2ef3594e212963932e20713badd'], + }), + ('natsort', '8.3.1', { + 'checksums': ['517595492dde570a4fd6b6a76f644440c1ba51e2338c8a671d7f0475fda8f9fd'], + }), + ('fastremap', '1.13.5', { + 'preinstallopts': "export PBR_VERSION=1.2.3 && ", + 'source_tmpl': '%(version)s.tar.gz', + 'source_urls': ['https://github.com/seung-lab/fastremap/archive/'], + 'checksums': ['ee0e9e798e9f331b7c46e98768735a42bb6e287b3aa56c31c322ba585f4036b7'], + }), + ('roifile', '2023.5.12', { + 'checksums': ['32eeba0d9ad52cc249d6a234b737c1808a6c5d7d9baae6453709eb74222b3433'], + }), + (name, version, { + # OpenCV dependency provides opencv-contrib-python (equivalent to opencv-python-headless) + 'preinstallopts': "sed -i 's/opencv-python-headless/opencv-contrib-python/g' setup.py && ", + 'source_tmpl': '%(namelower)s-%(version)s.tar.gz', + 'use_pip_extras': 'gui', + 'checksums': ['f21773d364d117eb6fd84c3fb27375845ef373793139ef1668c15491294a3b47'], + }), +] + +sanity_pip_check = True + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/c/Circuitscape/Circuitscape-5.12.3-Julia-1.7.2.eb b/easybuild/easyconfigs/c/Circuitscape/Circuitscape-5.12.3-Julia-1.7.2.eb new file mode 100644 index 00000000000..c7d7bc3c47c --- /dev/null +++ b/easybuild/easyconfigs/c/Circuitscape/Circuitscape-5.12.3-Julia-1.7.2.eb @@ -0,0 +1,404 @@ +easyblock = 'JuliaBundle' + +name = 'Circuitscape' +version = '5.12.3' +_julia_ver = '1.7.2' +versionsuffix = "-Julia-%s" % _julia_ver + +homepage = 'https://github.com/Circuitscape/Circuitscape.jl' +description = "Algorithms from circuit theory to predict connectivity in heterogeneous landscapes" + +toolchain = SYSTEM + +dependencies = [ + ('Julia', _julia_ver, '-linux-%s' % ARCH, True), +] + +exts_list = [ + ('Preferences', '1.3.0', { + 'source_urls': ['https://github.com/JuliaPackaging/Preferences.jl/archive/'], + 'checksums': ['a87c1fc863fcb6240c3f4327776fa01a1f87e0d2df5a0c1850f789ce24469da2'], + }), + ('JLLWrappers', '1.4.1', { + 'source_urls': ['https://github.com/JuliaPackaging/JLLWrappers.jl/archive/'], + 'checksums': ['2cb61d4171e8ebc74e36ee20e6e0ba959aa5525a9c2fef5547e0993566018775'], + }), + ('IntelOpenMP_jll', '2018.0.3+2', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/IntelOpenMP_jll.jl/archive/'], + 'sources': ['IntelOpenMP-v%(version)s.tar.gz'], + 'checksums': ['4e8586f0b794ba5cf159dde99774aab4509a32555fc900140f533999db476aab'], + }), + ('MKL_jll', '2022.2.0+0', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/MKL_jll.jl/archive/'], + 'sources': ['MKL-v%(version)s.tar.gz'], + 'checksums': ['228a80c33ae71a3efc78ed9f6a3329fd20a48ad80ff7af44f0d42057e1af4241'], + }), + ('Reexport', '1.2.2', { + 'source_urls': ['https://github.com/simonster/Reexport.jl/archive/'], + 'checksums': ['2566f7776aae9697cbf15765fc32187f46dd51200abc953a0266863ad67132b3'], + }), + ('CommonSolve', '0.2.3', { + 'source_urls': ['https://github.com/SciML/CommonSolve.jl/archive/'], + 'checksums': ['5a1fe0c82571697e45bf8d4488b68a656584b07c8a2045b26e52ae01ec118e1b'], + }), + ('AlgebraicMultigrid', '0.5.1', { + 'source_urls': ['https://github.com/JuliaLinearAlgebra/AlgebraicMultigrid.jl/archive/'], + 'checksums': ['c33896880d1495b2ffc80dcbe5a2a2d6f305a9555e041ebd1191899e824e75e7'], + }), + ('Pardiso', '0.5.4', { + 'source_urls': ['https://github.com/JuliaSparse/Pardiso.jl/archive/'], + 'checksums': ['b60a693dd71a19fc3155b36683f8c812f217de59ee7eda77c9cd0855468a3c4a'], + }), + ('GZip', '0.5.1', { + 'source_urls': ['https://github.com/JuliaIO/GZip.jl/archive/'], + 'checksums': ['c74976af07cbe835a5bb5396ade41feb90a782267e94bc3a98bb1ad1446ba54f'], + }), + ('SnoopPrecompile', '2.9.5', { + 'source_urls': ['https://github.com/timholy/SnoopCompile.jl/archive/'], + 'start_dir': '%(name)s', + 'checksums': ['a86ca9179fac77efd3771c71c620914aa6909754d474cd754f2ee8600fad9a4a'], + }), + ('RecipesBase', '1.3.0', { + 'source_urls': ['https://github.com/JuliaPlots/RecipesBase.jl/archive/'], + 'checksums': ['2a4b7371e565f175a018c0df0cc24dce41fc2f103ad80de87f6c5bc600dbca1a'], + }), + ('NaNMath', '1.0.1', { + 'source_urls': ['https://github.com/JuliaMath/NaNMath.jl/archive/'], + 'checksums': ['caa5666b24b4c5fb8f4d3e4b650f6360e8e19b8bd2d1cb3019a15849c363c45d'], + }), + ('FixedPointNumbers', '0.8.4', { + 'source_urls': ['https://github.com/JuliaMath/FixedPointNumbers.jl/archive/'], + 'checksums': ['6ccfbaf032ed49cf9c82e2770fa8fd53dc88bea12c3799f3fc7f5bc9a33cb89c'], + }), + ('ColorTypes', '0.11.4', { + 'source_urls': ['https://github.com/JuliaGraphics/ColorTypes.jl/archive/'], + 'checksums': ['b188587bb23a59ae5898d741197767e1ab9ad7463eda93efa9a4903863033941'], + }), + ('Colors', '0.12.10', { + 'source_urls': ['https://github.com/JuliaGraphics/Colors.jl/archive/'], + 'checksums': ['a428649a4dc839bb04d43b6424943442609436a8472142076396bbe08c154219'], + }), + ('TensorCore', '0.1.1', { + 'source_urls': ['https://github.com/JuliaMath/TensorCore.jl/archive/'], + 'checksums': ['af2696c11f0fdcb884cea2446297cb792ada202ef2e7b438db65a981ba20c34c'], + }), + ('Compat', '4.5.0', { + 'source_urls': ['https://github.com/JuliaLang/Compat.jl/archive/'], + 'checksums': ['247e7c5f9fd405233bd2b4c96fb3f6deb4a27385d9c6c4d0a74eed6fbad0c02f'], + }), + ('ChainRulesCore', '1.15.6', { + 'source_urls': ['https://github.com/JuliaDiff/ChainRulesCore.jl/archive/'], + 'checksums': ['79e22fc981fa7c44b3efc2f07903f555c5520dc38d0d3d31b6390980c786cb60'], + }), + ('IrrationalConstants', '0.1.1', { + 'source_urls': ['https://github.com/JuliaMath/IrrationalConstants.jl/archive/'], + 'checksums': ['2eccfb55449d25d363d96ce116c45b39110d1572248e04e136ec4c37fe84ba96'], + }), + ('ChangesOfVariables', '0.1.4', { + 'source_urls': ['https://github.com/JuliaMath/ChangesOfVariables.jl/archive/'], + 'checksums': ['2eb2eb59711d53d284a9cc998e9facf3a1720cfde26eb672676cbe944fa9224a'], + }), + ('DocStringExtensions', '0.9.3', { + 'source_urls': ['https://github.com/JuliaDocs/DocStringExtensions.jl/archive/'], + 'checksums': ['9c712789b1cbd367bced9fafb995dee026f931ac68b55e476d1c666210564ae6'], + }), + ('InverseFunctions', '0.1.8', { + 'source_urls': ['https://github.com/JuliaMath/InverseFunctions.jl/archive/'], + 'checksums': ['6b3e72037c2198268bc5247daeb14eaa5cf2b37f41c7c735b3cd2355bad1584b'], + }), + ('LogExpFunctions', '0.3.19', { + 'source_urls': ['https://github.com/JuliaStats/LogExpFunctions.jl/archive/'], + 'checksums': ['759e0c217d3a2d665229cd2a019adc03b4c3691934cf9662bff04afec47844e4'], + }), + ('OpenSpecFun_jll', '0.5.5+0', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/OpenSpecFun_jll.jl/archive/'], + 'sources': ['OpenSpecFun-v%(version)s.tar.gz'], + 'checksums': ['6d1df617dd0a80fc0de5bc41a092e51f72782dbfd296c64e151707733cb57b6f'], + }), + ('SpecialFunctions', '2.1.7', { + 'source_urls': ['https://github.com/JuliaMath/SpecialFunctions.jl/archive/'], + 'checksums': ['a2c917bdb7a854a6bf76eaca7891b4faaf1b99d39ef976d22eb5694deae57da9'], + }), + ('ColorVectorSpace', '0.9.9', { + 'source_urls': ['https://github.com/JuliaGraphics/ColorVectorSpace.jl/archive/'], + 'checksums': ['65fbeb5ab58ad0063dcd2d1451b4f0744680eb35f2965b382330158d4b076f15'], + }), + ('ColorSchemes', '3.20.0', { + 'source_urls': ['https://github.com/JuliaGraphics/ColorSchemes.jl/archive/'], + 'checksums': ['270a075dcbc73de571a51ffc24b535ab50c2755d225d126d49982d8ffde42df0'], + }), + ('PlotUtils', '1.3.4', { + 'source_urls': ['https://github.com/JuliaPlots/PlotUtils.jl/archive/'], + 'checksums': ['823e5410b2195c9c20803560f1528306d2c8c33986120c2c52d3aa8ffb75f200'], + }), + ('IterativeSolvers', '0.9.2', { + 'source_urls': ['https://github.com/JuliaLinearAlgebra/IterativeSolvers.jl/archive/'], + 'checksums': ['95fbfa39aa68e989ae6bad2f51ce0fe5635ba3f3375d0ea4d9422e77ff924a9b'], + }), + ('Inflate', '0.1.3', { + 'source_urls': ['https://github.com/GunnarFarneback/Inflate.jl/archive/'], + 'sources': [{'download_filename': '8bae86f.tar.gz', 'filename': 'Inflate.v%(version)s.tar.gz'}], + 'checksums': ['7a22ff75ad9bb1975e578877a817056a2fdd71a68fe824cbb4eb354202f03d37'], + }), + ('MacroTools', '0.5.10', { + 'source_urls': ['https://github.com/FluxML/MacroTools.jl/archive/'], + 'checksums': ['0c61fe20a40346b0d1c248ff57e047b669ae47ad2d971b2ca7b91efdddff71ac'], + }), + ('SimpleTraits', '0.9.4', { + 'source_urls': ['https://github.com/mauro3/SimpleTraits.jl/archive/'], + 'checksums': ['56bf55e12e6aba4ad55cc831150b1c9b0ca1647956d306c9ffb57b7db5315568'], + }), + ('OrderedCollections', '1.4.1', { + 'source_urls': ['https://github.com/JuliaCollections/OrderedCollections.jl/archive/'], + 'checksums': ['ad6d191a2bf6f0c04abaf795fa93b3db6c3f3fb97498b464fcf7297b3a4bf6b6'], + }), + ('DataStructures', '0.18.13', { + 'source_urls': ['https://github.com/JuliaCollections/DataStructures.jl/archive/'], + 'checksums': ['0d34f8a04390cac93321acbe9a15b5ecdd01473f1e5d9696ff2ce0625ff85804'], + }), + ('StaticArraysCore', '1.4.0', { + 'source_urls': ['https://github.com/JuliaArrays/StaticArraysCore.jl/archive/'], + 'checksums': ['75000b27d655effa6b0b6ee20071ce476895fd6c5551a3143ee691e535d2b4fb'], + }), + ('StaticArrays', '1.5.11', { + 'source_urls': ['https://github.com/JuliaArrays/StaticArrays.jl/archive/'], + 'checksums': ['aee09ee3f32ffe437e7fcb7cd69aab840cbff97bbb5896984902afb83d5dc89c'], + }), + ('ArnoldiMethod', '0.2.0', { + 'source_urls': ['https://github.com/JuliaLinearAlgebra/ArnoldiMethod.jl/archive/'], + 'checksums': ['cd232b8fe2c6f9277fb646d03d77cc1fc80fd5b3278db6b3dfa32fb20d5c0a21'], + }), + ('Graphs', '1.7.4', { + 'source_urls': ['https://github.com/JuliaGraphs/Graphs.jl/archive/'], + 'checksums': ['b66aea6943ce1ca087d38c998c2b8c4fd7fb2868dedd4049027cb5bf716a7163'], + }), + ('SimpleWeightedGraphs', '1.2.1', { + 'source_urls': ['https://github.com/JuliaGraphs/SimpleWeightedGraphs.jl/archive/'], + 'sources': [{'download_filename': 'bf40216.tar.gz', 'filename': 'SimpleWeightedGraphs.v%(version)s.tar.gz'}], + 'checksums': ['ba62083cc2575c8eeac80f1bcdd31ba6aa88bb98f462029e950a397dc9f21294'], + }), + ('Adapt', '3.4.0', { + 'source_urls': ['https://github.com/JuliaGPU/Adapt.jl/archive/'], + 'checksums': ['de313f013c0c3125164efcc74299f52c9a9f1b5bbff99856df755c3cdb7fb72a'], + }), + ('OffsetArrays', '1.12.8', { + 'source_urls': ['https://github.com/JuliaArrays/OffsetArrays.jl/archive/'], + 'checksums': ['c4a103b1e80e70365b936e9c9a5282b4318b7324830401355c6ce76dd748218e'], + }), + ('DiskArrays', '0.3.8', { + 'source_urls': ['https://github.com/meggart/DiskArrays.jl/archive/'], + 'checksums': ['fbc25877def2392c2287b7b61684eda5168c0d64696f872d2f1d0ab46f152282'], + }), + ('GeoFormatTypes', '0.4.1', { + 'source_urls': ['https://github.com/JuliaGeo/GeoFormatTypes.jl/archive/'], + 'checksums': ['9acb138b9ef1d16f89d38ef4bde69d43e3ce0d29e142c9369f1b2476f27694fa'], + }), + ('GeoInterface', '0.5.7', { + 'source_urls': ['https://github.com/JuliaGeo/GeoInterface.jl/archive/'], + 'checksums': ['c88ea36f341dedf4057dedca0bb40ca4ac28454ff140cf9b72af29060f3aacf6'], + }), + ('CEnum', '0.4.2', { + 'source_urls': ['https://github.com/JuliaInterop/CEnum.jl/archive/'], + 'checksums': ['8d7f546621692028d64df10112a8c180ba12c64edba225ef52c8a5708c13ebce'], + }), + ('Zstd_jll', '1.5.2+0', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/Zstd_jll.jl/archive/'], + 'sources': ['Zstd-v%(version)s.tar.gz'], + 'checksums': ['7a4830ea735d9fc5918c972791f58e9aa53ad225a0f4e5a9f4fcad12bc37f75d'], + }), + ('Expat_jll', '2.4.8+0', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/Expat_jll.jl/archive/'], + 'sources': ['Expat-v%(version)s.tar.gz'], + 'checksums': ['b4b6c5f15d4ed1674d0eb91f419ab82d41f9e7b3fed0d92fea483ad28f04fcf4'], + }), + ('LZO_jll', '2.10.1+0', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/LZO_jll.jl/archive/'], + 'sources': ['LZO-v%(version)s.tar.gz'], + 'checksums': ['e17d6a3177942daa4913d3cebdd81d61484ee5a60ab2300d16fb7aa144a26763'], + }), + ('snappy_jll', '1.1.9+1', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/snappy_jll.jl/archive/'], + 'sources': ['snappy-v%(version)s.tar.gz'], + 'checksums': ['d01d93b110aebe9a77259cf765c47304e5a6384bff688d97172e1bf5e2a400d3'], + }), + ('Bzip2_jll', '1.0.8+0', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/Bzip2_jll.jl/archive/'], + 'sources': [{'download_filename': 'aa035c3.tar.gz', 'filename': 'Bzip2.v%(version)s.tar.gz'}], + 'checksums': ['8cb62e388fbcc10fc67842ee74db618ddf394744b04eb9c9afd8297c2fd86695'], + }), + ('boost_jll', '1.76.0+1', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/boost_jll.jl/archive/'], + 'sources': ['boost-v%(version)s.tar.gz'], + 'checksums': ['a79a87aff9b742c6274ff76765cf12e6e618ae2167bc43606e98d08e6523167d'], + }), + ('Lz4_jll', '1.9.3+0', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/Lz4_jll.jl/archive/'], + 'sources': ['Lz4-v%(version)s.tar.gz'], + 'checksums': ['3a283936a65f1ca0aa9560e51cfb8d1603813632dbe8b04720c7675df923f5a0'], + }), + ('Thrift_jll', '0.16.0+0', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/Thrift_jll.jl/archive/'], + 'sources': ['Thrift-v%(version)s.tar.gz'], + 'checksums': ['b9e80b4eee731964b1f32b5a9b32b33c8864b68b46b12bc04bcd059586a16129'], + }), + ('Arrow_jll', '10.0.0+1', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/Arrow_jll.jl/archive/'], + 'sources': ['Arrow-v%(version)s.tar.gz'], + 'checksums': ['4738ef5887323e5e00881e786c1354c62264a1152b65fb85a9213fb2570f5493'], + }), + ('GEOS_jll', '3.11.0+0', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/GEOS_jll.jl/archive/'], + 'sources': ['GEOS-v%(version)s.tar.gz'], + 'checksums': ['eda41987007fc51049984177bed13e90d2b2cb0dc095b7e32e49a423491d9611'], + }), + ('OpenSSL_jll', '1.1.19+0', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/OpenSSL_jll.jl/archive/'], + 'sources': ['OpenSSL-v%(version)s.tar.gz'], + 'checksums': ['40ad35be566994e9d2176b4cd5a0da9c2887515a061e3d683abc22d1a83043b1'], + }), + ('HDF5_jll', '1.12.2+2', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/HDF5_jll.jl/archive/'], + 'sources': ['HDF5-v%(version)s.tar.gz'], + 'checksums': ['18524e113506f3c94243199f76d56294b316c304c1dfc2a3a6aece44c4620da4'], + }), + ('Libiconv_jll', '1.16.1+2', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/Libiconv_jll.jl/archive/'], + 'sources': ['Libiconv-v%(version)s.tar.gz'], + 'checksums': ['3c5064c969e1e3530515205404c7857daa0c4d1cc1f49f1a60984d23d610c270'], + }), + ('XML2_jll', '2.9.14+0', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/XML2_jll.jl/archive/'], + 'sources': ['XML2-v%(version)s.tar.gz'], + 'checksums': ['f4cd422d1b67d2d66ef4650035a0e437c521e5a32d6598edd282b50464dcb054'], + }), + ('NetCDF_jll', '400.902.5+1', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/NetCDF_jll.jl/archive/'], + 'sources': ['NetCDF-v%(version)s.tar.gz'], + 'checksums': ['0382f17c486ffe7aa6f18f5b2ee514a837ef5db09385665494cbf58612355163'], + }), + ('SQLite_jll', '3.40.0+1', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/SQLite_jll.jl/archive/'], + 'sources': ['SQLite-v%(version)s.tar.gz'], + 'checksums': ['f77d154bfb66a4f724cba274ab370fbfe3854894940bc02e69c7ef6a1babe9df'], + }), + ('JpegTurbo_jll', '2.1.2+0', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/JpegTurbo_jll.jl/archive/'], + 'sources': ['JpegTurbo-v%(version)s.tar.gz'], + 'checksums': ['f6e8f77a39fdd6888a1ce7e0c752ab8c3fd17ade62f7f45f5fc829de45600395'], + }), + ('LERC_jll', '3.0.0+1', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/LERC_jll.jl/archive/'], + 'sources': ['LERC-v%(version)s.tar.gz'], + 'checksums': ['60ba286d96254373a0a6b0ec8691d7476ed33b25a75dc804c95dfcd1d656455a'], + }), + ('Libtiff_jll', '4.4.0+0', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/Libtiff_jll.jl/archive/'], + 'sources': ['Libtiff-v%(version)s.tar.gz'], + 'checksums': ['73ad75c466fc5694aa1f394f44e2f3202414e361fb5ded49f716ec505e7bbe3d'], + }), + ('PROJ_jll', '900.100.0+0', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/PROJ_jll.jl/archive/'], + 'sources': ['PROJ-v%(version)s.tar.gz'], + 'checksums': ['6518f3806c2dffad35a8dc72869ddd8cf1fd2e3db991df24a8d7c10ce26f2103'], + }), + ('libpng_jll', '1.6.37+5', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/libpng_jll.jl/archive/'], + 'sources': [{'download_filename': '7610368.tar.gz', 'filename': 'libpng.v%(version)s.tar.gz'}], + 'checksums': ['7e0a70ab2113c54fe4073b361c5fa8eb8b58a26e9b3f645d3ffa7ce4b73ec958'], + }), + ('LittleCMS_jll', '2.12.0+0', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/LittleCMS_jll.jl/archive/'], + 'sources': ['LittleCMS-v%(version)s.tar.gz'], + 'checksums': ['4dede22b4ab918066bbf6b8a80b44e4ffe8d83dd883fc422b51a90655b057b4a'], + }), + ('OpenJpeg_jll', '2.4.0+0', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/OpenJpeg_jll.jl/archive/'], + 'sources': ['OpenJpeg-v%(version)s.tar.gz'], + 'checksums': ['1d8d18e86094819415a5ab48ab4f37d745bc635a5b08ff01fa5f859a53e5794f'], + }), + ('Kerberos_krb5_jll', '1.19.3+0', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/Kerberos_krb5_jll.jl/archive/'], + 'sources': ['Kerberos_krb5-v%(version)s.tar.gz'], + 'checksums': ['0f844d477d3ef0a9fbe87db467b7e336dca978c58a55e3924b4c60d7356142a8'], + }), + ('LibPQ_jll', '14.3.0+1', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/LibPQ_jll.jl/archive/'], + 'sources': ['LibPQ-v%(version)s.tar.gz'], + 'checksums': ['d6ede7d326efa4b1551825a606472ed6db4b7cd2c95ff32a99f2fc6626699cb0'], + }), + ('libgeotiff_jll', '100.700.100+0', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/libgeotiff_jll.jl/archive/'], + 'sources': ['libgeotiff-v%(version)s.tar.gz'], + 'checksums': ['5181a2f0efc07938768644560c80674122e91011ad9e169aaf62d369dd8730df'], + }), + ('GDAL_jll', '301.600.100+0', { + 'source_urls': ['https://github.com/JuliaBinaryWrappers/GDAL_jll.jl/archive/'], + 'sources': ['GDAL-v%(version)s.tar.gz'], + 'checksums': ['7e10b59b3375da11db936fd7f0669e4f0d3490a90fc2dca465c6e07e9670482e'], + }), + ('GDAL', '1.5.0', { + 'source_urls': ['https://github.com/JuliaGeo/GDAL.jl/archive/'], + 'checksums': ['0ef1553577b11a14d7e8e9bc7d139754ccccd6d5def6a9a6de728e5a6b433f1b'], + }), + ('IteratorInterfaceExtensions', '1.0.0', { + 'source_urls': ['https://github.com/queryverse/IteratorInterfaceExtensions.jl/archive/'], + 'checksums': ['c43dc43fc29c0c7aa738793c5a847ce29491c5fca1a0f0e434fff1bb1c5c7994'], + }), + ('TableTraits', '1.0.1', { + 'source_urls': ['https://github.com/queryverse/TableTraits.jl/archive/'], + 'checksums': ['a69811f66cd1b7a6d91a0da30bf8a3ab796138615c4ada2d0f4ec044313b32e2'], + }), + ('DataAPI', '1.14.0', { + 'source_urls': ['https://github.com/JuliaData/DataAPI.jl/archive/'], + 'checksums': ['595e34053a6bfe9d504644a0df438560bc2676dba29c7175a733fb5300ce1ad4'], + }), + ('DataValueInterfaces', '1.0.0', { + 'source_urls': ['https://github.com/queryverse/DataValueInterfaces.jl/archive/'], + 'checksums': ['7f70be7cf1e49f7ce45bca8452193d08c2e75378f6b473205395c01010929825'], + }), + ('Tables', '1.10.0', { + 'source_urls': ['https://github.com/JuliaData/Tables.jl/archive/'], + 'checksums': ['4bb59d844830a0888de4ba3612484ce681e56b8571a6e4d6a605d442b3d1d0e4'], + }), + ('Graphics', '1.1.2', { + 'source_urls': ['https://github.com/JuliaGraphics/Graphics.jl/archive/'], + 'checksums': ['c28a6b29266f3c260616eef3d139184b267e0ae4d95ad89b379a5c973888bbb7'], + }), + ('PaddedViews', '0.5.11', { + 'source_urls': ['https://github.com/JuliaArrays/PaddedViews.jl/archive/'], + 'checksums': ['0506dc45cb371e6078fd055b8f21cd40755326e4b5c1b752e71489445e020cda'], + }), + ('MappedArrays', '0.4.1', { + 'source_urls': ['https://github.com/JuliaArrays/MappedArrays.jl/archive/'], + 'checksums': ['58ba4ef19d23737ffc2501e871545365fa1f6c5af84eef93549402a9f25fad56'], + }), + ('StackViews', '0.1.1', { + 'source_urls': ['https://github.com/JuliaArrays/StackViews.jl/archive/'], + 'checksums': ['8a8f008663c70ea9409263c9d2b78b0e246f9e6c700003e6a0e4dd5fe01558e9'], + }), + ('MosaicViews', '0.3.4', { + 'source_urls': ['https://github.com/JuliaArrays/MosaicViews.jl/archive/'], + 'sources': [{'download_filename': '7bb84df.tar.gz', 'filename': 'MosaicViews.v%(version)s.tar.gz'}], + 'checksums': ['fd7fc8679417789b77130e847605fec2c9fe68a3de8a4b12f5c2612aee269273'], + }), + ('AbstractFFTs', '1.2.1', { + 'source_urls': ['https://github.com/JuliaMath/AbstractFFTs.jl/archive/'], + 'checksums': ['58abf90b037c618daeed89940c77ac129b5155b26429ac77643cc9c5db453363'], + }), + ('ImageCore', '0.9.4', { + 'source_urls': ['https://github.com/JuliaImages/ImageCore.jl/archive/'], + 'checksums': ['de5d244989891f47edc4f27bf8bf6557a6982e907f0874a62ad3480c9c333983'], + }), + ('ArchGDAL', '0.8.5', { + 'source_urls': ['https://github.com/yeesian/ArchGDAL.jl/archive/'], + 'checksums': ['e24ec57d88a3a07feac7db5b2501b8f06a1047c42a8eadcde9500e3601984065'], + }), + (name, version, { + 'source_urls': ['https://github.com/Circuitscape/Circuitscape.jl/archive/'], + 'checksums': ['1eb5b6f5711865792204677359c1b9d9247ae3f34af42f58dfe2ec4ad3dd2177'], + }), +] + +sanity_check_commands = ["julia -e 'using Pkg;Pkg.test(\"Circuitscape\")'"] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/c/CmdStanR/CmdStanR-0.5.2-foss-2022a-R-4.2.1.eb b/easybuild/easyconfigs/c/CmdStanR/CmdStanR-0.5.2-foss-2022a-R-4.2.1.eb new file mode 100644 index 00000000000..6761ca8bf85 --- /dev/null +++ b/easybuild/easyconfigs/c/CmdStanR/CmdStanR-0.5.2-foss-2022a-R-4.2.1.eb @@ -0,0 +1,27 @@ +easyblock = 'RPackage' + +name = 'CmdStanR' +version = '0.5.2' +versionsuffix = '-R-%(rver)s' + +homepage = 'https://mc-stan.org/cmdstanr' +description = "CmdStanR is a lightweight interface to Stan for R users" + +toolchain = {'name': 'foss', 'version': '2022a'} + +source_urls = ['https://github.com/stan-dev/cmdstanr/archive/refs/tags/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['5bc2e164e7cce3bfb93d592df5e3059157c8d510b136535bdb6d09c3ef060f64'] + +dependencies = [ + ('R', '4.2.1'), +] + +sanity_check_paths = { + 'files': [], + 'dirs': ['%(namelower)s'], +} + +options = {'modulename': '%(namelower)s'} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/c/CppHeaderParser/CppHeaderParser-2.7.4-GCCcore-11.3.0.eb b/easybuild/easyconfigs/c/CppHeaderParser/CppHeaderParser-2.7.4-GCCcore-11.3.0.eb new file mode 100644 index 00000000000..97be8af13e4 --- /dev/null +++ b/easybuild/easyconfigs/c/CppHeaderParser/CppHeaderParser-2.7.4-GCCcore-11.3.0.eb @@ -0,0 +1,35 @@ +easyblock = 'PythonBundle' + +name = 'CppHeaderParser' +version = '2.7.4' + +homepage = 'https://senexcanis.com/open-source/cppheaderparser' +description = """CppHeaderParser is a pure python module that will parse C++ +header files and generate a data structure representing the class.""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +dependencies = [ + ('binutils', '2.38'), + ('Python', '3.10.4'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('ply', '3.11', { + 'checksums': ['00c7c1aaa88358b9c765b6d3000c6eec0ba42abca5351b095321aef446081da3'], + }), + (name, version, { + 'modulename': False, + 'checksums': ['382b30416d95b0a5e8502b214810dcac2a56432917e2651447d3abe253e3cc42'], + }), +] + +fix_python_shebang_for = [ + 'lib/python%(pyshortver)s/site-packages/CppHeaderParser/*.py', + 'lib/python%(pyshortver)s/site-packages/CppHeaderParser/examples/*.py', +] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/c/CuCLARK/CuCLARK-1.1-fosscuda-2019b.eb b/easybuild/easyconfigs/c/CuCLARK/CuCLARK-1.1-fosscuda-2019b.eb new file mode 100644 index 00000000000..65f0a8979dc --- /dev/null +++ b/easybuild/easyconfigs/c/CuCLARK/CuCLARK-1.1-fosscuda-2019b.eb @@ -0,0 +1,36 @@ +easyblock = 'MakeCp' + +name = 'CuCLARK' +version = '1.1' + +homepage = 'https://github.com/Funatiq/cuclark' +description = "Metagenomic classifier for CUDA-enabled GPUs" + +toolchain = {'name': 'fosscuda', 'version': '2019b'} + +source_urls = ['https://github.com/Funatiq/cuclark/archive/'] +sources = ['v%(version)s.tar.gz'] +patches = ['CuCLARK-%(version)s_fix-shfl.patch'] +checksums = [ + 'fd27082aa851f43ac65d8d57918e0c928eab7941c4d2e058993b9fbfdaa4d060', # v1.1.tar.gz + 'f2dc781168613395ed8803a37ab635d438e68d4e2e6569d5078e9fd2a92a9b66', # CuCLARK-1.1_fix-shfl.patch +] + +buildopts = 'CXX="$CXX" CXXFLAGS="$CXXFLAGS" ' +# can't use compute_70, must use compute_60 arch because deprecated __ballot() is used +buildopts += 'NVCCFLAGS="-gencode arch=compute_60,code=sm_70 -O2"' + +local_binaries = ['cuCLARK', 'cuCLARK-l', 'getAccssnTaxID', 'getfilesToTaxNodes', 'getTargetsDef'] +local_scripts = ['classify_metagenome.sh', 'clean.sh', 'download_data.sh', 'download_taxondata.sh', + 'make_metadata.sh', 'resetCustomDB.sh', 'updateTaxonomy.sh', 'set_targets.sh'] + +files_to_copy = [(['exe/*'] + local_scripts, 'bin')] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in local_binaries + local_scripts], + 'dirs': [], +} + +sanity_check_commands = ["cuCLARK --help"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/c/CuCLARK/CuCLARK-1.1_fix-shfl.patch b/easybuild/easyconfigs/c/CuCLARK/CuCLARK-1.1_fix-shfl.patch new file mode 100644 index 00000000000..00e6899dd95 --- /dev/null +++ b/easybuild/easyconfigs/c/CuCLARK/CuCLARK-1.1_fix-shfl.patch @@ -0,0 +1,15 @@ +replace use of deprecated/no longer supported in recent CUDA compute capabilities (7.0 & up) __shfl with __shfl_sync +see also https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#warp-shuffle-functions + +author: Kenneth Hoste (HPC-UGent) +--- cuclark-1.1/src/CuClarkDB.cu.orig 2017-01-04 10:35:20.000000000 +0100 ++++ cuclark-1.1/src/CuClarkDB.cu 2019-12-09 17:02:51.982293942 +0100 +@@ -1218,7 +1218,7 @@ + #endif + sharedResultRow[0+wid*(pitch/sizeof(RESULTS))] = total; + } +- total = __shfl(total, warpSize-1); // get total from last lane ++ total = __shfl_sync(0xFFFFFFFF, total, warpSize-1); // get total from last lane + } + + diff --git a/easybuild/easyconfigs/c/canu/canu-2.2-GCCcore-12.2.0.eb b/easybuild/easyconfigs/c/canu/canu-2.2-GCCcore-12.2.0.eb new file mode 100644 index 00000000000..ba27e76da5d --- /dev/null +++ b/easybuild/easyconfigs/c/canu/canu-2.2-GCCcore-12.2.0.eb @@ -0,0 +1,40 @@ +easyblock = 'MakeCp' + +name = 'canu' +version = '2.2' + +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': '12.2.0'} + +source_urls = ['https://github.com/marbl/canu/releases/download/v%(version)s/'] +sources = ['canu-%(version)s.tar.xz'] +checksums = ['e4d0c7b82149114f442ccd39e18f7fe2061c63b28d53700ad896e022b73b7404'] + +builddependencies = [ + ('binutils', '2.39'), + # Makefile checks git version, before making (futile) attempt to update git submodules + ('git', '2.38.1', '-nodocs'), +] + +dependencies = [ + ('Java', '11', '', SYSTEM), + ('Perl', '5.36.0'), + ('gnuplot', '5.4.6'), +] + +start_dir = 'src' + +files_to_copy = ['build/bin', 'build/lib', 'build/share', 'README*'] + +sanity_check_paths = { + 'files': ['bin/bogart', '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/ccache/ccache-4.6.3-GCCcore-11.3.0.eb b/easybuild/easyconfigs/c/ccache/ccache-4.6.3-GCCcore-11.3.0.eb new file mode 100644 index 00000000000..770822d93b6 --- /dev/null +++ b/easybuild/easyconfigs/c/ccache/ccache-4.6.3-GCCcore-11.3.0.eb @@ -0,0 +1,54 @@ +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# License:: MIT/GPL +# Updated to 4.6.1: J. Sassmannshausen (Imperial College London/UK) + +easyblock = 'CMakeNinja' + +name = 'ccache' +version = '4.6.3' + +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 = {'name': 'GCCcore', 'version': '11.3.0'} + +source_urls = ['https://github.com/ccache/ccache/releases/download/v%(version)s/'] +sources = [SOURCE_TAR_GZ] +checksums = ['f46ba3706ad80c30d4d5874dee2bf9227a7fcd0ccaac31b51919a3053d84bd05'] + +osdependencies = [('glibc-static', 'libc6-dev', 'glibc-devel')] + +builddependencies = [ + ('binutils', '2.38'), + ('CMake', '3.23.1'), + ('Ninja', '1.10.2'), + ('zstd', '1.5.2', ), + ('pkgconf', '1.8.0'), +] + +dependencies = [ + ('hiredis', '1.0.2'), +] + +# use BFD linker rather than default ld.gold (required on CentOS 8) +preconfigopts = 'LDFLAGS="-fuse-ld=bfd"' +configopts = ' '.join([ + '-DENABLE_DOCUMENTATION=OFF', + '-DENABLE_IPO=ON', + '-DZSTD_LIBRARY="$EBROOTZSTD/lib/libzstd.a"', + '-DHIREDIS_LIBRARY="$EBROOTHIREDIS/lib/libhiredis.a"', + # Disable downloading dependencies + '-DZSTD_FROM_INTERNET=OFF -DHIREDIS_FROM_INTERNET=OFF', +]) + +sanity_check_paths = { + 'files': ['bin/ccache'], + 'dirs': [] +} +sanity_check_commands = [ + 'ccache --help', +] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/c/cctbx-base/cctbx-base-2020.8-foss-2020b.eb b/easybuild/easyconfigs/c/cctbx-base/cctbx-base-2020.8-foss-2020b.eb new file mode 100644 index 00000000000..afe41e8b972 --- /dev/null +++ b/easybuild/easyconfigs/c/cctbx-base/cctbx-base-2020.8-foss-2020b.eb @@ -0,0 +1,64 @@ +# author: Denis Kristak (Inuits) +easyblock = 'PythonBundle' + +name = 'cctbx-base' +version = '2020.8' + +# local_pyver_special is used to create the wheel filename +# it contains the first two digits of the python version (with no delimiter) +local_pyver = '3.8.6' +local_pyver_special = ''.join(local_pyver.split('.')[:2]) + +homepage = 'https://github.com/cctbx/cctbx_project' +description = """ +The Computational Crystallography Toolbox (cctbx) is being developed as the open source component of the Phenix +project. The goal of the Phenix project is to advance automation of macromolecular structure determination. +Phenix depends on the cctbx, but not vice versa. This hierarchical approach enforces a clean design as a reusable +library. The cctbx is therefore also useful for small-molecule crystallography and even general scientific +applications. +""" + +toolchain = {'name': 'foss', 'version': '2020b'} + +dependencies = [ + ('Python', local_pyver), + ('Boost', '1.74.0'), + ('HDF5', '1.10.7'), + ('libGLU', '9.0.1'), + ('LIBSVM', '3.25'), + ('LibTIFF', '4.1.0'), + ('matplotlib', '3.3.3'), + ('mrcfile', '1.3.0'), +] + +local_metadata = "%(installdir)s/lib/python%(pyshortver)s/site-packages/cctbx_base-%(version)s.dist-info/METADATA" + +exts_list = [ + ('reportlab', '3.5.66', { + 'checksums': ['63fba51babad0047def4ffaa41d0065248ca39d680e98dc9e3010de5425539b4'], + }), + (name, version, { + 'sources': [{ + 'download_filename': 'cctbx_base-%s-0_py%sh167b89d-cp%s-cp%sm-manylinux2010_x86_64.whl' % ( + version, local_pyver_special, local_pyver_special, local_pyver_special + ), + 'filename': 'cctbx_base-%s-cp%s-cp%s-manylinux2010_x86_64.whl' % ( + version, local_pyver_special, local_pyver_special + ), + }], + 'checksums': ['5c7ac0710d9011072c678771876aa57ca3735986ed321d403f51989a7444e592'], + # remove deps (they fail during sanity check, even though they are installed) + 'postinstallcmds': ["echo '' > %s" % local_metadata], + 'modulename': 'cctbx', + }), +] + +use_pip = True +sanity_pip_check = True + +sanity_check_paths = { + 'files': ['bin/smtbx.python', 'bin/cctbx.brehm_diederichs'], + 'dirs': ['lib/python%(pyshortver)s/site-packages/cctbx_website'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/c/cctbx-base/cctbx-base-2020.8-fosscuda-2020b.eb b/easybuild/easyconfigs/c/cctbx-base/cctbx-base-2020.8-fosscuda-2020b.eb new file mode 100644 index 00000000000..b695ed8ce23 --- /dev/null +++ b/easybuild/easyconfigs/c/cctbx-base/cctbx-base-2020.8-fosscuda-2020b.eb @@ -0,0 +1,68 @@ +# author: Denis Kristak (Inuits) +easyblock = "PythonBundle" + +name = "cctbx-base" +version = "2020.8" +local_pyver = "3.8.6" + +# local_pyver_special is used to create the wheel filename +# it contains the first two digits of the python version (with no delimiter) +local_tmp = local_pyver.split('.') +local_tmp.pop() +# compose a string +local_pyver_special = ''.join(local_tmp) + +homepage = "https://github.com/cctbx/cctbx_project" +description = """ +The Computational Crystallography Toolbox (cctbx) is being developed as the open source component of the Phenix +project. The goal of the Phenix project is to advance automation of macromolecular structure determination. +Phenix depends on the cctbx, but not vice versa. This hierarchical approach enforces a clean design as a reusable +library. The cctbx is therefore also useful for small-molecule crystallography and even general scientific +applications. +""" + +toolchain = {'name': 'fosscuda', 'version': '2020b'} + +dependencies = [ + ('Python', local_pyver), + ('Boost', '1.74.0'), + ('HDF5', '1.10.7'), + ('libGLU', '9.0.1'), + ('LIBSVM', '3.25'), + ('LibTIFF', '4.1.0'), + ('matplotlib', '3.3.3'), + ('mrcfile', '1.3.0'), +] + +local_metadata = "%(installdir)s/lib/python%(pyshortver)s/site-packages/cctbx_base-%(version)s.dist-info/METADATA" + + +exts_list = [ + ('reportlab', '3.5.66', { + 'checksums': ['63fba51babad0047def4ffaa41d0065248ca39d680e98dc9e3010de5425539b4'], + }), + (name, version, { + 'modulename': 'cctbx', + # remove deps (they fail during sanity check, even though they are installed) + 'postinstallcmds': ["echo '' > %s" % local_metadata], + 'sources': [{ + 'download_filename': 'cctbx_base-%s-0_py%sh167b89d-cp%s-cp%sm-manylinux2010_x86_64.whl' % ( + version, local_pyver_special, local_pyver_special, local_pyver_special + ), + 'filename': 'cctbx_base-%s-cp%s-cp%s-manylinux2010_x86_64.whl' % ( + version, local_pyver_special, local_pyver_special + ), + }], + 'checksums': ['5c7ac0710d9011072c678771876aa57ca3735986ed321d403f51989a7444e592'], + }), +] + +use_pip = True +sanity_pip_check = True + +sanity_check_paths = { + "files": ['bin/smtbx.python', 'bin/cctbx.brehm_diederichs'], + "dirs": ['lib/python%(pyshortver)s/site-packages/cctbx_website'], +} + +moduleclass = "lib" diff --git a/easybuild/easyconfigs/c/corner/corner-2.2.2-foss-2021b.eb b/easybuild/easyconfigs/c/corner/corner-2.2.2-foss-2021b.eb new file mode 100644 index 00000000000..dbd2c511b8b --- /dev/null +++ b/easybuild/easyconfigs/c/corner/corner-2.2.2-foss-2021b.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 = 'corner' +version = '2.2.2' + +homepage = 'https://corner.readthedocs.io/en/latest/' +description = """Make some beautiful corner plots.""" + +toolchain = {'name': 'foss', 'version': '2021b'} + +sources = [SOURCE_TAR_GZ] +checksums = ['4bc79f3b6778c270103f0926e64ef2606c48c3b6f92daf5382fc4babf5d608d1'] + +dependencies = [ + ('Python', '3.9.6'), + ('SciPy-bundle', '2021.10'), + ('matplotlib', '3.4.3'), +] + +use_pip = True +download_dep_fail = True +sanity_pip_check = True + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/c/cuDNN/cuDNN-8.9.2.26-CUDA-12.1.1.eb b/easybuild/easyconfigs/c/cuDNN/cuDNN-8.9.2.26-CUDA-12.1.1.eb new file mode 100644 index 00000000000..8fba5b522d0 --- /dev/null +++ b/easybuild/easyconfigs/c/cuDNN/cuDNN-8.9.2.26-CUDA-12.1.1.eb @@ -0,0 +1,40 @@ +name = 'cuDNN' +version = '8.9.2.26' +versionsuffix = '-CUDA-%(cudaver)s' +homepage = 'https://developer.nvidia.com/cudnn' +description = """The NVIDIA CUDA Deep Neural Network library (cuDNN) is +a GPU-accelerated library of primitives for deep neural networks.""" + +toolchain = SYSTEM + +# note: cuDNN is tied to specific to CUDA versions, +# see also https://docs.nvidia.com/deeplearning/cudnn/support-matrix/index.html#cudnn-cuda-hardware-versions +local_short_ver = '.'.join(version.split('.')[:3]) +local_cuda_major = '12' + +source_urls = [ + 'https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/linux-%(cudnnarch)s/' +] +sources = ['%%(namelower)s-linux-%%(cudnnarch)s-%%(version)s_cuda%s-archive.tar.xz' % local_cuda_major] +checksums = [{ + '%%(namelower)s-linux-ppc64le-%%(version)s_cuda%s-archive.tar.xz' % local_cuda_major: + '4f5e5bd01570c4805b93fb199f8bb6f8475d016948c55abf48fed9ffe89d13e5', + '%%(namelower)s-linux-sbsa-%%(version)s_cuda%s-archive.tar.xz' % local_cuda_major: + '898d00c82f9ad8797bd6f6c639327b320a38fa4aeebfb2b3fbb2db0d38f7e1b0', + '%%(namelower)s-linux-x86_64-%%(version)s_cuda%s-archive.tar.xz' % local_cuda_major: + 'ccafd7d15c2bf26187d52d79d9ccf95104f4199980f5075a7c1ee3347948ce32', +}] + +dependencies = [('CUDA', '12.1.1')] + +sanity_check_paths = { + 'files': [ + 'include/cudnn.h', 'lib64/libcudnn_adv_infer_static.a', 'lib64/libcudnn_adv_train_static.a', + 'lib64/libcudnn_cnn_infer_static.a', 'lib64/libcudnn_cnn_train_static.a', + 'lib64/libcudnn_ops_infer_static.a', 'lib64/libcudnn_ops_train_static.a', + 'lib64/libcudnn.%s' % SHLIB_EXT + ], + 'dirs': ['include', 'lib64'], +} + +moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/c/cuTENSOR/cuTENSOR-1.7.0.1-CUDA-12.0.0.eb b/easybuild/easyconfigs/c/cuTENSOR/cuTENSOR-1.7.0.1-CUDA-12.0.0.eb new file mode 100644 index 00000000000..6e01ac55f36 --- /dev/null +++ b/easybuild/easyconfigs/c/cuTENSOR/cuTENSOR-1.7.0.1-CUDA-12.0.0.eb @@ -0,0 +1,33 @@ +easyblock = 'Tarball' + +name = 'cuTENSOR' +local_shortver = '1.7.0' +version = local_shortver + '.1' +versionsuffix = '-CUDA-%(cudaver)s' + +homepage = 'https://developer.nvidia.com/cutensor' +description = """The cuTENSOR Library is a GPU-accelerated tensor linear algebra library providing tensor contraction, + reduction and elementwise operations.""" + +toolchain = SYSTEM + +source_urls = ['https://developer.download.nvidia.com/compute/cutensor/redist/libcutensor/linux-x86_64/'] +sources = ['libcutensor-linux-x86_64-%(version)s-archive.tar.xz'] +checksums = ['dd3557891371a19e73e7c955efe5383b0bee954aba6a30e4892b0e7acb9deb26'] + +local_cudamajver = '12' +dependencies = [('CUDA', local_cudamajver + '.0.0')] + +sanity_check_paths = { + 'files': ['include/cutensor.h', 'include/cutensor/types.h', + 'lib/%s/libcutensor.%s' % (local_cudamajver, SHLIB_EXT), + 'lib/%s/libcutensor_static.a' % local_cudamajver], + 'dirs': [], +} + +modextrapaths = { + 'LD_LIBRARY_PATH': ['lib/%s' % local_cudamajver], + 'LIBRARY_PATH': ['lib/%s' % local_cudamajver], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/c/cutadapt/cutadapt-2.10-GCCcore-10.2.0.eb b/easybuild/easyconfigs/c/cutadapt/cutadapt-2.10-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..b8f8f0dc947 --- /dev/null +++ b/easybuild/easyconfigs/c/cutadapt/cutadapt-2.10-GCCcore-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 (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 +# Modified by: Tom Strempel +# Helmholtz-Centre for Environmental Research - UFZ + +easyblock = 'PythonBundle' + +name = 'cutadapt' +version = '2.10' + +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': 'GCCcore', 'version': '10.2.0'} + +builddependencies = [('binutils', '2.35')] + +dependencies = [ + ('Python', '3.8.6'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('xopen', '0.8.4', { + 'checksums': ['dcd8f5ef5da5564f514a990573a48a0c347ee1fdbb9b6374d31592819868f7ba'], + }), + ('dnaio', '0.4.2', { + 'checksums': ['fa55a45bfd5d9272409b714158fb3a7de5dceac1034a0af84502c7f503ee84f8'], + }), + (name, version, { + 'checksums': ['936b88374b5b393a954852a0fe317a85b798dd4faf5ec52cf3ef4f3c062c242a'], + }), +] + +sanity_check_paths = { + 'files': ['bin/cutadapt'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/c/cutadapt/cutadapt-4.4-GCCcore-12.2.0.eb b/easybuild/easyconfigs/c/cutadapt/cutadapt-4.4-GCCcore-12.2.0.eb new file mode 100644 index 00000000000..34d1a1a425b --- /dev/null +++ b/easybuild/easyconfigs/c/cutadapt/cutadapt-4.4-GCCcore-12.2.0.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 +# Modified by: Albert Bogdanowicz +# Institute of Biochemistry and Biophysics PAS +# Modified by: Jasper Grimm +# University of York + +easyblock = 'PythonBundle' + +name = 'cutadapt' +version = '4.4' + +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': 'GCCcore', 'version': '12.2.0'} + +builddependencies = [('binutils', '2.39')] + +dependencies = [ + ('pigz', '2.7'), + ('Python', '3.10.8'), + ('python-isal', '1.1.0'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('xopen', '1.7.0', { + 'checksums': ['901f9c8298e95ed74767a4bd76d9f4cf71d8de27b8cf296ac3e7bc1c11520d9f'], + }), + ('dnaio', '0.10.0', { + 'checksums': ['de51a50948f00b864297d74eddb588fbee5ac229855754e77564d18b24619d18'], + }), + (name, version, { + 'checksums': ['4554157c673022e1c433fcd6e3b803008fef60c8e71c01215e4aa04b0f09fe83'], + }), +] + +sanity_check_paths = { + 'files': ['bin/cutadapt'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = [ + "cutadapt --help", + "cutadapt --version", +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/c/cuteSV/cuteSV-2.0.3-foss-2022a.eb b/easybuild/easyconfigs/c/cuteSV/cuteSV-2.0.3-foss-2022a.eb new file mode 100644 index 00000000000..ff4f7c8bdcd --- /dev/null +++ b/easybuild/easyconfigs/c/cuteSV/cuteSV-2.0.3-foss-2022a.eb @@ -0,0 +1,47 @@ +easyblock = 'PythonBundle' + +name = 'cuteSV' +version = '2.0.3' + +homepage = 'https://github.com/tjiangHIT/cuteSV' +description = """cuteSV uses tailored methods to collect the signatures of various types of SVs + and employs a clustering-and-refinement method to analyze the signatures to implement sensitive SV detection.""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +dependencies = [ + ('Python', '3.10.4'), + ('Pysam', '0.19.1'), + ('SciPy-bundle', '2022.05'), + ('Biopython', '1.79'), + ('PyVCF3', '1.0.3'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('cigar', '0.1.3', { + 'checksums': ['5847f5e8968035b3a5b04dcfa879fb6c14dd3a42dce8994864806dcda8a4fcf2'], + }), + (name, version, { + 'modulename': '%(name)s', + 'patches': ['cuteSV-%(version)s_dep-fix.patch'], + 'checksums': [ + {'cuteSV-2.0.3.tar.gz': '79e03908990ca0089277eb7fb14f5ad77940030f0428aa50a609b41381cee089'}, + {'cuteSV-2.0.3_dep-fix.patch': 'c8743e5bc376364a90548429b190f8926c6cdae4072b80e8aab9d23785233dd2'}, + ], + }), +] + +sanity_check_paths = { + 'files': ['bin/cuteSV'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = [ + "python -c 'from cuteSV.cuteSV_genotype import overlap_cover'", + "cuteSV --help", +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/c/cuteSV/cuteSV-2.0.3_dep-fix.patch b/easybuild/easyconfigs/c/cuteSV/cuteSV-2.0.3_dep-fix.patch new file mode 100644 index 00000000000..94e0917f3e2 --- /dev/null +++ b/easybuild/easyconfigs/c/cuteSV/cuteSV-2.0.3_dep-fix.patch @@ -0,0 +1,12 @@ +use pyvcf3 instead of pyvcf which would need Python 2 + +author: Petr Král (INUITS) +--- cuteSV-cuteSV-v2.0.3/setup.py.orig 2023-05-12 04:58:30.000000000 +0200 ++++ cuteSV-cuteSV-v2.0.3/setup.py 2023-06-12 09:48:08.251609584 +0200 +@@ -21,5 +21,5 @@ + long_description = readme, + long_description_content_type = 'text/markdown', + zip_safe = False, +- install_requires = ['pysam', 'Biopython', 'Cigar', 'numpy', 'pyvcf'] ++ install_requires = ['pysam', 'Biopython', 'Cigar', 'numpy', 'pyvcf3'] + ) diff --git a/easybuild/easyconfigs/d/DALI/DALI-2.1.2-foss-2022b-R-4.2.2.eb b/easybuild/easyconfigs/d/DALI/DALI-2.1.2-foss-2022b-R-4.2.2.eb new file mode 100644 index 00000000000..fde6e6c1e27 --- /dev/null +++ b/easybuild/easyconfigs/d/DALI/DALI-2.1.2-foss-2022b-R-4.2.2.eb @@ -0,0 +1,27 @@ +easyblock = 'RPackage' + +name = 'DALI' +version = '2.1.2' +versionsuffix = '-R-%(rver)s' +local_biocver = '3.16' + +homepage = 'https://github.com/vibscc/DALI' +description = "R-package for the analysis of single-cell TCR/BCR data in the Seurat ecosystem" + +toolchain = {'name': 'foss', 'version': '2022b'} + +dependencies = [ + ('R', '4.2.2'), + ('R-bundle-Bioconductor', '3.16', versionsuffix), +] + +source_urls = ['https://github.com/vibscc/DALI/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['8162b52e8d9f836012e127dd4243cec0374d1165468180fa6f7c5f3793a811d6'] + +sanity_check_paths = { + 'files': [], + 'dirs': [name], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/d/DEICODE/DEICODE-0.2.4-foss-2022a.eb b/easybuild/easyconfigs/d/DEICODE/DEICODE-0.2.4-foss-2022a.eb new file mode 100644 index 00000000000..f81e65cc515 --- /dev/null +++ b/easybuild/easyconfigs/d/DEICODE/DEICODE-0.2.4-foss-2022a.eb @@ -0,0 +1,40 @@ +easyblock = 'PythonBundle' + +name = 'DEICODE' +version = '0.2.4' + +homepage = 'https://library.qiime2.org/plugins/deicode/19/' +description = """ +DEICODE is a form of Aitchison Distance that is robust to high levels of +sparsity. DEICODE utilizes a natural solution to the zero problem formulated in +recommendation systems called matrix completion. A simple way to interpret the +method is, as a robust compositional PCA (via SVD) where zero values do not +influence the resulting ordination. +""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), + ('scikit-bio', '0.5.7'), + ('h5py', '3.7.0'), +] + +exts_list = [ + ('biom-format', '2.1.15', { + 'modulename': 'biom', + 'checksums': ['3bda2096e663dc1cb6f90f51b394da0838b9be5164a44370c134ce5b3b2a4dd3'], + }), + ('deicode', version, { + 'preinstallopts': """sed -i "/'nose /d" setup.py && """, + 'checksums': ['29472dc1f2d7c0cefeab3517d957a2476b5fb981861d1f3deeb75dfa291b34e4'], + }), +] + +use_pip = True +sanity_pip_check = True + +sanity_check_commands = ['deicode --help'] + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/d/DIAMOND/DIAMOND-2.1.8-GCC-10.3.0.eb b/easybuild/easyconfigs/d/DIAMOND/DIAMOND-2.1.8-GCC-10.3.0.eb new file mode 100644 index 00000000000..9d3344fae45 --- /dev/null +++ b/easybuild/easyconfigs/d/DIAMOND/DIAMOND-2.1.8-GCC-10.3.0.eb @@ -0,0 +1,25 @@ +easyblock = 'CMakeMake' + +name = 'DIAMOND' +version = '2.1.8' + +homepage = 'https://github.com/bbuchfink/diamond' +description = "Accelerated BLAST compatible local sequence aligner" + +toolchain = {'name': 'GCC', 'version': '10.3.0'} + +github_account = 'bbuchfink' +source_urls = [GITHUB_LOWER_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['b6088259f2bc92d1f9dc4add44590cff68321bcbf91eefbc295a3525118b9415'] + +builddependencies = [('CMake', '3.20.1')] +dependencies = [('zlib', '1.2.11')] + +sanity_check_paths = { + 'files': ['bin/%(namelower)s'], + 'dirs': [], +} +sanity_check_commands = ["%(namelower)s help"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/d/DIRAC/DIRAC-23.0-foss-2022a.eb b/easybuild/easyconfigs/d/DIRAC/DIRAC-23.0-foss-2022a.eb new file mode 100644 index 00000000000..b3bada73def --- /dev/null +++ b/easybuild/easyconfigs/d/DIRAC/DIRAC-23.0-foss-2022a.eb @@ -0,0 +1,43 @@ +easyblock = 'CMakeMake' + +name = 'DIRAC' +version = '23.0' + +homepage = 'http://www.diracprogram.org' +description = "DIRAC: Program for Atomic and Molecular Direct Iterative Relativistic All-electron Calculations" + +toolchain = {'name': 'foss', 'version': '2022a'} +toolchainopts = {'usempi': True} + +source_urls = ['https://zenodo.org/record/7670749/files/'] +sources = ['DIRAC-%(version)s-Source.tgz'] +checksums = ['a0a6b6318b3cd2e3c6042221de720bb1e87eb758999e2108a48dedb9c564e1f8'] + +builddependencies = [('CMake', '3.24.3')] + +dependencies = [ + ('Python', '3.10.4'), + ('HDF5', '1.12.2'), + ('SciPy-bundle', '2022.05'), + ('h5py', '3.7.0') +] + +configopts = '-DMKL_FLAG=off ' +configopts += '-DMATH_LIBS="$LIBLAPACK" ' +configopts += '-DENABLE_MPI=True ' +configopts += '-DENABLE_EXATENSOR=off ' +configopts += '-DENABLE_PCMSOLVER=off ' + +pretestopts = 'export DIRAC_TMPDIR=%(builddir)s/scratch && ' +pretestopts += 'export DIRAC_MPI_COMMAND="%(mpi_cmd_prefix)s " && ' + +runtest = 'test ARGS="-R pam_test" ' + +sanity_check_paths = { + 'files': ['bin/pam-dirac', 'share/dirac/dirac.x'], + 'dirs': ['share/dirac/basis'], +} + +sanity_check_commands = ["pam-dirac --help"] + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/d/DIRAC/DIRAC-23.0-intel-2022a.eb b/easybuild/easyconfigs/d/DIRAC/DIRAC-23.0-intel-2022a.eb new file mode 100644 index 00000000000..239c0061973 --- /dev/null +++ b/easybuild/easyconfigs/d/DIRAC/DIRAC-23.0-intel-2022a.eb @@ -0,0 +1,42 @@ +easyblock = 'CMakeMake' + +name = 'DIRAC' +version = '23.0' + +homepage = 'http://www.diracprogram.org' +description = "DIRAC: Program for Atomic and Molecular Direct Iterative Relativistic All-electron Calculations" + +toolchain = {'name': 'intel', 'version': '2022a'} +toolchainopts = {'usempi': True, 'oneapi': False} + +source_urls = ['https://zenodo.org/record/7670749/files/'] +sources = ['DIRAC-%(version)s-Source.tgz'] +checksums = ['a0a6b6318b3cd2e3c6042221de720bb1e87eb758999e2108a48dedb9c564e1f8'] + +builddependencies = [('CMake', '3.24.3')] + +dependencies = [ + ('Python', '3.10.4'), + ('HDF5', '1.12.2'), + ('SciPy-bundle', '2022.05'), + ('h5py', '3.7.0') +] + +configopts = '-DMKL_FLAG=sequential ' +configopts += '-DENABLE_MPI=True ' +configopts += '-DENABLE_EXATENSOR=off ' +configopts += '-DENABLE_PCMSOLVER=off ' + +pretestopts = 'export DIRAC_TMPDIR=%(builddir)s/scratch && ' +pretestopts += 'export DIRAC_MPI_COMMAND="%(mpi_cmd_prefix)s " && ' + +runtest = 'test ARGS="-R pam_test" ' + +sanity_check_paths = { + 'files': ['bin/pam-dirac', 'share/dirac/dirac.x'], + 'dirs': ['share/dirac/basis'], +} + +sanity_check_commands = ["pam-dirac --help"] + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/d/DMTCP/DMTCP-3.0.0-GCCcore-11.3.0.eb b/easybuild/easyconfigs/d/DMTCP/DMTCP-3.0.0-GCCcore-11.3.0.eb new file mode 100644 index 00000000000..09d769732a5 --- /dev/null +++ b/easybuild/easyconfigs/d/DMTCP/DMTCP-3.0.0-GCCcore-11.3.0.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'DMTCP' +version = '3.0.0' + +homepage = 'http://dmtcp.sourceforge.net/index.html' +description = """DMTCP is a tool to transparently checkpoint the state of multiple +simultaneous applications, including multi-threaded and distributed applications. +It operates directly on the user binary executable, without any Linux kernel modules +or other kernel modifications.""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +source_urls = ['https://github.com/dmtcp/dmtcp/archive/'] +sources = ['%(version)s.tar.gz'] +checksums = ['2c7e95e1dbc55db33433bfee48a65f274298e98f246a36ab6dad1e0694750d37'] + +builddependencies = [('binutils', '2.38')] + +sanity_check_paths = { + 'files': ['bin/dmtcp_command', 'bin/dmtcp_discover_rm', 'bin/dmtcp_nocheckpoint', 'bin/dmtcp_srun_helper', + 'bin/dmtcp_sshd', 'bin/dmtcp_coordinator', 'bin/dmtcp_launch', 'bin/dmtcp_restart', 'bin/dmtcp_ssh'], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/d/DaliLite/DaliLite-4.1-gompi-2021a.eb b/easybuild/easyconfigs/d/DaliLite/DaliLite-4.1-gompi-2021a.eb new file mode 100644 index 00000000000..4c7cd1ce6a2 --- /dev/null +++ b/easybuild/easyconfigs/d/DaliLite/DaliLite-4.1-gompi-2021a.eb @@ -0,0 +1,60 @@ +easyblock = 'MakeCp' + +name = 'DaliLite' +version = '4.1' + +homepage = 'http://ekhidna2.biocenter.helsinki.fi/dali/' +description = """DaliLite is a light version of the software run by the Dali server. The web +server has search and data visualization options which are not included in this +package. DaliLite supports data import (import.pl) to convert PDB entries to +Dali's internal data format and pairwise comparison (dali.pl) to structurally +align a list of query structures to a list of target structures.""" + +toolchain = {'name': 'gompi', 'version': '2021a'} + +source_urls = ['http://ekhidna2.biocenter.helsinki.fi/dali'] +sources = [{'filename': SOURCE_TAR_GZ, 'download_filename': '%(name)s.v%(version_major)s.tar.gz'}] +patches = ['DaliLite-4.1_fix-labels-without-statements.patch'] +checksums = [ + '6267acefd2a477dd3720f9bbb5b911bbcfc97a9c0de58ebde651f48b4e0cb5cb', # DaliLite-4.1.tar.gz + # DaliLite-4.1_fix-labels-without-statements.patch + 'fb719f2d5ce33e5e47e565f4bb82d9e5d33cf4be341cd773daa0a33fcd65fe10', +] + +dependencies = [ + ('Perl', '5.32.1'), +] + +# Build +_make_home = "HOME=%(builddir)s/%(name)s.v%(version)s" + +prebuildopts = "make clean %s &&" % _make_home +buildopts = 'FC=${FC} FC_MPI=${MPIF90} CFLAGS="${FCFLAGS} -std=legacy -fallow-argument-mismatch" ' +buildopts += 'CC="${CC} ${CFLAGS}" CC_MPI=${MPICC} ' + _make_home + +# Installation +_bin_files = ['dsspcmbi', 'filter95fitz', 'fssp', 'mpicompare', 'pipe', 'pipedccp', 'puu', 'puutos', + 'selfdccp', 'serialcompare'] +_perl_scripts = ['dali.pl', 'dccp2dalicon.pl', 'fsspfilter.pl', 'fsspselect.pl', 'htmljs.pl', 'import.pl', + 'pairwise.pl', 'pipe96-free.pl', 'pipe96.pl', 'sortdccp.pl'] +_perl_mods = ['mpidali.pm', 'upgma.pm'] + +files_to_copy = [ + (['bin/%s' % x for x in _bin_files + _perl_scripts], 'bin'), + (['bin/%s' % x for x in _perl_mods], 'lib/perl5/site_perl/%(perlver)s/'), +] + +# Fix perl scritps +fix_perl_shebang_for = ['bin/%s' % x for x in _perl_scripts] +postinstallcmds = ["chmod 755 %(installdir)s/bin/*.pl"] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in _bin_files + _perl_scripts], + 'dirs': ['lib/perl5/site_perl/%(perlver)s/'], +} + +modextrapaths = { + 'PERL5LIB': 'lib/perl5/site_perl/%(perlver)s/' +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/d/DaliLite/DaliLite-4.1_fix-labels-without-statements.patch b/easybuild/easyconfigs/d/DaliLite/DaliLite-4.1_fix-labels-without-statements.patch new file mode 100644 index 00000000000..7770b0b962d --- /dev/null +++ b/easybuild/easyconfigs/d/DaliLite/DaliLite-4.1_fix-labels-without-statements.patch @@ -0,0 +1,31 @@ +Remove statement labels from those lines without any statement +author: Alex Domingo (Vrije Universiteit Brussel) +diff --git a/src/pipe.f.orig b/src/pipe.f +index d127f2e..e8096cb 100644 +--- a/src/pipe.f.orig ++++ b/src/pipe.f +@@ -36,12 +36,12 @@ c + !filnam=constructfilnam(cd1,dalidatpath_1,'.dat') + !open(91,file=filnam,status='old',err=11) + !goto 12 +-11 !filnam=constructfilnam(cd1,dalidatpath_2,'.dat') ++ !filnam=constructfilnam(cd1,dalidatpath_2,'.dat') + !open(11,file=filnam,status='old',err=10) +-12 !continue ++ !continue + ! try second dalidatpath + ! i=0 +-200 ! read(91,530,end=219) line ++ ! read(91,530,end=219) line + ! if(line(1:4).ne.'>>>>') goto 200 + ! read(line,551) ndom + ! i=i+1 +@@ -50,7 +50,7 @@ c + ! read(91,710,end=219) j,domns(j), + ! $ ((domseglist(i,k,j),k=1,2),i=1,domns(j)) + ! end do +-219 ! close(91) ++ ! close(91) + !close(91) + c + c output diff --git a/easybuild/easyconfigs/d/Dalton/Dalton-2020.1-foss-2022b.eb b/easybuild/easyconfigs/d/Dalton/Dalton-2020.1-foss-2022b.eb new file mode 100644 index 00000000000..770eba258c5 --- /dev/null +++ b/easybuild/easyconfigs/d/Dalton/Dalton-2020.1-foss-2022b.eb @@ -0,0 +1,68 @@ +# Updated to version 2020.1 using the original 2020.0 EasyConfig +# As the patches created by Åke Sandgren for the 2020.0 version work as well, +# we fix the version here as it has been done for the 2016 patch +# Author: J. Sassmannshausen (Imperial College London/UK) + +easyblock = 'CMakeMake' + +name = 'Dalton' +version = '2020.1' + +homepage = 'https://daltonprogram.org/' +description = """The Dalton code is a powerful tool for a wide range of molecular properties + at different levels of theory. + Any published work arising from use of one of the Dalton2016 programs + must acknowledge that by a proper reference, + https://www.daltonprogram.org/www/citation.html.""" + +toolchain = {'name': 'foss', 'version': '2022b'} +toolchainopts = {'usempi': True, 'openmp': True} + +sources = [{ + 'filename': SOURCE_TAR_GZ, + 'git_config': { + 'url': 'https://gitlab.com/dalton', + 'repo_name': 'dalton', + 'tag': '2020.1', + 'recursive': True, + }, +}] +patches = [ + '%(name)s-2016-fix-cmake-install.patch', + '%(name)s-2020.0_use-EB-install-for-dalton-script.patch', + '%(name)s-2020.0_fix-uninits.patch', + '%(name)s-2016-fix-bad-includepath-add.patch', + '%(name)s-2020.0_use_flexiblas.patch', + '%(name)s-2020.0_disable_failing_tests.patch', +] + +checksums = [ + None, # Dalton-2020.0.tar.gz + '3159b03a488d6f5ee23d468be02ea62eacd08cbdf68cd64ef4e5a0d469a6718b', # Dalton-2016-fix-cmake-install.patch + # Dalton-2020.0_use-EB-install-for-dalton-script.patch + 'f38b434d2af609b667b341192d8f0d7e37ee1e0461cc68c780b049c7027bfcf5', + 'bc446cd1a9fb63836d1d621eb92be65fcd3a46095a0ba4ecb5b7f292dccbb609', # Dalton-2020.0_fix-uninits.patch + '6d4dab7af92674e3e6713143f4d8886925ac1328f64c4cc5d071e6eee855c350', # Dalton-2016-fix-bad-includepath-add.patch + 'c1ac29f4ebfcf42b2b3858008cbd25ffbe7035675b9d954b63a5851183f72abb', # Dalton-2020.0_use_flexiblas.patch + '296f550d4a4429a546c45304881a6091d482bc098c33d18b5aa123b516d8ae4b', # Dalton-2020.0_disable_failing_tests.patch +] + +builddependencies = [ + ('CMake', '3.24.3'), + ('Python', '3.10.8', '-bare'), +] + +configopts = '-DENABLE_MPI=ON ' +configopts += '-DENABLE_OMP=ON ' + +pretestopts = 'env EBROOTDALTON=%(builddir)s/easybuild_obj DALTON_TMPDIR=%(builddir)s ' +# Just run the essential tests +testopts = 'ARGS="-L essential" ' +runtest = 'test' + +sanity_check_paths = { + 'files': ['bin/dalton', 'bin/dalton.x'], + 'dirs': ['basis'], +} + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/d/DendroPy/DendroPy-4.5.2-GCCcore-12.2.0.eb b/easybuild/easyconfigs/d/DendroPy/DendroPy-4.5.2-GCCcore-12.2.0.eb new file mode 100644 index 00000000000..ea5696314d1 --- /dev/null +++ b/easybuild/easyconfigs/d/DendroPy/DendroPy-4.5.2-GCCcore-12.2.0.eb @@ -0,0 +1,43 @@ +## +# 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' + +homepage = 'https://dendropy.org/' +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': '12.2.0'} + +sources = [SOURCE_TAR_GZ] +checksums = ['3e5d2522170058ebc8d1ee63a7f2d25b915e34957dc02693ebfdc15f347a0101'] + +builddependencies = [('binutils', '2.39')] + +dependencies = [('Python', '3.10.8')] + +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/datamash/datamash-1.8-GCCcore-11.3.0.eb b/easybuild/easyconfigs/d/datamash/datamash-1.8-GCCcore-11.3.0.eb new file mode 100644 index 00000000000..f3364d92c73 --- /dev/null +++ b/easybuild/easyconfigs/d/datamash/datamash-1.8-GCCcore-11.3.0.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'datamash' +version = '1.8' + +homepage = 'https://www.gnu.org/software/datamash/' +description = "GNU datamash performs basic numeric, textual and statistical operations on input data files" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] +checksums = ['7ad97e8c7ef616dd03aa5bd67ae24c488272db3e7d1f5774161c18b75f29f6fd'] + +builddependencies = [ + ('binutils', '2.38'), +] + +sanity_check_paths = { + 'files': ['bin/datamash'], + 'dirs': ['share/man'] +} + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/d/deepTools/deepTools-3.5.2-foss-2022a.eb b/easybuild/easyconfigs/d/deepTools/deepTools-3.5.2-foss-2022a.eb new file mode 100644 index 00000000000..e52c04711ec --- /dev/null +++ b/easybuild/easyconfigs/d/deepTools/deepTools-3.5.2-foss-2022a.eb @@ -0,0 +1,53 @@ +easyblock = 'PythonBundle' + +name = 'deepTools' +version = '3.5.2' + +homepage = 'https://deeptools.readthedocs.io/' +description = """deepTools is a suite of python tools particularly developed for the efficient analysis of + high-throughput sequencing data, such as ChIP-seq, RNA-seq or MNase-seq.""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), + ('matplotlib', '3.5.2'), + ('plotly.py', '5.12.0'), + ('Pysam', '0.19.1'), + ('pyBigWig', '0.3.18'), +] + +use_pip = True + +exts_list = [ + ('py2bit', '0.3.0', { + 'checksums': ['450555c40cba66957ac8c9a4b6afb625fb34c4bb41638de78c87661ff8b682ef'], + }), + ('deeptoolsintervals', '0.1.9', { + 'checksums': ['7d94c36fd2b6f10d8b99e536d2672e8228971f1fc810497d33527bba2c40d4f6'], + }), + ('numpydoc', '1.5.0', { + 'checksums': ['b0db7b75a32367a0e25c23b397842c65e344a1206524d16c8069f0a1c91b5f4c'], + }), + (name, version, { + 'checksums': ['9367f9037b1822b7d69d5abaf47ca25bf0e5dc4cb8be85bd55b6f63c90781941'], + }), +] + +sanity_check_paths = { + 'files': ['bin/bamCompare', 'bin/bamCoverage', 'bin/bamPEFragmentSize', 'bin/computeGCBias', 'bin/computeMatrix', + 'bin/correctGCBias', 'bin/multiBamSummary', 'bin/plotCorrelation', 'bin/plotCoverage', + 'bin/plotHeatmap', 'bin/plotProfile'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = [ + "bamCompare --help", + "multiBamSummary --help", + "plotHeatmap --help", +] + +sanity_pip_check = True + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/d/dicom2nifti/dicom2nifti-2.3.0-fosscuda-2020b.eb b/easybuild/easyconfigs/d/dicom2nifti/dicom2nifti-2.3.0-fosscuda-2020b.eb new file mode 100644 index 00000000000..20fcaa7cfc7 --- /dev/null +++ b/easybuild/easyconfigs/d/dicom2nifti/dicom2nifti-2.3.0-fosscuda-2020b.eb @@ -0,0 +1,33 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# Author: Denis Kristak +easyblock = 'PythonPackage' + +name = 'dicom2nifti' +version = '2.3.0' + +homepage = 'https://github.com/icometrix/dicom2nifti' +description = "Python library for converting dicom files to nifti" + +toolchain = {'name': 'fosscuda', 'version': '2020b'} + +sources = [SOURCE_TAR_GZ] +checksums = ['808c4ddbcffd492d41ff20a2837b5e2a3cbe2058d43512fe97b99d678a758bfd'] + +dependencies = [ + ('Python', '3.8.6'), + ('pydicom', '2.1.2'), + ('NiBabel', '3.2.1'), +] + +use_pip = True +download_dep_fail = True +sanity_pip_check = True + +sanity_check_paths = { + 'files': ['bin/dicom2nifti'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = ["dicom2nifti --help"] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/d/dm-haiku/dm-haiku-0.0.9-foss-2021a-CUDA-11.3.1.eb b/easybuild/easyconfigs/d/dm-haiku/dm-haiku-0.0.9-foss-2021a-CUDA-11.3.1.eb new file mode 100644 index 00000000000..65c6e384b88 --- /dev/null +++ b/easybuild/easyconfigs/d/dm-haiku/dm-haiku-0.0.9-foss-2021a-CUDA-11.3.1.eb @@ -0,0 +1,33 @@ +easyblock = 'PythonBundle' + +name = 'dm-haiku' +version = '0.0.9' +versionsuffix = '-CUDA-11.3.1' + +homepage = 'https://github.com/deepmind/dm-haiku' +description = """Haiku is a simple neural network library for JAX developed by some of the authors of Sonnet, a neural +network library for TensorFlow.""" + +toolchain = {'name': 'foss', 'version': '2021a'} + +dependencies = [ + ('Python', '3.9.5'), + ('SciPy-bundle', '2021.05'), + ('jax', '0.2.24', versionsuffix), # required by jmp, also provides absl-py +] + +use_pip = True + +exts_list = [ + ('jmp', '0.0.4', { + 'checksums': ['5dfeb0fd7c7a9f72a70fff0aab9d0cbfae32a809c02f4037ff3485ceb33e1730'], + }), + (name, version, { + 'modulename': 'haiku', + 'checksums': ['97752b32cdbe5a3e2d1c60ea884d33eb4b36e7d410000f0d61b571417c925435'], + }), +] + +sanity_pip_check = True + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/d/dominate/dominate-2.8.0-GCCcore-11.3.0.eb b/easybuild/easyconfigs/d/dominate/dominate-2.8.0-GCCcore-11.3.0.eb new file mode 100644 index 00000000000..b1a8dc8c869 --- /dev/null +++ b/easybuild/easyconfigs/d/dominate/dominate-2.8.0-GCCcore-11.3.0.eb @@ -0,0 +1,29 @@ +easyblock = 'PythonBundle' + +name = 'dominate' +version = '2.8.0' + +homepage = 'https://github.com/Knio/dominate/' +description = """ +Dominate is a Python library for creating and manipulating HTML documents using +an elegant DOM API. It allows you to write HTML pages in pure Python very +concisely, which eliminates the need to learn another template language, and +lets you take advantage of the more powerful features of Python. +""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +builddependencies = [('binutils', '2.38')] + +dependencies = [('Python', '3.10.4')] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + (name, version, { + 'checksums': ['4c90c3befaf88e612b71f4b39af7bcbef8977acfa855cec957225a8fbf504007'], + }), +] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/d/dorado/dorado-0.1.1-foss-2022a-CUDA-11.7.0.eb b/easybuild/easyconfigs/d/dorado/dorado-0.1.1-foss-2022a-CUDA-11.7.0.eb index fd5b9dab93d..1c2ca1b3f4b 100644 --- a/easybuild/easyconfigs/d/dorado/dorado-0.1.1-foss-2022a-CUDA-11.7.0.eb +++ b/easybuild/easyconfigs/d/dorado/dorado-0.1.1-foss-2022a-CUDA-11.7.0.eb @@ -48,6 +48,9 @@ preconfigopts += "sed -i '/add_dependencies.*htslib_project/d' ../dorado/CMakeLi configopts = "-DDORADO_INSTALL_PATH=%(installdir)s " configopts += "-DCUDA_TOOLKIT_ROOT_DIR=$EBROOTCUDA -DCMAKE_CUDA_COMPILER=$EBROOTCUDA/bin/nvcc " configopts += "-DDORADO_LIBTORCH_DIR=$EBROOTPYTORCH/lib -DHTSLIB_LIBRARIES=hts " +# add -pthread flag (in addition to -lpthread) to avoid linking error: +# in function `_GLOBAL__sub_I_mutex.cc': mutex.cc:(.text.startup+0x17): undefined reference to `pthread_atfork' +configopts += '-DCMAKE_C_FLAGS="$CFLAGS -pthread" ' sanity_check_paths = { 'files': ['bin/dorado'], diff --git a/easybuild/easyconfigs/d/dorado/dorado-0.3.0-foss-2022a-CUDA-11.7.0.eb b/easybuild/easyconfigs/d/dorado/dorado-0.3.0-foss-2022a-CUDA-11.7.0.eb new file mode 100644 index 00000000000..6c8bfc91292 --- /dev/null +++ b/easybuild/easyconfigs/d/dorado/dorado-0.3.0-foss-2022a-CUDA-11.7.0.eb @@ -0,0 +1,67 @@ +easyblock = 'CMakeMake' + +name = 'dorado' +version = '0.3.0' +versionsuffix = '-CUDA-%(cudaver)s' + +homepage = 'https://github.com/nanoporetech/dorado' +description = """Dorado is a high-performance, easy-to-use, open source basecaller for Oxford Nanopore reads.""" + +toolchain = {'name': 'foss', 'version': '2022a'} +toolchainopts = {'usempi': True} + +source_urls = ['https://github.com/nanoporetech/dorado/archive/'] +sources = [{ + 'git_config': { + 'url': 'https://github.com/nanoporetech', + 'repo_name': name, + 'tag': 'v%(version)s', + 'recursive': True, + }, + 'filename': SOURCE_TAR_GZ, +}] +checksums = [None] + +builddependencies = [ + ('binutils', '2.38'), + ('CMake', '3.24.3'), +] + +dependencies = [ + ('CUDA', '11.7.0', '', SYSTEM), + ('OpenSSL', '1.1', '', SYSTEM), + ('PyTorch', '1.12.0', '-CUDA-%(cudaver)s'), + ('HDF5', '1.12.2'), + ('zstd', '1.5.2'), + ('HTSlib', '1.15.1'), + ('kineto', '0.4.0'), + ('libaec', '1.0.6'), +] + +# don't link to OpenSSL static libraries +# fix for CMake Error "missing: OPENSSL_CRYPTO_LIBRARY" (if only shared OpenSSL libraries are available) +preconfigopts = "sed -i '/OPENSSL_USE_STATIC_LIBS TRUE/d' ../dorado/cmake/OpenSSL.cmake && " +preconfigopts += "export OPENSSL_ROOT_DIR=$EBROOTOPENSSL && " + +# don't use vendored HTSlib, use provided HTSlib dependency +preconfigopts += "rm -r ../dorado/dorado/3rdparty/htslib/ && " +preconfigopts += "sed -i '/add_dependencies.*htslib_project/d' ../dorado/CMakeLists.txt && " +preconfigopts += "sed -i '/Htslib.cmake/d' ../dorado/CMakeLists.txt && " +# link with -lhts, not -lhtslib +preconfigopts += "sed -i 's/htslib/hts/g' ../dorado/CMakeLists.txt && " + +configopts = "-DDORADO_INSTALL_PATH=%(installdir)s " +configopts += "-DCUDA_TOOLKIT_ROOT_DIR=$EBROOTCUDA -DCMAKE_CUDA_COMPILER=$EBROOTCUDA/bin/nvcc " +configopts += "-DDORADO_LIBTORCH_DIR=$EBROOTPYTORCH/lib -DHTSLIB_LIBRARIES=hts " +# add -pthread flag (in addition to -lpthread) to avoid linking error: +# in function `_GLOBAL__sub_I_mutex.cc': mutex.cc:(.text.startup+0x17): undefined reference to `pthread_atfork' +configopts += '-DCMAKE_C_FLAGS="$CFLAGS -pthread" ' + +sanity_check_paths = { + 'files': ['bin/dorado'], + 'dirs': [], +} + +sanity_check_commands = ["dorado basecaller --help"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/d/dorado/dorado-0.3.1-foss-2022a-CUDA-11.7.0.eb b/easybuild/easyconfigs/d/dorado/dorado-0.3.1-foss-2022a-CUDA-11.7.0.eb new file mode 100644 index 00000000000..d1b1e7a7376 --- /dev/null +++ b/easybuild/easyconfigs/d/dorado/dorado-0.3.1-foss-2022a-CUDA-11.7.0.eb @@ -0,0 +1,67 @@ +easyblock = 'CMakeMake' + +name = 'dorado' +version = '0.3.1' +versionsuffix = '-CUDA-%(cudaver)s' + +homepage = 'https://github.com/nanoporetech/dorado' +description = """Dorado is a high-performance, easy-to-use, open source basecaller for Oxford Nanopore reads.""" + +toolchain = {'name': 'foss', 'version': '2022a'} +toolchainopts = {'usempi': True} + +source_urls = ['https://github.com/nanoporetech/dorado/archive/'] +sources = [{ + 'git_config': { + 'url': 'https://github.com/nanoporetech', + 'repo_name': name, + 'tag': 'v%(version)s', + 'recursive': True, + }, + 'filename': SOURCE_TAR_GZ, +}] +checksums = [None] + +builddependencies = [ + ('binutils', '2.38'), + ('CMake', '3.24.3'), +] + +dependencies = [ + ('CUDA', '11.7.0', '', SYSTEM), + ('OpenSSL', '1.1', '', SYSTEM), + ('PyTorch', '1.12.0', '-CUDA-%(cudaver)s'), + ('HDF5', '1.12.2'), + ('zstd', '1.5.2'), + ('HTSlib', '1.15.1'), + ('kineto', '0.4.0'), + ('libaec', '1.0.6'), +] + +# don't link to OpenSSL static libraries +# fix for CMake Error "missing: OPENSSL_CRYPTO_LIBRARY" (if only shared OpenSSL libraries are available) +preconfigopts = "sed -i '/OPENSSL_USE_STATIC_LIBS TRUE/d' ../dorado/cmake/OpenSSL.cmake && " +preconfigopts += "export OPENSSL_ROOT_DIR=$EBROOTOPENSSL && " + +# don't use vendored HTSlib, use provided HTSlib dependency +preconfigopts += "rm -r ../dorado/dorado/3rdparty/htslib/ && " +preconfigopts += "sed -i '/add_dependencies.*htslib_project/d' ../dorado/CMakeLists.txt && " +preconfigopts += "sed -i '/Htslib.cmake/d' ../dorado/CMakeLists.txt && " +# link with -lhts, not -lhtslib +preconfigopts += "sed -i 's/htslib/hts/g' ../dorado/CMakeLists.txt && " + +configopts = "-DDORADO_INSTALL_PATH=%(installdir)s " +configopts += "-DCUDA_TOOLKIT_ROOT_DIR=$EBROOTCUDA -DCMAKE_CUDA_COMPILER=$EBROOTCUDA/bin/nvcc " +configopts += "-DDORADO_LIBTORCH_DIR=$EBROOTPYTORCH/lib -DHTSLIB_LIBRARIES=hts " +# add -pthread flag (in addition to -lpthread) to avoid linking error: +# in function `_GLOBAL__sub_I_mutex.cc': mutex.cc:(.text.startup+0x17): undefined reference to `pthread_atfork' +configopts += '-DCMAKE_C_FLAGS="$CFLAGS -pthread" ' + +sanity_check_paths = { + 'files': ['bin/dorado'], + 'dirs': [], +} + +sanity_check_commands = ["dorado basecaller --help"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/d/double-conversion/double-conversion-3.2.0-GCCcore-11.3.0.eb b/easybuild/easyconfigs/d/double-conversion/double-conversion-3.2.0-GCCcore-11.3.0.eb index 177cc580c99..922d510f660 100644 --- a/easybuild/easyconfigs/d/double-conversion/double-conversion-3.2.0-GCCcore-11.3.0.eb +++ b/easybuild/easyconfigs/d/double-conversion/double-conversion-3.2.0-GCCcore-11.3.0.eb @@ -17,10 +17,6 @@ builddependencies = [ ('CMake', '3.23.1'), ] -separate_build_dir = True - -build_type = 'Release' - # Build static lib, static lib with -fPIC and shared lib configopts = [ '', diff --git a/easybuild/easyconfigs/d/double-conversion/double-conversion-3.2.1-GCCcore-12.2.0.eb b/easybuild/easyconfigs/d/double-conversion/double-conversion-3.2.1-GCCcore-12.2.0.eb index d3221353d9f..159f1a025a6 100644 --- a/easybuild/easyconfigs/d/double-conversion/double-conversion-3.2.1-GCCcore-12.2.0.eb +++ b/easybuild/easyconfigs/d/double-conversion/double-conversion-3.2.1-GCCcore-12.2.0.eb @@ -17,10 +17,6 @@ builddependencies = [ ('CMake', '3.24.3'), ] -separate_build_dir = True - -build_type = 'Release' - # Build static lib, static lib with -fPIC and shared lib configopts = [ '', diff --git a/easybuild/easyconfigs/d/double-conversion/double-conversion-3.3.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/d/double-conversion/double-conversion-3.3.0-GCCcore-12.3.0.eb index 66e54112889..e0e20e455b5 100644 --- a/easybuild/easyconfigs/d/double-conversion/double-conversion-3.3.0-GCCcore-12.3.0.eb +++ b/easybuild/easyconfigs/d/double-conversion/double-conversion-3.3.0-GCCcore-12.3.0.eb @@ -17,10 +17,6 @@ builddependencies = [ ('CMake', '3.26.3'), ] -separate_build_dir = True - -build_type = 'Release' - # Build static lib, static lib with -fPIC and shared lib configopts = [ '', diff --git a/easybuild/easyconfigs/d/dtcmp/dtcmp-1.1.4-gompi-2022a.eb b/easybuild/easyconfigs/d/dtcmp/dtcmp-1.1.4-gompi-2022a.eb new file mode 100644 index 00000000000..2d17d7a2344 --- /dev/null +++ b/easybuild/easyconfigs/d/dtcmp/dtcmp-1.1.4-gompi-2022a.eb @@ -0,0 +1,39 @@ +# +# Author: Robert Mijakovic +# +easyblock = 'ConfigureMake' + +name = 'dtcmp' +version = '1.1.4' + +homepage = 'https://github.com/LLNL/dtcmp' +description = """The Datatype Comparison (DTCMP) Library provides pre-defined and user-defined +comparison operations to compare the values of two items which can be arbitrary MPI datatypes. +Using these comparison operations, the library provides various routines for manipulating data, +which may be distributed over the processes of an MPI communicator.""" + +toolchain = {'name': 'gompi', 'version': '2022a'} + +github_account = 'LLNL' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['5015b7b330b35e1871a6b5e53cf7045cfb0a29e61f9a678d1919f3bf14a85437'] + +builddependencies = [ + ('Autotools', '20220317'), + ('pkgconf', '1.8.0'), +] + +dependencies = [ + ('lwgrp', '1.0.5'), +] + +preconfigopts = './autogen.sh && ' +configopts = '--with-lwgrp=$EBROOTLWGRP' + +sanity_check_paths = { + 'files': ['include/%(name)s.h', 'lib/lib%%(name)s.%s' % SHLIB_EXT, 'share/%(name)s/README.md'], + 'dirs': [] +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/d/duplex-tools/duplex-tools-0.3.3-foss-2022a.eb b/easybuild/easyconfigs/d/duplex-tools/duplex-tools-0.3.3-foss-2022a.eb new file mode 100644 index 00000000000..bed3911b036 --- /dev/null +++ b/easybuild/easyconfigs/d/duplex-tools/duplex-tools-0.3.3-foss-2022a.eb @@ -0,0 +1,74 @@ +# Author: Jasper Grimm (UoY) +# Updated: Petr Král (INUITS) +easyblock = 'PythonBundle' + +name = 'duplex-tools' +version = '0.3.3' + +homepage = 'https://github.com/nanoporetech/duplex-tools' +description = """ +Duplex Tools contains a set of utilities for dealing with Duplex sequencing data. Tools are provided + to identify and prepare duplex pairs for basecalling by Dorado (recommended) and Guppy, and for + recovering simplex basecalls from incorrectly concatenated pairs. +""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +_minimap2_ver = '2.24' +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), + ('matplotlib', '3.5.2'), + ('edlib', '1.3.9'), + ('minimap2', _minimap2_ver), + ('python-parasail', '1.3.3'), + ('Pysam', '0.19.1'), + ('tqdm', '4.64.0'), + ('Arrow', '8.0.0'), + ('h5py', '3.7.0'), + ('pod5-file-format', '0.1.8'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('mappy', _minimap2_ver, { + 'checksums': ['35a2fb73ef14173283d5abb31e7a318429e0330c3be95851df38dd83d4ff9af9'], + }), + ('natsort', '8.4.0', { + 'checksums': ['45312c4a0e5507593da193dedd04abb1469253b601ecaf63445ad80f0a1ea581'], + }), + ('iso8601', '1.1.0', { + 'checksums': ['32811e7b81deee2063ea6d2e94f8819a86d1f3811e49d23623a41fa832bef03f'], + }), + ('vbz-h5py-plugin', '1.0.1', { + 'source_tmpl': 'vbz_h5py_plugin-%(version)s.tar.gz', + 'checksums': ['c784458bb0aad6303474cb2f10956179116b35555803fd1154eb4ef362519341'], + }), + ('pyfastx', '1.1.0', { + # PYPI source tarball is incomplete, causes ImportErrors + # see https://github.com/lmdu/pyfastx/issues/60 + 'source_tmpl': '%(version)s.tar.gz', + 'source_urls': ['https://github.com/lmdu/%(name)s/archive'], + 'checksums': ['b9974b21d21067350694ea37d33f99647255546b90eee8addeb74c8d18d824e8'], + }), + (name, version, { + 'source_tmpl': 'duplex_tools-%(version)s.tar.gz', + 'checksums': ['883e0a6610d14328a640b6a31eaef90592d2967cda68db0547a4d99924281300'], + }), +] + +_bins = ['dorado_stereo.sh', 'duplex_tools', 'minimap2.py', 'natsort', 'pyfastx'] +sanity_check_paths = { + 'files': ['bin/%s' % x for x in _bins], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = [ + 'dorado_stereo.sh -h', + 'duplex_tools --help', + 'pyfastx --help', +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/d/dx-toolkit/dx-toolkit-0.350.1-GCCcore-12.2.0.eb b/easybuild/easyconfigs/d/dx-toolkit/dx-toolkit-0.350.1-GCCcore-12.2.0.eb new file mode 100644 index 00000000000..2b1396e8f5d --- /dev/null +++ b/easybuild/easyconfigs/d/dx-toolkit/dx-toolkit-0.350.1-GCCcore-12.2.0.eb @@ -0,0 +1,50 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild + +easyblock = 'PythonBundle' + +name = 'dx-toolkit' +version = '0.350.1' + +homepage = 'https://documentation.dnanexus.com/downloads#dnanexus-platform-sdk' +description = """The DNAnexus Platform SDK - also called dx-toolkit - includes the dx command-line client; + tools for building and debugging apps; utilities for working with DNA data on the DNAnexus Platform; + and Python, Java, C++ and R bindings for working on the DNAnexus Platform. + """ + +toolchain = {'name': 'GCCcore', 'version': '12.2.0'} + +builddependencies = [ + ('binutils', '2.39'), +] + +dependencies = [ + ('Python', '3.10.8'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('argcomplete', '3.1.1', { + 'checksums': ['6c4c563f14f01440aaffa3eae13441c5db2357b5eec639abe7c0b15334627dff'], + }), + ('websocket-client', '0.54.0', { + 'source_tmpl': 'websocket_client-%(version)s.tar.gz', + 'checksums': ['e51562c91ddb8148e791f0155fdb01325d99bb52c4cdbb291aee7a3563fd0849'], + 'modulename': 'websocket', + }), + ('dxpy', version, { + 'checksums': ['3378a233454beaefb8d291ed4a4450a784917347e3056812e4fd709be09aace4'], + }), +] + +sanity_check_paths = { + 'files': ['bin/dx', 'bin/wsdump.py'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = [ + 'dx --help', +] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/e/EDirect/EDirect-19.7.20230531-GCCcore-10.3.0.eb b/easybuild/easyconfigs/e/EDirect/EDirect-19.7.20230531-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..8e19e535ef4 --- /dev/null +++ b/easybuild/easyconfigs/e/EDirect/EDirect-19.7.20230531-GCCcore-10.3.0.eb @@ -0,0 +1,63 @@ +## +# This is a contribution from SIB Swiss Institute of Bioinformatics +# Homepage: https://www.sib.swiss/research-infrastructure/competence-centers/vital-it +# +# Authors:: Sebastien Moretti +# +## +easyblock = 'Binary' + +name = 'EDirect' +version = '19.7.20230531' + +homepage = 'https://www.ncbi.nlm.nih.gov/books/NBK25501/' +# See also https://dataguide.nlm.nih.gov/edirect/install.html +description = """Entrez Direct (EDirect) provides access to the NCBI's suite of +interconnected databases from a Unix terminal window. Search terms are entered +as command-line arguments. Individual operations are connected with Unix pipes +to construct multi-step queries. Selected records can then be retrieved in a +variety of formats.""" +# software_license = 'Public Domain' + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = ['https://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect/versions/%(version)s/'] +sources = [ + {'download_filename': 'edirect-%(version)s.tar.gz', + 'filename': 'edirect-%s.tar.gz' % version, + }, +] +checksums = [ + 'c25d2818a75fbfce4a81907f30a6c80ff13df6ada8b2f67d67d705fc887500d1', # edirect-19.7.20230531.tar.gz +] + +builddependencies = [ + ('Go', '1.20.4', '', SYSTEM), +] + +dependencies = [ + ('Python', '3.9.5'), + ('Perl', '5.32.1'), +] + +extract_sources = True + +postinstallcmds = [ + "cd cmd/ && " + "sed -i 's@target=\"\\$HOME/Misc/scripts/\"@target=\"%(installdir)s/\"@' build.sh && " + "./build.sh install && cd %(installdir)s/ && rm -rf cmd/ eutils/" +] + +sanity_check_paths = { + 'files': ['einfo', 'README'], + 'dirs': ['help'], +} + +sanity_check_commands = [ + "esearch -version && " + "xtract -version && " + "esearch -db pubmed -query 'Babalobi OO[au] AND 2008[pdat]' | efetch -format xml | " + "xtract -pattern Author -if Affiliation -contains Medicine -element Initials" +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/e/EIGENSOFT/EIGENSOFT-7.2.1-foss-2020b.eb b/easybuild/easyconfigs/e/EIGENSOFT/EIGENSOFT-7.2.1-foss-2020b.eb new file mode 100644 index 00000000000..09a11071180 --- /dev/null +++ b/easybuild/easyconfigs/e/EIGENSOFT/EIGENSOFT-7.2.1-foss-2020b.eb @@ -0,0 +1,58 @@ +# 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 +# 6.1.4 modified by: +# Adam Huffman +# The Francis Crick Institute +# 7.2.1 modified by: +# Tom Strempel +# Helmholtz-Centre for Environmental Research - UFZ + +easyblock = 'MakeCp' + +name = 'EIGENSOFT' +version = '7.2.1' + +homepage = 'https://www.hsph.harvard.edu/alkes-price/software/' +description = """The EIGENSOFT package combines functionality from our population genetics methods (Patterson et al. +2006) and our EIGENSTRAT stratification correction method (Price et al. 2006). The EIGENSTRAT method uses principal +components analysis to explicitly model ancestry differences between cases and controls along continuous axes of +variation; the resulting correction is specific to a candidate marker’s variation in frequency across ancestral +populations, minimizing spurious associations while maximizing power to detect true associations. The EIGENSOFT +package has a built-in plotting script and supports multiple file formats and quantitative phenotypes.""" + +toolchain = {'name': 'foss', 'version': '2020b'} + +source_urls = ['https://github.com/DReichLab/EIG/archive'] +sources = ['v%(version)s.tar.gz'] +patches = [ + '%(name)s-%(version)s_Fix_makefile_openblas.patch', + ('%(name)s-%(version)s_restore-ploteig.patch', 0), +] +checksums = [ + 'f09a46ec4b83c5062ec71eaca48a78f2373f1666fe23cbf17757150a679c8650', # v7.2.1.tar.gz + 'e49e3754f2326210114fe5a731a77c7ffd240c8a9134eb8e8e1517bfe06c71e1', # EIGENSOFT-7.2.1_Fix_makefile_openblas.patch + '8a7a0273ae4d0d3ec0c9927facd41a1a43b8540725af3bd06e007cd86afaf9e0', # EIGENSOFT-7.2.1_restore-ploteig.patch +] + +dependencies = [ + ('GSL', '2.6'), + ('Perl', '5.32.0'), +] + +start_dir = 'src' + +# Run "make install" after make to copy all binaries to the bin dir +buildopts = ' && make install' + +files_to_copy = ['bin', 'CONVERTF', 'EIGENSTRAT', 'POPGEN', 'README'] + +fix_perl_shebang_for = ['bin/*.perl', 'bin/ploteig'] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ["baseprog", "convertf", "eigenstrat", "eigenstratQTL", "ploteig"]], + 'dirs': [] +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/e/ELPA/ELPA-2021.11.001-intel-2022b.eb b/easybuild/easyconfigs/e/ELPA/ELPA-2021.11.001-intel-2022b.eb new file mode 100644 index 00000000000..62853f74ffb --- /dev/null +++ b/easybuild/easyconfigs/e/ELPA/ELPA-2021.11.001-intel-2022b.eb @@ -0,0 +1,47 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# +# Authors:: Inge Gutheil , Alan O'Cais +# License:: MIT/GPL +# +## + +name = 'ELPA' +version = '2021.11.001' + +homepage = 'https://elpa.mpcdf.mpg.de' +description = """Eigenvalue SoLvers for Petaflop-Applications.""" + +toolchain = {'name': 'intel', 'version': '2022b'} +toolchainopts = {'openmp': True, 'usempi': True} + +source_urls = ['https://gitlab.mpcdf.mpg.de/elpa/elpa/-/archive/new_release_%(version)s/'] +sources = ['elpa-new_release_%(version)s.tar.gz'] +patches = ['%(name)s-%(version)s_fix_hardcoded_perl_path.patch'] +checksums = [ + 'e61048393a5e5f460858a11b216547fa3f434dd620c478cb20a52ebf543260f1', # elpa-new_release_2021.11.001.tar.gz + # ELPA-2021.11.001_fix_hardcoded_perl_path.patch + '5fc40b6f3f948fd026efc688f9bafba0461d68ad007d9dc161bfd1507e2fc13b', +] + +builddependencies = [ + ('Autotools', '20220317'), + # remove_xcompiler script requires 'python' command, + ('Python', '3.10.8'), + ('Perl', '5.36.0'), +] + +preconfigopts = './autogen.sh && ' +preconfigopts += 'export LDFLAGS="-lm $LDFLAGS" && ' +preconfigopts += 'autoreconf && ' +# If the build is running in a batch job, make sure Intel libmpi does +# not try to use Slurm to run the MPI_THREAD test code that ELPA's +# configure is running without "mpirun". +preconfigopts += 'unset SLURM_JOBID && unset SLURM_NODELIST && unset I_MPI_PMI_LIBRARY && ' + +# When building in parallel, the file test_setup_mpi.mod is sometimes +# used before it is built, leading to an error. This must be a bug in +# the makefile affecting parallel builds. +maxparallel = 1 + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/e/ETE/ETE-3.1.2-foss-2019b-Python-3.7.4.eb b/easybuild/easyconfigs/e/ETE/ETE-3.1.2-foss-2019b-Python-3.7.4.eb new file mode 100644 index 00000000000..18293697388 --- /dev/null +++ b/easybuild/easyconfigs/e/ETE/ETE-3.1.2-foss-2019b-Python-3.7.4.eb @@ -0,0 +1,35 @@ +easyblock = 'PythonPackage' + +name = 'ETE' +version = '3.1.2' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://etetoolkit.org' +description = """A Python framework for the analysis and visualization of trees""" + +toolchain = {'name': 'foss', 'version': '2019b'} + +source_urls = ['https://pypi.python.org/packages/source/e/ete3'] +sources = ['ete3-%(version)s.tar.gz'] +checksums = ['4fc987b8c529889d6608fab1101f1455cb5cbd42722788de6aea9c7d0a8e59e9'] + +dependencies = [ + ('lxml', '4.4.2'), + ('Python', '3.7.4'), + ('PyQt5', '5.13.2', versionsuffix), + ('SciPy-bundle', '2019.10', 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.7.2.eb b/easybuild/easyconfigs/e/EasyBuild/EasyBuild-4.7.2.eb new file mode 100644 index 00000000000..8153a7f1f36 --- /dev/null +++ b/easybuild/easyconfigs/e/EasyBuild/EasyBuild-4.7.2.eb @@ -0,0 +1,44 @@ +easyblock = 'EB_EasyBuildMeta' + +name = 'EasyBuild' +version = '4.7.2' + +homepage = 'https://easybuilders.github.io/easybuild' +description = """EasyBuild is a software build and installation framework + written in Python that allows you to install software in a structured, + repeatable and robust way.""" + +toolchain = SYSTEM + +source_urls = [ + # easybuild-framework + 'https://files.pythonhosted.org/packages/07/e1/c9bb4ddce9e02dccbff5afb41a25e0d61274ba8db8def11aed4b7f4bb8aa/', + # easybuild-easyblocks + 'https://files.pythonhosted.org/packages/83/0c/c4953eadf14c7fd5af42873b97a02498a32cb6827213b5549ffab8730e52/', + # easybuild-easyconfigs + 'https://files.pythonhosted.org/packages/80/86/791f7470292f1d6b26eb84e08a53ceb37c3d75e45d02ae48d8b51a3d4075/', +] +sources = [ + 'easybuild-framework-%(version)s.tar.gz', + 'easybuild-easyblocks-%(version)s.tar.gz', + 'easybuild-easyconfigs-%(version)s.tar.gz', +] +checksums = [ + {'easybuild-framework-4.7.2.tar.gz': '508ed5ffbb450aa1212bd451b51b2555109b94964c6bbd2818a150eb47fb3662'}, + {'easybuild-easyblocks-4.7.2.tar.gz': '6347aac95c56a5172688db98fd2cad3e348df206dd2a9c0389adab3208046699'}, + {'easybuild-easyconfigs-4.7.2.tar.gz': 'd678c541bd1f0d3d2ccd2a203fb0eaa8f958d77c910138c3d2518f61047bc17e'}, +] + +# 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/Emacs/Emacs-28.2-GCCcore-12.2.0.eb b/easybuild/easyconfigs/e/Emacs/Emacs-28.2-GCCcore-12.2.0.eb new file mode 100644 index 00000000000..09ab4bfa504 --- /dev/null +++ b/easybuild/easyconfigs/e/Emacs/Emacs-28.2-GCCcore-12.2.0.eb @@ -0,0 +1,50 @@ +# +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# +# Author: Robert Mijakovic +# reciPY derived from preexisting reciPy for GCCcore-9.2.0. +# Modder: Ben Langenberg +# Updated by: Thomas Eylenbosch (Gluo N.V.) + +easyblock = 'ConfigureMake' + +name = 'Emacs' +version = '28.2' + +homepage = 'https://www.gnu.org/software/emacs/' +description = """GNU Emacs is an extensible, customizable text editor--and more. + At its core is an interpreter for Emacs Lisp, a dialect of the Lisp programming + language with extensions to support text editing.""" + +toolchain = {'name': 'GCCcore', 'version': '12.2.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['a6912b14ef4abb1edab7f88191bfd61c3edd7085e084de960a4f86485cb7cad8'] + +builddependencies = [ + ('binutils', '2.39'), + ('pkgconf', '1.9.3'), +] + +dependencies = [ + ('zlib', '1.2.12'), + ('libpng', '1.6.38'), + ('libjpeg-turbo', '2.1.4'), + ('ncurses', '6.3'), + ('LibTIFF', '4.4.0'), + ('X11', '20221110'), + ('GTK3', '3.24.35'), +] + +# If you want to use Emacs plugins you must install the gnutls command line tools +# osdependencies = [('gnutls-utils')] + +configopts = '--with-gif=no --with-tiff=yes --with-x-toolkit=yes --with-xpm=yes --with-gnutls=no ' + +sanity_check_paths = { + 'files': ["bin/emacs", "bin/emacs-%(version)s", "bin/emacsclient", "bin/etags"], + 'dirs': [] +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/e/Exonerate/Exonerate-2.4.0-GCC-12.2.0.eb b/easybuild/easyconfigs/e/Exonerate/Exonerate-2.4.0-GCC-12.2.0.eb new file mode 100644 index 00000000000..ca9b769165c --- /dev/null +++ b/easybuild/easyconfigs/e/Exonerate/Exonerate-2.4.0-GCC-12.2.0.eb @@ -0,0 +1,47 @@ +# 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 +# foss-2016b modified by: +# Adam Huffman +# The Francis Crick Institute + +easyblock = 'ConfigureMake' + +name = 'Exonerate' +version = '2.4.0' + +homepage = 'https://www.ebi.ac.uk/about/vertebrate-genomics/software/exonerate' +# also https://github.com/nathanweeks/exonerate +description = """ Exonerate is a generic tool for pairwise sequence comparison. + It allows you to align sequences using a many alignment models, using either + exhaustive dynamic programming, or a variety of heuristics. """ + +toolchain = {'name': 'GCC', 'version': '12.2.0'} + +source_urls = ['https://ftp.ebi.ac.uk/pub/software/vertebrategenomics/%(namelower)s/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['f849261dc7c97ef1f15f222e955b0d3daf994ec13c9db7766f1ac7e77baa4042'] + +builddependencies = [ + ('pkgconf', '1.9.3'), +] +dependencies = [ + ('GLib', '2.75.0'), +] + +# parallel build fails +parallel = 1 + +runtest = 'check' + +_bins = ['exonerate', 'fastaclip', 'fastacomposition', 'fastafetch', 'fastaoverlap', 'ipcress'] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in _bins], + 'dirs': ['share'], +} + +sanity_check_commands = ['%s -h | grep "from exonerate version %%(version)s"' % x for x in _bins] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/e/Extrae/Extrae-4.0.4-change_libdwarf_path.patch b/easybuild/easyconfigs/e/Extrae/Extrae-4.0.4-change_libdwarf_path.patch new file mode 100644 index 00000000000..68b82db0cad --- /dev/null +++ b/easybuild/easyconfigs/e/Extrae/Extrae-4.0.4-change_libdwarf_path.patch @@ -0,0 +1,62 @@ +# Change path to the libdwarf headers and adjust the aclocal version, since we change the *.m4 file too +# Author: maxim-masterov + +diff -Nru extrae-4.0.4.orig/config/macros.m4 extrae-4.0.4/config/macros.m4 +--- extrae-4.0.4.orig/config/macros.m4 2023-06-05 11:16:01.296643000 +0200 ++++ extrae-4.0.4/config/macros.m4 2023-06-05 11:21:10.535531000 +0200 +@@ -1666,8 +1666,8 @@ + if test -f "${DWARF_HOME}/include/libdwarf.h" -a \ + -f "${DWARF_HOME}/include/dwarf.h" ; then + libdwarf_found="yes" +- elif test -f "${DWARF_HOME}/include/libdwarf/libdwarf.h" -a \ +- -f "${DWARF_HOME}/include/libdwarf/dwarf.h" ; then ++ elif test -f "${DWARF_HOME}/include/libdwarf-0/libdwarf.h" -a \ ++ -f "${DWARF_HOME}/include/libdwarf-0/dwarf.h" ; then + libdwarf_found="yes" + else + AC_MSG_ERROR([Cannot find DWARF header files in ${dwarf_paths}/include]) +@@ -1678,8 +1678,8 @@ + -f "${DWARF_HOME}/include/dwarf.h" ; then + libdwarf_found="yes" + DWARF_LIBSDIR="${DWARF_LIBSDIR_MULTIARCH}" +- elif test -f "${DWARF_HOME}/include/libdwarf/libdwarf.h" -a \ +- -f "${DWARF_HOME}/include/libdwarf/dwarf.h" ; then ++ elif test -f "${DWARF_HOME}/include/libdwarf-0/libdwarf.h" -a \ ++ -f "${DWARF_HOME}/include/libdwarf-0/dwarf.h" ; then + libdwarf_found="yes" + DWARF_LIBSDIR="${DWARF_LIBSDIR_MULTIARCH}" + else +diff -Nru extrae-4.0.4.orig/configure extrae-4.0.4/configure +--- extrae-4.0.4.orig/configure 2023-06-05 11:16:01.298502695 +0200 ++++ extrae-4.0.4/configure 2023-06-05 11:32:55.962736435 +0200 +@@ -4683,7 +4683,7 @@ + fi + + # Initialize automake +-am__api_version='1.13' ++am__api_version='1.16' + + # Find a good install program. We prefer a C program (faster), + # so one script is as good as another. But avoid the broken or +@@ -30469,8 +30469,8 @@ + if test -f "${DWARF_HOME}/include/libdwarf.h" -a \ + -f "${DWARF_HOME}/include/dwarf.h" ; then + libdwarf_found="yes" +- elif test -f "${DWARF_HOME}/include/libdwarf/libdwarf.h" -a \ +- -f "${DWARF_HOME}/include/libdwarf/dwarf.h" ; then ++ elif test -f "${DWARF_HOME}/include/libdwarf-0/libdwarf.h" -a \ ++ -f "${DWARF_HOME}/include/libdwarf-0/dwarf.h" ; then + libdwarf_found="yes" + else + as_fn_error $? "Cannot find DWARF header files in ${dwarf_paths}/include" "$LINENO" 5 +@@ -30481,8 +30481,8 @@ + -f "${DWARF_HOME}/include/dwarf.h" ; then + libdwarf_found="yes" + DWARF_LIBSDIR="${DWARF_LIBSDIR_MULTIARCH}" +- elif test -f "${DWARF_HOME}/include/libdwarf/libdwarf.h" -a \ +- -f "${DWARF_HOME}/include/libdwarf/dwarf.h" ; then ++ elif test -f "${DWARF_HOME}/include/libdwarf-0/libdwarf.h" -a \ ++ -f "${DWARF_HOME}/include/libdwarf-0/dwarf.h" ; then + libdwarf_found="yes" + DWARF_LIBSDIR="${DWARF_LIBSDIR_MULTIARCH}" + else diff --git a/easybuild/easyconfigs/e/Extrae/Extrae-4.0.4-gompi-2022a.eb b/easybuild/easyconfigs/e/Extrae/Extrae-4.0.4-gompi-2022a.eb new file mode 100644 index 00000000000..666f0ba1682 --- /dev/null +++ b/easybuild/easyconfigs/e/Extrae/Extrae-4.0.4-gompi-2022a.eb @@ -0,0 +1,38 @@ +name = 'Extrae' +version = '4.0.4' + +homepage = 'https://www.bsc.es/computer-sciences/performance-tools' +description = """Extrae is the core instrumentation package developed by +the Performance Tools group at BSC. Extrae is capable of instrumenting +applications based on MPI, OpenMP, pthreads, CUDA1, OpenCL1, and StarSs1 +using different instrumentation approaches. The information gathered by +Extrae typically includes timestamped events of runtime calls, +performance counters and source code references. Besides, Extrae +provides its own API to allow the user to manually instrument his or her +application.""" + +toolchain = {'name': 'gompi', 'version': '2022a'} +toolchainopts = {'usempi': True} + +source_urls = ['https://ftp.tools.bsc.es/%(namelower)s'] +sources = ['%(namelower)s-%(version)s-src.tar.bz2'] +patches = ['Extrae-4.0.4-change_libdwarf_path.patch'] +checksums = [ + '003bede870de6d88b705c1a13eabe63b6beb928d8f389f5dd70ca5db8450a1f9', # extrae-4.0.4-src.tar.bz2 + '74759b956246671a323acc3b267f9943bc2e190bb231259ad0c62784ec233a52', # Extrae-4.0.4-change_libdwarf_path.patch +] + +builddependencies = [ + ('Automake', '1.16.5'), +] + +dependencies = [ + ('zlib', '1.2.12'), + ('Boost', '1.79.0'), + ('libunwind', '1.6.2'), + ('libxml2', '2.9.13'), + ('libdwarf', '0.4.1'), + ('PAPI', '7.0.0'), +] + +moduleclass = 'perf' diff --git a/easybuild/easyconfigs/e/easel/easel-0.48-GCC-12.2.0.eb b/easybuild/easyconfigs/e/easel/easel-0.48-GCC-12.2.0.eb new file mode 100644 index 00000000000..3191b688777 --- /dev/null +++ b/easybuild/easyconfigs/e/easel/easel-0.48-GCC-12.2.0.eb @@ -0,0 +1,38 @@ +# easybuild easyconfig +# +# Fred Hutchinson Cancer Center +# John Dey +# +easyblock = 'ConfigureMake' + +name = 'easel' +version = '0.48' + +homepage = 'https://bioeasel.org/' +description = """Easel supports computational analysis of biological sequences using probabilistic models.""" + +toolchain = {'name': 'GCC', 'version': '12.2.0'} + +github_account = 'EddyRivasLab' +source_urls = ['https://github.com/%(github_account)s/easel/archive/refs/tags'] +sources = [SOURCE_TAR_GZ] +checksums = ['c5d055acbe88fa834e81424a15fc5fa54ac787e35f2ea72d4ffd9ea2c1aa29cf'] + +builddependencies = [ + ('Autoconf', '2.71'), +] + +dependencies = [ +] + +preconfigopts = 'autoconf && ' +buildopts = '&& make check' + +sanity_check_paths = { + 'files': ['bin/easel'], + 'dirs': [] +} + +sanity_check_commands = ['%(name)s --help'] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/e/ecFlow/ecFlow-5.7.0-GCC-10.2.0.eb b/easybuild/easyconfigs/e/ecFlow/ecFlow-5.7.0-GCC-10.2.0.eb new file mode 100644 index 00000000000..d4ce0c41bf7 --- /dev/null +++ b/easybuild/easyconfigs/e/ecFlow/ecFlow-5.7.0-GCC-10.2.0.eb @@ -0,0 +1,57 @@ +# Written by Tom Strempel +# Modified by Ben Langenberg +easyblock = "CMakeMake" + +name = 'ecFlow' +version = '5.7.0' + +homepage = "https://ecflow.readthedocs.io/en/latest/index.html" +description = """ecFlow is a client/server workflow package that enables users + to run a large number of programs (with dependencies on each other and on time) + in a controlled environment. It provides reasonable tolerance for hardware and + software failures, combined with restart capabilities. + It is used at ECMWF to run all our operational suites across a range of platforms.""" + +toolchain = {'name': 'GCC', 'version': '10.2.0'} + +source_urls = ['https://confluence.ecmwf.int/download/attachments/8650755/'] +sources = ['%(name)s-%(version)s-Source.tar.gz'] +checksums = ['70cbabde5da705239a9e27b1e053dae4bdbee6c604c571a5ff07b47d0a84732f'] + +builddependencies = [ + ('CMake', '3.18.4'), + ('Doxygen', '1.8.20'), +] + +dependencies = [ + ('Python', '3.8.6'), + ('Boost', '1.74.0'), + ('Boost.Python', '1.74.0'), + ('Qt5', '5.14.2'), + ('OpenSSL', '1.1', '', SYSTEM), +] + +configopts = " ".join([ + "-DBOOST_ROOT=$EBROOTBOOST", + "-DENABLE_STATIC_BOOST_LIBS=OFF", + "-DBoost_PYTHON38_LIBRARY_RELEASE=$EBROOTBOOSTPYTHON/lib/libboost_python38.so", + "-DPython3_ROOT_DIR=$EBROOTPYTHON", + "-DPython3_EXECUTABLE=$EBROOTPYTHON/bin/python", + "-DPython3_INCLUDE_DIRS=$EBROOTPYTHON/include/python%(pyshortver)s", + "-DPython3_LIBRARIES=$EBROOTPYTHON/lib/libpython%%(pyshortver)s.%s" % SHLIB_EXT, +]) +prebuildopts = 'export LDFLAGS="$LDFLAGS -lssl" && ' + +modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'} + +sanity_check_paths = { + 'files': ['bin/ecflow_client', 'bin/ecflow_server'], + 'dirs': ['lib/python%(pyshortver)s/site-packages/ecflow', 'share/ecflow/etc'], +} + +sanity_check_commands = [ + "ecflow_client --help", + "python -c 'import ecflow'", +] + +moduleclass = "vis" diff --git a/easybuild/easyconfigs/e/edlib/edlib-1.3.9-GCC-12.2.0.eb b/easybuild/easyconfigs/e/edlib/edlib-1.3.9-GCC-12.2.0.eb new file mode 100644 index 00000000000..0be9e7fb15e --- /dev/null +++ b/easybuild/easyconfigs/e/edlib/edlib-1.3.9-GCC-12.2.0.eb @@ -0,0 +1,22 @@ +easyblock = 'PythonPackage' + +name = 'edlib' +version = '1.3.9' + +homepage = 'https://martinsos.github.io/edlib' +description = "Lightweight, super fast library for sequence alignment using edit (Levenshtein) distance." + +toolchain = {'name': 'GCC', 'version': '12.2.0'} + +sources = [SOURCE_TAR_GZ] +checksums = ['64c3dfab3ebe3e759565a0cc71eb4df23cf3ce1713fd558af3c473dddc2a3766'] + +dependencies = [ + ('Python', '3.10.8'), +] + +download_dep_fail = True +use_pip = True +sanity_pip_check = True + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/e/eggnog-mapper/eggnog-mapper-2.1.9-foss-2022a.eb b/easybuild/easyconfigs/e/eggnog-mapper/eggnog-mapper-2.1.9-foss-2022a.eb new file mode 100644 index 00000000000..f0acd8b8126 --- /dev/null +++ b/easybuild/easyconfigs/e/eggnog-mapper/eggnog-mapper-2.1.9-foss-2022a.eb @@ -0,0 +1,56 @@ +# Eggnog DB installation instructions: +# 1. 'export EGGNOG_DATA_DIR=//eggnog-mapper-data' +# 2. run 'download_eggnog_data.py' +# 3. Check the expected DB version with 'emapper.py --version' + +easyblock = 'PythonPackage' + +name = 'eggnog-mapper' +version = '2.1.9' + +homepage = 'https://github.com/eggnogdb/eggnog-mapper' +description = """EggNOG-mapper is a tool for fast functional annotation of novel +sequences. It uses precomputed orthologous groups and phylogenies from the +eggNOG database (http://eggnog5.embl.de) to transfer functional information from +fine-grained orthologs only. Common uses of eggNOG-mapper include the annotation +of novel genomes, transcriptomes or even metagenomic gene catalogs.""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +github_account = 'eggnogdb' +source_urls = [GITHUB_SOURCE] +sources = ['%(version)s.tar.gz'] +checksums = ['01f495a2a7cb9bf1d98cb40691b8598131c32d583cba652a98cdc20e5c8602eb'] + +dependencies = [ + ('Python', '3.10.4'), + ('Biopython', '1.79'), + ('HMMER', '3.3.2'), + ('DIAMOND', '2.1.0'), + ('prodigal', '2.6.3'), + ('wget', '1.21.3'), + ('MMseqs2', '14-7e284'), + ('XlsxWriter', '3.0.8'), +] + +# strip out (too) strict version requirements for dependencies +preinstallopts = "sed -i 's/==[0-9.]*//g' setup.cfg && " + +use_pip = True +sanity_pip_check = True +download_dep_fail = True + +sanity_check_paths = { + 'files': ['bin/create_dbs.py', 'bin/download_eggnog_data.py', 'bin/emapper.py'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = [ + 'download_eggnog_data.py --help', + 'create_dbs.py --help', + 'emapper.py --version | grep %(version)s', +] + +options = {'modulename': 'eggnogmapper'} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/e/elastix/elastix-5.0.0-foss-2019b-Python-3.7.4.eb b/easybuild/easyconfigs/e/elastix/elastix-5.0.0-foss-2019b-Python-3.7.4.eb new file mode 100644 index 00000000000..23b0095b86f --- /dev/null +++ b/easybuild/easyconfigs/e/elastix/elastix-5.0.0-foss-2019b-Python-3.7.4.eb @@ -0,0 +1,32 @@ +easyblock = 'CMakeMake' + +name = 'elastix' +version = '5.0.0' +versionsuffix = '-Python-3.7.4' + +homepage = 'http://elastix.isi.uu.nl/' +description = " elastix: a toolbox for rigid and nonrigid registration of images. " + +toolchain = {'name': 'foss', 'version': '2019b'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/SuperElastix/elastix/archive/'] +sources = ['%(version)s.tar.gz'] +checksums = ['a377ae0307231bf70c474e87ebbf07d649faca211febf1c1d981a2039fcfcd0e'] + +builddependencies = [('CMake', '3.15.3')] + +dependencies = [ + ('ITK', '5.0.1', versionsuffix), +] + +configopts = '-DCMAKE_BUILD_TYPE=Release ' + +separate_build_dir = True + +sanity_check_paths = { + 'files': ['bin/elastix', 'bin/transformix'], + 'dirs': ['include', 'lib'] +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/e/emcee/emcee-3.1.4-foss-2021b.eb b/easybuild/easyconfigs/e/emcee/emcee-3.1.4-foss-2021b.eb new file mode 100644 index 00000000000..9d9e5ec1c4d --- /dev/null +++ b/easybuild/easyconfigs/e/emcee/emcee-3.1.4-foss-2021b.eb @@ -0,0 +1,32 @@ +easyblock = 'PythonPackage' + +name = 'emcee' +version = '3.1.4' + +homepage = 'https://emcee.readthedocs.io/' +description = """Emcee is an extensible, pure-Python implementation of +Goodman & Weare's Affine Invariant Markov chain Monte Carlo (MCMC) Ensemble sampler. +It's designed for Bayesian parameter estimation and it's really sweet! """ + +toolchain = {'name': 'foss', 'version': '2021b'} + +sources = [SOURCE_TAR_GZ] +checksums = ['8e0e19dc8bcef9c6d02f860bef8ddc6c876b8878a6ce666943e2c5cfd9317fed'] + +dependencies = [ + ('Python', '3.9.6'), + ('SciPy-bundle', '2021.10'), +] + +use_pip = True +download_dep_fail = True +sanity_pip_check = True + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages/emcee'], +} + +sanity_check_commands = [('pytest')] + +moduleclass = 'astro' diff --git a/easybuild/easyconfigs/f/FASTA/FASTA-36.3.8i-GCC-12.2.0.eb b/easybuild/easyconfigs/f/FASTA/FASTA-36.3.8i-GCC-12.2.0.eb new file mode 100644 index 00000000000..cac48a1006e --- /dev/null +++ b/easybuild/easyconfigs/f/FASTA/FASTA-36.3.8i-GCC-12.2.0.eb @@ -0,0 +1,36 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild + +easyblock = 'MakeCp' + +name = "FASTA" +version = "36.3.8i" +local_version_date = '14-Nov-2020' + +homepage = 'https://fasta.bioch.virginia.edu/fasta_www2/fasta_list2.shtml' +description = """The FASTA programs find regions of local or global (new) similarity between +protein or DNA sequences, either by searching Protein or DNA databases, or by identifying +local duplications within a sequence.""" + +toolchain = {'name': 'GCC', 'version': '12.2.0'} + +source_urls = ['https://github.com/wrpearson/fasta36/archive/'] +sources = ['v%%(version)s_%s.tar.gz' % local_version_date] +checksums = ['b4b1c3c9be6beebcbaf4215368e159d69255e34c0bdbc84affa10cdb473ce008'] + +buildopts = '-C ./src -f ../make/Makefile.linux_sse2 all' + +files_to_copy = ["bin", "conf", "data", "doc", "FASTA_LIST", "misc", "README", "seq", "sql", "test"] + +postinstallcmds = ["cd %(installdir)s/bin && ln -s fasta%(version_major)s fasta"] + +sanity_check_paths = { + 'files': ["FASTA_LIST", "README"] + ['bin/%s' % x for x in ['map_db']] + + ['bin/%s%%(version_major)s' % x for x in ['fasta', 'fastm', 'fastx', 'ggsearch', 'lalign', 'tfastf', + 'tfasts', 'tfasty', 'fastf', 'fasts', 'fasty', 'glsearch', + 'ssearch', 'tfastm', 'tfastx']], + 'dirs': ["conf", "data", "doc", "misc", "seq", "sql", "test"] +} + +sanity_check_commands = ["fasta --help"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/f/FFTW.MPI/FFTW.MPI-3.3.10-gompi-2023a.eb b/easybuild/easyconfigs/f/FFTW.MPI/FFTW.MPI-3.3.10-gompi-2023a.eb new file mode 100644 index 00000000000..e7c6416b64e --- /dev/null +++ b/easybuild/easyconfigs/f/FFTW.MPI/FFTW.MPI-3.3.10-gompi-2023a.eb @@ -0,0 +1,19 @@ +name = 'FFTW.MPI' +version = '3.3.10' + +homepage = 'https://www.fftw.org' +description = """FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) +in one or more dimensions, of arbitrary input size, and of both real and complex data.""" + +toolchain = {'name': 'gompi', 'version': '2023a'} +toolchainopts = {'pic': True} + +source_urls = [homepage] +sources = ['fftw-%(version)s.tar.gz'] +checksums = ['56c932549852cddcfafdab3820b0200c7742675be92179e59e6215b340e26467'] + +dependencies = [('FFTW', '3.3.10')] + +runtest = 'check' + +moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/f/FFTW/FFTW-3.3.10-GCC-12.3.0.eb b/easybuild/easyconfigs/f/FFTW/FFTW-3.3.10-GCC-12.3.0.eb new file mode 100644 index 00000000000..4cc48a4800b --- /dev/null +++ b/easybuild/easyconfigs/f/FFTW/FFTW-3.3.10-GCC-12.3.0.eb @@ -0,0 +1,17 @@ +name = 'FFTW' +version = '3.3.10' + +homepage = 'https://www.fftw.org' +description = """FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) +in one or more dimensions, of arbitrary input size, and of both real and complex data.""" + +toolchain = {'name': 'GCC', 'version': '12.3.0'} +toolchainopts = {'pic': True} + +source_urls = [homepage] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['56c932549852cddcfafdab3820b0200c7742675be92179e59e6215b340e26467'] + +runtest = 'check' + +moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/f/FFTW/FFTW-3.3.10-iimpi-2022b.eb b/easybuild/easyconfigs/f/FFTW/FFTW-3.3.10-iimpi-2022b.eb new file mode 100644 index 00000000000..441ffa2eca8 --- /dev/null +++ b/easybuild/easyconfigs/f/FFTW/FFTW-3.3.10-iimpi-2022b.eb @@ -0,0 +1,27 @@ +name = 'FFTW' +version = '3.3.10' + +homepage = 'https://www.fftw.org' +description = """FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) +in one or more dimensions, of arbitrary input size, and of both real and complex data.""" + +toolchain = {'name': 'iimpi', 'version': '2022b'} +toolchainopts = {'pic': True} + +source_urls = [homepage] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['56c932549852cddcfafdab3820b0200c7742675be92179e59e6215b340e26467'] + +# no quad precision, requires GCC v4.6 or higher +# see also +# https://www.fftw.org/doc/Extended-and-quadruple-precision-in-Fortran.html +with_quad_prec = False + +# compilation fails on AMD systems when configuring with --enable-avx-128-fma, +# because Intel compilers do not support FMA4 instructions +use_fma4 = False + + +runtest = 'check' + +moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/f/FLASH/FLASH-2.2.00-GCCcore-12.2.0.eb b/easybuild/easyconfigs/f/FLASH/FLASH-2.2.00-GCCcore-12.2.0.eb new file mode 100644 index 00000000000..022f8adffbe --- /dev/null +++ b/easybuild/easyconfigs/f/FLASH/FLASH-2.2.00-GCCcore-12.2.0.eb @@ -0,0 +1,38 @@ +easyblock = 'MakeCp' + +name = 'FLASH' +version = '2.2.00' + +homepage = 'https://ccb.jhu.edu/software/FLASH/' +description = """FLASH (Fast Length Adjustment of SHort reads) is a very fast +and accurate software tool to merge paired-end reads from next-generation +sequencing experiments. FLASH is designed to merge pairs of reads when the +original DNA fragments are shorter than twice the length of reads. The +resulting longer reads can significantly improve genome assemblies. They can +also improve transcriptome assembly when FLASH is used to merge RNA-seq data. +""" + +toolchain = {'name': 'GCCcore', 'version': '12.2.0'} + +source_urls = ['https://github.com/dstreett/FLASH2/archive/'] +sources = ['%(version)s.zip'] +checksums = ['1e54b2dd7d21ca3e0595a3ffdd27ef3098f88c4de5b9302ec5ea074b49b79960'] + +builddependencies = [('binutils', '2.39')] + +dependencies = [('zlib', '1.2.12')] + +files_to_copy = [(['flash2'], 'bin')] + +postinstallcmds = ["cd %(installdir)s/bin && ln -s flash2 flash"] + +sanity_check_paths = { + 'files': ['bin/flash2', 'bin/flash'], + 'dirs': [], +} + +sanity_check_commands = [ + "flash --help", +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/f/FLUENT/FLUENT-2019R3.eb b/easybuild/easyconfigs/f/FLUENT/FLUENT-2019R3.eb new file mode 100644 index 00000000000..3528e38c2e3 --- /dev/null +++ b/easybuild/easyconfigs/f/FLUENT/FLUENT-2019R3.eb @@ -0,0 +1,17 @@ +name = 'FLUENT' +version = '2019R3' + +homepage = 'http://www.ansys.com/Products/Simulation+Technology/Fluid+Dynamics/Fluid+Dynamics+Products/ANSYS+Fluent' +description = """ANSYS FLUENT software contains the broad physical modeling capabilities needed +to model flow, turbulence, heat transfer, and reactions for industrial applications ranging from +air flow over an aircraft wing to combustion in a furnace, from bubble columns to oil platforms, +from blood flow to semiconductor manufacturing, and from clean room design to wastewater treatment plants.""" + +toolchain = SYSTEM + +sources = ['FLUIDS_%(version)s_LINX64.tar'] +checksums = ['4c28dfc789a86a5ed1122f62ba08ec7e399743b1542d7b0742f7da523ea45acd'] + +subdir_version = '195' + +moduleclass = 'cae' diff --git a/easybuild/easyconfigs/f/FlexiBLAS/FlexiBLAS-3.3.1-GCC-12.3.0.eb b/easybuild/easyconfigs/f/FlexiBLAS/FlexiBLAS-3.3.1-GCC-12.3.0.eb new file mode 100644 index 00000000000..9ea54c6b1e5 --- /dev/null +++ b/easybuild/easyconfigs/f/FlexiBLAS/FlexiBLAS-3.3.1-GCC-12.3.0.eb @@ -0,0 +1,59 @@ +easyblock = 'Bundle' + +name = 'FlexiBLAS' +version = '3.3.1' + +homepage = 'https://gitlab.mpi-magdeburg.mpg.de/software/flexiblas-release' +description = """FlexiBLAS is a wrapper library that enables the exchange of the BLAS and LAPACK implementation +used by a program without recompiling or relinking it.""" + +toolchain = {'name': 'GCC', 'version': '12.3.0'} +local_extra_flags = "-fstack-protector-strong -fstack-clash-protection" +toolchainopts = {'pic': True, 'extra_cflags': local_extra_flags, 'extra_fflags': local_extra_flags} + +builddependencies = [ + ('CMake', '3.26.3'), + ('Python', '3.11.3'), # required for running the tests + ('BLIS', '0.9.0'), +] + +dependencies = [ + ('OpenBLAS', '0.3.23'), +] + +# note: first listed backend will be used as default by FlexiBLAS, +# unless otherwise specified via easyconfig parameter flexiblas_default +local_backends = ['OpenBLAS', 'BLIS'] + +# imkl supplies its backend via the imkl module, not as a dependency +if ARCH == 'x86_64': + local_backends.append('imkl') + +default_component_specs = {'start_dir': '%(namelower)s-%(version)s'} +sanity_check_all_components = True + +# Also build and install LAPACKE, which FlexiBLAS does not support yet +components = [ + (name, version, { + 'source_urls': + ['https://gitlab.mpi-magdeburg.mpg.de/api/v4/projects/386/packages/generic/flexiblas-source/v3.3.1/'], + 'sources': [SOURCELOWER_TAR_GZ], + 'checksums': ['bbeebf5e5a006924558fec43f49affbe1aaa4cbacfc472a9ff6066ffda142e18'], + 'backends': local_backends, + }), + ('LAPACK', '3.11.0', { + 'easyblock': 'CMakeMake', + 'source_urls': ['https://github.com/Reference-LAPACK/lapack/archive/'], + 'sources': ['v%(version)s.tar.gz'], + 'checksums': ['4b9ba79bfd4921ca820e83979db76ab3363155709444a787979e81c22285ffa9'], + 'configopts': ('-DBUILD_SHARED_LIBS=ON -DUSE_OPTIMIZED_BLAS=ON -DLAPACKE=ON ' + '-DUSE_OPTIMIZED_LAPACK=ON -DBUILD_DEPRECATED=ON ' + '-DCMAKE_INSTALL_INCLUDEDIR=%(installdir)s/include/flexiblas'), + 'sanity_check_paths': { + 'files': ['lib/liblapacke.%s' % SHLIB_EXT, 'include/flexiblas/lapacke.h'], + 'dirs': [], + }, + }), +] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/f/FragPipe/FragPipe-20.0-Java-11.eb b/easybuild/easyconfigs/f/FragPipe/FragPipe-20.0-Java-11.eb new file mode 100644 index 00000000000..1a87ec68749 --- /dev/null +++ b/easybuild/easyconfigs/f/FragPipe/FragPipe-20.0-Java-11.eb @@ -0,0 +1,26 @@ +easyblock = 'Tarball' + +name = 'FragPipe' +version = '20.0' +versionsuffix = '-Java-%(javaver)s' + +homepage = 'https://fragpipe.nesvilab.org' +description = """FragPipe is a Java Graphical User Interface (GUI) for a suite of computational + tools enabling comprehensive analysis of mass spectrometry-based proteomics data.""" + +toolchain = SYSTEM + +source_urls = ['https://github.com/Nesvilab/%(name)s/releases/download/%(version)s/'] +sources = ['%(name)s-%(version)s.zip'] +checksums = ['0d77db85ae26c190a915823e1c68238f3a19533810734b008564b2a8d85d1bd6'] + +dependencies = [('Java', '11')] + +sanity_check_paths = { + 'files': ['bin/%(namelower)s', 'lib/%(namelower)s-%(version)s.jar'], + 'dirs': [], +} + +sanity_check_commands = ["%(namelower)s -h | grep -q v%(version)s"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/f/FreeSurfer/FreeSurfer-7.4.0-centos8_x86_64.eb b/easybuild/easyconfigs/f/FreeSurfer/FreeSurfer-7.4.0-centos8_x86_64.eb new file mode 100644 index 00000000000..5f72e9c0cde --- /dev/null +++ b/easybuild/easyconfigs/f/FreeSurfer/FreeSurfer-7.4.0-centos8_x86_64.eb @@ -0,0 +1,33 @@ +name = 'FreeSurfer' +version = '7.4.0' +versionsuffix = '-centos8_x86_64' + +homepage = 'https://surfer.nmr.mgh.harvard.edu/' +description = """FreeSurfer is a set of tools for analysis and visualization +of structural and functional brain imaging data. FreeSurfer contains a fully +automatic structural imaging stream for processing cross sectional and +longitudinal data.""" + +toolchain = SYSTEM + +source_urls = [ + 'https://surfer.nmr.mgh.harvard.edu/pub/dist/freesurfer/%(version)s/', + 'https://surfer.nmr.mgh.harvard.edu/fswiki/MatlabRuntime?action=AttachFile&do=get&target=' +] +sources = [ + '%(namelower)s-linux%(versionsuffix)s-%(version)s.tar.gz', + 'runtime2014bLinux.tar.gz' +] +checksums = [ + {'freesurfer-linux-centos8_x86_64-7.4.0.tar.gz': + 'a2eb8ca6d12c9133c4af90167d6b9fa532f7ace98cc0e1bc97c8a6135b53c237'}, + {'runtime2014bLinux.tar.gz': '944852af2b5a493f5261fd619af828c6e4afc0c90e6f7e709acfb616c5b51648'}, +] + +postinstallcmds = ['cp -a %(builddir)s/MCRv84/ %(installdir)s'] + +license_text = """email@example.com +00000 +g1bb3r1sh""" + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/f/FreeSurfer/FreeSurfer-7.4.0-ubuntu20_amd64.eb b/easybuild/easyconfigs/f/FreeSurfer/FreeSurfer-7.4.0-ubuntu20_amd64.eb new file mode 100644 index 00000000000..42b6fc18c68 --- /dev/null +++ b/easybuild/easyconfigs/f/FreeSurfer/FreeSurfer-7.4.0-ubuntu20_amd64.eb @@ -0,0 +1,33 @@ +name = 'FreeSurfer' +version = '7.4.0' +versionsuffix = '-ubuntu20_amd64' + +homepage = 'https://surfer.nmr.mgh.harvard.edu/' +description = """FreeSurfer is a set of tools for analysis and visualization +of structural and functional brain imaging data. FreeSurfer contains a fully +automatic structural imaging stream for processing cross sectional and +longitudinal data.""" + +toolchain = SYSTEM + +source_urls = [ + 'https://surfer.nmr.mgh.harvard.edu/pub/dist/freesurfer/%(version)s/', + 'https://surfer.nmr.mgh.harvard.edu/fswiki/MatlabRuntime?action=AttachFile&do=get&target=' +] +sources = [ + '%(namelower)s-linux%(versionsuffix)s-%(version)s.tar.gz', + 'runtime2014bLinux.tar.gz' +] +checksums = [ + {'freesurfer-linux-ubuntu20_amd64-7.4.0.tar.gz': + '2149e0d54220abf81b0caa5736b648b56f409b1e6578d921d0f7e4d62d586ca5'}, + {'runtime2014bLinux.tar.gz': '944852af2b5a493f5261fd619af828c6e4afc0c90e6f7e709acfb616c5b51648'}, +] + +postinstallcmds = ['cp -a %(builddir)s/MCRv84/ %(installdir)s'] + +license_text = """email@example.com +00000 +g1bb3r1sh""" + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/f/FreeSurfer/FreeSurfer-7.4.0-ubuntu22_amd64.eb b/easybuild/easyconfigs/f/FreeSurfer/FreeSurfer-7.4.0-ubuntu22_amd64.eb new file mode 100644 index 00000000000..cd51ff885bd --- /dev/null +++ b/easybuild/easyconfigs/f/FreeSurfer/FreeSurfer-7.4.0-ubuntu22_amd64.eb @@ -0,0 +1,33 @@ +name = 'FreeSurfer' +version = '7.4.0' +versionsuffix = '-ubuntu22_amd64' + +homepage = 'https://surfer.nmr.mgh.harvard.edu/' +description = """FreeSurfer is a set of tools for analysis and visualization +of structural and functional brain imaging data. FreeSurfer contains a fully +automatic structural imaging stream for processing cross sectional and +longitudinal data.""" + +toolchain = SYSTEM + +source_urls = [ + 'https://surfer.nmr.mgh.harvard.edu/pub/dist/freesurfer/%(version)s/', + 'https://surfer.nmr.mgh.harvard.edu/fswiki/MatlabRuntime?action=AttachFile&do=get&target=' +] +sources = [ + '%(namelower)s-linux%(versionsuffix)s-%(version)s.tar.gz', + 'runtime2014bLinux.tar.gz' +] +checksums = [ + {'freesurfer-linux-ubuntu22_amd64-7.4.0.tar.gz': + 'acd7f8b9a75cf41fab837caa95f2c9017079c15ca4446df2c47c88c321264f82'}, + {'runtime2014bLinux.tar.gz': '944852af2b5a493f5261fd619af828c6e4afc0c90e6f7e709acfb616c5b51648'}, +] + +postinstallcmds = ['cp -a %(builddir)s/MCRv84/ %(installdir)s'] + +license_text = """email@example.com +00000 +g1bb3r1sh""" + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/f/fastp/fastp-0.20.1-iccifort-2020.1.217.eb b/easybuild/easyconfigs/f/fastp/fastp-0.20.1-iccifort-2020.1.217.eb new file mode 100644 index 00000000000..529db9c4abd --- /dev/null +++ b/easybuild/easyconfigs/f/fastp/fastp-0.20.1-iccifort-2020.1.217.eb @@ -0,0 +1,37 @@ +easyblock = 'ConfigureMake' + +name = 'fastp' +version = '0.20.1' + +homepage = 'https://github.com/OpenGene/fastp' +description = """A tool designed to provide fast all-in-one preprocessing for FastQ files. + This tool is developed in C++ with multithreading supported to afford high performance.""" + +toolchain = {'name': 'iccifort', 'version': '2020.1.217'} + +# https://github.com/OpenGene/fastp +github_account = 'OpenGene' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['e1b663717850bed7cb560c0c540e9a05dd9448ec76978faaf853a6959fd5b1b3'] + +dependencies = [ + ('zlib', '1.2.11'), +] + +skipsteps = ['configure'] + +buildopts = ' CXX=${CXX}' + +preinstallopts = 'mkdir -p %(installdir)s/bin && ' + +installopts = 'PREFIX=%(installdir)s' + +sanity_check_paths = { + 'files': ['bin/fastp'], + 'dirs': [], +} + +sanity_check_commands = [('fastp', '--help')] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/f/fastp/fastp-0.23.4-GCC-12.2.0.eb b/easybuild/easyconfigs/f/fastp/fastp-0.23.4-GCC-12.2.0.eb new file mode 100644 index 00000000000..250e5c1f5a6 --- /dev/null +++ b/easybuild/easyconfigs/f/fastp/fastp-0.23.4-GCC-12.2.0.eb @@ -0,0 +1,39 @@ +easyblock = 'ConfigureMake' + +name = 'fastp' +version = '0.23.4' + +homepage = 'https://github.com/OpenGene/fastp' +description = """A tool designed to provide fast all-in-one preprocessing for FastQ files. + This tool is developed in C++ with multithreading supported to afford high performance.""" + +toolchain = {'name': 'GCC', 'version': '12.2.0'} + +# https://github.com/OpenGene/fastp +github_account = 'OpenGene' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['4fad6db156e769d46071add8a778a13a5cb5186bc1e1a5f9b1ffd499d84d72b5'] + +dependencies = [ + ('zlib', '1.2.12'), + ('libdeflate', '1.15'), + ('ISA-L', '2.30.0'), +] + +skipsteps = ['configure'] + +buildopts = ' CXX=${CXX}' + +preinstallopts = 'mkdir -p %(installdir)s/bin && ' + +installopts = 'PREFIX=%(installdir)s' + +sanity_check_paths = { + 'files': ['bin/fastp'], + 'dirs': [], +} + +sanity_check_commands = [('fastp', '--help')] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/f/flex/flex-2.6.4-GCCcore-11.4.0.eb b/easybuild/easyconfigs/f/flex/flex-2.6.4-GCCcore-11.4.0.eb new file mode 100644 index 00000000000..cab31c1aaf1 --- /dev/null +++ b/easybuild/easyconfigs/f/flex/flex-2.6.4-GCCcore-11.4.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.4.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.8.2'), + ('help2man', '1.49.3'), + # use same binutils version that was used when building GCC toolchain + ('binutils', '2.40', '', SYSTEM), +] + +dependencies = [ + ('M4', '1.4.19'), +] + +# 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.14.2-GCCcore-12.3.0.eb b/easybuild/easyconfigs/f/fontconfig/fontconfig-2.14.2-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..8e0aff02c97 --- /dev/null +++ b/easybuild/easyconfigs/f/fontconfig/fontconfig-2.14.2-GCCcore-12.3.0.eb @@ -0,0 +1,40 @@ +easyblock = 'ConfigureMake' + +name = 'fontconfig' +version = '2.14.2' + +homepage = 'https://www.freedesktop.org/wiki/Software/fontconfig/' + +description = """ + Fontconfig is a library designed to provide system-wide font configuration, + customization and application access. +""" + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://www.freedesktop.org/software/fontconfig/release/'] +sources = [SOURCE_TAR_GZ] +checksums = ['3ba2dd92158718acec5caaf1a716043b5aa055c27b081d914af3ccb40dce8a55'] + +builddependencies = [ + ('binutils', '2.40'), + ('gperf', '3.1'), + ('pkgconf', '1.9.5'), + ('Python', '3.11.3'), +] + +dependencies = [ + ('expat', '2.5.0'), + ('freetype', '2.13.0'), + ('util-linux', '2.39'), +] + +configopts = '--disable-docs ' + +sanity_check_paths = { + 'files': ['include/fontconfig/fontconfig.h', 'lib/libfontconfig.%s' % SHLIB_EXT], + 'dirs': [] +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/f/foss/foss-2023a.eb b/easybuild/easyconfigs/f/foss/foss-2023a.eb new file mode 100644 index 00000000000..d1f0461c876 --- /dev/null +++ b/easybuild/easyconfigs/f/foss/foss-2023a.eb @@ -0,0 +1,28 @@ +easyblock = 'Toolchain' + +name = 'foss' +version = '2023a' + +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 = '12.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.5', '', ('GCC', local_gccver)), + ('FlexiBLAS', '3.3.1', '', ('GCC', local_gccver)), + ('FFTW', '3.3.10', '', ('GCC', local_gccver)), + ('FFTW.MPI', '3.3.10', '', local_comp_mpi_tc), + ('ScaLAPACK', '2.2.0', '-fb', local_comp_mpi_tc), +] + +moduleclass = 'toolchain' diff --git a/easybuild/easyconfigs/f/freetype/freetype-2.13.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/f/freetype/freetype-2.13.0-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..7dc1c7cfa62 --- /dev/null +++ b/easybuild/easyconfigs/f/freetype/freetype-2.13.0-GCCcore-12.3.0.eb @@ -0,0 +1,43 @@ +name = 'freetype' +version = '2.13.0' + +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': '12.3.0'} +toolchainopts = {'pic': True} + +source_urls = [ + GNU_SAVANNAH_SOURCE, + SOURCEFORGE_SOURCE, +] +sources = [SOURCE_TAR_GZ] +checksums = ['a7aca0e532a276ea8d85bd31149f0a74c33d19c8d287116ef8f5f8357b4f1f80'] + +builddependencies = [('binutils', '2.40')] + +dependencies = [ + ('bzip2', '1.0.8'), + ('libpng', '1.6.39'), + ('zlib', '1.2.13'), + ('Brotli', '1.0.9'), +] + +configopts = '--enable-freetype-config --with-harfbuzz=no' + +sanity_check_paths = { + 'files': ['bin/freetype-config', 'lib/libfreetype.a', + 'lib/libfreetype.%s' % SHLIB_EXT, 'lib/pkgconfig/freetype2.pc'], + 'dirs': ['include/freetype2'], +} + +sanity_check_commands = ["freetype-config --help"] + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/g/GATE/GATE-9.2-foss-2022a.eb b/easybuild/easyconfigs/g/GATE/GATE-9.2-foss-2022a.eb new file mode 100644 index 00000000000..284d0bb64f4 --- /dev/null +++ b/easybuild/easyconfigs/g/GATE/GATE-9.2-foss-2022a.eb @@ -0,0 +1,31 @@ +name = 'GATE' +version = '9.2' + +homepage = 'http://www.opengatecollaboration.org/' +description = """GATE is an advanced opensource software developed by the international OpenGATE collaboration and + dedicated to the numerical simulations in medical imaging. It currently supports simulations of Emission Tomography + (Positron Emission Tomography - PET and Single Photon Emission Computed Tomography - SPECT), and Computed Tomography""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +source_urls = ['https://github.com/OpenGATE/Gate/archive/'] +sources = ['v%(version)s.tar.gz'] +patches = ['GATE-9.2_fix-Geant4-11.0.patch'] +checksums = [ + '6fad86002dacae9d1f76ed0c455847d5d8960f667570292066b211a8b83247ee', # v9.2.tar.gz + '093a88718ff23edf332ac5a29b2810e77df40d63dd70e3b36f55195e4bb9e0b7', # GATE-9.2_fix-Geant4-11.0.patch +] + +builddependencies = [('CMake', '3.23.1')] +dependencies = [ + ('Geant4', '11.0.2'), + ('CLHEP', '2.4.5.3'), + ('ROOT', '6.26.06'), +] + +preinstallopts = "sed -i 's|/usr/local/bin|%(installdir)s/bin|g' Makefile &&" + +# enable extra capabilities (Davis requires Geant4 10.04 or newer) +configopts = "-DGATE_USE_OPTICAL=1 -DGATE_USE_DAVIS=1" + +moduleclass = 'cae' diff --git a/easybuild/easyconfigs/g/GATK/GATK-4.4.0.0-GCCcore-12.2.0-Java-17.eb b/easybuild/easyconfigs/g/GATK/GATK-4.4.0.0-GCCcore-12.2.0-Java-17.eb new file mode 100644 index 00000000000..fc1500ea5e8 --- /dev/null +++ b/easybuild/easyconfigs/g/GATK/GATK-4.4.0.0-GCCcore-12.2.0-Java-17.eb @@ -0,0 +1,55 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# +# Copyright:: Copyright 2012-2013 Cyprus Institute / CaSToRC, University of Luxembourg / LCSB +# Authors:: George Tsouloupas , Fotis Georgatos , +# Kenneth Hoste (UGent) +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a component of the policy: +# http://hpcbios.readthedocs.org/en/latest/HPCBIOS_2012-94.html +# Modified by: Adam Huffman, Jonas Demeulemeester +# The Francis Crick Institute +# Modified for version 4.0.5.1 by: Ruben van Dijk, University of Groningen +# Modified for version 4.2.3.0 by: J. Sassmannshausen / GSTT +# Modified for version 4.4.0.0 by: Thomas Eylenbosch / Gluo NV +## + +easyblock = 'Tarball' + +name = 'GATK' +version = '4.4.0.0' +versionsuffix = '-Java-%(javaver)s' + +homepage = 'https://www.broadinstitute.org/gatk/' +description = """The Genome Analysis Toolkit or GATK is a software package developed at the Broad Institute + to analyse next-generation resequencing data. The toolkit offers a wide variety of tools, + with a primary focus on variant discovery and genotyping as well as strong emphasis on + data quality assurance. Its robust architecture, powerful processing engine and + high-performance computing features make it capable of taking on projects of any size.""" + +toolchain = {'name': 'GCCcore', 'version': '12.2.0'} + +source_urls = ['https://github.com/broadinstitute/gatk/releases/download/%(version)s/'] +sources = ['gatk-%(version)s.zip'] +checksums = ['444600f7b38b46ad0b3606b7d40ce921e0ff1910a50165872f1c73c7c4a1a390'] + +dependencies = [ + ('Java', '17', '', SYSTEM), + ('Python', '3.10.8'), +] + +modextrapaths = {'PATH': ''} + +sanity_check_paths = { + 'files': ['gatk'], + 'dirs': [], +} + +sanity_check_commands = [ + "gatk --help", + "gatk --list", +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/g/GBprocesS/GBprocesS-4.0.0.post1-foss-2022a.eb b/easybuild/easyconfigs/g/GBprocesS/GBprocesS-4.0.0.post1-foss-2022a.eb new file mode 100644 index 00000000000..c1080cec28f --- /dev/null +++ b/easybuild/easyconfigs/g/GBprocesS/GBprocesS-4.0.0.post1-foss-2022a.eb @@ -0,0 +1,67 @@ +easyblock = 'PythonPackage' + +name = 'GBprocesS' +local_commit = '26119ab3' +version = '4.0.0.post1' + +homepage = 'https://gbprocess.readthedocs.io/' +description = """GBprocesS allows for the extraction of genomic inserts from NGS +data for GBS experiments. Preprocessing is performed in different stages that +are part of a linear pipeline where the steps are performed in order. GBprocesS +provides a flexible way to adjust the functionality to your needs, as the +operations required and the execution order vary depending on the GBS protocol +used.""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +# need to use git_config rather than just downloading source tarball, +# because .git subdirectory is required by setuptools-scm to determine version +sources = [{ + 'filename': 'GBprocesS-%%(version)s-%s.tar.gz' % local_commit, + 'git_config': { + 'url': 'https://gitlab.com/ilvo', + 'repo_name': name, + 'commit': local_commit, + 'keep_git_dir': True, + }, +}] +checksums = [None] + +dependencies = [ + ('Python', '3.10.4'), + ('cutadapt', '4.2'), + ('Biopython', '1.79'), + ('PEAR', '0.9.11'), +] + +use_pip = True +download_dep_fail = True + +preinstallopts = "sed -i 's/cutadapt~=3.5.0/cutadapt/g' setup.cfg && " + +postinstallcmds = ["cp -a test %(installdir)s"] + +sanity_check_paths = { + 'files': ['bin/gbprocess'], + 'dirs': ['lib/python%(pyshortver)s/site-packages', 'test'], +} + +sanity_check_commands = [ + "mkdir -p %(builddir)s/GBprocesS", + "cd %(builddir)s/GBprocesS && cp -a %(installdir)s/test . && python -m unittest discover -v -s ./test -p test_*.py", + "touch %(builddir)s/17146FL-13-01-01_S97_L002_R1_001.fastq", + "touch %(builddir)s/17146FL-13-01-01_S97_L002_R2_001.fastq", + # Trivial configuration file to use when running gbprocess sanity check + # See https://gitlab.com/dschaumont/GBprocesS/-/blob/master/docs/user_guide.rst + "echo '[General]' > %(builddir)s/config.ini", + "echo 'cores = 1' >> %(builddir)s/config.ini", + "echo 'input_directory = %(builddir)s/' >> %(builddir)s/config.ini", + "echo 'sequencing_type = pe' >> %(builddir)s/config.ini", + "echo 'input_file_name_template = {run:25}_R{orientation:1}_001{extension}' >> %(builddir)s/config.ini", + "echo 'temp_dir = %(builddir)s/' >> %(builddir)s/config.ini", + "gbprocess --debug -c %(builddir)s/config.ini", +] + +sanity_pip_check = True + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/g/GCC/GCC-11.4.0.eb b/easybuild/easyconfigs/g/GCC/GCC-11.4.0.eb new file mode 100644 index 00000000000..b72e811f68d --- /dev/null +++ b/easybuild/easyconfigs/g/GCC/GCC-11.4.0.eb @@ -0,0 +1,22 @@ +easyblock = 'Bundle' + +name = 'GCC' +version = '11.4.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 binutils (built with system toolchain) + ('binutils', '2.40', '', ('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-11.4.0.eb b/easybuild/easyconfigs/g/GCCcore/GCCcore-11.4.0.eb new file mode 100644 index 00000000000..e7a933e69e9 --- /dev/null +++ b/easybuild/easyconfigs/g/GCCcore/GCCcore-11.4.0.eb @@ -0,0 +1,68 @@ +easyblock = 'EB_GCC' + +name = 'GCCcore' +version = '11.4.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://sourceware.org/pub/gcc/releases/gcc-%(version)s', # fallback URL for GCC + '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 + 'https://gcc.gnu.org/pub/gcc/infrastructure/', # HTTPS mirror for GCC dependencies + 'https://libisl.sourceforge.io/', # fallback URL 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.2.0.tar.bz2', + 'mpc-1.3.1.tar.gz', + 'isl-0.26.tar.bz2', + 'newlib-4.3.0.20230120.tar.gz', + {'download_filename': '93e0090.tar.gz', 'filename': 'nvptx-tools-20230122.tar.gz'}, +] +patches = [ + 'GCCcore-6.2.0-fix-find-isl.patch', + 'GCCcore-9.3.0_gmp-c99.patch', + 'GCCcore-9.x-11.x_fix-unsigned-fpe-traps.patch', + 'GCCcore-11.3.0_fuse-ld-mold.patch', +] +checksums = [ + {'gcc-11.4.0.tar.gz': 'af828619dd1970734dda3cfb792ea3f2cba61b5a00170ba8bce4910749d73c07'}, + {'gmp-6.2.1.tar.bz2': 'eae9326beb4158c386e39a356818031bd28f3124cf915f8c5b1dc4c7a36b4d7c'}, + {'mpfr-4.2.0.tar.bz2': '691db39178e36fc460c046591e4b0f2a52c8f2b3ee6d750cc2eab25f1eaa999d'}, + {'mpc-1.3.1.tar.gz': 'ab642492f5cf882b74aa0cb730cd410a81edcdbec895183ce930e706c1c759b8'}, + {'isl-0.26.tar.bz2': '5eac8664e9d67be6bd0bee5085d6840b8baf738c06814df47eaf4166d9776436'}, + {'newlib-4.3.0.20230120.tar.gz': '83a62a99af59e38eb9b0c58ed092ee24d700fff43a22c03e433955113ef35150'}, + {'nvptx-tools-20230122.tar.gz': 'af05fac26e9a83d337758a5495dc35f7a7bbfd90cd09f4a5d3242d059f235e08'}, + {'GCCcore-6.2.0-fix-find-isl.patch': '5ad909606d17d851c6ad629b4fddb6c1621844218b8d139fed18c502a7696c68'}, + {'GCCcore-9.3.0_gmp-c99.patch': '0e135e1cc7cec701beea9d7d17a61bab34cfd496b4b555930016b98db99f922e'}, + {'GCCcore-9.x-11.x_fix-unsigned-fpe-traps.patch': + '03a2e4aeda78d398edd680d6a1ba842b8ceb29c126ebb7fe2e3541ddfe4fbed4'}, + {'GCCcore-11.3.0_fuse-ld-mold.patch': 'bba64714f8b84ad58b3b43c0d21b4ffc298274ae699f514ed2934f002146d840'}, +] + +builddependencies = [ + ('M4', '1.4.19'), + ('binutils', '2.40'), +] + +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/GCTA/GCTA-1.94.1-gfbf-2022a.eb b/easybuild/easyconfigs/g/GCTA/GCTA-1.94.1-gfbf-2022a.eb new file mode 100644 index 00000000000..3579318b3ca --- /dev/null +++ b/easybuild/easyconfigs/g/GCTA/GCTA-1.94.1-gfbf-2022a.eb @@ -0,0 +1,70 @@ +# Author: Jasper Grimm (UoY) +# Updated to 1.94.1. J. Sassmannshausen (Imperial College London/UK) + +easyblock = 'CMakeMakeCp' + +name = 'GCTA' +version = '1.94.1' +_plink_commit = '3744540' + +homepage = 'https://yanglab.westlake.edu.cn/software/gcta/' +description = """ +GCTA (Genome-wide Complex Trait Analysis) is a software package, which was + initially developed to estimate the proportion of phenotypic variance explained + by all genome-wide SNPs for a complex trait but has been extensively extended + for many other analyses of data from genome-wide association studies (GWASs). +""" + +toolchain = {'name': 'gfbf', 'version': '2022a'} + +sources = [ + { + 'source_urls': ['https://github.com/jianyangqt/gcta/archive'], + 'download_filename': 'v%(version)s.tar.gz', + 'filename': SOURCE_TAR_GZ, + }, + { + 'source_urls': ['https://github.com/zhilizheng/plink-ng/archive'], + 'download_filename': '%s.tar.gz' % _plink_commit, + 'filename': 'plink-ng-%s.tar.gz' % _plink_commit, + 'extract_cmd': "tar xzvf %%s --strip-components 1 -C gcta-%s/submods/plink-ng" % version, + }, +] +patches = [ + 'GCTA-1.94.0beta_allow-BLAS-selection.patch', + 'GCTA-1.94.0beta_lapack-compatibility.patch', +] +checksums = [ + {'GCTA-1.94.1.tar.gz': 'd38841587bef016d7885cc1b3287d7ed0373bd370674130e814e2c5e6a90bfbf'}, + {'plink-ng-3744540.tar.gz': 'a7c70c237d49d64fc1668ced373036c09b41d7c61d0b8b24b47e2fb76474455d'}, + {'GCTA-1.94.0beta_allow-BLAS-selection.patch': '320a5d82d12cf453f1396b228723ac18dc98e32bc459394dd4d712fc16b24747'}, + {'GCTA-1.94.0beta_lapack-compatibility.patch': '643282a2e2c02fc683431b673a4623a498129870431481d33d33e19a509026ce'}, +] + +builddependencies = [ + ('CMake', '3.23.1'), + # Eigen and SpectrA are header-only C++ libraries + ('Eigen', '3.4.0'), + ('SpectrA', '1.0.1'), +] + +dependencies = [ + ('Boost', '1.79.0'), + ('SQLite', '3.38.3'), + ('zstd', '1.5.2'), + ('GSL', '2.7'), +] + +preconfigopts = 'EIGEN3_INCLUDE_DIR=$EBROOTEIGEN/include SPECTRA_LIB=$EBROOTSPECTRA/include' +preconfigopts += ' BOOST_LIB=$EBROOTBOOST/include ' + +files_to_copy = [(['gcta64'], 'bin')] + +sanity_check_paths = { + 'files': ['bin/gcta64'], + 'dirs': [], +} + +sanity_check_commands = ["gcta64 | grep -e 'Analysis started'"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.3.1-GCCcore-12.3.0.eb b/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.3.1-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..9eb358afb3f --- /dev/null +++ b/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.3.1-GCCcore-12.3.0.eb @@ -0,0 +1,52 @@ +easyblock = 'ConfigureMake' + +name = 'GDRCopy' +version = '2.3.1' + +homepage = 'https://github.com/NVIDIA/gdrcopy' +description = "A low-latency GPU memory copy library based on NVIDIA GPUDirect RDMA technology." + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} +toolchainopts = {'pic': True} + +github_account = 'NVIDIA' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['59b3cc97a4fc6008a5407506d9e67ecc4144cfad61c261217fabcb671cd30ca8'] + +builddependencies = [ + ('binutils', '2.40'), + ('Autotools', '20220317'), + ('pkgconf', '1.9.5'), +] + +# 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/GEM/GEM-1.5.1-foss-2022a.eb b/easybuild/easyconfigs/g/GEM/GEM-1.5.1-foss-2022a.eb new file mode 100644 index 00000000000..6ab102385f2 --- /dev/null +++ b/easybuild/easyconfigs/g/GEM/GEM-1.5.1-foss-2022a.eb @@ -0,0 +1,50 @@ +# Author: J. Sassmannshausen (Imperial College London/UK) + +easyblock = 'MakeCp' + +name = 'GEM' +version = '1.5.1' + +homepage = 'https://github.com/large-scale-gxe-methods/GEM' + +description = """ +GEM (Gene-Environment interaction analysis for Millions of samples) is a +software program for large-scale gene-environment interaction testing in +samples from unrelated individuals. It enables genome-wide association +studies in up to millions of samples while allowing for multiple exposures, +control for genotype-covariate interactions, and robust inference. +""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +source_urls = ['https://github.com/large-scale-gxe-methods/GEM/archive'] +sources = ['v%(version)s.tar.gz'] +patches = ['%(name)s-%(version)s-makefile-thirdparty.patch'] +checksums = [ + {'v1.5.1.tar.gz': 'fcac26c43f362b18e568f06345c660bc8921f6aa4956bccd8b33317b60a94d18'}, + {'GEM-1.5.1-makefile-thirdparty.patch': '155a9bebae55a98291927aa04bda5f2dd261755d757681d59457968169f37143'}, +] + +builddependencies = [ + ('Eigen', '3.4.0'), +] + +dependencies = [ + ('Armadillo', '11.4.3'), + ('libdeflate', '1.10'), + ('zstd', '1.5.2'), +] + +start_dir = 'src' + +files_to_copy = [(['GEM'], 'bin'), 'example', 'README.md'] + +sanity_check_paths = { + 'files': ['bin/GEM'], + 'dirs': [], +} + +# Using --version or --help results in a return value of 1 +sanity_check_commands = ["GEM --version | grep v1.5.1"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/g/GEM/GEM-1.5.1-foss-2022b.eb b/easybuild/easyconfigs/g/GEM/GEM-1.5.1-foss-2022b.eb new file mode 100644 index 00000000000..f0223b7f410 --- /dev/null +++ b/easybuild/easyconfigs/g/GEM/GEM-1.5.1-foss-2022b.eb @@ -0,0 +1,50 @@ +# Author: J. Sassmannshausen (Imperial College London/UK) + +easyblock = 'MakeCp' + +name = 'GEM' +version = '1.5.1' + +homepage = 'https://github.com/large-scale-gxe-methods/GEM' + +description = """ +GEM (Gene-Environment interaction analysis for Millions of samples) is a +software program for large-scale gene-environment interaction testing in +samples from unrelated individuals. It enables genome-wide association +studies in up to millions of samples while allowing for multiple exposures, +control for genotype-covariate interactions, and robust inference. +""" + +toolchain = {'name': 'foss', 'version': '2022b'} + +source_urls = ['https://github.com/large-scale-gxe-methods/GEM/archive'] +sources = ['v%(version)s.tar.gz'] +patches = ['%(name)s-%(version)s-makefile-thirdparty.patch'] +checksums = [ + {'v1.5.1.tar.gz': 'fcac26c43f362b18e568f06345c660bc8921f6aa4956bccd8b33317b60a94d18'}, + {'GEM-1.5.1-makefile-thirdparty.patch': '155a9bebae55a98291927aa04bda5f2dd261755d757681d59457968169f37143'}, +] + +builddependencies = [ + ('Eigen', '3.4.0'), +] + +dependencies = [ + ('Armadillo', '11.4.3'), + ('libdeflate', '1.15'), + ('zstd', '1.5.2'), +] + +start_dir = 'src' + +files_to_copy = [(['GEM'], 'bin'), 'example', 'README.md'] + +sanity_check_paths = { + 'files': ['bin/GEM'], + 'dirs': [], +} + +# Using --version or --help results in a return value of 1 +sanity_check_commands = ["GEM --version | grep v1.5.1"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/g/GEM/GEM-1.5.1-makefile-thirdparty.patch b/easybuild/easyconfigs/g/GEM/GEM-1.5.1-makefile-thirdparty.patch new file mode 100644 index 00000000000..70078684fd8 --- /dev/null +++ b/easybuild/easyconfigs/g/GEM/GEM-1.5.1-makefile-thirdparty.patch @@ -0,0 +1,67 @@ +Patch for makefile, and ReadBGEN.cpp to use EasyBuild provided +third party software. Does not change the original DOS format to UNIX! +Author: J. Sassmannshausen (Imperial College London/UK) +diff --git a/GEM-1.5.1.orig/src/ReadBGEN.cpp b/GEM-1.5.1/src/ReadBGEN.cpp +index ecbc243..7162579 100755 +--- a/GEM-1.5.1.orig/src/ReadBGEN.cpp ++++ b/GEM-1.5.1/src/ReadBGEN.cpp +@@ -2,8 +2,8 @@ + #include "declars.h" + #include "ReadBGEN.h" + #include "ReadParameters.h" +-#include "../thirdparty/zstd-1.5.5/lib/zstd.h" +-#include "../thirdparty/libdeflate-1.18/libdeflate.h" ++#include "zstd.h" ++#include "libdeflate.h" + + /************************************** + This function is revised based on the Parse function in BOLT-LMM v2.3 source code +diff --git a/GEM-1.5.1.orig/src/makefile b/GEM-1.5.1/src/makefile +index 969daae..3b968b2 100644 +--- a/GEM-1.5.1.orig/src/makefile ++++ b/GEM-1.5.1/src/makefile +@@ -1,12 +1,10 @@ + CC=gcc # Do not change this for libdeflate package. + CXX=g++ +-CXXFLAGS = -std=c++11 -O2 -g ++CXXFLAGS = -std=c++11 -O2 + +-BOOST_INC=../boost +-Eigen_INC=../eigen + BOOST_LIB=-lboost_thread -lboost_program_options -lboost_system -lboost_filesystem + +-DYN_LIBS=-lmkl_gf_lp64 -lmkl_sequential -lmkl_core -ldl -lpthread -lm -larmadillo ++DYN_LIBS=-lflexiblas -lzstd -ldeflate -ldl -lpthread -lm -larmadillo + + + # Uncomment line below for LAPACK/BLAS only and comment other lines beginning with LIBS. +@@ -14,18 +12,16 @@ DYN_LIBS=-lmkl_gf_lp64 -lmkl_sequential -lmkl_core -ldl -lpthread -lm -larmadill + + #LIBS= -lmkl_gf_lp64 -lmkl_sequential -lmkl_core -ldl -lpthread -lm -lboost_program_options -lboost_thread -lboost_system -lboost_filesystem + +-C_SOURCES= $(wildcard ../thirdparty/zstd-1.5.5/lib/common/*.c) $(wildcard ../thirdparty/zstd-1.5.5/lib/compress/*.c) $(wildcard ../thirdparty/zstd-1.5.5/lib/decompress/*.c) $(wildcard ../thirdparty/libdeflate-1.18/lib/*.c) $(wildcard ../thirdparty/libdeflate-1.18/lib/x86/*.c) $(wildcard ../thirdparty/libdeflate-1.18/lib/arm/*.c) + CXX_SOURCES= MatrixUtils.cpp ReadParameters.cpp TimeUtils.cpp BinaryEUtils.cpp ReadBGEN.cpp ReadPGEN.cpp ReadBed.cpp GEM.cpp + CC_SOURCES=$(wildcard ../thirdparty/plink-2.0/*.cc) + CXX_OBJECTS= $(CXX_SOURCES:.cpp=.o) +-C_OBJECTS= $(C_SOURCES:.c=.o) + CC_OBJ= $(CC_SOURCES:.cc=.o) +-OBJS= $(CXX_OBJECTS) $(C_OBJECTS) $(CC_OBJ) ++OBJS= $(CXX_OBJECTS) $(CC_OBJ) + + #targets + all: GEM + +-GEM: $(CXX_OBJECTS) $(C_OBJECTS) $(CC_OBJ) ++GEM: $(CXX_OBJECTS) $(CC_OBJ) + $(CXX) $^ $(CXXFLAGS) $(BOOST_LIB_TD) $(BOOST_LIB) -o $@ $(DYN_LIBS) + + %.o: %.c +@@ -35,7 +31,7 @@ GEM: $(CXX_OBJECTS) $(C_OBJECTS) $(CC_OBJ) + $(CXX) $(CXXFLAGS) -c $< -o $@ + + %.o: %.cpp +- $(CXX) $(CXXFLAGS) -c $< -o $@ -I$(BOOST_INC) -I$(Eigen_INC) ++ $(CXX) $(CXXFLAGS) -I${EBROOTZSTD}/include -I${EBROOTLIBDEFLATE}/include -I${EBROOTEIGEN}/include -c $< -o $@ + + .PHONY: clean + clean: diff --git a/easybuild/easyconfigs/g/GEMMA/GEMMA-0.98.5-foss-2022b.eb b/easybuild/easyconfigs/g/GEMMA/GEMMA-0.98.5-foss-2022b.eb new file mode 100644 index 00000000000..d3428bccfd0 --- /dev/null +++ b/easybuild/easyconfigs/g/GEMMA/GEMMA-0.98.5-foss-2022b.eb @@ -0,0 +1,48 @@ +# 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 to 0.98.5 +# J Sassmannshausen NHS/GSTT + +easyblock = 'MakeCp' + +name = 'GEMMA' +version = '0.98.5' + +homepage = 'https://github.com/genetics-statistics/GEMMA' +description = "Genome-wide Efficient Mixed Model Association" + +toolchain = {'name': 'foss', 'version': '2022b'} + +source_urls = ['https://github.com/genetics-statistics/GEMMA/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['3ed336deee29e370f96ec8f1a240f7b62550e57dcd1694245ce7ec8f42241677'] + +builddependencies = [ + ('Eigen', '3.4.0'), + ('Perl', '5.36.0'), + ('Ruby', '3.2.2'), +] + +dependencies = [ + ('GSL', '2.7'), + ('zlib', '1.2.12'), + ('FlexiBLAS', '3.2.1'), +] + +buildopts = 'WITH_OPENBLAS="" LIBS="$LIBS $LIBBLAS -lgsl -lz "' # Needed for FlexiBLAS +testopts = 'WITH_OPENBLAS="" LIBS="$LIBS $LIBBLAS -lgsl -lz"' # Needed for the make check below + +files_to_copy = ["bin", "doc", "example", "LICENSE", "README.md", "RELEASE-NOTES.md", "scripts", "VERSION"] + +runtest = 'check' + +sanity_check_commands = ["gemma -h", "gemma -license"] + +sanity_check_paths = { + 'files': ["bin/gemma"], + 'dirs': [] +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/g/GLIMPSE/GLIMPSE-2.0.0-GCC-10.3.0.eb b/easybuild/easyconfigs/g/GLIMPSE/GLIMPSE-2.0.0-GCC-10.3.0.eb new file mode 100644 index 00000000000..8ae4197452c --- /dev/null +++ b/easybuild/easyconfigs/g/GLIMPSE/GLIMPSE-2.0.0-GCC-10.3.0.eb @@ -0,0 +1,55 @@ +easyblock = 'MakeCp' + +name = 'GLIMPSE' +version = '2.0.0' + +homepage = 'https://github.com/odelaneau/GLIMPSE' +description = "GLIMPSE2 is a set of tools for phasing and imputation for low-coverage sequencing datasets" + +toolchain = {'name': 'GCC', 'version': '10.3.0'} +toolchainopts = {'cstd': 'c++17'} + +source_urls = ['https://github.com/odelaneau/GLIMPSE/archive/'] +sources = [{ + 'filename': SOURCE_TAR_GZ, + 'git_config': { + 'url': 'https://github.com/odelaneau/', + 'repo_name': 'GLIMPSE', + 'tag': 'v%(version)s', + 'keep_git_dir': True, + }, +}] +checksums = [None] + +builddependencies = [ + ('git', '2.32.0', '-nodocs'), +] + +dependencies = [ + ('Boost', '1.76.0'), + ('bzip2', '1.0.8'), + ('cURL', '7.76.0'), + ('HTSlib', '1.12'), + ('XZ', '5.2.5'), + ('zlib', '1.2.11'), +] + +prebuildopts = 'ls */makefile | xargs sed -i "s/^CXXFLAG=.*/CXXFLAG=${CXXFLAGS}/g" && ' +prebuildopts += 'ls */makefile | xargs sed -i "s/^LDFLAG=.*/LDFLAG=${CXXFLAGS}/g" && ' +buildopts = 'CXX="$CXX" HTSSRC=${EBROOTHTSLIB} HTSLIB_LIB="-lhts -lcurl" BOOST_INC=$EBROOTBOOST/include ' +buildopts += 'BOOST_LIB_IO="-lboost_iostreams" BOOST_LIB_PO="-lboost_program_options" ' +buildopts += 'BOOST_LIB_SE="-lboost_serialization" ' + +files_to_copy = [(['*/bin/*'], 'bin')] + +local_binaries = ['GLIMPSE2_chunk', 'GLIMPSE2_concordance', 'GLIMPSE2_ligate', + 'GLIMPSE2_phase', 'GLIMPSE2_split_reference'] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in local_binaries], + 'dirs': [], +} + +sanity_check_commands = ["%s --help" % x for x in local_binaries] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/g/GLIMPSE/GLIMPSE-2.0.0-GCC-11.3.0.eb b/easybuild/easyconfigs/g/GLIMPSE/GLIMPSE-2.0.0-GCC-11.3.0.eb new file mode 100644 index 00000000000..dffbd942f4f --- /dev/null +++ b/easybuild/easyconfigs/g/GLIMPSE/GLIMPSE-2.0.0-GCC-11.3.0.eb @@ -0,0 +1,55 @@ +easyblock = 'MakeCp' + +name = 'GLIMPSE' +version = '2.0.0' + +homepage = 'https://github.com/odelaneau/GLIMPSE' +description = "GLIMPSE2 is a set of tools for phasing and imputation for low-coverage sequencing datasets" + +toolchain = {'name': 'GCC', 'version': '11.3.0'} +toolchainopts = {'cstd': 'c++17'} + +source_urls = ['https://github.com/odelaneau/GLIMPSE/archive/'] +sources = [{ + 'filename': SOURCE_TAR_GZ, + 'git_config': { + 'url': 'https://github.com/odelaneau/', + 'repo_name': 'GLIMPSE', + 'tag': 'v%(version)s', + 'keep_git_dir': True, + }, +}] +checksums = [None] + +builddependencies = [ + ('git', '2.36.0', '-nodocs'), +] + +dependencies = [ + ('Boost', '1.79.0'), + ('bzip2', '1.0.8'), + ('cURL', '7.83.0'), + ('HTSlib', '1.15.1'), + ('XZ', '5.2.5'), + ('zlib', '1.2.12'), +] + +prebuildopts = 'ls */makefile | xargs sed -i "s/^CXXFLAG=.*/CXXFLAG=${CXXFLAGS}/g" && ' +prebuildopts += 'ls */makefile | xargs sed -i "s/^LDFLAG=.*/LDFLAG=${CXXFLAGS}/g" && ' +buildopts = 'CXX="$CXX" HTSSRC=${EBROOTHTSLIB} HTSLIB_LIB="-lhts -lcurl" BOOST_INC=$EBROOTBOOST/include ' +buildopts += 'BOOST_LIB_IO="-lboost_iostreams" BOOST_LIB_PO="-lboost_program_options" ' +buildopts += 'BOOST_LIB_SE="-lboost_serialization" ' + +files_to_copy = [(['*/bin/*'], 'bin')] + +local_binaries = ['GLIMPSE2_chunk', 'GLIMPSE2_concordance', 'GLIMPSE2_ligate', + 'GLIMPSE2_phase', 'GLIMPSE2_split_reference'] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in local_binaries], + 'dirs': [], +} + +sanity_check_commands = ["%s --help" % x for x in local_binaries] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/g/GLIMPSE/GLIMPSE-2.0.0-GCC-12.2.0.eb b/easybuild/easyconfigs/g/GLIMPSE/GLIMPSE-2.0.0-GCC-12.2.0.eb new file mode 100644 index 00000000000..57eca82043d --- /dev/null +++ b/easybuild/easyconfigs/g/GLIMPSE/GLIMPSE-2.0.0-GCC-12.2.0.eb @@ -0,0 +1,55 @@ +easyblock = 'MakeCp' + +name = 'GLIMPSE' +version = '2.0.0' + +homepage = 'https://github.com/odelaneau/GLIMPSE' +description = "GLIMPSE2 is a set of tools for phasing and imputation for low-coverage sequencing datasets" + +toolchain = {'name': 'GCC', 'version': '12.2.0'} +toolchainopts = {'cstd': 'c++17'} + +source_urls = ['https://github.com/odelaneau/GLIMPSE/archive/'] +sources = [{ + 'filename': SOURCE_TAR_GZ, + 'git_config': { + 'url': 'https://github.com/odelaneau/', + 'repo_name': 'GLIMPSE', + 'tag': 'v%(version)s', + 'keep_git_dir': True, + }, +}] +checksums = [None] + +builddependencies = [ + ('git', '2.38.1', '-nodocs'), +] + +dependencies = [ + ('Boost', '1.81.0'), + ('bzip2', '1.0.8'), + ('cURL', '7.86.0'), + ('HTSlib', '1.17'), + ('XZ', '5.2.7'), + ('zlib', '1.2.12'), +] + +prebuildopts = 'ls */makefile | xargs sed -i "s/^CXXFLAG=.*/CXXFLAG=${CXXFLAGS}/g" && ' +prebuildopts += 'ls */makefile | xargs sed -i "s/^LDFLAG=.*/LDFLAG=${CXXFLAGS}/g" && ' +buildopts = 'CXX="$CXX" HTSSRC=${EBROOTHTSLIB} HTSLIB_LIB="-lhts -lcurl" BOOST_INC=$EBROOTBOOST/include ' +buildopts += 'BOOST_LIB_IO="-lboost_iostreams" BOOST_LIB_PO="-lboost_program_options" ' +buildopts += 'BOOST_LIB_SE="-lboost_serialization" ' + +files_to_copy = [(['*/bin/*'], 'bin')] + +local_binaries = ['GLIMPSE2_chunk', 'GLIMPSE2_concordance', 'GLIMPSE2_ligate', + 'GLIMPSE2_phase', 'GLIMPSE2_split_reference'] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in local_binaries], + 'dirs': [], +} + +sanity_check_commands = ["%s --help" % x for x in local_binaries] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/g/GMAP-GSNAP/GMAP-GSNAP-2021-21-17-GCC-11.2.0.eb b/easybuild/easyconfigs/g/GMAP-GSNAP/GMAP-GSNAP-2021-12-17-GCC-11.2.0.eb similarity index 96% rename from easybuild/easyconfigs/g/GMAP-GSNAP/GMAP-GSNAP-2021-21-17-GCC-11.2.0.eb rename to easybuild/easyconfigs/g/GMAP-GSNAP/GMAP-GSNAP-2021-12-17-GCC-11.2.0.eb index 8ec3299dc96..b184438655e 100644 --- a/easybuild/easyconfigs/g/GMAP-GSNAP/GMAP-GSNAP-2021-21-17-GCC-11.2.0.eb +++ b/easybuild/easyconfigs/g/GMAP-GSNAP/GMAP-GSNAP-2021-12-17-GCC-11.2.0.eb @@ -9,7 +9,7 @@ easyblock = 'ConfigureMake' name = 'GMAP-GSNAP' -version = '2021-21-17' +version = '2021-12-17' homepage = 'http://research-pub.gene.com/gmap/' description = """GMAP: A Genomic Mapping and Alignment Program for mRNA and EST Sequences @@ -26,6 +26,7 @@ checksums = ['9e8368bc997d79292f84a3553bc1a09c1d5ea5337d252dadc0f6ed85b4bb6dae'] dependencies = [ ('bzip2', '1.0.8'), ('zlib', '1.2.11'), + ('Perl', '5.34.0'), ] # GSNAP uses MAX_STACK_READLENGTH to control the use of stack or heap memory depending on the read length diff --git a/easybuild/easyconfigs/g/GMAP-GSNAP/GMAP-GSNAP-2023-04-20-GCC-12.2.0.eb b/easybuild/easyconfigs/g/GMAP-GSNAP/GMAP-GSNAP-2023-04-20-GCC-12.2.0.eb new file mode 100644 index 00000000000..c2372d6232a --- /dev/null +++ b/easybuild/easyconfigs/g/GMAP-GSNAP/GMAP-GSNAP-2023-04-20-GCC-12.2.0.eb @@ -0,0 +1,55 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# Author: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics +# Biozentrum - University of Basel +# 2016-11-07 modified by: +# Adam Huffman +# The Francis Crick Institute + +easyblock = 'ConfigureMake' + +name = 'GMAP-GSNAP' +version = '2023-04-20' + +homepage = 'http://research-pub.gene.com/gmap/' +description = """GMAP: A Genomic Mapping and Alignment Program for mRNA and EST Sequences + GSNAP: Genomic Short-read Nucleotide Alignment Program""" + +toolchain = {'name': 'GCC', 'version': '12.2.0'} + +source_urls = ['http://research-pub.gene.com/gmap/src/'] +sources = [SOURCELOWER_TAR_GZ] +patches = [ + 'GMAP-GSNAP-2023-02-17_cleanup-headers.patch', + 'GMAP-GSNAP-2023-02-17_fix-typecast.patch', +] +checksums = [ + {'gmap-gsnap-2023-04-20.tar.gz': 'f858bc699cbcc9b3f06751ace55c86bfc21e4ca821a90b10681feac2172b725e'}, + {'GMAP-GSNAP-2023-02-17_cleanup-headers.patch': '7d17d4cbc717556e3a64475eb931b692e9d564b486acf6c9dbf4c2bf29853832'}, + {'GMAP-GSNAP-2023-02-17_fix-typecast.patch': 'eafe728cf00cf52320bbf4b710ef76b662df92533d22fa67dc273855c180296f'}, +] + +# with these deps you can use standard compressed files +# details in http://research-pub.gene.com/gmap/src/README +dependencies = [ + ('bzip2', '1.0.8'), + ('zlib', '1.2.12'), +] + +# GSNAP uses MAX_STACK_READLENGTH to control the use of stack or heap memory depending on the read length +# details in http://research-pub.gene.com/gmap/src/README +# configopts = 'MAX_STACK_READLENGTH=300' + +runtest = 'check' + +sanity_check_paths = { + 'files': ['bin/gmap', 'bin/gsnap'], + 'dirs': [], +} + +sanity_check_commands = [ + "gmap --help", + "gsnap --help", +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/g/GMP/GMP-6.2.1-GCCcore-12.3.0.eb b/easybuild/easyconfigs/g/GMP/GMP-6.2.1-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..15f01302836 --- /dev/null +++ b/easybuild/easyconfigs/g/GMP/GMP-6.2.1-GCCcore-12.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': '12.3.0'} +toolchainopts = {'precise': True, 'pic': True} + +source_urls = ['https://ftp.gnu.org/gnu/%(namelower)s'] +sources = [SOURCELOWER_TAR_BZ2] +checksums = ['eae9326beb4158c386e39a356818031bd28f3124cf915f8c5b1dc4c7a36b4d7c'] + +builddependencies = [ + ('Autotools', '20220317'), + ('binutils', '2.40'), +] + +# enable C++ interface +configopts = '--enable-cxx' + +# copy libgmp.so* to /lib to make sure that it is picked up by tests +# when EasyBuild is configured with --rpath, and clean up afterwards (let 'make install' do its job) +pretestopts = "mkdir -p %%(installdir)s/lib && cp -a .libs/libgmp.%s* %%(installdir)s/lib && " % SHLIB_EXT +testopts = " && rm -r %(installdir)s/lib" + +runtest = 'check' + +sanity_check_paths = { + 'files': ['lib/lib%s.%s' % (l, e) for l in ['gmp', 'gmpxx'] for e in [SHLIB_EXT, 'a']] + + ['include/gmp.h', 'include/gmpxx.h'], + 'dirs': ['share'], +} + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/g/GRIDSS/GRIDSS-2.13.2-foss-2021b-Java-11.eb b/easybuild/easyconfigs/g/GRIDSS/GRIDSS-2.13.2-foss-2021b-Java-11.eb new file mode 100644 index 00000000000..68924b5d99d --- /dev/null +++ b/easybuild/easyconfigs/g/GRIDSS/GRIDSS-2.13.2-foss-2021b-Java-11.eb @@ -0,0 +1,48 @@ +# # +# This is a contribution from HPCNow! (http://hpcnow.com) +# Copyright:: HPCNow! +# Authors:: Jordi Blasco +# License:: GPL-v3.0 +# Author: Åke Sandgren (HPC2N) +# # + +easyblock = 'BinariesTarball' + +name = 'GRIDSS' +version = '2.13.2' +versionsuffix = '-Java-%(javaver)s' + +homepage = 'https://github.com/PapenfussLab/gridss/wiki/GRIDSS-Documentation' +description = """GRIDSS is a module software suite containing tools useful for +the detection of genomic rearrangements. GRIDSS includes a genome-wide +break-end assembler, as well as a structural variation caller for Illumina +sequencing data. GRIDSS calls variants based on alignment-guided positional de +Bruijn graph genome-wide break-end assembly, split read, and read pair +evidence.""" + +toolchain = {'name': 'foss', 'version': '2021b'} + +github_account = 'PapenfussLab' +source_urls = [GITHUB_LOWER_RELEASE] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['4d5651b1fc27928c0f76f1e8e7b90a74e6feae0c1cb9abea17fa2bd359f1d704'] + +dependencies = [ + ('Java', '11', '', SYSTEM), + ('picard', '2.25.1', versionsuffix, SYSTEM), + ('R', '4.1.2'), + ('SAMtools', '1.14'), + ('BWA', '0.7.17'), +] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['gridss-%(version)s-gridss-jar-with-dependencies.jar', 'gridss.config.R', + 'gridss_somatic_filter', 'libgridss.R', 'gridss']], + 'dirs': [], +} + +modextrapaths = { + 'GRIDSS_JAR': ['bin'], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/g/GROMACS/GROMACS-2019.4-foss-2019b-PLUMED-2.5.4.eb b/easybuild/easyconfigs/g/GROMACS/GROMACS-2019.4-foss-2019b-PLUMED-2.5.4.eb new file mode 100644 index 00000000000..582265358ee --- /dev/null +++ b/easybuild/easyconfigs/g/GROMACS/GROMACS-2019.4-foss-2019b-PLUMED-2.5.4.eb @@ -0,0 +1,58 @@ +## +# 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 +# * J. Sassmannshausen (Crick HPC team) +# * Lars Viklund +# License:: MIT/GPL +# + +name = 'GROMACS' +version = '2019.4' +local_plum_ver = '2.5.4' +versionsuffix = '-PLUMED-%s' % local_plum_ver + +homepage = 'http://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 CPU only build, containing both MPI and threadMPI builds. +""" + +toolchain = {'name': 'foss', 'version': '2019b'} +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-2018_dont_do_gpu_tests_on_cpu_build.patch', +] +checksums = [ + 'ba4366eedfc8a1dbf6bddcef190be8cd75de53691133f305a7f9c296e5ca1867', # gromacs-2019.4.tar.gz + # GROMACS-2019_fix_omp_num_threads_and_google_test_death_style_in_tests.patch + '406f5edd204be812f095a6f07ebc2673c5f6ddf1b1c1428fd336a80b9c629275', + # GROMACS-2018_dont_do_gpu_tests_on_cpu_build.patch + '727cc1afd9061002390e474b01aeb40efd984e6b7febd1cfe5e69a0a82b21f06', +] + +builddependencies = [ + ('CMake', '3.15.3'), +] + +dependencies = [ + ('PLUMED', local_plum_ver, '-Python-3.7.4'), +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/g/GROMACS/GROMACS-2019.4-fosscuda-2019b-PLUMED-2.5.4.eb b/easybuild/easyconfigs/g/GROMACS/GROMACS-2019.4-fosscuda-2019b-PLUMED-2.5.4.eb new file mode 100644 index 00000000000..c7f4b27ddd7 --- /dev/null +++ b/easybuild/easyconfigs/g/GROMACS/GROMACS-2019.4-fosscuda-2019b-PLUMED-2.5.4.eb @@ -0,0 +1,60 @@ +## +# 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 +# * Lars Viklund +# License:: MIT/GPL +# 2019.3 version +# Contribution from the Crick HPC team +# uploaded by J. Sassmannshausen +# + +name = 'GROMACS' +version = '2019.4' +local_plum_ver = '2.5.4' +versionsuffix = '-PLUMED-%s' % local_plum_ver + +homepage = 'http://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 binaries. +""" + +toolchain = {'name': 'fosscuda', 'version': '2019b'} +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', +] +checksums = [ + 'ba4366eedfc8a1dbf6bddcef190be8cd75de53691133f305a7f9c296e5ca1867', # gromacs-2019.4.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', +] + +builddependencies = [ + ('CMake', '3.15.3'), +] + +dependencies = [ + ('PLUMED', local_plum_ver, '-Python-3.7.4'), +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/g/GROMACS/GROMACS-2019.4-fosscuda-2019b.eb b/easybuild/easyconfigs/g/GROMACS/GROMACS-2019.4-fosscuda-2019b.eb new file mode 100644 index 00000000000..23d4e624864 --- /dev/null +++ b/easybuild/easyconfigs/g/GROMACS/GROMACS-2019.4-fosscuda-2019b.eb @@ -0,0 +1,54 @@ +## +# 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 +# * Lars Viklund +# License:: MIT/GPL +# 2019.3 version +# Contribution from the Crick HPC team +# uploaded by J. Sassmannshausen +# + +name = 'GROMACS' +version = '2019.4' + +homepage = 'http://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 binaries. +""" + +toolchain = {'name': 'fosscuda', 'version': '2019b'} +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', +] +checksums = [ + 'ba4366eedfc8a1dbf6bddcef190be8cd75de53691133f305a7f9c296e5ca1867', # gromacs-2019.4.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', +] + +builddependencies = [ + ('CMake', '3.15.3'), +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/g/GROMACS/GROMACS-2023.1-foss-2022a-CUDA-11.7.0.eb b/easybuild/easyconfigs/g/GROMACS/GROMACS-2023.1-foss-2022a-CUDA-11.7.0.eb new file mode 100644 index 00000000000..fdefe9a299b --- /dev/null +++ b/easybuild/easyconfigs/g/GROMACS/GROMACS-2023.1-foss-2022a-CUDA-11.7.0.eb @@ -0,0 +1,91 @@ +# 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 +# * Christoph Siegert +# License:: MIT/GPL + +name = 'GROMACS' +version = '2023.1' +versionsuffix = '-CUDA-%(cudaver)s' + +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 binaries. + +It also contains the gmxapi extension for the single precision MPI build. +""" + +toolchain = {'name': 'foss', 'version': '2022a'} +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-%(version)s_fix_env_for_subprocesses.patch', + 'GROMACS-%(version)s_set_omp_num_threads_env_for_ntomp_tests.patch', + 'GROMACS-%(version)s_fix_tests_for_gmx_thread_mpi.patch', +] +checksums = [ + {'gromacs-2023.1.tar.gz': 'eef2bb4a6cb6314cf9da47f26df2a0d27af4bf7b3099723d43601073ab0a42f4'}, + {'GROMACS-2023.1_fix_env_for_subprocesses.patch': + '39ba066c936cddc190bab13c47d6af1575f5d7737d5c0719fe46211a13cd3539'}, + {'GROMACS-2023.1_set_omp_num_threads_env_for_ntomp_tests.patch': + '7f41bda16c9c2837624265dda4be252f655d1288ddc4486b1a2422af30d5d199'}, + {'GROMACS-2023.1_fix_tests_for_gmx_thread_mpi.patch': + '6df844bb3bbc51180446a3595c61a4ef195e5f975533a04cef76841aa763aec1'}, +] + +builddependencies = [ + ('CMake', '3.24.3'), + ('scikit-build', '0.15.0'), +] + +dependencies = [ + ('CUDA', '11.7.0', '', SYSTEM), + ('UCX-CUDA', '1.12.1', versionsuffix), + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), + ('networkx', '2.8.4'), +] + +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.4.0', { + 'preinstallopts': 'export CMAKE_ARGS="-Dgmxapi_ROOT=%(installdir)s ' + + '-C %(installdir)s/share/cmake/gromacs_mpi/gromacs-hints_mpi.cmake" && ', + 'source_tmpl': 'gromacs-2023.1.tar.gz', + 'start_dir': 'python_packaging/gmxapi', + 'checksums': ['eef2bb4a6cb6314cf9da47f26df2a0d27af4bf7b3099723d43601073ab0a42f4'], + }), +] + +modextrapaths = { + 'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages', +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/g/GROMACS/GROMACS-2023.1-foss-2022a.eb b/easybuild/easyconfigs/g/GROMACS/GROMACS-2023.1-foss-2022a.eb new file mode 100644 index 00000000000..23dfc2084f5 --- /dev/null +++ b/easybuild/easyconfigs/g/GROMACS/GROMACS-2023.1-foss-2022a.eb @@ -0,0 +1,89 @@ +# 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 +# * Christoph Siegert +# License:: MIT/GPL + +name = 'GROMACS' +version = '2023.1' + +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 CPU only build, containing both MPI and threadMPI binaries +for both single and double precision. + +It also contains the gmxapi extension for the single precision MPI build. +""" + +toolchain = {'name': 'foss', 'version': '2022a'} +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-%(version)s_fix_env_for_subprocesses.patch', + 'GROMACS-%(version)s_set_omp_num_threads_env_for_ntomp_tests.patch', + 'GROMACS-%(version)s_fix_tests_for_gmx_thread_mpi.patch', +] +checksums = [ + {'gromacs-2023.1.tar.gz': 'eef2bb4a6cb6314cf9da47f26df2a0d27af4bf7b3099723d43601073ab0a42f4'}, + {'GROMACS-2023.1_fix_env_for_subprocesses.patch': + '39ba066c936cddc190bab13c47d6af1575f5d7737d5c0719fe46211a13cd3539'}, + {'GROMACS-2023.1_set_omp_num_threads_env_for_ntomp_tests.patch': + '7f41bda16c9c2837624265dda4be252f655d1288ddc4486b1a2422af30d5d199'}, + {'GROMACS-2023.1_fix_tests_for_gmx_thread_mpi.patch': + '6df844bb3bbc51180446a3595c61a4ef195e5f975533a04cef76841aa763aec1'}, +] + +builddependencies = [ + ('CMake', '3.24.3'), + ('scikit-build', '0.15.0'), +] + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), + ('networkx', '2.8.4'), +] + +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.4.0', { + 'preinstallopts': 'export CMAKE_ARGS="-Dgmxapi_ROOT=%(installdir)s ' + + '-C %(installdir)s/share/cmake/gromacs_mpi/gromacs-hints_mpi.cmake" && ', + 'source_tmpl': 'gromacs-2023.1.tar.gz', + 'start_dir': 'python_packaging/gmxapi', + 'checksums': ['eef2bb4a6cb6314cf9da47f26df2a0d27af4bf7b3099723d43601073ab0a42f4'], + }), +] + +modextrapaths = { + 'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages', +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/g/GROMACS/GROMACS-2023.1_fix_env_for_subprocesses.patch b/easybuild/easyconfigs/g/GROMACS/GROMACS-2023.1_fix_env_for_subprocesses.patch new file mode 100644 index 00000000000..b9f3bb536bd --- /dev/null +++ b/easybuild/easyconfigs/g/GROMACS/GROMACS-2023.1_fix_env_for_subprocesses.patch @@ -0,0 +1,206 @@ +Fix for providing a more carefully filtered environment for subprocesses, based on GROMACS PR #3574: +https://gitlab.com/gromacs/gromacs/-/merge_requests/3574 + +Author: Bob Dröge, University of Groningen + +diff -ru gromacs-2023.1-orig/python_packaging/gmxapi/src/gmxapi/commandline.py gromacs-2023.1/python_packaging/gmxapi/src/gmxapi/commandline.py +--- gromacs-2023.1-orig/python_packaging/gmxapi/src/gmxapi/commandline.py 2023-04-21 15:12:07.000000000 +0200 ++++ gromacs-2023.1/python_packaging/gmxapi/src/gmxapi/commandline.py 2023-05-09 10:42:28.800802318 +0200 +@@ -507,16 +507,9 @@ + shell = gmx.make_constant(False) + + if env is None: +- +- @gmx.function_wrapper( +- # allow_duplicate=True +- ) +- def _env() -> dict: +- import os +- +- return dict(os.environ) +- +- env = _env().output.data ++ env = gmx.function_wrapper(allow_duplicate=True)( ++ gmxapi.runtime.filtered_mpi_environ ++ )().output.data + cli_args = {"command": command, "shell": shell, "env": env} + cli_args.update(**kwargs) + if stdin is not None: +diff -ru gromacs-2023.1-orig/python_packaging/gmxapi/src/gmxapi/runtime.py gromacs-2023.1/python_packaging/gmxapi/src/gmxapi/runtime.py +--- gromacs-2023.1-orig/python_packaging/gmxapi/src/gmxapi/runtime.py 2023-04-21 15:12:07.000000000 +0200 ++++ gromacs-2023.1/python_packaging/gmxapi/src/gmxapi/runtime.py 2023-05-09 10:44:50.869215242 +0200 +@@ -67,6 +67,8 @@ + """ + + __all__ = ( ++ "filtered_mpi_environ", ++ "filtered_prefixes", + "scoped_resources", + "ResourceAllocation", + "ResourceAssignment", +@@ -75,12 +77,11 @@ + + import dataclasses + import functools ++import os + import threading + import typing + import warnings + import weakref +-from typing import TYPE_CHECKING +-from _weakref import ReferenceType + from contextlib import contextmanager + + import gmxapi.utility +@@ -100,9 +101,9 @@ + logger.info("Importing {}".format(__name__)) + + +-if TYPE_CHECKING: ++if typing.TYPE_CHECKING: + try: +- import Comm as Communicator ++ import mpi4py.MPI.Comm as Communicator + except ImportError: + Communicator = None + +@@ -760,3 +761,43 @@ + yield resources + finally: + resources.close() ++ ++ ++filtered_prefixes = ( ++ "DCMF_", # IBM ++ "MPICH_", ++ "MPIEXEC_", ++ "MPIO_", # IBM ++ "MV2_", # MVAPICH2 and some forks ++ "MVAPICH_", ++ "HYDRA_", # MPICH ++ "OMPI_", # OpenMPI ++ "PMI_", # Process Management Interface ++ "PMIX_", # Newer PMI and batch systems ++ "I_MPI_", # Intel MPI ++) ++"""MPI-related environment variable prefixes. ++ ++Environment variable prefixes known to be associated with MPI implementations, ++which may affect MPI context detection, and which should not matter outside of ++MPI contexts. ++ ++References: ++ * :issue:`4423` ++ * :issue:`4736` ++ ++""" ++ ++ ++def filtered_mpi_environ() -> dict: ++ """Return a filtered environment variables map with MPI-related entries removed. ++ ++ See Also: ++ :py:data:`filtered_prefixes` ++ ++ """ ++ return { ++ key: value ++ for key, value in os.environ.items() ++ if not any(key.startswith(prefix) for prefix in filtered_prefixes) ++ } +diff -ru gromacs-2023.1-orig/python_packaging/gmxapi/test/conftest.py gromacs-2023.1/python_packaging/gmxapi/test/conftest.py +--- gromacs-2023.1-orig/python_packaging/gmxapi/test/conftest.py 2023-04-21 15:12:07.000000000 +0200 ++++ gromacs-2023.1/python_packaging/gmxapi/test/conftest.py 2023-05-09 10:46:49.399228381 +0200 +@@ -73,7 +73,8 @@ + Prepare the MD input in a freshly created working directory. + Solvate a 5nm cubic box with spc water. Return a dictionary of the artifacts produced. + """ +- import gmxapi as gmx ++ import gmxapi ++ import gmxapi.runtime + from gmxapi.testsupport import scoped_chdir + + # TODO: (#2896) Fetch MD input from package / library data. +@@ -108,7 +109,7 @@ + fh.write("\n") + + assert os.path.exists(topfile) +- solvate = gmx.commandline_operation( ++ solvate = gmxapi.commandline_operation( + gmxcli, + arguments=["solvate", "-box", "5", "5", "5"], + # We use the default solvent instead of specifying one. +@@ -117,7 +118,6 @@ + "-p": topfile, + "-o": structurefile, + }, +- env={"PATH": os.getenv("PATH")}, + ) + assert os.path.exists(topfile) + +@@ -154,7 +154,7 @@ + # it will be created in the current working directory. + mdout_mdp = os.path.join(tempdir, "mdout.mdp") + +- grompp = gmx.commandline_operation( ++ grompp = gmxapi.commandline_operation( + gmxcli, + "grompp", + input_files={ +@@ -164,7 +164,6 @@ + "-po": mdout_mdp, + }, + output_files={"-o": tprfile}, +- env={"PATH": os.getenv("PATH")}, + ) + tprfilename = grompp.output.file["-o"].result() + if grompp.output.returncode.result() != 0: +diff -ru gromacs-2023.1-orig/python_packaging/sample_restraint/tests/conftest.py gromacs-2023.1/python_packaging/sample_restraint/tests/conftest.py +--- gromacs-2023.1-orig/python_packaging/sample_restraint/tests/conftest.py 2023-04-21 15:12:07.000000000 +0200 ++++ gromacs-2023.1/python_packaging/sample_restraint/tests/conftest.py 2023-05-09 10:48:39.500098358 +0200 +@@ -48,7 +48,8 @@ + + Prepare the MD input in a freshly created working directory. + """ +- import gmxapi as gmx ++ import gmxapi ++ import gmxapi.runtime + from gmxapi.testsupport import scoped_chdir + + # TODO: (#2896) Fetch MD input from package / library data. +@@ -83,8 +84,8 @@ + fh.write("\n") + + assert os.path.exists(topfile) +- assert gmx.version.api_is_at_least(0, 3, 1) +- solvate = gmx.commandline_operation( ++ assert gmxapi.version.api_is_at_least(0, 3, 1) ++ solvate = gmxapi.commandline_operation( + gmxcli, + arguments=["solvate", "-box", "5", "5", "5"], + # We use the default solvent instead of specifying one. +@@ -93,7 +94,6 @@ + "-p": topfile, + "-o": structurefile, + }, +- env={"PATH": os.getenv("PATH")}, + ) + assert os.path.exists(topfile) + +@@ -128,7 +128,7 @@ + # it will be created in the current working directory. + mdout_mdp = os.path.join(tempdir, "mdout.mdp") + +- grompp = gmx.commandline_operation( ++ grompp = gmxapi.commandline_operation( + gmxcli, + "grompp", + input_files={ +@@ -138,7 +138,6 @@ + "-po": mdout_mdp, + }, + output_files={"-o": tprfile}, +- env={"PATH": os.getenv("PATH")}, + ) + tprfilename = grompp.output.file["-o"].result() + if grompp.output.returncode.result() != 0: diff --git a/easybuild/easyconfigs/g/GROMACS/GROMACS-2023.1_fix_tests_for_gmx_thread_mpi.patch b/easybuild/easyconfigs/g/GROMACS/GROMACS-2023.1_fix_tests_for_gmx_thread_mpi.patch new file mode 100644 index 00000000000..8860ace45e0 --- /dev/null +++ b/easybuild/easyconfigs/g/GROMACS/GROMACS-2023.1_fix_tests_for_gmx_thread_mpi.patch @@ -0,0 +1,68 @@ +Make testing of GMX_THREAD_MPI work. +Don't drop relevant PYTHONPATH and LD_LIBRARY_PATH settings. +Make sure OMP_NUM_THREADS is not set so it doesn't fail when -ntomp is set. +Don't use mpiexec for GMX_THREAD_MPI runs. + +Åke Sandgren, 2023-06-27 +diff -ru gromacs-2023.1.orig/python_packaging/gmxapi/test/CMakeLists.txt gromacs-2023.1/python_packaging/gmxapi/test/CMakeLists.txt +--- gromacs-2023.1.orig/python_packaging/gmxapi/test/CMakeLists.txt 2023-04-21 15:12:07.000000000 +0200 ++++ gromacs-2023.1/python_packaging/gmxapi/test/CMakeLists.txt 2023-06-27 08:08:49.967184214 +0200 +@@ -61,7 +61,7 @@ + endif() + + add_custom_target(gmxapi_pytest +- COMMAND ${PYTHON_EXECUTABLE} -m pytest ++ COMMAND ${CMAKE_COMMAND} -E env --unset=OMP_NUM_THREADS ${PYTHON_EXECUTABLE} -m pytest + -rA -l --log-cli-level ERROR ${CMAKE_CURRENT_SOURCE_DIR} + DEPENDS _gmxapi + WORKING_DIRECTORY ${GMXAPI_PYTHON_STAGING_DIR}) +@@ -70,6 +70,7 @@ + + add_dependencies(check gmxapi_pytest) + ++if (GMX_MPI) + if(MPIEXEC_EXECUTABLE) + if(NOT GMXAPI_MPI4PY_FOUND) + if (MPI_C_COMPILER) +@@ -107,3 +108,4 @@ + + add_dependencies(check gmxapi_pytest_mpi) + endif() ++endif() +diff -ru gromacs-2023.1.orig/python_packaging/sample_restraint/tests/CMakeGROMACS.txt gromacs-2023.1/python_packaging/sample_restraint/tests/CMakeGROMACS.txt +--- gromacs-2023.1.orig/python_packaging/sample_restraint/tests/CMakeGROMACS.txt 2023-04-21 15:12:07.000000000 +0200 ++++ gromacs-2023.1/python_packaging/sample_restraint/tests/CMakeGROMACS.txt 2023-06-27 09:10:31.134866196 +0200 +@@ -21,15 +21,18 @@ + get_target_property(PLUGINPATH gmxapi_extension LIBRARY_OUTPUT_DIRECTORY) + add_custom_target(gmxapi_extension_pytest + COMMAND ${CMAKE_COMMAND} +- -E env PYTHONPATH=${GMXAPI_PYTHON_STAGING_DIR}:${PLUGINPATH} ++ -E env --unset=OMP_NUM_THREADS LD_LIBRARY_PATH=$ENV{LD_LIBRARY_PATH} PYTHONPATH=$ENV{PYTHONPATH}:${GMXAPI_PYTHON_STAGING_DIR}:${PLUGINPATH} + ${PYTHON_EXECUTABLE} -m pytest --log-cli-level ERROR + ${CMAKE_CURRENT_SOURCE_DIR} +- DEPENDS gmxapi_extension _gmxapi) ++ DEPENDS gmxapi_extension _gmxapi ++ WORKING_DIRECTORY ${GMXAPI_PYTHON_STAGING_DIR}) ++ + # The current test fixtures require the `gmx` tool-wrapper executable. + add_dependencies(gmxapi_extension_pytest gmx) + + add_dependencies(check gmxapi_extension_pytest) + ++if (GMX_MPI) + if(MPIEXEC_EXECUTABLE) + if(NOT GMXAPI_MPI4PY_FOUND) + if (MPI_C_COMPILER) +@@ -58,10 +61,11 @@ + # (https://www.open-mpi.org/doc/v3.0/man1/mpiexec.1.php) + add_custom_target( + gmxapi_extension_pytest_mpi +- COMMAND ${MPIEXEC_EXECUTABLE} -n 4 -x PYTHONPATH=${GMXAPI_PYTHON_STAGING_DIR}:${PLUGINPATH} ++ COMMAND ${MPIEXEC_EXECUTABLE} -n 4 -x PYTHONPATH=$ENV{PYTHONPATH}:${GMXAPI_PYTHON_STAGING_DIR}:${PLUGINPATH} + ${PYTHON_EXECUTABLE} -m mpi4py -m pytest -x --log-cli-level ERROR ${CMAKE_CURRENT_SOURCE_DIR} + DEPENDS gmxapi_extension _gmxapi gmx + ) + + add_dependencies(check gmxapi_extension_pytest_mpi) + endif() ++endif() diff --git a/easybuild/easyconfigs/g/GROMACS/GROMACS-2023.1_set_omp_num_threads_env_for_ntomp_tests.patch b/easybuild/easyconfigs/g/GROMACS/GROMACS-2023.1_set_omp_num_threads_env_for_ntomp_tests.patch new file mode 100644 index 00000000000..ae22b6c7828 --- /dev/null +++ b/easybuild/easyconfigs/g/GROMACS/GROMACS-2023.1_set_omp_num_threads_env_for_ntomp_tests.patch @@ -0,0 +1,14 @@ +Make sure env OMP_NUM_THREADS matches -ntomp argument during testing. + +Åke Sandgren, 2023-06-22 +diff -ru gromacs-2023.1.orig/src/testutils/TestMacros.cmake gromacs-2023.1/src/testutils/TestMacros.cmake +--- gromacs-2023.1.orig/src/testutils/TestMacros.cmake 2023-04-21 15:12:08.000000000 +0200 ++++ gromacs-2023.1/src/testutils/TestMacros.cmake 2023-06-22 16:29:28.338270785 +0200 +@@ -288,6 +288,7 @@ + endif () + set(_cmd ${_prefix_cmd} $) + if (ARG_OPENMP_THREADS) ++ set(_cmd "env" "OMP_NUM_THREADS=${ARG_OPENMP_THREADS}" ${_cmd}) + if (GMX_OPENMP) + list(APPEND _cmd -ntomp ${ARG_OPENMP_THREADS}) + endif() diff --git a/easybuild/easyconfigs/g/GSL/GSL-2.7-GCCcore-12.3.0.eb b/easybuild/easyconfigs/g/GSL/GSL-2.7-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..9f94ed4cf46 --- /dev/null +++ b/easybuild/easyconfigs/g/GSL/GSL-2.7-GCCcore-12.3.0.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'GSL' +version = '2.7' + +homepage = 'https://www.gnu.org/software/gsl/' +description = """The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. + The library provides a wide range of mathematical routines such as random number generators, special functions + and least-squares fitting.""" + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} +toolchainopts = {'unroll': True, 'pic': True} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['efbbf3785da0e53038be7907500628b466152dbc3c173a87de1b5eba2e23602b'] + +builddependencies = [ + ('binutils', '2.40'), +] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['gsl-config', 'gsl-histogram', 'gsl-randist']] + + ['include/gsl/gsl_types.h'] + + ['lib/lib%s.%s' % (x, SHLIB_EXT) for x in ['gsl', 'gslcblas']], + 'dirs': [], +} + +moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/g/Geant4-data/Geant4-data-11.1.eb b/easybuild/easyconfigs/g/Geant4-data/Geant4-data-11.1.eb new file mode 100644 index 00000000000..5f9812478e6 --- /dev/null +++ b/easybuild/easyconfigs/g/Geant4-data/Geant4-data-11.1.eb @@ -0,0 +1,53 @@ +easyblock = 'Tarball' +name = 'Geant4-data' +version = '11.1' # version should somewhat match the Geant4 version it should be used in + +homepage = 'https://geant4.web.cern.ch/' +description = """Datasets for Geant4.""" + +toolchain = SYSTEM + +# Pick up the correct sets and versions from cmake/Modules/G4DatasetDefinitions.cmake +# in the Geant source +local_datasets = [ + ('G4NDL', '4.7', 'G4NDL', 'G4NEUTRONHPDATA'), # NDL + ('G4EMLOW', '8.2', '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', '4.0', 'G4PARTICLEXS', 'G4PARTICLEXSDATA'), # Particle XS - replaces Neutron XS + ('G4PII', '1.3', 'G4PII', 'G4PIIDATA'), # PII + ('RealSurface', '2.2', 'G4RealSurface', 'G4REALSURFACEDATA'), # Optical Surfaces + ('G4ABLA', '3.1', 'G4ABLA', 'G4ABLADATA'), # ABLA + ('G4INCL', '1.0', 'G4INCL', 'G4INCLDATA'), # INCL + ('G4ENSDFSTATE', '2.3', 'G4ENSDFSTATE', 'G4ENSDFSTATEDATA'), # ENSDFSTATE + ('G4TENDL', '1.4', 'G4TENDL', 'G4PARTICLEHPDATA'), # TENDL +] + +source_urls = ['https://cern.ch/geant4-data/datasets'] +sources = ['%s.%s.tar.gz' % (x[2], x[1]) for x in local_datasets] +checksums = [ + {'G4NDL.4.7.tar.gz': '7e7d3d2621102dc614f753ad928730a290d19660eed96304a9d24b453d670309'}, + {'G4EMLOW.8.2.tar.gz': '3d7768264ff5a53bcb96087604bbe11c60b7fea90aaac8f7d1252183e1a8e427'}, + {'G4PhotonEvaporation.5.7.tar.gz': '761e42e56ffdde3d9839f9f9d8102607c6b4c0329151ee518206f4ee9e77e7e5'}, + {'G4RadioactiveDecay.5.6.tar.gz': '3886077c9c8e5a98783e6718e1c32567899eeb2dbb33e402d4476bc2fe4f0df1'}, + {'G4SAIDDATA.2.0.tar.gz': '1d26a8e79baa71e44d5759b9f55a67e8b7ede31751316a9e9037d80090c72e91'}, + {'G4PARTICLEXS.4.0.tar.gz': '9381039703c3f2b0fd36ab4999362a2c8b4ff9080c322f90b4e319281133ca95'}, + {'G4PII.1.3.tar.gz': '6225ad902675f4381c98c6ba25fc5a06ce87549aa979634d3d03491d6616e926'}, + {'G4RealSurface.2.2.tar.gz': '9954dee0012f5331267f783690e912e72db5bf52ea9babecd12ea22282176820'}, + {'G4ABLA.3.1.tar.gz': '7698b052b58bf1b9886beacdbd6af607adc1e099fc730ab6b21cf7f090c027ed'}, + {'G4INCL.1.0.tar.gz': '716161821ae9f3d0565fbf3c2cf34f4e02e3e519eb419a82236eef22c2c4367d'}, + {'G4ENSDFSTATE.2.3.tar.gz': '9444c5e0820791abd3ccaace105b0e47790fadce286e11149834e79c4a8e9203'}, + {'G4TENDL.1.4.tar.gz': '4b7274020cc8b4ed569b892ef18c2e088edcdb6b66f39d25585ccee25d9721e0'}, +] + +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-11.0.2-GCC-11.3.0.eb b/easybuild/easyconfigs/g/Geant4/Geant4-11.0.2-GCC-11.3.0.eb new file mode 100644 index 00000000000..7fe2129d33f --- /dev/null +++ b/easybuild/easyconfigs/g/Geant4/Geant4-11.0.2-GCC-11.3.0.eb @@ -0,0 +1,27 @@ +name = 'Geant4' +version = '11.0.2' + +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': '11.3.0'} + +github_account = 'Geant4' +source_urls = [GITHUB_SOURCE] +sources = [{'download_filename': 'v%(version)s.tar.gz', 'filename': SOURCELOWER_TAR_GZ}] +checksums = ['ddabe8d5cc3bd465c969f375cc43ee537ff33c17dc2943b8a4420cfa83cfcfcc'] + +builddependencies = [('CMake', '3.23.1')] +dependencies = [ + ('expat', '2.4.8'), + # (bugfix update of) recommended CLHEP version, + # see https://geant4-data.web.cern.ch/ReleaseNotes/ReleaseNotes.11.0.html + ('CLHEP', '2.4.5.3'), +] + +configopts = "-DEXPAT_LIBRARY=$EBROOTEXPAT/lib/libexpat.so -DEXPAT_INCLUDE_DIR=$EBROOTEXPAT/include" +configopts += " -DCLHEP_ROOT_DIR=$EBROOTCLHEP -DGEANT4_INSTALL_DATA=OFF" + +moduleclass = 'phys' diff --git a/easybuild/easyconfigs/g/Geant4/Geant4-11.1.2-GCC-11.3.0.eb b/easybuild/easyconfigs/g/Geant4/Geant4-11.1.2-GCC-11.3.0.eb new file mode 100644 index 00000000000..d535658d41f --- /dev/null +++ b/easybuild/easyconfigs/g/Geant4/Geant4-11.1.2-GCC-11.3.0.eb @@ -0,0 +1,48 @@ +name = 'Geant4' +version = '11.1.2' + +homepage = 'https://geant4.web.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': '11.3.0'} + +github_account = 'Geant4' +source_urls = [GITHUB_SOURCE] +sources = [{'download_filename': 'v%(version)s.tar.gz', 'filename': SOURCELOWER_TAR_GZ}] +patches = [ + 'Geant4-11.1.2_use_data_env_vars_from_Geant4-data_module.patch', +] +checksums = [ + {'geant4-11.1.2.tar.gz': 'b0d0ca79188f85e5a6a178cf8e5ebde16cfeb30959f8862517daab60e0ae2691'}, + {'Geant4-11.1.2_use_data_env_vars_from_Geant4-data_module.patch': + '822265b7cbcaacdffd28b1094786a3c94122aff63338e514d5d3810cdf9218a6'}, +] + +builddependencies = [ + ('CMake', '3.24.3'), +] + +dependencies = [ + ('expat', '2.4.8'), + # recommended CLHEP version, see https://geant4.web.cern.ch/download/release-notes/notes-v11.1.0.html + ('CLHEP', '2.4.6.2'), + ('Xerces-C++', '3.2.4'), + ('Qt5', '5.15.5'), + ('Geant4-data', '11.1', '', SYSTEM), +] + +_copts = [ + "-DGEANT4_INSTALL_DATA=OFF", + "-DGEANT4_USE_SYSTEM_ZLIB=ON", + "-DGEANT4_USE_SYSTEM_EXPAT=ON", + "-DGEANT4_USE_SYSTEM_CLHEP=ON", + "-DGEANT4_USE_QT=ON", + "-DGEANT4_USE_GDML=ON", + "-DGEANT4_USE_OPENGL_X11=ON", + "-DGEANT4_USE_RAYTRACER_X11=ON", +] +configopts = ' '.join(_copts) + +moduleclass = 'phys' diff --git a/easybuild/easyconfigs/g/Geant4/Geant4-11.1.2_use_data_env_vars_from_Geant4-data_module.patch b/easybuild/easyconfigs/g/Geant4/Geant4-11.1.2_use_data_env_vars_from_Geant4-data_module.patch new file mode 100644 index 00000000000..ce997291c17 --- /dev/null +++ b/easybuild/easyconfigs/g/Geant4/Geant4-11.1.2_use_data_env_vars_from_Geant4-data_module.patch @@ -0,0 +1,50 @@ +Make geant4make.sh and geant4.sh pick up the data dirs from the Geant4-data module + +Åke Sandgren, 2023-06-21 +diff -ru geant4-11.1.2.orig/cmake/Modules/G4ConfigureGNUMakeHelpers.cmake geant4-11.1.2/cmake/Modules/G4ConfigureGNUMakeHelpers.cmake +--- geant4-11.1.2.orig/cmake/Modules/G4ConfigureGNUMakeHelpers.cmake 2023-06-19 17:14:55.000000000 +0200 ++++ geant4-11.1.2/cmake/Modules/G4ConfigureGNUMakeHelpers.cmake 2023-06-21 16:07:17.147729642 +0200 +@@ -499,11 +499,12 @@ + endif() + + # - Resource file paths +- set(GEANT4_TC_DATASETS ) +- foreach(_ds ${GEANT4_EXPORTED_DATASETS}) +- _g4tc_setenv_command(_dssetenvcmd ${SHELL_FAMILY} ${${_ds}_ENVVAR} ${${_ds}_PATH}) +- set(GEANT4_TC_DATASETS "${GEANT4_TC_DATASETS}${_dssetenvcmd}\n") +- endforeach() ++# Take the env vars from the EB Geant4-data module ++# set(GEANT4_TC_DATASETS ) ++# foreach(_ds ${GEANT4_EXPORTED_DATASETS}) ++# _g4tc_setenv_command(_dssetenvcmd ${SHELL_FAMILY} ${${_ds}_ENVVAR} ${${_ds}_PATH}) ++# set(GEANT4_TC_DATASETS "${GEANT4_TC_DATASETS}${_dssetenvcmd}\n") ++# endforeach() + + set(GEANT4_TC_TOOLS_FONT_PATH "# FREETYPE SUPPORT NOT AVAILABLE") + if(GEANT4_USE_FREETYPE) +@@ -987,8 +988,8 @@ + + # - Set data paths + set(GEANT4_ENV_DATASETS ) +- _g4tc_setenv_command(_dssetenvcmd ${_shell} GEANT4_DATA_DIR ${GEANT4_DATA_DIR}) +- set(GEANT4_ENV_DATASETS "${GEANT4_ENV_DATASETS}${_dssetenvcmd}\n") ++# _g4tc_setenv_command(_dssetenvcmd ${_shell} GEANT4_DATA_DIR ${GEANT4_DATA_DIR}) ++# set(GEANT4_ENV_DATASETS "${GEANT4_ENV_DATASETS}${_dssetenvcmd}\n") + set(_dssetenvcmd " + # - Variables for individual datasets + # Uncomment the line and edit the path to the dataset if installed in not standard location.") +@@ -1072,10 +1073,10 @@ + + # - Set data paths + set(GEANT4_ENV_DATASETS ) +- _g4tc_setenv_command(_dssetenvcmd ${_shell} GEANT4_DATA_DIR ${GEANT4_DATA_DIRW}) +- set(GEANT4_ENV_DATASETS "${GEANT4_ENV_DATASETS}${_dssetenvcmd}\n") +- set(_dssetenvcmd "FOR /F %%i IN ( \"%GEANT4_DATA_DIR%\" ) DO set \"GEANT4_DATA_DIR=%%~fi\"") +- set(GEANT4_ENV_DATASETS "${GEANT4_ENV_DATASETS}${_dssetenvcmd}\n\n") ++# _g4tc_setenv_command(_dssetenvcmd ${_shell} GEANT4_DATA_DIR ${GEANT4_DATA_DIRW}) ++# set(GEANT4_ENV_DATASETS "${GEANT4_ENV_DATASETS}${_dssetenvcmd}\n") ++# set(_dssetenvcmd "FOR /F %%i IN ( \"%GEANT4_DATA_DIR%\" ) DO set \"GEANT4_DATA_DIR=%%~fi\"") ++# set(GEANT4_ENV_DATASETS "${GEANT4_ENV_DATASETS}${_dssetenvcmd}\n\n") + set(_dssetenvcmd " + rem - Variables for individual datasets + rem Uncomment the line and edit the path to the dataset if installed in not standard location.") diff --git a/easybuild/easyconfigs/g/GenomeTools/GenomeTools-1.6.2-GCC-12.2.0.eb b/easybuild/easyconfigs/g/GenomeTools/GenomeTools-1.6.2-GCC-12.2.0.eb new file mode 100644 index 00000000000..cf8fe304a78 --- /dev/null +++ b/easybuild/easyconfigs/g/GenomeTools/GenomeTools-1.6.2-GCC-12.2.0.eb @@ -0,0 +1,38 @@ +easyblock = 'ConfigureMake' + +name = 'GenomeTools' +version = '1.6.2' + +homepage = 'http://genometools.org' +description = "A comprehensive software library for efficient processing of structured genome annotations." + +toolchain = {'name': 'GCC', 'version': '12.2.0'} + +github_account = 'genometools' +source_urls = [GITHUB_LOWER_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['974825ddc42602bdce3d5fbe2b6e2726e7a35e81b532a0dc236f6e375d18adac'] + +# GenomeTools-1.6.2 has the following libraries bundled with it: +# bzip2-1.0.6, cgilua-5.1.3, expat-2.0.1, lpeg-0.10.2, lua-5.1.5, luafilesystem-1.5.0, md5-1.2, +# samtools-0.1.18, sqlite-3.33.0, tre-0.8.0, zlib-1.2.8 +# +# Bundled libraries can be globally disabled with the option useshared=yes +# However, it is preferable to use the bundled libraries due to the very old versions of some of them + +builddependencies = [('pkgconf', '1.9.3')] +dependencies = [('Pango', '1.50.12')] + +skipsteps = ['configure'] + +buildopts = 'useshared=no errorcheck=no cairo=yes threads=yes' +installopts = 'prefix=%(installdir)s' + +sanity_check_paths = { + 'files': ['bin/gt', 'bin/genometools-config', 'lib/libgenometools.a', 'lib/libgenometools.%s' % SHLIB_EXT], + 'dirs': ['include', 'share'], +} + +sanity_check_commands = ['gt -help'] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/g/GetOrganelle/GetOrganelle-1.7.7.0-foss-2022a.eb b/easybuild/easyconfigs/g/GetOrganelle/GetOrganelle-1.7.7.0-foss-2022a.eb new file mode 100644 index 00000000000..1dee0e28933 --- /dev/null +++ b/easybuild/easyconfigs/g/GetOrganelle/GetOrganelle-1.7.7.0-foss-2022a.eb @@ -0,0 +1,43 @@ +easyblock = 'PythonPackage' + +name = 'GetOrganelle' +version = '1.7.7.0' + +homepage = 'https://github.com/Kinggerm/GetOrganelle' +description = """This toolkit assemblies organelle genome from genomic skimming data.""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +source_urls = ['https://github.com/Kinggerm/GetOrganelle/archive/'] +sources = ['%(version)s.tar.gz'] +checksums = ['dd351b5cd33688adfcd8bff9794ae0cc0ce01a572dac2bcf6c9d7db77b3e4883'] + +dependencies = [ + ('Python', '3.10.4'), + ('Bandage', '0.9.0'), + ('SciPy-bundle', '2022.05'), + ('sympy', '1.10.1'), + ('SPAdes', '3.15.5'), + ('Bowtie2', '2.4.5'), + ('BLAST+', '2.13.0'), + ('Perl', '5.34.1'), + ('matplotlib', '3.5.2') +] + +download_dep_fail = True +use_pip = True + +options = {'modulename': False} + +fix_python_shebang_for = ['bin/*.py'] + +sanity_pip_check = True + +sanity_check_commands = ["get_organelle_from_reads.py -h"] + +sanity_check_paths = { + 'files': ['bin/check_annotations.py', 'bin/get_organelle_from_reads.py', 'bin/slim_graph.py'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/g/Gurobi/Gurobi-10.0.1-GCCcore-11.3.0.eb b/easybuild/easyconfigs/g/Gurobi/Gurobi-10.0.1-GCCcore-11.3.0.eb new file mode 100644 index 00000000000..16411d9bf00 --- /dev/null +++ b/easybuild/easyconfigs/g/Gurobi/Gurobi-10.0.1-GCCcore-11.3.0.eb @@ -0,0 +1,43 @@ +name = 'Gurobi' +version = '10.0.1' + +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': '11.3.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 = [ + {'gurobi10.0.1_linux64.tar.gz': 'a0b551156df2c94107b3428cae278716a0a6c913f63ac132573852b9725b6c59'}, + {'Gurobi-9.0.1_use-eb-python-gurobi-shell.patch': + 'b4a998182d05f969d1de519f4746ac9e0c6646dd35233231b6ab5963dfa67d01'}, +] + +builddependencies = [ + ('binutils', '2.38'), +] + +dependencies = [ + ('Python', '3.10.4'), +] + +# remove bundled Python interpreter in favour of the dependency in EB +postinstallcmds = ['rm %(installdir)s/bin/python*'] + +# license is mandatory for installation +# use EB_GUROBI_LICENSE_FILE environment variable, or +# uncomment and modify the following variable: +# license_file = '/path/to/my-license-file' +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/gemelli/gemelli-0.0.9-foss-2022a.eb b/easybuild/easyconfigs/g/gemelli/gemelli-0.0.9-foss-2022a.eb new file mode 100644 index 00000000000..3282ecb61c4 --- /dev/null +++ b/easybuild/easyconfigs/g/gemelli/gemelli-0.0.9-foss-2022a.eb @@ -0,0 +1,48 @@ +easyblock = 'PythonBundle' + +name = 'gemelli' +version = '0.0.9' + +homepage = 'https://github.com/biocore/gemelli' +description = """ +Gemelli is a tool box for running both Robust Aitchison PCA (RPCA) and +Compositional Tensor Factorization (CTF) on sparse compositional omics +datasets. +""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), + ('scikit-learn', '1.1.2'), + ('scikit-bio', '0.5.7'), + ('h5py', '3.7.0'), +] + +exts_list = [ + ('tax2tree', '1.1', { + 'modulename': 't2t', + 'checksums': ['f1d28fb99c41bb10cc3c06bfd232891b0ad713f674a5c2ac2991dd99ed512da1'], + }), + ('iow', '1.0.6', { + 'modulename': 'bp', + 'preinstallopts': """sed -i "/'nose /d" setup.py && """, + 'checksums': ['ac4f579a0881f1c827f75033a304341ae91d3a527cc6aed3fea53749f1b9951c'], + }), + ('biom-format', '2.1.15', { + 'modulename': 'biom', + 'checksums': ['3bda2096e663dc1cb6f90f51b394da0838b9be5164a44370c134ce5b3b2a4dd3'], + }), + (name, version, { + 'preinstallopts': """sed -i "/'nose /d" setup.py && """, + 'checksums': ['e4fcf3087c12d8bd21397c1f3a88723282c294184b2ba7b899d5389305ad4729'], + }), +] + +use_pip = True +sanity_pip_check = True + +sanity_check_commands = ['gemelli --help'] + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/g/gengetopt/gengetopt-2.23-GCCcore-11.3.0.eb b/easybuild/easyconfigs/g/gengetopt/gengetopt-2.23-GCCcore-11.3.0.eb new file mode 100644 index 00000000000..09ec20b23bb --- /dev/null +++ b/easybuild/easyconfigs/g/gengetopt/gengetopt-2.23-GCCcore-11.3.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': '11.3.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_XZ] +checksums = ['b941aec9011864978dd7fdeb052b1943535824169d2aa2b0e7eae9ab807584ac'] + +builddependencies = [ + ('binutils', '2.38'), + ('makeinfo', '6.8'), +] + +sanity_check_paths = { + 'files': ['bin/gengetopt'], + 'dirs': ['share'], +} + +sanity_check_commands = ["gengetopt --help"] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/g/gfbf/gfbf-2023a.eb b/easybuild/easyconfigs/g/gfbf/gfbf-2023a.eb new file mode 100644 index 00000000000..e36028da349 --- /dev/null +++ b/easybuild/easyconfigs/g/gfbf/gfbf-2023a.eb @@ -0,0 +1,20 @@ +easyblock = 'Toolchain' + +name = 'gfbf' +version = '2023a' + +homepage = '(none)' +description = """GNU Compiler Collection (GCC) based compiler toolchain, including + FlexiBLAS (BLAS and LAPACK support) and (serial) FFTW.""" + +toolchain = SYSTEM + +local_gccver = '12.3.0' + +dependencies = [ + ('GCC', local_gccver), + ('FlexiBLAS', '3.3.1', '', ('GCC', local_gccver)), + ('FFTW', '3.3.10', '', ('GCC', local_gccver)), +] + +moduleclass = 'toolchain' diff --git a/easybuild/easyconfigs/g/gffread/gffread-0.12.7-GCCcore-12.2.0.eb b/easybuild/easyconfigs/g/gffread/gffread-0.12.7-GCCcore-12.2.0.eb new file mode 100644 index 00000000000..9c763a7f5db --- /dev/null +++ b/easybuild/easyconfigs/g/gffread/gffread-0.12.7-GCCcore-12.2.0.eb @@ -0,0 +1,34 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +easyblock = 'MakeCp' + +name = 'gffread' +version = '0.12.7' + +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': '12.2.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/gpertea/%(namelower)s/releases/download/v%(version)s/'] +sources = [SOURCE_TAR_GZ] +checksums = ['bfde1c857495e578f5b3af3c007a9aa40593e69450eafcc6a42c3e8ef08ed1f5'] + +builddependencies = [('binutils', '2.39')] + +buildopts = " release" + +files_to_copy = [ + (['%(name)s'], 'bin'), + 'LICENSE', +] + +sanity_check_paths = { + 'files': ['bin/%(name)s'], + 'dirs': [] +} + +sanity_check_commands = ['%(name)s'] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/g/git/git-2.41.0-GCCcore-12.3.0-nodocs.eb b/easybuild/easyconfigs/g/git/git-2.41.0-GCCcore-12.3.0-nodocs.eb new file mode 100644 index 00000000000..c327d507709 --- /dev/null +++ b/easybuild/easyconfigs/g/git/git-2.41.0-GCCcore-12.3.0-nodocs.eb @@ -0,0 +1,43 @@ +easyblock = 'ConfigureMake' + +name = 'git' +version = '2.41.0' +versionsuffix = '-nodocs' + +homepage = 'https://git-scm.com' +description = """Git is a free and open source distributed version control system designed +to handle everything from small to very large projects with speed and efficiency.""" + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} + +source_urls = ['https://github.com/git/git/archive'] +sources = ['v%(version)s.tar.gz'] +checksums = ['4f0b74bbde2800b00d3a50a7f389bcf1d59f1265b6986c00048d8ba4892ab01a'] + +builddependencies = [ + ('binutils', '2.40'), + ('Autotools', '20220317'), +] + +dependencies = [ + ('cURL', '8.0.1'), + ('expat', '2.5.0'), + ('gettext', '0.21.1'), + ('Perl', '5.36.1'), + ('OpenSSL', '1.1', '', SYSTEM), +] + +preconfigopts = 'make configure && ' + +# Work around git build system bug. If LIBS contains -lpthread, then configure +# will not append -lpthread to LDFLAGS, but Makefile ignores LIBS. +configopts = "--with-perl=${EBROOTPERL}/bin/perl --enable-pthreads='-lpthread'" + +postinstallcmds = ['cd contrib/subtree; make install'] + +sanity_check_paths = { + 'files': ['bin/git'], + 'dirs': ['libexec/git-core', 'share'], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/g/glew/glew-2.2.0-GCCcore-11.3.0-osmesa.eb b/easybuild/easyconfigs/g/glew/glew-2.2.0-GCCcore-11.3.0-osmesa.eb new file mode 100644 index 00000000000..11e014811b7 --- /dev/null +++ b/easybuild/easyconfigs/g/glew/glew-2.2.0-GCCcore-11.3.0-osmesa.eb @@ -0,0 +1,43 @@ +easyblock = 'ConfigureMake' +versionsuffix = '-osmesa' +# available: -glx, -osmesa, -egl +# 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': '11.3.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.38')] + +dependencies = [ + ('Mesa', '22.0.3'), + ('X11', '20220504'), +] + +local_system = 'SYSTEM=linux`echo %(versionsuffix)s|sed -e "s/-glx//g"`' +buildopts = local_system + +skipsteps = ['configure'] + +preinstallopts = 'GLEW_PREFIX=%(installdir)s GLEW_DEST=%(installdir)s ' +install_cmd = 'make install.all ' + local_system + +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/gompi/gompi-2023a.eb b/easybuild/easyconfigs/g/gompi/gompi-2023a.eb new file mode 100644 index 00000000000..142e0492f73 --- /dev/null +++ b/easybuild/easyconfigs/g/gompi/gompi-2023a.eb @@ -0,0 +1,20 @@ +easyblock = 'Toolchain' + +name = 'gompi' +version = '2023a' + +homepage = '(none)' +description = """GNU Compiler Collection (GCC) based compiler toolchain, + including OpenMPI for MPI support.""" + +toolchain = SYSTEM + +local_gccver = '12.3.0' + +# compiler toolchain dependencies +dependencies = [ + ('GCC', local_gccver), # includes both GCC and binutils + ('OpenMPI', '4.1.5', '', ('GCC', local_gccver)), +] + +moduleclass = 'toolchain' diff --git a/easybuild/easyconfigs/g/gperf/gperf-3.1-GCCcore-12.3.0.eb b/easybuild/easyconfigs/g/gperf/gperf-3.1-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..72563a3b1cd --- /dev/null +++ b/easybuild/easyconfigs/g/gperf/gperf-3.1-GCCcore-12.3.0.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'gperf' +version = '3.1' + +homepage = 'https://www.gnu.org/software/gperf/' +description = """ + GNU gperf is a perfect hash function generator. For a given list of strings, + it produces a hash function and hash table, in form of C or C++ code, for + looking up a value depending on the input string. The hash function is + perfect, which means that the hash table has no collisions, and the hash + table lookup needs a single string comparison only. +""" + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['588546b945bba4b70b6a3a616e80b4ab466e3f33024a352fc2198112cdbb3ae2'] + +builddependencies = [ + ('binutils', '2.40'), +] + +sanity_check_paths = { + 'files': ['bin/gperf'], + 'dirs': [], +} + +sanity_check_commands = ["gperf --help"] + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/g/graphite2/graphite2-1.3.14-GCCcore-10.2.0.eb b/easybuild/easyconfigs/g/graphite2/graphite2-1.3.14-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..0a3fc8da20e --- /dev/null +++ b/easybuild/easyconfigs/g/graphite2/graphite2-1.3.14-GCCcore-10.2.0.eb @@ -0,0 +1,27 @@ +easyblock = 'CMakeMake' + +name = 'graphite2' +version = '1.3.14' + +homepage = 'https://scripts.sil.org/cms/scripts/page.php?site_id=projects&item_id=graphite_home' +description = """Graphite is a "smart font" system developed specifically to + handle the complexities of lesser-known languages of the world.""" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +source_urls = ['https://github.com/silnrsi/graphite/archive/'] +sources = ['%(version)s.zip'] +checksums = ['36e15981af3bf7a3ca3daf53295c8ffde04cf7d163e3474e4d0836e2728b4149'] + +builddependencies = [ + ('CMake', '3.18.4'), + ('binutils', '2.35'), +] + +sanity_check_paths = { + 'files': ['bin/gr2fonttest'] + + ['lib/lib%%(name)s.%s' % x for x in [SHLIB_EXT, 'la']], + 'dirs': ['include/%(name)s', 'share'] +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/h/HDF5/HDF5-1.12.2-NVHPC-22.7-CUDA-11.7.0-serial.eb b/easybuild/easyconfigs/h/HDF5/HDF5-1.12.2-NVHPC-22.7-CUDA-11.7.0-serial.eb new file mode 100644 index 00000000000..292ed3d9084 --- /dev/null +++ b/easybuild/easyconfigs/h/HDF5/HDF5-1.12.2-NVHPC-22.7-CUDA-11.7.0-serial.eb @@ -0,0 +1,23 @@ +name = 'HDF5' +# Note: Odd minor releases are only RCs and should not be used. +version = '1.12.2' +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': 'NVHPC', 'version': '22.7-CUDA-11.7.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 = ['2a89af03d56ce7502dcae18232c241281ad1773561ec00c0f0e8ee2463910f14'] + +dependencies = [ + ('zlib', '1.2.12'), + ('Szip', '2.1.1'), +] + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/h/HDF5/HDF5-1.12.2-nvompi-2022.07.eb b/easybuild/easyconfigs/h/HDF5/HDF5-1.12.2-nvompi-2022.07.eb new file mode 100644 index 00000000000..753cb09454a --- /dev/null +++ b/easybuild/easyconfigs/h/HDF5/HDF5-1.12.2-nvompi-2022.07.eb @@ -0,0 +1,22 @@ +name = 'HDF5' +# Note: Odd minor releases are only RCs and should not be used. +version = '1.12.2' + +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': 'nvompi', 'version': '2022.07'} +toolchainopts = {'pic': True, 'usempi': True} + +source_urls = ['https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-%(version_major_minor)s/hdf5-%(version)s/src'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['2a89af03d56ce7502dcae18232c241281ad1773561ec00c0f0e8ee2463910f14'] + +dependencies = [ + ('zlib', '1.2.12'), + ('Szip', '2.1.1'), +] + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/h/HMMER/HMMER-3.3.2-gompi-2022b.eb b/easybuild/easyconfigs/h/HMMER/HMMER-3.3.2-gompi-2022b.eb new file mode 100644 index 00000000000..e5a79c3da27 --- /dev/null +++ b/easybuild/easyconfigs/h/HMMER/HMMER-3.3.2-gompi-2022b.eb @@ -0,0 +1,79 @@ +## +# EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Nils Christian , +# Fotis Georgatos +# Updated by: Filip Kružík (INUITS) +# License:: MIT/GPL +# $Id$ +# +# This work implements a part of the HPCBIOS project and is a +# component of the policy: +# https://hpcbios.readthedocs.org/en/latest/HPCBIOS_2012-94.html +## + +easyblock = 'ConfigureMake' + +name = 'HMMER' +version = '3.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': 'gompi', 'version': '2022b'} + +source_urls = [ + 'http://eddylab.org/software/hmmer/', + 'http://eddylab.org/software/hmmer%(version_major)s/%(version)s/', +] +sources = [SOURCELOWER_TAR_GZ] +patches = ['%(name)s-%(version)s_fix_perl.patch'] +checksums = [ + {'hmmer-3.3.2.tar.gz': '92fee9b5efe37a5276352d3502775e7c46e9f7a0ee45a331eacb2a0cac713c69'}, + {'HMMER-3.3.2_fix_perl.patch': '9f04123ca33118549b94adf6a07df9ab1cb7b680dd706d7b76ee0794f2def22d'}, +] + +builddependencies = [ + ('Python', '3.10.8'), + ('Perl', '5.36.0'), +] + +configopts = '--enable-mpi' + +buildopts = ' V=1 ' + +testopts = buildopts +runtest = 'check' + +installopts = ' && cd easel && make install' + +local_bin_files = ['alimask', 'esl-afetch', 'esl-alimanip', 'esl-alimap', 'esl-alimask', + 'esl-alimerge', 'esl-alipid', 'esl-alirev', 'esl-alistat', 'esl-compalign', + 'esl-compstruct', 'esl-construct', 'esl-histplot', 'esl-mask', 'esl-reformat', + 'esl-selectn', 'esl-seqrange', 'esl-seqstat', 'esl-sfetch', 'esl-shuffle', + 'esl-ssdraw', 'esl-translate', 'esl-weight', 'hmmalign', 'hmmbuild', + 'hmmconvert', 'hmmemit', 'hmmfetch', 'hmmlogo', 'hmmpgmd', 'hmmpress', + 'hmmscan', 'hmmsearch', 'hmmsim', 'hmmstat', 'jackhmmer', 'makehmmerdb', + 'nhmmer', 'nhmmscan', 'phmmer'] + +sanity_check_paths = { + 'files': ["bin/%s" % x for x in local_bin_files], + 'dirs': ['bin', 'share'], +} + +sanity_check_commands = [ + "esl-construct -h", + "hmmsearch -h", + "nhmmer -h", +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/h/HOOMD-blue/HOOMD-blue-4.0.1-foss-2022a.eb b/easybuild/easyconfigs/h/HOOMD-blue/HOOMD-blue-4.0.1-foss-2022a.eb new file mode 100644 index 00000000000..f576061ecc4 --- /dev/null +++ b/easybuild/easyconfigs/h/HOOMD-blue/HOOMD-blue-4.0.1-foss-2022a.eb @@ -0,0 +1,61 @@ +easyblock = 'CMakeMake' + +name = 'HOOMD-blue' +version = "4.0.1" + +homepage = "https://bitbucket.org/glotzer/hoomd-blue" +description = """HOOMD-blue is a general-purpose particle simulation +toolkit, implementing molecular dynamics and hard particle Monte Carlo +optimized for fast execution on both GPUs and CPUs.""" + +toolchain = {'name': 'foss', 'version': '2022a'} +toolchainopts = {'usempi': True} + +github_account = 'glotzerlab' +source_urls = [GITHUB_LOWER_RELEASE] +sources = ['hoomd-%(version)s.tar.gz'] +checksums = ['b63dd8debb96f9c530983bd54ecbafa8fd07e017ded3ea64604cfb1f41a644b8'] + +builddependencies = [ + ('CMake', '3.24.3'), + ('pybind11', '2.9.2'), +] + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), + ('tbb', '2021.5.0'), + ('Eigen', '3.4.0'), + ('Cereal', '1.3.2', '', SYSTEM), +] + +_copts = [ + '-DENABLE_GPU=OFF', + '-DENABLE_MPI=ON', + '-DBUILD_MD=ON', + '-DBUILD_METAL=ON', + '-DENABLE_TBB=ON', + '-DBUILD_TESTING=ON', + '-DPYTHON_EXECUTABLE=$EBROOTPYTHON/bin/python', +] +configopts = ' '.join(_copts) + +postinstallcmds = [ + 'ln -s hoomd/include %(installdir)s/include', +] + +pretestopts = "OMPI_MCA_rmaps_base_oversubscribe=1 " +runtest = 'test' + +sanity_check_paths = { + 'files': ['hoomd/__init__.py', 'hoomd/include/hoomd/Compute.h'], + 'dirs': ['lib/cmake'], +} + +sanity_check_commands = [ + "python -c 'import hoomd'", +] + +modextrapaths = {'PYTHONPATH': ''} + +moduleclass = 'phys' diff --git a/easybuild/easyconfigs/h/HPL/HPL-2.3-foss-2023a.eb b/easybuild/easyconfigs/h/HPL/HPL-2.3-foss-2023a.eb new file mode 100644 index 00000000000..c43eaacea0d --- /dev/null +++ b/easybuild/easyconfigs/h/HPL/HPL-2.3-foss-2023a.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': '2023a'} +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-2023a.eb b/easybuild/easyconfigs/h/HPL/HPL-2.3-intel-2023a.eb new file mode 100644 index 00000000000..2d3af45a7c4 --- /dev/null +++ b/easybuild/easyconfigs/h/HPL/HPL-2.3-intel-2023a.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': '2023a'} +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/Highway/Highway-1.0.4-GCCcore-11.3.0.eb b/easybuild/easyconfigs/h/Highway/Highway-1.0.4-GCCcore-11.3.0.eb new file mode 100644 index 00000000000..6b5785ddb81 --- /dev/null +++ b/easybuild/easyconfigs/h/Highway/Highway-1.0.4-GCCcore-11.3.0.eb @@ -0,0 +1,34 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# Author: Denis Kristak +easyblock = 'CMakeMake' + +name = 'Highway' +version = '1.0.4' + +homepage = 'https://github.com/google/highway' + +description = """Highway is a C++ library for SIMD (Single Instruction, Multiple Data), i.e. applying the same +operation to 'lanes'.""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +source_urls = ['https://github.com/google/highway/archive/refs/tags/'] +sources = ['%(version)s.tar.gz'] +checksums = ['faccd343935c9e98afd1016e9d20e0b8b89d908508d1af958496f8c2d3004ac2'] + +builddependencies = [ + ('binutils', '2.38'), + ('CMake', '3.23.1'), + ('googletest', '1.11.0'), +] + +configopts = "-DHWY_SYSTEM_GTEST=ON" + +runtest = "test" + +sanity_check_paths = { + 'files': ['lib/libhwy.a'], + 'dirs': ['include/hwy'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/h/Horovod/Horovod-0.25.0-foss-2021a-CUDA-11.3.1-PyTorch-1.10.0.eb b/easybuild/easyconfigs/h/Horovod/Horovod-0.25.0-foss-2021a-CUDA-11.3.1-PyTorch-1.10.0.eb new file mode 100644 index 00000000000..3fd76cfa7b5 --- /dev/null +++ b/easybuild/easyconfigs/h/Horovod/Horovod-0.25.0-foss-2021a-CUDA-11.3.1-PyTorch-1.10.0.eb @@ -0,0 +1,51 @@ +easyblock = 'PythonBundle' + +name = 'Horovod' +version = '0.25.0' +local_pt_version = '1.10.0' +local_cuda_suffix = '-CUDA-%(cudaver)s' +versionsuffix = local_cuda_suffix + '-PyTorch-%s' % local_pt_version + +homepage = 'https://github.com/uber/horovod' +description = """Horovod is a distributed training framework for TensorFlow, PyTorch and MXnet. +This build only has PyTorch enabled.""" + +toolchain = {'name': 'foss', 'version': '2021a'} + +builddependencies = [ + ('CMake', '3.20.1'), + ('flatbuffers', '2.0.0'), +] +dependencies = [ + ('Python', '3.9.5'), + ('PyYAML', '5.4.1'), + ('CUDA', '11.3.1', '', SYSTEM), + ('NCCL', '2.10.3', local_cuda_suffix), + ('PyTorch', local_pt_version, local_cuda_suffix), +] + +use_pip = True +sanity_pip_check = True + +preinstallopts = 'HOROVOD_WITH_MPI=1 HOROVOD_GPU_ALLREDUCE=NCCL HOROVOD_GPU_BROADCAST=NCCL ' +preinstallopts += 'HOROVOD_WITHOUT_TENSORFLOW=1 HOROVOD_WITH_PYTORCH=1 HOROVOD_WITHOUT_MXNET=1 ' + +parallel = 1 # Bug in CMake causes a race condition on horovod_cuda_kernels_generated_cuda_kernels.cu.o.NVCC-depend + +exts_list = [ + ('cloudpickle', '2.1.0', { + 'checksums': ['bb233e876a58491d9590a676f93c7a5473a08f747d5ab9df7f9ce564b3e7938e'], + }), + ('horovod', version, { + 'checksums': ['bc9fed57b67c1b55259671d2439cdbc93aa897ea6e5da459e11e7556972b2355'], + }), +] + +sanity_check_paths = { + 'files': ['bin/horovodrun'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = ["horovodrun --help"] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/h/help2man/help2man-1.49.3-GCCcore-11.4.0.eb b/easybuild/easyconfigs/h/help2man/help2man-1.49.3-GCCcore-11.4.0.eb new file mode 100644 index 00000000000..701913a5ae0 --- /dev/null +++ b/easybuild/easyconfigs/h/help2man/help2man-1.49.3-GCCcore-11.4.0.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'help2man' +version = '1.49.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.4.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_XZ] +checksums = ['4d7e4fdef2eca6afe07a2682151cea78781e0a4e8f9622142d9f70c083a2fd4f'] + +builddependencies = [ + # use same binutils version that was used when building GCC toolchain + ('binutils', '2.40', '', SYSTEM), +] + +sanity_check_paths = { + 'files': ['bin/help2man'], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/h/hifiasm/hifiasm-0.19.5-GCCcore-11.2.0.eb b/easybuild/easyconfigs/h/hifiasm/hifiasm-0.19.5-GCCcore-11.2.0.eb new file mode 100644 index 00000000000..8d271908c78 --- /dev/null +++ b/easybuild/easyconfigs/h/hifiasm/hifiasm-0.19.5-GCCcore-11.2.0.eb @@ -0,0 +1,42 @@ +# Author: Jasper Grimm (UoY) +# Update: Sebastien Moretti (SIB) + +easyblock = 'MakeCp' + +name = 'hifiasm' +version = '0.19.5' + +homepage = 'https://github.com/chhylp123/hifiasm' +description = """Hifiasm: a haplotype-resolved assembler for accurate Hifi reads.""" +# software_license = 'LicenseMIT' + +toolchain = {'name': 'GCCcore', 'version': '11.2.0'} + +github_account = 'chhylp123' +source_urls = [GITHUB_SOURCE] +sources = ['%(version)s.tar.gz'] +checksums = ['18ed6889972e38d0088ccbdafee90756158977d6b1e1b6e56f522b870d71c072'] + +builddependencies = [ + ('binutils', '2.37'), +] + +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.9.1-GCCcore-12.3.0.eb b/easybuild/easyconfigs/h/hwloc/hwloc-2.9.1-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..f3d054d78d2 --- /dev/null +++ b/easybuild/easyconfigs/h/hwloc/hwloc-2.9.1-GCCcore-12.3.0.eb @@ -0,0 +1,45 @@ +easyblock = 'ConfigureMake' + +name = 'hwloc' +version = '2.9.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': '12.3.0'} + +source_urls = ['https://www.open-mpi.org/software/hwloc/v%(version_major_minor)s/downloads/'] +sources = [SOURCE_TAR_GZ] +checksums = ['a440e2299f7451dc10a57ddbfa3f116c2a6c4be1bb97c663edd3b9c7b3b3b4cf'] + +builddependencies = [ + ('binutils', '2.40'), +] + +dependencies = [ + ('numactl', '2.0.16'), + ('libxml2', '2.11.4'), + ('libpciaccess', '0.17'), +] + +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/i/IQ-TREE/IQ-TREE-2.2.2.6-gompi-2022a.eb b/easybuild/easyconfigs/i/IQ-TREE/IQ-TREE-2.2.2.6-gompi-2022a.eb new file mode 100644 index 00000000000..9f8e8abad12 --- /dev/null +++ b/easybuild/easyconfigs/i/IQ-TREE/IQ-TREE-2.2.2.6-gompi-2022a.eb @@ -0,0 +1,57 @@ +# Updated to v2.1.3 by +# R.QIAO +# DeepThought, Flinders University + +easyblock = 'CMakeMake' + +name = 'IQ-TREE' +version = '2.2.2.6' + +# HTTPS is not working +homepage = 'http://www.iqtree.org/' +description = """Efficient phylogenomic software by maximum likelihood""" + +toolchain = {'name': 'gompi', 'version': '2022a'} +# Including 'usempi' will take precedence and override IQTREE_FLAGS and produces only 'iqtree-mpi' binary + +source_urls = ['https://github.com/iqtree/iqtree2/archive/'] +sources = ['v%(version)s.tar.gz'] +patches = [ + 'IQ-TREE-2.1.2_use_EB_LSD2.patch', + 'IQ-TREE-2.2.1_fix-mpi.patch', +] +checksums = [ + {'v2.2.2.6.tar.gz': 'f5d10c033f2ed1c81bb473f572c7a9fe72a275a48e2e93ad74e5f1c3d32fa8b9'}, + {'IQ-TREE-2.1.2_use_EB_LSD2.patch': 'daa2ab12d44e26eb5607c4ed6acb9d970e230a83dabcf21461f37bc48263b816'}, + {'IQ-TREE-2.2.1_fix-mpi.patch': '9ead6808efd11d4c01dd265cca6094cffd6377746d3b2fc84b43d2faeee0777c'}, +] + +builddependencies = [ + ('CMake', '3.24.3'), + ('Eigen', '3.4.0'), +] +dependencies = [ + ('zlib', '1.2.12'), + ('Boost', '1.79.0'), + ('LSD2', '2.3'), +] + +local_conf_opts = ' -DUSE_LSD2=ON ' +configopts = [ + '-DIQTREE_FLAGS=omp' + local_conf_opts, + '-DIQTREE_FLAGS=mpi -DCMAKE_C_COMPILER="$MPICC" -DCMAKE_CXX_COMPILER="$MPICXX"' + local_conf_opts, +] + +sanity_check_paths = { + 'files': ['bin/iqtree2', 'bin/iqtree2-mpi'], + 'dirs': [], +} + +sanity_check_commands = [ + "iqtree2 --help", + "mkdir -p $TMPDIR/{test-omp,test-mpi}", + "cd $TMPDIR/test-omp && cp -a %(installdir)s/example.phy . && iqtree2 -s example.phy -redo", + "cd $TMPDIR/test-mpi && cp -a %(installdir)s/example.phy . && mpirun -np 1 iqtree2-mpi -s example.phy -redo", +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/i/IQ-TREE/IQ-TREE-2.2.2.6-gompi-2022b.eb b/easybuild/easyconfigs/i/IQ-TREE/IQ-TREE-2.2.2.6-gompi-2022b.eb new file mode 100644 index 00000000000..bc6834e8e80 --- /dev/null +++ b/easybuild/easyconfigs/i/IQ-TREE/IQ-TREE-2.2.2.6-gompi-2022b.eb @@ -0,0 +1,57 @@ +# Updated to v2.1.3 by +# R.QIAO +# DeepThought, Flinders University + +easyblock = 'CMakeMake' + +name = 'IQ-TREE' +version = '2.2.2.6' + +# HTTPS is not working +homepage = 'http://www.iqtree.org/' +description = """Efficient phylogenomic software by maximum likelihood""" + +toolchain = {'name': 'gompi', 'version': '2022b'} +# Including 'usempi' will take precedence and override IQTREE_FLAGS and produces only 'iqtree-mpi' binary + +source_urls = ['https://github.com/iqtree/iqtree2/archive/'] +sources = ['v%(version)s.tar.gz'] +patches = [ + 'IQ-TREE-2.1.2_use_EB_LSD2.patch', + 'IQ-TREE-2.2.1_fix-mpi.patch', +] +checksums = [ + {'v2.2.2.6.tar.gz': 'f5d10c033f2ed1c81bb473f572c7a9fe72a275a48e2e93ad74e5f1c3d32fa8b9'}, + {'IQ-TREE-2.1.2_use_EB_LSD2.patch': 'daa2ab12d44e26eb5607c4ed6acb9d970e230a83dabcf21461f37bc48263b816'}, + {'IQ-TREE-2.2.1_fix-mpi.patch': '9ead6808efd11d4c01dd265cca6094cffd6377746d3b2fc84b43d2faeee0777c'}, +] + +builddependencies = [ + ('CMake', '3.24.3'), + ('Eigen', '3.4.0'), +] +dependencies = [ + ('zlib', '1.2.12'), + ('Boost', '1.81.0'), + ('LSD2', '2.4.1'), +] + +local_conf_opts = ' -DUSE_LSD2=ON ' +configopts = [ + '-DIQTREE_FLAGS=omp' + local_conf_opts, + '-DIQTREE_FLAGS=mpi -DCMAKE_C_COMPILER="$MPICC" -DCMAKE_CXX_COMPILER="$MPICXX"' + local_conf_opts, +] + +sanity_check_paths = { + 'files': ['bin/iqtree2', 'bin/iqtree2-mpi'], + 'dirs': [], +} + +sanity_check_commands = [ + "iqtree2 --help", + "mkdir -p $TMPDIR/{test-omp,test-mpi}", + "cd $TMPDIR/test-omp && cp -a %(installdir)s/example.phy . && iqtree2 -s example.phy -redo", + "cd $TMPDIR/test-mpi && cp -a %(installdir)s/example.phy . && mpirun -np 1 iqtree2-mpi -s example.phy -redo", +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/i/ISA-L/ISA-L-2.30.0-GCCcore-12.2.0.eb b/easybuild/easyconfigs/i/ISA-L/ISA-L-2.30.0-GCCcore-12.2.0.eb new file mode 100644 index 00000000000..e8130fe40ec --- /dev/null +++ b/easybuild/easyconfigs/i/ISA-L/ISA-L-2.30.0-GCCcore-12.2.0.eb @@ -0,0 +1,46 @@ +# Author: Jasper Grimm (UoY) + +easyblock = 'ConfigureMake' + +name = 'ISA-L' +version = '2.30.0' + +homepage = 'https://github.com/intel/isa-l' +description = "Intelligent Storage Acceleration Library" + +toolchain = {'name': 'GCCcore', 'version': '12.2.0'} + +github_account = 'intel' +source_urls = [GITHUB_LOWER_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['bcf592c04fdfa19e723d2adf53d3e0f4efd5b956bb618fed54a1108d76a6eb56'] + +builddependencies = [ + ('Autotools', '20220317'), + ('binutils', '2.39'), + ('pkgconf', '1.9.3'), +] + +dependencies = [('NASM', '2.15.05')] + +preconfigopts = 'autoreconf -i -f &&' + +runtest = 'check' + +local_bins = ['bin/igzip'] +local_includes = ['include/%(namelower)s.h'] +local_includes += ['include/isa-l/%s.h' % i for i in ['crc64', 'crc', 'erasure_code', 'gf_vect_mul', 'igzip_lib', + 'mem_routines', 'raid', 'test', 'types']] +local_libs = ['lib/libisal.%s' % k for k in ['a', 'la', SHLIB_EXT]] + +sanity_check_paths = { + 'files': local_bins + local_includes + local_libs, + 'dirs': ['bin', 'include', 'lib', 'share'], +} + +sanity_check_commands = [ + "igzip --help", + "igzip --version", +] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/i/ITK/ITK-5.2.1-fosscuda-2020b.eb b/easybuild/easyconfigs/i/ITK/ITK-5.2.1-fosscuda-2020b.eb new file mode 100644 index 00000000000..0d9fe14e51c --- /dev/null +++ b/easybuild/easyconfigs/i/ITK/ITK-5.2.1-fosscuda-2020b.eb @@ -0,0 +1,60 @@ +# Contributors: +# Fenglai Liu (fenglai@accre.vanderbilt.edu) - Vanderbilt University +# Alex Domingo (alex.domingo.toro@vub.be) - Vrije Universiteit Brussel (VUB) +# Denis Kristak (INUITS) +# +easyblock = 'CMakeMake' + +name = 'ITK' +version = '5.2.1' + +homepage = 'https://itk.org' +description = """Insight Segmentation and Registration Toolkit (ITK) provides + an extensive suite of software tools for registering and segmenting + multidimensional imaging data.""" + +toolchain = {'name': 'fosscuda', 'version': '2020b'} +toolchainopts = {'pic': True, 'cstd': 'c++11'} + +github_account = 'InsightSoftwareConsortium' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['6022b2b64624b8bcec3333fe48d5f74ff6ebceb3bdf98258ba7d7fbbc76b99ab'] + +builddependencies = [ + ('CMake', '3.18.4'), + ('Bison', '3.7.1'), + ('Eigen', '3.3.8'), +] + +dependencies = [ + ('expat', '2.2.9'), + ('HDF5', '1.10.7'), + ('libjpeg-turbo', '2.0.5'), + ('libpng', '1.6.37'), + ('LibTIFF', '4.1.0'), + ('VTK', '9.0.1'), + ('zlib', '1.2.11'), +] + +local_sys_deps = ['EIGEN', 'EXPAT', 'HDF5', 'JPEG', 'PNG', 'TIFF', 'ZLIB'] +local_sys_cmake = ['-DITK_USE_SYSTEM_%s=ON' % d for d in local_sys_deps] + +configopts = '-DBUILD_SHARED_LIBS=ON -DBUILD_TESTING=OFF ' +configopts += '-DModule_ITKReview=ON -DModule_ITKVtkGlue=ON -DModule_SimpleITKFilters=ON ' +configopts += '-DITK_WRAP_PYTHON:BOOL=OFF ' +configopts += '-DITK_LEGACY_REMOVE:BOOL=OFF ' # needed by SimpleITK +configopts += ' '.join(local_sys_cmake) + +prebuildopts = "LC_ALL=C " + +local_lib_names = ['ITKCommon', 'ITKIOHDF5', 'ITKIOJPEG', 'ITKIOPNG', 'ITKIOTIFF', + 'ITKReview', 'ITKVTK', 'ITKVtkGlue', 'itkSimpleITKFilters'] + +sanity_check_paths = { + 'files': ['bin/itkTestDriver'] + + ['lib/lib%s-%%(version_major)s.%%(version_minor)s.%s' % (l, SHLIB_EXT) for l in local_lib_names], + 'dirs': ['include/ITK-%(version_major)s.%(version_minor)s', 'share'], +} + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/i/ITSTool/ITSTool-2.0.7-GCCcore-11.3.0.eb b/easybuild/easyconfigs/i/ITSTool/ITSTool-2.0.7-GCCcore-11.3.0.eb new file mode 100644 index 00000000000..d456df2601d --- /dev/null +++ b/easybuild/easyconfigs/i/ITSTool/ITSTool-2.0.7-GCCcore-11.3.0.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'ITSTool' +version = '2.0.7' + +homepage = 'http://itstool.org/' +description = "ITS Tool allows you to translate your XML documents with PO files" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +source_urls = ['http://files.itstool.org/itstool/'] +sources = [SOURCELOWER_TAR_BZ2] +checksums = ['6b9a7cd29a12bb95598f5750e8763cee78836a1a207f85b74d8b3275b27e87ca'] + +builddependencies = [('binutils', '2.38')] + +dependencies = [ + ('Python', '3.10.4'), + ('libxml2-python', '2.9.13'), +] + +sanity_check_paths = { + 'files': ['bin/itstool'], + 'dirs': ['share/itstool/its', 'share/man'], +} +sanity_check_commands = ["itstool --help"] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/i/Infernal/Infernal-1.1.4-foss-2022a.eb b/easybuild/easyconfigs/i/Infernal/Infernal-1.1.4-foss-2022a.eb new file mode 100644 index 00000000000..a3af0dda34b --- /dev/null +++ b/easybuild/easyconfigs/i/Infernal/Infernal-1.1.4-foss-2022a.eb @@ -0,0 +1,39 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Cedric Laczny , Fotis Georgatos +# License:: MIT/GPL +# Updated:: Denis Kristak (INUITS) +# $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 = 'Infernal' +version = "1.1.4" + +homepage = 'http://eddylab.org/infernal/' +description = """Infernal ("INFERence of RNA ALignment") is for searching DNA sequence databases + for RNA structure and sequence similarities.""" + +toolchain = {'name': 'foss', 'version': '2022a'} +toolchainopts = {'pic': True} + +source_urls = ['http://eddylab.org/%(namelower)s'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['f9493c7dee9fbf25f6405706818883d24b9f5e455121a0662c96c8f0307f95fc'] + +local_bins = ['align', 'build', 'calibrate', 'convert', 'emit', 'fetch', 'press', 'scan', 'search', 'stat'] + +sanity_check_paths = { + 'files': ['bin/cm%s' % x for x in local_bins], + 'dirs': [] +} + +sanity_check_commands = ['cm%s -h' % x for x in local_bins] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/i/InterProScan/InterProScan-5.62-94.0-foss-2022b.eb b/easybuild/easyconfigs/i/InterProScan/InterProScan-5.62-94.0-foss-2022b.eb new file mode 100644 index 00000000000..fb71e8845fa --- /dev/null +++ b/easybuild/easyconfigs/i/InterProScan/InterProScan-5.62-94.0-foss-2022b.eb @@ -0,0 +1,53 @@ +easyblock = 'Binary' + +name = 'InterProScan' +version = '5.62-94.0' + +homepage = 'https://www.ebi.ac.uk/interpro/' +# also https://github.com/ebi-pf-team/interproscan +description = """InterProScan is a sequence analysis application (nucleotide and protein sequences) that combines + different protein signature recognition methods into one resource [code only: libraries and external binaries + but no data].""" +# software_license = 'LicenseApachev2' + +toolchain = {'name': 'foss', 'version': '2022b'} + +source_urls = ['https://ftp.ebi.ac.uk/pub/software/unix/iprscan/%(version_major)s/%(version)s/alt/'] +sources = ['interproscan-core-%(version)s.tar.gz'] +checksums = ['98caccaea4d47dbbb0975e7a09a4253b7e7b2796163567d2763f39d0a822c2a9'] + +dependencies = [ + ('Java', '11', '', SYSTEM), + ('Perl', '5.36.0'), + ('libgd', '2.3.3'), + ('Python', '3.10.8'), + ('PCRE', '8.45'), +] +# NOTE some analyses done by InterProScan require extra tools not included in the interproscan +# distribution because of license issues. +# Those tools are SignalP, TMHMM and Phobius. +# To allow InterProScan to use them you have to copy or symlink their executable in the +# corresponding %(installdir)s/bin/TOOL/VERSION/ folder. + +extract_sources = False + +# NOTE The data can be added manually afterwards with for example a symlink called *data* +# in %(installdir)s/ +# But simpler to use the InterProScan_data-*.eb file. The regular InterProScan data package +# does not contain the lookup_service data way too large! +install_cmd = 'tar xfz %(namelower)s-core-%(version)s.tar.gz && ' +install_cmd += 'cd %(namelower)s-%(version)s/ && ' +install_cmd += 'find . -type d -name bin32 | xargs rm -Rf && ' +install_cmd += 'rm -f test* && rm -Rf src/ && ' +install_cmd += 'chmod -x *.jar && ' +install_cmd += 'cp -r * %(installdir)s/ && cd .. && ' +install_cmd += 'rm -Rf %(namelower)s-%(version)s/' + +sanity_check_paths = { + 'files': ['interproscan-%(version_major)s.jar', 'interproscan.sh', 'interproscan.properties'], + 'dirs': ['bin', 'lib'], +} + +sanity_check_commands = ["interproscan.sh 2>&1 | grep 'Welcome to InterProScan-%(version)s'"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/i/iimpi/iimpi-2023a.eb b/easybuild/easyconfigs/i/iimpi/iimpi-2023a.eb new file mode 100644 index 00000000000..c9de798ba2f --- /dev/null +++ b/easybuild/easyconfigs/i/iimpi/iimpi-2023a.eb @@ -0,0 +1,18 @@ +# This is an easyconfig file for EasyBuild, see http://easybuilders.github.io/easybuild +easyblock = 'Toolchain' + +name = 'iimpi' +version = '2023a' + +homepage = 'https://software.intel.com/parallel-studio-xe' +description = """Intel C/C++ and Fortran compilers, alongside Intel MPI.""" + +toolchain = SYSTEM + +local_comp_ver = '2023.1.0' +dependencies = [ + ('intel-compilers', local_comp_ver), + ('impi', '2021.9.0', '', ('intel-compilers', local_comp_ver)), +] + +moduleclass = 'toolchain' diff --git a/easybuild/easyconfigs/i/imagecodecs/imagecodecs-2022.9.26-foss-2022a.eb b/easybuild/easyconfigs/i/imagecodecs/imagecodecs-2022.9.26-foss-2022a.eb new file mode 100644 index 00000000000..f33ff8c46b9 --- /dev/null +++ b/easybuild/easyconfigs/i/imagecodecs/imagecodecs-2022.9.26-foss-2022a.eb @@ -0,0 +1,70 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# Author: Denis Kristak +# update: Thomas Hoffmann (EMBL), Denis Kristak (Inuits) +easyblock = 'PythonBundle' + +name = 'imagecodecs' +version = '2022.9.26' # opting for older version because of compatibility issues with LibTIFF + +homepage = 'https://github.com/cgohlke/imagecodecs' +description = """Imagecodecs is a Python library that provides block-oriented, in-memory buffer transformation, +compression, and decompression functions for use in the tifffile, czifile, zarr, and other +scientific image input/output modules.""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +local_openjpeg_maj_min = '2.5' +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), + ('matplotlib', '3.5.2'), + ('Brotli', '1.0.9'), + ('bzip2', '1.0.8'), + ('Blosc', '1.21.3'), + ('Blosc2', '2.6.1'), + ('CFITSIO', '4.2.0'), + ('CharLS', '2.4.1'), + ('giflib', '5.2.1'), + ('jxrlib', '1.1'), + ('LittleCMS', '2.13.1'), + ('LERC', '4.0.0'), + ('libaec', '1.0.6'), + ('libavif', '0.11.1'), + ('libdeflate', '1.10'), + ('libjpeg-turbo', '2.1.3'), + ('libjxl', '0.8.1'), + ('LibLZF', '3.6'), + ('libpng', '1.6.37'), + ('XZ', '5.2.5'), + ('LibTIFF', '4.3.0'), + ('libwebp', '1.2.4'), + ('lz4', '1.9.3'), + ('OpenJPEG', local_openjpeg_maj_min + '.0'), + ('snappy', '1.1.9'), + ('zlib', '1.2.12'), + ('zlib-ng', '2.0.7'), + ('Zopfli', '1.0.3'), + ('zfp', '1.0.0'), + ('zstd', '1.5.2'), + ('Brunsli', '0.1'), + ('HDF5', '1.12.2'), + ('h5py', '3.7.0'), + ('libheif', '1.16.2'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('bitshuffle', '0.5.1', { + 'checksums': ['988f224739aa6858475a4c59172968c7b51cc657d2249580c8f96848708fbae3'], + }), + (name, version, { + 'extract_cmd': "tar -xvf %s && find . -type f -print0 | xargs -0 dos2unix", + 'preinstallopts': "export CPATH=$EBROOTOPENJPEG/include/openjpeg-2.5/:$CPATH && ", + 'sources': ['%(name)s-%(version)s.tar.gz'], + 'checksums': ['04d5757d8fd7819844b0f8d9eed05025dca4962f280d0010b42c7c9c993fe371'], + }), +] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/i/imkl-FFTW/imkl-FFTW-2023.1.0-iimpi-2023a.eb b/easybuild/easyconfigs/i/imkl-FFTW/imkl-FFTW-2023.1.0-iimpi-2023a.eb new file mode 100644 index 00000000000..8dc2ddc903a --- /dev/null +++ b/easybuild/easyconfigs/i/imkl-FFTW/imkl-FFTW-2023.1.0-iimpi-2023a.eb @@ -0,0 +1,11 @@ +name = 'imkl-FFTW' +version = '2023.1.0' + +homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onemkl.html' +description = "FFTW interfaces using Intel oneAPI Math Kernel Library" + +toolchain = {'name': 'iimpi', 'version': '2023a'} + +dependencies = [('imkl', version, '', SYSTEM)] + +moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/i/impi/impi-2021.9.0-intel-compilers-2023.1.0.eb b/easybuild/easyconfigs/i/impi/impi-2021.9.0-intel-compilers-2023.1.0.eb index 6e886d07ac1..f890b966ec3 100644 --- a/easybuild/easyconfigs/i/impi/impi-2021.9.0-intel-compilers-2023.1.0.eb +++ b/easybuild/easyconfigs/i/impi/impi-2021.9.0-intel-compilers-2023.1.0.eb @@ -11,6 +11,6 @@ source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/718d sources = ['l_mpi_oneapi_p_%(version)s.43482_offline.sh'] checksums = ['5c170cdf26901311408809ced28498b630a494428703685203ceef6e62735ef8'] -dependencies = [('UCX', '1.14.0')] +dependencies = [('UCX', '1.14.1')] moduleclass = 'mpi' diff --git a/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2023.1.0.eb b/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2023.1.0.eb index 91d2ec40b6e..58579245be7 100644 --- a/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2023.1.0.eb +++ b/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2023.1.0.eb @@ -28,10 +28,10 @@ checksums = [ '7639af4b6c928e9e3ba92297a054f78a55f4f4d0db9db0d144cc6653004e4f24'}, ] -local_gccver = '12.2.0' +local_gccver = '12.3.0' dependencies = [ ('GCCcore', local_gccver), - ('binutils', '2.39', '', ('GCCcore', local_gccver)), + ('binutils', '2.40', '', ('GCCcore', local_gccver)), ] moduleclass = 'compiler' diff --git a/easybuild/easyconfigs/i/intel/intel-2023.03.eb b/easybuild/easyconfigs/i/intel/intel-2023.03.eb index 9c71d4bc13e..a57e1ebc96e 100644 --- a/easybuild/easyconfigs/i/intel/intel-2023.03.eb +++ b/easybuild/easyconfigs/i/intel/intel-2023.03.eb @@ -9,10 +9,10 @@ description = "Compiler toolchain including Intel compilers, Intel MPI and Intel toolchain = SYSTEM local_comp_ver = '2023.1.0' -local_gccver = '12.2.0' +local_gccver = '12.3.0' dependencies = [ ('GCCcore', local_gccver), - ('binutils', '2.39', '', ('GCCcore', local_gccver)), + ('binutils', '2.40', '', ('GCCcore', local_gccver)), ('intel-compilers', local_comp_ver), ('impi', '2021.9.0', '', ('intel-compilers', local_comp_ver)), ('imkl', local_comp_ver, '', SYSTEM), diff --git a/easybuild/easyconfigs/i/intel/intel-2023a.eb b/easybuild/easyconfigs/i/intel/intel-2023a.eb new file mode 100644 index 00000000000..2b3f1b90ddc --- /dev/null +++ b/easybuild/easyconfigs/i/intel/intel-2023a.eb @@ -0,0 +1,22 @@ +easyblock = 'Toolchain' + +name = 'intel' +version = '2023a' + +homepage = 'https://easybuild.readthedocs.io/en/master/Common-toolchains.html#intel-toolchain' +description = "Compiler toolchain including Intel compilers, Intel MPI and Intel Math Kernel Library (MKL)." + +toolchain = SYSTEM + +local_comp_ver = '2023.1.0' +local_gccver = '12.3.0' +dependencies = [ + ('GCCcore', local_gccver), + ('binutils', '2.40', '', ('GCCcore', local_gccver)), + ('intel-compilers', local_comp_ver), + ('impi', '2021.9.0', '', ('intel-compilers', local_comp_ver)), + ('imkl', local_comp_ver, '', SYSTEM), + ('imkl-FFTW', local_comp_ver, '', ('iimpi', version)), +] + +moduleclass = 'toolchain' diff --git a/easybuild/easyconfigs/i/intltool/intltool-0.51.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/i/intltool/intltool-0.51.0-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..4e0a8b32b26 --- /dev/null +++ b/easybuild/easyconfigs/i/intltool/intltool-0.51.0-GCCcore-12.3.0.eb @@ -0,0 +1,37 @@ +easyblock = 'ConfigureMake' + +name = 'intltool' +version = '0.51.0' + +homepage = 'https://freedesktop.org/wiki/Software/intltool/' +description = """intltool is a set of tools to centralize translation of + many different file formats using GNU gettext-compatible PO files.""" + +toolchain = {'name': 'GCCcore', 'version': '12.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.40'), +] + +dependencies = [ + ('Perl-bundle-CPAN', '5.36.1'), +] + +fix_perl_shebang_for = ['bin/intltool-*'] + +sanity_check_paths = { + 'files': ['bin/intltool%s' % x for x in ['-extract', '-merge', '-prepare', '-update', 'ize']], + 'dirs': [] +} + +sanity_check_commands = ["intltool-merge --help"] + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/j/JAGS/JAGS-4.3.2-foss-2022b.eb b/easybuild/easyconfigs/j/JAGS/JAGS-4.3.2-foss-2022b.eb new file mode 100644 index 00000000000..8095b016e26 --- /dev/null +++ b/easybuild/easyconfigs/j/JAGS/JAGS-4.3.2-foss-2022b.eb @@ -0,0 +1,37 @@ +# 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.2' + +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': '2022b'} + +source_urls = [ + ('https://sourceforge.net/projects/mcmc-%(namelower)s/files/%(name)s/%(version_major)s.x/Source/', 'download') +] +sources = [SOURCE_TAR_GZ] +checksums = ['871f556af403a7c2ce6a0f02f15cf85a572763e093d26658ebac55c4ab472fc8'] + +configopts = ' --with-blas="$LIBBLAS" --with-lapack="$LIBLAPACK"' + +sanity_check_paths = { + 'files': ['bin/jags', 'libexec/jags-terminal', 'lib/libjags.%s' % SHLIB_EXT], + 'dirs': [], +} + +sanity_check_commands = ["echo 'list modules' | jags"] + +modextrapaths = { + 'JAGS_INCLUDE': 'include/%(name)s', + 'JAGS_LIB': 'lib', +} + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/j/Julia/Julia-1.9.0-linux-x86_64.eb b/easybuild/easyconfigs/j/Julia/Julia-1.9.0-linux-x86_64.eb new file mode 100644 index 00000000000..cd119189826 --- /dev/null +++ b/easybuild/easyconfigs/j/Julia/Julia-1.9.0-linux-x86_64.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 +# Updated by: Dugan Witherick, University of Warwick +# Robert Mijakovic +# Wahid Mainassara + +easyblock = 'Tarball' + +name = 'Julia' +version = '1.9.0' +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 = ['00c614466ef9809c2eb23480e38d196a2c577fff2730c4f83d135b913d473359'] + +sanity_check_paths = { + 'files': ['bin/julia', 'include/julia/julia.h', 'lib/libjulia.%s' % SHLIB_EXT], + 'dirs': ['bin', 'etc', 'include', 'lib', 'share'] +} + +sanity_check_commands = ['julia --help'] + +_depot_paths = ':'.join([ + # first entry must be the user depot + # see https://pkgdocs.julialang.org/v1/glossary/ + '~/.julia', + # base installation of Julia + '%(installdir)s/share/julia', +]) + +modextravars = { + 'JULIA_DEPOT_PATH': _depot_paths, + # by default JULIA_HISTORY points to top path in DEPOT_PATH + # set JULIA_HISTORY to always use the user depot (~/.julia) + # https://docs.julialang.org/en/v1/manual/environment-variables/#JULIA_HISTORY + 'JULIA_HISTORY': '~/.julia/logs/repl_history.jl', +} + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/j/JupyterLab/JupyterLab-3.5.0-GCCcore-11.3.0.eb b/easybuild/easyconfigs/j/JupyterLab/JupyterLab-3.5.0-GCCcore-11.3.0.eb index 1ce74b3d8a8..f74d9b48ea3 100644 --- a/easybuild/easyconfigs/j/JupyterLab/JupyterLab-3.5.0-GCCcore-11.3.0.eb +++ b/easybuild/easyconfigs/j/JupyterLab/JupyterLab-3.5.0-GCCcore-11.3.0.eb @@ -53,4 +53,15 @@ modextravars = { 'JUPYTERLAB_DIR': '%(installdir)s/share/jupyter/lab', } +# keep user's configuration in their home directory +# note: '~' is not expanded by JupyterLab +modluafooter = """ +setenv("JUPYTERLAB_SETTINGS_DIR", pathJoin(os.getenv("HOME"), ".jupyter", "lab", "user-settings")) +setenv("JUPYTERLAB_WORKSPACES_DIR", pathJoin(os.getenv("HOME"), ".jupyter", "lab", "workspaces")) +""" +modtclfooter = """ +setenv JUPYTERLAB_SETTINGS_DIR "$::env(HOME)/.jupyter/lab/user-settings" +setenv JUPYTERLAB_WORKSPACES_DIR "$::env(HOME)/.jupyter/lab/workspaces" +""" + moduleclass = 'tools' diff --git a/easybuild/easyconfigs/j/jq/jq-1.5-GCCcore-10.2.0.eb b/easybuild/easyconfigs/j/jq/jq-1.5-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..926327a17f6 --- /dev/null +++ b/easybuild/easyconfigs/j/jq/jq-1.5-GCCcore-10.2.0.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'jq' +version = '1.5' + +homepage = 'https://stedolan.github.io/jq/' +description = """jq is a lightweight and flexible command-line JSON processor.""" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} + +source_urls = ['https://github.com/stedolan/jq/releases/download/jq-%(version)s'] +sources = ['jq-%(version)s.tar.gz'] +checksums = ['c4d2bfec6436341113419debf479d833692cc5cdab7eb0326b5a4d4fbe9f493c'] + +builddependencies = [ + ('binutils', '2.35'), + ('Bison', '3.7.1'), + ('flex', '2.6.4'), +] + +sanity_check_paths = { + 'files': ['bin/jq'], + 'dirs': [], +} + +sanity_check_commands = ["jq --help"] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/j/jxrlib/jxrlib-1.1-GCCcore-11.3.0.eb b/easybuild/easyconfigs/j/jxrlib/jxrlib-1.1-GCCcore-11.3.0.eb new file mode 100644 index 00000000000..db73ae8495a --- /dev/null +++ b/easybuild/easyconfigs/j/jxrlib/jxrlib-1.1-GCCcore-11.3.0.eb @@ -0,0 +1,39 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# Author:: Denis Kristak (INUITS) +# Update: Thomas Hoffmann (EMBL) +## + +easyblock = 'CMakeMake' + +name = 'jxrlib' +version = '1.1' + +homepage = 'https://github.com/4creators/jxrlib' +description = """Open source implementation of jpegxr""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +source_urls = ['https://deb.debian.org/debian/pool/main/j/jxrlib/'] +sources = ['%(name)s_%(version)s.orig.tar.gz'] +patches = [('jxrlib-%(version)s_cmake.patch', 1)] +checksums = [ + {'jxrlib_1.1.orig.tar.gz': 'c7287b86780befa0914f2eeb8be2ac83e672ebd4bd16dc5574a36a59d9708303'}, + {'jxrlib-1.1_cmake.patch': 'e96ea8b418fdab10e9cbc2f4cad95ca1f59a826ce7379c6a3192882050689a74'}, +] + +builddependencies = [ + ('binutils', '2.38'), + ('CMake', '3.23.1'), +] + +sanity_check_paths = { + 'files': ['bin/JxrDecApp', 'bin/JxrEncApp', "lib/libjpegxr.%s" % SHLIB_EXT], + 'dirs': [], +} + +sanity_check_commands = ['JxrDecApp', 'JxrEncApp'] + +modextrapaths = {'CPATH': 'include/jxrlib'} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/k/KerasTuner/KerasTuner-1.3.5-foss-2022a.eb b/easybuild/easyconfigs/k/KerasTuner/KerasTuner-1.3.5-foss-2022a.eb new file mode 100644 index 00000000000..83d26febf7b --- /dev/null +++ b/easybuild/easyconfigs/k/KerasTuner/KerasTuner-1.3.5-foss-2022a.eb @@ -0,0 +1,31 @@ +easyblock = 'PythonBundle' + +name = 'KerasTuner' +version = '1.3.5' + +homepage = 'https://keras.io/keras_tuner' +description = """KerasTuner is an easy-to-use, scalable hyperparameter optimization framework that solves the pain +points of hyperparameter search.""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +dependencies = [ + ('Python', '3.10.4'), + ('TensorFlow', '2.11.0'), + ('scikit-learn', '1.1.2'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('kt-legacy', '1.0.5', { + 'checksums': ['dbbade58f12c6a6da6062f4b045a6395a8d4195815e3e064bc3e609b69c8a26c'], + 'modulename': 'kerastuner', + }), + ('keras-tuner', version, { + 'checksums': ['5f65fbf932e17883290b40cf4b95987129947cf607972594b453e3c26e5314b7'], + }), +] + +moduleclass = 'phys' diff --git a/easybuild/easyconfigs/k/kim-api/kim-api-2.3.0-GCCcore-11.3.0.eb b/easybuild/easyconfigs/k/kim-api/kim-api-2.3.0-GCCcore-11.3.0.eb new file mode 100644 index 00000000000..bc886d05365 --- /dev/null +++ b/easybuild/easyconfigs/k/kim-api/kim-api-2.3.0-GCCcore-11.3.0.eb @@ -0,0 +1,46 @@ +easyblock = 'CMakeMake' + +name = 'kim-api' +version = '2.3.0' + +homepage = 'https://openkim.org/' +description = """Open Knowledgebase of Interatomic Models. + +KIM is an API and OpenKIM is a collection of interatomic models (potentials) for +atomistic simulations. This is a library that can be used by simulation programs +to get access to the models in the OpenKIM database. + +This EasyBuild only installs the API, the models can be installed with the +package openkim-models, or the user can install them manually by running + kim-api-collections-management install user MODELNAME +or + kim-api-collections-management install user OpenKIM +to install them all. + """ + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +source_urls = ['https://s3.openkim.org/kim-api/'] +sources = ['%(name)s-%(version)s.txz'] +checksums = ['93673bb8fbc0625791f2ee67915d1672793366d10cabc63e373196862c14f991'] + +builddependencies = [('binutils', '2.38')] + +dependencies = [ + ('CMake', '3.23.1'), # Also needed to install models, thus not just a builddependency. +] + +parallel = 1 +separate_build_dir = True +build_type = 'Release' + +modextravars = { + 'KIM_API_CMAKE_PREFIX_DIR': '%(installdir)s/lib64' +} + +sanity_check_paths = { + 'files': ['bin/kim-api-collections-management', 'lib64/libkim-api.%s' % SHLIB_EXT], + 'dirs': [] +} + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/l/LAMMPS/LAMMPS-23Jun2022-foss-2022a-kokkos.eb b/easybuild/easyconfigs/l/LAMMPS/LAMMPS-23Jun2022-foss-2022a-kokkos.eb new file mode 100644 index 00000000000..74e899cdc1e --- /dev/null +++ b/easybuild/easyconfigs/l/LAMMPS/LAMMPS-23Jun2022-foss-2022a-kokkos.eb @@ -0,0 +1,165 @@ +name = 'LAMMPS' +version = '23Jun2022' +versionsuffix = '-kokkos' + +homepage = 'https://www.lammps.org' +description = """LAMMPS is a classical molecular dynamics code, and an acronym +for Large-scale Atomic/Molecular Massively Parallel Simulator. LAMMPS has +potentials for solid-state materials (metals, semiconductors) and soft matter +(biomolecules, polymers) and coarse-grained or mesoscopic systems. It can be +used to model atoms or, more generically, as a parallel particle simulator at +the atomic, meso, or continuum scale. LAMMPS runs on single processors or in +parallel using message-passing techniques and a spatial-decomposition of the +simulation domain. The code is designed to be easy to modify or extend with new +functionality. +""" + +toolchain = {'name': 'foss', 'version': '2022a'} +toolchainopts = {'openmp': True, 'usempi': True} + +# 'https://github.com/lammps/lammps/archive/' +source_urls = [GITHUB_LOWER_SOURCE] +sources = ['stable_%(version)s_update4.tar.gz'] +checksums = ['42541b4dbd0d339d16ddb377e76d192bc3d1d5712fdf9e2cdc838fc980d0a0cf'] + +builddependencies = [ + ('CMake', '3.23.1'), + ('pkgconf', '1.8.0'), + ('archspec', '0.1.4'), +] +dependencies = [ + ('Python', '3.10.4'), + ('libpng', '1.6.37'), + ('libjpeg-turbo', '2.1.3'), + ('netCDF', '4.9.0'), + ('GSL', '2.7'), + ('zlib', '1.2.12'), + ('gzip', '1.12'), + ('cURL', '7.83.0'), + ('HDF5', '1.12.2'), + ('tbb', '2021.5.0'), + ('PCRE', '8.45'), + ('libxml2', '2.9.13'), + ('FFmpeg', '4.4.2'), + ('Voro++', '0.4.6'), + ('kim-api', '2.3.0'), + ('Eigen', '3.4.0'), + ('PLUMED', '2.8.1'), + ('ScaFaCoS', '1.0.4'), + ('SciPy-bundle', '2022.05'), + # VTK package is auto-disabled if this dep is not available + ('VTK', '9.2.2'), +] + +# To use additional custom configuration options, use the 'configopts' easyconfig parameter +# See docs and lammps easyblock for more information. +# https://github.com/lammps/lammps/blob/master/cmake/README.md#lammps-configuration-options + +# OpenMP-Kokkos build is default in the current easyblock. One can switch to serial backend of Kokkos, +# which is claimed to be faster in pure MPI calculations +# configopts = "-DKokkos_ENABLE_SERIAL=yes " + + +# packages auto-enabled by easyblock +# 'GPU' - if cuda package is present and kokkos is disabled +# 'KOKKOS' - if kokkos is enabled (by default) +# 'INTEL' - if builing on Intel CPU +# 'OPENMP' - if OpenMP swithed on in 'toolchainopts' + +# include the following extra packages into the build +general_packages = [ + 'AMOEBA', + 'ASPHERE', + 'ATC', + 'AWPMD', + 'BOCS', + 'BODY', + 'BPM', + 'BROWNIAN', + 'CG-DNA', + 'CG-SPICA', + 'CLASS2', + 'COLLOID', + 'COLVARS', + 'COMPRESS', + 'CORESHELL', + 'DIELECTRIC', + 'DIFFRACTION', + 'DIPOLE', + 'DPD-BASIC', + 'DPD-MESO', + 'DPD-REACT', + 'DPD-SMOOTH', + 'DRUDE', + 'EFF', + 'ELECTRODE', + 'EXTRA-COMPUTE', + 'EXTRA-DUMP', + 'EXTRA-FIX', + 'EXTRA-MOLECULE', + 'EXTRA-PAIR', + 'FEP', + 'GRANULAR', + 'H5MD', + 'INTERLAYER', + 'KIM', + 'KSPACE', + 'LATBOLTZ', + 'LEPTON', + 'MACHDYN', + 'MANIFOLD', + 'MANYBODY', + 'MC', + 'MDI', + 'MEAM', + 'MGPT', + 'MISC', + 'ML-IAP', + 'ML-PACE', + 'ML-POD', + 'ML-RANN', + 'ML-SNAP', + 'MOFFF', + 'MOLECULE', + 'MOLFILE', + 'MPIIO', + 'NETCDF', + 'OPT', + 'ORIENT', + 'PERI', + 'PHONON', + 'PLUGIN', + 'PLUMED', + 'POEMS', + 'PTM', + 'PYTHON', + 'QEQ', + 'QTB', + 'REACTION', + 'REAXFF', + 'REPLICA', + 'RIGID', + 'SCAFACOS', + 'SHOCK', + 'SMTBQ', + 'SPH', + 'SPIN', + 'SRD', + 'TALLY', + 'UEF', + 'VORONOI', + 'VTK', + 'YAFF', +] + +# Excluded packages due to requiring additional (non-trivial) deps +# - ADIOS +# - LATTE +# - MESONT (requires very large files downloaded during build) +# - ML-HDNNP (requires N2P2) +# - ML-QUIP +# - MSCG +# - QMMM (setup seems complex) + + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/l/LASTZ/LASTZ-1.02.00-GCCcore-8.2.0.eb b/easybuild/easyconfigs/l/LASTZ/LASTZ-1.02.00-GCCcore-8.2.0.eb new file mode 100644 index 00000000000..ba661013128 --- /dev/null +++ b/easybuild/easyconfigs/l/LASTZ/LASTZ-1.02.00-GCCcore-8.2.0.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'LASTZ' +version = '1.02.00' + +homepage = 'https://www.bx.psu.edu/~rsharris/lastz/' +description = """ LASTZ is a program for aligning DNA sequences, a pairwise aligner. Originally designed to handle + sequences the size of human chromosomes and from different species, it is also useful for sequences produced by NGS + sequencing technologies such as Roche 454. +""" + +toolchain = {'name': 'GCCcore', 'version': '8.2.0'} + +source_urls = ['https://www.bx.psu.edu/miller_lab/dist/'] +sources = [SOURCELOWER_TAR_GZ] +patches = ['LASTZ-%(version)s_Makefile.patch'] +checksums = [ + '054515f27fdf9392f3d2e84ca421103b5e5575ba7a1979addf3c277212114a21', # lastz-1.02.00.tar.gz + '9bdceb84925cff083546c5f5165f27f850dbdd43fa0eda8b4f34f3cc0ecb3b6a', # LASTZ-1.02.00_Makefile.patch +] + +builddependencies = [('binutils', '2.31.1')] + +skipsteps = ['configure'] + +installopts = 'installDir=%(installdir)s/bin' + +sanity_check_paths = { + 'files': ['bin/lastz', 'bin/lastz_D'], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/l/LERC/LERC-4.0.0-GCCcore-11.3.0.eb b/easybuild/easyconfigs/l/LERC/LERC-4.0.0-GCCcore-11.3.0.eb new file mode 100644 index 00000000000..fa7d3b7baa5 --- /dev/null +++ b/easybuild/easyconfigs/l/LERC/LERC-4.0.0-GCCcore-11.3.0.eb @@ -0,0 +1,39 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# Updated: Denis Kristak +# Updated: Thomas Hoffmann (EMBL) +easyblock = 'CMakeMake' + +name = 'LERC' +version = '4.0.0' + +homepage = 'https://github.com/Esri/lerc' +description = """LERC is an open-source image or raster format which supports rapid encoding and decoding +for any pixel type (not just RGB or Byte). Users set the maximum compression error per pixel while encoding, +so the precision of the original input image is preserved (within user defined error bounds).""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +source_urls = ['https://github.com/Esri/lerc/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['91431c2b16d0e3de6cbaea188603359f87caed08259a645fd5a3805784ee30a0'] + +builddependencies = [ + ('binutils', '2.38'), + ('CMake', '3.23.1'), +] + +postinstallcmds = [ + "cd %(builddir)s/lerc-%(version)s/src/LercTest && sed -i -e 's@../LercLib/include/@@' main.cpp", + "cp %(builddir)s/lerc-%(version)s/src/LercTest/main.cpp %(installdir)s/test.c", +] + +sanity_check_commands = [ + "mkdir -p %(builddir)s && cd %(builddir)s && g++ %(installdir)s/test.c -o lerctest -lLerc && ./lerctest", +] + +sanity_check_paths = { + 'files': ['include/Lerc_c_api.h', 'include/Lerc_types.h', 'lib/libLerc.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/LISFLOOD-FP/LISFLOOD-FP-8.1-gompi-2022a-CUDA-11.7.0.eb b/easybuild/easyconfigs/l/LISFLOOD-FP/LISFLOOD-FP-8.1-gompi-2022a-CUDA-11.7.0.eb new file mode 100644 index 00000000000..423df27aa0a --- /dev/null +++ b/easybuild/easyconfigs/l/LISFLOOD-FP/LISFLOOD-FP-8.1-gompi-2022a-CUDA-11.7.0.eb @@ -0,0 +1,65 @@ +easyblock = 'CMakeMakeCp' + +name = 'LISFLOOD-FP' +version = '8.1' +versionsuffix = '-CUDA-%(cudaver)s' + +homepage = 'https://www.seamlesswave.com/LISFLOOD8.0.html' +description = """The LISFLOOD-FP is a raster-based hydrodynamic model originally developed by +the University of Bristol. It has undergone extensive development since +conception and includes a collection of numerical schemes implemented to solve +a variety of mathematical approximations of the 2D shallow water equations of +different complexity. +The local inertia solver, known as the ACC solver, is widely used to simulate +floods with gradually-varying, subcritical flow over sufficiently rough +surfaces with Manning’s coefficient of at least 0.03. It has a version with +CPU-specific optimisations and enhanced with a subgrid channel model. +LISFLOOD-FP also includes second-order discontinuous Galerkin (DG2) and +first-order finite volume (FV1) solvers of the full shallow water equations for +modelling a wide range of flows, including rapidly-propagating, supercritical +flows, shock waves, or flows over very smooth surfaces. The DG2/FV1 solvers are +parallelised for the multi-core CPU architecture, but do not integrate with the +subgrid channel model nor with the CPU-specific optimisations. +""" + +software_license = 'LicenseGPLv3' + +toolchain = {'name': 'gompi', 'version': '2022a'} + +source_urls = ['https://zenodo.org/record/6912932/files/'] +sources = [{'download_filename': '%(name)s%20v%(version)s.zip', 'filename': SOURCE_ZIP}] +patches = ['LISFLOOD-FP-%(version)s_thrust_cub_check.patch'] +checksums = [ + {'LISFLOOD-FP-8.1.zip': '57df4ff38f8a47e6907bc4a98466bca6eecb540862a89b9db7e1c4fbe9259d95'}, + {'LISFLOOD-FP-8.1_thrust_cub_check.patch': 'de2c031d76d517ebe8dc21405bde8eafdc12c64924b9b4fae330bd0d5c58ae93'}, +] + +builddependencies = [ + ('CMake', '3.24.3') +] + +dependencies = [ + ('CUDA', '11.7.0', '', SYSTEM), + ('netCDF', '4.9.0') +] + +# CUB bundled in LISFLOOD is not compatible with our CUDA Toolkit +# remove in favour of CUB provided in CUDA Toolkit +preconfigopts = "rm -rf %(builddir)s/%(name)s-trunk/cuda/cub &" + +# Default CUDA compute capabilities (override via --cuda-compute-capabilities) +cuda_compute_capabilities = ['5.2', '6.0', '6.1', '7.0', '7.2', '7.5', '8.0', '8.6'] +configopts = '-DCMAKE_CUDA_ARCHITECTURES="%(cuda_cc_cmake)s"' + +_lisflood_bins = ['DG2downscale', 'generateDG2DEM', 'generateDG2start', 'lisflood'] + +files_to_copy = [(_lisflood_bins, 'bin')] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in _lisflood_bins], + 'dirs': [], +} + +sanity_check_commands = ["lisflood -version"] + +moduleclass = 'phys' diff --git a/easybuild/easyconfigs/l/LISFLOOD-FP/LISFLOOD-FP-8.1-gompi-2022a.eb b/easybuild/easyconfigs/l/LISFLOOD-FP/LISFLOOD-FP-8.1-gompi-2022a.eb new file mode 100644 index 00000000000..0922eeff5ef --- /dev/null +++ b/easybuild/easyconfigs/l/LISFLOOD-FP/LISFLOOD-FP-8.1-gompi-2022a.eb @@ -0,0 +1,51 @@ +easyblock = 'CMakeMakeCp' + +name = 'LISFLOOD-FP' +version = '8.1' + +homepage = 'https://www.seamlesswave.com/LISFLOOD8.0.html' +description = """The LISFLOOD-FP is a raster-based hydrodynamic model originally developed by +the University of Bristol. It has undergone extensive development since +conception and includes a collection of numerical schemes implemented to solve +a variety of mathematical approximations of the 2D shallow water equations of +different complexity. +The local inertia solver, known as the ACC solver, is widely used to simulate +floods with gradually-varying, subcritical flow over sufficiently rough +surfaces with Manning’s coefficient of at least 0.03. It has a version with +CPU-specific optimisations and enhanced with a subgrid channel model. +LISFLOOD-FP also includes second-order discontinuous Galerkin (DG2) and +first-order finite volume (FV1) solvers of the full shallow water equations for +modelling a wide range of flows, including rapidly-propagating, supercritical +flows, shock waves, or flows over very smooth surfaces. The DG2/FV1 solvers are +parallelised for the multi-core CPU architecture, but do not integrate with the +subgrid channel model nor with the CPU-specific optimisations. +""" + +software_license = 'LicenseGPLv3' + +toolchain = {'name': 'gompi', 'version': '2022a'} + +source_urls = ['https://zenodo.org/record/6912932/files/'] +sources = [{'download_filename': '%(name)s%20v%(version)s.zip', 'filename': SOURCE_ZIP}] +checksums = ['57df4ff38f8a47e6907bc4a98466bca6eecb540862a89b9db7e1c4fbe9259d95'] + +builddependencies = [ + ('CMake', '3.24.3') +] + +dependencies = [ + ('netCDF', '4.9.0') +] + +_lisflood_bins = ['DG2downscale', 'generateDG2DEM', 'generateDG2start', 'lisflood'] + +files_to_copy = [(_lisflood_bins, 'bin')] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in _lisflood_bins], + 'dirs': [], +} + +sanity_check_commands = ["lisflood -version"] + +moduleclass = 'phys' diff --git a/easybuild/easyconfigs/l/LISFLOOD-FP/LISFLOOD-FP-8.1_thrust_cub_check.patch b/easybuild/easyconfigs/l/LISFLOOD-FP/LISFLOOD-FP-8.1_thrust_cub_check.patch new file mode 100644 index 00000000000..44fda459635 --- /dev/null +++ b/easybuild/easyconfigs/l/LISFLOOD-FP/LISFLOOD-FP-8.1_thrust_cub_check.patch @@ -0,0 +1,16 @@ +Check the compatibility between Thrust in CUDA Toolkit and any bundled CUB. +Ignoring this check is just a bad idea, the build will fail anyway if those +are not compatible. +author: Alex Domingo (Vrije Universiteit Brussel) +diff --git a/CMakeLists.txt.orig b/CMakeLists.txt +index 4038ffd..a23571d 100644 +--- a/CMakeLists.txt.orig ++++ b/CMakeLists.txt +@@ -74,7 +74,6 @@ if (CMAKE_CUDA_COMPILER) + enable_language(CUDA) + set_property(TARGET lisflood PROPERTY CUDA_SEPARABLE_COMPILATION ON) + +- add_compile_definitions(CUDA THRUST_IGNORE_CUB_VERSION_CHECK) + target_sources(lisflood PRIVATE + cuda/cuda_boundary.cu + cuda/cuda_dem.cu diff --git a/easybuild/easyconfigs/l/LMDB/LMDB-0.9.29-GCCcore-12.2.0.eb b/easybuild/easyconfigs/l/LMDB/LMDB-0.9.29-GCCcore-12.2.0.eb new file mode 100644 index 00000000000..9facacba56e --- /dev/null +++ b/easybuild/easyconfigs/l/LMDB/LMDB-0.9.29-GCCcore-12.2.0.eb @@ -0,0 +1,34 @@ +easyblock = 'MakeCp' + +name = 'LMDB' +version = '0.9.29' + +homepage = 'https://symas.com/lmdb' +description = """LMDB is a fast, memory-efficient database. With memory-mapped files, it has the read performance + of a pure in-memory database while retaining the persistence of standard disk-based databases.""" + +toolchain = {'name': 'GCCcore', 'version': '12.2.0'} + +source_urls = ['https://github.com/LMDB/lmdb/archive/'] +sources = ['%(name)s_%(version)s.tar.gz'] +checksums = ['22054926b426c66d8f2bc22071365df6e35f3aacf19ad943bc6167d4cae3bebb'] + +builddependencies = [('binutils', '2.39')] + +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.2.1-foss-2021b.eb b/easybuild/easyconfigs/l/LMfit/LMfit-1.2.1-foss-2021b.eb new file mode 100644 index 00000000000..f56e1afc397 --- /dev/null +++ b/easybuild/easyconfigs/l/LMfit/LMfit-1.2.1-foss-2021b.eb @@ -0,0 +1,33 @@ +easyblock = 'PythonBundle' + +name = 'LMfit' +version = '1.2.1' + +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': '2021b'} + +dependencies = [ + ('Python', '3.9.6'), + ('SciPy-bundle', '2021.10'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('asteval', '0.9.30', { + 'checksums': ['a3021215568186eb866bec4dce2730f0fda3863eef9ff79e2f7b6cc4a84c26df'], + }), + ('uncertainties', '3.1.7', { + 'checksums': ['80111e0839f239c5b233cb4772017b483a0b7a1573a581b92ab7746a35e6faab'], + }), + (name, version, { + 'source_tmpl': '%(namelower)s-%(version)s.tar.gz', + 'checksums': ['00cef5bd145bf81b73630b78926af24b24f1805421e6211ca585588aa7cc415b'], + }), +] + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/l/LSD2/LSD2-2.4.1-GCCcore-12.2.0.eb b/easybuild/easyconfigs/l/LSD2/LSD2-2.4.1-GCCcore-12.2.0.eb new file mode 100644 index 00000000000..9e53a5268c9 --- /dev/null +++ b/easybuild/easyconfigs/l/LSD2/LSD2-2.4.1-GCCcore-12.2.0.eb @@ -0,0 +1,40 @@ +# Updated to v2.3 by +# R.QIAO +# DeepThought, Flinders University + +easyblock = 'CMakeMake' + +name = 'LSD2' +version = '2.4.1' + +homepage = 'https://github.com/tothuhien/lsd2' +description = "Least-squares methods to estimate rates and dates from phylogenies" + +toolchain = {'name': 'GCCcore', 'version': '12.2.0'} + +github_account = 'tothuhien' + +source_urls = [GITHUB_LOWER_SOURCE] +sources = ['v.%(version)s.tar.gz'] +patches = ['%(name)s-1.9.7_fix_cmake_to_build_lib_and_binary.patch'] +checksums = [ + {'v.2.4.1.tar.gz': '3d0921c96edb8f30498dc8a27878a76d785516043fbede4a72eefd84b5955458'}, + {'LSD2-1.9.7_fix_cmake_to_build_lib_and_binary.patch': + '8ef6e8c3a9a5aa2099678ed84a7e54ef687e3900894694c4eec1f5399f0487f6'}, +] + +builddependencies = [ + ('binutils', '2.39'), + ('CMake', '3.24.3'), +] + +build_shared_libs = True + +sanity_check_paths = { + 'files': ['bin/lsd2', 'lib/liblsd2.%s' % SHLIB_EXT], + 'dirs': [], +} + +sanity_check_commands = ['lsd2 -h'] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/l/L_RNA_scaffolder/L_RNA_scaffolder-20190530-GCC-11.3.0.eb b/easybuild/easyconfigs/l/L_RNA_scaffolder/L_RNA_scaffolder-20190530-GCC-11.3.0.eb index 59d93ffd865..778fc080c64 100644 --- a/easybuild/easyconfigs/l/L_RNA_scaffolder/L_RNA_scaffolder-20190530-GCC-11.3.0.eb +++ b/easybuild/easyconfigs/l/L_RNA_scaffolder/L_RNA_scaffolder-20190530-GCC-11.3.0.eb @@ -19,7 +19,8 @@ dependencies = [ fix_perl_shebang_for = ['*.pl'] -postinstallcmds = ["chmod a+x %(installdir)s/L_RNA_scaffolder.sh"] +# make sure exec permissions are set for all binaries and scripts (everything except README.md and easybuild subdir) +postinstallcmds = ["ls -d %(installdir)s/* | egrep -v '/README.md|/easybuild$' | xargs chmod a+x"] sanity_check_paths = { 'files': ['calculate-lc', 'calculate-pid', 'convert', 'convert_linker', 'count_connection_frequency', diff --git a/easybuild/easyconfigs/l/LayoutParser/LayoutParser-0.3.4-foss-2022a-CUDA-11.7.0.eb b/easybuild/easyconfigs/l/LayoutParser/LayoutParser-0.3.4-foss-2022a-CUDA-11.7.0.eb new file mode 100644 index 00000000000..b6dd4bfcb8b --- /dev/null +++ b/easybuild/easyconfigs/l/LayoutParser/LayoutParser-0.3.4-foss-2022a-CUDA-11.7.0.eb @@ -0,0 +1,99 @@ +easyblock = "PythonBundle" + +name = 'LayoutParser' +version = '0.3.4' +versionsuffix = '-CUDA-%(cudaver)s' + +homepage = 'https://layout-parser.github.io/' +description = "A Unified Toolkit for Deep Learning Based Document Image Analysis" + +toolchain = {'name': 'foss', 'version': '2022a'} + +dependencies = [ + ('CUDA', '11.7.0', '', SYSTEM), + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), + ('OpenCV', '4.6.0', versionsuffix + '-contrib'), + ('Pillow', '9.1.1'), + ('PyYAML', '6.0'), + ('ImageMagick', '7.1.0-37'), # needed by Wand + ('poppler', '22.12.0'), # needed by pdf2image + ('protobuf-python', '3.19.4'), # needed by google-api-core + ('pycocotools', '2.0.6'), # needed by effdet + ('PyTorch-Image-Models', '0.9.2', versionsuffix), # needed by effdet + ('tqdm', '4.64.0'), # needed by iopath + ('torchvision', '0.13.1', versionsuffix), # layoutmodels extra +] + +use_pip = True + +# remove opencv-python from requirements: since pip is not aware of cv2 in OpenCV from EB +_del_opencv_req = "sed -i '/opencv-python/d' setup.py &&" +# relax dependency on PyTorch of effdet +_relax_torch_req = "sed -i 's/torch >= 1.12.1/torch >= 1.12.0/' setup.py &&" + +exts_list = [ + ('portalocker', '2.7.0', { + 'checksums': ['032e81d534a88ec1736d03f780ba073f047a06c478b06e2937486f334e955c51'], + }), + ('iopath', '0.1.10', { + 'checksums': ['3311c16a4d9137223e20f141655759933e1eda24f8bff166af834af3c645ef01'], + }), + ('Wand', '0.6.11', { + 'checksums': ['b661700da9f8f1e931e52726e4fc643a565b9514f5883d41b773e3c37c9fa995'], + }), + ('pdfminer.six', '20221105', { + 'modulename': 'pdfminer', + 'checksums': ['8448ab7b939d18b64820478ecac5394f482d7a79f5f7eaa7703c6c959c175e1d'], + 'use_pip_extras': 'image', + }), + ('pdfplumber', '0.9.0', { + 'checksums': ['a43a213e125ed72b2358c0d3428f9b72f83939109ec33b77ef9325eeab9846f0'], + }), + ('pdf2image', '1.16.3', { + 'checksums': ['74208810c2cef4d9e347769b8e62a52303982ddb4f2dfd744c7ab4b940ae287e'], + }), + ('antlr4-python3-runtime', '4.9.3', { + 'modulename': 'antlr4', + 'checksums': ['f224469b4168294902bb1efa80a8bf7855f24c99aef99cbefc1bcd3cce77881b'], + }), + ('omegaconf', '2.3.0', { + 'checksums': ['d5d4b6d29955cc50ad50c46dc269bcd92c6e00f5f90d23ab5fee7bfca4ba4cc7'], + }), + ('cachetools', '4.2.4', { + 'checksums': ['89ea6f1b638d5a73a4f9226be57ac5e4f399d22770b92355f92dcb0f7f001693'], + }), + ('google-auth', '1.35.0', { + 'modulename': 'google.auth', + 'checksums': ['b7033be9028c188ee30200b204ea00ed82ea1162e8ac1df4aa6ded19a191d88e'], + }), + ('googleapis-common-protos', '1.56.4', { + 'modulename': 'google.api', + 'checksums': ['c25873c47279387cfdcbdafa36149887901d36202cb645a0e4f29686bf6e4417'], + }), + ('google-api-core', '1.32.0', { + 'modulename': 'google.api_core', + 'checksums': ['101c3c4cf8e7d53badd1dbca7071464353a04b17319a3dbb3a94eaa893da091c'], + 'use_pip_extras': 'grpc', + }), + ('google-cloud-vision', '1.0.2', { + 'modulename': 'google.cloud.vision', + 'checksums': ['0c349f771ee49027781e05df2efa6fc1a8b4f7d1d74ab57675f9151a04b01d6f'], + }), + ('pytesseract', '0.3.8', { + 'checksums': ['6148a01e4375760862e8f56ea718e22b5d13b281454df46ea8dac9807793fc5a'], + }), + ('effdet', '0.4.1', { + 'checksums': ['ac5589fd304a5650c201986b2ef5f8e10c111093a71b1c49fa6b8817710812b5'], + 'preinstallopts': _relax_torch_req, + }), + ('layoutparser', version, { + 'checksums': ['0dfb2194c36a5ad1075b8310f3cbc280c00306d1758cef127d20283f7ce085ea'], + 'preinstallopts': _del_opencv_req, + 'use_pip_extras': 'ocr,gcv,tesseract,layoutmodels,effdet', + }), +] + +sanity_pip_check = True + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/l/LayoutParser/LayoutParser-0.3.4-foss-2022a.eb b/easybuild/easyconfigs/l/LayoutParser/LayoutParser-0.3.4-foss-2022a.eb new file mode 100644 index 00000000000..792b0550540 --- /dev/null +++ b/easybuild/easyconfigs/l/LayoutParser/LayoutParser-0.3.4-foss-2022a.eb @@ -0,0 +1,97 @@ +easyblock = "PythonBundle" + +name = 'LayoutParser' +version = '0.3.4' + +homepage = 'https://layout-parser.github.io/' +description = "A Unified Toolkit for Deep Learning Based Document Image Analysis" + +toolchain = {'name': 'foss', 'version': '2022a'} + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), + ('OpenCV', '4.6.0', '-contrib'), + ('Pillow', '9.1.1'), + ('PyYAML', '6.0'), + ('ImageMagick', '7.1.0-37'), # needed by Wand + ('poppler', '22.12.0'), # needed by pdf2image + ('protobuf-python', '3.19.4'), # needed by google-api-core + ('pycocotools', '2.0.6'), # needed by effdet + ('PyTorch-Image-Models', '0.9.2'), # needed by effdet + ('tqdm', '4.64.0'), # needed by iopath + ('torchvision', '0.13.1'), # layoutmodels extra +] + +use_pip = True + +# remove opencv-python from requirements: since pip is not aware of cv2 in OpenCV from EB +_del_opencv_req = "sed -i '/opencv-python/d' setup.py &&" +# relax dependency on PyTorch of effdet +_relax_torch_req = "sed -i 's/torch >= 1.12.1/torch >= 1.12.0/' setup.py &&" + +exts_list = [ + ('portalocker', '2.7.0', { + 'checksums': ['032e81d534a88ec1736d03f780ba073f047a06c478b06e2937486f334e955c51'], + }), + ('iopath', '0.1.10', { + 'checksums': ['3311c16a4d9137223e20f141655759933e1eda24f8bff166af834af3c645ef01'], + }), + ('Wand', '0.6.11', { + 'checksums': ['b661700da9f8f1e931e52726e4fc643a565b9514f5883d41b773e3c37c9fa995'], + }), + ('pdfminer.six', '20221105', { + 'modulename': 'pdfminer', + 'checksums': ['8448ab7b939d18b64820478ecac5394f482d7a79f5f7eaa7703c6c959c175e1d'], + 'use_pip_extras': 'image', + }), + ('pdfplumber', '0.9.0', { + 'checksums': ['a43a213e125ed72b2358c0d3428f9b72f83939109ec33b77ef9325eeab9846f0'], + }), + ('pdf2image', '1.16.3', { + 'checksums': ['74208810c2cef4d9e347769b8e62a52303982ddb4f2dfd744c7ab4b940ae287e'], + }), + ('antlr4-python3-runtime', '4.9.3', { + 'modulename': 'antlr4', + 'checksums': ['f224469b4168294902bb1efa80a8bf7855f24c99aef99cbefc1bcd3cce77881b'], + }), + ('omegaconf', '2.3.0', { + 'checksums': ['d5d4b6d29955cc50ad50c46dc269bcd92c6e00f5f90d23ab5fee7bfca4ba4cc7'], + }), + ('cachetools', '4.2.4', { + 'checksums': ['89ea6f1b638d5a73a4f9226be57ac5e4f399d22770b92355f92dcb0f7f001693'], + }), + ('google-auth', '1.35.0', { + 'modulename': 'google.auth', + 'checksums': ['b7033be9028c188ee30200b204ea00ed82ea1162e8ac1df4aa6ded19a191d88e'], + }), + ('googleapis-common-protos', '1.56.4', { + 'modulename': 'google.api', + 'checksums': ['c25873c47279387cfdcbdafa36149887901d36202cb645a0e4f29686bf6e4417'], + }), + ('google-api-core', '1.32.0', { + 'modulename': 'google.api_core', + 'checksums': ['101c3c4cf8e7d53badd1dbca7071464353a04b17319a3dbb3a94eaa893da091c'], + 'use_pip_extras': 'grpc', + }), + ('google-cloud-vision', '1.0.2', { + 'modulename': 'google.cloud.vision', + 'checksums': ['0c349f771ee49027781e05df2efa6fc1a8b4f7d1d74ab57675f9151a04b01d6f'], + }), + ('pytesseract', '0.3.8', { + 'checksums': ['6148a01e4375760862e8f56ea718e22b5d13b281454df46ea8dac9807793fc5a'], + }), + ('effdet', '0.4.1', { + 'checksums': ['ac5589fd304a5650c201986b2ef5f8e10c111093a71b1c49fa6b8817710812b5'], + 'preinstallopts': _relax_torch_req, + }), + ('layoutparser', version, { + 'checksums': ['0dfb2194c36a5ad1075b8310f3cbc280c00306d1758cef127d20283f7ce085ea'], + 'preinstallopts': _del_opencv_req, + 'use_pip_extras': 'ocr,gcv,tesseract,layoutmodels,effdet', + }), +] + +sanity_pip_check = True + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/l/LibLZF/LibLZF-3.6-GCCcore-11.3.0.eb b/easybuild/easyconfigs/l/LibLZF/LibLZF-3.6-GCCcore-11.3.0.eb new file mode 100644 index 00000000000..f278878029d --- /dev/null +++ b/easybuild/easyconfigs/l/LibLZF/LibLZF-3.6-GCCcore-11.3.0.eb @@ -0,0 +1,31 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# Author: Denis Kristak +# Update: Thomas Hoffmann (EMBL), Denis Kristak +easyblock = 'ConfigureMake' + +name = 'LibLZF' +version = '3.6' + +homepage = 'http://oldhome.schmorp.de/marc/liblzf.html' +description = """LibLZF is a very small data compression library. It consists of only two .c and two .h files +and is very easy to incorporate into your own programs. The compression algorithm is very, very fast, yet still +written in portable C.""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +source_urls = ['http://dist.schmorp.de/liblzf/Attic/'] +sources = ['liblzf-%(version)s.tar.gz'] +checksums = ['9c5de01f7b9ccae40c3f619d26a7abec9986c06c36d260c179cedd04b89fb46a'] + +builddependencies = [ + ('binutils', '2.38'), +] + +sanity_check_commands = ['lzf -h'] + +sanity_check_paths = { + 'files': ['bin/lzf', 'lib/liblzf.a'], + 'dirs': ['bin', 'lib'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/LibTIFF/LibTIFF-4.1.0-GCCcore-10.2.0.eb b/easybuild/easyconfigs/l/LibTIFF/LibTIFF-4.1.0-GCCcore-10.2.0.eb index c2e41230be6..f5661b09387 100644 --- a/easybuild/easyconfigs/l/LibTIFF/LibTIFF-4.1.0-GCCcore-10.2.0.eb +++ b/easybuild/easyconfigs/l/LibTIFF/LibTIFF-4.1.0-GCCcore-10.2.0.eb @@ -37,10 +37,11 @@ dependencies = [ ] configopts = "--enable-ld-version-script " -configopts += '--disable-webp --disable-libdeflate ' +configopts += "--disable-webp --disable-libdeflate " sanity_check_paths = { - 'files': ['bin/tiffinfo'], + 'files': ['bin/tiffdump', 'bin/tiffinfo', 'include/tiff.h', 'lib/libtiff.a', 'lib/libtiff.%s' % SHLIB_EXT, + 'lib/libtiffxx.a', 'lib/libtiffxx.%s' % SHLIB_EXT, 'lib/pkgconfig/libtiff-4.pc'], 'dirs': [], } diff --git a/easybuild/easyconfigs/l/LibTIFF/LibTIFF-4.1.0-GCCcore-8.3.0.eb b/easybuild/easyconfigs/l/LibTIFF/LibTIFF-4.1.0-GCCcore-8.3.0.eb index 43672697339..433c867d0d7 100644 --- a/easybuild/easyconfigs/l/LibTIFF/LibTIFF-4.1.0-GCCcore-8.3.0.eb +++ b/easybuild/easyconfigs/l/LibTIFF/LibTIFF-4.1.0-GCCcore-8.3.0.eb @@ -37,10 +37,11 @@ dependencies = [ ] configopts = "--enable-ld-version-script " -configopts += '--disable-webp --disable-libdeflate ' +configopts += "--disable-webp --disable-libdeflate " sanity_check_paths = { - 'files': ['bin/tiffinfo'], + 'files': ['bin/tiffdump', 'bin/tiffinfo', 'include/tiff.h', 'lib/libtiff.a', 'lib/libtiff.%s' % SHLIB_EXT, + 'lib/libtiffxx.a', 'lib/libtiffxx.%s' % SHLIB_EXT, 'lib/pkgconfig/libtiff-4.pc'], 'dirs': [], } diff --git a/easybuild/easyconfigs/l/LibTIFF/LibTIFF-4.1.0-GCCcore-9.3.0.eb b/easybuild/easyconfigs/l/LibTIFF/LibTIFF-4.1.0-GCCcore-9.3.0.eb index 69ec3684019..e6481f975cf 100644 --- a/easybuild/easyconfigs/l/LibTIFF/LibTIFF-4.1.0-GCCcore-9.3.0.eb +++ b/easybuild/easyconfigs/l/LibTIFF/LibTIFF-4.1.0-GCCcore-9.3.0.eb @@ -37,10 +37,11 @@ dependencies = [ ] configopts = "--enable-ld-version-script " -configopts += '--disable-webp --disable-libdeflate ' +configopts += "--disable-webp --disable-libdeflate " sanity_check_paths = { - 'files': ['bin/tiffinfo'], + 'files': ['bin/tiffdump', 'bin/tiffinfo', 'include/tiff.h', 'lib/libtiff.a', 'lib/libtiff.%s' % SHLIB_EXT, + 'lib/libtiffxx.a', 'lib/libtiffxx.%s' % SHLIB_EXT, 'lib/pkgconfig/libtiff-4.pc'], 'dirs': [], } 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 index bf4e3e54c68..06ba435fef8 100644 --- 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 @@ -26,11 +26,14 @@ dependencies = [ ] configopts = "--enable-ld-version-script " -configopts += '--disable-webp --disable-libdeflate ' +configopts += "--disable-webp --disable-libdeflate " sanity_check_paths = { - 'files': ['bin/tiffinfo'], + 'files': ['bin/tiffdump', 'bin/tiffinfo', 'include/tiff.h', 'lib/libtiff.a', 'lib/libtiff.%s' % SHLIB_EXT, + 'lib/libtiffxx.a', 'lib/libtiffxx.%s' % SHLIB_EXT, 'lib/pkgconfig/libtiff-4.pc'], 'dirs': [], } +sanity_check_commands = ["tiffinfo -h"] + moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/LibTIFF/LibTIFF-4.3.0-GCCcore-11.2.0.eb b/easybuild/easyconfigs/l/LibTIFF/LibTIFF-4.3.0-GCCcore-11.2.0.eb index 7d9585aa7b5..aff028c58ab 100644 --- a/easybuild/easyconfigs/l/LibTIFF/LibTIFF-4.3.0-GCCcore-11.2.0.eb +++ b/easybuild/easyconfigs/l/LibTIFF/LibTIFF-4.3.0-GCCcore-11.2.0.eb @@ -26,11 +26,14 @@ dependencies = [ ] configopts = "--enable-ld-version-script " -configopts += '--disable-webp --disable-libdeflate ' +configopts += "--disable-webp --disable-libdeflate " sanity_check_paths = { - 'files': ['bin/tiffinfo'], + 'files': ['bin/tiffdump', 'bin/tiffinfo', 'include/tiff.h', 'lib/libtiff.a', 'lib/libtiff.%s' % SHLIB_EXT, + 'lib/libtiffxx.a', 'lib/libtiffxx.%s' % SHLIB_EXT, 'lib/pkgconfig/libtiff-4.pc'], 'dirs': [], } +sanity_check_commands = ["tiffinfo -h"] + moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/LibTIFF/LibTIFF-4.3.0-GCCcore-11.3.0.eb b/easybuild/easyconfigs/l/LibTIFF/LibTIFF-4.3.0-GCCcore-11.3.0.eb index a35ee9ee659..7e67eb521f7 100644 --- a/easybuild/easyconfigs/l/LibTIFF/LibTIFF-4.3.0-GCCcore-11.3.0.eb +++ b/easybuild/easyconfigs/l/LibTIFF/LibTIFF-4.3.0-GCCcore-11.3.0.eb @@ -27,11 +27,14 @@ dependencies = [ ] configopts = "--enable-ld-version-script " -configopts += '--disable-webp' +configopts += "--disable-webp " sanity_check_paths = { - 'files': ['bin/tiffinfo'], + 'files': ['bin/tiffdump', 'bin/tiffinfo', 'include/tiff.h', 'lib/libtiff.a', 'lib/libtiff.%s' % SHLIB_EXT, + 'lib/libtiffxx.a', 'lib/libtiffxx.%s' % SHLIB_EXT, 'lib/pkgconfig/libtiff-4.pc'], 'dirs': [], } +sanity_check_commands = ["tiffinfo -h"] + moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/LibTIFF/LibTIFF-4.4.0-GCCcore-12.2.0.eb b/easybuild/easyconfigs/l/LibTIFF/LibTIFF-4.4.0-GCCcore-12.2.0.eb index b2fb13f5ec3..d9ac3eaca8f 100644 --- a/easybuild/easyconfigs/l/LibTIFF/LibTIFF-4.4.0-GCCcore-12.2.0.eb +++ b/easybuild/easyconfigs/l/LibTIFF/LibTIFF-4.4.0-GCCcore-12.2.0.eb @@ -25,11 +25,14 @@ dependencies = [ ] configopts = "--enable-ld-version-script " -configopts += '--disable-webp' +configopts += "--disable-webp " sanity_check_paths = { - 'files': ['bin/tiffinfo'], + 'files': ['bin/tiffdump', 'bin/tiffinfo', 'include/tiff.h', 'lib/libtiff.a', 'lib/libtiff.%s' % SHLIB_EXT, + 'lib/libtiffxx.a', 'lib/libtiffxx.%s' % SHLIB_EXT, 'lib/pkgconfig/libtiff-4.pc'], 'dirs': [], } +sanity_check_commands = ["tiffinfo -h"] + moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/LuaJIT/LuaJIT-2.1.0-beta3_20230602-GCC-11.3.0.eb b/easybuild/easyconfigs/l/LuaJIT/LuaJIT-2.1.0-beta3_20230602-GCC-11.3.0.eb new file mode 100644 index 00000000000..65bed514c7e --- /dev/null +++ b/easybuild/easyconfigs/l/LuaJIT/LuaJIT-2.1.0-beta3_20230602-GCC-11.3.0.eb @@ -0,0 +1,38 @@ +easyblock = 'ConfigureMake' + +name = 'LuaJIT' +_ver = '2.1.0-beta3' +version = _ver + '_20230602' +_commit = '51fb2f2' + +homepage = "https://luajit.org/" +description = """LuaJIT is a Just-In-Time Compiler (JIT) for the Lua +programming language. Lua is a powerful, dynamic and light-weight programming +language. It may be embedded or used as a general-purpose, stand-alone +language. """ + +toolchain = {'name': 'GCC', 'version': '11.3.0'} + +# Releases are only made occasionally. You're strongly encouraged to follow the git branches. +sources = [{ + 'source_urls': ['https://github.com/LuaJIT/LuaJIT/archive'], + 'download_filename': '%s.tar.gz' % _commit, + 'filename': SOURCE_TAR_GZ, +}] +checksums = ['d081eaa1a5bca419763712397f4696e0dd10db8d9b2e091e15c71d9fc50c24c9'] + +dependencies = [('ncurses', '6.3')] + +skipsteps = ['configure'] +installopts = 'PREFIX=%(installdir)s' + +postinstallcmds = ['cd %%(installdir)s/bin && ln -s luajit-%s luajit' % _ver] + +sanity_check_paths = { + 'files': ["bin/luajit"], + 'dirs': [], +} + +sanity_check_commands = ['luajit -v'] + +moduleclass = "lang" diff --git a/easybuild/easyconfigs/l/LuaRocks/LuaRocks-3.9.2-GCCcore-11.3.0.eb b/easybuild/easyconfigs/l/LuaRocks/LuaRocks-3.9.2-GCCcore-11.3.0.eb new file mode 100644 index 00000000000..055a45cf5ca --- /dev/null +++ b/easybuild/easyconfigs/l/LuaRocks/LuaRocks-3.9.2-GCCcore-11.3.0.eb @@ -0,0 +1,35 @@ +easyblock = 'ConfigureMake' + +name = 'LuaRocks' +version = '3.9.2' + +homepage = 'https://luarocks.org' +description = """ +LuaRocks is the package manager for Lua modules. It allows you to create and +install Lua modules as self-contained packages called rocks. +""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +source_urls = ['https://luarocks.github.io/luarocks/releases/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['bca6e4ecc02c203e070acdb5f586045d45c078896f6236eb46aa33ccd9b94edb'] + +builddependencies = [ + ('binutils', '2.38'), +] + +dependencies = [ + ('Lua', '5.4.4'), +] + +configopts = '--with-lua=$EBROOTLUA' + +sanity_check_paths = { + 'files': ['bin/luarocks', 'bin/luarocks-admin'], + 'dirs': ['etc/luarocks', 'share/lua'] +} + +sanity_check_commands = ['luarocks --help'] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/l/libSBML/libSBML-5.19.0-GCC-10.2.0.eb b/easybuild/easyconfigs/l/libSBML/libSBML-5.19.0-GCC-10.2.0.eb new file mode 100644 index 00000000000..bbf22c8faf6 --- /dev/null +++ b/easybuild/easyconfigs/l/libSBML/libSBML-5.19.0-GCC-10.2.0.eb @@ -0,0 +1,79 @@ +## +# This is a contribution from SIB Swiss Institute of Bioinformatics +# Homepage: https://www.sib.swiss/research-infrastructure/competence-centers/vital-it +# +# Authors:: Sebastien Moretti +# Modified by: Toni Harzendorf +# +# Notes:: Patch libsbml-fix_install_libpaths.patch comes from Fedora +# https://src.fedoraproject.org/rpms/libsbml/blob/rawhide/f/libsbml-fix_install_libpaths.patch +## +easyblock = 'CMakeMake' + +name = 'libSBML' +version = '5.19.0' + +# NOTE not in the license list of EB +# software_license = 'LGPLv2+' +software_license_urls = ['http://sbml.org/Software/libSBML/LibSBML_License'] +docurls = [ + 'https://github.com/sbmlteam/libsbml/releases/tag/v%(version)s', + 'http://sbml.org/Software/libSBML', +] + +homepage = 'http://sbml.org/Software/libSBML' +description = """libSBML (Systems Biology Markup Language library) is a free, open-source +programming library to help you read, write, manipulate, translate, and +validate SBML files and data streams. It's not an application itself (though +it does come with example programs), but rather a library you embed in your +own applications.""" + +toolchain = {'name': 'GCC', 'version': '10.2.0'} + +source_urls = ['https://downloads.sourceforge.net/project/sbml/libsbml/%(version)s/stable/'] +sources = ['libSBML-%(version)s-core-plus-packages-src.tar.gz'] +patches = [ + 'libsbml-fix_install_libpaths.patch', # Fix some installation library paths (from Fedora) + 'libsbml-fix_perl_auto_case.patch', # Fix the misname for Perl .so binding folder + # (https://sourceforge.net/p/sbml/libsbml/476/) +] +checksums = [ + 'a7f0e18be78ff0e064e4cdb1cd86634d08bc33be5250db4a1878bd81eeb8b547', # libSBML-5.19.0-core-plus-packages-src.tar.gz + '1975b9372be00c5056e1f3408b8829e749adb1edb3345fd109d5c802b5219e45', # libsbml-fix_install_libpaths.patch + '52b3274ce1fdfb329bc53feb67b9862833a1240539eca2f137fcdca00800e34e', # libsbml-fix_perl_auto_case.patch +] + +builddependencies = [ + ('CMake', '3.18.4'), + ('make', '4.3'), + ('Check', '0.15.2'), + ('SWIG', '4.0.2'), + ('expat', '2.2.9'), + ('bzip2', '1.0.8'), + ('zlib', '1.2.11'), +] + +dependencies = [ + ('Perl', '5.32.0'), +] + +# Java jar, Ruby or Octave can also be build here. +# Python libSBML binding better done from https://pypi.org/project/python-libsbml/ +configure_cmd = 'cmake -DCMAKE_INSTALL_PREFIX=%(installdir)s -DWITH_JAVA=OFF ' +configure_cmd += '-DWITH_CHECK=ON -DWITH_SWIG=ON -DWITH_PERL=ON -DWITH_PYTHON=OFF ' +configure_cmd += '-DWITH_EXPAT=ON -DWITH_LIBXML=OFF ' +configure_cmd += '-DENABLE_{LAYOUT,QUAL,COMP,FBC,RENDER,GROUPS,MULTI,DISTRIB}=ON ' +configure_cmd += '../libSBML-%(version)s-Source/' + +runtest = 'check' + +sanity_check_paths = { + 'files': ['lib64/libsbml.%s' % SHLIB_EXT, 'lib64/perl5/vendor_perl/LibSBML.pm'], + 'dirs': ['lib64', 'include', 'share'] +} + +modextrapaths = { + 'PERL5LIB': 'lib64/perl5/vendor_perl/', +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/l/libavif/libavif-0.11.1-foss-2022a.eb b/easybuild/easyconfigs/l/libavif/libavif-0.11.1-foss-2022a.eb new file mode 100644 index 00000000000..b34d2a8449b --- /dev/null +++ b/easybuild/easyconfigs/l/libavif/libavif-0.11.1-foss-2022a.eb @@ -0,0 +1,36 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# Author: Denis Kristak (Inuits) +# Update: Thomas Hoffmann (EMBL), Denis Kristak (Inuits) +easyblock = 'CMakeMake' + +name = 'libavif' +version = '0.11.1' + +homepage = 'https://github.com/AOMediaCodec/libavif' +description = """This library aims to be a friendly, portable C implementation of the AV1 Image File Format, +as described here: https://aomediacodec.github.io/av1-avif/ +""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +source_urls = ['https://github.com/AOMediaCodec/libavif/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['0eb49965562a0e5e5de58389650d434cff32af84c34185b6c9b7b2fccae06d4e'] + +builddependencies = [ + ('CMake', '3.23.1'), +] + +dependencies = [ + ('NASM', '2.15.05'), + ('Meson', '0.62.1'), + ('Ninja', '1.10.2'), + ('Rust', '1.60.0'), +] + +sanity_check_paths = { + 'files': ['lib/libavif.%s' % SHLIB_EXT, 'include/avif/avif.h'], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/l/libcircle/libcircle-0.3-gompi-2022a.eb b/easybuild/easyconfigs/l/libcircle/libcircle-0.3-gompi-2022a.eb new file mode 100644 index 00000000000..0b622840791 --- /dev/null +++ b/easybuild/easyconfigs/l/libcircle/libcircle-0.3-gompi-2022a.eb @@ -0,0 +1,38 @@ +## +# Authors: +# * Petar Forai +# * Robert Mijakovic +## +easyblock = 'ConfigureMake' + +name = 'libcircle' +version = '0.3' + +homepage = 'https://github.com/hpc/libcircle/' + +description = """ + An API to provide an efficient distributed queue on a cluster. libcircle is an + API for distributing embarrassingly parallel workloads using self-stabilization. +""" + +toolchain = {'name': 'gompi', 'version': '2022a'} +toolchainopts = {'usempi': True, 'pic': True} + +github_account = 'hpc' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['fd8bc6e4dcc6fdec9d2a3d1c78a4060948ae4f11f0b278792610d6c05d53e14c'] + +builddependencies = [ + ('Autotools', '20220317'), + ('pkgconf', '1.8.0'), +] + +preconfigopts = './autogen.sh && ' + +sanity_check_paths = { + 'files': ['include/%(name)s.h', 'lib/%(name)s.a', 'lib/%%(name)s.%s' % SHLIB_EXT], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libde265/libde265-1.0.11-GCC-11.3.0.eb b/easybuild/easyconfigs/l/libde265/libde265-1.0.11-GCC-11.3.0.eb new file mode 100644 index 00000000000..7640cb6a545 --- /dev/null +++ b/easybuild/easyconfigs/l/libde265/libde265-1.0.11-GCC-11.3.0.eb @@ -0,0 +1,33 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# Author: Denis Kristak +easyblock = 'CMakeMake' + +name = 'libde265' +version = '1.0.11' + +homepage = 'https://github.com/strukturag/libde265' +description = "libde265 is an open source implementation of the h.265 video codec" + +toolchain = {'name': 'GCC', 'version': '11.3.0'} + +source_urls = ['https://github.com/strukturag/libde265/releases/download/v%(version)s/'] +sources = [SOURCE_TAR_GZ] +checksums = ['2f8f12cabbdb15e53532b7c1eb964d4e15d444db1be802505e6ac97a25035bab'] + +builddependencies = [ + ('CMake', '3.23.1'), +] + +configopts = "-DENABLE_DECODER=ON -DENABLE_ENCODER=ON" + +sanity_check_paths = { + 'files': ['bin/dec265', 'bin/enc265', 'lib/libde265.%s' % SHLIB_EXT, 'lib/pkgconfig/libde265.pc'], + 'dirs': ['include/libde265', 'lib/cmake/libde265'], +} + +sanity_check_commands = [ + "dec265 --help", + "enc265 --help", +] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/l/libevent/libevent-2.1.8-GCCcore-8.3.0.eb b/easybuild/easyconfigs/l/libevent/libevent-2.1.8-GCCcore-8.3.0.eb new file mode 100644 index 00000000000..7506631c33e --- /dev/null +++ b/easybuild/easyconfigs/l/libevent/libevent-2.1.8-GCCcore-8.3.0.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'libevent' +version = '2.1.8' + +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': '8.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 = ['965cc5a8bb46ce4199a47e9b2c9e1cae3b137e8356ffdad6d94d3b9069b71dc2'] + +builddependencies = [ + ('binutils', '2.32'), +] + +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.18.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/l/libfabric/libfabric-1.18.0-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..a0acd145b4c --- /dev/null +++ b/easybuild/easyconfigs/l/libfabric/libfabric-1.18.0-GCCcore-12.3.0.eb @@ -0,0 +1,62 @@ +easyblock = 'ConfigureMake' + +name = 'libfabric' +version = '1.18.0' + +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. +""" + +# The psm3 provider (enabled by default) requires an AVX capable system to run +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/ofiwg/libfabric/releases/download/v%(version)s'] +sources = [SOURCE_TAR_BZ2] +patches = [ + '%(name)s-%(version)s_disable-psm3-avx-config.patch', +] +checksums = [ + {'libfabric-1.18.0.tar.bz2': '912fb7c7b3cf2a91140520962b004a1c5d2f39184adbbd98ae5919b0178afd43'}, + {'libfabric-1.18.0_disable-psm3-avx-config.patch': + '79db0bfe759d65ef68301701e0842f1e8dcd4ace8bfc5bca8f7c8846501a67cb'}, +] + +builddependencies = [ + ('binutils', '2.40'), + ('pkgconf', '1.9.5'), + ('Autotools', '20220317'), +] + +dependencies = [ + ('numactl', '2.0.16'), +] + +osdependencies = [OS_PKG_IBVERBS_DEV] + +# Regenerate build files to pick up psm3-axv-config patch +preconfigopts = "./autogen.sh &&" + +# 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 " + +buildopts = "V=1" + +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.18.0_disable-psm3-avx-config.patch b/easybuild/easyconfigs/l/libfabric/libfabric-1.18.0_disable-psm3-avx-config.patch new file mode 100644 index 00000000000..a9492c6f059 --- /dev/null +++ b/easybuild/easyconfigs/l/libfabric/libfabric-1.18.0_disable-psm3-avx-config.patch @@ -0,0 +1,90 @@ +The AVX/AVX2 detection seems to be based on compiler instead of CPU capabilities +which can lead to broken binaries as result of the build (eg AVX2 binaries in Intel IvyBridge) +Completetly disable this detection as it is already set by EasyBuild +author: Alex Domingo (Vrije Universiteit Brussel) +--- prov/psm3/configure.m4.orig 2023-06-04 15:45:48.900664549 +0200 ++++ prov/psm3/configure.m4 2023-06-04 16:00:11.300135166 +0200 +@@ -134,45 +134,45 @@ + ]) + CFLAGS=$save_CFLAGS + +- AC_MSG_CHECKING([for -mavx support]) +- save_CFLAGS=$CFLAGS +- CFLAGS="$PSM3_STRIP_OPTFLAGS -mavx -O0" +- AC_LINK_IFELSE( +- [AC_LANG_PROGRAM( +- [[#include ]], +- [[unsigned long long _a[4] = {1ULL,2ULL,3ULL,4ULL}; +- __m256i vA = _mm256_loadu_si256((__m256i *)_a); +- __m256i vB; +- _mm256_store_si256(&vB, vA); +- return 0;]]) +- ],[ +- AC_MSG_RESULT([yes]) +- PSM3_ARCH_CFLAGS="-mavx" +- ],[ +- psm3_happy=0 +- AC_MSG_RESULT([no]) +- AC_MSG_NOTICE([psm3 requires minimum of avx instruction set to build]) +- ]) +- CFLAGS=$save_CFLAGS ++dnl AC_MSG_CHECKING([for -mavx support]) ++dnl save_CFLAGS=$CFLAGS ++dnl CFLAGS="$PSM3_STRIP_OPTFLAGS -mavx -O0" ++dnl AC_LINK_IFELSE( ++dnl [AC_LANG_PROGRAM( ++dnl [[#include ]], ++dnl [[unsigned long long _a[4] = {1ULL,2ULL,3ULL,4ULL}; ++dnl __m256i vA = _mm256_loadu_si256((__m256i *)_a); ++dnl __m256i vB; ++dnl _mm256_store_si256(&vB, vA); ++dnl return 0;]]) ++dnl ],[ ++dnl AC_MSG_RESULT([yes]) ++dnl PSM3_ARCH_CFLAGS="-mavx" ++dnl ],[ ++dnl psm3_happy=0 ++dnl AC_MSG_RESULT([no]) ++dnl AC_MSG_NOTICE([psm3 requires minimum of avx instruction set to build]) ++dnl ]) ++dnl CFLAGS=$save_CFLAGS + +- AC_MSG_CHECKING([for -mavx2 support]) +- save_CFLAGS=$CFLAGS +- CFLAGS="$PSM3_STRIP_OPTFLAGS -mavx2 -O0" +- AC_LINK_IFELSE( +- [AC_LANG_PROGRAM( +- [[#include ]], +- [[unsigned long long _a[4] = {1ULL,2ULL,3ULL,4ULL}; +- __m256i vA = _mm256_loadu_si256((__m256i *)_a); +- __m256i vB = _mm256_add_epi64(vA, vA); +- (void)vB; +- return 0;]]) +- ],[ +- AC_MSG_RESULT([yes]) +- PSM3_ARCH_CFLAGS="-mavx2" +- ],[ +- AC_MSG_RESULT([no]) +- ]) +- CFLAGS=$save_CFLAGS ++dnl AC_MSG_CHECKING([for -mavx2 support]) ++dnl save_CFLAGS=$CFLAGS ++dnl CFLAGS="$PSM3_STRIP_OPTFLAGS -mavx2 -O0" ++dnl AC_LINK_IFELSE( ++dnl [AC_LANG_PROGRAM( ++dnl [[#include ]], ++dnl [[unsigned long long _a[4] = {1ULL,2ULL,3ULL,4ULL}; ++dnl __m256i vA = _mm256_loadu_si256((__m256i *)_a); ++dnl __m256i vB = _mm256_add_epi64(vA, vA); ++dnl (void)vB; ++dnl return 0;]]) ++dnl ],[ ++dnl AC_MSG_RESULT([yes]) ++dnl PSM3_ARCH_CFLAGS="-mavx2" ++dnl ],[ ++dnl AC_MSG_RESULT([no]) ++dnl ]) ++dnl CFLAGS=$save_CFLAGS + + AC_PROG_GREP() + diff --git a/easybuild/easyconfigs/l/libheif/libheif-1.16.2-GCC-11.3.0.eb b/easybuild/easyconfigs/l/libheif/libheif-1.16.2-GCC-11.3.0.eb new file mode 100644 index 00000000000..9d966d5571b --- /dev/null +++ b/easybuild/easyconfigs/l/libheif/libheif-1.16.2-GCC-11.3.0.eb @@ -0,0 +1,42 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# Author: Denis Kristak +easyblock = 'CMakeMake' + +name = 'libheif' +version = '1.16.2' + +homepage = 'https://github.com/strukturag/libheif' +description = "libheif is an HEIF and AVIF file format decoder and encoder" + +toolchain = {'name': 'GCC', 'version': '11.3.0'} + +source_urls = ['https://github.com/strukturag/libheif/releases/download/v%(version)s/'] +sources = [SOURCE_TAR_GZ] +checksums = ['7f97e4205c0bd9f9b8560536c8bd2e841d1c9a6d610401eb3eb87ed9cdfe78ea'] + +builddependencies = [ + ('CMake', '3.23.1'), +] + +dependencies = [ + ('libpng', '1.6.37'), + ('libjpeg-turbo', '2.1.3'), + ('libde265', '1.0.11'), + ('x265', '3.5'), + ('Gdk-Pixbuf', '2.42.8'), +] + +# build both static and shared libraries +configopts = [ + "-DBUILD_SHARED_LIBS=OFF", + "-DBUILD_SHARED_LIBS=ON", +] + +sanity_check_paths = { + 'files': ['bin/heif-info', 'lib/libheif.a', 'lib/libheif.%s' % SHLIB_EXT, 'lib/pkgconfig/libheif.pc'], + 'dirs': ['include/libheif'], +} + +sanity_check_commands = ["heif-info --help"] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/l/libjxl/libjxl-0.8.1-foss-2022a.eb b/easybuild/easyconfigs/l/libjxl/libjxl-0.8.1-foss-2022a.eb new file mode 100644 index 00000000000..c9c368990b3 --- /dev/null +++ b/easybuild/easyconfigs/l/libjxl/libjxl-0.8.1-foss-2022a.eb @@ -0,0 +1,53 @@ +easyblock = 'CMakeMake' + +name = 'libjxl' +version = '0.8.1' + +homepage = 'https://github.com/libjxl/libjxl' +description = "JPEG XL image format reference implementation" + +toolchain = {'name': 'foss', 'version': '2022a'} +toolchainopts = {'optarch': False} # optarch causes some test failures + +github_account = 'libjxl' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['60f43921ad3209c9e180563025eda0c0f9b1afac51a2927b9ff59fff3950dc56'] + +builddependencies = [ + ('binutils', '2.38'), + ('CMake', '3.23.1'), + ('googletest', '1.11.0'), + ('pkg-config', '0.29.2'), + ('Highway', '1.0.4'), # Highway only has a static library +] + +dependencies = [ + ('LittleCMS', '2.13.1'), + ('Brotli', '1.0.9'), + ('libjpeg-turbo', '2.1.3'), + ('libpng', '1.6.37'), + ('zlib', '1.2.12'), + ('giflib', '5.2.1'), + ('libwebp', '1.2.4'), + ('OpenEXR', '3.1.5'), + ('gperftools', '2.10'), +] + +configopts = '-DJPEGXL_WARNINGS_AS_ERRORS=OFF -DJPEGXL_ENABLE_SJPEG=OFF -DJPEGXL_ENABLE_SKCMS=OFF ' +# building man pages requires/uses asciidoc (which may be installed in OS, and may fail) +configopts += '-DJPEGXL_ENABLE_MANPAGES=OFF ' +configopts += '-DJPEGXL_FORCE_SYSTEM_BROTLI=ON -DJPEGXL_FORCE_SYSTEM_HWY=ON ' +configopts += '-DJPEGXL_FORCE_SYSTEM_GTEST=ON -DJPEGXL_FORCE_SYSTEM_LCMS2=ON ' + +sanity_check_paths = { + 'files': ['bin/cjxl', 'bin/djxl', 'lib/libjxl.%s' % SHLIB_EXT], + 'dirs': ['include'], +} + +sanity_check_commands = [ + "cjxl --help", + "djxl --help", +] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.17-GCCcore-12.3.0.eb b/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.17-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..fd12768ece2 --- /dev/null +++ b/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.17-GCCcore-12.3.0.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'libpciaccess' +version = '0.17' + +homepage = 'https://cgit.freedesktop.org/xorg/lib/libpciaccess/' +description = """Generic PCI access library.""" + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} + +source_urls = ['https://www.x.org/releases/individual/lib/'] +sources = [SOURCE_TAR_GZ] +checksums = ['bf6985a77d2ecb00e2c79da3edfb26b909178ffca3f2e9d14ed0620259ab733b'] + +builddependencies = [ + ('binutils', '2.40'), + ('Autotools', '20220317'), + ('xorg-macros', '1.20.0'), +] + +sanity_check_paths = { + 'files': ['include/pciaccess.h', 'lib/libpciaccess.a'], + 'dirs': ['lib/pkgconfig'], +} + +moduleclass = 'system' diff --git a/easybuild/easyconfigs/l/libpspio/libpspio-0.2.4-GCC-11.2.0.eb b/easybuild/easyconfigs/l/libpspio/libpspio-0.2.4-GCC-11.2.0.eb new file mode 100644 index 00000000000..ab2b05cbf45 --- /dev/null +++ b/easybuild/easyconfigs/l/libpspio/libpspio-0.2.4-GCC-11.2.0.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'libpspio' +version = '0.2.4' + +homepage = 'https://gitlab.com/ElectronicStructureLibrary/libpspio' +description = """libpspio is a library to read and write pseudopotentials in multiple formats.""" + +toolchain = {'name': 'GCC', 'version': '11.2.0'} + +source_urls = ['https://gitlab.com/ElectronicStructureLibrary/libpspio/uploads/7efa924be97bd46354237ca3fb89495e'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['cb3d51ffa6b822305bb943edc7ddfaf1cfc1b928f0594330d732330bfc081850'] + +builddependencies = [('pkgconf', '1.8.0')] + +dependencies = [('GSL', '2.7')] + +configopts = ' --enable-gsl --enable-fortran ' + +sanity_check_paths = { + 'files': ['include/pspiof_m.mod', 'include/pspio.h', 'lib/libpspiof.a'], + 'dirs': [], +} + +moduleclass = 'phys' diff --git a/easybuild/easyconfigs/l/libpspio/libpspio-0.2.4-intel-compilers-2021.2.0.eb b/easybuild/easyconfigs/l/libpspio/libpspio-0.2.4-intel-compilers-2021.2.0.eb new file mode 100644 index 00000000000..1b5eab08afe --- /dev/null +++ b/easybuild/easyconfigs/l/libpspio/libpspio-0.2.4-intel-compilers-2021.2.0.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'libpspio' +version = '0.2.4' + +homepage = 'https://gitlab.com/ElectronicStructureLibrary/libpspio' +description = """libpspio is a library to read and write pseudopotentials in multiple formats.""" + +toolchain = {'name': 'intel-compilers', 'version': '2021.2.0'} + +source_urls = ['https://gitlab.com/ElectronicStructureLibrary/libpspio/uploads/7efa924be97bd46354237ca3fb89495e'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['cb3d51ffa6b822305bb943edc7ddfaf1cfc1b928f0594330d732330bfc081850'] + +builddependencies = [('pkg-config', '0.29.2')] + +dependencies = [('GSL', '2.7')] + +configopts = ' --enable-gsl --enable-fortran ' + +sanity_check_paths = { + 'files': ['include/pspiof_m.mod', 'include/pspio.h', 'lib/libpspiof.a'], + 'dirs': [], +} + +moduleclass = 'phys' diff --git a/easybuild/easyconfigs/l/libpspio/libpspio-0.2.4-intel-compilers-2021.4.0.eb b/easybuild/easyconfigs/l/libpspio/libpspio-0.2.4-intel-compilers-2021.4.0.eb new file mode 100644 index 00000000000..94c7f7dfe56 --- /dev/null +++ b/easybuild/easyconfigs/l/libpspio/libpspio-0.2.4-intel-compilers-2021.4.0.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'libpspio' +version = '0.2.4' + +homepage = 'https://gitlab.com/ElectronicStructureLibrary/libpspio' +description = """libpspio is a library to read and write pseudopotentials in multiple formats.""" + +toolchain = {'name': 'intel-compilers', 'version': '2021.4.0'} + +source_urls = ['https://gitlab.com/ElectronicStructureLibrary/libpspio/uploads/7efa924be97bd46354237ca3fb89495e'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['cb3d51ffa6b822305bb943edc7ddfaf1cfc1b928f0594330d732330bfc081850'] + +builddependencies = [('pkgconf', '1.8.0')] + +dependencies = [('GSL', '2.7')] + +configopts = ' --enable-gsl --enable-fortran ' + +sanity_check_paths = { + 'files': ['include/pspiof_m.mod', 'include/pspio.h', 'lib/libpspiof.a'], + 'dirs': [], +} + +moduleclass = 'phys' diff --git a/easybuild/easyconfigs/l/libsodium/libsodium-1.0.18-GCCcore-12.2.0.eb b/easybuild/easyconfigs/l/libsodium/libsodium-1.0.18-GCCcore-12.2.0.eb new file mode 100644 index 00000000000..c202df251e2 --- /dev/null +++ b/easybuild/easyconfigs/l/libsodium/libsodium-1.0.18-GCCcore-12.2.0.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'libsodium' +version = '1.0.18' + +homepage = 'https://doc.libsodium.org/' + +description = """ + Sodium is a modern, easy-to-use software library for encryption, decryption, + signatures, password hashing and more. +""" + +toolchain = {'name': 'GCCcore', 'version': '12.2.0'} +toolchainopts = {'pic': True} + +source_urls = [ + 'https://download.libsodium.org/libsodium/releases/', + 'https://download.libsodium.org/libsodium/releases/old/', + 'https://download.libsodium.org/libsodium/releases/old/unsupported/', +] +sources = [SOURCE_TAR_GZ] +checksums = ['6f504490b342a4f8a4c4a02fc9b866cbef8622d5df4e5452b46be121e46636c1'] + +builddependencies = [ + ('binutils', '2.39'), +] + +sanity_check_paths = { + 'files': ['include/sodium.h', 'lib/libsodium.so', 'lib/libsodium.a'], + 'dirs': ['include/sodium', 'lib/pkgconfig'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libtool/libtool-2.4.7-GCCcore-13.1.0.eb b/easybuild/easyconfigs/l/libtool/libtool-2.4.7-GCCcore-13.1.0.eb new file mode 100644 index 00000000000..cdad138698d --- /dev/null +++ b/easybuild/easyconfigs/l/libtool/libtool-2.4.7-GCCcore-13.1.0.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'libtool' +version = '2.4.7' + +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': '13.1.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['04e96c2404ea70c590c546eba4202a4e12722c640016c12b9b2f1ce3d481e9a8'] + +builddependencies = [ + ('binutils', '2.40'), +] + +dependencies = [ + ('M4', '1.4.19'), +] + +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/libxslt/libxslt-1.1.37-GCCcore-12.2.0.eb b/easybuild/easyconfigs/l/libxslt/libxslt-1.1.37-GCCcore-12.2.0.eb index 2b58bca7a16..4ca890df973 100644 --- a/easybuild/easyconfigs/l/libxslt/libxslt-1.1.37-GCCcore-12.2.0.eb +++ b/easybuild/easyconfigs/l/libxslt/libxslt-1.1.37-GCCcore-12.2.0.eb @@ -24,11 +24,13 @@ dependencies = [ ] # Make sure it doesn't pick up OS installed libgcrypt or Python -configopts = '--with-crypto=no --with-python=no ' +# enable building static libs +configopts = '--with-crypto=no --with-python=no --enable-static=yes ' sanity_check_paths = { - 'files': ['bin/xsltproc', 'include/libxslt/xslt.h', 'lib/%%(name)s.%s' % SHLIB_EXT], - 'dirs': [], + 'files': ['bin/xsltproc', 'include/libxslt/xslt.h', 'lib/%%(name)s.%s' % SHLIB_EXT, 'lib/%(name)s.a', + 'lib/libexslt.%s' % SHLIB_EXT, 'lib/libexslt.a'], + 'dirs': ['include/libxslt', 'include/libexslt'], } moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libxslt/libxslt-1.1.38-GCCcore-12.3.0.eb b/easybuild/easyconfigs/l/libxslt/libxslt-1.1.38-GCCcore-12.3.0.eb index 171353e0fac..3e21064eaf4 100644 --- a/easybuild/easyconfigs/l/libxslt/libxslt-1.1.38-GCCcore-12.3.0.eb +++ b/easybuild/easyconfigs/l/libxslt/libxslt-1.1.38-GCCcore-12.3.0.eb @@ -24,11 +24,13 @@ dependencies = [ ] # Make sure it doesn't pick up OS installed libgcrypt or Python -configopts = '--with-crypto=no --with-python=no ' +# enable building static libs +configopts = '--with-crypto=no --with-python=no --enable-static=yes ' sanity_check_paths = { - 'files': ['bin/xsltproc', 'include/libxslt/xslt.h', 'lib/%%(name)s.%s' % SHLIB_EXT], - 'dirs': [], + 'files': ['bin/xsltproc', 'include/libxslt/xslt.h', 'lib/%%(name)s.%s' % SHLIB_EXT, 'lib/%(name)s.a', + 'lib/libexslt.%s' % SHLIB_EXT, 'lib/libexslt.a'], + 'dirs': ['include/libxslt', 'include/libexslt'], } moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/lpsolve/lpsolve-5.5.2.11-GCC-12.2.0.eb b/easybuild/easyconfigs/l/lpsolve/lpsolve-5.5.2.11-GCC-12.2.0.eb new file mode 100644 index 00000000000..c52a27a7d3b --- /dev/null +++ b/easybuild/easyconfigs/l/lpsolve/lpsolve-5.5.2.11-GCC-12.2.0.eb @@ -0,0 +1,33 @@ +easyblock = 'CmdCp' + +name = 'lpsolve' +version = '5.5.2.11' + +homepage = 'https://sourceforge.net/projects/lpsolve/' +description = "Mixed Integer Linear Programming (MILP) solver" + +toolchain = {'name': 'GCC', 'version': '12.2.0'} + +source_urls = [SOURCEFORGE_SOURCE] +sources = ['lp_solve_%(version)s_source.tar.gz'] +checksums = ['6d4abff5cc6aaa933ae8e6c17a226df0fc0b671c438f69715d41d09fe81f902f'] + +local_lpsolve_ver = '%(version_major)s%(version_minor)s' +start_dir = 'lpsolve%s' % local_lpsolve_ver + +local_comp_cmd = 'sed -i "s/^c=.*/c=\'$CC\'/g" ccc && sed -i "s/^opts=.*/opts=\'$CFLAGS\'/g" ccc && ' +local_comp_cmd += "sh ccc" +cmds_map = [('.*', local_comp_cmd)] + +local_lpsolve_libname = 'liblpsolve%s' % local_lpsolve_ver +files_to_copy = [ + (['bin/ux64/%s.a' % local_lpsolve_libname, 'bin/ux64/%s.%s' % (local_lpsolve_libname, SHLIB_EXT)], 'lib'), + (['../lp*.h'], 'include'), +] + +sanity_check_paths = { + 'files': ['lib/%s.a' % local_lpsolve_libname, 'lib/%s.%s' % (local_lpsolve_libname, SHLIB_EXT)], + 'dirs': ['include'], +} + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/l/lwgrp/lwgrp-1.0.5-gompi-2022a.eb b/easybuild/easyconfigs/l/lwgrp/lwgrp-1.0.5-gompi-2022a.eb new file mode 100644 index 00000000000..c288e0a47a1 --- /dev/null +++ b/easybuild/easyconfigs/l/lwgrp/lwgrp-1.0.5-gompi-2022a.eb @@ -0,0 +1,36 @@ +# +# Author: Robert Mijakovic +# +easyblock = 'ConfigureMake' + +name = 'lwgrp' +version = '1.0.5' + +homepage = 'https://github.com/LLNL/lwgrp' +description = """The light-weight group library defines data structures and collective operations to +group MPI processes as an ordered set. Such groups are useful as substitutes for MPI communicators +when the overhead of communicator creation is too costly. For example, certain sorting algorithms +recursively divide processes into subgroups as the sort algorithm progresses. These groups may be +different with each invocation, so that it is inefficient to create and destroy communicators during +the sort routine.""" + +toolchain = {'name': 'gompi', 'version': '2022a'} + +github_account = 'LLNL' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['1fac5fad3aed9f0a83026c19f438a33f9807d69990284e452b646b44a95fe72b'] + +builddependencies = [ + ('Autotools', '20220317'), + ('pkgconf', '1.8.0'), +] + +preconfigopts = './autogen.sh && ' + +sanity_check_paths = { + 'files': ['include/%(name)s.h', 'lib/lib%%(name)s.%s' % SHLIB_EXT], + 'dirs': ['share/%(name)s'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/lxml/lxml-4.9.2-GCCcore-12.3.0.eb b/easybuild/easyconfigs/l/lxml/lxml-4.9.2-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..8584189eb55 --- /dev/null +++ b/easybuild/easyconfigs/l/lxml/lxml-4.9.2-GCCcore-12.3.0.eb @@ -0,0 +1,26 @@ +easyblock = 'PythonPackage' + +name = 'lxml' +version = '4.9.2' + +homepage = 'https://lxml.de/' +description = """The lxml XML toolkit is a Pythonic binding for the C libraries libxml2 and libxslt.""" + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} + +sources = [SOURCE_TAR_GZ] +checksums = ['2455cfaeb7ac70338b3257f41e21f0724f4b5b0c0e7702da67ee6c3640835b67'] + +builddependencies = [('binutils', '2.40')] + +dependencies = [ + ('Python', '3.11.3'), + ('libxml2', '2.11.4'), + ('libxslt', '1.1.38'), +] + +download_dep_fail = True +use_pip = True +sanity_pip_check = True + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/m/M4/M4-1.4.19-GCCcore-11.4.0.eb b/easybuild/easyconfigs/m/M4/M4-1.4.19-GCCcore-11.4.0.eb new file mode 100644 index 00000000000..cdfad17f02c --- /dev/null +++ b/easybuild/easyconfigs/m/M4/M4-1.4.19-GCCcore-11.4.0.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'M4' +version = '1.4.19' + +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.4.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['3be4a26d825ffdfda52a56fc43246456989a3630093cced3fbddf4771ee58a70'] + +# use same binutils version that was used when building GCC toolchain +builddependencies = [('binutils', '2.40', '', SYSTEM)] + +# '-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/MAFFT/MAFFT-7.505-GCC-12.2.0-with-extensions.eb b/easybuild/easyconfigs/m/MAFFT/MAFFT-7.505-GCC-12.2.0-with-extensions.eb new file mode 100644 index 00000000000..d979ccc2f0a --- /dev/null +++ b/easybuild/easyconfigs/m/MAFFT/MAFFT-7.505-GCC-12.2.0-with-extensions.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) +# 7.305 modified by: +# Adam Huffman (The Francis Crick Institute) +# 7.453 switch to Bundle by: +# Alex Domingo (Vrije Universiteit Brussel) +# Thomas Eylenbosch (Gluo NV) + +easyblock = 'Bundle' + +name = 'MAFFT' +version = '7.505' +versionsuffix = '-with-extensions' + +homepage = 'https://mafft.cbrc.jp/alignment/software/source.html' +description = """MAFFT is a multiple sequence alignment program for unix-like operating systems. +It offers a range of multiple alignment methods, L-INS-i (accurate; for alignment +of <∼200 sequences), FFT-NS-2 (fast; for alignment of <∼30,000 sequences), etc.""" + +toolchain = {'name': 'GCC', 'version': '12.2.0'} + +default_easyblock = 'ConfigureMake' +default_component_specs = { + 'source_urls': ['https://mafft.cbrc.jp/alignment/software/'], + 'sources': ['mafft-%(version)s%(versionsuffix)s-src.tgz'], + 'checksums': ['f54a78670fcd9960233bcc3b3dd359f395a71c0ced45a7be1cfeae19950ce6ff'], + 'skipsteps': ['configure'], + 'installopts': 'PREFIX=%(installdir)s', +} + +components = [ + (name, version, { + 'start_dir': 'mafft-%(version)s%(versionsuffix)s/core', + }), + ('%s Extensions' % name, version, { + 'start_dir': 'mafft-%(version)s%(versionsuffix)s/extensions', + }), +] + +sanity_check_paths = { + 'files': ['bin/mafft', 'libexec/mafft/mxscarnamod'], # mxscarnamod installed by MAFFT Extensions + 'dirs': ['libexec/mafft'], +} + +sanity_check_commands = ['mafft --version'] + +modextrapaths = {'MAFFT_BINARIES': 'libexec/mafft'} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/m/MAGeCK/MAGeCK-0.5.9.4-foss-2021a.eb b/easybuild/easyconfigs/m/MAGeCK/MAGeCK-0.5.9.4-foss-2021a.eb index ea581cdd09d..fa80cdacb44 100644 --- a/easybuild/easyconfigs/m/MAGeCK/MAGeCK-0.5.9.4-foss-2021a.eb +++ b/easybuild/easyconfigs/m/MAGeCK/MAGeCK-0.5.9.4-foss-2021a.eb @@ -29,7 +29,18 @@ download_dep_fail = True sanity_pip_check = True use_pip = True -sanity_check_commands = ["cd %(builddir)s/%(namelower)s-%(version)s/demo/demo1 && ./run.sh"] + [ - "%s -h" % x for x in ['mageck', 'mageckGSEA']] +postinstallcmds = ["cp -a demo %(installdir)s"] + +sanity_check_paths = { + 'files': ['bin/mageck', 'bin/mageckGSEA', 'bin/RRA'], + 'dirs': ['demo', 'lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = [ + # copy demo to build directory, after making sure it exists, so --sanity-check-only works; + # enable write permissions, since installation directory may be read-only + "mkdir -p %(builddir)s && cp -a %(installdir)s/demo %(builddir)s/ && chmod -R u+w %(builddir)s/demo", + "cd %(builddir)s/demo/demo1 && ./run.sh", +] + ["%s -h" % x for x in ['mageck', 'mageckGSEA']] moduleclass = 'bio' diff --git a/easybuild/easyconfigs/m/MAGeCK/MAGeCK-0.5.9.4-foss-2022a.eb b/easybuild/easyconfigs/m/MAGeCK/MAGeCK-0.5.9.4-foss-2022a.eb index cc54713c3c6..dcc58ecf8bf 100644 --- a/easybuild/easyconfigs/m/MAGeCK/MAGeCK-0.5.9.4-foss-2022a.eb +++ b/easybuild/easyconfigs/m/MAGeCK/MAGeCK-0.5.9.4-foss-2022a.eb @@ -30,7 +30,18 @@ download_dep_fail = True sanity_pip_check = True use_pip = True -sanity_check_commands = ["cd %(builddir)s/%(namelower)s-%(version)s/demo/demo1 && ./run.sh"] + [ - "%s -h" % x for x in ['mageck', 'mageckGSEA']] +postinstallcmds = ["cp -a demo %(installdir)s"] + +sanity_check_paths = { + 'files': ['bin/mageck', 'bin/mageckGSEA', 'bin/RRA'], + 'dirs': ['demo', 'lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = [ + # copy demo to build directory, after making sure it exists, so --sanity-check-only works; + # enable write permissions, since installation directory may be read-only + "mkdir -p %(builddir)s && cp -a %(installdir)s/demo %(builddir)s/ && chmod -R u+w %(builddir)s/demo", + "cd %(builddir)s/demo/demo1 && ./run.sh", +] + ["%s -h" % x for x in ['mageck', 'mageckGSEA']] moduleclass = 'bio' diff --git a/easybuild/easyconfigs/m/MAGeCK/MAGeCK-0.5.9.5-gfbf-2022b.eb b/easybuild/easyconfigs/m/MAGeCK/MAGeCK-0.5.9.5-gfbf-2022b.eb new file mode 100644 index 00000000000..b623b1b15ef --- /dev/null +++ b/easybuild/easyconfigs/m/MAGeCK/MAGeCK-0.5.9.5-gfbf-2022b.eb @@ -0,0 +1,43 @@ +# This easyconfig was created by the BEAR Software team at the University of Birmingham. +# Updated: Denis Kristak (Inuits) +easyblock = 'PythonPackage' + +name = 'MAGeCK' +version = '0.5.9.5' + +homepage = "https://sourceforge.net/p/mageck/wiki/Home/" +description = """Model-based Analysis of Genome-wide CRISPR-Cas9 Knockout (MAGeCK) is a computational tool to identify + important genes from the recent genome-scale CRISPR-Cas9 knockout screens (or GeCKO) technology. MAGeCK is developed + by Wei Li and Han Xu from Dr. Xiaole Shirley Liu's lab at Dana-Farber Cancer Institute, and is being actively updated + by Wei Li lab from Children's National Medical Center.""" + +toolchain = {'name': 'gfbf', 'version': '2022b'} + +dependencies = [ + ('Python', '3.10.8'), + ('SciPy-bundle', '2023.02'), +] + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['b06a18036da63959cd7751911a46727aefe2fb1d8dd79d95043c3e3bdaf1d93a'] + +download_dep_fail = True +sanity_pip_check = True +use_pip = True + +postinstallcmds = ["cp -a demo %(installdir)s"] + +sanity_check_paths = { + 'files': ['bin/mageck', 'bin/mageckGSEA', 'bin/RRA'], + 'dirs': ['demo', 'lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = [ + # copy demo to build directory, after making sure it exists, so --sanity-check-only works; + # enable write permissions, since installation directory may be read-only + "mkdir -p %(builddir)s && cp -a %(installdir)s/demo %(builddir)s/ && chmod -R u+w %(builddir)s/demo", + "cd %(builddir)s/demo/demo1 && ./run.sh", +] + ["%s -h" % x for x in ['mageck', 'mageckGSEA']] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/m/MATLAB/MATLAB-2023a.eb b/easybuild/easyconfigs/m/MATLAB/MATLAB-2023a.eb new file mode 100644 index 00000000000..296a007e994 --- /dev/null +++ b/easybuild/easyconfigs/m/MATLAB/MATLAB-2023a.eb @@ -0,0 +1,27 @@ +name = 'MATLAB' +version = '2023a' + +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 = ['f18225237c2a5ff1294f19ed0c9945cfe691c3a3a62a6a8d324473d73ec92913'] +download_instructions = 'Download %s from mathworks.com' % sources[0] + +java_options = '-Xmx2048m' + +osdependencies = [('p7zip-plugins', 'p7zip-full')] # for extracting iso-files + +# Use EB_MATLAB_KEY environment variable or uncomment and modify license key +# key = '00000-00000-00000-00000-00000-00000-00000-00000-00000-00000-00000-00000' + +# Use EB_MATLAB_LICENSE_SERVER and EB_MATLAB_LICENSE_SERVER_PORT environment variables or +# uncomment and modify the following variables for installation with floating license server +# license_file = 'my-license-file' +# license_server_port = 'XXXXX' + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/m/MCR/MCR-R2022a.5.eb b/easybuild/easyconfigs/m/MCR/MCR-R2022a.5.eb new file mode 100644 index 00000000000..9bd0ecded13 --- /dev/null +++ b/easybuild/easyconfigs/m/MCR/MCR-R2022a.5.eb @@ -0,0 +1,21 @@ +## +# Author: Robert Mijakovic +## +name = 'MCR' +version = 'R2022a' # runtime version 9.12 +local_update = '5' +versionsuffix = '.%s' % local_update + +homepage = 'https://www.mathworks.com/products/compiler/mcr/' +description = """The MATLAB Runtime is a standalone set of shared libraries + that enables the execution of compiled MATLAB applications + or components on computers that do not have MATLAB installed.""" + +toolchain = SYSTEM + +source_urls = ['https://ssd.mathworks.com/supportfiles/downloads/%%(version)s/Release/%s/deployment_files/' + 'installer/complete/glnxa64/' % local_update] +sources = ['MATLAB_Runtime_%%(version)s_Update_%s_glnxa64.zip' % local_update] +checksums = ['dd5518c233ab1c42839b36730b55232a7b43310e89b0e3f338d8d3defb1a6d62'] + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/m/MITObim/MITObim-1.9.1-foss-2020b.eb b/easybuild/easyconfigs/m/MITObim/MITObim-1.9.1-foss-2020b.eb new file mode 100644 index 00000000000..6711cda43d7 --- /dev/null +++ b/easybuild/easyconfigs/m/MITObim/MITObim-1.9.1-foss-2020b.eb @@ -0,0 +1,34 @@ +easyblock = "CmdCp" + +name = 'MITObim' +version = '1.9.1' + +homepage = "https://github.com/chrishah/MITObim" +description = """The MITObim procedure (mitochondrial baiting and iterative mapping) represents + a highly efficient approach to assembling novel mitochondrial genomes of non-model organisms + directly from total genomic DNA derived NGS reads.""" + +toolchain = {'name': 'foss', 'version': '2020b'} + +github_account = 'chrishah' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['8f7d47eb6ea677ca152492a477ee6c7542c0f853e921675b81be509ddd4f75bf'] + +dependencies = [ + ('Perl', '5.32.0'), + ('MIRA', '5.0rc2'), +] + +skipsteps = ['build'] + +files_to_copy = [ + (['MITObim.pl'], 'bin'), +] + +sanity_check_paths = { + 'files': ["bin/MITObim.pl"], + 'dirs': [] +} + +moduleclass = "bio" diff --git a/easybuild/easyconfigs/m/MMseqs2/MMseqs2-14-7e284-gompi-2022a.eb b/easybuild/easyconfigs/m/MMseqs2/MMseqs2-14-7e284-gompi-2022a.eb new file mode 100644 index 00000000000..bff916cb3b7 --- /dev/null +++ b/easybuild/easyconfigs/m/MMseqs2/MMseqs2-14-7e284-gompi-2022a.eb @@ -0,0 +1,27 @@ +easyblock = 'CMakeMake' + +name = 'MMseqs2' +version = '14-7e284' + +homepage = 'https://mmseqs.com' +description = "MMseqs2: ultra fast and sensitive search and clustering suite" + +toolchain = {'name': 'gompi', 'version': '2022a'} + +github_account = 'soedinglab' +source_urls = [GITHUB_SOURCE] +sources = ['%(version)s.tar.gz'] +checksums = ['a15fd59b121073fdcc8b259fc703e5ce4c671d2c56eb5c027749f4bd4c28dfe1'] + +builddependencies = [('CMake', '3.23.1')] + +dependencies = [('bzip2', '1.0.8')] + +sanity_check_paths = { + 'files': ['bin/mmseqs'], + 'dirs': [], +} + +sanity_check_commands = ["mmseqs --help"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/m/MOB-suite/MOB-suite-3.1.0-foss-2019b-Python-3.7.4.eb b/easybuild/easyconfigs/m/MOB-suite/MOB-suite-3.1.0-foss-2019b-Python-3.7.4.eb new file mode 100644 index 00000000000..be9c4937022 --- /dev/null +++ b/easybuild/easyconfigs/m/MOB-suite/MOB-suite-3.1.0-foss-2019b-Python-3.7.4.eb @@ -0,0 +1,38 @@ +easyblock = 'PythonBundle' + +name = 'MOB-suite' +version = '3.1.0' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://github.com/phac-nml/mob-suite' +description = "Software tools for clustering, reconstruction and typing of plasmids from draft assemblies" + +toolchain = {'name': 'foss', 'version': '2019b'} + +dependencies = [ + ('Python', '3.7.4'), + ('SciPy-bundle', '2019.10', versionsuffix), + ('Biopython', '1.75', versionsuffix), + ('PycURL', '7.43.0.5', versionsuffix), + ('PyTables', '3.6.1', versionsuffix), + ('ETE', '3.1.2', versionsuffix), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('mob-suite', version, { + 'sources': ['mob_suite-%(version)s.tar.gz'], + 'checksums': ['03b502673dd115ccceaf912330cb7f4e38b77c9ab895119891ecf8ef0e115f91'], + }), +] + +sanity_check_paths = { + 'files': ['bin/mob_init'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = ['mob_init -V'] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/m/MONAI-Label/MONAI-Label-0.5.2-foss-2022a-PyTorch-1.12.0-CUDA-11.7.0.eb b/easybuild/easyconfigs/m/MONAI-Label/MONAI-Label-0.5.2-foss-2022a-PyTorch-1.12.0-CUDA-11.7.0.eb new file mode 100644 index 00000000000..01c4c751e7b --- /dev/null +++ b/easybuild/easyconfigs/m/MONAI-Label/MONAI-Label-0.5.2-foss-2022a-PyTorch-1.12.0-CUDA-11.7.0.eb @@ -0,0 +1,160 @@ +easyblock = 'PythonBundle' + +name = 'MONAI-Label' +version = '0.5.2' + +local_pytorch_version = '1.12.0' +versionsuffix = '-PyTorch-' + local_pytorch_version + '-CUDA-%(cudaver)s' + +homepage = 'https://docs.monai.io/projects/label/en/latest/' +description = """MONAI Label is an intelligent open source image labeling and learning tool + that enables users to create annotated datasets and build AI annotation models for clinical evaluation. + MONAI Label enables application developers to build labeling apps in a serverless way, + where custom labeling apps are exposed as a service through the MONAI Label Server.""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +builddependencies = [ + ('binutils', '2.38'), + ('CMake', '3.23.1'), + ('Ninja', '1.10.2'), +] + +dependencies = [ + ('CUDA', '11.7.0', '', SYSTEM), + ('Python', '3.10.4'), + ('PyTorch', local_pytorch_version, '-CUDA-%(cudaver)s'), + ('torchvision', '0.13.1', '-CUDA-%(cudaver)s'), + ('torchaudio', '0.12.0', '-PyTorch-' + local_pytorch_version + '-CUDA-%(cudaver)s'), + ('einops', '0.4.1'), + ('MONAI', '1.0.1', '-CUDA-%(cudaver)s'), + ('OpenCV', '4.6.0', '-CUDA-%(cudaver)s' + '-contrib'), + ('pydantic', '1.10.4'), + ('pydicom', '2.3.0'), + ('pydicom-seg', '0.4.1'), + ('GEOS', '3.10.3'), + ('SimpleITK', '2.1.1.2'), +] + +sanity_pip_check = True +use_pip = True + +exts_list = [ + ('asgiref', '3.7.2', { + 'checksums': ['9e0ce3aa93a819ba5b45120216b23878cf6e8525eb3848653452b4192b92afed'], + }), + ('h11', '0.12.0', { + 'checksums': ['47222cb6067e4a307d535814917cd98fd0a57b6788ce715755fa2b6c28b56042'], + }), + ('httpcore', '0.15.0', { + 'checksums': ['18b68ab86a3ccf3e7dc0f43598eaddcf472b602aba29f9aa6ab85fe2ada3980b'], + }), + ('rfc3986', '1.5.0', { + 'checksums': ['270aaf10d87d0d4e095063c65bf3ddbc6ee3d0b226328ce21e036f946e421835'], + }), + ('sniffio', '1.3.0', { + 'checksums': ['e60305c5e5d314f5389259b7f22aaa33d8f7dee49763119234af3755c55b9101'], + }), + ('diskcache', '5.6.1', { + 'checksums': ['e4c978532feff5814c4cc00fe1e11e40501985946643d73220d41ee7737c72c3'], + }), + ('starlette', '0.19.1', { + 'source_tmpl': '%(name)s-%(version)s-py3-none-any.whl', + 'checksums': ['5a60c5c2d051f3a8eb546136aa0c9399773a689595e099e0877704d5888279bf'], + }), + ('retrying', '1.3.4', { + 'checksums': ['345da8c5765bd982b1d1915deb9102fd3d1f7ad16bd84a9700b85f64d24e8f3e'], + }), + ('anyio', '3.7.0', { + 'checksums': ['275d9973793619a5374e1c89a4f4ad3f4b0a5510a2b5b939444bee8f4c4d37ce'], + }), + ('exceptiongroup', '1.1.1', { + 'source_tmpl': '%(name)s-%(version)s-py3-none-any.whl', + 'checksums': ['232c37c63e4f682982c8b6459f33a8981039e5fb8756b2074364e5055c498c9e'], + }), + ('dicomweb-client', '0.56.2', { + 'checksums': ['8e7782e3958dcb1db8912b5f1d689a4b9cc92e56e0684b98898c7b8c7b47beb1'], + }), + ('expiring-dict', '1.1.0', { + 'checksums': ['3c404adb1e4369468cb7e51bfbc9c470d7e2e863efe2a1c75d4ed706d0dce1a6'], + }), + ('expiringdict', '1.2.2', { + 'source_tmpl': '%(name)s-%(version)s-py3-none-any.whl', + 'checksums': ['09a5d20bc361163e6432a874edd3179676e935eb81b925eccef48d409a8a45e8'], + }), + ('fastapi', '0.78.0', { + 'checksums': ['3233d4a789ba018578658e2af1a4bb5e38bdd122ff722b313666a9b2c6786a83'], + }), + ('girder-client', '3.1.14', { + 'checksums': ['30e874d50c32316df70bbb55ae66968639bcd19c22261f35439f0796c5cf8de1'], + }), + ('httpx', '0.23.0', { + 'source_tmpl': '%(name)s-%(version)s-py3-none-any.whl', + 'checksums': ['42974f577483e1e932c3cdc3cd2303e883cbfba17fe228b0f63589764d7b9c4b'], + }), + ('ninja', '1.10.2.3', { + 'checksums': ['e1b86ad50d4e681a7dbdff05fc23bb52cb773edb90bc428efba33fa027738408'], + }), + ('numpymaxflow', '0.0.2', { + 'checksums': ['28e906b7e1c275cf559acab3fad5553511ec25b84f538bece5d2c4f293862a79'], + }), + ('passlib', '1.7.4', { + 'checksums': ['defd50f72b65c5402ab2c573830a6978e5f202ad0d984793c8dde2c4152ebe04'], + }), + ('pynetdicom', '2.0.2', { + 'checksums': ['231212e9b9c5e0debf2af4f17d8afa14ecd1b262a11cdb891b2b2b15f7ab5939'], + }), + ('pynrrd', '0.4.3', { + 'modulename': 'nrrd', + 'checksums': ['e8b8a0e65b7c899201bf9dc42190cdd054478bfa967e3d34b8834652590c1e2b'], + }), + ('python-dotenv', '0.20.0', { + 'modulename': 'dotenv', + 'checksums': ['b7e3b04a59693c42c36f9ab1cc2acc46fa5df8c78e178fc33a8d4cd05c8d498f'], + }), + ('python-jose', '3.3.0', { + 'modulename': 'jose', + 'checksums': ['55779b5e6ad599c6336191246e95eb2293a9ddebd555f796a65f838f07e5d78a'], + }), + ('python-multipart', '0.0.5', { + 'modulename': 'multipart', + 'checksums': ['f7bb5f611fc600d15fa47b3974c8aa16e93724513b49b5f95c81e6624c83fa43'], + }), + ('schedule', '1.1.0', { + 'checksums': ['e6ca13585e62c810e13a08682e0a6a8ad245372e376ba2b8679294f377dfc8e4'], + }), + ('Shapely', '1.8.2', { + 'checksums': ['572af9d5006fd5e3213e37ee548912b0341fb26724d6dc8a4e3950c10197ebb6'], + }), + ('timeloop', '1.0.2', { + 'checksums': ['4e716c67fe6bcadcee7ddb91e2520792426818a70f27e630cfbbbd9becc48a13'], + }), + ('uvicorn', '0.17.6', { + 'source_tmpl': '%(name)s-%(version)s-py3-none-any.whl', + 'checksums': ['19e2a0e96c9ac5581c01eb1a79a7d2f72bb479691acd2b8921fce48ed5b961a6'], + }), + ('watchdog', '2.1.8', { + 'checksums': ['6d03149126864abd32715d4e9267d2754cede25a69052901399356ad3bc5ecff'], + }), + ('filelock', '3.7.1', { + 'checksums': ['3a0fd85166ad9dbab54c9aec96737b744106dc5f15c0b09a6744a445299fcf04'], + }), + ('monailabel', version, { + 'source_urls': ['https://github.com/Project-MONAI/MONAILabel/archive/refs/tags/'], + 'sources': ['%(version)s.tar.gz'], + 'patches': ['MONAI-Label-0.5.2_dep-fix.patch'], + 'checksums': [ + '9c4b14812f3db72fdccadfed36ecab1c8d18df3aa82c97ef16af18b5f4649a50', # MONAILabel-0.5.2.tar.gz + 'd920362ad31a903c8263334ed7791723026fbba22b082e9c4ec2a2ea69ec69fa', # MONAI-Label-0.5.2_dep-fix.patch + ], + }), +] + +sanity_check_paths = { + 'files': ['bin/monailabel'], + 'dirs': [], +} + +sanity_check_commands = ["monailabel --help"] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/m/MONAI-Label/MONAI-Label-0.5.2-foss-2022a-PyTorch-1.12.0.eb b/easybuild/easyconfigs/m/MONAI-Label/MONAI-Label-0.5.2-foss-2022a-PyTorch-1.12.0.eb new file mode 100644 index 00000000000..3d0905eca1f --- /dev/null +++ b/easybuild/easyconfigs/m/MONAI-Label/MONAI-Label-0.5.2-foss-2022a-PyTorch-1.12.0.eb @@ -0,0 +1,159 @@ +easyblock = 'PythonBundle' + +name = 'MONAI-Label' +version = '0.5.2' + +local_pytorch_version = '1.12.0' +versionsuffix = '-PyTorch-%s' % local_pytorch_version + +homepage = 'https://docs.monai.io/projects/label/en/latest/' +description = """MONAI Label is an intelligent open source image labeling and learning tool + that enables users to create annotated datasets and build AI annotation models for clinical evaluation. + MONAI Label enables application developers to build labeling apps in a serverless way, + where custom labeling apps are exposed as a service through the MONAI Label Server.""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +builddependencies = [ + ('binutils', '2.38'), + ('CMake', '3.23.1'), + ('Ninja', '1.10.2'), +] + +dependencies = [ + ('Python', '3.10.4'), + ('PyTorch', local_pytorch_version), + ('torchvision', '0.13.1'), + ('torchaudio', '0.12.0', '-PyTorch-%s' % local_pytorch_version), + ('einops', '0.4.1'), + ('MONAI', '1.0.1'), + ('OpenCV', '4.6.0', '-contrib'), + ('pydantic', '1.10.4'), + ('pydicom', '2.3.0'), + ('pydicom-seg', '0.4.1'), + ('GEOS', '3.10.3'), + ('SimpleITK', '2.1.1.2'), +] + +sanity_pip_check = True +use_pip = True + +exts_list = [ + ('asgiref', '3.7.2', { + 'checksums': ['9e0ce3aa93a819ba5b45120216b23878cf6e8525eb3848653452b4192b92afed'], + }), + ('h11', '0.12.0', { + 'checksums': ['47222cb6067e4a307d535814917cd98fd0a57b6788ce715755fa2b6c28b56042'], + }), + ('httpcore', '0.15.0', { + 'checksums': ['18b68ab86a3ccf3e7dc0f43598eaddcf472b602aba29f9aa6ab85fe2ada3980b'], + }), + ('rfc3986', '1.5.0', { + 'checksums': ['270aaf10d87d0d4e095063c65bf3ddbc6ee3d0b226328ce21e036f946e421835'], + }), + ('sniffio', '1.3.0', { + 'checksums': ['e60305c5e5d314f5389259b7f22aaa33d8f7dee49763119234af3755c55b9101'], + }), + ('diskcache', '5.6.1', { + 'checksums': ['e4c978532feff5814c4cc00fe1e11e40501985946643d73220d41ee7737c72c3'], + }), + ('starlette', '0.19.1', { + 'source_tmpl': '%(name)s-%(version)s-py3-none-any.whl', + 'checksums': ['5a60c5c2d051f3a8eb546136aa0c9399773a689595e099e0877704d5888279bf'], + }), + ('retrying', '1.3.4', { + 'checksums': ['345da8c5765bd982b1d1915deb9102fd3d1f7ad16bd84a9700b85f64d24e8f3e'], + }), + ('anyio', '3.7.0', { + 'checksums': ['275d9973793619a5374e1c89a4f4ad3f4b0a5510a2b5b939444bee8f4c4d37ce'], + }), + ('exceptiongroup', '1.1.1', { + 'source_tmpl': '%(name)s-%(version)s-py3-none-any.whl', + 'checksums': ['232c37c63e4f682982c8b6459f33a8981039e5fb8756b2074364e5055c498c9e'], + }), + ('dicomweb-client', '0.56.2', { + 'checksums': ['8e7782e3958dcb1db8912b5f1d689a4b9cc92e56e0684b98898c7b8c7b47beb1'], + }), + ('expiring-dict', '1.1.0', { + 'checksums': ['3c404adb1e4369468cb7e51bfbc9c470d7e2e863efe2a1c75d4ed706d0dce1a6'], + }), + ('expiringdict', '1.2.2', { + 'source_tmpl': '%(name)s-%(version)s-py3-none-any.whl', + 'checksums': ['09a5d20bc361163e6432a874edd3179676e935eb81b925eccef48d409a8a45e8'], + }), + ('fastapi', '0.78.0', { + 'checksums': ['3233d4a789ba018578658e2af1a4bb5e38bdd122ff722b313666a9b2c6786a83'], + }), + ('girder-client', '3.1.14', { + 'checksums': ['30e874d50c32316df70bbb55ae66968639bcd19c22261f35439f0796c5cf8de1'], + }), + ('httpx', '0.23.0', { + 'source_tmpl': '%(name)s-%(version)s-py3-none-any.whl', + 'checksums': ['42974f577483e1e932c3cdc3cd2303e883cbfba17fe228b0f63589764d7b9c4b'], + }), + ('ninja', '1.10.2.3', { + 'checksums': ['e1b86ad50d4e681a7dbdff05fc23bb52cb773edb90bc428efba33fa027738408'], + }), + ('numpymaxflow', '0.0.2', { + 'checksums': ['28e906b7e1c275cf559acab3fad5553511ec25b84f538bece5d2c4f293862a79'], + }), + ('passlib', '1.7.4', { + 'checksums': ['defd50f72b65c5402ab2c573830a6978e5f202ad0d984793c8dde2c4152ebe04'], + }), + ('pynetdicom', '2.0.2', { + 'checksums': ['231212e9b9c5e0debf2af4f17d8afa14ecd1b262a11cdb891b2b2b15f7ab5939'], + }), + ('pynrrd', '0.4.3', { + 'modulename': 'nrrd', + 'checksums': ['e8b8a0e65b7c899201bf9dc42190cdd054478bfa967e3d34b8834652590c1e2b'], + }), + ('python-dotenv', '0.20.0', { + 'modulename': 'dotenv', + 'checksums': ['b7e3b04a59693c42c36f9ab1cc2acc46fa5df8c78e178fc33a8d4cd05c8d498f'], + }), + ('python-jose', '3.3.0', { + 'modulename': 'jose', + 'checksums': ['55779b5e6ad599c6336191246e95eb2293a9ddebd555f796a65f838f07e5d78a'], + }), + ('python-multipart', '0.0.5', { + 'modulename': 'multipart', + 'checksums': ['f7bb5f611fc600d15fa47b3974c8aa16e93724513b49b5f95c81e6624c83fa43'], + }), + ('schedule', '1.1.0', { + 'checksums': ['e6ca13585e62c810e13a08682e0a6a8ad245372e376ba2b8679294f377dfc8e4'], + }), + ('Shapely', '1.8.2', { + 'checksums': ['572af9d5006fd5e3213e37ee548912b0341fb26724d6dc8a4e3950c10197ebb6'], + }), + ('timeloop', '1.0.2', { + 'checksums': ['4e716c67fe6bcadcee7ddb91e2520792426818a70f27e630cfbbbd9becc48a13'], + }), + ('uvicorn', '0.17.6', { + 'source_tmpl': '%(name)s-%(version)s-py3-none-any.whl', + 'checksums': ['19e2a0e96c9ac5581c01eb1a79a7d2f72bb479691acd2b8921fce48ed5b961a6'], + }), + ('watchdog', '2.1.8', { + 'checksums': ['6d03149126864abd32715d4e9267d2754cede25a69052901399356ad3bc5ecff'], + }), + ('filelock', '3.7.1', { + 'checksums': ['3a0fd85166ad9dbab54c9aec96737b744106dc5f15c0b09a6744a445299fcf04'], + }), + ('monailabel', version, { + 'source_urls': ['https://github.com/Project-MONAI/MONAILabel/archive/refs/tags/'], + 'sources': ['%(version)s.tar.gz'], + 'patches': ['MONAI-Label-0.5.2_dep-fix.patch'], + 'checksums': [ + '9c4b14812f3db72fdccadfed36ecab1c8d18df3aa82c97ef16af18b5f4649a50', # MONAILabel-0.5.2.tar.gz + 'd920362ad31a903c8263334ed7791723026fbba22b082e9c4ec2a2ea69ec69fa', # MONAI-Label-0.5.2_dep-fix.patch + ], + }), +] + +sanity_check_paths = { + 'files': ['bin/monailabel'], + 'dirs': [], +} + +sanity_check_commands = ["monailabel --help"] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/m/MONAI-Label/MONAI-Label-0.5.2_dep-fix.patch b/easybuild/easyconfigs/m/MONAI-Label/MONAI-Label-0.5.2_dep-fix.patch new file mode 100644 index 00000000000..a274659352b --- /dev/null +++ b/easybuild/easyconfigs/m/MONAI-Label/MONAI-Label-0.5.2_dep-fix.patch @@ -0,0 +1,47 @@ +Some requirements are unnecessarily strict. +Use opencv-contrib-python (installed with OpenCV 4.6.0) instead of opencv-python-headless +Author: Petr Král (INUITS) +diff -u MONAILabel-0.5.2/requirements.txt.orig MONAILabel-0.5.2/requirements.txt +--- MONAILabel-0.5.2/requirements.txt.orig 2022-10-24 22:48:45.000000000 +0200 ++++ MONAILabel-0.5.2/requirements.txt 2023-06-23 13:11:07.961592853 +0200 +@@ -21,15 +21,15 @@ + schedule==1.1.0 + dicomweb-client==0.56.2 + timeloop==1.0.2 +-expiringdict==1.2.1 ++expiringdict>=1.2.1 + expiring_dict==1.1.0 + cachetools==5.2.0 + watchdog==2.1.8 + pydicom==2.3.0 +-pydicom-seg==0.4.0 ++pydicom-seg>=0.4.0 + pynetdicom==2.0.2 + pynrrd==0.4.3 +-opencv-python-headless==4.5.5.64 ++opencv-contrib-python>=4.6.0 + numpymaxflow==0.0.2 + girder-client==3.1.14 + ninja==1.10.2.3 +diff -u MONAILabel-0.5.2/setup.cfg.orig MONAILabel-0.5.2/setup.cfg +--- MONAILabel-0.5.2/setup.cfg.orig 2023-06-23 09:54:07.723287930 +0200 ++++ MONAILabel-0.5.2/setup.cfg 2023-06-23 13:11:24.785087729 +0200 +@@ -47,15 +47,15 @@ + schedule==1.1.0 + dicomweb-client==0.56.2 + timeloop==1.0.2 +- expiringdict==1.2.1 ++ expiringdict>=1.2.1 + expiring_dict==1.1.0 + cachetools==5.2.0 + watchdog==2.1.8 + pydicom==2.3.0 +- pydicom-seg==0.4.0 ++ pydicom-seg>=0.4.0 + pynetdicom==2.0.2 + pynrrd==0.4.3 +- opencv-python-headless==4.5.5.64 ++ opencv-contrib-python>=4.6.0 + numpymaxflow==0.0.2 + girder-client==3.1.14 + ninja==1.10.2.3 diff --git a/easybuild/easyconfigs/m/MPFR/MPFR-4.2.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/m/MPFR/MPFR-4.2.0-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..4016fc31b80 --- /dev/null +++ b/easybuild/easyconfigs/m/MPFR/MPFR-4.2.0-GCCcore-12.3.0.eb @@ -0,0 +1,39 @@ +easyblock = 'ConfigureMake' + +name = 'MPFR' +version = '4.2.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': '12.3.0'} + +source_urls = ['https://www.mpfr.org/mpfr-%(version)s/'] +sources = [SOURCELOWER_TAR_BZ2] +checksums = ['691db39178e36fc460c046591e4b0f2a52c8f2b3ee6d750cc2eab25f1eaa999d'] + +builddependencies = [ + ('binutils', '2.40'), +] + +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/MUMmer/MUMmer-4.0.0rc1-GCCcore-12.2.0.eb b/easybuild/easyconfigs/m/MUMmer/MUMmer-4.0.0rc1-GCCcore-12.2.0.eb new file mode 100644 index 00000000000..b2d716125cf --- /dev/null +++ b/easybuild/easyconfigs/m/MUMmer/MUMmer-4.0.0rc1-GCCcore-12.2.0.eb @@ -0,0 +1,38 @@ +# EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics +# updating version from 4.0.0beta2 to 4.0.0rc1 which was released in Oct 2020 +# Aaron Miller Mar 15 2021 + +easyblock = 'ConfigureMake' + +name = 'MUMmer' +version = '4.0.0rc1' + +homepage = 'https://mummer.sourceforge.net/' + +description = """ + MUMmer is a system for rapidly aligning entire genomes, + whether in complete or draft form. AMOS makes use of it. +""" + +toolchain = {'name': 'GCCcore', 'version': '12.2.0'} +toolchainopts = {'openmp': True} + +source_urls = ['https://github.com/gmarcais/mummer/releases/download/v%(version)s/'] +sources = ['%(namelower)s-%(version)s.tar.gz'] +checksums = ['85006adb2d6539c2f738c3e3bb14b58bb6f62cd6c6ca5ede884a87ae76e07d1d'] + +builddependencies = [('binutils', '2.39')] + +sanity_check_paths = { + 'files': ['bin/mummer', 'bin/annotate', 'bin/combineMUMs', 'bin/delta-filter', + 'bin/repeat-match', 'bin/show-aligns', 'bin/show-coords', + 'bin/show-tiling', 'bin/show-snps', 'bin/show-diff', 'bin/exact-tandems', + 'bin/mummerplot', 'bin/promer', 'bin/dnadiff', + ], + 'dirs': ['include', 'lib', 'libexec'], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/m/MUSCLE/MUSCLE-5.1.0-GCCcore-10.3.0.eb b/easybuild/easyconfigs/m/MUSCLE/MUSCLE-5.1.0-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..f41e38c73c2 --- /dev/null +++ b/easybuild/easyconfigs/m/MUSCLE/MUSCLE-5.1.0-GCCcore-10.3.0.eb @@ -0,0 +1,39 @@ +easyblock = 'MakeCp' + +name = 'MUSCLE' +version = '5.1.0' + +homepage = 'https://drive5.com/muscle/' +description = """MUSCLE is one of the best-performing multiple alignment programs + according to published benchmark tests, with accuracy and speed that are consistently + better than CLUSTALW. MUSCLE can align hundreds of sequences in seconds. Most users + learn everything they need to know about MUSCLE in a few minutes-only a handful of + command-line options are needed to perform common alignment tasks.""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +github_account = 'rcedgar' +source_urls = [GITHUB_LOWER_SOURCE] +sources = ['%(version)s.tar.gz'] +checksums = ['2bba8b06e3ccabf6465fa26f459763b2029d7e7b9596881063e3aaba60d9e87d'] + +builddependencies = [ + ('binutils', '2.36.1'), +] + +start_dir = 'src' + +# Use build environment defined by EasyBuild +prebuildopts = "sed -i 's/$(CPPOPTS)/$(CPPOPTS) $(CXXFLAGS) $(CPPFLAGS)/g' Makefile &&" +buildopts = "CPP=${CXX} CC=${CC}" + +files_to_copy = [(['Linux/muscle'], 'bin')] + +sanity_check_paths = { + 'files': ['bin/muscle'], + 'dirs': [], +} + +sanity_check_commands = ["muscle -h"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/m/MUST/MUST-1.7.1-foss-2020b.eb b/easybuild/easyconfigs/m/MUST/MUST-1.7.1-foss-2020b.eb new file mode 100644 index 00000000000..b7aef9fc7f7 --- /dev/null +++ b/easybuild/easyconfigs/m/MUST/MUST-1.7.1-foss-2020b.eb @@ -0,0 +1,34 @@ +easyblock = "CMakeMake" + +name = 'MUST' +version = '1.7.1' + +homepage = "https://hpc.rwth-aachen.de/must/" +description = """MUST detects usage errors of the Message Passing Interface (MPI) and reports them to the user. + As MPI calls are complex and usage errors common, this functionality is extremely helpful for application developers + that want to develop correct MPI applications. + This includes errors that already manifest – segmentation faults or incorrect results – as well as many errors + that are not visible to the application developer or do not manifest on a certain system or MPI implementation.""" + +toolchain = {'name': 'foss', 'version': '2020b'} + +source_urls = ['https://hpc.rwth-aachen.de/must/files/'] +sources = ['%(name)s-v%(version)s.tar.gz'] +checksums = ['de3f6144a433035d24952c1acdf1acac47bcd843b24243bd8c0467a0567b1ed6'] + +builddependencies = [ + ('CMake', '3.18.4') +] + +dependencies = [ + ('Python', '3.8.6'), + ('libxml2', '2.9.10'), + ('Graphviz', '2.47.0', '-Java-11'), +] + +sanity_check_paths = { + 'files': ["bin/mustrun", "bin/wrap.py", "include/mustConfig.h", "lib/libpnmpif.so", "lib/libpnmpi.so"], + 'dirs': ["include/pnmpi", "lib64/pnmpi-modules", "modules", "share", "specifications", "src"], +} + +moduleclass = "perf" diff --git a/easybuild/easyconfigs/m/MView/MView-1.67-GCC-11.3.0.eb b/easybuild/easyconfigs/m/MView/MView-1.67-GCC-11.3.0.eb new file mode 100644 index 00000000000..cd81e9c65a3 --- /dev/null +++ b/easybuild/easyconfigs/m/MView/MView-1.67-GCC-11.3.0.eb @@ -0,0 +1,27 @@ +easyblock = "Tarball" + +name = 'MView' +version = "1.67" + +homepage = 'https://desmid.github.io/mview/' +description = """MView reformats the results of a sequence database search or a + multiple alignment, optionally adding HTML markup.""" + +toolchain = {'name': 'GCC', 'version': '11.3.0'} + +source_urls = [('http://sourceforge.net/projects/bio-mview/files/bio-mview/mview-%(version)s/', 'download')] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['e5bac78960f8f6c091b2f7ea8a3c6075e9bea5a062391fd3e1e44fca14025e46'] + +dependencies = [('Perl', '5.34.1')] + +sanity_check_paths = { + 'files': ["bin/mview"], + 'dirs': ["lib"], +} + +sanity_check_commands = [('mview', '--help')] + +modextrapaths = {'PERL5LIB': 'lib'} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/m/MariaDB/MariaDB-10.11.2-GCC-12.2.0.eb b/easybuild/easyconfigs/m/MariaDB/MariaDB-10.11.2-GCC-12.2.0.eb index 37fce889bdc..c82bd9ecd86 100644 --- a/easybuild/easyconfigs/m/MariaDB/MariaDB-10.11.2-GCC-12.2.0.eb +++ b/easybuild/easyconfigs/m/MariaDB/MariaDB-10.11.2-GCC-12.2.0.eb @@ -40,10 +40,7 @@ dependencies = [ ('OpenSSL', '1.1', '', SYSTEM), # runtime dep for mysql and PCRE2 for mysqltest ] -separate_build_dir = True - -configopts = "-DCMAKE_BUILD_TYPE=Release " -configopts += "-DCMAKE_SHARED_LINKER_FLAGS='-fuse-ld=bfd' " # Linking fails with default gold linker +configopts = "-DCMAKE_SHARED_LINKER_FLAGS='-fuse-ld=bfd' " # Linking fails with default gold linker configopts += "-DMYSQL_MAINTAINER_MODE=OFF " # disabled to not treat warnings as errors (-Werror) configopts += "-DWITH_PCRE=auto " # External download sometimes fails so we build PCRE2 directly. configopts += "-DWITH_ZLIB=system " diff --git a/easybuild/easyconfigs/m/MariaDB/MariaDB-10.6.4-GCC-11.2.0.eb b/easybuild/easyconfigs/m/MariaDB/MariaDB-10.6.4-GCC-11.2.0.eb index aefe88e5390..afc9476839f 100644 --- a/easybuild/easyconfigs/m/MariaDB/MariaDB-10.6.4-GCC-11.2.0.eb +++ b/easybuild/easyconfigs/m/MariaDB/MariaDB-10.6.4-GCC-11.2.0.eb @@ -40,10 +40,7 @@ dependencies = [ ('OpenSSL', '1.1', '', SYSTEM), # runtime dep for mysql and PCRE2 for mysqltest ] -separate_build_dir = True - -configopts = "-DCMAKE_BUILD_TYPE=Release " -configopts += "-DCMAKE_SHARED_LINKER_FLAGS='-fuse-ld=bfd' " # Linking fails with default gold linker +configopts = "-DCMAKE_SHARED_LINKER_FLAGS='-fuse-ld=bfd' " # Linking fails with default gold linker configopts += "-DMYSQL_MAINTAINER_MODE=OFF " # disabled to not treat warnings as errors (-Werror) configopts += "-DWITH_PCRE=auto " # External download sometimes fails so we build PCRE2 directly. configopts += "-DWITH_ZLIB=system " diff --git a/easybuild/easyconfigs/m/MariaDB/MariaDB-10.9.3-GCC-11.3.0.eb b/easybuild/easyconfigs/m/MariaDB/MariaDB-10.9.3-GCC-11.3.0.eb index d090e5a8ce7..b08debd8ac0 100644 --- a/easybuild/easyconfigs/m/MariaDB/MariaDB-10.9.3-GCC-11.3.0.eb +++ b/easybuild/easyconfigs/m/MariaDB/MariaDB-10.9.3-GCC-11.3.0.eb @@ -40,10 +40,7 @@ dependencies = [ ('OpenSSL', '1.1', '', SYSTEM), # runtime dep for mysql and PCRE2 for mysqltest ] -separate_build_dir = True - -configopts = "-DCMAKE_BUILD_TYPE=Release " -configopts += "-DCMAKE_SHARED_LINKER_FLAGS='-fuse-ld=bfd' " # Linking fails with default gold linker +configopts = "-DCMAKE_SHARED_LINKER_FLAGS='-fuse-ld=bfd' " # Linking fails with default gold linker configopts += "-DMYSQL_MAINTAINER_MODE=OFF " # disabled to not treat warnings as errors (-Werror) configopts += "-DWITH_PCRE=auto " # External download sometimes fails so we build PCRE2 directly. configopts += "-DWITH_ZLIB=system " diff --git a/easybuild/easyconfigs/m/MaxQuant/MaxQuant-2.4.2.0.eb b/easybuild/easyconfigs/m/MaxQuant/MaxQuant-2.4.2.0.eb new file mode 100644 index 00000000000..edf1480c621 --- /dev/null +++ b/easybuild/easyconfigs/m/MaxQuant/MaxQuant-2.4.2.0.eb @@ -0,0 +1,44 @@ +easyblock = 'Tarball' + +name = 'MaxQuant' +version = '2.4.2.0' + +homepage = 'https://maxquant.org/maxquant' +description = """MaxQuant is a quantitative proteomics software package designed for analyzing large + mass-spectrometric data sets. It is specifically aimed at high-resolution MS data. Several labeling + techniques as well as label-free quantification are supported.""" + +toolchain = SYSTEM + +download_instructions = """ +To download the MaxQuant source tarball, register at: + https://www.maxquant.org/download_asset/maxquant/latest +You should receive a unique download URL via email. +""" + +sources = ['%(name)s_%(version)s.zip'] +checksums = ['03d8acc28ff8d71772d72d3da493e508553bd30f52f09c979bb9fcdb090e7799'] + +dependencies = [('dotNET-SDK', '3.1.300', '-linux-x64')] + +sanity_check_paths = { + 'files': ['%(name)s.exe', 'bin/%(name)sCmd.exe', 'bin/%(name)sGui.exe'], + 'dirs': [], +} + +sanity_check_commands = [ + ("dotnet $EBROOTMAXQUANT/bin/%(name)sCmd.exe --version 2>&1 | grep -q 2.4.1.0", ''), # reports wrong version + ("dotnet $EBROOTMAXQUANT/bin/%(name)sCmd.exe --help 2>&1 | grep -q USAGE", '') +] + +modaliases = { + 'maxquantcmd': 'dotnet $EBROOTMAXQUANT/bin/%(name)sCmd.exe', + 'maxquantgui': 'dotnet $EBROOTMAXQUANT/bin/%(name)sGui.exe', +} + +modloadmsg = """ +To run MaxQuant in command-line mode: maxquantcmd + in GUI mode: maxquantgui +""" + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/m/MedPy/MedPy-0.4.0-fosscuda-2020b.eb b/easybuild/easyconfigs/m/MedPy/MedPy-0.4.0-fosscuda-2020b.eb new file mode 100644 index 00000000000..e5bb3979d85 --- /dev/null +++ b/easybuild/easyconfigs/m/MedPy/MedPy-0.4.0-fosscuda-2020b.eb @@ -0,0 +1,28 @@ +# This easyconfig was created by James Carpenter of the BEAR Software team at the University of Birmingham. +# updated: Denis Kristak +easyblock = 'PythonPackage' + +name = 'MedPy' +version = '0.4.0' + +homepage = 'https://pypi.org/project/MedPy/' +description = """MedPy is a library and script collection for medical image processing in Python, providing basic + functionalities for reading, writing and manipulating large images of arbitrary dimensionality. Its main + contributions are n-dimensional versions of popular image filters, a collection of image feature extractors, ready + to be used with scikit-learn, and an exhaustive n-dimensional graph-cut package.""" + +toolchain = {'name': 'fosscuda', 'version': '2020b'} + +sources = [SOURCE_TAR_GZ] +checksums = ['f8a94937dbb947ab069e767862dc6b86896b153c41ce8ed9369c7d79c0033a88'] + +dependencies = [ + ('Python', '3.8.6'), + ('SimpleITK', '2.1.0'), +] + +use_pip = True +sanity_pip_check = True +download_dep_fail = True + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/m/Meson/Meson-1.1.1-GCCcore-12.3.0.eb b/easybuild/easyconfigs/m/Meson/Meson-1.1.1-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..8f653ab16a1 --- /dev/null +++ b/easybuild/easyconfigs/m/Meson/Meson-1.1.1-GCCcore-12.3.0.eb @@ -0,0 +1,36 @@ +easyblock = 'PythonPackage' + +name = 'Meson' +version = '1.1.1' + +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': '12.3.0'} + +sources = [SOURCELOWER_TAR_GZ] +checksums = ['d04b541f97ca439fb82fab7d0d480988be4bd4e62563a5ca35fadb5400727b1c'] + +builddependencies = [ + ('binutils', '2.40'), +] + +dependencies = [ + ('Python', '3.11.3'), # includes required 'wheel' package + ('Ninja', '1.11.1'), +] + +download_dep_fail = True +use_pip = True +sanity_pip_check = True + +options = {'modulename': 'mesonbuild'} + +sanity_check_paths = { + 'files': ['bin/meson'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = ["meson --help"] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/m/Mesquite/Mesquite-2.3.0-GCCcore-10.2.0.eb b/easybuild/easyconfigs/m/Mesquite/Mesquite-2.3.0-GCCcore-10.2.0.eb new file mode 100644 index 00000000000..d28f9928eea --- /dev/null +++ b/easybuild/easyconfigs/m/Mesquite/Mesquite-2.3.0-GCCcore-10.2.0.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'Mesquite' +version = '2.3.0' + +homepage = 'https://software.sandia.gov/mesquite/' + +description = """Mesh-Quality Improvement Library""" + +toolchain = {'name': 'GCCcore', 'version': '10.2.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://software.sandia.gov/mesquite/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['4ab4ceadfa596e16c00dbb0e8b830a9112fa1b73291ca07633ec379a39b8bb28'] + +builddependencies = [ + ('binutils', '2.35'), +] + +sanity_check_paths = { + 'files': ['bin/msqquality', 'bin/msqshape', 'lib/libmesquite.a'], + 'dirs': ['include'], +} + +sanity_check_commands = [ + "msqquality -h", + "msqshape -h", +] + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/m/MetaEuk/MetaEuk-6-GCC-12.2.0.eb b/easybuild/easyconfigs/m/MetaEuk/MetaEuk-6-GCC-12.2.0.eb new file mode 100644 index 00000000000..983ce8ee7ae --- /dev/null +++ b/easybuild/easyconfigs/m/MetaEuk/MetaEuk-6-GCC-12.2.0.eb @@ -0,0 +1,31 @@ +easyblock = 'CMakeMake' + +name = 'MetaEuk' +version = '6' +local_commit = 'a5d39d9' + +homepage = 'https://metaeuk.soedinglab.org' +description = """MetaEuk is a modular toolkit designed for large-scale gene discovery and annotation in eukaryotic + metagenomic contigs.""" + +toolchain = {'name': 'GCC', 'version': '12.2.0'} + +source_urls = ['https://github.com/soedinglab/%(namelower)s/archive'] +sources = ['%%(version)s-%s.tar.gz' % local_commit] +checksums = ['be19c26f5bdb7dcdd7bc48172105afecf19e5a2e5555edb3ba0c4aa0e4aac126'] + +builddependencies = [('CMake', '3.24.3')] + +dependencies = [ + ('bzip2', '1.0.8'), + ('zlib', '1.2.12'), +] + +sanity_check_paths = { + 'files': ['bin/metaeuk'], + 'dirs': [], +} + +sanity_check_commands = ["metaeuk --help"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/m/MuJoCo/MuJoCo-2.2.2-GCCcore-11.3.0.eb b/easybuild/easyconfigs/m/MuJoCo/MuJoCo-2.2.2-GCCcore-11.3.0.eb new file mode 100644 index 00000000000..01b0b71bbb2 --- /dev/null +++ b/easybuild/easyconfigs/m/MuJoCo/MuJoCo-2.2.2-GCCcore-11.3.0.eb @@ -0,0 +1,48 @@ +easyblock = 'PackedBinary' + +name = 'MuJoCo' +version = '2.2.2' + +homepage = 'https://mujoco.org/' +description = """MuJoCo stands for Multi-Joint dynamics with Contact. It is a general purpose +physics engine that aims to facilitate research and development in robotics, +biomechanics, graphics and animation, machine learning, and other areas which +demand fast and accurate simulation of articulated structures interacting with +their environment.""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +source_urls = ['https://github.com/deepmind/mujoco/releases/download/%(version)s'] +sources = ['%(namelower)s-%(version)s-linux-%(arch)s.tar.gz'] +checksums = ['c887a4c315201ce47cf654e0115a55c29648567450d44cd8afe8e3a09d34ea1e'] + +builddependencies = [ + ('binutils', '2.38'), +] + +# MuJoCo bundles 3 variants of glew using non-standard sonames: +# - libglew with GLX +# - libglewegl with EGL +# - libglewosmesa with OSMESA +# - Software depending on MuJoCo expect these non-standard sonames, so they should not be removed +# - libglew and libglewegl seem to work with Mesa and X11 for toolchain GCCcore/11.2.0 +# - libglewosmesa has to be replaced as it links to an old libOSMesa + +dependencies = [ + ('glew', '2.2.0', '-osmesa'), +] + +postinstallcmds = [ + # replace bundled libglewosmesa.so with glew libs from EB + "ln -sf $EBROOTGLEW/lib64/libGLEW.so %(installdir)s/lib/libglewosmesa.so", +] + +sanity_check_paths = { + 'files': ['bin/basic', 'bin/derivative', 'bin/record', 'bin/simulate', + 'lib/libmujoco.%s' % SHLIB_EXT], + 'dirs': ['include', 'model', 'sample'], +} + +sanity_check_commands = ['basic'] + +moduleclass = 'phys' diff --git a/easybuild/easyconfigs/m/MultiQC/MultiQC-1.14-foss-2022b.eb b/easybuild/easyconfigs/m/MultiQC/MultiQC-1.14-foss-2022b.eb new file mode 100644 index 00000000000..cae209185bb --- /dev/null +++ b/easybuild/easyconfigs/m/MultiQC/MultiQC-1.14-foss-2022b.eb @@ -0,0 +1,85 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# Adam Huffman +# The Francis Crick Institute +# Elements derived from work by Pablo Escobar +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics + +# Note that Click in Python 3 requires that you change your locale to unicode before invoking your Python script. +# See: https://click.palletsprojects.com/en/7.x/python3/ + +easyblock = 'PythonBundle' + +name = 'MultiQC' +version = '1.14' + +homepage = 'https://multiqc.info' +description = """Aggregate results from bioinformatics analyses across many samples into a single report. + + MultiQC searches a given directory for analysis logs and compiles an HTML report. It's a general + use tool, perfect for summarising the output from numerous bioinformatics tools.""" + +toolchain = {'name': 'foss', 'version': '2022b'} + +dependencies = [ + ('Python', '3.10.8'), + ('matplotlib', '3.7.0'), + ('PyYAML', '6.0'), + ('networkx', '3.0'), +] + +use_pip = True + +exts_list = [ + ('colormath', '3.0.0', { + 'checksums': ['3d4605af344527da0e4f9f504fad7ddbebda35322c566a6c72e28edb1ff31217'], + }), + ('spectra', '0.0.11', { + 'checksums': ['8eb362a5187cb63cee13cd01186799c0c791a3ad3bec57b279132e12521762b8'], + }), + ('Markdown', '3.4.1', { + 'checksums': ['3b809086bb6efad416156e00a0da66fe47618a5d6918dd688f53f40c8e4cfeff'], + }), + ('lzstring', '1.0.4', { + 'checksums': ['1afa61e598193fbcc211e0899f09a9679e33f9102bccc37fbfda0b7fef4d9ea2'], + }), + ('coloredlogs', '15.0.1', { + 'checksums': ['7c991aa71a4577af2f82600d8f8f3a89f936baeaf9b50a9c197da014e5bf16b0'], + }), + ('mdurl', '0.1.2', { + 'checksums': ['bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba'], + }), + ('markdown-it-py', '2.1.0', { + 'checksums': ['cf7e59fed14b5ae17c0006eff14a2d9a00ed5f3a846148153899a0224e2c07da'], + 'modulename': 'markdown_it', + }), + ('Pygments', '2.14.0', { + 'checksums': ['b3ed06a9e8ac9a9aae5a6f5dbe78a8a58655d17b43b93c078f094ddc476ae297'], + }), + ('rich', '13.3.1', { + 'checksums': ['125d96d20c92b946b983d0d392b84ff945461e5a06d3867e9f9e575f8697b67f'], + }), + ('commonmark', '0.9.1', { + 'checksums': ['452f9dc859be7f06631ddcb328b6919c67984aca654e5fefb3914d54691aed60'], + }), + ('humanfriendly', '10.0', { + 'checksums': ['6b0b831ce8f15f7300721aa49829fc4e83921a9a301cc7f606be6686a2288ddc'], + }), + ('rich-click', '1.6.1', { + 'checksums': ['f8ff96693ec6e261d1544e9f7d9a5811c5ef5d74c8adb4978430fc0dac16777e'], + }), + ('multiqc', version, { + 'checksums': ['dcbba405f0c9521ed2bbd7e8f7a9200643047311c9619878b81d167300149362'], + }), +] + +sanity_check_paths = { + 'files': ['bin/multiqc'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = ["multiqc --help"] + +sanity_pip_check = True + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/m/mannkendall/mannkendall-1.1.1-foss-2022a.eb b/easybuild/easyconfigs/m/mannkendall/mannkendall-1.1.1-foss-2022a.eb new file mode 100644 index 00000000000..ff16aa1859f --- /dev/null +++ b/easybuild/easyconfigs/m/mannkendall/mannkendall-1.1.1-foss-2022a.eb @@ -0,0 +1,26 @@ +easyblock = 'PythonBundle' + +name = 'mannkendall' +version = '1.1.1' + +homepage = 'https://github.com/mmhs013/pymannkendall' +description = """A python package for non parametric Mann Kendall family of trend tests.""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), + ('statsmodels', '0.13.1'), +] + +exts_list = [ + (name, version, { + 'checksums': ['66993f53b78327b3e556511ccddd5929fbba38f4a8fbcb23754e37729d5d60fa'], + }), +] + +use_pip = True +sanity_pip_check = True + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/m/meshio/meshio-5.3.4-foss-2022b.eb b/easybuild/easyconfigs/m/meshio/meshio-5.3.4-foss-2022b.eb new file mode 100644 index 00000000000..d9bcd5c7380 --- /dev/null +++ b/easybuild/easyconfigs/m/meshio/meshio-5.3.4-foss-2022b.eb @@ -0,0 +1,37 @@ +easyblock = 'PythonBundle' + +name = 'meshio' +version = '5.3.4' + +homepage = 'https://github.com/nschloe/meshio' +description = "meshio is a tool for reading/writing various mesh formats representing unstructured meshes" + +toolchain = {'name': 'foss', 'version': '2022b'} + +dependencies = [ + ('Python', '3.10.8'), # includes numpy + ('h5py', '3.8.0'), + ('VTK', '9.2.6'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('appdirs', '1.4.4', { + 'checksums': ['7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41'], + }), + ('pipdate', '0.5.6', { + 'checksums': ['1b6b7ec2c5468fb7036ec9d6b2ced7a8a538db55aaca03f30199216d3bbd264b'], + }), + (name, version, { + 'checksums': ['e240692d7ff279c12b13c6e5d7b403629a86ad2b44e9230958b3f00c1ec369f0'], + }), +] + +sanity_check_paths = { + 'files': ['bin/meshio', 'bin/pipdate'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +moduleclass = 'cae' diff --git a/easybuild/easyconfigs/m/minimap2/minimap2-2.26-GCCcore-12.2.0.eb b/easybuild/easyconfigs/m/minimap2/minimap2-2.26-GCCcore-12.2.0.eb new file mode 100644 index 00000000000..34d616d1e19 --- /dev/null +++ b/easybuild/easyconfigs/m/minimap2/minimap2-2.26-GCCcore-12.2.0.eb @@ -0,0 +1,54 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# Adam Huffman +# DeepThought, Flinders University +# Updated to 2.22 +# R.QIAO + +# Update Petr Král (INUITS) +easyblock = 'MakeCp' + +name = 'minimap2' +version = '2.26' + +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': '12.2.0'} + +source_urls = ['https://github.com/lh3/%(name)s/releases/download/v%(version)s/'] +sources = ['%(name)s-%(version)s.tar.bz2'] +checksums = ['6a588efbd273bff4f4808d5190957c50272833d2daeb4407ccf4c1b78143624c'] + +builddependencies = [('binutils', '2.39')] + +dependencies = [('zlib', '1.2.12')] + +buildopts = 'CC="${CC}" CFLAGS="${CFLAGS}" INCLUDES="${CPPFLAGS}"' + +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", + "cd %(builddir)s/minimap2-%(version)s && minimap2 -a test/MT-human.fa test/MT-orang.fa > test.sam", +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/m/molecularGSM/molecularGSM-20190826-intel-2020b.eb b/easybuild/easyconfigs/m/molecularGSM/molecularGSM-20190826-intel-2020b.eb new file mode 100644 index 00000000000..ce073ff0933 --- /dev/null +++ b/easybuild/easyconfigs/m/molecularGSM/molecularGSM-20190826-intel-2020b.eb @@ -0,0 +1,60 @@ +easyblock = 'CMakeMake' + +name = 'molecularGSM' +version = '20190826' +_commit_moleculargsm = '02ae717' +_commit_tribits = '5308a8e' + +homepage = 'https://github.com/ZimmermanGroup/molecularGSM' +description = """Code for single-ended and double-ended molecular GSM. +The growing string method is a reaction path and transition state finding method developed in c++.""" + +toolchain = {'name': 'intel', 'version': '2020b'} +toolchainopts = {'debug': True, 'noopt': True, 'extra_cxxflags': '-traceback', 'optarch': False} + +sources = [ + { + 'source_urls': ['https://github.com/ZimmermanGroup/molecularGSM/archive/'], + 'download_filename': '%s.tar.gz' % _commit_moleculargsm, + 'filename': SOURCE_TAR_GZ, + }, + { + 'source_urls': ['https://github.com/TriBITSPub/TriBITS/archive'], + 'download_filename': '%s.tar.gz' % _commit_tribits, + 'filename': 'TriBITS-%s.tar.gz' % _commit_tribits, + 'extract_cmd': 'tar -xzf %s -C %(name)s-* && cd %(name)s-* && mv TriBITS-* TriBITS', + }, +] +patches = [ + 'molecularGSM-20190826_fix_intel.patch', + 'molecularGSM-20190826_fix_ase_test.patch', +] +checksums = [ + '7bb7fd30d4220f720c25a0c6f761eba2b62f94b3be91b15eb536e49778245afc', # molecularGSM-20190826.tar.gz + '121c3885f8b8d2080a299db7f3f527520c985671280e69cb7beb00cd9e9f3e00', # TriBITS-5308a8e.tar.gz + '64b81dec0380db1d350c6ab33d10acb4364ad929544596025e6c7dfea6144a70', # molecularGSM-20190826_fix_intel.patch + '13b4f207af96749a118dee66a5b1fa9606c65c4c39b1b9981edfe713b46dd9c5', # molecularGSM-20190826_fix_ase_test.patch +] + +builddependencies = [('CMake', '3.18.4')] + +configopts = [ + '', # default is MOPAC + '-DGSM_ENABLE_QCHEM=1', + '-DGSM_ENABLE_QCHEM_SF=1', + '-DGSM_ENABLE_ORCA=1', + '-DGSM_ENABLE_GAUSSIAN=1', + '-DGSM_ENABLE_MOLPRO=1', + '-DGSM_ENABLE_ASE=1', +] + +install_cmd = 'mkdir -p %(installdir)s/bin && cp -a GSM/*.exe %(installdir)s/bin/' + +_bins = ['ase', 'gaussian', 'molpro', 'mopac', 'orca', 'qchem', 'qchem_sf'] + +sanity_check_paths = { + 'files': ['bin/gsm.%s.exe' % x for x in _bins], + 'dirs': [], +} + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/m/molecularGSM/molecularGSM-20190826_fix_ase_test.patch b/easybuild/easyconfigs/m/molecularGSM/molecularGSM-20190826_fix_ase_test.patch new file mode 100644 index 00000000000..60b57bf2d5e --- /dev/null +++ b/easybuild/easyconfigs/m/molecularGSM/molecularGSM-20190826_fix_ase_test.patch @@ -0,0 +1,14 @@ +Remove missing test for ASE +Author: Samuel Moors (Vrije Universiteit Brussel) +diff -ur molecularGSM-02ae717e8f3b3bdfb4fe778c04db61d39194f746.orig/TEST/CMakeLists.txt molecularGSM-02ae717e8f3b3bdfb4fe778c04db61d39194f746/TEST/CMakeLists.txt +--- molecularGSM-02ae717e8f3b3bdfb4fe778c04db61d39194f746.orig/TEST/CMakeLists.txt 2019-08-26 19:05:31.000000000 +0200 ++++ molecularGSM-02ae717e8f3b3bdfb4fe778c04db61d39194f746/TEST/CMakeLists.txt 2021-03-30 12:11:41.946968000 +0200 +@@ -78,7 +78,7 @@ + #GFSTRINGQ_TEST(methanolFormaldehydeHydTransfer/orca/de-gsm methanol) + elseif(GSM_ENABLE_ASE) + MESSAGE(STATUS "ASE is enabled.") +- GFSTRINGQ_TEST(dielsAlder/ase/de-gsm diels) ++ #GFSTRINGQ_TEST(dielsAlder/ase/de-gsm diels) + elseif(GSM_ENABLE_TURBOMOLE) + MESSAGE(STATUS "TURBOMOLE is enabled.") + GFSTRINGQ_TEST(dielsAlder/turbomole/de-gsm-wrapper diels-w-wrapper) diff --git a/easybuild/easyconfigs/m/molecularGSM/molecularGSM-20190826_fix_intel.patch b/easybuild/easyconfigs/m/molecularGSM/molecularGSM-20190826_fix_intel.patch new file mode 100644 index 00000000000..e0b8e9111d3 --- /dev/null +++ b/easybuild/easyconfigs/m/molecularGSM/molecularGSM-20190826_fix_intel.patch @@ -0,0 +1,532 @@ +Fix source for building with intel compilers +Source: https://github.com/ZimmermanGroup/molecularGSM/files/4912332/patchfile-GSM.txt +--- GSM/ase.cpp.org 2020-07-09 08:31:35.425473399 +0200 ++++ GSM/ase.cpp 2020-07-09 08:51:59.209752687 +0200 +@@ -130,7 +130,7 @@ + string line; + bool success = true; + +- success=getline(gradfile, line); ++ success=static_cast(getline(gradfile, line)); + double V = -1 * atof(line.c_str()) / 27.2114; + //printf(" found E: %7.5f \n",V); + +@@ -142,7 +142,7 @@ + grad[3*i+0] = grad[3*i+1] = grad[3*i+2] = 1.; + break; + } +- success=getline(gradfile, line); ++ success=static_cast(getline(gradfile, line)); + //cout << "RR " << line << endl; + int length=StringTools::cleanstring(line); + vector tok_line = StringTools::tokenize(line, " \t[]"); +--- GSM/bmat.cpp.org 2020-07-09 08:31:35.426473390 +0200 ++++ GSM/bmat.cpp 2020-07-09 08:53:45.562819591 +0200 +@@ -4683,7 +4683,7 @@ + int found = 0; + while(!hessfile.eof()) + { +- success = getline(hessfile,line); ++ success = static_cast(getline(hessfile,line)); + if (line.find("Hessian of the SCF Energy")!=string::npos) + { + found = 1; +@@ -4698,7 +4698,7 @@ + while(!hessfile.eof() && found) + { + nf++; +- success = getline(hessfile,line); ++ success = static_cast(getline(hessfile,line)); + //cout << " RR0: " << line << endl; + for (int j=0;j(getline(hesspfile, line)); + //cout << " RR: " << line << endl; + int length=StringTools::cleanstring(line); + tok_line = StringTools::tokenize(line, " \t"); + natomsf = atoi(tok_line[1].c_str()); + +- success=getline(hesspfile, line); ++ success=static_cast(getline(hesspfile, line)); + //cout << " RR: " << line << endl; + length=StringTools::cleanstring(line); + tok_line = StringTools::tokenize(line, " \t"); +@@ -4855,7 +4855,7 @@ + + for (int i=0;i(getline(hesspfile, line)); + length=StringTools::cleanstring(line); + if (length<1) break; + tok_line = StringTools::tokenize(line, " \t"); +--- GSM/gaussian.cpp.org 2020-07-09 08:31:35.426473390 +0200 ++++ GSM/gaussian.cpp 2020-07-09 08:56:34.787334572 +0200 +@@ -141,7 +141,7 @@ + int done = 0; + while (!gradfile.eof() && done<2) + { +- success=getline(gradfile, line); ++ success=static_cast(getline(gradfile, line)); + if (line.find("SCF Energy")!=string::npos) + { + //cout << " RRe: " << line << endl; +@@ -155,7 +155,7 @@ + int ngf = 0; + while (ngf<3*natoms) + { +- success=getline(gradfile, line); ++ success=static_cast(getline(gradfile, line)); + tok_line = StringTools::tokenize(line, " \t"); + int lsize = tok_line.size(); + for (int j=0;j(getline(infile, line)); + nstates0 = atoi(line.c_str()); + + infile.close(); +@@ -425,7 +425,7 @@ + bool success=true; + while (!infile.eof()) + { +- success=getline(infile, line); ++ success=static_cast(getline(infile, line)); + if (success) + hf_lines0[nhf++] = line; + } +@@ -462,7 +462,7 @@ + int nf = 0; + while (!infile.eof()) + { +- success=getline(infile, line); ++ success=static_cast(getline(infile, line)); + vector tok_line = StringTools::tokenize(line, " "); + //cout << "RR0: " << line << endl; fflush(stdout); + +@@ -690,7 +690,7 @@ + int nf = 0; + while (!infile.eof()) + { +- success=getline(infile, line); ++ success=static_cast(getline(infile, line)); + vector tok_line = StringTools::tokenize(line, " "); + if (tok_line.size()>3) + { +--- GSM/gstring.cpp.org 2020-07-09 08:31:35.429473364 +0200 ++++ GSM/gstring.cpp 2020-07-09 08:56:34.817334309 +0200 +@@ -1284,14 +1284,14 @@ + + string line; + bool success=true; +- success=getline(infile, line); ++ success=static_cast(getline(infile, line)); + if (success){ + int length=StringTools::cleanstring(line); + natoms=atoi(line.c_str()); + } + cout <<" -The number of atoms is: " << natoms << endl; + +- success=getline(infile, line); ++ success=static_cast(getline(infile, line)); + vector tok_line0 = StringTools::tokenize(line, " \t"); + CHARGE = 0; + if (tok_line0.size()>0) +@@ -1308,7 +1308,7 @@ + + cout <<" -Reading the atomic names..."; + for (int i=0;i(getline(infile, line)); + int length=StringTools::cleanstring(line); + vector tok_line = StringTools::tokenize(line, " \t"); + anames[i]=tok_line[0]; +@@ -1345,8 +1345,8 @@ + for (int i=0;i<2;i++) + { + if (isSSM && i==1) break; +- success=getline(infile, line); +- success=getline(infile, line); ++ success=static_cast(getline(infile, line)); ++ success=static_cast(getline(infile, line)); + for (int j=0;j(getline(infile, line)); + int length=StringTools::cleanstring(line); + vector tok_line = StringTools::tokenize(line, " \t"); + // cout << " i: " << i << " string: " << line << endl; +@@ -5997,7 +5997,7 @@ + + string line; + bool success=true; +- success=getline(infile, line); ++ success=static_cast(getline(infile, line)); + if (success) + { + int length=StringTools::cleanstring(line); +@@ -6013,8 +6013,8 @@ + for (int i=0;i0) +- success=getline(infile, line); +- success=getline(infile, line); ++ success=static_cast(getline(infile, line)); ++ success=static_cast(getline(infile, line)); + if (infile.eof()) + { + printf(" end of restart.xyz reached \n"); +@@ -6026,7 +6026,7 @@ + + for (int j=0;j(getline(infile, line)); + int length=StringTools::cleanstring(line); + vector tok_line = StringTools::tokenize(line, " \t"); + // cout << " i: " << i << " string: " << line << endl; +--- GSM/icoord.cpp.org 2020-07-09 08:31:35.430473355 +0200 ++++ GSM/icoord.cpp 2020-07-09 08:56:34.827334221 +0200 +@@ -1866,14 +1866,14 @@ + + string line; + bool success=true; +- success=getline(infile, line); ++ success=static_cast(getline(infile, line)); + if (success){ + int length=StringTools::cleanstring(line); + natoms=atoi(line.c_str()); + } + cout <<" natoms: " << natoms << endl; + +- success=getline(infile, line); ++ success=static_cast(getline(infile, line)); + // if (success){ + // comment=line; + // } +@@ -1885,7 +1885,7 @@ + + //cout <<" -Reading the atomic names..."; + for (int i=0;i(getline(infile, line)); + int length=StringTools::cleanstring(line); + vector tok_line = StringTools::tokenize(line, " \t"); + anames[i]=tok_line[0]; +@@ -1911,10 +1911,10 @@ + + + // for (int i=1;i<=2;i++){ +- success=getline(infile, line); +- success=getline(infile, line); ++ success=static_cast(getline(infile, line)); ++ success=static_cast(getline(infile, line)); + for (int j=0;j(getline(infile, line)); + int length=StringTools::cleanstring(line); + vector tok_line = StringTools::tokenize(line, " \t"); + coords[3*j+0]=atof(tok_line[1].c_str()); +@@ -1973,10 +1973,10 @@ + string line; + bool success=true; + int type = 1; +- success=getline(infile, line); ++ success=static_cast(getline(infile, line)); + while (!infile.eof()) + { +- success=getline(infile, line); ++ success=static_cast(getline(infile, line)); + //cout << "RR0: " << line << endl; + int length=StringTools::cleanstring(line); + vector tok_line = StringTools::tokenize(line, " \t"); +@@ -1993,7 +1993,7 @@ + + for (int i=0;i(getline(infile, line)); + //cout << "RR: " << line << endl; + length=StringTools::cleanstring(line); + tok_line = StringTools::tokenize(line, " \t"); +@@ -2015,7 +2015,7 @@ + + for (int i=0;i(getline(infile, line)); + //cout << "RR: " << line << endl; + length=StringTools::cleanstring(line); + tok_line = StringTools::tokenize(line, " \t"); +@@ -2038,7 +2038,7 @@ + + for (int i=0;i(getline(infile, line)); + //cout << "RR: " << line << endl; + length=StringTools::cleanstring(line); + tok_line = StringTools::tokenize(line, " \t"); +--- GSM/knnr.cpp.org 2020-07-09 08:31:35.430473355 +0200 ++++ GSM/knnr.cpp 2020-07-09 08:58:27.384346467 +0200 +@@ -1118,7 +1118,7 @@ + bool success=true; + while (!infile.eof()) + { +- success=getline(infile, line); ++ success=static_cast(getline(infile, line)); + //cout << "RR: " << line << endl; + int length=StringTools::cleanstring(line); + vector tok_line = StringTools::tokenize(line, " \t"); +@@ -1148,10 +1148,10 @@ + string line; + bool success=true; + int type = 1; +- success=getline(infile, line); ++ success=static_cast(getline(infile, line)); + while (!infile.eof()) + { +- success=getline(infile, line); ++ success=static_cast(getline(infile, line)); + //cout << "RR0: " << line << endl; + int length=StringTools::cleanstring(line); + vector tok_line = StringTools::tokenize(line, " \t"); +@@ -1166,7 +1166,7 @@ + + for (int i=0;i(getline(infile, line)); + //cout << "RR: " << line << endl; + length=StringTools::cleanstring(line); + tok_line = StringTools::tokenize(line, " \t"); +@@ -1186,7 +1186,7 @@ + + for (int i=0;i(getline(infile, line)); + //cout << "RR: " << line << endl; + length=StringTools::cleanstring(line); + tok_line = StringTools::tokenize(line, " \t"); +@@ -1207,7 +1207,7 @@ + + for (int i=0;i(getline(infile, line)); + //cout << "RR: " << line << endl; + length=StringTools::cleanstring(line); + tok_line = StringTools::tokenize(line, " \t"); +@@ -1253,18 +1253,18 @@ + + string line; + bool success=true; +- success=getline(infile, line); ++ success=static_cast(getline(infile, line)); + if (success){ + int length=StringTools::cleanstring(line); + //natoms=atoi(line.c_str()); + } + //printf(" natoms: %i \n",natoms); + +- success=getline(infile, line); ++ success=static_cast(getline(infile, line)); + + for (int i=0;i(getline(infile, line)); + int length=StringTools::cleanstring(line); + vector tok_line = StringTools::tokenize(line, " \t"); + anames[i]=tok_line[0]; +@@ -1337,8 +1337,8 @@ + int done = 0; + while(!infile.eof() && !done) + { +- success = getline(infile,line); +- success = getline(infile,line); ++ success = static_cast(getline(infile,line)); ++ success = static_cast(getline(infile,line)); + + //cout << " RR: " << line << endl; fflush(stdout); + int length=StringTools::cleanstring(line); +@@ -1432,9 +1432,9 @@ + int done = 0; + while(!infile.eof() && !done) + { +- success = getline(infile,line); ++ success = static_cast(getline(infile,line)); + //cout << "RR0: " << line << endl; +- success = getline(infile,line); ++ success = static_cast(getline(infile,line)); + //cout << "RR0: " << line << endl; + int length=StringTools::cleanstring(line); + vector tok_line = StringTools::tokenize(line, " \t"); +--- GSM/molpro.cpp.org 2020-07-09 08:31:35.431473346 +0200 ++++ GSM/molpro.cpp 2020-07-09 08:56:34.841334098 +0200 +@@ -318,7 +318,7 @@ + int found = 0; + while(!outfilei.eof()) + { +- success=getline(outfilei, line); ++ success=static_cast(getline(outfilei, line)); + if (line.find("MCSCF STATE 1.1 Energy")!=string::npos) + { + //cout << " found: " << line << endl; +@@ -481,11 +481,11 @@ + + string line; + bool success=true; +- success=getline(outfilei, line); ++ success=static_cast(getline(outfilei, line)); + int cont = 0; + while(!outfilei.eof()) + { +- success=getline(outfilei, line); ++ success=static_cast(getline(outfilei, line)); + if (line.find("SA-MC GRADIENT FOR STATE")!=string::npos) + { + //cout << " found: " << line << endl; +@@ -511,7 +511,7 @@ + if (cont) + for (int i=0;i(getline(outfilei, line)); + int length=StringTools::cleanstring(line); + vector tok_line = StringTools::tokenize(line, " \t"); + //cout << " RR: " << line << endl; +@@ -557,11 +557,11 @@ + + string line; + bool success=true; +- success=getline(outfilei, line); ++ success=static_cast(getline(outfilei, line)); + int cont = 0; + while(!outfilei.eof()) + { +- success=getline(outfilei, line); ++ success=static_cast(getline(outfilei, line)); + if (line.find("SA-MC NACME FOR STATES")!=string::npos) + { + //cout << " found: " << line << endl; +@@ -576,7 +576,7 @@ + if (cont) + for (int i=0;i(getline(outfilei, line)); + int length=StringTools::cleanstring(line); + vector tok_line = StringTools::tokenize(line, " \t"); + //cout << " RR: " << line << endl; +--- GSM/orca.cpp.org 2020-07-09 08:31:35.431473346 +0200 ++++ GSM/orca.cpp 2020-07-09 08:56:34.846334054 +0200 +@@ -138,7 +138,7 @@ + int done = 0; + while (!gradfile.eof() && done<2) + { +- success=getline(gradfile, line); ++ success=static_cast(getline(gradfile, line)); + if (line.find("Total Energy")!=string::npos) + { + //cout << " RRe: " << line << endl; fflush(stdout); +@@ -148,12 +148,12 @@ + } + if (line.find("CARTESIAN GRADIENT")!=string::npos) + { +- success=getline(gradfile, line); +- success=getline(gradfile, line); ++ success=static_cast(getline(gradfile, line)); ++ success=static_cast(getline(gradfile, line)); + //cout << " RR0g: " << line << endl; + for (int j=0;j(getline(gradfile, line)); + //cout << " RRg: " << line << endl; + tok_line = StringTools::tokenize(line, " \t"); + for (int k=0;k<3;k++) +--- GSM/qchem.cpp.org 2020-07-09 08:31:35.432473337 +0200 ++++ GSM/qchem.cpp 2020-07-09 08:56:34.852334001 +0200 +@@ -430,9 +430,9 @@ + bool success = true; + //cout << "reading gradient... " << endl; + +- success=getline(gradfile, line); +- success=getline(gradfile, line); +- success=getline(gradfile, line); ++ success=static_cast(getline(gradfile, line)); ++ success=static_cast(getline(gradfile, line)); ++ success=static_cast(getline(gradfile, line)); + + for (int i=0;i(getline(gradfile, line)); + //cout << "RR " << line << endl; + int length=StringTools::cleanstring(line); + vector tok_line = StringTools::tokenize(line, " \t"); +--- GSM/qchemsf.cpp.org 2020-07-09 08:31:35.432473337 +0200 ++++ GSM/qchemsf.cpp 2020-07-09 08:56:34.857333958 +0200 +@@ -349,7 +349,7 @@ + int wg = 0; + while (!gradfile.eof()) + { +- success=getline(gradfile, line); ++ success=static_cast(getline(gradfile, line)); + if (line.find("GSM-formatted gradient")!=string::npos) + { + double* gradn = grad1; +@@ -360,7 +360,7 @@ + + for (int i=0;i(getline(gradfile, line)); + //cout << "RR " << line << endl; + int length=StringTools::cleanstring(line); + vector tok_line = StringTools::tokenize(line, " \t"); +--- GSM/turbomole.cpp.org 2020-07-09 08:31:35.432473337 +0200 ++++ GSM/turbomole.cpp 2020-07-09 08:56:34.863333905 +0200 +@@ -458,9 +458,9 @@ + bool success = true; + cout << "reading gradient from... " << file.c_str() << endl; + +- success=getline(gradfile, line); +- success=getline(gradfile, line); +- success=getline(gradfile, line); ++ success=static_cast(getline(gradfile, line)); ++ success=static_cast(getline(gradfile, line)); ++ success=static_cast(getline(gradfile, line)); + + //for (int i=0;i(getline(gradfile, line)); + // cout << "RR " << line << endl; + int length=StringTools::cleanstring(line); + vector tok_line = StringTools::tokenize(line, " \t"); diff --git a/easybuild/easyconfigs/m/mpifileutils/mpifileutils-0.11.1-gompi-2022a.eb b/easybuild/easyconfigs/m/mpifileutils/mpifileutils-0.11.1-gompi-2022a.eb new file mode 100644 index 00000000000..417593512aa --- /dev/null +++ b/easybuild/easyconfigs/m/mpifileutils/mpifileutils-0.11.1-gompi-2022a.eb @@ -0,0 +1,37 @@ +easyblock = 'CMakeMake' + +name = 'mpifileutils' +version = "0.11.1" + +homepage = 'https://hpc.github.io/mpifileutils/' + +description = """ + MPI-Based File Utilities For Distributed Systems +""" + +toolchain = {'name': 'gompi', 'version': '2022a'} + +github_account = 'hpc' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['e2cba53309b5b3ee581b6ff82e4e66f54628370cce694c34224ed947fece32d4'] + +builddependencies = [ + ('CMake', '3.24.3'), +] + +dependencies = [ + ('attr', '2.5.1'), + ('bzip2', '1.0.8'), + ('lwgrp', '1.0.5'), + ('dtcmp', '1.1.4'), + ('libarchive', '3.6.1'), + ('libcircle', '0.3'), +] + +sanity_check_paths = { + 'files': ['bin/dsync', 'include/mfu.h', 'lib/libmfu.%s' % SHLIB_EXT], + 'dirs': [] +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/n/NAMD/NAMD-2.14-foss-2022a-mpi.eb b/easybuild/easyconfigs/n/NAMD/NAMD-2.14-foss-2022a-mpi.eb new file mode 100644 index 00000000000..78c6ee3ba72 --- /dev/null +++ b/easybuild/easyconfigs/n/NAMD/NAMD-2.14-foss-2022a-mpi.eb @@ -0,0 +1,35 @@ +name = 'NAMD' +version = '2.14' +versionsuffix = '-mpi' + +homepage = 'https://www.ks.uiuc.edu/Research/namd/' +description = """NAMD is a parallel molecular dynamics code designed for high-performance simulation of + large biomolecular systems.""" + +toolchain = {'name': 'foss', 'version': '2022a'} +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'] +patches = [ + 'NAMD-2.14_fix-constant-pH.patch', + 'NAMD-2.14_fix-LJCorrection.patch', +] +checksums = [ + '34044d85d9b4ae61650ccdba5cda4794088c3a9075932392dd0752ef8c049235', # NAMD_2.14_Source.tar.gz + '864c6941b7cf52b78d26f2311236ec717f29399aa71436904930706d5d8b61de', # NAMD-2.14_fix-constant-pH.patch + '7b54cc62c893f00f491d8ff75685c8877d78a9471fa3db6fc70974edba09e70a', # NAMD-2.14_fix-LJCorrection.patch +] + +dependencies = [ + ('Tcl', '8.6.12'), +] + +# /bin/csh is required by 'config' script +osdependencies = ['tcsh'] + +# Hard to make charm build the mpi version with gcc on POWER, so we don't currently try +charm_arch = 'mpi-linux-x86_64' +charm_extra_cxxflags = '-fpermissive' + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/n/NAMD/NAMD-2.14_fix-LJCorrection.patch b/easybuild/easyconfigs/n/NAMD/NAMD-2.14_fix-LJCorrection.patch new file mode 100644 index 00000000000..25a4e59e173 --- /dev/null +++ b/easybuild/easyconfigs/n/NAMD/NAMD-2.14_fix-LJCorrection.patch @@ -0,0 +1,24 @@ +# Fix LJ correction for alchemical simulation +# Patch is taken from https://www.ks.uiuc.edu/Research/namd/2.14/bugfixes.html +# Author: maxim-masterov (SURF) +diff -Nru NAMD_2.14_Source.orig/src/Molecule.C NAMD_2.14_Source/src/Molecule.C +--- NAMD_2.14_Source.orig/src/Molecule.C 2022-08-25 12:50:46.282906000 +0200 ++++ NAMD_2.14_Source/src/Molecule.C 2022-08-25 12:54:31.616781099 +0200 +@@ -10159,7 +10159,7 @@ + numLJsites1 = numLJsites2 = numLJsites; + int alch_counter = 0; + for (int i=0; i < numAtoms; ++i) { +- int alchFlagi; ++ int alchFlagi = 0; + if (get_fep_type(i) == 2 || get_fep_type(i) == 4) alchFlagi = -1; + if (get_fep_type(i) == 1 || get_fep_type(i) == 3) alchFlagi = 1; + if (params->get_vdw_pair_params(atoms[i].vdw_type, atoms[i].vdw_type, +@@ -10182,7 +10182,7 @@ + else if (alchFlagi == -1) numLJsites1--; + } + for (int j=i+1; j < numAtoms; ++j) { +- int alchFlagj; ++ int alchFlagj = 0; + if (get_fep_type(j) == 2 || get_fep_type(j) == 4) alchFlagj = -1; + if (get_fep_type(j) == 1 || get_fep_type(j) == 3) alchFlagj = 1; + int alchFlagSum = alchFlagi + alchFlagj; diff --git a/easybuild/easyconfigs/n/NAMD/NAMD-2.14_fix-constant-pH.patch b/easybuild/easyconfigs/n/NAMD/NAMD-2.14_fix-constant-pH.patch new file mode 100644 index 00000000000..331a5e06284 --- /dev/null +++ b/easybuild/easyconfigs/n/NAMD/NAMD-2.14_fix-constant-pH.patch @@ -0,0 +1,20 @@ +# Fix constant-pH MD output +# Patch is taken from https://www.ks.uiuc.edu/Research/namd/2.14/bugfixes.html +# Author: maxim-masterov (SURF) +diff -Nru NAMD_2.14_Source.orig/src/ScriptTcl.C NAMD_2.14_Source/src/ScriptTcl.C +--- NAMD_2.14_Source.orig/src/ScriptTcl.C 2022-08-25 12:50:46.325325000 +0200 ++++ NAMD_2.14_Source/src/ScriptTcl.C 2022-08-25 12:51:48.557043174 +0200 +@@ -2085,11 +2085,11 @@ + } + + +-extern "C" void newhandle_msg(void *v, const char *msg) { ++extern "C" void newhandle_msg(void *vdata, void *v, const char *msg) { + CkPrintf("psfgen) %s\n",msg); + } + +-extern "C" void newhandle_msg_ex(void *v, const char *msg, int prepend, int newline) { ++extern "C" void newhandle_msg_ex(void *vdata, void *v, const char *msg, int prepend, int newline) { + CkPrintf("%s%s%s", (prepend ? "psfgen) " : ""), msg, (newline ? "\n" : "")); + } + diff --git a/easybuild/easyconfigs/n/NCCL/NCCL-2.18.3-GCCcore-12.3.0-CUDA-12.1.1.eb b/easybuild/easyconfigs/n/NCCL/NCCL-2.18.3-GCCcore-12.3.0-CUDA-12.1.1.eb new file mode 100644 index 00000000000..4e931ccda3d --- /dev/null +++ b/easybuild/easyconfigs/n/NCCL/NCCL-2.18.3-GCCcore-12.3.0-CUDA-12.1.1.eb @@ -0,0 +1,26 @@ +name = 'NCCL' +version = '2.18.3' +versionsuffix = '-CUDA-%(cudaver)s' + +homepage = 'https://developer.nvidia.com/nccl' +description = """The NVIDIA Collective Communications Library (NCCL) implements multi-GPU and multi-node collective +communication primitives that are performance optimized for NVIDIA GPUs.""" + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} + +github_account = 'NVIDIA' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s-1.tar.gz'] +checksums = ['b4f5d7d9eea2c12e32e7a06fe138b2cfc75969c6d5c473aa6f819a792db2fc96'] + +builddependencies = [('binutils', '2.40')] + +dependencies = [ + ('CUDA', '12.1.1', '', SYSTEM), + ('UCX-CUDA', '1.14.1', versionsuffix), +] + +# default CUDA compute capabilities to use (override via --cuda-compute-capabilities) +cuda_compute_capabilities = ['5.0', '6.0', '7.0', '7.5', '8.0', '8.6', '9.0'] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/n/NCO/NCO-5.0.6-intel-2019b.eb b/easybuild/easyconfigs/n/NCO/NCO-5.0.6-intel-2019b.eb new file mode 100644 index 00000000000..0bbf278870b --- /dev/null +++ b/easybuild/easyconfigs/n/NCO/NCO-5.0.6-intel-2019b.eb @@ -0,0 +1,47 @@ +easyblock = 'ConfigureMake' + +name = 'NCO' +version = '5.0.6' + +homepage = "https://nco.sourceforge.net" +description = """manipulates and analyzes data stored in netCDF-accessible formats, including DAP, HDF4, and HDF5""" + +toolchain = {'name': 'intel', 'version': '2019b'} +# compile with -O1 to work around Intel compiler crash (Segmentation violation signal raised) +# which happens on some processors (such as skylake, cascadelake) +toolchainopts = {'lowopt': True} + +source_urls = ['https://github.com/nco/nco/archive/'] +sources = ['%(version)s.tar.gz'] +checksums = ['d4c74e0268af94bdddcb0c77189830992f61c04147c23669b66470f1a8595d60'] + +builddependencies = [ + ('Bison', '3.3.2'), + ('flex', '2.6.4'), +] + +dependencies = [ + ('UDUNITS', '2.2.26'), + ('expat', '2.2.7'), + ('ANTLR', '2.7.7', '-Java-11'), + ('libdap', '3.20.6'), + ('GSL', '2.6'), + ('netCDF', '4.7.1'), + ('ESMF', '8.0.0'), # ncremap needs ESMF_RegridWeightGen +] + +configopts = "--enable-nco_cplusplus" + +sanity_check_paths = { + 'files': ['bin/nc%s' % x for x in ('ap2', 'atted', 'bo', 'diff', 'ea', 'ecat', 'es', + 'flint', 'ks', 'pdq', 'ra', 'rcat', 'rename', 'wa')] + + ['lib/libnco.a', 'lib/libnco.%s' % SHLIB_EXT, 'lib/libnco_c++.a', 'lib/libnco_c++.%s' % SHLIB_EXT], + 'dirs': ['include'], +} + +sanity_check_commands = [ + "ncks -O -7 --cnk_dmn time,10 " + "%(builddir)s/%(namelower)s-%(version)s/data/in.nc %(builddir)s/%(namelower)s-%(version)s/data/in4.cdl" +] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/n/NVHPC/NVHPC-22.7-CUDA-11.7.0.eb b/easybuild/easyconfigs/n/NVHPC/NVHPC-22.7-CUDA-11.7.0.eb index 4922cc417e6..2aee5e827db 100644 --- a/easybuild/easyconfigs/n/NVHPC/NVHPC-22.7-CUDA-11.7.0.eb +++ b/easybuild/easyconfigs/n/NVHPC/NVHPC-22.7-CUDA-11.7.0.eb @@ -62,5 +62,7 @@ dependencies = [ # module_add_nvshmem = True # Add NVHPC's NVSHMEM library # module_add_cuda = False # Add NVHPC's bundled CUDA +modextrapaths = {'LD_LIBRARY_PATH': 'Linux_%(arch)s/%(version)s/compilers/extras/qd/lib/'} + # 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/n/NWChem/NWChem-7.0.0-intel-2019b-Python-3.7.4.eb b/easybuild/easyconfigs/n/NWChem/NWChem-7.0.0-intel-2019b-Python-3.7.4.eb index 791e0dc8351..79f6cbbc42f 100644 --- a/easybuild/easyconfigs/n/NWChem/NWChem-7.0.0-intel-2019b-Python-3.7.4.eb +++ b/easybuild/easyconfigs/n/NWChem/NWChem-7.0.0-intel-2019b-Python-3.7.4.eb @@ -4,7 +4,7 @@ versionsuffix = '-Python-%(pyver)s' local_verdate = '2020-02-26' local_revision = '2c9a1c7c' -homepage = 'http://www.nwchem-sw.org' +homepage = 'https://nwchemgit.github.io/' 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. 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 index e176204adb4..098a37fd47c 100644 --- 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 @@ -4,7 +4,7 @@ versionsuffix = '-Python-%(pyver)s' local_verdate = '2020-10-12' local_revision = 'b9985dfa' -homepage = 'https://www.nwchem-sw.org' +homepage = 'https://nwchemgit.github.io/' 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. diff --git a/easybuild/easyconfigs/n/NWChem/NWChem-7.0.2-intel-2021a.eb b/easybuild/easyconfigs/n/NWChem/NWChem-7.0.2-intel-2021a.eb index b613590b4a3..ebc87eaa333 100644 --- a/easybuild/easyconfigs/n/NWChem/NWChem-7.0.2-intel-2021a.eb +++ b/easybuild/easyconfigs/n/NWChem/NWChem-7.0.2-intel-2021a.eb @@ -3,7 +3,7 @@ version = '7.0.2' local_verdate = '2020-10-12' local_revision = 'b9985dfa' -homepage = 'https://www.nwchem-sw.org' +homepage = 'https://nwchemgit.github.io/' 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. diff --git a/easybuild/easyconfigs/n/NWChem/NWChem-7.0.2-intel-2022a.eb b/easybuild/easyconfigs/n/NWChem/NWChem-7.0.2-intel-2022a.eb index 25d9440384b..53768c81107 100644 --- a/easybuild/easyconfigs/n/NWChem/NWChem-7.0.2-intel-2022a.eb +++ b/easybuild/easyconfigs/n/NWChem/NWChem-7.0.2-intel-2022a.eb @@ -3,7 +3,7 @@ version = '7.0.2' local_verdate = '2020-10-12' local_revision = 'b9985dfa' -homepage = 'https://www.nwchem-sw.org' +homepage = 'https://nwchemgit.github.io/' 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. diff --git a/easybuild/easyconfigs/n/NanoStat/NanoStat-1.6.0-foss-2021a.eb b/easybuild/easyconfigs/n/NanoStat/NanoStat-1.6.0-foss-2021a.eb new file mode 100644 index 00000000000..ae38968c030 --- /dev/null +++ b/easybuild/easyconfigs/n/NanoStat/NanoStat-1.6.0-foss-2021a.eb @@ -0,0 +1,34 @@ +easyblock = 'PythonBundle' + +name = 'NanoStat' +version = '1.6.0' + +homepage = 'https://github.com/wdecoster/nanostat' +description = """Calculate various statistics from a long read sequencing dataset in fastq, + bam or albacore sequencing summary format.""" + +toolchain = {'name': 'foss', 'version': '2021a'} + +dependencies = [ + ('Python', '3.9.5'), + ('nanoget', '1.18.1'), + ('nanomath', '1.2.1'), +] + +sanity_pip_check = True +use_pip = True + +exts_list = [ + (name, version, { + 'checksums': ['e45fa8d1ab49bdaed17596c26c0af148b44e4af46238391a8bb7a1b4cc940079'], + }), +] + +sanity_check_paths = { + 'files': ['bin/NanoStat'], + 'dirs': [], +} + +sanity_check_commands = ["NanoStat --help"] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/n/NanoStat/NanoStat-1.6.0-foss-2022a.eb b/easybuild/easyconfigs/n/NanoStat/NanoStat-1.6.0-foss-2022a.eb new file mode 100644 index 00000000000..40c1f10d183 --- /dev/null +++ b/easybuild/easyconfigs/n/NanoStat/NanoStat-1.6.0-foss-2022a.eb @@ -0,0 +1,34 @@ +easyblock = 'PythonBundle' + +name = 'NanoStat' +version = '1.6.0' + +homepage = 'https://github.com/wdecoster/nanostat' +description = """Calculate various statistics from a long read sequencing dataset in fastq, + bam or albacore sequencing summary format.""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +dependencies = [ + ('Python', '3.10.4'), + ('nanoget', '1.18.1'), + ('nanomath', '1.3.0'), +] + +sanity_pip_check = True +use_pip = True + +exts_list = [ + (name, version, { + 'checksums': ['e45fa8d1ab49bdaed17596c26c0af148b44e4af46238391a8bb7a1b4cc940079'], + }), +] + +sanity_check_paths = { + 'files': ['bin/NanoStat'], + 'dirs': [], +} + +sanity_check_commands = ["NanoStat --help"] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/n/Nextflow/Nextflow-23.04.2.eb b/easybuild/easyconfigs/n/Nextflow/Nextflow-23.04.2.eb new file mode 100644 index 00000000000..88a839637ea --- /dev/null +++ b/easybuild/easyconfigs/n/Nextflow/Nextflow-23.04.2.eb @@ -0,0 +1,35 @@ +easyblock = 'Binary' + +name = 'Nextflow' +version = '23.04.2' + +homepage = 'https://www.%(namelower)s.io/' +description = """Nextflow is a reactive workflow framework and a programming DSL + that eases writing computational pipelines with complex data""" + +toolchain = SYSTEM + +source_urls = ['https://github.com/%(namelower)s-io/%(namelower)s/releases/download/v%(version)s/'] +sources = ['%(namelower)s-%(version)s-all'] +checksums = ['d7a6c3eacc400648da85c0a56866ce39d240b3aab4c88ee470180f4dcf1847b4'] + +dependencies = [('Java', '11')] + +install_cmds = [ + "mkdir -p %(installdir)s/bin", + "cp %(builddir)s/%(namelower)s-%(version)s-all %(installdir)s/bin", + "cd %(installdir)s/bin && ln -s %(namelower)s-%(version)s-all %(namelower)s", + "cd %(installdir)s/bin && chmod +x %(installdir)s/bin/%(namelower)s-%(version)s-all", +] + +sanity_check_paths = { + 'files': ['bin/%(namelower)s-%(version)s-all', 'bin/%(namelower)s'], + 'dirs': [] +} + +sanity_check_commands = [ + "%(namelower)s -v", + "%(namelower)s help", +] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/n/Ninja/Ninja-1.11.1-GCCcore-12.3.0.eb b/easybuild/easyconfigs/n/Ninja/Ninja-1.11.1-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..66ca5673279 --- /dev/null +++ b/easybuild/easyconfigs/n/Ninja/Ninja-1.11.1-GCCcore-12.3.0.eb @@ -0,0 +1,31 @@ +easyblock = 'CmdCp' + +name = 'Ninja' +version = '1.11.1' + +homepage = 'https://ninja-build.org/' +description = "Ninja is a small build system with a focus on speed." + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} + +source_urls = ['https://github.com/ninja-build/ninja/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['31747ae633213f1eda3842686f83c2aa1412e0f5691d1c14dbbcc67fe7400cea'] + +builddependencies = [ + ('binutils', '2.40'), + ('Python', '3.11.3'), +] + +cmds_map = [('.*', "./configure.py --bootstrap")] + +files_to_copy = [(['ninja'], 'bin')] + +sanity_check_paths = { + 'files': ['bin/ninja'], + 'dirs': [], +} + +sanity_check_commands = ["ninja --version"] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/n/nanoget/nanoget-1.18.1-foss-2022a.eb b/easybuild/easyconfigs/n/nanoget/nanoget-1.18.1-foss-2022a.eb new file mode 100644 index 00000000000..7c915c25e40 --- /dev/null +++ b/easybuild/easyconfigs/n/nanoget/nanoget-1.18.1-foss-2022a.eb @@ -0,0 +1,30 @@ +# Author: Pavel Grochal (INUITS) +# License: GPLv2 +# Update: Petr Král (INUITS) + +easyblock = 'PythonPackage' + +name = 'nanoget' +version = '1.18.1' + +homepage = 'https://github.com/wdecoster/nanoget' +description = "Functions to extract information from Oxford Nanopore sequencing data and alignments" + +toolchain = {'name': 'foss', 'version': '2022a'} + +sources = [SOURCE_TAR_GZ] +checksums = ['e4fa37ab1bccc3287947f5792acad3c96fd1c02cb9c0a1f5d218d26bcdbe1632'] + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), + ('Biopython', '1.79'), + ('Pysam', '0.19.1'), + ('nanomath', '1.3.0'), +] + +download_dep_fail = True +use_pip = True +sanity_pip_check = True + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/n/nanomath/nanomath-1.3.0-foss-2022a.eb b/easybuild/easyconfigs/n/nanomath/nanomath-1.3.0-foss-2022a.eb new file mode 100644 index 00000000000..769d14a481e --- /dev/null +++ b/easybuild/easyconfigs/n/nanomath/nanomath-1.3.0-foss-2022a.eb @@ -0,0 +1,33 @@ +# Author: Pavel Grochal (INUITS) +# License: GPLv2 +# Update: Petr Král (INUITS) + +easyblock = 'PythonBundle' + +name = 'nanomath' +version = '1.3.0' + +homepage = 'https://github.com/wdecoster/nanomath' +description = "A few simple math function for other Oxford Nanopore processing scripts" + +toolchain = {'name': 'foss', 'version': '2022a'} + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('Python-Deprecated', '1.1.0', { + 'modulename': 'deprecated', + 'checksums': ['a242b3c1721f97912330b12cd5529abfa5b3876084a6c60a2c683a87d4b0dd6f'], + }), + (name, version, { + 'checksums': ['c35a024b10b34dd8f539cefed1fd69e0a46d18037ca48bed63c7941c67ae028e'], + }), +] + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/n/ncbi-vdb/ncbi-vdb-2.11.2-gompi-2021b.eb b/easybuild/easyconfigs/n/ncbi-vdb/ncbi-vdb-2.11.2-gompi-2021b.eb index 8b443db27f1..e35c9eed526 100644 --- a/easybuild/easyconfigs/n/ncbi-vdb/ncbi-vdb-2.11.2-gompi-2021b.eb +++ b/easybuild/easyconfigs/n/ncbi-vdb/ncbi-vdb-2.11.2-gompi-2021b.eb @@ -15,11 +15,13 @@ sources = [{'download_filename': '%(version)s.tar.gz', 'filename': SOURCE_TAR_GZ patches = [ 'ncbi-vdb-2.10.7_fix-LD_LIBRARY_PATH.patch', 'ncbi-vdb-cstdlib.patch', + 'ncbi-vdb-3.0.0_hdf5_api.patch', ] checksums = [ - '647efea2762d63dee6d3e462b1fed2ae6d0f2cf1adb0da583ac95f3ee073abdf', # ncbi-vdb-2.11.2.tar.gz - 'e8f22dbd0c2e564e296bafdf76ba0e0e2da0d13e22be5aaf322135e5f26eb133', # ncbi-vdb-2.10.7_fix-LD_LIBRARY_PATH.patch - 'db3d563262ca9b14e7b9a94a0be6683a9eef41a498c9c064aa05c2a6785f1655', # ncbi-vdb-cstdlib.patch + {'ncbi-vdb-2.11.2.tar.gz': '647efea2762d63dee6d3e462b1fed2ae6d0f2cf1adb0da583ac95f3ee073abdf'}, + {'ncbi-vdb-2.10.7_fix-LD_LIBRARY_PATH.patch': 'e8f22dbd0c2e564e296bafdf76ba0e0e2da0d13e22be5aaf322135e5f26eb133'}, + {'ncbi-vdb-cstdlib.patch': 'db3d563262ca9b14e7b9a94a0be6683a9eef41a498c9c064aa05c2a6785f1655'}, + {'ncbi-vdb-3.0.0_hdf5_api.patch': '34bdad822248118a011b5106fe5b5efaa068c19b66ed10f949a9c0b07a79de8b'}, ] builddependencies = [ @@ -31,7 +33,7 @@ builddependencies = [ dependencies = [ ('NGS', '2.11.2'), ('file', '5.41'), # provides libmagic - ('HDF5', '1.10.8'), # version 1.12.x has changes to API and is not compatible + ('HDF5', '1.12.1'), ('libxml2', '2.9.10'), ('bzip2', '1.0.8'), ] diff --git a/easybuild/easyconfigs/n/ncbi-vdb/ncbi-vdb-3.0.5-gompi-2021a.eb b/easybuild/easyconfigs/n/ncbi-vdb/ncbi-vdb-3.0.5-gompi-2021a.eb new file mode 100644 index 00000000000..e1590e7094e --- /dev/null +++ b/easybuild/easyconfigs/n/ncbi-vdb/ncbi-vdb-3.0.5-gompi-2021a.eb @@ -0,0 +1,38 @@ +easyblock = 'CMakeMake' + +name = 'ncbi-vdb' +version = '3.0.5' + +homepage = 'https://github.com/ncbi/ncbi-vdb' +description = """The SRA Toolkit and SDK from NCBI is a collection of tools and libraries for + using data in the INSDC Sequence Read Archives.""" + +toolchain = {'name': 'gompi', 'version': '2021a'} + +github_account = 'ncbi' +source_urls = [GITHUB_SOURCE] +sources = [{'download_filename': '%(version)s.tar.gz', 'filename': SOURCE_TAR_GZ}] +checksums = ['a32672d7f76507a77ceb29f023855eaf5bf4d150ddd21b55c013b499f3b83735'] + +builddependencies = [ + ('Perl', '5.32.1', '-minimal'), + ('Python', '3.9.5', '-bare'), + ('CMake', '3.20.1'), +] + +dependencies = [ + ('HDF5', '1.10.7'), + ('libxml2', '2.9.10'), + ('bzip2', '1.0.8'), +] + +configopts = "-DHDF5_INCDIR=$EBROOTHDF5/include -DHDF5_LIBDIR=$EBROOTHDF5/lib " +configopts += "-DXML2_INCDIR=$EBROOTLIBXML2/include -DXML2_LIBDIR=$EBROOTLIBXML2/lib " + +sanity_check_paths = { + 'files': ['include/ncbi/ncbi.h', 'include/ncbi/vdb-blast.h'] + + [('lib/libncbi-%s.%s' % (k, e)) for k in ['vdb', 'wvdb'] for e in ['a', SHLIB_EXT]], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/n/ncbi-vdb/ncbi-vdb-3.0.5-gompi-2022b.eb b/easybuild/easyconfigs/n/ncbi-vdb/ncbi-vdb-3.0.5-gompi-2022b.eb new file mode 100644 index 00000000000..05f1f30ef7d --- /dev/null +++ b/easybuild/easyconfigs/n/ncbi-vdb/ncbi-vdb-3.0.5-gompi-2022b.eb @@ -0,0 +1,38 @@ +easyblock = 'CMakeMake' + +name = 'ncbi-vdb' +version = '3.0.5' + +homepage = 'https://github.com/ncbi/ncbi-vdb' +description = """The SRA Toolkit and SDK from NCBI is a collection of tools and libraries for + using data in the INSDC Sequence Read Archives.""" + +toolchain = {'name': 'gompi', 'version': '2022b'} + +github_account = 'ncbi' +source_urls = [GITHUB_SOURCE] +sources = [{'download_filename': '%(version)s.tar.gz', 'filename': SOURCE_TAR_GZ}] +checksums = ['a32672d7f76507a77ceb29f023855eaf5bf4d150ddd21b55c013b499f3b83735'] + +builddependencies = [ + ('Perl', '5.36.0', '-minimal'), + ('Python', '3.10.8', '-bare'), + ('CMake', '3.24.3'), +] + +dependencies = [ + ('HDF5', '1.14.0'), + ('libxml2', '2.10.3'), + ('bzip2', '1.0.8'), +] + +configopts = "-DHDF5_INCDIR=$EBROOTHDF5/include -DHDF5_LIBDIR=$EBROOTHDF5/lib " +configopts += "-DXML2_INCDIR=$EBROOTLIBXML2/include -DXML2_LIBDIR=$EBROOTLIBXML2/lib " + +sanity_check_paths = { + 'files': ['include/ncbi/ncbi.h', 'include/ncbi/vdb-blast.h'] + + [('lib/libncbi-%s.%s' % (k, e)) for k in ['vdb', 'wvdb'] for e in ['a', SHLIB_EXT]], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/n/ncurses/ncurses-6.4.eb b/easybuild/easyconfigs/n/ncurses/ncurses-6.4.eb new file mode 100644 index 00000000000..7edecb90d1b --- /dev/null +++ b/easybuild/easyconfigs/n/ncurses/ncurses-6.4.eb @@ -0,0 +1,48 @@ +easyblock = 'ConfigureMake' + +name = 'ncurses' +version = '6.4' + +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 = SYSTEM + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] +checksums = ['6931283d9ac87c5073f30b6290c4c75f21632bb4fc3603ac8100812bed248159'] + +local_common_configopts = "--with-shared --enable-overwrite --without-ada --enable-symlinks --with-versioned-syms " +configopts = [ + # build ncurses: serial build in default paths with shared libraries + local_common_configopts, + # build ncursesw: serial with UTF-8 + local_common_configopts + "--enable-ext-colors --enable-widec --includedir=%(installdir)s/include/ncursesw/", +] + +# need to take care of $CFLAGS ourselves with dummy toolchain +# we need to add -fPIC, but should also include -O* option to avoid compiling with -O0 (default for GCC) +buildopts = 'CFLAGS="-O2 -fPIC"' + +# Symlink libtinfo to libncurses +# libncurses with this configopts has all the symbols from libtinfo, but some packages look for libtinfo specifically +postinstallcmds = ['cd %(installdir)s/lib && for l in libncurses{.,_,w}*; do ln -s "${l}" "${l/ncurses/tinfo}"; done'] + +_target_suffix = ['', 'w'] # '': ncurses, 'w': ncursesw +_lib_suffix = ['%s%s' % (x, y) for x in _target_suffix for y in ['.a', '_g.a', '.' + SHLIB_EXT]] +_lib_names = ['form', 'menu', 'ncurses', 'panel', 'tinfo'] + +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' % (x, y) for x in _lib_names for y in _lib_suffix] + + ['lib/libncurses++%s.a' % x for x in _target_suffix], + 'dirs': ['include', 'include/ncursesw'], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/n/netCDF/netCDF-4.7.4-iompi-2020a.eb b/easybuild/easyconfigs/n/netCDF/netCDF-4.7.4-iompi-2020a.eb new file mode 100644 index 00000000000..6ac63c3f2f3 --- /dev/null +++ b/easybuild/easyconfigs/n/netCDF/netCDF-4.7.4-iompi-2020a.eb @@ -0,0 +1,34 @@ +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': 'iompi', 'version': '2020a'} +toolchainopts = {'pic': True, 'usempi': True} + +source_urls = ['https://github.com/Unidata/netcdf-c/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['99930ad7b3c4c1a8e8831fb061cb02b2170fc8e5ccaeda733bd99c3b9d31666b'] + +builddependencies = [ + ('Autotools', '20180311'), + ('CMake', '3.16.4'), + ('Doxygen', '1.8.17'), +] + +dependencies = [ + ('HDF5', '1.10.6'), + ('cURL', '7.69.1'), + ('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/networkx/networkx-3.0-foss-2022b.eb b/easybuild/easyconfigs/n/networkx/networkx-3.0-gfbf-2022b.eb similarity index 92% rename from easybuild/easyconfigs/n/networkx/networkx-3.0-foss-2022b.eb rename to easybuild/easyconfigs/n/networkx/networkx-3.0-gfbf-2022b.eb index 5825b79f6d4..72e1e9f112e 100644 --- a/easybuild/easyconfigs/n/networkx/networkx-3.0-foss-2022b.eb +++ b/easybuild/easyconfigs/n/networkx/networkx-3.0-gfbf-2022b.eb @@ -7,7 +7,7 @@ homepage = 'https://pypi.python.org/pypi/networkx' description = """NetworkX is a Python package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks.""" -toolchain = {'name': 'foss', 'version': '2022b'} +toolchain = {'name': 'gfbf', 'version': '2022b'} sources = [SOURCE_TAR_GZ] checksums = ['9a9992345353618ae98339c2b63d8201c381c2944f38a2ab49cb45a4c667e412'] diff --git a/easybuild/easyconfigs/n/ngspice/ngspice-39-foss-2022a.eb b/easybuild/easyconfigs/n/ngspice/ngspice-39-foss-2022a.eb new file mode 100644 index 00000000000..d5eced4955f --- /dev/null +++ b/easybuild/easyconfigs/n/ngspice/ngspice-39-foss-2022a.eb @@ -0,0 +1,40 @@ +# This easyconfig was created by James Carpenter in the BEAR Software team at the University of Birmingham. +easyblock = 'ConfigureMake' + +name = 'ngspice' +version = '39' + +homepage = 'https://ngspice.sourceforge.net' +description = """Ngspice is a mixed-level/mixed-signal circuit simulator. Its code +is based on three open source software packages: Spice3f5, Cider1b1 and Xspice. +""" + +toolchain = {'name': 'foss', 'version': '2022a'} +toolchainopts = {'pic': True} + +source_urls = [SOURCEFORGE_SOURCE] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['bf94e811eaad8aaf05821d036a9eb5f8a65d21d30e1cab12701885e09618d771'] + +builddependencies = [ + ('Bison', '3.8.2'), + ('flex', '2.6.4'), +] + +dependencies = [ + ('libreadline', '8.1.2'), + ('ncurses', '6.3'), + ('X11', '20220504'), +] + +configure_cmd = "./configure --with-x --enable-xspice " +configure_cmd += "--enable-cider --enable-openmp --with-readline=yes --disable-debug" + +sanity_check_paths = { + 'files': ['bin/ngspice'], + 'dirs': [], +} + +sanity_check_commands = ['%(namelower)s --help'] + +moduleclass = 'cae' diff --git a/easybuild/easyconfigs/n/nnU-Net/nnU-Net-1.7.0-fosscuda-2020b.eb b/easybuild/easyconfigs/n/nnU-Net/nnU-Net-1.7.0-fosscuda-2020b.eb new file mode 100644 index 00000000000..e00878d774d --- /dev/null +++ b/easybuild/easyconfigs/n/nnU-Net/nnU-Net-1.7.0-fosscuda-2020b.eb @@ -0,0 +1,82 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# Author: Denis Kristak +easyblock = 'PythonBundle' + +name = 'nnU-Net' +version = '1.7.0' + +homepage = 'https://github.com/MIC-DKFZ/nnUNet' +description = """nnU-Net is the first segmentation method that is designed to deal with the dataset diversity found + in the domain It condenses and automates the keys decisions for designing a successful segmentation pipeline for + any given dataset.""" + +toolchain = {'name': 'fosscuda', 'version': '2020b'} + +builddependencies = [ + ('Bazel', '3.7.2') +] + +dependencies = [ + ('Python', '3.8.6'), + ('SciPy-bundle', '2020.11'), + ('PyTorch', '1.7.1'), + ('tqdm', '4.56.2'), + ('dicom2nifti', '2.3.0'), + ('scikit-image', '0.18.1'), + ('TensorFlow', '2.4.1'), + ('scikit-learn', '0.23.2'), + ('NiBabel', '3.2.1'), + ('SimpleITK', '2.1.0'), + ('MedPy', '0.4.0'), + ('jax', '0.2.19'), + ('lxml', '4.6.2'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('linecache2', '1.0.0', { + 'checksums': ['4b26ff4e7110db76eeb6f5a7b64a82623839d595c2038eeda662f2a2db78e97c'], + }), + ('traceback2', '1.4.0', { + 'checksums': ['05acc67a09980c2ecfedd3423f7ae0104839eccb55fc645773e1caa0951c3030'], + }), + ('unittest2', '1.1.0', { + 'checksums': ['22882a0e418c284e1f718a822b3b022944d53d2d908e1690b319a9d3eb2c0579'], + 'preinstallopts': "sed -i 's/.argparse.,//' setup.py && ", + }), + ('batchgenerators', '0.23', { + 'checksums': ['4bc5711ee75678ae97df7b54c50c1cde46f14c94f44d948f6edf4e8c48b2a9e0'], + }), + ('tifffile', '2021.8.30', { + 'checksums': ['8760e61e30106ea0dab9ec42a238d70a3ff55dde9c54456e7b748fe717cb782d'], + }), + ('contextlib2', '21.6.0', { + 'checksums': ['ab1e2bfe1d01d968e1b7e8d9023bc51ef3509bba217bb730cee3827e1ee82869'], + }), + ('dm-haiku', '0.0.4', { + 'modulename': 'haiku', + 'preinstallopts': "touch requirements.txt && touch requirements-test.txt && ", + 'checksums': ['5faa387ad6b522516283cbe45adbc4c46bedcf501c82db2f9174945f3ec2ea7d'], + }), + ('dm-tree', '0.1.6', { + 'modulename': 'tree', + 'checksums': ['6776404b23b4522c01012ffb314632aba092c9541577004ab153321e87da439a'], + }), + ('immutabledict', '2.1.0', { + 'checksums': ['673fb8f30f46d23dd394050b979f5b7f4c5398982b99ebc854fb873e646b967a'], + }), + ('ml_collections', '0.1.0', { + 'preinstallopts': "touch requirements.txt && touch requirements-test.txt && ", + 'checksums': ['59a17fcd1c140153009788517f304caaddd7a94f06690f9f0ed09987beebcf3c'], + }), + ('nnunet', version, { + 'preinstallopts': "sed -i 's/sklearn/scikit-learn/g' setup.py && ", + 'checksums': ['7ad3d5b89af389fa86cea58f409bd2353b511a746587f37d26c00a756849f356'], + }), +] + +sanity_check_commands = ['nnUNet_train --help'] + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/n/nodejs/nodejs-18.12.1-GCCcore-12.2.0.eb b/easybuild/easyconfigs/n/nodejs/nodejs-18.12.1-GCCcore-12.2.0.eb index 2ea5d3c974f..c2a1a50d330 100644 --- a/easybuild/easyconfigs/n/nodejs/nodejs-18.12.1-GCCcore-12.2.0.eb +++ b/easybuild/easyconfigs/n/nodejs/nodejs-18.12.1-GCCcore-12.2.0.eb @@ -19,6 +19,7 @@ checksums = ['ba8174dda00d5b90943f37c6a180a1d37c861d91e04a4cb38dc1c0c74981c186'] builddependencies = [ ('binutils', '2.39'), ('Python', '3.10.8', '-bare'), + ('pkgconf', '1.9.3'), ] dependencies = [ diff --git a/easybuild/easyconfigs/o/OSU-Micro-Benchmarks/OSU-Micro-Benchmarks-7.1-1-gompi-2023a.eb b/easybuild/easyconfigs/o/OSU-Micro-Benchmarks/OSU-Micro-Benchmarks-7.1-1-gompi-2023a.eb new file mode 100644 index 00000000000..97bc224f423 --- /dev/null +++ b/easybuild/easyconfigs/o/OSU-Micro-Benchmarks/OSU-Micro-Benchmarks-7.1-1-gompi-2023a.eb @@ -0,0 +1,26 @@ +easyblock = 'ConfigureMake' + +name = 'OSU-Micro-Benchmarks' +version = '7.1-1' + +homepage = 'https://mvapich.cse.ohio-state.edu/benchmarks/' +description = """OSU Micro-Benchmarks""" + +toolchain = {'name': 'gompi', 'version': '2023a'} +toolchainopts = {'usempi': True} + +source_urls = ['https://mvapich.cse.ohio-state.edu/download/mvapich/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['85f4dd8be1df31255e232852769ae5b82e87a5fb14be2f8eba1ae9de8ffe391a'] + +local_benchmark_dirs = [ + 'libexec/osu-micro-benchmarks/mpi/%s' % x for x in ['collective', 'one-sided', 'pt2pt', 'startup'] +] +modextrapaths = {'PATH': local_benchmark_dirs} + +sanity_check_paths = { + 'files': [], + 'dirs': local_benchmark_dirs, +} + +moduleclass = 'perf' diff --git a/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.23-GCC-12.3.0.eb b/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.23-GCC-12.3.0.eb new file mode 100644 index 00000000000..2368237262b --- /dev/null +++ b/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.23-GCC-12.3.0.eb @@ -0,0 +1,47 @@ +name = 'OpenBLAS' +version = '0.3.23' + +homepage = 'http://www.openblas.net/' +description = "OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version." + +toolchain = {'name': 'GCC', 'version': '12.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', '.'), + 'OpenBLAS-0.3.15_workaround-gcc-miscompilation.patch', + 'OpenBLAS-0.3.21_fix-order-vectorization.patch', + 'OpenBLAS-0.3.23_fix-parallel-build.patch', + 'OpenBLAS-0.3.23_fix-lapack-test.patch', +] +checksums = [ + {'v0.3.23.tar.gz': '5d9491d07168a5d00116cdc068a40022c3455bf9293c7cb86a65b1054d7e5114'}, + {'large.tgz': 'f328d88b7fa97722f271d7d0cfea1c220e0f8e5ed5ff01d8ef1eb51d6f4243a1'}, + {'timing.tgz': '999c65f8ea8bd4eac7f1c7f3463d4946917afd20a997807300fe35d70122f3af'}, + {'OpenBLAS-0.3.15_workaround-gcc-miscompilation.patch': + 'e6b326fb8c4a8a6fd07741d9983c37a72c55c9ff9a4f74a80e1352ce5f975971'}, + {'OpenBLAS-0.3.21_fix-order-vectorization.patch': + '08af834e5d60441fd35c128758ed9c092ba6887c829e0471ecd489079539047d'}, + {'OpenBLAS-0.3.23_fix-parallel-build.patch': 'abe10ba3b0ca54772dbf235596e35325a5159018f6a60cfc88824c2c220d99d9'}, + {'OpenBLAS-0.3.23_fix-lapack-test.patch': 'f6b3d81061f136e34aaf5359bb80fb9d2bba28825cc1dd26179b8dd01a9a0054'}, +] + +builddependencies = [ + ('make', '4.4.1'), + # required by LAPACK test suite + ('Python', '3.11.3'), +] + +run_lapack_tests = True +max_failing_lapack_tests_num_errors = 150 + +# extensive testing can be enabled by uncommenting the line below +# runtest = 'PATH=.:$PATH lapack-timing' + +moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.23_fix-lapack-test.patch b/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.23_fix-lapack-test.patch new file mode 100644 index 00000000000..dfb16cced30 --- /dev/null +++ b/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.23_fix-lapack-test.patch @@ -0,0 +1,25 @@ +Avoid a nearly singular matrix in lapack testing, which can trigger an error depending +on FMA. Swapping matrix dimensions is sufficient here since the matrices are generated +using a random number generator, and we were just unlucky here. + +Author: Bart Oldeman +--- OpenBLAS-0.3.23/lapack-netlib/TESTING/dgd.in.orig 2023-06-05 12:12:08.222632285 +0000 ++++ OpenBLAS-0.3.23/lapack-netlib/TESTING/dgd.in 2023-06-05 12:12:19.323715597 +0000 +@@ -1,6 +1,6 @@ + DGS Data for the Real Nonsymmetric Schur Form Driver + 5 Number of matrix dimensions +-2 6 10 12 20 30 Matrix dimensions ++6 2 10 12 20 30 Matrix dimensions + 1 1 1 2 1 Parameters NB, NBMIN, NXOVER, NS, NBCOL + 10 Threshold for test ratios + .TRUE. Put T to test the error exits +--- OpenBLAS-0.3.23/lapack-netlib/TESTING/sgd.in.orig 2023-06-06 11:01:50.512947527 +0000 ++++ OpenBLAS-0.3.23/lapack-netlib/TESTING/sgd.in 2023-06-06 11:02:05.318078733 +0000 +@@ -1,6 +1,6 @@ + SGS Data for the Real Nonsymmetric Schur Form Driver + 5 Number of matrix dimensions +-2 6 10 12 20 30 Matrix dimensions ++6 2 10 12 20 30 Matrix dimensions + 1 1 1 2 1 Parameters NB, NBMIN, NXOVER, NS, NBCOL + 10 Threshold for test ratios + .TRUE. Put T to test the error exits diff --git a/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.23_fix-parallel-build.patch b/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.23_fix-parallel-build.patch new file mode 100644 index 00000000000..97e9344271f --- /dev/null +++ b/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.23_fix-parallel-build.patch @@ -0,0 +1,69 @@ +From https://github.com/xianyi/OpenBLAS/pull/3983 + +From 281e834566a06f1c756d262dc31e809faaf8933f Mon Sep 17 00:00:00 2001 +From: Guillaume Horel +Date: Thu, 30 Mar 2023 15:15:25 -0400 +Subject: [PATCH 1/2] do not pass -j flag to the MAKE variable + +--- + getarch.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/getarch.c b/getarch.c +index 937a8db68c..87384c0840 100644 +--- a/getarch.c ++++ b/getarch.c +@@ -1930,15 +1930,15 @@ printf("ELF_VERSION=2\n"); + + #ifdef MAKE_NB_JOBS + #if MAKE_NB_JOBS > 0 +- printf("MAKE += -j %d\n", MAKE_NB_JOBS); ++ printf("MAKEFLAGS += -j %d\n", MAKE_NB_JOBS); + #else + // Let make use parent -j argument or -j1 if there + // is no make parent + #endif + #elif NO_PARALLEL_MAKE==1 +- printf("MAKE += -j 1\n"); ++ printf("MAKEFLAGS += -j 1\n"); + #else +- printf("MAKE += -j %d\n", get_num_cores()); ++ printf("MAKEFLAGS += -j %d\n", get_num_cores()); + #endif + + break; + +From 397108fba299c87ce17957452d57469af914f516 Mon Sep 17 00:00:00 2001 +From: Guillaume Horel +Date: Fri, 31 Mar 2023 09:22:40 -0400 +Subject: [PATCH 2/2] serialize shared prerequisites + +--- + Makefile | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/Makefile b/Makefile +index 144b3400db..3c4b8948af 100644 +--- a/Makefile ++++ b/Makefile +@@ -40,9 +40,9 @@ LAPACK_NOOPT := $(filter-out -O0 -O1 -O2 -O3 -Ofast -O -Og -Os,$(LAPACK_FFLAGS)) + SUBDIRS_ALL = $(SUBDIRS) test ctest utest exports benchmark ../laswp ../bench cpp_thread_test + + .PHONY : all libs netlib $(RELA) test ctest shared install +-.NOTPARALLEL : all libs $(RELA) prof lapack-test install blas-test ++.NOTPARALLEL : shared + +-all :: libs netlib $(RELA) tests shared ++all :: tests + @echo + @echo " OpenBLAS build complete. ($(LIB_COMPONENTS))" + @echo +@@ -150,7 +150,7 @@ ifeq ($(OSNAME), CYGWIN_NT) + endif + endif + +-tests : libs netlib $(RELA) shared ++tests : shared + ifeq ($(NOFORTRAN), $(filter 0,$(NOFORTRAN))) + touch $(LIBNAME) + ifndef NO_FBLAS diff --git a/easybuild/easyconfigs/o/OpenFOAM/OpenFOAM-v2112-cleanup.patch b/easybuild/easyconfigs/o/OpenFOAM/OpenFOAM-v2112-cleanup.patch new file mode 100644 index 00000000000..df57e301a60 --- /dev/null +++ b/easybuild/easyconfigs/o/OpenFOAM/OpenFOAM-v2112-cleanup.patch @@ -0,0 +1,150 @@ +# Replaces OpenFOAM third-party libraries with EASYBUILD variants. +# Uses the OpenFOAM prefs mechanism and the FOAM_CONFIG_ETC variable +# to define the preferred settings without patching the original files +# +# Authors: Mark Olesen +# ------------------------------------------------------------------------- +--- /dev/null 2020-12-14 09:05:45.272769166 +0100 ++++ OpenFOAM-v2112/etc/prefs.sh 2020-12-14 10:02:26.488430802 +0100 +@@ -0,0 +1,7 @@ ++##Easybuild## settings -*- sh -*- ++ ++export FOAM_CONFIG_ETC="etc/easybuild" ++ ++export WM_MPLIB=EASYBUILDMPI ++ ++##Easybuild## +--- /dev/null 2020-12-14 09:05:45.272769166 +0100 ++++ OpenFOAM-v2112/etc/easybuild/config.sh/CGAL 2020-12-14 10:10:55.991841204 +0100 +@@ -0,0 +1,6 @@ ++##Easybuild## settings -*- sh -*- ++ ++export BOOST_ARCH_PATH="$EBROOTBOOST" ++export CGAL_ARCH_PATH="$EBROOTCGAL" ++ ++##Easybuild## +--- /dev/null 2020-12-14 09:05:45.272769166 +0100 ++++ OpenFOAM-v2112/etc/easybuild/config.sh/FFTW 2020-12-14 10:10:53.735843322 +0100 +@@ -0,0 +1,5 @@ ++##Easybuild## settings -*- sh -*- ++ ++export FFTW_ARCH_PATH="$EBROOTFFTW" ++ ++##EasyBuild## +--- /dev/null 2020-12-14 09:05:45.272769166 +0100 ++++ OpenFOAM-v2112/etc/easybuild/config.sh/metis 2020-12-11 21:23:28.774934024 +0100 +@@ -0,0 +1,6 @@ ++##Easybuild## settings -*- sh -*- ++ ++METIS_VERSION="metis-$EBVERSIONMETIS" ++[ -d "$METIS_ARCH_PATH" ] || METIS_ARCH_PATH="$METIS_ROOT" ++ ++##Easybuild## +--- /dev/null 2020-12-14 09:05:45.272769166 +0100 ++++ OpenFOAM-v2112/etc/easybuild/config.sh/readline 2020-12-11 21:23:22.534951043 +0100 +@@ -0,0 +1,5 @@ ++##Easybuild## settings -*- sh -*- ++ ++export READLINE_ARCH_PATH="$EBROOTLIBREADLINE" ++ ++##Easybuild## +--- /dev/null 2020-12-14 09:05:45.272769166 +0100 ++++ OpenFOAM-v2112/etc/easybuild/config.sh/scotch 2020-12-11 21:23:17.586964539 +0100 +@@ -0,0 +1,7 @@ ++##Easybuild## settings -*- sh -*- ++ ++export SCOTCH_VERSION="scotch_$EBVERSIONSCOTCH" ++export SCOTCH_ARCH_PATH="$EBROOTSCOTCH" ++[ -d "$SCOTCH_ARCH_PATH" ] || SCOTCH_ARCH_PATH="$SCOTCH_ROOT" ++ ++##Easybuild## +--- /dev/null 2020-12-14 09:05:45.272769166 +0100 ++++ OpenFOAM-v2112/etc/easybuild/config.sh/vtk 2020-12-11 21:22:55.463024882 +0100 +@@ -0,0 +1,9 @@ ++##Easybuild## settings -*- sh -*- ++ ++export VTK_DIR="$EBROOTVTK" ++export MESA_ARCH_PATH="$EBROOTMESA" ++ ++# Define paraview-mesa directory as required ++unset ParaView_MESA_DIR ++ ++##Easybuild## +--- /dev/null 2020-12-14 09:05:45.272769166 +0100 ++++ OpenFOAM-v2112/etc/easybuild/config.sh/paraview 2020-12-14 10:13:53.583674383 +0100 +@@ -0,0 +1,75 @@ ++##Easybuild## settings -*- sh -*- ++# ++# Largely a knockoff of the OpenFOAM etc/config.sh/paraview-system ++# readjusted for easybuild ++# ++# Copyright (C) 2020 OpenCFD Ltd. ++# ++#------------------------------------------------------------------------------ ++# Compiler-specific location for ThirdParty installations ++archDir="$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER" ++ ++# Clean path and library path of previous settings ++eval \ ++ "$($WM_PROJECT_DIR/bin/foamCleanPath -sh-env=PATH \ ++ $ParaView_DIR $archDir/ParaView- $archDir/qt-)" ++ ++eval \ ++ "$($WM_PROJECT_DIR/bin/foamCleanPath -sh-env=LD_LIBRARY_PATH \ ++ $ParaView_DIR $archDir/ParaView- $archDir/qt-)" ++ ++ ++#------------------------------------------------------------------------------ ++ ++##Easybuild## settings ++ ++ParaView_VERSION="$EBVERSIONPARAVIEW" ++export ParaView_DIR="$EBROOTPARAVIEW" ++ ++#------------------------------------------------------------------------------ ++ ++unset PV_PLUGIN_PATH ++ ++# Set API to correspond to VERSION ++# pv_api is . from ParaView_VERSION ++#- ++# Extract API from VERSION ++pv_api=$(echo "$ParaView_VERSION" | \ ++ sed -ne 's/^[^0-9]*\([0-9][0-9]*\.[0-9][0-9]*\).*$/\1/p') ++ ++pv_plugin_dir="$FOAM_LIBBIN/paraview-$pv_api" ++ ++# Set paths if binaries are present ++if [ -r "$ParaView_DIR" ] ++then ++ export PATH="$ParaView_DIR/bin:$PATH" ++ ++ # ParaView libraries ++ # - 5.5 and later: lib/, but could also be lib64/ ++ for libDir in lib64 lib ++ do ++ pvLibDir="$libDir/paraview-$pv_api" ++ if [ -d "$ParaView_DIR/$pvLibDir" ] ++ then ++ export LD_LIBRARY_PATH="$ParaView_DIR/$libDir:$LD_LIBRARY_PATH" ++ break ++ fi ++ done ++ ++ # OpenFOAM plugin directory must be the first in PV_PLUGIN_PATH ++ # and have paraview-major.minor encoded in its name ++ if [ -d "$pv_plugin_dir" ] ++ then ++ export PV_PLUGIN_PATH="$pv_plugin_dir" ++ fi ++fi ++ ++ ++#------------------------------------------------------------------------------ ++ ++unset ParaView_VERSION ++ ++unset archDir libDir ++unset pv_api pv_plugin_dir pvLibDir ++ ++#------------------------------------------------------------------------------ diff --git a/easybuild/easyconfigs/o/OpenFOAM/OpenFOAM-v2112-foss-2020b.eb b/easybuild/easyconfigs/o/OpenFOAM/OpenFOAM-v2112-foss-2020b.eb new file mode 100644 index 00000000000..c39a721d0c6 --- /dev/null +++ b/easybuild/easyconfigs/o/OpenFOAM/OpenFOAM-v2112-foss-2020b.eb @@ -0,0 +1,50 @@ +## +# Author: Robert Mijakovic +## +# Modified by: Ben Langenberg +## +name = 'OpenFOAM' +version = 'v2112' + +homepage = 'https://www.openfoam.com/' +description = """OpenFOAM is a free, open source CFD software package. + OpenFOAM has an extensive range of features to solve anything from complex fluid flows + involving chemical reactions, turbulence and heat transfer, + to solid dynamics and electromagnetics.""" + +toolchain = {'name': 'foss', 'version': '2020b'} +# Users have found that vectorizion caused OpenFOAM to produce some very incorrect results. +# Disabling vectorize was confirmed to fix the the known issues. +# With no test suite, sticking to known working toolchain options until proven otherwise. +toolchainopts = {'cstd': 'c++14', 'vectorize': False} + +source_urls = ['https://sourceforge.net/projects/openfoam/files/%(version)s/'] +sources = [SOURCE_TGZ] +patches = [ + ('OpenFOAM-v2112-cleanup.patch', 1), + 'OpenFOAM-v2112-wmake-ompi.patch', +] +checksums = [ + '3e838731e79db1c288acc27aad8cc8a43d9dac1f24e5773e3b9fa91419a8c3f7', # OpenFOAM-v2112.tgz + 'e883f628cb393b3ab60317304d7085d0a6ba7b8992feb12c2fab20389af34f1c', # OpenFOAM-v2112-cleanup.patch + '8cc2d9feac07b564abb4a16614f142a7c1aceedc4ad6ee02836e7d4f654410cd', # OpenFOAM-v2112-wmake-ompi.patch +] + +builddependencies = [ + ('Bison', '3.7.1'), + ('CMake', '3.18.4'), + ('flex', '2.6.4'), +] + +dependencies = [ + ('libreadline', '8.0'), + ('ncurses', '6.2'), + # OpenFOAM requires 64 bit METIS using 32 bit indexes (array indexes) + ('METIS', '5.1.0'), + ('SCOTCH', '6.1.0'), + ('CGAL', '5.2'), + ('ParaView', '5.8.1', '-mpi'), + ('gnuplot', '5.4.1'), +] + +moduleclass = 'cae' diff --git a/easybuild/easyconfigs/o/OpenFOAM/OpenFOAM-v2112-wmake-ompi.patch b/easybuild/easyconfigs/o/OpenFOAM/OpenFOAM-v2112-wmake-ompi.patch new file mode 100644 index 00000000000..c7cc5e4a42f --- /dev/null +++ b/easybuild/easyconfigs/o/OpenFOAM/OpenFOAM-v2112-wmake-ompi.patch @@ -0,0 +1,29 @@ +# - Corrected output of "wmake -show-c" and "wmake -show-c++" with OpenMPI in order to allow compilation of paraFoam +# +# author: Jiri Furst +--- OpenFOAM-v2112/wmake/makefiles/info.orig 2019-11-07 18:12:53.000000000 +0100 ++++ OpenFOAM-v2112/wmake/makefiles/info 2019-11-23 12:52:50.700688579 +0100 +@@ -73,19 +73,19 @@ + + .PHONY: c + c: +- @echo "$(firstword $(cc))" ++ @echo "$(lastword $(cc))" + + .PHONY: cxx + cxx: +- @echo "$(firstword $(CC))" ++ @echo "$(lastword $(CC))" + + .PHONY: cflags + cflags: +- @echo "$(wordlist 2,$(words $(COMPILE_C)), $(COMPILE_C))" ++ @echo "$(wordlist 3,$(words $(COMPILE_C)), $(COMPILE_C))" + + .PHONY: cxxflags + cxxflags: +- @echo "$(wordlist 2,$(words $(COMPILE_CXX)), $(COMPILE_CXX))" ++ @echo "$(wordlist 3,$(words $(COMPILE_CXX)), $(COMPILE_CXX))" + + .PHONY: cflags-arch + cflags-arch: diff --git a/easybuild/easyconfigs/o/OpenMM/OpenMM-7.4.1-fosscuda-2019b-Python-3.7.4.eb b/easybuild/easyconfigs/o/OpenMM/OpenMM-7.4.1-fosscuda-2019b-Python-3.7.4.eb new file mode 100644 index 00000000000..a0837a8fe3a --- /dev/null +++ b/easybuild/easyconfigs/o/OpenMM/OpenMM-7.4.1-fosscuda-2019b-Python-3.7.4.eb @@ -0,0 +1,67 @@ +# 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.4.1' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://openmm.org' +description = "OpenMM is a toolkit for molecular simulation." + +toolchain = {'name': 'fosscuda', 'version': '2019b'} +toolchainopts = {'opt': True} + +source_urls = ['https://github.com/openmm/openmm/archive/'] +sources = ['%(version)s.tar.gz'] +patches = ['OpenMM-%(version)s_fix-Doxygen.patch'] +checksums = [ + 'e8102b68133e6dcf7fcf29bc76a11ea54f30af71d8a7705aec0aee957ebe3a6d', # 7.4.1.tar.gz + '99d59e3106d9c9f9fbce3c3161117a37b2699e1dc09bc2a75619e0d880f29708', # OpenMM-7.4.1_fix-Doxygen.patch +] + +builddependencies = [ + ('CMake', '3.15.3'), + ('Doxygen', '1.8.16'), +] + +separate_build_dir = True + +dependencies = [ + ('Python', '3.7.4'), + ('SciPy-bundle', '2019.10', versionsuffix), + ('SWIG', '4.0.1'), + ('libglvnd', '1.2.0'), +] + +configopts = "-DOPENMM_BUILD_CUDA_LIB=ON" + +pretestopts = "export OPENMM_CUDA_COMPILER=nvcc && CTEST_OUTPUT_ON_FAILURE=1" +runtest = """test -e ARGS="-E \'(Integrator)|(Thermostat)|(Barostat)|(Rpmd)|(Amoeba)\'" """ + +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', +} +modextravars = { + 'OPENMM_CUDA_COMPILER': 'nvcc', +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/o/OpenMPI/OpenMPI-4.1.5-GCC-12.3.0.eb b/easybuild/easyconfigs/o/OpenMPI/OpenMPI-4.1.5-GCC-12.3.0.eb new file mode 100644 index 00000000000..f54e9e48c72 --- /dev/null +++ b/easybuild/easyconfigs/o/OpenMPI/OpenMPI-4.1.5-GCC-12.3.0.eb @@ -0,0 +1,62 @@ +name = 'OpenMPI' +version = '4.1.5' + +homepage = 'https://www.open-mpi.org/' +description = """The Open MPI Project is an open source MPI-3 implementation.""" + +toolchain = {'name': 'GCC', 'version': '12.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_build-with-internal-cuda-header.patch', + 'OpenMPI-4.1.1_opal-datatype-cuda-performance.patch', +] +checksums = [ + {'openmpi-4.1.5.tar.bz2': 'a640986bc257389dd379886fdae6264c8cfa56bc98b71ce3ae3dfbd8ce61dbe3'}, + {'OpenMPI-4.1.1_build-with-internal-cuda-header.patch': + '63eac52736bdf7644c480362440a7f1f0ae7c7cae47b7565f5635c41793f8c83'}, + {'OpenMPI-4.1.1_opal-datatype-cuda-performance.patch': + 'b767c7166cf0b32906132d58de5439c735193c9fd09ec3c5c11db8d5fa68750e'}, +] + +builddependencies = [ + ('pkgconf', '1.9.5'), + ('Perl', '5.36.1'), + ('Autotools', '20220317'), +] + +dependencies = [ + ('zlib', '1.2.13'), + ('hwloc', '2.9.1'), + ('libevent', '2.1.12'), + ('UCX', '1.14.1'), + ('libfabric', '1.18.0'), + ('PMIx', '4.2.4'), + ('UCC', '1.2.0'), +] + +# Update configure to include changes from the "internal-cuda" patch +# by running a subset of autogen.pl sufficient to achieve this +# without doing the full, long-running regeneration. +preconfigopts = ' && '.join([ + 'cd config', + 'autom4te --language=m4sh opal_get_version.m4sh -o opal_get_version.sh', + 'cd ..', + 'autoconf', + 'autoheader', + 'aclocal', + 'automake', + '' +]) + +# CUDA related patches and custom configure option can be removed if CUDA support isn't wanted. +configopts = '--with-cuda=internal ' + +# disable MPI1 compatibility for now, see what breaks... +# configopts += '--enable-mpi1-compatibility ' + +# to enable SLURM integration (site-specific) +# configopts += '--with-slurm --with-pmi=/usr/include/slurm --with-pmi-libdir=/usr' + +moduleclass = 'mpi' diff --git a/easybuild/easyconfigs/o/OpenPGM/OpenPGM-5.2.122-GCCcore-12.2.0.eb b/easybuild/easyconfigs/o/OpenPGM/OpenPGM-5.2.122-GCCcore-12.2.0.eb new file mode 100644 index 00000000000..fbf1f1a1ad4 --- /dev/null +++ b/easybuild/easyconfigs/o/OpenPGM/OpenPGM-5.2.122-GCCcore-12.2.0.eb @@ -0,0 +1,45 @@ +easyblock = 'ConfigureMake' + +name = 'OpenPGM' +version = '5.2.122' + +homepage = 'https://code.google.com/p/openpgm/' + +description = """ + OpenPGM is an open source implementation of the Pragmatic General Multicast + (PGM) specification in RFC 3208 available at www.ietf.org. PGM is a reliable + and scalable multicast protocol that enables receivers to detect loss, request + retransmission of lost data, or notify an application of unrecoverable loss. + PGM is a receiver-reliable protocol, which means the receiver is responsible + for ensuring all data is received, absolving the sender of reception + responsibility. +""" + +toolchain = {'name': 'GCCcore', 'version': '12.2.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/openpgm/'] +sources = ['libpgm-%(version)s.tar.gz'] +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.39'), + ('Python', '3.10.8'), +] + +start_dir = 'pgm' + +sanity_check_paths = { + 'files': ['lib/libpgm.%s' % SHLIB_EXT, 'lib/libpgm.a'], + 'dirs': ['include'], +} + +moduleclass = 'system' diff --git a/easybuild/easyconfigs/o/OpenSSL/OpenSSL-1.1.eb b/easybuild/easyconfigs/o/OpenSSL/OpenSSL-1.1.eb index ee1e94ca6bb..001713087da 100644 --- a/easybuild/easyconfigs/o/OpenSSL/OpenSSL-1.1.eb +++ b/easybuild/easyconfigs/o/OpenSSL/OpenSSL-1.1.eb @@ -27,11 +27,11 @@ builddependencies = [('pkgconf', '1.8.0')] # component list, which will be build and installed as usual. components = [ - (name, '1.1.1t', { + (name, '1.1.1u', { 'easyblock': 'EB_OpenSSL', 'source_urls': ['https://www.openssl.org/source/'], 'sources': [SOURCELOWER_TAR_GZ], - 'checksums': ['8dee9b24bdb1dcbf0c3d1e9b02fb8f6bf22165e807f45adeb7c9677536859d3b'], + 'checksums': ['e2f8d84b523eecd06c7be7626830370300fbcc15386bf5142d72758f6963ebc6'], 'start_dir': '%(namelower)s-%(version)s', }), ] diff --git a/easybuild/easyconfigs/o/ont-fast5-api/ont-fast5-api-4.1.1-foss-2022b.eb b/easybuild/easyconfigs/o/ont-fast5-api/ont-fast5-api-4.1.1-foss-2022b.eb new file mode 100644 index 00000000000..c33603ff16c --- /dev/null +++ b/easybuild/easyconfigs/o/ont-fast5-api/ont-fast5-api-4.1.1-foss-2022b.eb @@ -0,0 +1,43 @@ +easyblock = 'PythonBundle' + +name = 'ont-fast5-api' +version = '4.1.1' + +homepage = 'https://github.com/nanoporetech/ont_fast5_api' +description = "ont_fast5_api is a simple interface to HDF5 files of the Oxford Nanopore .fast5 file format." + +toolchain = {'name': 'foss', 'version': '2022b'} + +dependencies = [ + ('Python', '3.10.8'), + ('SciPy-bundle', '2023.02'), + ('h5py', '3.8.0'), +] + +use_pip = True + +exts_list = [ + ('progressbar33', '2.4', { + 'modulename': 'progressbar', + 'checksums': ['51fe0d9b3b4023db2f983eeccdfc8c9846b84db8443b9bee002c7f58f4376eff'], + }), + (name, version, { + 'checksums': ['71ea44087f310a2792d1a6c2ffbf5bc194367e769ce96a15961787f90ec7707b'], + }), +] + +sanity_check_paths = { + 'files': ['bin/compress_fast5', 'bin/fast5_subset', 'bin/multi_to_single_fast5', 'bin/single_to_multi_fast5'], + 'dirs': [''], +} + +sanity_check_commands = [ + "compress_fast5 --help", + "fast5_subset --help", + "multi_to_single_fast5 --help", + "single_to_multi_fast5 --help", +] + +sanity_pip_check = True + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/o/openpyxl/openpyxl-3.1.2-GCCcore-12.2.0.eb b/easybuild/easyconfigs/o/openpyxl/openpyxl-3.1.2-GCCcore-12.2.0.eb new file mode 100644 index 00000000000..d705d5cf4ab --- /dev/null +++ b/easybuild/easyconfigs/o/openpyxl/openpyxl-3.1.2-GCCcore-12.2.0.eb @@ -0,0 +1,35 @@ +easyblock = 'PythonBundle' + +name = 'openpyxl' +version = '3.1.2' + +homepage = 'https://openpyxl.readthedocs.io' +description = "A Python library to read/write Excel 2010 xlsx/xlsm files" + +toolchain = {'name': 'GCCcore', 'version': '12.2.0'} + +builddependencies = [('binutils', '2.39')] + +dependencies = [ + ('Python', '3.10.8'), + ('lxml', '4.9.2'), + ('Pillow', '9.4.0'), +] + +use_pip = True + +exts_list = [ + ('et_xmlfile', '1.1.0', { + 'checksums': ['8eb9e2bc2f8c97e37a2dc85a09ecdcdec9d8a396530a6d5a33b30b9a92da0c5c'], + }), + ('jdcal', '1.4.1', { + 'checksums': ['472872e096eb8df219c23f2689fc336668bdb43d194094b5cc1707e1640acfc8'], + }), + (name, version, { + 'checksums': ['a6f5977418eff3b2d5500d54d9db50c8277a368436f4e4f8ddb1be3422870184'], + }), +] + +sanity_pip_check = True + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/o/oxDNA/oxDNA-3.5.2-foss-2022a-CUDA-11.7.0.eb b/easybuild/easyconfigs/o/oxDNA/oxDNA-3.5.2-foss-2022a-CUDA-11.7.0.eb new file mode 100644 index 00000000000..23f38d6955d --- /dev/null +++ b/easybuild/easyconfigs/o/oxDNA/oxDNA-3.5.2-foss-2022a-CUDA-11.7.0.eb @@ -0,0 +1,61 @@ +easyblock = 'CMakeMake' + +name = 'oxDNA' +version = '3.5.2' +versionsuffix = '-CUDA-%(cudaver)s' + +homepage = 'https://github.com/lorenzo-rovigatti/oxDNA' +description = """oxDNA is a simulation code that was initially conceived as an implementation + of the coarse-grained DNA model introduced by T. E. Ouldridge, J. P. K. Doye and A. A. Louis. + It has been since reworked and it is now an extensible simulation+analysis framework. + It natively supports DNA, RNA, Lennard-Jones and patchy particle simulations of different kinds + on both single CPU cores and NVIDIA GPUs.""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +github_account = 'lorenzo-rovigatti' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +patches = ['oxDNA-3.5.2_pip_install.patch'] +checksums = [ + {'v3.5.2.tar.gz': 'd76351b572334421aedb7774bb095db6f8f0a9c851e0242f0b665887d9d754bb'}, + {'oxDNA-3.5.2_pip_install.patch': '50cf60d4c65c7a953ec6f28ba1ce464e493565fb98221c5ffc429ba26c08d939'}, +] + +builddependencies = [ + ('CMake', '3.23.1') +] + +dependencies = [ + ('CUDA', '11.7.0', '', SYSTEM), + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), + ('scikit-learn', '1.1.2'), + ('matplotlib', '3.5.2'), +] + +configopts = "-DCUDA=1 -DCUDA_COMMON_ARCH=ON -DPython=ON " +# configopts += "-DMPI=ON " # still "unsupported feature that should be used by developers only"? + +postinstallcmds = [ + "mv %(builddir)s/easybuild_obj/bin/* %(installdir)s/bin/", + "mv %(builddir)s/easybuild_obj/oxpy/lib_oxpy_lib.a %(installdir)s/lib/", + "mv %%(builddir)s/easybuild_obj/src/liboxdna_common.%s %%(installdir)s/lib/" % SHLIB_EXT, +] + +sanity_check_paths = { + 'files': ['bin/confGenerator', 'bin/DNAnalysis', 'bin/oxDNA', 'bin/oat', + 'lib/liboxdna_common.%s' % SHLIB_EXT, 'lib/lib_oxpy_lib.a'], + 'dirs': ['lib/python%(pyshortver)s/site-packages/oxpy', + 'lib/python%(pyshortver)s/site-packages/oxDNA_analysis_tools'], +} + +sanity_check_commands = [ + "oxDNA 2>&1 | grep Usage", + "python -c 'import oxpy'", + "python -c 'import oxDNA_analysis_tools'", +] + +modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/o/oxDNA/oxDNA-3.5.2_pip_install.patch b/easybuild/easyconfigs/o/oxDNA/oxDNA-3.5.2_pip_install.patch new file mode 100644 index 00000000000..30876d0b804 --- /dev/null +++ b/easybuild/easyconfigs/o/oxDNA/oxDNA-3.5.2_pip_install.patch @@ -0,0 +1,13 @@ +install oxpy into the oxDNA installation directory instead of the user or Python installation directory +author: Miguel Dias Costa (National University of Singapore) +--- oxDNA-3.5.2/oxpy/CMakeLists.txt.orig 2023-06-28 15:22:31.870578035 +0800 ++++ oxDNA-3.5.2/oxpy/CMakeLists.txt 2023-06-28 18:05:27.313737196 +0800 +@@ -62,7 +62,7 @@ + if(OxpySystemInstall) + INSTALL(CODE "execute_process(COMMAND ${PYTHON_EXECUTABLE} -m pip install ${OXPY_OUTPUT_DIR})") + else() +- INSTALL(CODE "execute_process(COMMAND ${PYTHON_EXECUTABLE} -m pip install --user ${OXPY_OUTPUT_DIR})") ++ INSTALL(CODE "execute_process(COMMAND ${PYTHON_EXECUTABLE} -m pip install --prefix=${CMAKE_INSTALL_PREFIX} ${OXPY_OUTPUT_DIR})") + endif() + + ENDIF(Python) diff --git a/easybuild/easyconfigs/p/PEAR/PEAR-0.9.11-GCC-11.3.0.eb b/easybuild/easyconfigs/p/PEAR/PEAR-0.9.11-GCC-11.3.0.eb new file mode 100644 index 00000000000..46016c94a95 --- /dev/null +++ b/easybuild/easyconfigs/p/PEAR/PEAR-0.9.11-GCC-11.3.0.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'PEAR' +version = '0.9.11' + +homepage = 'https://cme.h-its.org/exelixis/web/software/pear/' +description = """PEAR is an ultrafast, memory-efficient and highly accurate pair-end read merger. + It is fully parallelized and can run with as low as just a few kilobytes of memory.""" + +toolchain = {'name': 'GCC', 'version': '11.3.0'} + +download_instructions = "Manual download via web form, see https://www.h-its.org/software/pear-paired-end-read-merger" +sources = ['%(namelower)s-src-%(version)s.tar.gz'] +checksums = ['94f4a1835cd75ec6fab83405c2545ddba6b6bb1644579222e9cc2ad57a59d654'] + +builddependencies = [('Autotools', '20220317')] + +dependencies = [ + ('zlib', '1.2.12'), + ('bzip2', '1.0.8'), +] + +preconfigopts = 'aclocal && autoconf && automake --add-missing && ' + +sanity_check_paths = { + 'files': ['bin/%(namelower)s'], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/p/PLUMED/PLUMED-2.5.4-foss-2019b-Python-3.7.4.eb b/easybuild/easyconfigs/p/PLUMED/PLUMED-2.5.4-foss-2019b-Python-3.7.4.eb new file mode 100644 index 00000000000..3da44632a6d --- /dev/null +++ b/easybuild/easyconfigs/p/PLUMED/PLUMED-2.5.4-foss-2019b-Python-3.7.4.eb @@ -0,0 +1,57 @@ +# by Ward Poelmans +# updated by Lars Viklund + +easyblock = 'ConfigureMake' + +name = 'PLUMED' +version = '2.5.4' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://www.plumed.org' +description = """PLUMED is an open source library for free energy calculations in molecular systems which + works together with some of the most popular molecular dynamics engines. Free energy calculations can be + performed as a function of many order parameters with a particular focus on biological problems, using + state of the art methods such as metadynamics, umbrella sampling and Jarzynski-equation based steered MD. + The software, written in C++, can be easily interfaced with both fortran and C/C++ codes. +""" + +toolchain = {'name': 'foss', 'version': '2019b'} +toolchainopts = {'usempi': 'True'} + +source_urls = ['https://github.com/plumed/plumed2/releases/download/v%(version)s/'] +sources = [SOURCE_TGZ] +checksums = ['12eda9c533f765a33425215fa1e6ea05d8763d29bad0dae637a38e5c83d4ce17'] + +dependencies = [ + ('zlib', '1.2.11'), + ('GSL', '2.6'), + ('libmatheval', '1.1.11'), + ('Python', '3.7.4'), + ('SciPy-bundle', '2019.10', versionsuffix), +] + +preconfigopts = 'env FC=$MPIF90 LIBS="$LIBLAPACK $LIBS" ' +configopts = ' --exec-prefix=%(installdir)s --enable-gsl --enable-modules=all --enable-python' +prebuildopts = 'source sourceme.sh && ' + +# make sure that ld.gold linker is used +# requires to work around problems like "ld: BFD (GNU Binutils) 2.30 assertion fail elf.c:3564" +buildopts = 'LD_RO="ld.gold -r -o"' + +# install path for PLUMED libraries must be included in $LD_LIBRARY_PATH when Python bindings get built/installed +preinstallopts = 'LD_LIBRARY_PATH="%(installdir)s/lib:$LD_LIBRARY_PATH" ' + +sanity_check_paths = { + 'files': ['bin/plumed', 'lib/libplumedKernel.%s' % SHLIB_EXT, 'lib/libplumed.%s' % SHLIB_EXT], + 'dirs': [], +} + +sanity_check_commands = ["python -c 'import plumed'"] + +modextrapaths = { + 'PLUMED_KERNEL': 'lib/libplumedKernel.%s' % SHLIB_EXT, + 'PLUMED_ROOT': 'lib/plumed', + 'PYTHONPATH': 'lib/plumed/python', +} + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/p/PLUMED/PLUMED-2.5.4-fosscuda-2019b-Python-3.7.4.eb b/easybuild/easyconfigs/p/PLUMED/PLUMED-2.5.4-fosscuda-2019b-Python-3.7.4.eb new file mode 100644 index 00000000000..1c7b2104a89 --- /dev/null +++ b/easybuild/easyconfigs/p/PLUMED/PLUMED-2.5.4-fosscuda-2019b-Python-3.7.4.eb @@ -0,0 +1,57 @@ +# by Ward Poelmans +# updated by Lars Viklund + +easyblock = 'ConfigureMake' + +name = 'PLUMED' +version = '2.5.4' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://www.plumed.org' +description = """PLUMED is an open source library for free energy calculations in molecular systems which + works together with some of the most popular molecular dynamics engines. Free energy calculations can be + performed as a function of many order parameters with a particular focus on biological problems, using + state of the art methods such as metadynamics, umbrella sampling and Jarzynski-equation based steered MD. + The software, written in C++, can be easily interfaced with both fortran and C/C++ codes. +""" + +toolchain = {'name': 'fosscuda', 'version': '2019b'} +toolchainopts = {'usempi': 'True'} + +source_urls = ['https://github.com/plumed/plumed2/releases/download/v%(version)s/'] +sources = [SOURCE_TGZ] +checksums = ['12eda9c533f765a33425215fa1e6ea05d8763d29bad0dae637a38e5c83d4ce17'] + +dependencies = [ + ('zlib', '1.2.11'), + ('GSL', '2.6'), + ('libmatheval', '1.1.11'), + ('Python', '3.7.4'), + ('SciPy-bundle', '2019.10', versionsuffix), +] + +preconfigopts = 'env FC=$MPIF90 LIBS="$LIBLAPACK $LIBS" ' +configopts = ' --exec-prefix=%(installdir)s --enable-gsl --enable-modules=all --enable-python' +prebuildopts = 'source sourceme.sh && ' + +# make sure that ld.gold linker is used +# requires to work around problems like "ld: BFD (GNU Binutils) 2.30 assertion fail elf.c:3564" +buildopts = 'LD_RO="ld.gold -r -o"' + +# install path for PLUMED libraries must be included in $LD_LIBRARY_PATH when Python bindings get built/installed +preinstallopts = 'LD_LIBRARY_PATH="%(installdir)s/lib:$LD_LIBRARY_PATH" ' + +sanity_check_paths = { + 'files': ['bin/plumed', 'lib/libplumedKernel.%s' % SHLIB_EXT, 'lib/libplumed.%s' % SHLIB_EXT], + 'dirs': [], +} + +sanity_check_commands = ["python -c 'import plumed'"] + +modextrapaths = { + 'PLUMED_KERNEL': 'lib/libplumedKernel.%s' % SHLIB_EXT, + 'PLUMED_ROOT': 'lib/plumed', + 'PYTHONPATH': 'lib/plumed/python', +} + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/p/PMIx/PMIx-4.2.4-GCCcore-12.3.0.eb b/easybuild/easyconfigs/p/PMIx/PMIx-4.2.4-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..611c34c2b5f --- /dev/null +++ b/easybuild/easyconfigs/p/PMIx/PMIx-4.2.4-GCCcore-12.3.0.eb @@ -0,0 +1,45 @@ +easyblock = 'ConfigureMake' + +name = 'PMIx' +version = '4.2.4' + +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': '12.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 = ['c4699543f2278d3a78bdac72b4b2da9cd92d11d18478d66522b8991764b021c8'] + +builddependencies = [('binutils', '2.40')] + +dependencies = [ + ('libevent', '2.1.12'), + ('zlib', '1.2.13'), + ('hwloc', '2.9.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/POT/POT-0.9.0-foss-2022a.eb b/easybuild/easyconfigs/p/POT/POT-0.9.0-foss-2022a.eb new file mode 100644 index 00000000000..716388b4c20 --- /dev/null +++ b/easybuild/easyconfigs/p/POT/POT-0.9.0-foss-2022a.eb @@ -0,0 +1,40 @@ +easyblock = 'PythonBundle' + +name = 'POT' +version = '0.9.0' + +homepage = 'https://github.com/rflamary/POT' +description = """POT (Python Optimal Transport) is a Python library provide several solvers for optimization problems + related to Optimal Transport for signal, image processing and machine learning.""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +dependencies = [ + ('Python', '3.10.4'), + ('matplotlib', '3.5.2'), + ('scikit-learn', '1.1.2'), + ('PyTorch', '1.12.0'), + ('jax', '0.3.25'), + ('CVXOPT', '1.3.1'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('autograd', '1.6.2', { + 'checksums': ['8731e08a0c4e389d8695a40072ada4512641c113b6cace8f4cfbe8eb7e9aedeb'], + }), + ('versioneer', '0.28', { + 'checksums': ['7175ca8e7bb4dd0e3c9779dd2745e5b4a6036304af3f5e50bd896f10196586d6'], + }), + ('pymanopt', '2.1.1', { + 'checksums': ['07f6996b944eb43a15ce762841e01f7f7aa2d29005253eb7087db3926fdd8aa6'], + }), + (name, version, { + 'modulename': 'ot', + 'checksums': ['300864ae2b469a7b66155fc610a134961d9d46f1ecde0d85e484d14acd06b215'], + }), +] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/p/PSI4/PSI4-1.7-foss-2021b.eb b/easybuild/easyconfigs/p/PSI4/PSI4-1.7-foss-2021b.eb new file mode 100644 index 00000000000..a45e9eb8eb6 --- /dev/null +++ b/easybuild/easyconfigs/p/PSI4/PSI4-1.7-foss-2021b.eb @@ -0,0 +1,89 @@ +easyblock = 'EB_PSI' + +name = 'PSI4' +version = '1.7' + +homepage = 'https://www.psicode.org/' +description = """PSI4 is an open-source suite of ab initio quantum chemistry programs designed for +efficient, high-accuracy simulations of a variety of molecular properties. We can routinely perform +computations with more than 2500 basis functions running serially or in parallel. +""" + +toolchain = {'name': 'foss', 'version': '2021b'} +toolchainopts = {'usempi': True} + +source_urls = ['https://github.com/psi4/psi4/archive'] +sources = ['v%(version)s.tar.gz'] +patches = [ + 'PSI4-%(version)s_fix_cmake_release.patch', + 'PSI4-%(version)s_fix_snsmp2_version.patch', +] +checksums = [ + '85a2772a148d57423a909fd91f3f9b068ae393b161510e78e7a824fbe3997366', # v1.7.tar.gz + 'a8af68947fb4d632d16adb3341b90990d9129d3fe9a28dee733b67bcd2aeff08', # PSI4-1.3.1_fix_cmake_release.patch + '064dcf60e74e0c449f77bb6e4dcf4b3338edad7d9a046089ecc2979aed1a00f9', # PSI4-1.7_fix_snsmp2_version.patch +] + +dependencies = [ + ('Python', '3.9.6'), + ('libxc', '5.1.6'), + ('CheMPS2', '1.8.11'), + ('networkx', '2.6.3'), + ('psutil', '5.9.4'), + ('pytest', '7.1.3'), + ('Boost', '1.77.0'), +] + +builddependencies = [ + ('CMake', '3.22.1'), + ('Eigen', '3.4.0'), +] + +configopts = '-DENABLE_MPI=ON -DENABLE_PLUGINS=ON -DENABLE_XHOST=OFF ' +# Install python module to the standard location instead of lib +configopts += '-DPYMOD_INSTALL_LIBDIR=/python%(pyshortver)s/site-packages ' +# Add bundled (downloaded) packages +# -DENABLE_simint=ON does not work with intel/2018, so have to make with GCCcore +configopts += '-DENABLE_dkh=ON -DENABLE_gdma=ON -DENABLE_resp=ON -DENABLE_snsmp2=ON ' +# allow PSI4 to download and build a forked version of PCMSolver otherwise tests fail +configopts += '-DENABLE_PCMSolver=ON ' + +# runtest uses ctest, and some of the tests have to be manually compared +# to the reference output (those tests are marked failed) +# After installing PSI4, you can test the package using psi4 --test command. (This uses pytest framework) +# runtest = '-L smoke' +runtest = False + +exts_defaultclass = 'PythonPackage' +exts_filter = ("python -c 'import %(ext_name)s'", '') +exts_default_options = { + 'source_urls': [PYPI_SOURCE], + 'download_dep_fail': True, + 'use_pip': True, +} + +exts_list = [ + ('typing_extensions', '4.5.0', { + 'checksums': ['5cb5f4a79139d699607b3ef622a1dedafa84e115ab0024e0d9c044a9479ca7cb'], + }), + ('pydantic', '1.10.5', { + 'checksums': ['9e337ac83686645a46db0e825acceea8e02fca4062483f40e9ae178e8bd1103a'], + }), + ('Pint', '0.20.1', { + 'checksums': ['387cf04078dc7dfe4a708033baad54ab61d82ab06c4ee3d4922b1e45d5626067'], + }), + ('msgpack-python', '0.5.6', { + 'modulename': 'msgpack', + 'checksums': ['378cc8a6d3545b532dfd149da715abae4fda2a3adb6d74e525d0d5e51f46909b'], + }), + ('py-cpuinfo', '9.0.0', { + 'modulename': 'cpuinfo', + 'checksums': ['3cdbbf3fac90dc6f118bfd64384f309edeadd902d7c8fb17f02ffa1fc3f49690'], + }) +] + +modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'} + +sanity_check_commands = ["python -c 'import psi4'"] + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/p/PSI4/PSI4-1.7_fix_cmake_release.patch b/easybuild/easyconfigs/p/PSI4/PSI4-1.7_fix_cmake_release.patch new file mode 100644 index 00000000000..7c57b511a1b --- /dev/null +++ b/easybuild/easyconfigs/p/PSI4/PSI4-1.7_fix_cmake_release.patch @@ -0,0 +1,109 @@ +remove CMAKE_BUILD_TYPE check (because it is set to EasyBuildRelease to avoid -O3 optimization flag) +original patch by B. Hajgato - (Free University Brussels - VUB) +ported to PSI4 1.3.1 by Kenneth Hoste (HPC-UGent) +ported to PSI4 1.7 by Neil Douglas (neil.douglas@york.ac.uk) +diff -ru psi4-1.7.orig/cmake/autocmake_safeguards.cmake psi4-1.7/cmake/autocmake_safeguards.cmake +--- psi4-1.7.orig/cmake/autocmake_safeguards.cmake 2019-04-12 19:25:25.000000000 +0200 ++++ psi4-1.7/cmake/autocmake_safeguards.cmake 2019-05-17 19:51:47.000000000 +0200 +@@ -19,8 +19,8 @@ + string(TOLOWER "${CMAKE_BUILD_TYPE}" cmake_build_type_tolower) + string(TOUPPER "${CMAKE_BUILD_TYPE}" cmake_build_type_toupper) + +-if(NOT cmake_build_type_tolower STREQUAL "debug" AND +- NOT cmake_build_type_tolower STREQUAL "release" AND +- NOT cmake_build_type_tolower STREQUAL "relwithdebinfo") +- message(FATAL_ERROR "Unknown build type \"${CMAKE_BUILD_TYPE}\". Allowed values are Debug, Release, RelWithDebInfo (case-insensitive).") +-endif() ++#if(NOT cmake_build_type_tolower STREQUAL "debug" AND ++# NOT cmake_build_type_tolower STREQUAL "release" AND ++# NOT cmake_build_type_tolower STREQUAL "relwithdebinfo") ++# message(FATAL_ERROR "Unknown build type \"${CMAKE_BUILD_TYPE}\". Allowed values are Debug, Release, RelWithDebInfo (case-insensitive).") ++#endif() +diff -ru psi4-1.7.orig/external/upstream/dkh/CMakeLists.txt psi4-1.7/external/upstream/dkh/CMakeLists.txt +--- psi4-1.7.orig/external/upstream/dkh/CMakeLists.txt 2019-04-12 19:25:25.000000000 +0200 ++++ psi4-1.7/external/upstream/dkh/CMakeLists.txt 2019-05-17 19:55:10.000000000 +0200 +@@ -16,6 +16,7 @@ + GIT_REPOSITORY https://github.com/psi4/dkh + GIT_TAG v1.2 + UPDATE_COMMAND "" ++ PATCH_COMMAND sed -e "s/debug/easybuildrelease/" -i cmake/autocmake_safeguards.cmake + CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${STAGED_INSTALL_PREFIX} + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} + -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} +Only in psi4-1.7/external/upstream/dkh: CMakeLists.txt.orig +Only in psi4-1.7/external/upstream/dkh: CMakeLists.txt.rej +diff -ru psi4-1.7.orig/external/upstream/gau2grid/CMakeLists.txt psi4-1.7/external/upstream/gau2grid/CMakeLists.txt +--- psi4-1.7.orig/external/upstream/gau2grid/CMakeLists.txt 2019-04-12 19:25:25.000000000 +0200 ++++ psi4-1.7/external/upstream/gau2grid/CMakeLists.txt 2019-05-17 19:53:08.000000000 +0200 +@@ -16,6 +16,7 @@ + GIT_REPOSITORY https://github.com/dgasmith/gau2grid + GIT_TAG v1.3.1 + UPDATE_COMMAND "" ++ PATCH_COMMAND sed -e "s/debug/easybuildrelease/" -i cmake/autocmake_safeguards.cmake + CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${STAGED_INSTALL_PREFIX} + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} + -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} +Only in psi4-1.7/external/upstream/gau2grid: CMakeLists.txt.orig +Only in psi4-1.7/external/upstream/gau2grid: CMakeLists.txt.rej +diff -ru psi4-1.7.orig/external/upstream/gdma/CMakeLists.txt psi4-1.7/external/upstream/gdma/CMakeLists.txt +--- psi4-1.7.orig/external/upstream/gdma/CMakeLists.txt 2019-04-12 19:25:25.000000000 +0200 ++++ psi4-1.7/external/upstream/gdma/CMakeLists.txt 2019-05-17 19:55:48.000000000 +0200 +@@ -16,6 +16,7 @@ + GIT_REPOSITORY https://github.com/psi4/gdma + GIT_TAG 9d607d7 # v2.2.6-2-g9d607d7 + UPDATE_COMMAND "" ++ PATCH_COMMAND sed -e "s/debug/easybuildrelease/" -i cmake/autocmake_safeguards.cmake + CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${STAGED_INSTALL_PREFIX} + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} + -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} +Only in psi4-1.7/external/upstream/gdma: CMakeLists.txt.orig +Only in psi4-1.7/external/upstream/gdma: CMakeLists.txt.rej +diff -ru psi4-1.7.orig/external/upstream/libefp/CMakeLists.txt psi4-1.7/external/upstream/libefp/CMakeLists.txt +--- psi4-1.7.orig/external/upstream/libefp/CMakeLists.txt 2019-04-12 19:25:25.000000000 +0200 ++++ psi4-1.7/external/upstream/libefp/CMakeLists.txt 2019-05-17 19:55:38.000000000 +0200 +@@ -17,6 +17,7 @@ + GIT_REPOSITORY https://github.com/ilyak/libefp + GIT_TAG 15cd7ce # v1.5.0 + 10 (docs and a cmake lapack patch) + UPDATE_COMMAND "" ++ PATCH_COMMAND sed -e "s/debug/easybuildrelease/" -i cmake/autocmake_safeguards.cmake + CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${STAGED_INSTALL_PREFIX} + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} + -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} +Only in psi4-1.7/external/upstream/libefp: CMakeLists.txt.orig +Only in psi4-1.7/external/upstream/libefp: CMakeLists.txt.rej +diff -ru psi4-1.7.orig/external/upstream/libint/CMakeLists.txt psi4-1.7/external/upstream/libint/CMakeLists.txt +--- psi4-1.7.orig/external/upstream/libint/CMakeLists.txt 2019-04-12 19:25:25.000000000 +0200 ++++ psi4-1.7/external/upstream/libint/CMakeLists.txt 2019-05-17 19:54:22.000000000 +0200 +@@ -14,6 +14,7 @@ + ExternalProject_Add(libint_external + # "git checkout" fails on Windows, because of "*" in filenames (e.g. basis set files) + URL https://github.com/loriab/libint/archive/libint_t.tar.gz ++ PATCH_COMMAND sed -e "s/debug/easybuildrelease/" -i cmake/autocmake_safeguards.cmake + CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${STAGED_INSTALL_PREFIX} + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} + -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} +Only in psi4-1.7/external/upstream/libint: CMakeLists.txt.orig +Only in psi4-1.7/external/upstream/libint: CMakeLists.txt.rej +diff -ru psi4-1.7.orig/external/upstream/libxc/CMakeLists.txt psi4-1.7/external/upstream/libxc/CMakeLists.txt +--- psi4-1.7.orig/external/upstream/libxc/CMakeLists.txt 2019-04-12 19:25:25.000000000 +0200 ++++ psi4-1.7/external/upstream/libxc/CMakeLists.txt 2019-05-17 19:56:11.000000000 +0200 +@@ -15,6 +15,7 @@ + #GIT_REPOSITORY https://gitlab.com/libxc/libxc.git + #GIT_TAG 5.1.5 + #UPDATE_COMMAND "" ++ PATCH_COMMAND sed -e "s/debug/easybuildrelease/" -i cmake/autocmake_safeguards.cmake + CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${STAGED_INSTALL_PREFIX} + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} + -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} +Only in psi4-1.7/external/upstream/libxc: CMakeLists.txt.orig +Only in psi4-1.7/external/upstream/libxc: CMakeLists.txt.rej +--- psi4-1.7.orig/external/upstream/pcmsolver/CMakeLists.txt 2023-02-27 14:33:58.771017491 +0000 ++++ psi4-1.7/external/upstream/pcmsolver/CMakeLists.txt 2023-02-27 14:35:00.507500122 +0000 +@@ -24,6 +24,7 @@ + ExternalProject_Add(pcmsolver_external + #URL https://github.com/PCMSolver/pcmsolver/archive/v1.3.1.tar.gz + URL https://github.com/loriab/pcmsolver/archive/v1211.tar.gz ++ PATCH_COMMAND sed -e "s/debug/easybuildrelease/" -i cmake/downloaded/autocmake_safeguards.cmake + UPDATE_COMMAND "" + CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${STAGED_INSTALL_PREFIX} + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} diff --git a/easybuild/easyconfigs/p/PSI4/PSI4-1.7_fix_snsmp2_version.patch b/easybuild/easyconfigs/p/PSI4/PSI4-1.7_fix_snsmp2_version.patch new file mode 100644 index 00000000000..dd63fa064d7 --- /dev/null +++ b/easybuild/easyconfigs/p/PSI4/PSI4-1.7_fix_snsmp2_version.patch @@ -0,0 +1,15 @@ +Fixes build error 'Versioning for this project requires either an sdist tarball, or access to an upstream git repository' +--- psi4-1.7/external/downstream/snsmp2/CMakeLists.txt 2023-02-22 14:56:49.000000000 +0000 ++++ psi4-1.7/external/downstream/snsmp2/CMakeLists.txt 2023-02-22 15:00:11.000000000 +0000 +@@ -22,7 +22,7 @@ + URL https://github.com/DEShawResearch/sns-mp2/archive/12462c6.tar.gz # v1.0 + 26 + CONFIGURE_COMMAND "" + UPDATE_COMMAND "" +- BUILD_COMMAND ${Python_EXECUTABLE} setup.py build ++ BUILD_COMMAND PBR_VERSION=1.0 ${Python_EXECUTABLE} setup.py build + BUILD_IN_SOURCE 1 +- INSTALL_COMMAND ${Python_EXECUTABLE} setup.py install ++ INSTALL_COMMAND PBR_VERSION=1.0 ${Python_EXECUTABLE} setup.py install + --record=record.txt + --single-version-externally-managed + --install-lib=${STAGED_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}${PYMOD_INSTALL_LIBDIR}) diff --git a/easybuild/easyconfigs/p/ParaView/ParaView-5.11.1-foss-2022a-mpi.eb b/easybuild/easyconfigs/p/ParaView/ParaView-5.11.1-foss-2022a-mpi.eb new file mode 100644 index 00000000000..479b6c9ee20 --- /dev/null +++ b/easybuild/easyconfigs/p/ParaView/ParaView-5.11.1-foss-2022a-mpi.eb @@ -0,0 +1,60 @@ +## +# Author: Robert Mijakovic +## +easyblock = 'CMakeMake' + +name = 'ParaView' +version = '5.11.1' +versionsuffix = '-mpi' + +homepage = 'https://www.paraview.org' +description = "ParaView is a scientific parallel visualizer." + +toolchain = {'name': 'foss', 'version': '2022a'} +toolchainopts = {'pic': True, 'usempi': True} + +local_download_suffix = 'download.php?submit=Download&version=v%(version_major_minor)s&type=source&os=all&downloadFile=' +source_urls = ['https://www.paraview.org/paraview-downloads/%s' % local_download_suffix] +sources = ["%(name)s-v%(version)s.tar.gz"] +checksums = [ + 'de32f3e576b5f639ffc6903aa9e4cd46ac30c753185edc4366a7f305a6951b16', # ParaView-v5.11.1.tar.gz +] + +builddependencies = [('CMake', '3.23.1')] + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), + ('XZ', '5.2.5'), + ('HDF5', '1.12.2'), + ('netCDF', '4.9.0'), + ('libGLU', '9.0.2'), + ('X11', '20220504'), + ('Mesa', '22.0.3'), + ('Qt5', '5.15.5'), + ('zlib', '1.2.12'), + ('FFmpeg', '4.4.2'), + ('Szip', '2.1.1'), +] + +# Paraview +configopts = '-DPARAVIEW_INSTALL_DEVELOPMENT_FILES=ON -DPARAVIEW_BUILD_SHARED_LIBS=ON ' +configopts += '-DPARAVIEW_USE_MPI=ON ' +configopts += '-DPARAVIEW_ENABLE_FFMPEG=ON ' +configopts += '-DPARAVIEW_USE_PYTHON=ON ' +configopts += '-DPython3_ROOT_DIR=$EBROOTPYTHON ' + +# OpenGL & Mesa +configopts += '-DOPENGL_glu_LIBRARY=$EBROOTLIBGLU/lib/libGLU.%s ' % SHLIB_EXT +configopts += '-DOPENGL_INCLUDE_DIR=$EBROOTMESA/include ' + +sanity_check_paths = { + 'files': ['bin/paraview', 'bin/pvpython'], + 'dirs': ['include/paraview-%(version_major_minor)s', 'lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = ['python -c "import paraview"'] + +modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/p/Paraver/Paraver-4.11.1-foss-2022a.eb b/easybuild/easyconfigs/p/Paraver/Paraver-4.11.1-foss-2022a.eb new file mode 100644 index 00000000000..849185d175c --- /dev/null +++ b/easybuild/easyconfigs/p/Paraver/Paraver-4.11.1-foss-2022a.eb @@ -0,0 +1,21 @@ +name = 'Paraver' +version = '4.11.1' + +homepage = 'https://tools.bsc.es/paraver' +description = """A very powerful performance visualization and analysis tool based on + traces that can be used to analyse any information that is expressed on its input trace format. + Traces for parallel MPI, OpenMP and other programs can be genereated with Extrae.""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +source_urls = ['https://ftp.tools.bsc.es/wxparaver/'] +sources = ['wxparaver-%(version)s-src.tar.bz2'] +checksums = ['b1c1cc8ce69adb095b9f8a4500250c0baa50668be60825f75d75fddca9a88f77'] + +dependencies = [ + ('zlib', '1.2.12'), + ('Boost', '1.79.0'), + ('wxWidgets', '3.2.1'), +] + +moduleclass = 'perf' diff --git a/easybuild/easyconfigs/p/Perl-bundle-CPAN/Perl-bundle-CPAN-5.36.1-GCCcore-12.3.0.eb b/easybuild/easyconfigs/p/Perl-bundle-CPAN/Perl-bundle-CPAN-5.36.1-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..350f4e317e9 --- /dev/null +++ b/easybuild/easyconfigs/p/Perl-bundle-CPAN/Perl-bundle-CPAN-5.36.1-GCCcore-12.3.0.eb @@ -0,0 +1,2133 @@ +easyblock = 'PerlBundle' + +name = 'Perl-bundle-CPAN' +version = '5.36.1' + +homepage = 'https://www.perl.org/' +description = """A set of common packages from CPAN""" + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} +toolchainopts = {'pic': True} + +builddependencies = [ + ('binutils', '2.40'), + ('groff', '1.22.4'), +] + +dependencies = [ + ('Perl', version), + ('zlib', '1.2.13'), # for Net::SSLeay + ('expat', '2.5.0'), # for XML::Parser + ('ncurses', '6.4'), # for Term::ReadLine::Gnu + ('libreadline', '8.2'), # for Term::ReadLine::Gnu + ('OpenSSL', '1.1', '', SYSTEM), # required for Net::SSLeay +] + +# !! order of extensions is important !! +# extensions updated on 2023-05-23 +exts_list = [ + ('Config::General', '2.65', { + 'source_tmpl': 'Config-General-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TL/TLINDEN'], + 'checksums': ['4d6d5754be3a9f30906836f0cc10e554c8832e14e7a1341efb15b05d706fc58f'], + }), + ('HTTP::Date', '6.05', { + 'source_tmpl': 'HTTP-Date-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/O/OA/OALDERS'], + 'checksums': ['365d6294dfbd37ebc51def8b65b81eb79b3934ecbc95a2ec2d4d827efe6a922b'], + }), + ('File::Listing', '6.15', { + 'source_tmpl': 'File-Listing-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PL/PLICEASE'], + 'checksums': ['46c4fb9f9eb9635805e26b7ea55b54455e47302758a10ed2a0b92f392713770c'], + }), + ('ExtUtils::Config', '0.008', { + 'source_tmpl': 'ExtUtils-Config-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + 'checksums': ['ae5104f634650dce8a79b7ed13fb59d67a39c213a6776cfdaa3ee749e62f1a8c'], + }), + ('ExtUtils::InstallPaths', '0.012', { + 'source_tmpl': 'ExtUtils-InstallPaths-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + 'checksums': ['84735e3037bab1fdffa3c2508567ad412a785c91599db3c12593a50a1dd434ed'], + }), + ('ExtUtils::Helpers', '0.026', { + 'source_tmpl': 'ExtUtils-Helpers-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + 'checksums': ['de901b6790a4557cf4ec908149e035783b125bf115eb9640feb1bc1c24c33416'], + }), + ('Test::Harness', '3.44', { + 'source_tmpl': 'Test-Harness-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + 'checksums': ['7eb591ea6b499ece6745ff3e80e60cee669f0037f9ccbc4e4511425f593e5297'], + }), + ('Module::Build::Tiny', '0.045', { + 'source_tmpl': 'Module-Build-Tiny-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + 'checksums': ['d20692eee246d0b329b7f7659f36286b14ae0696fe91078a64b7078f8876d300'], + }), + ('aliased', '0.34', { + 'source_tmpl': 'aliased-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['c350524507cd827fab864e5d4c2cc350b1babaa12fa95aec0ca00843fcc7deeb'], + }), + ('Text::Glob', '0.11', { + 'source_tmpl': 'Text-Glob-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RC/RCLAMP'], + 'checksums': ['069ccd49d3f0a2dedb115f4bdc9fbac07a83592840953d1fcdfc39eb9d305287'], + }), + ('Regexp::Common', '2017060201', { + 'source_tmpl': 'Regexp-Common-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AB/ABIGAIL'], + 'checksums': ['ee07853aee06f310e040b6bf1a0199a18d81896d3219b9b35c9630d0eb69089b'], + }), + ('IO::String', '1.08', { + 'source_tmpl': 'IO-String-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + 'checksums': ['2a3f4ad8442d9070780e58ef43722d19d1ee21a803bf7c8206877a10482de5a0'], + }), + ('Data::Stag', '0.14', { + 'source_tmpl': 'Data-Stag-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CM/CMUNGALL'], + 'checksums': ['4ab122508d2fb86d171a15f4006e5cf896d5facfa65219c0b243a89906258e59'], + }), + ('GO::Utils', '0.15', { + 'source_tmpl': 'go-perl-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CM/CMUNGALL'], + 'checksums': ['423d26155ee85ca51ab2270cee59f4e85b193e57ac3a29aff827298c0a396b12'], + }), + ('Module::Pluggable', '5.2', { + 'source_tmpl': 'Module-Pluggable-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SI/SIMONW'], + 'checksums': ['b3f2ad45e4fd10b3fb90d912d78d8b795ab295480db56dc64e86b9fa75c5a6df'], + }), + ('Try::Tiny', '0.31', { + 'source_tmpl': 'Try-Tiny-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER/'], + 'checksums': ['3300d31d8a4075b26d8f46ce864a1d913e0e8467ceeba6655d5d2b2e206c11be'], + }), + ('Test::Fatal', '0.017', { + 'source_tmpl': 'Test-Fatal-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['37dfffdafb84b762efe96b02fb2aa41f37026c73e6b83590db76229697f3c4a6'], + }), + ('Test::Warnings', '0.031', { + 'source_tmpl': 'Test-Warnings-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['1e542909fef305e45563e9878ea1c3b0c7cef1b28bb7ae07eba2e1efabec477b'], + }), + ('Class::Inspector', '1.36', { + 'source_tmpl': 'Class-Inspector-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PL/PLICEASE'], + 'checksums': ['cc295d23a472687c24489d58226ead23b9fdc2588e522f0b5f0747741700694e'], + }), + ('File::ShareDir::Install', '0.14', { + 'source_tmpl': 'File-ShareDir-Install-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['8f9533b198f2d4a9a5288cbc7d224f7679ad05a7a8573745599789428bc5aea0'], + }), + ('File::ShareDir', '1.118', { + 'source_tmpl': 'File-ShareDir-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + 'checksums': ['3bb2a20ba35df958dc0a4f2306fc05d903d8b8c4de3c8beefce17739d281c958'], + }), + ('IPC::System::Simple', '1.30', { + 'source_tmpl': 'IPC-System-Simple-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JK/JKEENAN'], + 'checksums': ['22e6f5222b505ee513058fdca35ab7a1eab80539b98e5ca4a923a70a8ae9ba9e'], + }), + ('Importer', '0.026', { + 'source_tmpl': 'Importer-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + 'checksums': ['e08fa84e13cb998b7a897fc8ec9c3459fcc1716aff25cc343e36ef875891b0ef'], + }), + ('Term::Table', '0.016', { + 'source_tmpl': 'Term-Table-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + 'checksums': ['8fb4fbb8e96a2d6c514949eb8cfd7e66319bcb1cbf7cea0ab19af887a72d97bf'], + }), + ('Scope::Guard', '0.21', { + 'source_tmpl': 'Scope-Guard-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CH/CHOCOLATE'], + 'checksums': ['8c9b1bea5c56448e2c3fadc65d05be9e4690a3823a80f39d2f10fdd8f777d278'], + }), + ('Sub::Info', '0.002', { + 'source_tmpl': 'Sub-Info-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + 'checksums': ['ea3056d696bdeff21a99d340d5570887d39a8cc47bff23adfc82df6758cdd0ea'], + }), + ('Test2::Require::Module', '0.000155', { + 'source_tmpl': 'Test2-Suite-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + 'checksums': ['c78e6bc4d69bc097836976863382b52b9e0c31ee185066ce60c54bd74baad53d'], + }), + ('Test2::Plugin::NoWarnings', '0.09', { + 'source_tmpl': 'Test2-Plugin-NoWarnings-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['be3dd800042eef362bf17d2056cf9e934dee91ccce98e4f178b8fb5772f2fb74'], + }), + ('Class::Tiny', '1.008', { + 'source_tmpl': 'Class-Tiny-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + 'checksums': ['ee058a63912fa1fcb9a72498f56ca421a2056dc7f9f4b67837446d6421815615'], + }), + ('Path::Tiny', '0.144', { + 'source_tmpl': 'Path-Tiny-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + 'checksums': ['f6ea094ece845c952a02c2789332579354de8d410a707f9b7045bd241206487d'], + }), + ('Test::Deep', '1.204', { + 'source_tmpl': 'Test-Deep-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['b6591f6ccdd853c7efc9ff3c5756370403211cffe46047f082b1cd1611a84e5f'], + }), + ('Test::File', '1.993', { + 'source_tmpl': 'Test-File-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BD/BDFOY'], + 'checksums': ['ef2ffe1aaec7b42d874ad411ec647547b9b9bc2f5fb93e49e3399488456afc7a'], + }), + ('Test::Needs', '0.002010', { + 'source_tmpl': 'Test-Needs-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + 'checksums': ['923ffdc78fcba96609753e4bae26b0ba0186893de4a63cd5236e012c7c90e208'], + }), + ('Test::Requires', '0.11', { + 'source_tmpl': 'Test-Requires-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TOKUHIROM'], + 'checksums': ['4b88de549597eecddf7c3c38a4d0204a16f59ad804577b671896ac04e24e040f'], + }), + ('File::Copy::Recursive', '0.45', { + 'source_tmpl': 'File-Copy-Recursive-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DM/DMUEY'], + 'checksums': ['d3971cf78a8345e38042b208bb7b39cb695080386af629f4a04ffd6549df1157'], + }), + ('Test::File::ShareDir::Dist', '1.001002', { + 'source_tmpl': 'Test-File-ShareDir-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KE/KENTNL'], + 'checksums': ['b33647cbb4b2f2fcfbde4f8bb4383d0ac95c2f89c4c5770eb691f1643a337aad'], + }), + ('CPAN::Meta::Check', '0.017', { + 'source_tmpl': 'CPAN-Meta-Check-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + 'checksums': ['0454ab93f12780b1d579df15b5f939e09702e954be82028fadd40e8bc9b0f091'], + }), + ('Sub::Exporter::Progressive', '0.001013', { + 'source_tmpl': 'Sub-Exporter-Progressive-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/F/FR/FREW'], + 'checksums': ['d535b7954d64da1ac1305b1fadf98202769e3599376854b2ced90c382beac056'], + }), + ('Module::Runtime', '0.016', { + 'source_tmpl': 'Module-Runtime-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/Z/ZE/ZEFRAM'], + 'checksums': ['68302ec646833547d410be28e09676db75006f4aa58a11f3bdb44ffe99f0f024'], + }), + ('Module::Implementation', '0.09', { + 'source_tmpl': 'Module-Implementation-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['c15f1a12f0c2130c9efff3c2e1afe5887b08ccd033bd132186d1e7d5087fd66d'], + }), + ('B::Hooks::EndOfScope', '0.26', { + 'source_tmpl': 'B-Hooks-EndOfScope-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['39df2f8c007a754672075f95b90797baebe97ada6d944b197a6352709cb30671'], + }), + ('Package::Stash', '0.40', { + 'source_tmpl': 'Package-Stash-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['5a9722c6d9cb29ee133e5f7b08a5362762a0b5633ff5170642a5b0686e95e066'], + }), + ('namespace::clean', '0.27', { + 'source_tmpl': 'namespace-clean-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RI/RIBASUSHI'], + 'checksums': ['8a10a83c3e183dc78f9e7b7aa4d09b47c11fb4e7d3a33b9a12912fd22e31af9d'], + }), + ('Sub::Identify', '0.14', { + 'source_tmpl': 'Sub-Identify-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RG/RGARCIA'], + 'checksums': ['068d272086514dd1e842b6a40b1bedbafee63900e5b08890ef6700039defad6f'], + }), + ('namespace::autoclean', '0.29', { + 'source_tmpl': 'namespace-autoclean-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['45ebd8e64a54a86f88d8e01ae55212967c8aa8fed57e814085def7608ac65804'], + }), + ('Eval::Closure', '0.14', { + 'source_tmpl': 'Eval-Closure-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DO/DOY'], + 'checksums': ['ea0944f2f5ec98d895bef6d503e6e4a376fea6383a6bc64c7670d46ff2218cad'], + }), + ('Exporter::Tiny', '1.006002', { + 'source_tmpl': 'Exporter-Tiny-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TOBYINK'], + 'checksums': ['6f295e2cbffb1dbc15bdb9dadc341671c1e0cd2bdf2d312b17526273c322638d'], + }), + ('Type::Tiny', '2.004000', { + 'source_tmpl': 'Type-Tiny-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TOBYINK'], + 'checksums': ['697e7f775edfc85f4cf07792d04fd19b09c25285f98f5938e8efc4f74507a128'], + }), + ('Class::Data::Inheritable', '0.09', { + 'source_tmpl': 'Class-Data-Inheritable-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSHERER'], + 'checksums': ['44088d6e90712e187b8a5b050ca5b1c70efe2baa32ae123e9bd8f59f29f06e4d'], + }), + ('Devel::StackTrace', '2.04', { + 'source_tmpl': 'Devel-StackTrace-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['cd3c03ed547d3d42c61fa5814c98296139392e7971c092e09a431f2c9f5d6855'], + }), + ('Exception::Class', '1.45', { + 'source_tmpl': 'Exception-Class-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['5482a77ef027ca1f9f39e1f48c558356e954936fc8fbbdee6c811c512701b249'], + }), + ('Role::Tiny', '2.002004', { + 'source_tmpl': 'Role-Tiny-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + 'checksums': ['d7bdee9e138a4f83aa52d0a981625644bda87ff16642dfa845dcb44d9a242b45'], + }), + ('MRO::Compat', '0.15', { + 'source_tmpl': 'MRO-Compat-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + 'checksums': ['0d4535f88e43babd84ab604866215fc4d04398bd4db7b21852d4a31b1c15ef61'], + }), + ('Sub::Quote', '2.006008', { + 'source_tmpl': 'Sub-Quote-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + 'checksums': ['94bebd500af55762e83ea2f2bc594d87af828072370c7110c60c238a800d15b2'], + }), + ('Specio', '0.48', { + 'source_tmpl': 'Specio-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['0c85793580f1274ef08173079131d101f77b22accea7afa8255202f0811682b2'], + }), + ('Test::Without::Module', '0.21', { + 'source_tmpl': 'Test-Without-Module-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CO/CORION'], + 'checksums': ['3cdeafadac4853ebeafe689346d555da5dfa3cfa9d4c84e3e5e7bfee50beec46'], + }), + ('Params::ValidationCompiler', '0.31', { + 'source_tmpl': 'Params-ValidationCompiler-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['7b6497173f1b6adb29f5d51d8cf9ec36d2f1219412b4b2410e9d77a901e84a6d'], + }), + ('DateTime::Locale', '1.38', { + 'source_tmpl': 'DateTime-Locale-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['dd7f6d358279d1df0ea7d78b9127690435246cdf46867500e9888016f9d4c867'], + }), + ('Class::Singleton', '1.6', { + 'source_tmpl': 'Class-Singleton-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHAY'], + 'checksums': ['27ba13f0d9512929166bbd8c9ef95d90d630fc80f0c9a1b7458891055e9282a4'], + }), + ('DateTime::TimeZone', '2.60', { + 'source_tmpl': 'DateTime-TimeZone-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['f0460d379323905b579bed44e141237a337dc25dd26b6ab0c60ac2b80629323d'], + }), + ('Module::Build', '0.4234', { + 'source_tmpl': 'Module-Build-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + 'checksums': ['66aeac6127418be5e471ead3744648c766bd01482825c5b66652675f2bc86a8f'], + }), + ('Params::Validate', '1.31', { + 'source_tmpl': 'Params-Validate-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['1bf2518ef2c4869f91590e219f545c8ef12ed53cf313e0eb5704adf7f1b2961e'], + }), + ('List::MoreUtils::XS', '0.430', { + 'source_tmpl': 'List-MoreUtils-XS-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + 'checksums': ['e8ce46d57c179eecd8758293e9400ff300aaf20fefe0a9d15b9fe2302b9cb242'], + }), + ('List::MoreUtils', '0.430', { + 'source_tmpl': 'List-MoreUtils-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + 'checksums': ['63b1f7842cd42d9b538d1e34e0330de5ff1559e4c2737342506418276f646527'], + }), + ('DateTime', '1.59', { + 'source_tmpl': 'DateTime-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['de3e9a63ce15470b4db4adad4ba6ac8ec297d88c0c6c6b354b081883b0a67695'], + }), + ('Number::Compare', '0.03', { + 'source_tmpl': 'Number-Compare-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RC/RCLAMP'], + 'checksums': ['83293737e803b43112830443fb5208ec5208a2e6ea512ed54ef8e4dd2b880827'], + }), + ('File::Find::Rule', '0.34', { + 'source_tmpl': 'File-Find-Rule-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RC/RCLAMP'], + 'checksums': ['7e6f16cc33eb1f29ff25bee51d513f4b8a84947bbfa18edb2d3cc40a2d64cafe'], + }), + ('Params::Util', '1.102', { + 'source_tmpl': 'Params-Util-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + 'checksums': ['499bb1b482db24fda277a51525596ad092c2bd51dd508fa8fec2e9f849097402'], + }), + ('File::Find::Rule::Perl', '1.16', { + 'source_tmpl': 'File-Find-Rule-Perl-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['ae1886050d9ca21223c073e2870abdc80dc30e3f55289a11c37da3820a8321ff'], + }), + ('Readonly', '2.05', { + 'source_tmpl': 'Readonly-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SA/SANKO'], + 'checksums': ['4b23542491af010d44a5c7c861244738acc74ababae6b8838d354dfb19462b5e'], + }), + ('Git', '0.42', { + 'source_tmpl': 'Git-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MS/MSOUTH'], + 'checksums': ['9469a9f398f3a2bf2b0500566ee41d3ff6fae460412a137185767a1cc4783a6d'], + }), + ('File::Slurp::Tiny', '0.004', { + 'source_tmpl': 'File-Slurp-Tiny-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + 'checksums': ['452995beeabf0e923e65fdc627a725dbb12c9e10c00d8018c16d10ba62757f1e'], + }), + ('Tree::DAG_Node', '1.32', { + 'source_tmpl': 'Tree-DAG_Node-%(version)s.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + 'checksums': ['22d9de3d6e6f4afd89e6d825c664f9482878bd49e29cb81342a707af40542d3d'], + }), + ('Template', '3.101', { + 'source_tmpl': 'Template-Toolkit-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AB/ABW'], + 'checksums': ['d2a32dd6c21e4b37c6a93df8087ca9e880cfae613a3e5efaea307b0bdcaedb58'], + }), + ('DBI', '1.643', { + 'source_tmpl': 'DBI-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TI/TIMB'], + 'checksums': ['8a2b993db560a2c373c174ee976a51027dd780ec766ae17620c20393d2e836fa'], + }), + ('DBD::SQLite', '1.72', { + 'source_tmpl': 'DBD-SQLite-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IS/ISHIGAKI'], + 'checksums': ['5ca41e61eb52b52bd862a3088b912a75fe70910ac789b9a9983e0a449e94f551'], + }), + ('Math::Bezier', '0.01', { + 'source_tmpl': 'Math-Bezier-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AB/ABW'], + 'checksums': ['11a815fc45fdf0efabb1822ab77faad8b9eea162572c5f0940c8ed7d56e6b8b8'], + }), + ('Archive::Extract', '0.88', { + 'source_tmpl': 'Archive-Extract-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + 'checksums': ['cffcf135cd0622287d3b02154f7d6716495449fcaed03966621948e25ea5f742'], + }), + ('DBIx::Simple', '1.37', { + 'source_tmpl': 'DBIx-Simple-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JU/JUERD'], + 'checksums': ['46d311aa2ce08907401c56119658426dbb044c5a40de73d9a7b79bf50390cae3'], + }), + ('Shell', '0.73', { + 'source_tmpl': 'Shell-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/F/FE/FERREIRA'], + 'checksums': ['f7dbebf65261ed0e5abd0f57052b64d665a1a830bab4c8bbc220f235bd39caf5'], + }), + ('Test::Simple', '1.302195', { + 'source_tmpl': 'Test-Simple-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + 'checksums': ['b390bb23592e0b946c95adbb3c30b11bc634a286b2847be611ad929c57e39a6c'], + }), + ('Set::Scalar', '1.29', { + 'source_tmpl': 'Set-Scalar-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAVIDO'], + 'checksums': ['a3dc1526f3dde72d3c64ea00007b86ce608cdcd93567cf6e6e42dc10fdc4511d'], + }), + ('IO::Stringy', '2.113', { + 'source_tmpl': 'IO-Stringy-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CA/CAPOEIRAB'], + 'checksums': ['51220fcaf9f66a639b69d251d7b0757bf4202f4f9debd45bdd341a6aca62fe4e'], + }), + ('Encode::Locale', '1.05', { + 'source_tmpl': 'Encode-Locale-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + 'checksums': ['176fa02771f542a4efb1dbc2a4c928e8f4391bf4078473bd6040d8f11adb0ec1'], + }), + ('XML::SAX::Base', '1.09', { + 'source_tmpl': 'XML-SAX-Base-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GR/GRANTM'], + 'checksums': ['66cb355ba4ef47c10ca738bd35999723644386ac853abbeb5132841f5e8a2ad0'], + }), + ('XML::NamespaceSupport', '1.12', { + 'source_tmpl': 'XML-NamespaceSupport-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PERIGRIN'], + 'checksums': ['47e995859f8dd0413aa3f22d350c4a62da652e854267aa0586ae544ae2bae5ef'], + }), + ('XML::SAX', '1.02', { + 'source_tmpl': 'XML-SAX-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GR/GRANTM'], + 'checksums': ['4506c387043aa6a77b455f00f57409f3720aa7e553495ab2535263b4ed1ea12a'], + }), + ('Test::LeakTrace', '0.17', { + 'source_tmpl': 'Test-LeakTrace-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEEJO'], + 'checksums': ['777d64d2938f5ea586300eef97ef03eacb43d4c1853c9c3b1091eb3311467970'], + }), + ('Sub::Uplevel', '0.2800', { + 'source_tmpl': 'Sub-Uplevel-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + 'checksums': ['b4f3f63b80f680a421332d8851ddbe5a8e72fcaa74d5d1d98f3c8cc4a3ece293'], + }), + ('Test::Exception', '0.43', { + 'source_tmpl': 'Test-Exception-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + 'checksums': ['156b13f07764f766d8b45a43728f2439af81a3512625438deab783b7883eb533'], + }), + ('Text::Aligner', '0.16', { + 'source_tmpl': 'Text-Aligner-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + 'checksums': ['5c857dbce586f57fa3d7c4ebd320023ab3b2963b2049428ae01bd3bc4f215725'], + }), + ('Text::Table', '1.135', { + 'source_tmpl': 'Text-Table-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + 'checksums': ['fca3c16e83127f7c44dde3d3f7e3c73ea50d109a1054445de8082fea794ca5d2'], + }), + ('MIME::Types', '2.24', { + 'source_tmpl': 'MIME-Types-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MARKOV'], + 'checksums': ['629e361f22b220be50c2da7354e23c0451757709a03c25a22f3160edb94cb65f'], + }), + ('Cwd::Guard', '0.05', { + 'source_tmpl': 'Cwd-Guard-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KA/KAZEBURO'], + 'checksums': ['7afc7ca2b9502e440241938ad97a3e7ebd550180ebd6142e1db394186b268e77'], + }), + ('Capture::Tiny', '0.48', { + 'source_tmpl': 'Capture-Tiny-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + 'checksums': ['6c23113e87bad393308c90a207013e505f659274736638d8c79bac9c67cc3e19'], + }), + ('File::Copy::Recursive::Reduced', '0.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'], + }), + ('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'], + }), + ('Template::Plugin::Number::Format', '1.06', { + 'source_tmpl': 'Template-Plugin-Number-Format-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DARREN'], + 'checksums': ['0865836a1bcbc34d4a0ee34b5ccc14d7b511f1fd300bf390f002dac349539843'], + }), + ('HTML::Tagset', '3.20', { + 'source_tmpl': 'HTML-Tagset-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PETDANCE'], + 'checksums': ['adb17dac9e36cd011f5243881c9739417fd102fce760f8de4e9be4c7131108e2'], + }), + ('URI', '5.19', { + 'source_tmpl': 'URI-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SI/SIMBABQUE'], + 'checksums': ['8fed5f819905c8a8e18f4447034322d042c3536b43c13ac1f09ba92e1a50a394'], + }), + ('B::COW', '0.007', { + 'source_tmpl': 'B-COW-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AT/ATOOMIC'], + 'checksums': ['1290daf227e8b09889a31cf182e29106f1cf9f1a4e9bf7752f9de92ed1158b44'], + }), + ('Clone', '0.46', { + 'source_tmpl': 'Clone-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GARU'], + 'checksums': ['aadeed5e4c8bd6bbdf68c0dd0066cb513e16ab9e5b4382dc4a0aafd55890697b'], + }), + ('IO::HTML', '1.004', { + 'source_tmpl': 'IO-HTML-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CJ/CJM'], + 'checksums': ['c87b2df59463bbf2c39596773dfb5c03bde0f7e1051af339f963f58c1cbd8bf5'], + }), + ('LWP::MediaTypes', '6.04', { + 'source_tmpl': 'LWP-MediaTypes-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/O/OA/OALDERS'], + 'checksums': ['8f1bca12dab16a1c2a7c03a49c5e58cce41a6fec9519f0aadfba8dad997919d9'], + }), + ('HTTP::Message', '6.44', { + 'source_tmpl': 'HTTP-Message-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/O/OA/OALDERS'], + 'checksums': ['398b647bf45aa972f432ec0111f6617742ba32fc773c6612d21f64ab4eacbca1'], + }), + ('HTML::Parser', '3.81', { + 'source_tmpl': 'HTML-Parser-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/O/OA/OALDERS'], + 'checksums': ['c0910a5c8f92f8817edd06ccfd224ba1c2ebe8c10f551f032587a1fc83d62ff2'], + }), + ('Date::Handler', '1.2', { + 'source_tmpl': 'Date-Handler-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BB/BBEAUSEJ'], + 'checksums': ['c36fd2b68d48c2e17417bf2873c78820f3ae02460fdf5976b8eeab887d59e16c'], + }), + ('XML::Parser', '2.46', { + 'source_tmpl': 'XML-Parser-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR'], + 'checksums': ['d331332491c51cccfb4cb94ffc44f9cd73378e618498d4a37df9e043661c515d'], + }), + ('Data::Grove', '0.08', { + 'source_tmpl': 'libxml-perl-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KM/KMACLEOD'], + 'checksums': ['4571059b7b5d48b7ce52b01389e95d798bf5cf2020523c153ff27b498153c9cb'], + }), + ('Class::ISA', '0.36', { + 'source_tmpl': 'Class-ISA-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SM/SMUELLER'], + 'checksums': ['8816f34e9a38e849a10df756030dccf9fe061a196c11ac3faafd7113c929b964'], + }), + ('DBIx::ContextualFetch', '1.03', { + 'source_tmpl': 'DBIx-ContextualFetch-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TM/TMTM'], + 'checksums': ['85e2f805bfc81cd738c294316b27a515397036f397a0ff1c6c8d754c38530306'], + }), + ('Ima::DBI', '0.35', { + 'source_tmpl': 'Ima-DBI-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PERRIN'], + 'checksums': ['8b481ceedbf0ae4a83effb80581550008bfdd3885ef01145e3733c7097c00a08'], + }), + ('Tie::IxHash', '1.23', { + 'source_tmpl': 'Tie-IxHash-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CH/CHORNY'], + 'checksums': ['fabb0b8c97e67c9b34b6cc18ed66f6c5e01c55b257dcf007555e0b027d4caf56'], + }), + ('Parse::RecDescent', '1.967015', { + 'source_tmpl': 'Parse-RecDescent-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JT/JTBRAUN'], + 'checksums': ['1943336a4cb54f1788a733f0827c0c55db4310d5eae15e542639c9dd85656e37'], + }), + ('GO', '0.04', { + 'runtest': False, # Problem with indirect dependency DBD::Pg + 'source_tmpl': 'go-db-perl-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SJ/SJCARBON'], + 'checksums': ['8eb73d591ad767e7cf26def40cffd84833875f1ad51e456960b9ed73dc23641b'], + }), + ('Class::Trigger', '0.15', { + 'source_tmpl': 'Class-Trigger-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA'], + 'checksums': ['b7a878d44dea67d64df2ca18020d9d868a95596debd16f1a264874209332b07f'], + }), + ('Class::Accessor', '0.51', { + 'source_tmpl': 'Class-Accessor-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KA/KASEI'], + 'checksums': ['bf12a3e5de5a2c6e8a447b364f4f5a050bf74624c56e315022ae7992ff2f411c'], + }), + ('UNIVERSAL::moniker', '0.08', { + 'source_tmpl': 'UNIVERSAL-moniker-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KA/KASEI'], + 'checksums': ['94ce27a546cd57cb52e080a8f2533a7cc2350028388582485bd1039a37871f9c'], + }), + ('Class::DBI', 'v3.0.17', { + 'source_tmpl': 'Class-DBI-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TM/TMTM'], + 'checksums': ['541354fe361c56850cb11261f6ca089a14573fa764792447444ff736ae626206'], + }), + ('Class::DBI::SQLite', '0.11', { + 'source_tmpl': 'Class-DBI-SQLite-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA'], + 'checksums': ['c4661b00afb7e53c97ac36e13f34dde43c1a93540a2f4ff97e6182b0c731e4e7'], + }), + ('File::Slurper', '0.014', { + 'source_tmpl': 'File-Slurper-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + 'checksums': ['d5a36487339888c3cd758e648160ee1d70eb4153cacbaff57846dbcefb344b0c'], + }), + ('Pod::POM', '2.01', { + 'source_tmpl': 'Pod-POM-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB'], + 'checksums': ['1b50fba9bbdde3ead192beeba0eaddd0c614e3afb1743fa6fff805f57c56f7f4'], + }), + ('Math::Round', '0.07', { + 'source_tmpl': 'Math-Round-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GR/GROMMEL'], + 'checksums': ['73a7329a86e54a5c29a440382e5803095b58f33129e61a1df0093b4824de9327'], + }), + ('Algorithm::Diff', '1.201', { + 'source_tmpl': 'Algorithm-Diff-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['0022da5982645d9ef0207f3eb9ef63e70e9713ed2340ed7b3850779b0d842a7d'], + }), + ('Text::Diff', '1.45', { + 'source_tmpl': 'Text-Diff-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB'], + 'checksums': ['e8baa07b1b3f53e00af3636898bbf73aec9a0ff38f94536ede1dbe96ef086f04'], + }), + ('Log::Message', '0.08', { + 'source_tmpl': 'Log-Message-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + 'checksums': ['bd697dd62aaf26d118e9f0a0813429deb1c544e4501559879b61fcbdfe99fe46'], + }), + ('Log::Message::Simple', '0.10', { + 'source_tmpl': 'Log-Message-Simple-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + 'checksums': ['aa12d1a4c0ac260b94d448fa01feba242a8a85cb6cbfdc66432e3b5b468add96'], + }), + ('Net::SSLeay', '1.92', { + 'preconfigopts': "export OPENSSL_PREFIX=$EBROOTOPENSSL && ", + 'source_tmpl': 'Net-SSLeay-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CH/CHRISN'], + 'checksums': ['47c2f2b300f2e7162d71d699f633dd6a35b0625a00cbda8c50ac01144a9396a9'], + }), + ('IO::Socket::SSL', '2.083', { + 'source_tmpl': 'IO-Socket-SSL-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SU/SULLR'], + 'checksums': ['904ef28765440a97d8a9a0df597f8c3d7f3cb0a053d1b082c10bed03bc802069'], + }), + ('Fennec::Lite', '0.004', { + 'source_tmpl': 'Fennec-Lite-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + 'checksums': ['dce28e3932762c2ff92aa52d90405c06e898e81cb7b164ccae8966ae77f1dcab'], + }), + ('Meta::Builder', '0.004', { + 'source_tmpl': 'Meta-Builder-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + 'checksums': ['acb499aa7206eb9db21eb85357a74521bfe3bdae4a6416d50a7c75b939cf56fe'], + }), + ('Exporter::Declare', '0.114', { + 'source_tmpl': 'Exporter-Declare-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + 'checksums': ['4bd70d6ca76f6f6ba7e4c618d4ac93b8593a58f1233ccbe18b10f5f204f1d4e4'], + }), + ('Mouse', 'v2.5.10', { + 'source_tmpl': 'Mouse-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SK/SKAJI'], + 'checksums': ['ce8dc23946153a467ff09765167ee2590f5c502120f48a2d9441733f39aa32ee'], + }), + ('Test::Version', '2.09', { + 'source_tmpl': 'Test-Version-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PL/PLICEASE'], + 'checksums': ['9ce1dd2897a5f30e1b7f8966ec66f57d8d8f280f605f28c7ca221fa79aca38e0'], + }), + ('Class::Method::Modifiers', '2.15', { + 'source_tmpl': 'Class-Method-Modifiers-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['65cd85bfe475d066e9186f7a8cc636070985b30b0ebb1cde8681cf062c2e15fc'], + }), + ('Moo', '2.005005', { + 'source_tmpl': 'Moo-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + 'checksums': ['fb5a2952649faed07373f220b78004a9c6aba387739133740c1770e9b1f4b108'], + }), + ('Data::Dumper::Concise', '2.023', { + 'source_tmpl': 'Data-Dumper-Concise-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['a6c22f113caf31137590def1b7028a7e718eface3228272d0672c25e035d5853'], + }), + ('DBIx::Admin::CreateTable', '2.11', { + 'source_tmpl': 'DBIx-Admin-CreateTable-%(version)s.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + 'checksums': ['07b1427fbc15455657ca57217749004162a50c04abb243022a5b479e4b2a5912'], + }), + ('Config::Tiny', '2.29', { + 'source_tmpl': 'Config-Tiny-%(version)s.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + 'checksums': ['3de79b0ea03a8d6a93e9d9128fe845fb556222b14699a4f6f0d5ca057ae3333b'], + }), + ('File::Slurp', '9999.32', { + 'source_tmpl': 'File-Slurp-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CA/CAPOEIRAB'], + 'checksums': ['4c3c21992a9d42be3a79dd74a3c83d27d38057269d65509a2f555ea0fb2bc5b0'], + }), + ('DBIx::Admin::DSNManager', '2.02', { + 'source_tmpl': 'DBIx-Admin-DSNManager-%(version)s.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + 'checksums': ['c25511f42328ccb606a0cd78413a74181c87fb37a382d38aa3fad106b540adcb'], + }), + ('Lingua::EN::PluralToSingular', '0.21', { + 'source_tmpl': 'Lingua-EN-PluralToSingular-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BK/BKB'], + 'checksums': ['f8a8b7de28c25c96190d7f48c90b5ad9b9bf517f3835c77641f0e8fa546c0d1d'], + }), + ('Test::Warn', '0.37', { + 'source_tmpl': 'Test-Warn-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BIGJ'], + 'checksums': ['98ca32e7f2f5ea89b8bfb9a0609977f3d153e242e2e51705126cb954f1a06b57'], + }), + ('Test::Differences', '0.69', { + 'source_tmpl': 'Test-Differences-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DC/DCANTRELL'], + 'checksums': ['18f644fdd4a1fef93ef3f7f67df8e95b593d811899f34bcbbaba4d717222f58f'], + }), + ('Test::Most', '0.38', { + 'source_tmpl': 'Test-Most-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/O/OV/OVID'], + 'checksums': ['089eb894f7bace4c37c6334e0e290eb20338ee10223af0c82cbe7281c78382df'], + }), + ('Const::Fast', '0.014', { + 'source_tmpl': 'Const-Fast-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + 'checksums': ['f805953a08c57846a16a4d85d7b766398afaf7c36c1465fcb1dea09e5fa394db'], + }), + ('Ref::Util', '0.204', { + 'source_tmpl': 'Ref-Util-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AR/ARC'], + 'checksums': ['415fa73dbacf44f3d5d79c14888cc994562720ab468e6f71f91cd1f769f105e1'], + }), + ('Class::XSAccessor', '1.19', { + 'source_tmpl': 'Class-XSAccessor-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SM/SMUELLER'], + 'checksums': ['99c56b395f1239af19901f2feeb125d9ecb4e351a0d80daa9529211a4700a6f2'], + }), + ('Hash::Objectify', '0.008', { + 'source_tmpl': 'Hash-Objectify-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + 'checksums': ['236d5829cdebf3ba648d34e1295cd9099a20506d8d0284668e617e0058cebeed'], + }), + ('Const::Exporter', '1.2.2', { + 'source_tmpl': 'Const-Exporter-v%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RR/RRWO'], + 'checksums': ['ae7560499fa3b8d211e7b8b3de926fb56bed3c28b1e7a5a7a5fad12f20c132ed'], + }), + ('HTML::Entities::Interpolate', '1.10', { + 'source_tmpl': 'HTML-Entities-Interpolate-%(version)s.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + 'checksums': ['f15a9df92c282419f7010964aca1ada844ddfae7afc735cd2ba1bb20883e955c'], + }), + ('List::SomeUtils', '0.59', { + 'source_tmpl': 'List-SomeUtils-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['fab30372e4c67bf5a46062da38d1d0c8756279feada866eb439fa29571a2dc7b'], + }), + ('List::UtilsBy', '0.12', { + 'source_tmpl': 'List-UtilsBy-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PEVANS'], + 'checksums': ['fff1281fd469fe982b1a58044becfd970f313bff3a26e1c7b2b3f4c0a5ed71e0'], + }), + ('List::AllUtils', '0.19', { + 'source_tmpl': 'List-AllUtils-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['30a8146ab21a7787b8c56d5829cf9a7f2b15276d3b3fca07336ac38d3002ffbc'], + }), + ('Unicode::EastAsianWidth', '12.0', { + 'source_tmpl': 'Unicode-EastAsianWidth-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AU/AUDREYT'], + 'checksums': ['2a5bfd926c4fe5f77e6137da2c31ac2545282ae5fec6e9af0fdd403555a90ff4'], + }), + ('String::TtyLength', '0.03', { + 'source_tmpl': 'String-TtyLength-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB'], + 'checksums': ['4fedaf72028511d80eb6afba523993e9aaa245d7af558345d5d4ed46e2e82ce1'], + }), + ('Text::Table::Manifold', '1.03', { + 'source_tmpl': 'Text-Table-Manifold-%(version)s.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + 'checksums': ['e680713169557b0768952fa6932f25576a61dccfb96bd9036dcf6fcefb35e09e'], + }), + ('DBIx::Admin::TableInfo', '3.04', { + 'source_tmpl': 'DBIx-Admin-TableInfo-%(version)s.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + 'checksums': ['b9625992683b97378bea0947773f50e3c9f81974048b84f4c3422cae7e6082f4'], + }), + ('Net::HTTP', '6.22', { + 'runtest': False, # Fragile tests + 'source_tmpl': 'Net-HTTP-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/O/OA/OALDERS'], + 'checksums': ['62faf9a5b84235443fe18f780e69cecf057dea3de271d7d8a0ba72724458a1a2'], + }), + ('Clone::Choose', '0.010', { + 'source_tmpl': 'Clone-Choose-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HE/HERMES'], + 'checksums': ['5623481f58cee8edb96cd202aad0df5622d427e5f748b253851dfd62e5123632'], + }), + ('Hash::Merge', '0.302', { + 'source_tmpl': 'Hash-Merge-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HE/HERMES'], + 'checksums': ['ae0522f76539608b61dde14670e79677e0f391036832f70a21f31adde2538644'], + }), + ('SQL::Abstract', '2.000001', { + 'source_tmpl': 'SQL-Abstract-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MS/MSTROUT'], + 'checksums': ['35a642662c349420d44be6e0ef7d8765ea743eb12ad14399aa3a232bb94e6e9a'], + }), + ('HTML::Form', '6.11', { + 'source_tmpl': 'HTML-Form-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SI/SIMBABQUE'], + 'checksums': ['43bfaa7087393487d2d51261a1aa7f6f81a97b1d8fef7a48fcf6ef32b16d6454'], + }), + ('IPC::Run', '20220807.0', { + 'source_tmpl': 'IPC-Run-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR'], + 'checksums': ['277d781dbbc98af18e979c7ef36f222513d7361742c52507c3348b265f6f5e69'], + }), + ('File::Remove', '1.61', { + 'source_tmpl': 'File-Remove-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + 'checksums': ['fd857f585908fc503461b9e48b3c8594e6535766bc14beb17c90ba58d5dc4975'], + }), + ('YAML::Tiny', '1.74', { + 'source_tmpl': 'YAML-Tiny-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['7b38ca9f5d3ce24230a6b8bdc1f47f5b2db348e7f7f9666c26f5955636e33d6c'], + }), + ('Module::Install', '1.21', { + 'source_tmpl': 'Module-Install-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['fbf91007f30565f3920e106055fd0d4287981d5e7dad8b35323ce4b733f15a7b'], + }), + ('Test::ClassAPI', '1.07', { + 'source_tmpl': 'Test-ClassAPI-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['30e9dbfc5e0cc2ee14eae8f3465a908a710daecbd0a3ebdb2888fc4504fa18aa'], + }), + ('HTTP::Tiny', '0.082', { + 'source_tmpl': 'HTTP-Tiny-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + 'checksums': ['54e9e4a559a92cbb90e3f19c8a88ff067ec2f68fbe39bbb694ee70828cd5f4b8'], + }), + ('Sub::Install', '0.929', { + 'source_tmpl': 'Sub-Install-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['80b1e281d8cd3b2b31dac711f5c8a1657a87cd80bbe69af3924bcbeb4e5db077'], + }), + ('Package::DeprecationManager', '0.18', { + 'source_tmpl': 'Package-DeprecationManager-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['b68d3f0ced55b7615fddbb6029b89f92a34fe0dd8c6fd6bceffc157d56834fe8'], + }), + ('Digest::SHA1', '2.13', { + 'source_tmpl': 'Digest-SHA1-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + 'checksums': ['68c1dac2187421f0eb7abf71452a06f190181b8fc4b28ededf5b90296fb943cc'], + }), + ('Date::Language', '2.33', { + 'source_tmpl': 'TimeDate-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AT/ATOOMIC'], + 'checksums': ['c0b69c4b039de6f501b0d9f13ec58c86b040c1f7e9b27ef249651c143d605eb2'], + }), + ('version', '0.9929', { + 'source_tmpl': 'version-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + 'checksums': ['5056ed481ada4e0fa497096d4091b18658f214d862e1ed164edf10bc6b39c8b0'], + }), + ('XML::Bare', '0.53', { + 'source_tmpl': 'XML-Bare-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CO/CODECHILD'], + 'checksums': ['865e198e98d904be1683ef5a53a4948f02dabdacde59fc554a082ffbcc5baefd'], + }), + ('Dist::CheckConflicts', '0.11', { + 'source_tmpl': 'Dist-CheckConflicts-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DO/DOY'], + 'checksums': ['ea844b9686c94d666d9d444321d764490b2cde2f985c4165b4c2c77665caedc4'], + }), + ('Sub::Name', '0.27', { + 'source_tmpl': 'Sub-Name-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['ecf36fba1c47ca93e1daa394968ed39c4186867459d9cd173c421e2b972043e8'], + }), + ('Time::Piece', '1.3401', { + 'source_tmpl': 'Time-Piece-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ES/ESAYM'], + 'checksums': ['4b55b7bb0eab45cf239a54dfead277dfa06121a43e63b3fce0853aecfdb04c27'], + }), + ('Digest::HMAC', '1.04', { + 'source_tmpl': 'Digest-HMAC-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AR/ARODLAND'], + 'checksums': ['d6bc8156aa275c44d794b7c18f44cdac4a58140245c959e6b19b2c3838b08ed4'], + }), + ('HTTP::Negotiate', '6.01', { + 'source_tmpl': 'HTTP-Negotiate-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + 'checksums': ['1c729c1ea63100e878405cda7d66f9adfd3ed4f1d6cacaca0ee9152df728e016'], + }), + ('Email::Date::Format', '1.008', { + 'source_tmpl': 'Email-Date-Format-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['432b7c83ff88749af128003f5257c573aec1a463418db90ed22843cbbc258b4f'], + }), + ('MIME::Lite', '3.033', { + 'source_tmpl': 'MIME-Lite-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['78a279f1d2e242551c347ef97a13fc675766602cb84c2a80c569400f4f368bab'], + }), + ('Crypt::Rijndael', '1.16', { + 'source_tmpl': 'Crypt-Rijndael-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + 'checksums': ['6540085e3804b82a6f0752c1122cf78cadd221990136dd6fd4c097d056c84d40'], + }), + ('B::Lint', '1.20', { + 'runtest': False, # One failing subtest + 'source_tmpl': 'B-Lint-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['dc49408964fd8b7963859c92e013f0b9f92f74be5a7c2a78e3996279827c10b3'], + }), + ('Canary::Stability', '2013', { + 'source_tmpl': 'Canary-Stability-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN'], + 'checksums': ['a5c91c62cf95fcb868f60eab5c832908f6905221013fea2bce3ff57046d7b6ea'], + }), + ('AnyEvent', '7.17', { + 'source_tmpl': 'AnyEvent-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN'], + 'checksums': ['50beea689c098fe4aaeb83806c40b9fe7f946d5769acf99f849f099091a4b985'], + }), + ('Object::Accessor', '0.48', { + 'source_tmpl': 'Object-Accessor-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + 'checksums': ['76cb824a27b6b4e560409fcf6fd5b3bfbbd38b72f1f3d37ed0b54bd9c0baeade'], + }), + ('Data::UUID', '1.226', { + 'source_tmpl': 'Data-UUID-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['093d57ffa0d411a94bafafae495697db26f5c9d0277198fe3f7cf2be22996453'], + }), + ('Test::Pod', '1.52', { + 'source_tmpl': 'Test-Pod-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['60a8dbcc60168bf1daa5cc2350236df9343e9878f4ab9830970a5dde6fe8e5fc'], + }), + ('AppConfig', '1.71', { + 'source_tmpl': 'AppConfig-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB'], + 'checksums': ['1177027025ecb09ee64d9f9f255615c04db5e14f7536c344af632032eb887b0f'], + }), + ('Net::SMTP::SSL', '1.04', { + 'source_tmpl': 'Net-SMTP-SSL-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['7b29c45add19d3d5084b751f7ba89a8e40479a446ce21cfd9cc741e558332a00'], + }), + ('XML::Tiny', '2.07', { + 'source_tmpl': 'XML-Tiny-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DC/DCANTRELL'], + 'checksums': ['ce39fcb53e0fe9f1cbcd86ddf152e1db48566266b70ec0769ef364eeabdd8941'], + }), + ('HTML::Tree', '5.07', { + 'source_tmpl': 'HTML-Tree-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KE/KENTNL'], + 'checksums': ['f0374db84731c204b86c1d5b90975fef0d30a86bd9def919343e554e31a9dbbf'], + }), + ('Devel::GlobalDestruction', '0.14', { + 'source_tmpl': 'Devel-GlobalDestruction-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + 'checksums': ['34b8a5f29991311468fe6913cadaba75fd5d2b0b3ee3bb41fe5b53efab9154ab'], + }), + ('WWW::RobotRules', '6.02', { + 'source_tmpl': 'WWW-RobotRules-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GAAS'], + 'checksums': ['46b502e7a288d559429891eeb5d979461dd3ecc6a5c491ead85d165b6e03a51e'], + }), + ('IO::Tty', '1.17', { + 'source_tmpl': 'IO-Tty-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR'], + 'checksums': ['a5f1a83020bc5b5dd6c1b570f48c7546e0a8f7fac10a068740b03925ad9e14e8'], + }), + ('Expect', '1.35', { + 'source_tmpl': 'Expect-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JA/JACOBY'], + 'checksums': ['09d92761421decd495853103379165a99efbf452c720f30277602cf23679fd06'], + }), + ('Term::UI', '0.50', { + 'source_tmpl': 'Term-UI-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + 'checksums': ['60bfdd6d4c158b88d370133fc65b20485a36a45b12d906000b81c78ca524163d'], + }), + ('Net::SNMP', 'v6.0.1', { + 'source_tmpl': 'Net-SNMP-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DT/DTOWN'], + 'checksums': ['14c37bc1cbb3f3cdc7d6c13e0f27a859f14cdcfd5ea54a0467a88bc259b0b741'], + }), + ('XML::Filter::BufferText', '1.01', { + 'source_tmpl': 'XML-Filter-BufferText-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RB/RBERJON'], + 'checksums': ['8fd2126d3beec554df852919f4739e689202cbba6a17506e9b66ea165841a75c'], + }), + ('XML::SAX::Writer', '0.57', { + 'source_tmpl': 'XML-SAX-Writer-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PERIGRIN'], + 'checksums': ['3d61d07ef43b0126f5b4de4f415a256fa859fa88dc4fdabaad70b7be7c682cf0'], + }), + ('Statistics::Descriptive', '3.0800', { + 'source_tmpl': 'Statistics-Descriptive-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + 'checksums': ['b04edeea26bfed435aa6029956798c281f7f52d4545f3f45b2ad44954e96f939'], + }), + ('Data::OptList', '0.114', { + 'source_tmpl': 'Data-OptList-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['9fd1093b917a21fb79ae1607db53d113b4e0ad8fe0ae776cb077a7e50044fdf3'], + }), + ('Class::Load', '0.25', { + 'source_tmpl': 'Class-Load-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['2a48fa779b5297e56156380e8b32637c6c58decb4f4a7f3c7350523e11275f8f'], + }), + ('HTTP::Daemon', '6.16', { + 'source_tmpl': 'HTTP-Daemon-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/O/OA/OALDERS'], + 'checksums': ['b38d092725e6fa4e0c4dc2a47e157070491bafa0dbe16c78a358e806aa7e173d'], + }), + ('Test::RequiresInternet', '0.05', { + 'source_tmpl': 'Test-RequiresInternet-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MALLEN'], + 'checksums': ['bba7b32a1cc0d58ce2ec20b200a7347c69631641e8cae8ff4567ad24ef1e833e'], + }), + ('HTTP::Cookies', '6.10', { + 'source_tmpl': 'HTTP-Cookies-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/O/OA/OALDERS'], + 'checksums': ['e36f36633c5ce6b5e4b876ffcf74787cc5efe0736dd7f487bdd73c14f0bd7007'], + }), + ('HTTP::CookieJar', '0.014', { + 'source_tmpl': 'HTTP-CookieJar-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + 'checksums': ['7094ea5c91f536d263b85e83ab4e9a963e11c4408ce08ecae553fa9c0cc47e73'], + }), + ('LWP::Simple', '6.70', { + 'source_tmpl': 'libwww-perl-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SI/SIMBABQUE'], + 'checksums': ['34f00d2344757b9c0b55ad35808d53e93d7d92f7a464ec837fe6a73c51fb5969'], + }), + ('Time::Piece::MySQL', '0.06', { + 'source_tmpl': 'Time-Piece-MySQL-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KA/KASEI'], + 'checksums': ['319601feec17fae344988a5ee91cfc6a0bcfe742af77dba254724c3268b2a60f'], + }), + ('Package::Stash::XS', '0.30', { + 'source_tmpl': 'Package-Stash-XS-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['26bad65c1959c57379b3e139dc776fbec5f702906617ef27cdc293ddf1239231'], + }), + ('Want', '0.29', { + 'source_tmpl': 'Want-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RO/ROBIN'], + 'checksums': ['b4e4740b8d4cb783591273c636bd68304892e28d89e88abf9273b1de17f552f7'], + }), + ('Set::Array', '0.30', { + 'source_tmpl': 'Set-Array-%(version)s.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RS/RSAVAGE'], + 'checksums': ['d9f024c8e3637feccdebcf6479b6754b6c92f1209f567feaf0c23818af31ee3c'], + }), + ('boolean', '0.46', { + 'source_tmpl': 'boolean-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IN/INGY'], + 'checksums': ['95c088085c3e83bf680fe6ce16d8264ec26310490f7d1680e416ea7a118f156a'], + }), + ('Test::NoWarnings', '1.06', { + 'source_tmpl': 'Test-NoWarnings-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + 'checksums': ['c2dc51143b7eb63231210e27df20d2c8393772e0a333547ec8b7a205ed62f737'], + }), + ('Crypt::DES', '2.07', { + 'source_tmpl': 'Crypt-DES-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DP/DPARIS'], + 'checksums': ['2db1ebb5837b4cb20051c0ee5b733b4453e3137df0a92306034c867621edd7e7'], + }), + ('XML::XPath', '1.48', { + 'source_tmpl': 'XML-XPath-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MANWAR'], + 'checksums': ['7bc75be36b239e5b2e700a9570d2b53b43093d467f2abe6a743f9ff9093790cd'], + }), + ('JSON', '4.10', { + 'source_tmpl': 'JSON-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IS/ISHIGAKI'], + 'checksums': ['df8b5143d9a7de99c47b55f1a170bd1f69f711935c186a6dc0ab56dd05758e35'], + }), + ('Sub::Exporter', '0.989', { + 'source_tmpl': 'Sub-Exporter-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['334896e0af5e0643fc3799cbbcf01f933d4ca6324cd644c0b6660e71cdbd01c9'], + }), + ('Class::Load::XS', '0.10', { + 'source_tmpl': 'Class-Load-XS-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['5bc22cf536ebfd2564c5bdaf42f0d8a4cee3d1930fc8b44b7d4a42038622add1'], + }), + ('Data::Types', '0.17', { + 'source_tmpl': 'Data-Types-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MANWAR'], + 'checksums': ['860751feb79b7dfc1af71c4b7fe920220ec6d31c4ab9402b8f178f7f4b8293c1'], + }), + ('Set::IntSpan::Fast', '1.15', { + 'source_tmpl': 'Set-IntSpan-Fast-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AN/ANDYA'], + 'checksums': ['cfb1768c24f55208e87405b17f537f0f303fa141891d0b22d509a941aa57e24e'], + }), + ('Text::Iconv', '1.7', { + 'source_tmpl': 'Text-Iconv-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MP/MPIOTR'], + 'checksums': ['5b80b7d5e709d34393bcba88971864a17b44a5bf0f9e4bcee383d029e7d2d5c3'], + }), + ('Text::Balanced', '2.06', { + 'source_tmpl': 'Text-Balanced-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHAY'], + 'checksums': ['773e0f0f21c0cb2cf664cee6ba28ff70259babcc892f9b650f9cbda00be092ad'], + }), + ('strictures', '2.000006', { + 'source_tmpl': 'strictures-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + 'checksums': ['09d57974a6d1b2380c802870fed471108f51170da81458e2751859f2714f8d57'], + }), + ('Switch', '2.17', { + 'source_tmpl': 'Switch-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CH/CHORNY'], + 'checksums': ['31354975140fe6235ac130a109496491ad33dd42f9c62189e23f49f75f936d75'], + }), + ('File::Which', '1.27', { + 'source_tmpl': 'File-Which-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PL/PLICEASE'], + 'checksums': ['3201f1a60e3f16484082e6045c896842261fc345de9fb2e620fd2a2c7af3a93a'], + }), + ('Error', '0.17029', { + 'source_tmpl': 'Error-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + 'checksums': ['1a23f7913032aed6d4b68321373a3899ca66590f4727391a091ec19c95bf7adc'], + }), + ('Mock::Quick', '1.111', { + 'source_tmpl': 'Mock-Quick-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/EX/EXODIST'], + 'checksums': ['ff786008bf8c022064ececd3b7ed89c76b35e8d1eac6cf472a9f51771c1c9f2c'], + }), + ('Text::CSV', '2.02', { + 'source_tmpl': 'Text-CSV-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IS/ISHIGAKI'], + 'checksums': ['84120de3e10489ea8fbbb96411a340c32cafbe5cdff7dd9576b207081baa9d24'], + }), + ('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'], + }), + ('File::CheckTree', '4.42', { + 'source_tmpl': 'File-CheckTree-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['66fb417f8ff8a5e5b7ea25606156e70e204861c59fa8c3831925b4dd3f155f8a'], + }), + ('Math::VecStat', '0.08', { + 'source_tmpl': 'Math-VecStat-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AS/ASPINELLI'], + 'checksums': ['409a8e0e4b1025c8e80f628f65a9778aa77ab285161406ca4a6c097b13656d0d'], + }), + ('Pod::Parser', '1.66', { + 'configopts': 'INSTALLDIRS=site', # Force it to correctly use site_perl + 'source_tmpl': 'Pod-Parser-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MAREKR'], + 'checksums': ['22928a7bffe61b452c05bbbb8f5216d4b9cf9fe2a849b776c25500d24d20df7c'], + }), + ('Pod::LaTeX', '0.61', { + 'source_tmpl': 'Pod-LaTeX-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TJ/TJENNESS'], + 'checksums': ['15a840ea1c8a76cd3c865fbbf2fec33b03615c0daa50f9c800c54e0cf0659d46'], + }), + ('XML::Twig', '3.52', { + 'source_tmpl': 'XML-Twig-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MI/MIROD'], + 'checksums': ['fef75826c24f2b877d0a0d2645212fc4fb9756ed4d2711614ac15c497e8680ad'], + }), + ('XML::Simple', '2.25', { + 'source_tmpl': 'XML-Simple-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GR/GRANTM'], + 'checksums': ['531fddaebea2416743eb5c4fdfab028f502123d9a220405a4100e68fc480dbf8'], + }), + ('Pod::Plainer', '1.04', { + 'source_tmpl': 'Pod-Plainer-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RM/RMBARKER'], + 'checksums': ['1bbfbf7d1d4871e5a83bab2137e22d089078206815190eb1d5c1260a3499456f'], + }), + ('Data::Section::Simple', '0.07', { + 'source_tmpl': 'Data-Section-Simple-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA'], + 'checksums': ['0b3035ffdb909aa1f7ded6b608fa9d894421c82c097d51e7171170d67579a9cb'], + }), + ('File::HomeDir', '1.006', { + 'source_tmpl': 'File-HomeDir-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + 'checksums': ['593737c62df0f6dab5d4122e0b4476417945bb6262c33eedc009665ef1548852'], + }), + ('Authen::SASL', '2.16', { + 'source_tmpl': 'Authen-SASL-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GB/GBARR'], + 'checksums': ['6614fa7518f094f853741b63c73f3627168c5d3aca89b1d02b1016dc32854e09'], + }), + ('Import::Into', '1.002005', { + 'source_tmpl': 'Import-Into-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + 'checksums': ['bd9e77a3fb662b40b43b18d3280cd352edf9fad8d94283e518181cc1ce9f0567'], + }), + ('DateTime::Tiny', '1.07', { + 'runtest': False, # One subset fails due to locale + 'source_tmpl': 'DateTime-Tiny-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + 'checksums': ['83568a22838cb518fbeb9e060460ec7f59d5a0b0a1cc06562954c3674d7cf7e4'], + }), + ('Text::Format', '0.62', { + 'source_tmpl': 'Text-Format-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF'], + 'checksums': ['7d429057319e123c590ba0765334f0ade4a5eb9ea8db7c0ec4d3902de5f90404'], + }), + ('Devel::CheckCompiler', '0.07', { + 'source_tmpl': 'Devel-CheckCompiler-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SY/SYOHEX'], + 'checksums': ['768b7697b4b8d4d372c7507b65e9dd26aa4223f7100183bbb4d3af46d43869b5'], + }), + ('Log::Handler', '0.90', { + 'source_tmpl': 'Log-Handler-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BL/BLOONIX'], + 'checksums': ['3a5c80e7128454770f83acab8cbd3e70e5ec3d59a61dc32792a178f0b31bf74d'], + }), + ('Term::ReadKey', '2.38', { + 'source_tmpl': 'TermReadKey-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JS/JSTOWE'], + 'checksums': ['5a645878dc570ac33661581fbb090ff24ebce17d43ea53fd22e105a856a47290'], + }), + ('Set::IntSpan', '1.19', { + 'source_tmpl': 'Set-IntSpan-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SW/SWMCD'], + 'checksums': ['11b7549b13ec5d87cc695dd4c777cd02983dd5fe9866012877fb530f48b3dfd0'], + }), + ('Module::Runtime::Conflicts', '0.003', { + 'source_tmpl': 'Module-Runtime-Conflicts-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['707cdc75038c70fe91779b888ac050f128565d3967ba96680e1b1c7cc9733875'], + }), + ('File::pushd', '1.016', { + 'source_tmpl': 'File-pushd-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + 'checksums': ['d73a7f09442983b098260df3df7a832a5f660773a313ca273fa8b56665f97cdc'], + }), + ('Test::CleanNamespaces', '0.24', { + 'source_tmpl': 'Test-CleanNamespaces-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['338d5569e8e89a654935f843ec0bc84aaa486fe8dd1898fb9cab3eccecd5327a'], + }), + ('Devel::OverloadInfo', '0.007', { + 'source_tmpl': 'Devel-OverloadInfo-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IL/ILMARI'], + 'checksums': ['21a184163b90f91f06ffc7f5de0b968356546ae9b400a9d75c573c958c246222'], + }), + ('Moose', '2.2203', { + 'source_tmpl': 'Moose-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['fa7814acf4073fa434c148d403cbbf8a7b62f73ad396fa8869f3036d6e3241a7'], + }), + ('Algorithm::Dependency', '1.112', { + 'source_tmpl': 'Algorithm-Dependency-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['7e0fb7c39f56a2dccf9d0295c82f3031ee116e807f6a12a438fa4dd41b0ec187'], + }), + ('Font::TTF', '1.06', { + 'source_tmpl': 'Font-TTF-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BH/BHALLISSY'], + 'checksums': ['4b697d444259759ea02d2c442c9bffe5ffe14c9214084a01f743693a944cc293'], + }), + ('IPC::Run3', '0.048', { + 'source_tmpl': 'IPC-Run3-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['3d81c3cc1b5cff69cca9361e2c6e38df0352251ae7b41e2ff3febc850e463565'], + }), + ('SQL::Statement', '1.414', { + 'source_tmpl': 'SQL-Statement-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RE/REHSACK'], + 'checksums': ['dde8bdcfa6a136eedda06519ba0f3efaec085c39db0df9c472dc0ec6cd781a49'], + }), + ('Package::Constants', '0.06', { + 'source_tmpl': 'Package-Constants-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + 'checksums': ['0b58be78706ccc4e4bd9bbad41767470427fd7b2cfad749489de101f85bc5df5'], + }), + ('CPANPLUS', '0.9914', { + 'source_tmpl': 'CPANPLUS-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + 'checksums': ['76c3e5da623a4af60fe64adec448fb1f8e0cae9f6798a36b68865974044e9b67'], + }), + ('IO::Tty', '1.17', { + 'source_tmpl': 'IO-Tty-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR'], + 'checksums': ['a5f1a83020bc5b5dd6c1b570f48c7546e0a8f7fac10a068740b03925ad9e14e8'], + }), + ('Text::Soundex', '3.05', { + 'source_tmpl': 'Text-Soundex-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['f6dd55b4280b25dea978221839864382560074e1d6933395faee2510c2db60ed'], + }), + ('Mail::Util', '2.21', { + 'source_tmpl': 'MailTools-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MARKOV'], + 'checksums': ['4ad9bd6826b6f03a2727332466b1b7d29890c8d99a32b4b3b0a8d926ee1a44cb'], + }), + ('Test::More::UTF8', '0.05', { + 'source_tmpl': 'Test-More-UTF8-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MO/MONS'], + 'checksums': ['b9f1c4b36a97cdfefaa53ed1115dd38f4b483037775f6559ee1df14acfd1ce04'], + }), + ('Text::Template', '1.61', { + 'source_tmpl': 'Text-Template-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MS/MSCHOUT'], + 'checksums': ['a295ea7d1ef241ae2640c1f7864b628f8e6f99ec14fb1da781b2f5f2168dcf09'], + }), + ('PadWalker', '2.5', { + 'source_tmpl': 'PadWalker-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RO/ROBIN'], + 'checksums': ['07b26abb841146af32072a8d68cb90176ffb176fd9268e6f2f7d106f817a0cd0'], + }), + ('Devel::Cycle', '1.12', { + 'source_tmpl': 'Devel-Cycle-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LD/LDS'], + 'checksums': ['fd3365c4d898b2b2bddbb78a46d507a18cca8490a290199547dab7f1e7390bc2'], + }), + ('Test::Memory::Cycle', '1.06', { + 'source_tmpl': 'Test-Memory-Cycle-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PETDANCE'], + 'checksums': ['9d53ddfdc964cd8454cb0da4c695b6a3ae47b45839291c34cb9d8d1cfaab3202'], + }), + ('PDF::API2', '2.044', { + 'source_tmpl': 'PDF-API2-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SS/SSIMMS'], + 'checksums': ['b2d15579e42723d8d7f9b72de86d0d35cde34f1eb7713456ba2ad35fb3cbea7e'], + }), + ('Devel::CheckLib', '1.16', { + 'source_tmpl': 'Devel-CheckLib-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MATTN'], + 'checksums': ['869d38c258e646dcef676609f0dd7ca90f085f56cf6fd7001b019a5d5b831fca'], + }), + ('SVG', '2.87', { + 'source_tmpl': 'SVG-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MANWAR'], + 'checksums': ['b3fa58c1c59942b4ebef003da97c3e01e531480ca29e8efbe327ff0589c0bd3c'], + }), + ('Statistics::Basic', '1.6611', { + 'source_tmpl': 'Statistics-Basic-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JE/JETTERO'], + 'checksums': ['6855ce5615fd3e1af4cfc451a9bf44ff29a3140b4e7130034f1f0af2511a94fb'], + }), + ('Log::Log4perl', '1.57', { + 'source_tmpl': 'Log-Log4perl-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETJ'], + 'checksums': ['0f8fcb7638a8f3db4c797df94fdbc56013749142f2f94cbc95b43c9fca096a13'], + }), + ('Math::CDF', '0.1', { + 'source_tmpl': 'Math-CDF-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CA/CALLAHAN'], + 'checksums': ['7896bf250835ce47dcc813cb8cf9dc576c5455de42e822dcd7d8d3fef2125565'], + }), + ('Array::Utils', '0.5', { + 'source_tmpl': 'Array-Utils-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/Z/ZM/ZMIJ/Array'], + 'checksums': ['89dd1b7fcd9b4379492a3a77496e39fe6cd379b773fd03a6b160dd26ede63770'], + }), + ('File::Grep', '0.02', { + 'source_tmpl': 'File-Grep-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MN/MNEYLON'], + 'checksums': ['462e15274eb6278521407ea302d9eea7252cd44cab2382871f7de833d5f85632'], + }), + ('File::Temp', '0.2311', { + 'source_tmpl': 'File-Temp-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['2290d61bf5c39882fc3311da9ce1c7f42dbdf825ae169e552c59fe4598b36f4a'], + }), + ('Set::Object', '1.42', { + 'source_tmpl': 'Set-Object-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RU/RURBAN'], + 'checksums': ['d18c5a8a233eabbd0206cf3da5b00fcdd7b37febf12a93dcc3d1c026e6fdec45'], + }), + ('Heap', '0.80', { + 'source_tmpl': 'Heap-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JM/JMM'], + 'checksums': ['ccda29f3c93176ad0fdfff4dd6f5e4ac90b370cba4b028386b7343bf64139bde'], + }), + ('Graph', '0.9726', { + 'source_tmpl': 'Graph-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETJ'], + 'checksums': ['7a60c7746da3f2da43f4acea703be2ad8fa24b26a623a0745876020e6ecd970e'], + }), + ('XML::Writer', '0.900', { + 'source_tmpl': 'XML-Writer-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JO/JOSEPHW'], + 'checksums': ['73c8f5bd3ecf2b350f4adae6d6676d52e08ecc2d7df4a9f089fa68360d400d1f'], + }), + ('Parse::Yapp', '1.21', { + 'source_tmpl': 'Parse-Yapp-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/W/WB/WBRASWELL'], + 'checksums': ['3810e998308fba2e0f4f26043035032b027ce51ce5c8a52a8b8e340ca65f13e5'], + }), + ('Graph::ReadWrite', '2.10', { + 'source_tmpl': 'Graph-ReadWrite-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB'], + 'checksums': ['516c1ea9facb995dbc38d1735d58974b2399862567e731b729c8d0bc2ee5a14b'], + }), + ('PerlIO::utf8_strict', '0.010', { + 'source_tmpl': 'PerlIO-utf8_strict-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + 'checksums': ['bcd2848b72df290b5e984fae8b1a6ca96f6d072003cf222389a8c9e8e1c570cd'], + }), + ('Digest::MD5::File', '0.08', { + 'source_tmpl': 'Digest-MD5-File-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DM/DMUEY'], + 'checksums': ['adb43a54e32627b4f7e57c9640e6eb06d0bb79d8ea54cd0bd79ed35688fb1218'], + }), + ('String::RewritePrefix', '0.009', { + 'source_tmpl': 'String-RewritePrefix-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['44918bec96a54af8ca37ca897e436709ec284a07b28516ef3cce4666869646d5'], + }), + ('Getopt::Long::Descriptive', '0.111', { + 'source_tmpl': 'Getopt-Long-Descriptive-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['9b8d15fcaf18fdd740246b438f0e7eb914b831c51d9d708c099eca776622076d'], + }), + ('IO::TieCombine', '1.005', { + 'source_tmpl': 'IO-TieCombine-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['402d4db8300b3d271632f4995e0ade329d89280a7e47f2badf8b38af6e5569af'], + }), + ('App::Cmd', '0.335', { + 'source_tmpl': 'App-Cmd-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['f95517fc4df348d9e7ea01467aabd9725f0715662ee483b54b81d3f0b38c9874'], + }), + ('Carp::Clan', '6.08', { + 'source_tmpl': 'Carp-Clan-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['c75f92e34422cc5a65ab05d155842b701452434e9aefb649d6e2289c47ef6708'], + }), + ('Sub::Exporter::ForMethods', '0.100055', { + 'source_tmpl': 'Sub-Exporter-ForMethods-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['791f4203ba7c0f7d8380bc01bec20215f7c8bc70d7ed03e552eee44541abe94e'], + }), + ('MooseX::Types', '0.50', { + 'source_tmpl': 'MooseX-Types-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['9cd87b3492cbf0be9d2df9317b2adf9fc30663770e69906654bea3f41b17cb08'], + }), + ('Variable::Magic', '0.63', { + 'source_tmpl': 'Variable-Magic-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/V/VP/VPIT'], + 'checksums': ['ba4083b2c31ff2694f2371333d554c826aaf24b4d98d03e48b5b4a43a2a0e679'], + }), + ('MooseX::Types::Perl', '0.101344', { + 'source_tmpl': 'MooseX-Types-Perl-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['87644354f74fa65235cb2bfca44277930a7eabe51acc5f81fb631530a8355e24'], + }), + ('Log::Dispatch', '2.71', { + 'source_tmpl': 'Log-Dispatch-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['9d60d9648c35ce2754731eb4deb7f05809ece1bd633b74d74795aed9ec732570'], + }), + ('JSON::MaybeXS', '1.004005', { + 'source_tmpl': 'JSON-MaybeXS-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['f5b6bc19f579e66b7299f8748b8ac3e171936dc4e7fcb72a8a257a9bd482a331'], + }), + ('String::Flogger', '1.101246', { + 'source_tmpl': 'String-Flogger-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['15f8491e07818bb3cfa9f6bd3aabf6430ba9b4e309f18114358be3d81bff3a0f'], + }), + ('Log::Dispatch::Array', '1.005', { + 'source_tmpl': 'Log-Dispatch-Array-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['311640b7a967f8dd7c9bb41a227073565636d70df4fcc1d44fed8a8223b347ca'], + }), + ('Sub::Exporter::GlobExporter', '0.006', { + 'source_tmpl': 'Sub-Exporter-GlobExporter-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['de743f08026701c2a6a222a8b41c4cdc254b1a4afe7ef98987cd3aba4ce52696'], + }), + ('Log::Dispatchouli', '3.002', { + 'source_tmpl': 'Log-Dispatchouli-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['86a739f970c8d8e7fcfe52cd75f0844a7cb96e1d9c151f1ba8cba26b541f34ee'], + }), + ('Test::FailWarnings', '0.008', { + 'source_tmpl': 'Test-FailWarnings-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + 'checksums': ['da34ef9029f6849d6026201d49127d054ee6ac4b979c82210315f5721964a96f'], + }), + ('Data::Section', '0.200008', { + 'source_tmpl': 'Data-Section-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['83acc7a55d3dd7ed36e9d78d350af3138c69cfa178a44765822712ff433b990e'], + }), + ('Test::CheckDeps', '0.010', { + 'source_tmpl': 'Test-CheckDeps-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + 'checksums': ['66fccca6c6f330e7ecc898bd6a51846e2145b3e02d78c4997ba6b7de23b551ee'], + }), + ('Software::License', '0.104003', { + 'runtest': False, # This test just suddenly started to fail + 'source_tmpl': 'Software-License-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + 'checksums': ['f5afffcf156c3d1cece656546d9d5d7e60032d264fd98ed5462701c47e172d54'], + }), + ('MooseX::SetOnce', '0.203', { + 'source_tmpl': 'MooseX-SetOnce-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['3cd2f3664e438382cf844b679350a2e428b760927e2cf18fccdc468a7bc3066f'], + }), + ('Term::Encoding', '0.03', { + 'source_tmpl': 'Term-Encoding-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA'], + 'checksums': ['95ba9687d735d25a3cbe64508d7894f009c7fa2a1726c3e786e9e21da2251d0b'], + }), + ('Throwable', '1.001', { + 'source_tmpl': 'Throwable-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['d0cb5e9d7d06d70f2cc56eecf857a83a45eaca43850dcdda91d3feb4ddde4c51'], + }), + ('Role::Identifiable::HasIdent', '0.009', { + 'source_tmpl': 'Role-Identifiable-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['5a735e9f7177f9ebae047eb7bae29b7ec29ec020ae37637aea5350d30c087b76'], + }), + ('MooseX::Role::Parameterized', '1.11', { + 'source_tmpl': 'MooseX-Role-Parameterized-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['1cfe766c5d7f0ecab57f733dcca430a2a2acd6b995757141b940ade3692bec9e'], + }), + ('MooseX::OneArgNew', '0.007', { + 'source_tmpl': 'MooseX-OneArgNew-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['84282435f1169cf09d7513fa9387e2091791635cf35a078b500b829aeea06138'], + }), + ('MooseX::LazyRequire', '0.11', { + 'source_tmpl': 'MooseX-LazyRequire-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['ef620c1e019daf9cf3f23a943d25a94c91e93ab312bcd63be2e9740ec0b94288'], + }), + ('String::Formatter', '1.235', { + 'source_tmpl': 'String-Formatter-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['08236a913b911ce652cf08598e7c07d2df3f369fc47bf401a485a504a1660783'], + }), + ('String::Errf', '0.009', { + 'source_tmpl': 'String-Errf-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['e1fedbf9b4fd64b64ea81038ddb76a4c6cd85f5db15bc21f10656a298349dc1f'], + }), + ('Role::HasMessage', '0.007', { + 'source_tmpl': 'Role-HasMessage-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['5e267a4d7620b368481204c88ea2044b8b2a58ff8b05577f2717b2754c0414ce'], + }), + ('Config::MVP', '2.200013', { + 'source_tmpl': 'Config-MVP-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['018d161623ee3a67f860d9e680e22e61b79eae6018f0e7c3b525fc934f5b7d45'], + }), + ('Mixin::Linewise::Readers', '0.111', { + 'source_tmpl': 'Mixin-Linewise-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['d28e88516ce9b5295c31631dcccdc0fc8f2ab7d8a5cc876bb1b20131087b01db'], + }), + ('Config::INI', '0.029', { + 'source_tmpl': 'Config-INI-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['0bbe797a730210644a907d90cd4aa2b23ad580cb27bd39393bfc6a7ef9fdfdea'], + }), + ('String::Truncate', '1.100603', { + 'source_tmpl': 'String-Truncate-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['ab45602cce2dd9515edfbb2e6e5cde19cdd5498d61a23afd8c46c1f11f8eec62'], + }), + ('Pod::Eventual', '0.094003', { + 'source_tmpl': 'Pod-Eventual-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['7f060cc34d11656ce069db061e3d60edc0cabc8f89a4a2dc7eaae95dac856d2d'], + }), + ('Pod::Elemental', '0.103006', { + 'source_tmpl': 'Pod-Elemental-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['750c3a79d8e1824758a6ef7d2dd077dcddca503542b8c34eccd5acbb779dc423'], + }), + ('Test::Object', '0.08', { + 'source_tmpl': 'Test-Object-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['65278964147837313f4108e55b59676e8a364d6edf01b3dc198aee894ab1d0bb'], + }), + ('Hook::LexWrap', '0.26', { + 'source_tmpl': 'Hook-LexWrap-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['b60bdc5f98f94f9294b06adef82b1d996da192d5f183f9f434b610fd1137ec2d'], + }), + ('Test::SubCalls', '1.10', { + 'source_tmpl': 'Test-SubCalls-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['cbc1e9b35a05e71febc13e5ef547a31c8249899bb6011dbdc9d9ff366ddab6c2'], + }), + ('PPI', '1.276', { + 'source_tmpl': 'PPI-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/O/OA/OALDERS'], + 'checksums': ['657655470e78b7c5b7660f7dec82893489c2e2d880e449135613da3b37500f01'], + }), + ('Config::MVP::Reader::INI', '2.101465', { + 'source_tmpl': 'Config-MVP-Reader-INI-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['13c7aa27c1df98cd33ada399e59ff38fabfa9d65513e42af02f72c2d3f636247'], + }), + ('Pod::Weaver', '4.019', { + 'source_tmpl': 'Pod-Weaver-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['6946ad1f04eaf9aa11f24cc54494e1d57962f58e05912f364b74f9593e7de7f7'], + }), + ('CPAN::Uploader', '0.103018', { + 'source_tmpl': 'CPAN-Uploader-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['c4ffe4ede9db79b396e3bfc5e7cdf0e2e9821e1f1e087f523bcfa74c9fc9e248'], + }), + ('Devel::FindPerl', '0.016', { + 'source_tmpl': 'Devel-FindPerl-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEONT'], + 'checksums': ['43a2bf2f787a3f1b881179063162b2aa3e7cb044f6e5e76ec6466ae90a861138'], + }), + ('Module::Path', '0.19', { + 'source_tmpl': 'Module-Path-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB'], + 'checksums': ['b33179ce4dd73dfcde7d46808804b9ffbb11db0245fe455a7d001747562feaca'], + }), + ('Perl::PrereqScanner', '1.100', { + 'source_tmpl': 'Perl-PrereqScanner-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['01181d38a2e7aff838d262122563c50636ba4b3652ee5d1d4f8ef5ba3f5b186b'], + }), + ('Dist::Zilla', '6.030', { + 'source_tmpl': 'Dist-Zilla-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['c406bbe6809e94edb70ca94324c301433d6c8a3dfbe70b02df12e1dff2f3b130'], + }), + ('XML::RegExp', '0.04', { + 'source_tmpl': 'XML-RegExp-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TJ/TJMATHER'], + 'checksums': ['df1990096036085c8e2d45904fe180f82bfed40f1a7e05243f334ea10090fc54'], + }), + ('XML::DOM', '1.46', { + 'source_tmpl': 'XML-DOM-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TJ/TJMATHER'], + 'checksums': ['8ba24b0b459b01d6c5e5b0408829c7d5dfe47ff79b3548c813759048099b175e'], + }), + ('Data::Dump', '1.25', { + 'source_tmpl': 'Data-Dump-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/G/GA/GARU'], + 'checksums': ['a4aa6e0ddbf39d5ad49bddfe0f89d9da864e3bc00f627125d1bc580472f53fbd'], + }), + ('File::Next', '1.18', { + 'source_tmpl': 'File-Next-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PETDANCE'], + 'checksums': ['f900cb39505eb6e168a9ca51a10b73f1bbde1914b923a09ecd72d9c02e6ec2ef'], + }), + ('App::cpanminus', '1.7046', { + 'source_tmpl': 'App-cpanminus-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA'], + 'checksums': ['3e8c9d9b44a7348f9acc917163dbfc15bd5ea72501492cea3a35b346440ff862'], + }), + ('Parallel::ForkManager', '2.02', { + 'source_tmpl': 'Parallel-ForkManager-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/Y/YA/YANICK'], + 'checksums': ['c1b2970a8bb666c3de7caac4a8f4dbcc043ab819bbc337692ec7bf27adae4404'], + }), + ('Object::InsideOut', '4.05', { + 'source_tmpl': 'Object-InsideOut-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JD/JDHEDDEN'], + 'checksums': ['9dfd6ca2822724347e0eb6759d00709425814703ad5c66bdb6214579868bcac4'], + }), + ('Logger::Simple', '2.0', { + 'source_tmpl': 'Logger-Simple-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TS/TSTANLEY'], + 'checksums': ['2e63fd3508775b5902132ba1bfb03b42bee468dfaf35dfe42e1909ff6d291b2d'], + }), + ('Scalar::Util::Numeric', '0.40', { + 'source_tmpl': 'Scalar-Util-Numeric-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CH/CHOCOLATE'], + 'checksums': ['d7501b6d410703db5b1c1942fbfc41af8964a35525d7f766058acf5ca2cc4440'], + }), + ('Spiffy', '0.46', { + 'source_tmpl': 'Spiffy-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IN/INGY'], + 'checksums': ['8f58620a8420255c49b6c43c5ff5802bd25e4f09240c51e5bf2b022833d41da3'], + }), + ('Test::Base', '0.89', { + 'source_tmpl': 'Test-Base-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IN/INGY'], + 'checksums': ['2794a1aaaeb1d3a287dd2c7286258663796562f7db9ccc6b424bc4f1de8ad014'], + }), + ('Test::YAML', '1.07', { + 'source_tmpl': 'Test-YAML-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TI/TINITA'], + 'checksums': ['1f300d034f46298cb92960912cc04bac33fb27f05b8852d8f051e110b9cd995f'], + }), + ('YAML', '1.30', { + 'source_tmpl': 'YAML-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TI/TINITA'], + 'checksums': ['5030a6d6cbffaf12583050bf552aa800d4646ca9678c187add649227f57479cd'], + }), + ('Object::InsideOut', '4.05', { + 'source_tmpl': 'Object-InsideOut-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JD/JDHEDDEN'], + 'checksums': ['9dfd6ca2822724347e0eb6759d00709425814703ad5c66bdb6214579868bcac4'], + }), + ('Time::HiRes', '1.9764', { + 'source_tmpl': 'Time-HiRes-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AT/ATOOMIC'], + 'checksums': ['9841be5587bfb7cd1f2fe267b5e5ac04ce25e79d5cc77e5ef9a9c5abd101d7b1'], + }), + ('Term::ReadLine::Gnu', '1.45', { + 'modulename': 'Term::ReadLine', + 'source_tmpl': 'Term-ReadLine-Gnu-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAYASHI'], + 'checksums': ['9f4f7abbc69ea58ab7f24992d47f7391bb4aed6fb701fedaeb1a9f1cdc7fab8a'], + }), + ('ExtUtils::MakeMaker', '7.70', { + 'source_tmpl': 'ExtUtils-MakeMaker-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + 'checksums': ['f108bd46420d2f00d242825f865b0f68851084924924f92261d684c49e3e7a74'], + }), + ('Scalar::Util', '1.63', { + 'source_tmpl': 'Scalar-List-Utils-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PEVANS'], + 'checksums': ['cafbdf212f6827dc9a0dd3b57b6ee50e860586d7198228a33262d55c559eb2a9'], + }), + ('Module::CoreList', '5.20230423', { + 'source_tmpl': 'Module-CoreList-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + 'checksums': ['62b74a0e48924db152f7790f220ebfe0e8c5ab6c7ed459565828d2802d42da90'], + }), + ('Module::Metadata', '1.000038', { + 'source_tmpl': 'Module-Metadata-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETHER'], + 'checksums': ['b599d8770a9a9fa0a8ae3cd0ed395a9cf71b4eb53aed82989a6bece33485a9cd'], + }), + ('Params::Check', '0.38', { + 'configopts': 'INSTALLDIRS=site', # Force it to correctly use site_perl + 'source_tmpl': 'Params-Check-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + 'checksums': ['f0c9d33876c36b1bca1475276d26d2efaf449b256d7cc8118fae012e89a26290'], + }), + ('Locale::Maketext::Simple', '0.21', { + 'configopts': 'INSTALLDIRS=site', # Force it to correctly use site_perl + 'source_tmpl': 'Locale-Maketext-Simple-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JE/JESSE'], + 'checksums': ['b009ff51f4fb108d19961a523e99b4373ccf958d37ca35bf1583215908dca9a9'], + }), + ('Perl::OSType', '1.010', { + 'source_tmpl': 'Perl-OSType-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + 'checksums': ['e7ed4994b5d547cb23aadb84dc6044c5eb085d5a67a6c5624f42542edd3403b2'], + }), + ('IPC::Cmd', '1.04', { + 'source_tmpl': 'IPC-Cmd-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BI/BINGOS'], + 'checksums': ['d110a0f60e35c65721454200f0d2f0f8965529a2add9649d1fa6f4f9eccb6430'], + }), + ('Pod::Escapes', '1.07', { + 'source_tmpl': 'Pod-Escapes-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB'], + 'checksums': ['dbf7c827984951fb248907f940fd8f19f2696bc5545c0a15287e0fbe56a52308'], + }), + ('if', '0.0608', { + 'configopts': 'INSTALLDIRS=site', # Force it to correctly use site_perl + 'modulename': False, + 'source_tmpl': 'if-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/X/XS/XSAWYERX'], + 'checksums': ['37206e10919c4d99273020008a3581bf0947d364e859b8966521c3145b4b3700'], + }), + ('Test', '1.26', { + 'configopts': 'INSTALLDIRS=site', # Force it to correctly use site_perl + 'source_tmpl': 'Test-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JE/JESSE'], + 'checksums': ['f7701bd28e05e7f82fe9a181bbab38f53fa6aeae48d2a810da74d1b981d4f392'], + }), + ('ExtUtils::Constant', '0.25', { + 'runtest': False, # Somehow has syntax errors in tests + 'source_tmpl': 'ExtUtils-Constant-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NW/NWCLARK'], + 'checksums': ['6933d0e963b62281ef7561068e6aecac8c4ac2b476b2bba09ab0b90fbac9d757'], + }), + ('ExtUtils::CBuilder', '0.280236', { + 'source_tmpl': 'ExtUtils-CBuilder-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/A/AM/AMBS'], + 'checksums': ['abc21827eb8a513171bf7fdecefce9945132cb76db945036518291f607b1491f'], + }), + ('Carp::Heavy', '1.50', { + 'source_tmpl': 'Carp-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/X/XS/XSAWYERX'], + 'checksums': ['f5273b4e1a6d51b22996c48cb3a3cbc72fd456c4038f5c20b127e2d4bcbcebd9'], + }), + ('Pod::Simple', '3.45', { + 'source_tmpl': 'Pod-Simple-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/K/KH/KHW'], + 'checksums': ['8483bb95cd3e4307d66def092a3779f843af772482bfdc024e3e00d0c4db0cfa'], + }), + ('Socket', '2.036', { + 'source_tmpl': 'Socket-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PE/PEVANS'], + 'checksums': ['1cd8272bccde8098183a60a274b3eda0764cc6984db97f5474b28bebfe2c6b70'], + }), + ('Time::Local', '1.35', { + 'source_tmpl': 'Time-Local-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DR/DROLSKY'], + 'checksums': ['1d136b71bd041cbe6f66c43180ee79e675b72ad5a3596abd6a44d211072ada29'], + }), + ('Storable', '3.25', { + 'source_tmpl': 'Storable-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NW/NWCLARK'], + 'checksums': ['e1e96b24a076792fde52154789fe4b76034b9ad39c8a1a819ead77d50d5f1817'], + }), + ('ExtUtils::ParseXS', '3.44', { + 'source_tmpl': 'ExtUtils-ParseXS-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/X/XS/XSAWYERX'], + 'checksums': ['77effdf31af36ef656f09aa7c15356d238dab6d1afaa7278ae15c1b6bcf86266'], + }), + ('Pod::Man', '5.01', { + 'source_tmpl': 'podlators-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RR/RRA'], + 'checksums': ['ccfd1df9f1a47f095bce6d718fad5af40f78ce2491f2c7239626e15b7020bc71'], + }), + ('Mozilla::CA', '20221114', { + 'source_tmpl': 'Mozilla-CA-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + 'checksums': ['701bea67be670add5a102f9f8c879402b4983096b1cb0e20dd47d52d7a10666b'], + }), + ('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.241', { + 'source_tmpl': 'parent-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CO/CORION'], + 'checksums': ['b10b3960ab3997dab7571ffe975ba462d979d086450740a1e08b3959e75128fe'], + }), + ('Net::Domain', '3.15', { + 'source_tmpl': 'libnet-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHAY'], + 'checksums': ['a71f4db580e1a767d6936faa5baf38f1fa617824342da078b561283e86f8f4a2'], + }), + ('Encode', '3.19', { + 'source_tmpl': 'Encode-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DANKOGAI'], + 'checksums': ['9163f848eef69e4d4cc8838397f0861fd9ea7ede001117dbd9694f8d95052ef5'], + }), + ('Cwd', '3.75', { + 'source_tmpl': 'PathTools-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/X/XS/XSAWYERX'], + 'checksums': ['a558503aa6b1f8c727c0073339081a77888606aa701ada1ad62dd9d8c3f945a2'], + }), + ('MIME::Base64', '3.16', { + 'source_tmpl': 'MIME-Base64-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CA/CAPOEIRAB'], + 'checksums': ['77f73d6f7aeb8d33be08b0d8c2617f9b6c77fb7fc45422d507ca8bafe4246017'], + }), + ('ExtUtils::CppGuess', '0.26', { + 'runtest': False, # Poorly written test + 'source_tmpl': 'ExtUtils-CppGuess-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/E/ET/ETJ'], + 'checksums': ['c8b362b860172a4076acee00438f52b86464f2c500702cfcf7527811ff9a683e'], + }), + ('XSLoader', '0.24', { + 'source_tmpl': 'XSLoader-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SA/SAPER'], + 'checksums': ['e819a35a6b8e55cb61b290159861f0dc00fe9d8c4f54578eb24f612d45c8d85f'], + }), + ('AutoLoader', '5.74', { + 'source_tmpl': 'AutoLoader-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SM/SMUELLER'], + 'checksums': ['2fac75b05309f71a6871804cd25e1a3ba0a28f43f294fb54528077558da3aff4'], + }), + ('Set::IntervalTree', '0.12', { + 'source_tmpl': 'Set-IntervalTree-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SL/SLOYD'], + 'checksums': ['6fd4000e4022968e2ce5b83c07b189219ef1925ecb72977b52a6f7d76adbc349'], + }), + ('MCE::Mutex', '1.884', { + 'runtest': False, # Single failing subtest + 'source_tmpl': 'MCE-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MARIOROY'], + 'checksums': ['c830c0e548094f19c620049e744258be2c121d4a86cf7c94a37599ad016daf33'], + }), + ('Text::CSV_XS', '1.50', { + 'source_tmpl': 'Text-CSV_XS-%(version)s.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HM/HMBRAND'], + 'checksums': ['85b5e1bed7e11dc0413d4e920cee25d980de47376c0048029041cf461eac96b1'], + }), + ('DBD::CSV', '0.60', { + 'source_tmpl': 'DBD-CSV-%(version)s.tgz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HM/HMBRAND'], + 'checksums': ['018b83a30f799979bc8c3c3044c8b1c8001cdf60bdc3e746848818195254b4e7'], + }), + ('Array::Transpose', '0.06', { + 'source_tmpl': 'Array-Transpose-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MR/MRDVT'], + 'checksums': ['d58667f64381a105f375226f592d0af71068e640a5a9f4d5ecf27c90feb32676'], + }), + ('Config::Simple', '4.58', { + 'source_tmpl': 'Config-Simple-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHERZODR'], + 'checksums': ['dd9995706f0f9384a15ccffe116c3b6e22f42ba2e58d8f24ed03c4a0e386edb4'], + }), + ('Business::ISBN::Data', '20230516.001', { + 'source_tmpl': 'Business-ISBN-Data-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BD/BDFOY'], + 'checksums': ['d9b8125e96f869489160fc189e5571fb05838501edab14d458451f0ac7abc912'], + }), + ('Business::ISBN', '3.008', { + 'source_tmpl': 'Business-ISBN-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BD/BDFOY'], + 'checksums': ['19c4a1d4d99a0dd7695a90192b13404a0e3eeebedfcbe97a0202e36b238c0e69'], + }), + ('common::sense', '3.75', { + 'source_tmpl': 'common-sense-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN'], + 'checksums': ['a86a1c4ca4f3006d7479064425a09fa5b6689e57261fcb994fe67d061cba0e7e'], + }), + ('Compress::Raw::Zlib', '2.204', { + 'source_tmpl': 'Compress-Raw-Zlib-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PM/PMQS'], + 'checksums': ['f161f4297efadbed79c8b096a75951784fc5ccd3170bd32866a19e5c6876d13f'], + }), + ('IO::Compress::Zip', '2.204', { + 'runtest': False, # Problem with indirect dependency DBD::Pg + 'source_tmpl': 'IO-Compress-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PM/PMQS'], + 'checksums': ['617784cb8543778681341b18fc67b74735e8b494f32f00814dd22f68ac6af018'], + }), + ('Types::Serialiser', '1.01', { + 'source_tmpl': 'Types-Serialiser-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN'], + 'checksums': ['f8c7173b0914d0e3d957282077b366f0c8c70256715eaef3298ff32b92388a80'], + }), + ('JSON::XS', '4.03', { + 'source_tmpl': 'JSON-XS-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN'], + 'checksums': ['515536f45f2fa1a7e88c8824533758d0121d267ab9cb453a1b5887c8a56b9068'], + }), + ('Authen::NTLM', '1.09', { + 'source_tmpl': 'NTLM-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NB/NBEBOUT'], + 'checksums': ['c823e30cda76bc15636e584302c960e2b5eeef9517c2448f7454498893151f85'], + }), + ('Types::Serialiser', '1.01', { + 'source_tmpl': 'Types-Serialiser-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN'], + 'checksums': ['f8c7173b0914d0e3d957282077b366f0c8c70256715eaef3298ff32b92388a80'], + }), + ('XML::SAX::Expat', '0.51', { + 'source_tmpl': 'XML-SAX-Expat-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BJ/BJOERN'], + 'checksums': ['4c016213d0ce7db2c494e30086b59917b302db8c292dcd21f39deebd9780c83f'], + }), + ('Inline', '0.86', { + 'source_tmpl': 'Inline-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/I/IN/INGY'], + 'checksums': ['510a7de2d011b0db80b0874e8c0f7390010991000ae135cff7474df1e6d51e3a'], + }), + ('Test::Sys::Info', '0.23', { + 'source_tmpl': 'Test-Sys-Info-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BU/BURAK'], + 'checksums': ['30c5f2c4cfee8e1ae6d9fb6291f79addbff5739ba4efa5b1e034520f18fbc95a'], + }), + ('Sys::Info::Base', '0.7807', { + 'source_tmpl': 'Sys-Info-Base-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BU/BURAK'], + 'checksums': ['132362b0046e8dc4f12e1560903623a88a8871d09bf1c29d93d48d3f4a582acb'], + }), + ('Sys::Info::Driver::Unknown::Device::CPU', '0.79', { + 'source_tmpl': 'Sys-Info-Driver-Unknown-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BU/BURAK'], + 'checksums': ['02408843c8e36ea3d507e9f33fee48d6908543829ebe320f13d1bfe76af31e09'], + }), + ('Unix::Processors', '2.046', { + 'source_tmpl': 'Unix-Processors-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/W/WS/WSNYDER'], + 'checksums': ['3973ebdc44682c9c15c776f66e8be242cb4ff1dd52caf43ff446b74d4dccca06'], + }), + ('Sys::Info::Driver::Linux::Device::CPU', '0.7905', { + 'source_tmpl': 'Sys-Info-Driver-Linux-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BU/BURAK'], + 'checksums': ['899c329bd3508ec5849ad0e5dadfa7c3679bbacaea9dda12404a7893032e8b7b'], + }), + ('Sys::Info', '0.7811', { + 'source_tmpl': 'Sys-Info-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BU/BURAK'], + 'checksums': ['566482bff3427c198d7955468ed945a8e736c4a2925151fdef96801ef8a401e1'], + }), + ('CGI', '4.57', { + 'source_tmpl': 'CGI-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/L/LE/LEEJO'], + 'checksums': ['4e6ca634fe0d5621bb55b0fce5c1d08e6f643c65eecdfffbb4b344fd51b963ac'], + }), + ('HTML::Template', '2.97', { + 'source_tmpl': 'HTML-Template-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SA/SAMTREGAR'], + 'checksums': ['6547af61f3aa85793f8616190938d677d7995fb3b720c16258040bc935e2129f'], + }), + ('MIME::Charset', 'v1.013.1', { + 'source_tmpl': 'MIME-Charset-1.013.1.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEZUMI'], + 'checksums': ['1bb7a6e0c0d251f23d6e60bf84c9adefc5b74eec58475bfee4d39107e60870f0'], + }), + ('Unicode::LineBreak', '2019.001', { + 'source_tmpl': 'Unicode-LineBreak-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEZUMI'], + 'checksums': ['486762e4cacddcc77b13989f979a029f84630b8175e7fef17989e157d4b6318a'], + }), + ('String::Print', '0.94', { + 'source_tmpl': 'String-Print-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MARKOV'], + 'checksums': ['9b3cd677adb7a40cb183bd6c60db80d96adcabd5aae27e324e3ee37e3275229b'], + }), + ('Log::Report::Optional', '1.07', { + 'source_tmpl': 'Log-Report-Optional-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MARKOV'], + 'checksums': ['b2658b53176df5afa5d02789368715c86b98c8d04ecd930252bcd7f832cc6224'], + }), + ('Log::Report', '1.34', { + 'source_tmpl': 'Log-Report-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MA/MARKOV'], + 'checksums': ['1faeb18993ab8796dce4cccda2ec912f8f565aa0258026f88197aa0fe3004a78'], + }), + ('Sys::Info::Driver::Unknown', '0.79', { + 'source_tmpl': 'Sys-Info-Driver-Unknown-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BU/BURAK'], + 'checksums': ['02408843c8e36ea3d507e9f33fee48d6908543829ebe320f13d1bfe76af31e09'], + }), + ('Sys::Info::Driver::Linux', '0.7905', { + 'source_tmpl': 'Sys-Info-Driver-Linux-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/B/BU/BURAK'], + 'checksums': ['899c329bd3508ec5849ad0e5dadfa7c3679bbacaea9dda12404a7893032e8b7b'], + }), + ('Unix::Processors', '2.046', { + 'source_tmpl': 'Unix-Processors-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/W/WS/WSNYDER'], + 'checksums': ['3973ebdc44682c9c15c776f66e8be242cb4ff1dd52caf43ff446b74d4dccca06'], + }), + ('local::lib', '2.000029', { + 'source_tmpl': 'local-lib-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/H/HA/HAARG'], + 'checksums': ['8df87a10c14c8e909c5b47c5701e4b8187d519e5251e87c80709b02bb33efdd7'], + }), + ('Module::Path', '0.19', { + 'source_tmpl': 'Module-Path-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB'], + 'checksums': ['b33179ce4dd73dfcde7d46808804b9ffbb11db0245fe455a7d001747562feaca'], + }), + ('Devel::Size', '0.83', { + 'source_tmpl': 'Devel-Size-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NW/NWCLARK'], + 'checksums': ['757a67e0aa59ae103ea5ca092cbecc025644ebdc326731688ffab6f8823ef4b3'], + }), + ('Math::Utils', '1.14', { + 'source_tmpl': 'Math-Utils-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JG/JGAMBLE'], + 'checksums': ['88a20ae0736a622671b92bb2a350969af424d7610284530b277c8020235f2695'], + }), +] + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/p/Perl/Perl-5.36.1-GCCcore-12.3.0.eb b/easybuild/easyconfigs/p/Perl/Perl-5.36.1-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..0d05c82ee82 --- /dev/null +++ b/easybuild/easyconfigs/p/Perl/Perl-5.36.1-GCCcore-12.3.0.eb @@ -0,0 +1,86 @@ +name = 'Perl' +version = '5.36.1' + +homepage = 'https://www.perl.org/' +description = """Larry Wall's Practical Extraction and Report Language + +Includes a small selection of extra CPAN packages for core functionality. +""" + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://www.cpan.org/src/%(version_major)s.0'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['68203665d8ece02988fc77dc92fccbb297a83a4bb4b8d07558442f978da54cc1'] + +builddependencies = [ + ('binutils', '2.40'), +] + +dependencies = [ + ('zlib', '1.2.13'), +] + +# !! order of extensions is important !! +# extensions updated on 2023-05-02 +# includes all dependencies for Autotools +exts_list = [ + ('threads', '2.21', { + 'source_tmpl': 'threads-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JD/JDHEDDEN'], + 'checksums': ['28394c98a2bcae6f20ffb8a3d965a1c194b764c650169e2050ee38dbaa10f110'], + }), + ('constant', '1.33', { + 'source_tmpl': 'constant-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['79965d4130eb576670e27ca0ae6899ef0060c76da48b02b97682166882f1b504'], + }), + ('Getopt::Long', '2.54', { + 'source_tmpl': 'Getopt-Long-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JV/JV'], + 'checksums': ['584ba3c99bb2d6b341375212f9b874613f706cfb01cee21b8a2676a98ab985fe'], + }), + ('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::Spec', '3.75', { + 'source_tmpl': 'PathTools-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/X/XS/XSAWYERX'], + 'checksums': ['a558503aa6b1f8c727c0073339081a77888606aa701ada1ad62dd9d8c3f945a2'], + }), + ('IO::File', '1.51', { + 'source_tmpl': 'IO-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR/'], + 'checksums': ['5493ea55998728cd2b7ecb8234c58fb5d5df27098d0f07addca22444d7616ce0'], + }), + ('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'], + }), + ('Carp', '1.50', { + 'source_tmpl': 'Carp-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/X/XS/XSAWYERX'], + 'checksums': ['f5273b4e1a6d51b22996c48cb3a3cbc72fd456c4038f5c20b127e2d4bcbcebd9'], + }), + ('Exporter', '5.77', { + 'source_tmpl': 'Exporter-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR'], + 'checksums': ['3892ee5c6ae6e482068d53b61e25cae4fc71ddc79cc47446e385df0a669bb8ed'], + }), + ('Text::ParseWords', '3.31', { + 'source_tmpl': 'Text-ParseWords-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB/'], + 'checksums': ['2ae555ba084d75b2b8feeeb8d1a00911276815ada86bccb1452236964d5a2fc7'], + }), + ('Data::Dumper', '2.183', { + 'source_tmpl': 'Data-Dumper-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NW/NWCLARK/'], + 'checksums': ['e42736890b7dae1b37818d9c5efa1f1fdc52dec04f446a33a4819bf1d4ab5ad3'], + }), +] + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/p/Perl/Perl-5.36.1-GCCcore-13.1.0.eb b/easybuild/easyconfigs/p/Perl/Perl-5.36.1-GCCcore-13.1.0.eb new file mode 100644 index 00000000000..929a2807a02 --- /dev/null +++ b/easybuild/easyconfigs/p/Perl/Perl-5.36.1-GCCcore-13.1.0.eb @@ -0,0 +1,86 @@ +name = 'Perl' +version = '5.36.1' + +homepage = 'https://www.perl.org/' +description = """Larry Wall's Practical Extraction and Report Language + +Includes a small selection of extra CPAN packages for core functionality. +""" + +toolchain = {'name': 'GCCcore', 'version': '13.1.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://www.cpan.org/src/%(version_major)s.0'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['68203665d8ece02988fc77dc92fccbb297a83a4bb4b8d07558442f978da54cc1'] + +builddependencies = [ + ('binutils', '2.40'), +] + +dependencies = [ + ('zlib', '1.2.13'), +] + +# !! order of extensions is important !! +# extensions updated on 2023-05-02 +# includes all dependencies for Autotools +exts_list = [ + ('threads', '2.21', { + 'source_tmpl': 'threads-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JD/JDHEDDEN'], + 'checksums': ['28394c98a2bcae6f20ffb8a3d965a1c194b764c650169e2050ee38dbaa10f110'], + }), + ('constant', '1.33', { + 'source_tmpl': 'constant-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/R/RJ/RJBS'], + 'checksums': ['79965d4130eb576670e27ca0ae6899ef0060c76da48b02b97682166882f1b504'], + }), + ('Getopt::Long', '2.54', { + 'source_tmpl': 'Getopt-Long-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JV/JV'], + 'checksums': ['584ba3c99bb2d6b341375212f9b874613f706cfb01cee21b8a2676a98ab985fe'], + }), + ('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::Spec', '3.75', { + 'source_tmpl': 'PathTools-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/X/XS/XSAWYERX'], + 'checksums': ['a558503aa6b1f8c727c0073339081a77888606aa701ada1ad62dd9d8c3f945a2'], + }), + ('IO::File', '1.51', { + 'source_tmpl': 'IO-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR/'], + 'checksums': ['5493ea55998728cd2b7ecb8234c58fb5d5df27098d0f07addca22444d7616ce0'], + }), + ('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'], + }), + ('Carp', '1.50', { + 'source_tmpl': 'Carp-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/X/XS/XSAWYERX'], + 'checksums': ['f5273b4e1a6d51b22996c48cb3a3cbc72fd456c4038f5c20b127e2d4bcbcebd9'], + }), + ('Exporter', '5.77', { + 'source_tmpl': 'Exporter-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/T/TO/TODDR'], + 'checksums': ['3892ee5c6ae6e482068d53b61e25cae4fc71ddc79cc47446e385df0a669bb8ed'], + }), + ('Text::ParseWords', '3.31', { + 'source_tmpl': 'Text-ParseWords-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NE/NEILB/'], + 'checksums': ['2ae555ba084d75b2b8feeeb8d1a00911276815ada86bccb1452236964d5a2fc7'], + }), + ('Data::Dumper', '2.183', { + 'source_tmpl': 'Data-Dumper-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/N/NW/NWCLARK/'], + 'checksums': ['e42736890b7dae1b37818d9c5efa1f1fdc52dec04f446a33a4819bf1d4ab5ad3'], + }), +] + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/p/PheWeb/PheWeb-1.1.20-foss-2019b-Python-3.7.4.eb b/easybuild/easyconfigs/p/PheWeb/PheWeb-1.1.20-foss-2019b-Python-3.7.4.eb new file mode 100644 index 00000000000..50017dfb45d --- /dev/null +++ b/easybuild/easyconfigs/p/PheWeb/PheWeb-1.1.20-foss-2019b-Python-3.7.4.eb @@ -0,0 +1,69 @@ +easyblock = 'PythonBundle' + +name = 'PheWeb' +version = '1.1.20' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://github.com/statgen/pheweb' +description = """A tool for building PheWAS websites from association files""" + +toolchain = {'name': 'foss', 'version': '2019b'} + +dependencies = [ + ('Python', '3.7.4'), + ('SciPy-bundle', '2019.10', versionsuffix), + ('Pysam', '0.15.3'), + ('openpyxl', '3.0.3', versionsuffix), + ('Flask', '1.1.2', versionsuffix), + ('tqdm', '4.41.1'), +] + +use_pip = True + +exts_list = [ + ('Brotli', '1.0.7', { + 'source_tmpl': '%(name)s-%(version)s.zip', + 'checksums': ['0538dc1744fd17c314d2adc409ea7d1b779783b89fd95bcfb0c2acc93a6ea5a7'], + }), + ('Flask-Compress', '1.5.0', { + 'checksums': ['f367b2b46003dd62be34f7fb1379938032656dca56377a9bc90e7188e4289a7c'], + }), + ('Flask-Login', '0.5.0', { + 'checksums': ['6d33aef15b5bcead780acc339464aae8a6e28f13c90d8b1cf9de8b549d1c0b4b'], + }), + ('rauth', '0.7.3', { + 'checksums': ['524cdbc1c28560eacfc9a9d40c59525eb8d00fdf07fbad86107ea24411477b0a'], + }), + ('marisa-trie', '0.7.5', { + 'checksums': ['c73bc25d868e8c4ea7aa7f1e19892db07bba2463351269b05340ccfa06eb2baf'], + }), + ('gunicorn', '20.0.4', { + 'checksums': ['1904bb2b8a43658807108d59c3f3d56c2b6121a701161de0ddf9ad140073c626'], + }), + ('boltons', '19.1.0', { + 'checksums': ['c32b2d121331a9bc7c220050d4273f3aa359b7569cb4794188e71524603113dc'], + }), + ('wget', '3.2', { + 'source_tmpl': '%(name)s-%(version)s.zip', + 'checksums': ['35e630eca2aa50ce998b9b1a127bb26b30dfee573702782aa982f875e3f16061'], + }), + ('greenlet', '0.4.16', { + 'checksums': ['6e06eac722676797e8fce4adb8ad3dc57a1bb3adfb0dd3fdf8306c055a38456c'], + }), + ('zope.event', '4.4', { + 'checksums': ['69c27debad9bdacd9ce9b735dad382142281ac770c4a432b533d6d65c4614bcf'], + }), + ('zope.interface', '5.1.0', { + 'checksums': ['40e4c42bd27ed3c11b2c983fecfb03356fae1209de10686d03c02c8696a1d90e'], + }), + ('gevent', '1.5.0', { + 'checksums': ['b2814258e3b3fb32786bb73af271ad31f51e1ac01f33b37426b66cb8491b4c29'], + }), + (name, version, { + 'checksums': ['98cc12c0cecb115b8db351bc3903ab047431e0f1c15bd8249a7270e60e61e85b'], + }), +] + +sanity_pip_check = True + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/p/PyBioLib/PyBioLib-1.1.988-GCCcore-11.3.0.eb b/easybuild/easyconfigs/p/PyBioLib/PyBioLib-1.1.988-GCCcore-11.3.0.eb new file mode 100644 index 00000000000..961cf118485 --- /dev/null +++ b/easybuild/easyconfigs/p/PyBioLib/PyBioLib-1.1.988-GCCcore-11.3.0.eb @@ -0,0 +1,61 @@ +easyblock = "PythonBundle" + +name = 'PyBioLib' +version = '1.1.988' + +homepage = 'https://biolib.com/' +description = """PyBioLib is a Python package for running BioLib applications from Python +scripts and the command line. +BioLib is a library of biological data science applications. Applications on +BioLib range from small bioinformatics utilities to state-of-the-art machine +learning algorithms for predicting characteristics of biological molecules.""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +builddependencies = [ + ('binutils', '2.38'), +] + +dependencies = [ + ('Python', '3.10.4'), + ('Flask', '2.2.2'), + ('PyYAML', '6.0'), +] + +use_pip = True + +exts_list = [ + ('commonmark', '0.9.1', { + 'checksums': ['452f9dc859be7f06631ddcb328b6919c67984aca654e5fefb3914d54691aed60'], + }), + ('rich', '12.6.0', { + 'checksums': ['ba3a3775974105c221d31141f2c116f4fd65c5ceb0698657a11e9f295ec93fd0'], + }), + ('pycryptodome', '3.17', { + 'modulename': 'Crypto.PublicKey.RSA', + 'checksums': ['bce2e2d8e82fcf972005652371a3e8731956a0c1fbb719cc897943b3695ad91b'], + }), + ('websocket-client', '1.5.1', { + 'modulename': 'websocket', + 'checksums': ['3f09e6d8230892547132177f575a4e3e73cfdf06526e20cc02aa1c3b47184d40'], + }), + ('docker', '6.0.1', { + 'checksums': ['896c4282e5c7af5c45e8b683b0b0c33932974fe6e50fc6906a0a83616ab3da97'], + }), + ('PyJWT', '2.6.0', { + 'modulename': 'jwt', + 'checksums': ['69285c7e31fc44f68a1feb309e948e0df53259d579295e6cfe2b1792329f05fd'], + }), + ('gunicorn', '20.1.0', { + 'checksums': ['e0a968b5ba15f8a328fdfd7ab1fcb5af4470c28aaf7e55df02a99bc13138e6e8'], + }), + ('pybiolib', version, { + 'modulename': 'biolib', + 'preinstallopts': "sed -i 's/< 8.1.0/< 8.2.0/' pyproject.toml &", + 'checksums': ['95826eca25a4c15dee068ae31831ce83c57125abe0ba1d44e07906251ade933a'], + }), +] + +sanity_pip_check = True + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/p/PyCalib/PyCalib-20230531-gfbf-2022b.eb b/easybuild/easyconfigs/p/PyCalib/PyCalib-20230531-gfbf-2022b.eb new file mode 100644 index 00000000000..61154630966 --- /dev/null +++ b/easybuild/easyconfigs/p/PyCalib/PyCalib-20230531-gfbf-2022b.eb @@ -0,0 +1,28 @@ +easyblock = 'PythonPackage' + +name = 'PyCalib' +version = '20230531' +local_commit = '70cfbcb' + +homepage = 'https://github.com/classifier-calibration/PyCalib' +description = "Python library for classifier calibration" + +toolchain = {'name': 'gfbf', 'version': '2022b'} + +source_urls = ['https://github.com/classifier-calibration/PyCalib/archive/'] +sources = [{'download_filename': '%s.tar.gz' % local_commit, 'filename': SOURCELOWER_TAR_GZ}] +checksums = ['00728de1e7afd27a85050f505f6e21cca509d423a0785f8c586054a1bb79d30a'] + +dependencies = [ + ('Python', '3.10.8'), + ('SciPy-bundle', '2023.02'), + ('matplotlib', '3.7.0'), + ('scikit-learn', '1.2.1'), + ('statsmodels', '0.14.0'), +] + +download_dep_fail = True +use_pip = True +sanity_pip_check = True + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/p/PyOpenCL/PyOpenCL-2021.2.13-foss-2021b-CUDA-11.4.1.eb b/easybuild/easyconfigs/p/PyOpenCL/PyOpenCL-2021.2.13-foss-2021b-CUDA-11.4.1.eb new file mode 100644 index 00000000000..8ba4d12ddea --- /dev/null +++ b/easybuild/easyconfigs/p/PyOpenCL/PyOpenCL-2021.2.13-foss-2021b-CUDA-11.4.1.eb @@ -0,0 +1,34 @@ +easyblock = 'PythonBundle' + +name = 'PyOpenCL' +version = '2021.2.13' +versionsuffix = '-CUDA-%(cudaver)s' + +homepage = "https://mathema.tician.de/software/pyopencl/" +description = """PyOpenCL lets you access GPUs and other massively parallel compute devices from Python.""" + +toolchain = {'name': 'foss', 'version': '2021b'} + +dependencies = [ + ('CUDA', '11.4.1', '', SYSTEM), + ('Python', '3.9.6'), + ('SciPy-bundle', '2021.10'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('appdirs', '1.4.4', { + 'checksums': ['7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41'], + }), + ('pytools', '2021.2.9', { + 'checksums': ['db6cf83c9ba0a165d545029e2301621486d1e9ef295684072e5cd75316a13755'], + }), + ('pyopencl', version, { + 'preinstallopts': "./configure.py --cl-pretend-version=1.2 && ", + 'checksums': ['8b969c3a9d4153adc6b0915301ffdf626a3784b869a964645de100ae60de7b06'], + }), +] + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/p/PyQtGraph/PyQtGraph-0.13.3-foss-2022a.eb b/easybuild/easyconfigs/p/PyQtGraph/PyQtGraph-0.13.3-foss-2022a.eb new file mode 100644 index 00000000000..fb3b71bfa6b --- /dev/null +++ b/easybuild/easyconfigs/p/PyQtGraph/PyQtGraph-0.13.3-foss-2022a.eb @@ -0,0 +1,30 @@ +# updated: Denis Kristak +easyblock = 'PythonPackage' +# TH77EMBL adapted from PyQtGraph-0.11.0-foss-2019b-Python-3.7.4.eb +name = 'PyQtGraph' +version = '0.13.3' + +homepage = 'http://www.pyqtgraph.org/' +description = """PyQtGraph is a pure-python graphics and GUI library built on PyQt5/PySide2 and numpy.""" + +toolchain = {'name': 'foss', 'version': '2022a'} +toolchainopts = {'pic': True} + +github_account = 'pyqtgraph' +source_urls = [GITHUB_SOURCE] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['2dd03b68543fba85aea04e3c07311bfe7d5fd87f40ad6954e83b261d23f92de1'] + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), + ('PyQt5', '5.15.5'), + ('PyOpenGL', '3.1.6'), +] + +use_pip = True +download_dep_fail = True + +sanity_pip_check = True + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/p/PyTorch-Image-Models/PyTorch-Image-Models-0.9.2-foss-2022a-CUDA-11.7.0.eb b/easybuild/easyconfigs/p/PyTorch-Image-Models/PyTorch-Image-Models-0.9.2-foss-2022a-CUDA-11.7.0.eb new file mode 100644 index 00000000000..bcc6dac2001 --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch-Image-Models/PyTorch-Image-Models-0.9.2-foss-2022a-CUDA-11.7.0.eb @@ -0,0 +1,38 @@ +easyblock = "PythonBundle" + +name = 'PyTorch-Image-Models' +version = '0.9.2' +versionsuffix = '-CUDA-%(cudaver)s' + +homepage = 'https://huggingface.co/docs/timm' +description = """PyTorch Image Models (timm) is a collection of image models, layers, utilities, +optimizers, schedulers, data-loaders / augmentations, and reference training / +validation scripts that aim to pull together a wide variety of SOTA models with +ability to reproduce ImageNet training results.""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +dependencies = [ + ('CUDA', '11.7.0', '', SYSTEM), + ('Python', '3.10.4'), + ('PyYAML', '6.0'), + ('torchvision', '0.13.1', versionsuffix), + ('Safetensors', '0.3.1', versionsuffix), + ('tqdm', '4.64.0'), # needed by huggingface-hub +] + +use_pip = True + +exts_list = [ + ('huggingface-hub', '0.15.1', { + 'source_tmpl': 'huggingface_hub-%(version)s.tar.gz', + 'checksums': ['a61b7d1a7769fe10119e730277c72ab99d95c48d86a3d6da3e9f3d0f632a4081'], + }), + ('timm', version, { + 'checksums': ['d0977cc5e02c69bda979fca8b52aa315a5f2cb64ebf8ad2c4631b1e452762c14'], + }), +] + +sanity_pip_check = True + +moduleclass = 'ai' diff --git a/easybuild/easyconfigs/p/PyTorch-Image-Models/PyTorch-Image-Models-0.9.2-foss-2022a.eb b/easybuild/easyconfigs/p/PyTorch-Image-Models/PyTorch-Image-Models-0.9.2-foss-2022a.eb new file mode 100644 index 00000000000..385912e3d65 --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch-Image-Models/PyTorch-Image-Models-0.9.2-foss-2022a.eb @@ -0,0 +1,36 @@ +easyblock = "PythonBundle" + +name = 'PyTorch-Image-Models' +version = '0.9.2' + +homepage = 'https://huggingface.co/docs/timm' +description = """PyTorch Image Models (timm) is a collection of image models, layers, utilities, +optimizers, schedulers, data-loaders / augmentations, and reference training / +validation scripts that aim to pull together a wide variety of SOTA models with +ability to reproduce ImageNet training results.""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +dependencies = [ + ('Python', '3.10.4'), + ('PyYAML', '6.0'), + ('torchvision', '0.13.1'), + ('Safetensors', '0.3.1'), + ('tqdm', '4.64.0'), # needed by huggingface-hub +] + +use_pip = True + +exts_list = [ + ('huggingface-hub', '0.15.1', { + 'source_tmpl': 'huggingface_hub-%(version)s.tar.gz', + 'checksums': ['a61b7d1a7769fe10119e730277c72ab99d95c48d86a3d6da3e9f3d0f632a4081'], + }), + ('timm', version, { + 'checksums': ['d0977cc5e02c69bda979fca8b52aa315a5f2cb64ebf8ad2c4631b1e452762c14'], + }), +] + +sanity_pip_check = True + +moduleclass = 'ai' diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-1.12.1_use-predefined-data-in-test-optim.patch b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.12.1_use-predefined-data-in-test-optim.patch deleted file mode 100644 index 5dc393c17fd..00000000000 --- a/easybuild/easyconfigs/p/PyTorch/PyTorch-1.12.1_use-predefined-data-in-test-optim.patch +++ /dev/null @@ -1,132 +0,0 @@ -The test test_optim.test_nadam has high error rate, this let's the test use -predefined data instead to be more stable. See -https://github.com/pytorch/pytorch/issues/98414 - -Viktor Rehnberg -diff --git a/test/test_optim.py b/test/test_optim.py -index 6d587b4b352..c8ec9db87e1 100644 ---- a/test/test_optim.py -+++ b/test/test_optim.py -@@ -244,8 +244,14 @@ class TestOptim(TestCase): - return set(k for k in obj.__dict__ if not k.startswith('_')) - self.assertEqual(getPublicAttr(optimizer), getPublicAttr(deepcopy(optimizer))) - -- def _test_basic_cases(self, constructor, scheduler_constructors=None, -- ignore_multidevice=False, constructor_accepts_maximize=False): -+ def _test_basic_cases( -+ self, -+ constructor, -+ scheduler_constructors=None, -+ ignore_multidevice=False, -+ constructor_accepts_maximize=False, -+ use_predefined_data=False, -+ ): - if scheduler_constructors is None: - scheduler_constructors = [] - -@@ -254,26 +260,60 @@ class TestOptim(TestCase): - return lambda weight, bias: constructor(weight, bias, maximize) - return constructor - -+ def make_weight_tensor(): -+ if use_predefined_data: -+ return torch.Tensor([ -+ [ 0.6390, -0.5524, -0.1877, -1.1132, 0.3412], -+ [-0.6489, -0.6220, -1.2537, -0.0966, 0.5481], -+ [-0.6923, 0.5768, -0.9141, 1.9410, 1.0036], -+ [ 0.5842, 1.1618, -0.1871, 1.0344, 0.5668], -+ [ 0.2123, 2.3076, 0.7522, -0.7059, 1.3849], -+ [-0.1537, 0.5159, -1.2004, 0.2017, -0.0903], -+ [ 0.9434, -0.7030, 0.0618, -1.2951, 1.7721], -+ [ 0.5890, -1.0763, -1.2541, -0.8403, -0.4343], -+ [-0.2065, -0.6883, 0.8464, -0.7792, 0.6750], -+ [-1.6577, 0.4532, 0.0791, 0.2243, 0.1148], -+ ]) -+ else: -+ return torch.randn(10, 5) -+ -+ def make_bias_tensor(): -+ if use_predefined_data: -+ return torch.Tensor([ -+ -2.4031, -0.9295, -1.0762, 0.4600, -1.8620, -0.6234, 0.1999, -0.0612, 0.8319, -1.6673, -+ ]) -+ else: -+ return torch.randn(10) -+ -+ def make_input_tensor(): -+ if use_predefined_data: -+ return torch.Tensor([1.1119, -0.4309, -0.7759, -0.0659, 0.4746]) -+ else: -+ return torch.randn(5) -+ -+ def make_non_contiguous(tensor): -+ return torch.stack([tensor, tensor]).view(*tensor.size(), 2)[..., 0] -+ - for maximize in (True, False): - self._test_state_dict( -- torch.randn(10, 5), -- torch.randn(10), -- torch.randn(5), -+ make_weight_tensor(), -+ make_bias_tensor(), -+ make_input_tensor(), - make_two_arg_constructor(constructor, maximize), - ) - self._test_basic_cases_template( -- torch.randn(10, 5), -- torch.randn(10), -- torch.randn(5), -+ make_weight_tensor(), -+ make_bias_tensor(), -+ make_input_tensor(), - constructor, - scheduler_constructors, - constructor_accepts_maximize, - ) - # non-contiguous parameters - self._test_basic_cases_template( -- torch.randn(10, 5, 2)[..., 0], -- torch.randn(10, 2)[..., 0], -- torch.randn(5), -+ make_non_contiguous(make_weight_tensor()), -+ make_non_contiguous(make_bias_tensor()), -+ make_input_tensor(), - constructor, - scheduler_constructors, - constructor_accepts_maximize, -@@ -282,9 +322,9 @@ class TestOptim(TestCase): - if not torch.cuda.is_available(): - return - self._test_basic_cases_template( -- torch.randn(10, 5).cuda(), -- torch.randn(10).cuda(), -- torch.randn(5).cuda(), -+ make_weight_tensor().cuda(), -+ make_bias_tensor().cuda(), -+ make_input_tensor().cuda(), - constructor, - scheduler_constructors, - constructor_accepts_maximize, -@@ -293,9 +333,9 @@ class TestOptim(TestCase): - if not torch.cuda.device_count() > 1 or ignore_multidevice: - return - self._test_basic_cases_template( -- torch.randn(10, 5).cuda(0), -- torch.randn(10).cuda(1), -- torch.randn(5).cuda(0), -+ make_weight_tensor().cuda(0), -+ make_bias_tensor().cuda(1), -+ make_input_tensor().cuda(0), - constructor, - scheduler_constructors, - constructor_accepts_maximize, -@@ -668,7 +708,8 @@ class TestOptim(TestCase): - self._test_basic_cases( - lambda weight, bias: optimizer( - self._build_params_dict(weight, bias, lr=1e-2), -- lr=1e-3) -+ lr=1e-3), -+ use_predefined_data=True, - ) - self._test_basic_cases( - lambda weight, bias: optimizer([weight, bias], lr=1e-3, weight_decay=0.1, momentum_decay=6e-3) diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1-foss-2022a.eb b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1-foss-2022a.eb new file mode 100644 index 00000000000..b6a1e3ca5b2 --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1-foss-2022a.eb @@ -0,0 +1,116 @@ +name = 'PyTorch' +version = '1.13.1' + +homepage = 'https://pytorch.org/' +description = """Tensors and Dynamic neural networks in Python with strong GPU acceleration. +PyTorch is a deep learning framework that puts Python first.""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +source_urls = [GITHUB_RELEASE] +sources = ['%(namelower)s-v%(version)s.tar.gz'] +patches = [ + 'PyTorch-1.7.0_disable-dev-shm-test.patch', + 'PyTorch-1.10.0_fix-kineto-crash.patch', + 'PyTorch-1.11.0_fix-fsdp-fp16-test.patch', + 'PyTorch-1.11.1_skip-test_init_from_local_shards.patch', + 'PyTorch-1.12.1_add-hypothesis-suppression.patch', + 'PyTorch-1.12.1_fix-skip-decorators.patch', + 'PyTorch-1.12.1_fix-test_cpp_extensions_jit.patch', + 'PyTorch-1.12.1_fix-test_wishart_log_prob.patch', + 'PyTorch-1.12.1_fix-TestTorch.test_to.patch', + 'PyTorch-1.12.1_fix-use-after-free-in-tensorpipe-agent.patch', + 'PyTorch-1.12.1_fix-vsx-vector-funcs.patch', + 'PyTorch-1.12.1_fix-vsx-loadu.patch', + 'PyTorch-1.12.1_skip-test_round_robin.patch', + 'PyTorch-1.13.1_fix-pytest-args.patch', + 'PyTorch-1.13.1_fix-test-ops-conf.patch', + 'PyTorch-1.13.1_no-cuda-stubs-rpath.patch', + 'PyTorch-1.13.1_remove-flaky-test-in-testnn.patch', + 'PyTorch-1.13.1_skip-ao-sparsity-test-without-fbgemm.patch', + 'PyTorch-1.13.1_increase-tolerance-test_ops.patch', + 'PyTorch-1.13.1_install-vsx-vec-headers.patch', + 'PyTorch-1.13.1_skip-failing-grad-test.patch', +] +checksums = [ + {'pytorch-v1.13.1.tar.gz': 'dbc229ee9750b02b514937d017744443a269ea0241ed3f32b9af0703589d25d4'}, + {'PyTorch-1.7.0_disable-dev-shm-test.patch': '622cb1eaeadc06e13128a862d9946bcc1f1edd3d02b259c56a9aecc4d5406b8a'}, + {'PyTorch-1.10.0_fix-kineto-crash.patch': 'dc467333b28162149af8f675929d8c6bf219f23230bfc0d39af02ba4f6f882eb'}, + {'PyTorch-1.11.0_fix-fsdp-fp16-test.patch': 'bb1c4e6d6fd4b0cf57ff8b824c797331b533bb1ffc63f5db0bae3aee10c3dc13'}, + {'PyTorch-1.11.1_skip-test_init_from_local_shards.patch': + '4aeb1b0bc863d4801b0095cbce69f8794066748f0df27c6aaaf729c5ecba04b7'}, + {'PyTorch-1.12.1_add-hypothesis-suppression.patch': + 'e71ffb94ebe69f580fa70e0de84017058325fdff944866d6bd03463626edc32c'}, + {'PyTorch-1.12.1_fix-skip-decorators.patch': 'e3ca6e42b2fa592ea095939fb59ab875668a058479407db3f3684cc5c6f4146c'}, + {'PyTorch-1.12.1_fix-test_cpp_extensions_jit.patch': + '1efc9850c431d702e9117d4766277d3f88c5c8b3870997c9974971bce7f2ab83'}, + {'PyTorch-1.12.1_fix-test_wishart_log_prob.patch': + 'cf475ae6e6234b96c8d1bf917597c5176c94b3ccd940b72f2e1cd0c979580f45'}, + {'PyTorch-1.12.1_fix-TestTorch.test_to.patch': '75f27987c3f25c501e719bd2b1c70a029ae0ee28514a97fe447516aee02b1535'}, + {'PyTorch-1.12.1_fix-use-after-free-in-tensorpipe-agent.patch': + '0bd7e88b92c4c6f0fecf01746009858ba19f2df68b10b88c41485328a531875d'}, + {'PyTorch-1.12.1_fix-vsx-vector-funcs.patch': 'caccbf60f62eac313896c1eaec78b08f5d0fdfcb907079087490bb13d1561aa2'}, + {'PyTorch-1.12.1_fix-vsx-loadu.patch': '8bfe3c94ada1dd1f7974a1261a8b576fb7ae944050fa1c7830fca033831123b2'}, + {'PyTorch-1.12.1_skip-test_round_robin.patch': '63d4849b78605aa088fdff695637d9473ea60dee603a3ff7f788690d70c55349'}, + {'PyTorch-1.13.1_fix-pytest-args.patch': 'd3e3c841cf8d73683750f29326f2be56ee0bb5df7ff522baf7d7c3f301a91ec2'}, + {'PyTorch-1.13.1_fix-test-ops-conf.patch': 'df652eec7753864ebebbfeca546929a53e3fb8f24259d5c9b964266a8551198c'}, + {'PyTorch-1.13.1_no-cuda-stubs-rpath.patch': '4c636059850fc9d1ecb27ce275f8aad5d5b6fdc19e35aff0c25b86cb3201352a'}, + {'PyTorch-1.13.1_remove-flaky-test-in-testnn.patch': + 'be83ff61fe2dedab6d49c232936d5622df81ab49154264490021c6c828e53315'}, + {'PyTorch-1.13.1_skip-ao-sparsity-test-without-fbgemm.patch': + '92cd48ef6d01aa7e07ccce1dcaf40bc3fb0f220c4aa4fea15f3e05fb42e37909'}, + {'PyTorch-1.13.1_increase-tolerance-test_ops.patch': + 'd53e98bf0da7788b68042dcc31bc5708dae962fde3f110cc827eb807a5d08e49'}, + {'PyTorch-1.13.1_install-vsx-vec-headers.patch': + '7b678f54bb947afd4767f5877ac424b4b94ce5db609ea20f5a869ccf4027035f'}, + {'PyTorch-1.13.1_skip-failing-grad-test.patch': '6681200f9509893cb9231b5c93ac9bc5e6d9d9ae4febefca52e7cbc843ba8f51'}, +] + +osdependencies = [OS_PKG_IBVERBS_DEV] + +builddependencies = [ + ('CMake', '3.23.1'), + ('hypothesis', '6.46.7'), + # For tests + ('pytest-rerunfailures', '11.1'), + ('pytest-shard', '0.1.2'), +] + +dependencies = [ + ('Ninja', '1.10.2'), # Required for JIT compilation of C++ extensions + ('Python', '3.10.4'), + ('protobuf', '3.19.4'), + ('protobuf-python', '3.19.4'), + ('pybind11', '2.9.2'), + ('SciPy-bundle', '2022.05'), + ('PyYAML', '6.0'), + ('MPFR', '4.1.0'), + ('GMP', '6.2.1'), + ('numactl', '2.0.14'), + ('FFmpeg', '4.4.2'), + ('Pillow', '9.1.1'), + ('expecttest', '0.1.3'), +] + +excluded_tests = { + '': [ + # This test seems to take too long on NVIDIA Ampere at least. + 'distributed/test_distributed_spawn', + # Broken on CUDA 11.6/11.7: https://github.com/pytorch/pytorch/issues/75375 + 'distributions/test_constraints', + # no xdoctest + 'doctests', + # failing on broadwell + # See https://github.com/easybuilders/easybuild-easyconfigs/issues/17712 + 'test_native_mha', + # intermittent failures on various systems + # See https://github.com/easybuilders/easybuild-easyconfigs/issues/17712 + 'distributed/rpc/test_tensorpipe_agent', + ] +} + +runtest = 'cd test && PYTHONUNBUFFERED=1 %(python)s run_test.py --continue-through-error --verbose %(excluded_tests)s' + +tests = ['PyTorch-check-cpp-extension.py'] + +moduleclass = 'ai' diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_fix-pytest-args.patch b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_fix-pytest-args.patch new file mode 100644 index 00000000000..f89df575837 --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_fix-pytest-args.patch @@ -0,0 +1,28 @@ +As we don't set `--save-xml` pytest is called without arguments causing it to try to discover ALL tests. +This leads to massive failures in e.g. `test_ops*` where `--use-pytest` is used by the tests. +See https://github.com/pytorch/pytorch/pull/94589 + +Author: Alexander Grund (TU Dresden) + +diff --git a/torch/testing/_internal/common_utils.py b/torch/testing/_internal/common_utils.py +index e32850908d4..e63c6f2a392 100644 +--- a/torch/testing/_internal/common_utils.py ++++ b/torch/testing/_internal/common_utils.py +@@ -737,14 +737,16 @@ def run_tests(argv=UNITTEST_ARGS): + failed |= wait_for_process(p) != 0 + assert not failed, "Some test shards have failed" + elif USE_PYTEST: ++ pytest_args = argv + if TEST_SAVE_XML: + test_report_path = get_report_path(pytest=True) + print(f'Test results will be stored in {test_report_path}') ++ pytest_args = pytest_args + [f'--junit-xml-reruns={test_report_path}'] + + import pytest + os.environ["NO_COLOR"] = "1" + os.environ["USING_PYTEST"] = "1" +- exit_code = pytest.main(args=argv + [f'--junit-xml-reruns={test_report_path}'] if TEST_SAVE_XML else []) ++ exit_code = pytest.main(args=pytest_args) + del os.environ["USING_PYTEST"] + if TEST_SAVE_XML: + sanitize_pytest_xml(test_report_path) diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_fix-test-ops-conf.patch b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_fix-test-ops-conf.patch new file mode 100644 index 00000000000..d30746dab4d --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_fix-test-ops-conf.patch @@ -0,0 +1,26 @@ +From 8581301957b0018a32433f85163535709bc9d332 Mon Sep 17 00:00:00 2001 +From: Masaki Kozuki +Date: Fri, 7 Oct 2022 21:25:07 -0700 +Subject: [PATCH] try using a different group name + +ref: +https://github.com/pytorch/pytorch/issues/85923#issuecomment-1272220271 + +Signed-off-by: Masaki Kozuki +--- + functorch/test/conftest.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/functorch/test/conftest.py b/functorch/test/conftest.py +index d2e929a9a58db..afc39d9f35de9 100644 +--- a/functorch/test/conftest.py ++++ b/functorch/test/conftest.py +@@ -17,7 +17,7 @@ + + + def pytest_addoption(parser: Parser) -> None: +- group = parser.getgroup("terminal reporting") ++ group = parser.getgroup("terminal reporting functorch") + group.addoption( + "--junit-xml-reruns", + action="store", diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_increase-tolerance-test_ops.patch b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_increase-tolerance-test_ops.patch new file mode 100644 index 00000000000..fb28aadbefa --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_increase-tolerance-test_ops.patch @@ -0,0 +1,21 @@ +`test_out` may fail due to slightly different values caused by different order of matrizes in SGEMM: + +> Mismatched elements: 1 / 50 (2.0%) +> Greatest absolute difference: 1.430511474609375e-05 at index (4, 5) (up to 1e-05 allowed) +> Greatest relative difference: 4.65393206065873e-06 at index (4, 5) (up to 1.3e-06 allowed) + +Author: Alexander Grund (TU Dresden) +Updated for PyTorch 1.13.1: Simon Branford (University of Birmingham) + +--- a/test/test_ops.py ++++ b/test/test_ops.py +@@ -545,6 +545,9 @@ + else list(supported_dtypes)[0] + ) + ++ if dtype is torch.float32: ++ self.precision, self.rel_tol = (1.5e-05, 1e-05) ++ + samples = op.sample_inputs(device, dtype) + for sample in samples: + # calls it normally to get the expected result diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_install-vsx-vec-headers.patch b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_install-vsx-vec-headers.patch new file mode 100644 index 00000000000..1f6150a5cb0 --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_install-vsx-vec-headers.patch @@ -0,0 +1,35 @@ +Add missing headers to the installation which fixes e.g. test_cpp_extensions_aot_ninja +See https://github.com/pytorch/pytorch/pull/85547 + +Author: Alexander Grund (TU Dresden) +Updated for PyTorch 1.13.1: Simon Branford (University of Birmingham) + +--- a/aten/src/ATen/CMakeLists.txt ++++ b/aten/src/ATen/CMakeLists.txt +@@ -56,7 +56,7 @@ + EXCLUDE(ATen_CORE_TEST_SRCS "${ATen_CORE_TEST_SRCS}" ${ATen_CORE_EXCLUDED_TEST_SRCS}) + endif() + +-file(GLOB base_h "*.h" "detail/*.h" "cpu/*.h" "cpu/vec/vec512/*.h" "cpu/vec/vec256/*.h" "cpu/vec/*.h" "quantized/*.h" "functorch/*.h") ++file(GLOB base_h "*.h" "detail/*.h" "cpu/*.h" "cpu/vec/vec512/*.h" "cpu/vec/vec256/*.h" "cpu/vec/vec256/vsx/*.h" "cpu/vec/*.h" "quantized/*.h" "functorch/*.h") + file(GLOB base_cpp "*.cpp" "detail/*.cpp" "cpu/*.cpp" "functorch/*.cpp") + file(GLOB cuda_h "cuda/*.h" "cuda/detail/*.h" "cuda/*.cuh" "cuda/detail/*.cuh") + file(GLOB cuda_cpp "cuda/*.cpp" "cuda/detail/*.cpp") +--- a/setup.py ++++ b/setup.py +@@ -1031,6 +1031,7 @@ + 'include/ATen/*.h', + 'include/ATen/cpu/*.h', + 'include/ATen/cpu/vec/vec256/*.h', ++ 'include/ATen/cpu/vec/vec256/vsx/*.h', + 'include/ATen/cpu/vec/vec512/*.h', + 'include/ATen/cpu/vec/*.h', + 'include/ATen/core/*.h', +@@ -1138,6 +1139,7 @@ + 'include/THH/*.cuh', + 'include/THH/*.h*', + 'include/THH/generic/*.h', ++ 'include/sleef.h', + 'share/cmake/ATen/*.cmake', + 'share/cmake/Caffe2/*.cmake', + 'share/cmake/Caffe2/public/*.cmake', diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_no-cuda-stubs-rpath.patch b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_no-cuda-stubs-rpath.patch new file mode 100644 index 00000000000..be2335491ea --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_no-cuda-stubs-rpath.patch @@ -0,0 +1,185 @@ +# PyTorch's CMAKE configuration by default sets RUNPATH on libraries if they link other libraries +# that are outside the build tree, which is done because of the CMAKE config on +# https://github.com/pytorch/pytorch/blob/v1.10.0/cmake/Dependencies.cmake#L10. +# This provides problems, since the cuda stubs library path then also gets added to the RUNPATH. +# As a result, at runtime, the stub version of things like libcuda.so.1 gets picked up, instead of the real drivers +# See https://github.com/easybuilders/easybuild-easyconfigs/issues/14359 +# This line https://github.com/pytorch/pytorch/blob/v1.10.0/cmake/Dependencies.cmake#L16 +# Makes sure that any path that is linked, is also added to the RUNPATH. +# This has been reported upstream in https://github.com/pytorch/pytorch/issues/35418 +# and a fix was attempted in https://github.com/pytorch/pytorch/pull/37737 but it was reverted +# +# This EasyBuild patch changes behavior for the libraries that were failing, i.e. the ones in this list: +# https://github.com/easybuilders/easybuild-easyconfigs/issues/14359#issuecomment-970479904 +# This is done by setting INSTALL_RPATH_USE_LINK_PATH to false, and instead, specifying the RPATH +# explicitely by defining INSTALL_RPATH, but only adding directories that do not match to the "stubs" regex +# +# Original patch: Caspar van Leeuwen +# Updated: Alexander Grund (TU Dresden) +# +# See https://github.com/pytorch/pytorch/pull/87593 + +diff --git a/caffe2/CMakeLists.txt b/caffe2/CMakeLists.txt +index 9074b848411..1d45807189b 100644 +--- a/caffe2/CMakeLists.txt ++++ b/caffe2/CMakeLists.txt +@@ -631,13 +631,12 @@ endif() + if(USE_CUDA) + list(APPEND Caffe2_GPU_CU_SRCS ${Caffe2_GPU_HIP_JIT_FUSERS_SRCS}) + add_library(caffe2_nvrtc SHARED ${ATen_NVRTC_STUB_SRCS}) ++ include(${Torch_SOURCE_DIR}/cmake/LinkCudaLibraries.cmake) ++ link_cuda_libraries(caffe2_nvrtc ${CUDA_NVRTC} ${CUDA_CUDA_LIB} ${CUDA_NVRTC_LIB}) + if(MSVC) + # Delay load nvcuda.dll so we can import torch compiled with cuda on a CPU-only machine +- set(DELAY_LOAD_FLAGS "-DELAYLOAD:nvcuda.dll;delayimp.lib") +- else() +- set(DELAY_LOAD_FLAGS "") ++ target_link_libraries(caffe2_nvrtc "-DELAYLOAD:nvcuda.dll;delayimp.lib") + endif() +- target_link_libraries(caffe2_nvrtc ${CUDA_NVRTC} ${CUDA_CUDA_LIB} ${CUDA_NVRTC_LIB} ${DELAY_LOAD_FLAGS}) + target_include_directories(caffe2_nvrtc PRIVATE ${CUDA_INCLUDE_DIRS}) + install(TARGETS caffe2_nvrtc DESTINATION "${TORCH_INSTALL_LIB_DIR}") + if(USE_NCCL) +diff --git a/cmake/LinkCudaLibraries.cmake b/cmake/LinkCudaLibraries.cmake +new file mode 100644 +index 00000000000..005914ccc6f +--- /dev/null ++++ b/cmake/LinkCudaLibraries.cmake +@@ -0,0 +1,33 @@ ++# Link CUDA libraries to the given target, i.e.: `target_link_libraries(target )` ++# ++# Additionally makes sure CUDA stub libs don't end up being in RPath ++# ++# Example: link_cuda_libraries(mytarget PRIVATE ${CUDA_LIBRARIES}) ++function(link_cuda_libraries target) ++ set(libs ${ARGN}) ++ set(install_rpath "$ORIGIN") ++ set(filtered FALSE) ++ foreach(lib IN LISTS libs) ++ # CUDA stub libs are in form /prefix/lib/stubs/libcuda.so ++ # So extract the name of the parent folder, to check against "stubs" ++ # And the parent path which we need to add to the INSTALL_RPATH for non-stubs ++ get_filename_component(parent_path "${lib}" DIRECTORY) ++ get_filename_component(parent_name "${parent_path}" NAME) ++ if(parent_name STREQUAL "stubs") ++ message(STATUS "Filtering ${lib} from being set in ${target}'s RPATH, " ++ "because it appears to point to the CUDA stubs directory.") ++ set(filtered TRUE) ++ elseif(parent_path) ++ list(APPEND install_rpath ${parent_path}) ++ endif() ++ endforeach() ++ ++ # Regular link command ++ target_link_libraries(${target} ${scope} ${libs}) ++ # Manually set INSTALL_RPATH when there were any stub libs ++ if(filtered) ++ list(REMOVE_DUPLICATES install_rpath) ++ set_target_properties(${target} PROPERTIES INSTALL_RPATH_USE_LINK_PATH FALSE) ++ set_target_properties(${target} PROPERTIES INSTALL_RPATH "${install_rpath}") ++ endif() ++endfunction() +diff --git a/test/cpp/api/CMakeLists.txt b/test/cpp/api/CMakeLists.txt +index 6b801a07318..6ac92870479 100644 +--- a/test/cpp/api/CMakeLists.txt ++++ b/test/cpp/api/CMakeLists.txt +@@ -54,7 +54,8 @@ if(NOT MSVC) + endif() + + if(USE_CUDA) +- target_link_libraries(test_api PRIVATE ++ include(${Torch_SOURCE_DIR}/cmake/LinkCudaLibraries.cmake) ++ link_cuda_libraries(test_api PRIVATE + ${CUDA_LIBRARIES} + ${CUDA_NVRTC_LIB} + ${CUDA_CUDA_LIB} +diff --git a/test/cpp/dist_autograd/CMakeLists.txt b/test/cpp/dist_autograd/CMakeLists.txt +index 9969c63e16d..356ba5be55c 100644 +--- a/test/cpp/dist_autograd/CMakeLists.txt ++++ b/test/cpp/dist_autograd/CMakeLists.txt +@@ -10,7 +10,8 @@ if(USE_DISTRIBUTED AND NOT WIN32) + target_link_libraries(test_dist_autograd PRIVATE torch gtest) + + if(USE_CUDA) +- target_link_libraries(test_dist_autograd PRIVATE ++ include(${Torch_SOURCE_DIR}/cmake/LinkCudaLibraries.cmake) ++ link_cuda_libraries(test_dist_autograd PRIVATE + ${CUDA_LIBRARIES} + ${CUDA_NVRTC_LIB} + ${CUDA_CUDA_LIB} +diff --git a/test/cpp/jit/CMakeLists.txt b/test/cpp/jit/CMakeLists.txt +index 66a60fb01ca..005e18183d2 100644 +--- a/test/cpp/jit/CMakeLists.txt ++++ b/test/cpp/jit/CMakeLists.txt +@@ -148,7 +148,8 @@ if(LINUX) + endif() + + if(USE_CUDA) +- target_link_libraries(test_jit PRIVATE ++ include(${Torch_SOURCE_DIR}/cmake/LinkCudaLibraries.cmake) ++ link_cuda_libraries(test_jit PRIVATE + ${CUDA_LIBRARIES} + ${CUDA_NVRTC_LIB} + ${CUDA_CUDA_LIB} +diff --git a/test/cpp/rpc/CMakeLists.txt b/test/cpp/rpc/CMakeLists.txt +index 3997f8753e5..21fddbc645d 100644 +--- a/test/cpp/rpc/CMakeLists.txt ++++ b/test/cpp/rpc/CMakeLists.txt +@@ -33,7 +33,8 @@ target_include_directories( + target_link_libraries(test_cpp_rpc PRIVATE ${TORCH_RPC_TEST_DEPENDENCY_LIBS}) + + if(USE_CUDA) +- target_link_libraries(test_cpp_rpc PRIVATE ++ include(${Torch_SOURCE_DIR}/cmake/LinkCudaLibraries.cmake) ++ link_cuda_libraries(test_cpp_rpc PRIVATE + ${CUDA_LIBRARIES} + ${CUDA_NVRTC_LIB} + ${CUDA_CUDA_LIB} +diff --git a/test/cpp/tensorexpr/CMakeLists.txt b/test/cpp/tensorexpr/CMakeLists.txt +index 7dff70630d3..ecb83005492 100644 +--- a/test/cpp/tensorexpr/CMakeLists.txt ++++ b/test/cpp/tensorexpr/CMakeLists.txt +@@ -57,14 +57,15 @@ if(USE_PTHREADPOOL) + target_link_libraries(test_tensorexpr PRIVATE pthreadpool_interface) + endif() + if(USE_CUDA) +- target_link_libraries(test_tensorexpr PRIVATE ++ include(${Torch_SOURCE_DIR}/cmake/LinkCudaLibraries.cmake) ++ link_cuda_libraries(test_tensorexpr PRIVATE + ${CUDA_LIBRARIES} + ${CUDA_NVRTC_LIB} + ${CUDA_CUDA_LIB} + ${TORCH_CUDA_LIBRARIES}) + target_compile_definitions(test_tensorexpr PRIVATE USE_CUDA) + +- target_link_libraries(tutorial_tensorexpr PRIVATE ++ link_cuda_libraries(tutorial_tensorexpr PRIVATE + ${CUDA_LIBRARIES} + ${CUDA_NVRTC_LIB} + ${CUDA_CUDA_LIB} +diff --git a/test/test_torch.py b/test/test_torch.py +index 8de5b822d00..fce7b5714f1 100644 +--- a/test/test_torch.py ++++ b/test/test_torch.py +@@ -8414,6 +8414,21 @@ def add_neg_dim_tests(): + assert not hasattr(TestTorch, test_name), "Duplicated test name: " + test_name + setattr(TestTorch, test_name, make_neg_dim_test(name, tensor_arg, arg_constr, types, extra_dim)) + ++class TestRPATH(TestCase): ++ @unittest.skipIf(not sys.platform.startswith('linux'), "linux-only test") ++ def test_rpath(self): ++ """ ++ Make sure RPATH (or RUNPATH) in nvrtc does not contain a cuda stubs directory ++ issue gh-35418 ++ """ ++ libdir = os.path.join(os.path.dirname(torch._C.__file__), 'lib') ++ caffe2_nvrtc = os.path.join(libdir, 'libcaffe2_nvrtc.so') ++ if os.path.exists(caffe2_nvrtc): ++ output = subprocess.check_output(['objdump', '-x', caffe2_nvrtc]) ++ for line in output.split(b'\n'): ++ if b'RPATH' in line or b'RUNPATH' in line: ++ self.assertFalse(b'stubs' in line) ++ + # TODO: these empy classes are temporarily instantiated for XLA compatibility + # once XLA updates their test suite it should be removed + class TestViewOps(TestCase): diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_remove-flaky-test-in-testnn.patch b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_remove-flaky-test-in-testnn.patch new file mode 100644 index 00000000000..c95d2227258 --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_remove-flaky-test-in-testnn.patch @@ -0,0 +1,22 @@ +This test is flaky when run with the type float16. +I.e. TestNNDeviceTypeCPU.test_embedding_bag_device_cpu_int32_int32_float16 & + TestNNDeviceTypeCPU.test_embedding_bag_device_cpu_int64_int64_float16 +fail. +See https://github.com/pytorch/pytorch/issues/86638 +So remove the half precision test. + +Author: Alexander Grund (TU Dresden) + +diff --git a/test/nn/test_embedding.py b/test/nn/test_embedding.py +index f76e01c65c5..6b5de2b1059 100644 +--- a/test/nn/test_embedding.py ++++ b/test/nn/test_embedding.py +@@ -1108,7 +1108,7 @@ class TestEmbeddingNNDeviceType(NNTestCase): + self.assertRaises(RuntimeError, lambda: es(input.view(-1), offset)) + + @skipMeta +- @dtypes(*itertools.product((torch.int, torch.long), (torch.int, torch.long), (torch.float, torch.double, torch.half))) ++ @dtypes(*itertools.product((torch.int, torch.long), (torch.int, torch.long), (torch.float, torch.double))) + def test_embedding_bag_device(self, device, dtypes): + with set_default_dtype(torch.double): + self._test_EmbeddingBag(device, 'sum', False, wdtype=dtypes[2], dtype=dtypes[0], odtype=dtypes[1]) diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_skip-ao-sparsity-test-without-fbgemm.patch b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_skip-ao-sparsity-test-without-fbgemm.patch new file mode 100644 index 00000000000..481b013de21 --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_skip-ao-sparsity-test-without-fbgemm.patch @@ -0,0 +1,26 @@ +Those tests (from test_ao_sparsity) require FBGEMM which may not be available. +So add the skip decorator. +See https://github.com/pytorch/pytorch/issues/87364 + +Author: Alexander Grund (TU Dresden) + +diff --git a/test/ao/sparsity/test_composability.py b/test/ao/sparsity/test_composability.py +index 6a1b6067a4c..b2eed72e3e3 100644 +--- a/test/ao/sparsity/test_composability.py ++++ b/test/ao/sparsity/test_composability.py +@@ -9,6 +9,7 @@ import torch.ao.quantization as tq + from torch import nn + from torch.ao import sparsity + from torch.testing._internal.common_utils import TestCase ++from torch.testing._internal.common_quantization import skipIfNoFBGEMM + from torch.ao.quantization.quantize_fx import prepare_fx, convert_fx, convert_to_reference_fx, prepare_qat_fx + from torch.ao.sparsity import fqn_to_module + +@@ -62,6 +63,7 @@ def _calculate_sparsity(tensor): + # This series of tests are to check the composability goals for sparsity and quantization. Namely + # that performing quantization and sparsity model manipulations in various orderings + # does not cause problems ++@skipIfNoFBGEMM + class TestComposability(TestCase): + # This test checks whether performing quantization prepare before sparse prepare + # causes any issues and verifies that the correct observers are inserted and that diff --git a/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_skip-failing-grad-test.patch b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_skip-failing-grad-test.patch new file mode 100644 index 00000000000..13ab1717e00 --- /dev/null +++ b/easybuild/easyconfigs/p/PyTorch/PyTorch-1.13.1_skip-failing-grad-test.patch @@ -0,0 +1,25 @@ +Skip test_forward_mode_AD_nn_functional_max_unpool2d_cpu_float64 & test_forward_mode_AD_nn_functional_max_unpool3d_cpu_float64 +which may unexpectably succeed. + +Author: Simon Branford (University of Birmingham) + +--- a/torch/testing/_internal/common_methods_invocations.py ++++ b/torch/testing/_internal/common_methods_invocations.py +@@ -11574,7 +11574,7 @@ + # and if there are several indices pointing to the same memory, + # gradcheck is oblivious about that and cannot perturb them all at once + # (see sample_inputs_max_unpool_grad to find out more). +- DecorateInfo(unittest.expectedFailure, 'TestGradients', 'test_forward_mode_AD'), ++ DecorateInfo(unittest.skip("Skipped!"), 'TestGradients', 'test_forward_mode_AD'), + DecorateInfo(unittest.skip("Skipped!"), 'TestGradients', 'test_fn_gradgrad'), + DecorateInfo(unittest.skip("Skipped!"), 'TestGradients', 'test_fn_grad'), + DecorateInfo(unittest.skip("Skipped!"), 'TestCompositeCompliance', 'test_forward_ad'), +@@ -11611,7 +11611,7 @@ + # and if there are several indices pointing to the same memory, + # gradcheck is oblivious about that and cannot perturb them all at once + # (see sample_inputs_max_unpool_grad to find out more). +- DecorateInfo(unittest.expectedFailure, 'TestGradients', 'test_forward_mode_AD'), ++ DecorateInfo(unittest.skip("Skipped!"), 'TestGradients', 'test_forward_mode_AD'), + DecorateInfo(unittest.skip("Skipped!"), 'TestGradients', 'test_fn_gradgrad'), + DecorateInfo(unittest.skip("Skipped!"), 'TestGradients', 'test_fn_grad'), + DecorateInfo(unittest.expectedFailure, 'TestCompositeCompliance', 'test_forward_ad'), diff --git a/easybuild/easyconfigs/p/PyWBGT/PyWBGT-1.0.0-foss-2021b.eb b/easybuild/easyconfigs/p/PyWBGT/PyWBGT-1.0.0-foss-2021b.eb new file mode 100644 index 00000000000..c4f7abef078 --- /dev/null +++ b/easybuild/easyconfigs/p/PyWBGT/PyWBGT-1.0.0-foss-2021b.eb @@ -0,0 +1,56 @@ +easyblock = 'PythonBundle' + +name = 'PyWBGT' +version = '1.0.0' + +homepage = 'https://github.com/QINQINKONG/PyWBGT' +description = """Cython source code for estimating wet bulb globe temperature (WBGT) from datasets of standard +meterological measurements using models developed by Liljegren et al (2008)""" + +toolchain = {'name': 'foss', 'version': '2021b'} +toolchainopts = {'openmp': True} + +dependencies = [ + ('Python', '3.9.6'), + ('SciPy-bundle', '2021.10'), + ('xarray', '0.20.1'), +] + +use_pip = True + +# strip out extra compiler flags -qopenmp and -Ofast, which cause trouble (GCC doesn't know about -qopenmp) +local_common_preinstallopts = r"""sed -i "s/'-qopenmp'//g" setup.py && sed -i "s/,'-Ofast'//g" setup.py && """ + +# inject correct version into setup.py to avoid 0.0.0 version in installation +local_common_preinstallopts += r"""sed -i "s/name=/version='%(version)s', name=/g" setup.py && """ + +exts_list = [ + ('cftime', '1.6.2', { + 'checksums': ['8614c00fb8a5046de304fdd86dbd224f99408185d7b245ac6628d0276596e6d2'], + }), + ('WBGT', version, { + 'source_urls': ['https://github.com/QINQINKONG/PyWBGT/archive/'], + 'sources': [{ + 'download_filename': 'v%(version)s.tar.gz', + 'filename': 'PyWBGT-%(version)s.tar.gz', + }], + 'checksums': ['476d18a65a1bce9bdd1e82076ecdbdeda199fd2fe3a2fbe0cc013d11d7b1b6e8'], + 'start_dir': 'src', + 'preinstallopts': "rm *.so && ln -s setupWBGT.py setup.py && " + local_common_preinstallopts, + 'modulename': 'WBGT', + }), + ('coszenith', version, { + 'source_urls': ['https://github.com/QINQINKONG/PyWBGT/archive/'], + 'sources': [{ + 'download_filename': 'v%(version)s.tar.gz', + 'filename': 'PyWBGT-%(version)s.tar.gz', + }], + 'checksums': ['476d18a65a1bce9bdd1e82076ecdbdeda199fd2fe3a2fbe0cc013d11d7b1b6e8'], + 'start_dir': 'src', + 'preinstallopts': "rm *.so && ln -s setupcoszenith.py setup.py && " + local_common_preinstallopts, + }), +] + +sanity_pip_check = True + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/p/PyWBGT/PyWBGT-1.0.0-foss-2022a.eb b/easybuild/easyconfigs/p/PyWBGT/PyWBGT-1.0.0-foss-2022a.eb new file mode 100644 index 00000000000..112c19e53fa --- /dev/null +++ b/easybuild/easyconfigs/p/PyWBGT/PyWBGT-1.0.0-foss-2022a.eb @@ -0,0 +1,56 @@ +easyblock = 'PythonBundle' + +name = 'PyWBGT' +version = '1.0.0' + +homepage = 'https://github.com/QINQINKONG/PyWBGT' +description = """Cython source code for estimating wet bulb globe temperature (WBGT) from datasets of standard +meterological measurements using models developed by Liljegren et al (2008)""" + +toolchain = {'name': 'foss', 'version': '2022a'} +toolchainopts = {'openmp': True} + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), + ('xarray', '2022.6.0'), +] + +use_pip = True + +# strip out extra compiler flags -qopenmp and -Ofast, which cause trouble (GCC doesn't know about -qopenmp) +local_common_preinstallopts = r"""sed -i "s/'-qopenmp'//g" setup.py && sed -i "s/,'-Ofast'//g" setup.py && """ + +# inject correct version into setup.py to avoid 0.0.0 version in installation +local_common_preinstallopts += r"""sed -i "s/name=/version='%(version)s', name=/g" setup.py && """ + +exts_list = [ + ('cftime', '1.6.2', { + 'checksums': ['8614c00fb8a5046de304fdd86dbd224f99408185d7b245ac6628d0276596e6d2'], + }), + ('WBGT', version, { + 'source_urls': ['https://github.com/QINQINKONG/PyWBGT/archive/'], + 'sources': [{ + 'download_filename': 'v%(version)s.tar.gz', + 'filename': 'PyWBGT-%(version)s.tar.gz', + }], + 'checksums': ['476d18a65a1bce9bdd1e82076ecdbdeda199fd2fe3a2fbe0cc013d11d7b1b6e8'], + 'start_dir': 'src', + 'preinstallopts': "rm *.so && ln -s setupWBGT.py setup.py && " + local_common_preinstallopts, + 'modulename': 'WBGT', + }), + ('coszenith', version, { + 'source_urls': ['https://github.com/QINQINKONG/PyWBGT/archive/'], + 'sources': [{ + 'download_filename': 'v%(version)s.tar.gz', + 'filename': 'PyWBGT-%(version)s.tar.gz', + }], + 'checksums': ['476d18a65a1bce9bdd1e82076ecdbdeda199fd2fe3a2fbe0cc013d11d7b1b6e8'], + 'start_dir': 'src', + 'preinstallopts': "rm *.so && ln -s setupcoszenith.py setup.py && " + local_common_preinstallopts, + }), +] + +sanity_pip_check = True + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/p/PyYAML/PyYAML-6.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/p/PyYAML/PyYAML-6.0-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..a1f8e4ff4f6 --- /dev/null +++ b/easybuild/easyconfigs/p/PyYAML/PyYAML-6.0-GCCcore-12.3.0.eb @@ -0,0 +1,27 @@ +easyblock = 'PythonPackage' + +name = 'PyYAML' +version = '6.0' + +homepage = 'https://github.com/yaml/pyyaml' +description = "PyYAML is a YAML parser and emitter for the Python programming language." + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} + +sources = [SOURCE_TAR_GZ] +checksums = ['68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2'] + +builddependencies = [ + ('binutils', '2.40'), +] +dependencies = [ + ('Python', '3.11.3'), + ('libyaml', '0.2.5'), +] + +download_dep_fail = True +sanity_pip_check = True +use_pip = True +options = {'modulename': 'yaml'} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/p/Pychopper/Pychopper-2.3.1-intel-2019b-Python-3.7.4.eb b/easybuild/easyconfigs/p/Pychopper/Pychopper-2.3.1-intel-2019b-Python-3.7.4.eb new file mode 100644 index 00000000000..02d9af193c6 --- /dev/null +++ b/easybuild/easyconfigs/p/Pychopper/Pychopper-2.3.1-intel-2019b-Python-3.7.4.eb @@ -0,0 +1,41 @@ +easyblock = 'PythonBundle' + +name = 'Pychopper' +version = '2.3.1' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://github.com/nanoporetech/pychopper' +description = "A tool to identify, orient, trim and rescue full length cDNA reads." + +toolchain = {'name': 'intel', 'version': '2019b'} + +dependencies = [ + ('Python', '3.7.4'), + ('SciPy-bundle', '2019.10', versionsuffix), # for pandas + ('matplotlib', '3.1.1', versionsuffix), + ('Biopython', '1.75', versionsuffix), + ('parasail', '2.4.1'), + ('python-parasail', '1.2', versionsuffix), + ('Seaborn', '0.10.0', versionsuffix), + ('tqdm', '4.41.1'), +] + +use_pip = True + +exts_list = [ + ('edlib', '1.3.8.post1', { + 'checksums': ['81bc688e8fc69d657a6b5067e104a0924b0217b7ab54547155278935d09346e0'], + }), + ('sphinx_rtd_theme', '0.4.3', { + 'checksums': ['728607e34d60456d736cc7991fd236afb828b21b82f956c5ea75f94c8414040a'], + }), + (name, version, { + 'source_tmpl': 'v%(version)s.tar.gz', + 'source_urls': ['https://github.com/nanoporetech/pychopper/archive'], + 'checksums': ['ef92553c27a068baf18794a802c79fcc85554df4c9eec9da5e2e017dd6827e0a'], + }), +] + +sanity_pip_check = True + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/p/Pysam/Pysam-0.21.0-GCC-12.2.0.eb b/easybuild/easyconfigs/p/Pysam/Pysam-0.21.0-GCC-12.2.0.eb new file mode 100755 index 00000000000..abaae145a96 --- /dev/null +++ b/easybuild/easyconfigs/p/Pysam/Pysam-0.21.0-GCC-12.2.0.eb @@ -0,0 +1,30 @@ +easyblock = 'PythonPackage' + +name = 'Pysam' +version = '0.21.0' + +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': '12.2.0'} + +source_urls = ['https://github.com/pysam-developers/pysam/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['8b0c0d1d621892a0acea3d3dbf27564353b088d5bf6ee68852b1b8f3a408ccdf'] + +dependencies = [ + ('Python', '3.10.8'), + ('ncurses', '6.3'), + ('cURL', '7.86.0'), + ('XZ', '5.2.7'), +] + +# https://github.com/pysam-developers/pysam/issues/1146#issuecomment-1309421979 +preinstallopts = """export CFLAGS="-fPIC $CFLAGS" && """ +download_dep_fail = True +use_pip = True + +sanity_pip_check = True + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/p/Python/Python-3.11.3-GCCcore-12.3.0.eb b/easybuild/easyconfigs/p/Python/Python-3.11.3-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..2bea26aa47d --- /dev/null +++ b/easybuild/easyconfigs/p/Python/Python-3.11.3-GCCcore-12.3.0.eb @@ -0,0 +1,58 @@ +name = 'Python' +version = '3.11.3' + +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': '12.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://www.python.org/ftp/%(namelower)s/%(version)s/'] +sources = [SOURCE_TGZ] +checksums = ['1a79f3df32265d9e6625f1a0b31c28eb1594df911403d11f3320ee1da1b3e048'] + +builddependencies = [ + ('UnZip', '6.0'), + ('pkgconf', '1.9.5'), +] + +dependencies = [ + ('binutils', '2.40'), + ('bzip2', '1.0.8'), # required for bz2 package in Python stdlib + ('zlib', '1.2.13'), + ('libreadline', '8.2'), + ('ncurses', '6.4'), + ('SQLite', '3.42.0'), + ('XZ', '5.4.2'), + ('libffi', '3.4.4'), + ('OpenSSL', '1.1', '', SYSTEM), +] + +install_pip = True + +exts_default_options = { + 'download_dep_fail': True, + 'sanity_pip_check': True, + 'source_urls': [PYPI_SOURCE], + 'use_pip': True, +} + +# order is important! +# package versions updated 2023-05-17 +exts_list = [ + ('flit_core', '3.9.0', { + 'checksums': ['72ad266176c4a3fcfab5f2930d76896059851240570ce9a98733b658cb786eba'], + }), + ('wheel', '0.40.0', { + 'checksums': ['cd1196f3faee2b31968d626e1731c94f99cbdb67cf5a46e4f5656cbee7738873'], + }), + ('setuptools', '67.7.2', { + 'checksums': ['f104fa03692a2602fa0fec6c6a9e63b6c8a968de13e17c026957dd1f53d80990'], + }), + ('pip', '23.1.2', { + 'checksums': ['0e7c86f486935893c708287b30bd050a36ac827ec7fe5e43fe7cb198dd835fba'], + }), +] + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/p/pagmo/pagmo-2.18.0-foss-2022a.eb b/easybuild/easyconfigs/p/pagmo/pagmo-2.18.0-foss-2022a.eb new file mode 100644 index 00000000000..8b32a6f297f --- /dev/null +++ b/easybuild/easyconfigs/p/pagmo/pagmo-2.18.0-foss-2022a.eb @@ -0,0 +1,36 @@ +easyblock = 'CMakeMake' + +name = 'pagmo' +version = '2.18.0' + +homepage = 'https://esa.github.io/pagmo2' +description = "pagmo is a C++ scientific library for massively parallel optimization." + +toolchain = {'name': 'foss', 'version': '2022a'} +toolchainopts = {'usempi': True} + +source_urls = ['https://github.com/esa/pagmo2/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['5ad40bf3aa91857a808d6b632d9e1020341a33f1a4115d7a2b78b78fd063ae31'] + +builddependencies = [ + ('CMake', '3.24.3'), +] + +dependencies = [ + ('Boost', '1.79.0'), + ('tbb', '2021.5.0'), + ('Eigen', '3.4.0'), + ('NLopt', '2.7.1'), +] + +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/parasail/parasail-2.6.2-GCC-12.2.0.eb b/easybuild/easyconfigs/p/parasail/parasail-2.6.2-GCC-12.2.0.eb new file mode 100755 index 00000000000..c294daacb08 --- /dev/null +++ b/easybuild/easyconfigs/p/parasail/parasail-2.6.2-GCC-12.2.0.eb @@ -0,0 +1,27 @@ +easyblock = 'CMakeMake' + +name = 'parasail' +version = '2.6.2' + +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': '12.2.0'} + +# https://github.com/jeffdaily/parasail +github_account = 'jeffdaily' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['9057041db8e1cde76678f649420b85054650414e5de9ea84ee268756c7ea4b4b'] + +builddependencies = [('CMake', '3.24.3')] + +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/pastml/pastml-1.9.34-foss-2021a.eb b/easybuild/easyconfigs/p/pastml/pastml-1.9.34-foss-2021a.eb new file mode 100644 index 00000000000..8f83b335609 --- /dev/null +++ b/easybuild/easyconfigs/p/pastml/pastml-1.9.34-foss-2021a.eb @@ -0,0 +1,34 @@ +easyblock = 'PythonBundle' + +name = 'pastml' +version = '1.9.34' + +homepage = 'https://pastml.pasteur.fr/' +description = "Ancestor character reconstruction and visualisation for rooted phylogenetic trees" + +toolchain = {'name': 'foss', 'version': '2021a'} + +dependencies = [ + ('Python', '3.9.5'), + ('Biopython', '1.79'), + ('SciPy-bundle', '2021.05'), + ('ETE', '3.1.2'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('itolapi', '4.1.0', { + 'checksums': ['e52c6ce86ccf8ab6702b8b110543a0d9f8d4eec1f13d5c278e2d1c25e3f7c7f2'], + }), + (name, version, { + 'source_urls': ['https://github.com/evolbioinfo/pastml/archive/refs/tags/'], + 'sources': ['%(version)s.tar.gz'], + 'checksums': ['3ac606b5db79dc311110aa9a19a344ca28797275f174218b095e7874140f70da'], + }), +] + +sanity_check_commands = ['pastml --version'] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/p/patchelf/patchelf-0.18.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/p/patchelf/patchelf-0.18.0-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..b87a53d6bda --- /dev/null +++ b/easybuild/easyconfigs/p/patchelf/patchelf-0.18.0-GCCcore-12.3.0.eb @@ -0,0 +1,29 @@ +easyblock = 'ConfigureMake' + +name = 'patchelf' +version = '0.18.0' + +homepage = 'https://github.com/NixOS/patchelf' +description = """PatchELF is a small utility to modify the dynamic linker and RPATH of ELF executables.""" + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} + +source_urls = ['https://github.com/NixOS/patchelf/archive/'] +sources = ['%(version)s.tar.gz'] +checksums = ['1451d01ee3a21100340aed867d0b799f46f0b1749680028d38c3f5d0128fb8a7'] + +builddependencies = [ + ('binutils', '2.40'), + ('Autotools', '20220317'), +] + +preconfigopts = "sh bootstrap.sh && " + +sanity_check_paths = { + 'files': ['bin/patchelf'], + 'dirs': ['share'], +} + +sanity_check_commands = ["patchelf --help"] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/p/pbipa/pbipa-1.8.0-foss-2021b.eb b/easybuild/easyconfigs/p/pbipa/pbipa-1.8.0-foss-2021b.eb new file mode 100644 index 00000000000..2ad7859af59 --- /dev/null +++ b/easybuild/easyconfigs/p/pbipa/pbipa-1.8.0-foss-2021b.eb @@ -0,0 +1,35 @@ +easyblock = 'Tarball' + +name = 'pbipa' +version = '1.8.0' + +homepage = 'https://github.com/PacificBiosciences/pbipa' +description = """Improved Phased Assembler (IPA) is the official PacBio +software for HiFi genome assembly. IPA was designed to utilize the +accuracy of PacBio HiFi reads to produce high-quality phased genome +assemblies. IPA is an end-to-end solution, starting with input reads and +resulting in a polished assembly. IPA is fast, providing an easy to use +local run mode or a distributed pipeline for a cluster.""" + +toolchain = {'name': 'foss', 'version': '2021b'} + +github_account = 'PacificBiosciences' +source_urls = [GITHUB_RELEASE] +sources = [{'download_filename': '%(name)s.tar.gz', 'filename': SOURCE_TAR_GZ}] +checksums = ['8c08fc53a17dfc6e773c10a3e565ea7224595829e0b48adcd76556418544388a'] + +dependencies = [ + ('Python', '3.9.6'), + ('snakemake', '6.10.0'), +] + +sanity_check_paths = { + 'files': ['bin/ipa', 'etc/ipa.snakefile'], + 'dirs': [], +} + +sanity_check_commands = [ + 'ipa --version', +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/p/pigz/pigz-2.7-GCCcore-12.2.0.eb b/easybuild/easyconfigs/p/pigz/pigz-2.7-GCCcore-12.2.0.eb new file mode 100644 index 00000000000..8bac10c36ba --- /dev/null +++ b/easybuild/easyconfigs/p/pigz/pigz-2.7-GCCcore-12.2.0.eb @@ -0,0 +1,45 @@ +easyblock = 'MakeCp' + +name = 'pigz' +version = '2.7' + +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': '12.2.0'} + +source_urls = [ + 'https://zlib.net/pigz/', + 'https://zlib.net/pigz/fossils/', +] +sources = [SOURCE_TAR_GZ] +patches = ['%(name)s-2.6_makefile.patch'] +checksums = [ + {'pigz-2.7.tar.gz': 'b4c9e60344a08d5db37ca7ad00a5b2c76ccb9556354b722d56d55ca7e8b1c707'}, + {'pigz-2.6_makefile.patch': '7e37175714d43c946373d07c522ec98a77c0f8572a9d448f759c41f6f060275d'}, +] + +builddependencies = [ + ('binutils', '2.39'), +] + +dependencies = [ + ('zlib', '1.2.12'), +] + +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/pkg-config/pkg-config-0.29.2-GCCcore-12.2.0.eb b/easybuild/easyconfigs/p/pkg-config/pkg-config-0.29.2-GCCcore-12.2.0.eb new file mode 100644 index 00000000000..f922f12f6dd --- /dev/null +++ b/easybuild/easyconfigs/p/pkg-config/pkg-config-0.29.2-GCCcore-12.2.0.eb @@ -0,0 +1,36 @@ +# pkgconf should be used in preference to pkg-config +# This is included for use only in software that fails to build when using pkgconf +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': '12.2.0'} + +source_urls = ['https://pkg-config.freedesktop.org/releases/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['6fc69c01688c9458a57eb9a1664c9aba372ccda420a02bf4429fe610e7e7d591'] + +builddependencies = [('binutils', '2.39')] + +# 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/pkgconf/pkgconf-1.8.0-GCCcore-11.2.0.eb b/easybuild/easyconfigs/p/pkgconf/pkgconf-1.8.0-GCCcore-11.2.0.eb index 072e68192e4..0d6dab08f33 100644 --- a/easybuild/easyconfigs/p/pkgconf/pkgconf-1.8.0-GCCcore-11.2.0.eb +++ b/easybuild/easyconfigs/p/pkgconf/pkgconf-1.8.0-GCCcore-11.2.0.eb @@ -10,7 +10,7 @@ description = """pkgconf is a program which helps to configure compiler and link toolchain = {'name': 'GCCcore', 'version': '11.2.0'} -source_urls = ['https://distfiles.dereferenced.org/pkgconf/'] +source_urls = ['https://distfiles.ariadne.space/pkgconf/'] sources = [SOURCELOWER_TAR_GZ] checksums = ['d7b6fdb522d81c11f5a0e0a0629a9f5480809ec90e595058674c1517822dfb8c'] diff --git a/easybuild/easyconfigs/p/pkgconf/pkgconf-1.8.0-GCCcore-11.3.0.eb b/easybuild/easyconfigs/p/pkgconf/pkgconf-1.8.0-GCCcore-11.3.0.eb index 2acde1a41bd..cffdf67d1da 100644 --- a/easybuild/easyconfigs/p/pkgconf/pkgconf-1.8.0-GCCcore-11.3.0.eb +++ b/easybuild/easyconfigs/p/pkgconf/pkgconf-1.8.0-GCCcore-11.3.0.eb @@ -10,7 +10,7 @@ description = """pkgconf is a program which helps to configure compiler and link toolchain = {'name': 'GCCcore', 'version': '11.3.0'} -source_urls = ['https://distfiles.dereferenced.org/pkgconf/'] +source_urls = ['https://distfiles.ariadne.space/pkgconf/'] sources = [SOURCELOWER_TAR_GZ] checksums = ['d7b6fdb522d81c11f5a0e0a0629a9f5480809ec90e595058674c1517822dfb8c'] diff --git a/easybuild/easyconfigs/p/pkgconf/pkgconf-1.8.0.eb b/easybuild/easyconfigs/p/pkgconf/pkgconf-1.8.0.eb index 8dfe1dd56e7..710f2739928 100644 --- a/easybuild/easyconfigs/p/pkgconf/pkgconf-1.8.0.eb +++ b/easybuild/easyconfigs/p/pkgconf/pkgconf-1.8.0.eb @@ -10,7 +10,7 @@ description = """pkgconf is a program which helps to configure compiler and link toolchain = SYSTEM -source_urls = ['https://distfiles.dereferenced.org/pkgconf/'] +source_urls = ['https://distfiles.ariadne.space/pkgconf/'] sources = [SOURCELOWER_TAR_GZ] checksums = ['d7b6fdb522d81c11f5a0e0a0629a9f5480809ec90e595058674c1517822dfb8c'] diff --git a/easybuild/easyconfigs/p/pkgconf/pkgconf-1.9.3-GCCcore-12.2.0.eb b/easybuild/easyconfigs/p/pkgconf/pkgconf-1.9.3-GCCcore-12.2.0.eb index bd5895c7aa0..2d47decfa86 100644 --- a/easybuild/easyconfigs/p/pkgconf/pkgconf-1.9.3-GCCcore-12.2.0.eb +++ b/easybuild/easyconfigs/p/pkgconf/pkgconf-1.9.3-GCCcore-12.2.0.eb @@ -10,7 +10,7 @@ description = """pkgconf is a program which helps to configure compiler and link toolchain = {'name': 'GCCcore', 'version': '12.2.0'} -source_urls = ['https://distfiles.dereferenced.org/pkgconf/'] +source_urls = ['https://distfiles.ariadne.space/pkgconf/'] sources = [SOURCELOWER_TAR_GZ] checksums = ['6d73ac21a9410f5cc636acf730f3a5bf46b28d1e18a239c89efc4b2c5548792f'] diff --git a/easybuild/easyconfigs/p/pkgconf/pkgconf-1.9.4-GCCcore-13.1.0.eb b/easybuild/easyconfigs/p/pkgconf/pkgconf-1.9.4-GCCcore-13.1.0.eb index 6e817cde0bd..c80ab34d708 100644 --- a/easybuild/easyconfigs/p/pkgconf/pkgconf-1.9.4-GCCcore-13.1.0.eb +++ b/easybuild/easyconfigs/p/pkgconf/pkgconf-1.9.4-GCCcore-13.1.0.eb @@ -10,7 +10,7 @@ description = """pkgconf is a program which helps to configure compiler and link toolchain = {'name': 'GCCcore', 'version': '13.1.0'} -source_urls = ['https://distfiles.dereferenced.org/pkgconf/'] +source_urls = ['https://distfiles.ariadne.space/pkgconf/'] sources = [SOURCELOWER_TAR_GZ] checksums = ['d6b844ab6bf8ca685e9ef8103dee64fb39b2484c7a18da64ae5ba269514c9f78'] diff --git a/easybuild/easyconfigs/p/pkgconf/pkgconf-1.9.5-GCCcore-12.3.0.eb b/easybuild/easyconfigs/p/pkgconf/pkgconf-1.9.5-GCCcore-12.3.0.eb index 716412bd025..1896354cb61 100644 --- a/easybuild/easyconfigs/p/pkgconf/pkgconf-1.9.5-GCCcore-12.3.0.eb +++ b/easybuild/easyconfigs/p/pkgconf/pkgconf-1.9.5-GCCcore-12.3.0.eb @@ -10,7 +10,7 @@ description = """pkgconf is a program which helps to configure compiler and link toolchain = {'name': 'GCCcore', 'version': '12.3.0'} -source_urls = ['https://distfiles.dereferenced.org/pkgconf/'] +source_urls = ['https://distfiles.ariadne.space/pkgconf/'] sources = [SOURCELOWER_TAR_GZ] checksums = ['6466efd2e38c4c0ac5de4e345f0dc6dad57e689efb08c31f2a71547683d20dc7'] diff --git a/easybuild/easyconfigs/p/plinkliftover/plinkliftover-0.3.0-foss-2022b.eb b/easybuild/easyconfigs/p/plinkliftover/plinkliftover-0.3.0-foss-2022b.eb new file mode 100644 index 00000000000..5d149fa5722 --- /dev/null +++ b/easybuild/easyconfigs/p/plinkliftover/plinkliftover-0.3.0-foss-2022b.eb @@ -0,0 +1,47 @@ +# EasyBuild EasyConfig +# +# Fred Hutch Cancer Center - Seattle Washington US +# +# John Dey +easyblock = 'PythonBundle' + +name = 'plinkliftover' +version = '0.3.0' + +homepage = 'https://github.com/milescsmith/plinkliftover' +description = """PLINKLiftOver is a utility enabling liftOver to work on genomics files from PLINK, + allowing one to update the coordinates from one genome reference version to another.""" + +toolchain = {'name': 'foss', 'version': '2022b'} + +dependencies = [ + ('Python', '3.10.8'), + ('SciPy-bundle', '2023.02'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('typing_extensions', '4.4.0', { + 'checksums': ['1511434bb92bf8dd198c12b1cc812e800d4181cfcb867674e0f8279cc93087aa'], + }), + ('typer', '0.4.1', { + 'checksums': ['5646aef0d936b2c761a10393f0384ee6b5c7fe0bb3e5cd710b17134ca1d99cff'], + }), + ('rich', '10.16.2', { + 'checksums': ['720974689960e06c2efdb54327f8bf0cdbdf4eae4ad73b6c94213cad405c371b'], + }), + (name, version, { + 'checksums': ['fa38546f0c92def1ecf454c34a1044597f3b7025d3142a9e2dcc1c0976aa16ae'], + }), +] + +sanity_check_paths = { + 'files': ['bin/%(name)s'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = ['%(name)s --help'] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/p/pmt/pmt-1.1.0-GCCcore-11.3.0.eb b/easybuild/easyconfigs/p/pmt/pmt-1.1.0-GCCcore-11.3.0.eb new file mode 100644 index 00000000000..b2eda8583d9 --- /dev/null +++ b/easybuild/easyconfigs/p/pmt/pmt-1.1.0-GCCcore-11.3.0.eb @@ -0,0 +1,26 @@ +easyblock = 'CMakeMake' + +name = 'pmt' +version = '1.1.0' + +homepage = 'https://git.astron.nl/RD/pmt' +description = """PMT is a high-level software library capable of + collecting power consumption measurements on various hardware.""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +builddependencies = [ + ('CMake', '3.23.1'), + ('binutils', '2.38') +] + +source_urls = ['https://git.astron.nl/RD/pmt/-/archive/%(version)s'] +sources = ['pmt-%(version)s.tar.gz'] +checksums = ['ab342ec33992c1ad4c42e0e66031710fe6320f73a1ca2a6e34cb1d4739da781f'] + +sanity_check_paths = { + 'files': ["bin/Rapl-test"], + 'dirs': ["lib", "include"], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/p/popscle/popscle-0.1-beta-20210505-GCC-11.3.0.eb b/easybuild/easyconfigs/p/popscle/popscle-0.1-beta-20210505-GCC-11.3.0.eb new file mode 100644 index 00000000000..00fd99b414b --- /dev/null +++ b/easybuild/easyconfigs/p/popscle/popscle-0.1-beta-20210505-GCC-11.3.0.eb @@ -0,0 +1,49 @@ +# Author: Arne Soete +# VIB-UGent Center for Inflammation Research +# updated by Kenneth Hoste (HPC-UGent) +easyblock = 'CMakeMake' + +name = 'popscle' +version = '0.1-beta-20210505' +local_commit = 'da70fc7' + +homepage = 'https://github.com/statgen/popscle' +description = """A suite of +population scale analysis tools for single-cell genomics data including +implementation of Demuxlet / Freemuxlet methods and auxilary tools """ + +toolchain = {'name': 'GCC', 'version': '11.3.0'} +toolchainopts = {'pic': True, 'cstd': 'c++14'} + +source_urls = ['https://github.com/statgen/popscle/archive/'] +sources = [{'download_filename': '%s.tar.gz' % local_commit, 'filename': SOURCE_TAR_GZ}] +patches = ['popscle-0.1-beta-20210505_fix-limits.patch'] +checksums = [ + {'popscle-0.1-beta-20210505.tar.gz': 'f4723a8f098f88262e04ecd4d3e62b7d6884e2a3d4eb0b08196aab1651a95d6c'}, + {'popscle-0.1-beta-20210505_fix-limits.patch': 'c476b9f1b8a340bbb8873bff8a831261ade03e48f4b354b2d956bd0204278071'}, +] + +builddependencies = [ + ('CMake', '3.24.3'), +] + +dependencies = [ + ('HTSlib', '1.15.1'), + ('XZ', '5.2.5'), + ('bzip2', '1.0.8'), +] + +configopts = "-DHTS_INCLUDE_DIRS=$EBROOTHTSLIB/include -DHTS_LIBRARIES=$EBROOTHTSLIB/lib/libhts.a " +configopts += "-DBZIP2_INCLUDE_DIRS=$EBROOTBZIP2/include -DBZIP2_LIBRARIES=$EBROOTBZIP2/lib/libbz2.a " +configopts += "-DLZMA_INCLUDE_DIRS=$EBROOTXZ/include -DLZMA_LIBRARIES=$EBROOTXZ/lib/liblzma.a " + +install_cmd = "mkdir %(installdir)s/bin && install %(builddir)s/%(name)s-*/bin/popscle %(installdir)s/bin/" + +sanity_check_paths = { + 'files': ['bin/popscle'], + 'dirs': [], +} + +sanity_check_commands = ["popscle --help"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/p/popscle/popscle-0.1-beta-20210505_fix-limits.patch b/easybuild/easyconfigs/p/popscle/popscle-0.1-beta-20210505_fix-limits.patch new file mode 100644 index 00000000000..75e3257d83c --- /dev/null +++ b/easybuild/easyconfigs/p/popscle/popscle-0.1-beta-20210505_fix-limits.patch @@ -0,0 +1,12 @@ +fix for: error: 'numeric_limits' is not a member of 'std' +author: Kenneth Hoste (HPC-UGent) +--- popscle-da70fc78da385ef049e0e890342acfd62842cae0/gtf_interval_tree.h.orig 2021-05-05 06:49:20.000000000 +0200 ++++ popscle-da70fc78da385ef049e0e890342acfd62842cae0/gtf_interval_tree.h 2023-07-05 09:13:54.273004779 +0200 +@@ -29,6 +29,7 @@ + #include + #include + #include ++#include + + template + class gtfInterval { diff --git a/easybuild/easyconfigs/p/popt/popt-1.16-GCC-10.2.0.eb b/easybuild/easyconfigs/p/popt/popt-1.16-GCC-10.2.0.eb new file mode 100644 index 00000000000..b455329798a --- /dev/null +++ b/easybuild/easyconfigs/p/popt/popt-1.16-GCC-10.2.0.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'popt' +version = '1.16' + +homepage = 'https://github.com/rpm-software-management/popt' +description = """Popt is a C library for parsing command line parameters.""" + +toolchain = {'name': 'GCC', 'version': '10.2.0'} +toolchainopts = {'optarch': False} + +source_urls = ['https://ftp.osuosl.org/pub/rpm/popt/releases/historical/'] +sources = [SOURCE_TAR_GZ] +checksums = ['e728ed296fe9f069a0e005003c3d6b2dde3d9cad453422a10d6558616d304cc8'] + +sanity_check_paths = { + 'files': ['include/popt.h', + ('lib/libpopt.a', 'lib64/libpopt.a'), + ('lib/libpopt.%s' % SHLIB_EXT, 'lib64/libpopt.%s' % SHLIB_EXT)], + 'dirs': [], +} + +maxparallel = 1 + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/p/prodigal/prodigal-2.6.3-GCCcore-12.2.0.eb b/easybuild/easyconfigs/p/prodigal/prodigal-2.6.3-GCCcore-12.2.0.eb new file mode 100644 index 00000000000..f5a5c8c9681 --- /dev/null +++ b/easybuild/easyconfigs/p/prodigal/prodigal-2.6.3-GCCcore-12.2.0.eb @@ -0,0 +1,46 @@ +## +# This is a contribution from Phoenix HPC Service, The University of Adelaide, Australia +# Homepage: https://www.adelaide.edu.au/phoenix/ +# +# Copyright:: adelaide.edu.au/phoenix +# Authors:: Robert Qiao , Exe Escobedo +# License:: GPL-v3.0 +# +# Updated: Pavel Grochal (INUITS) +# +# Notes:: +## + +easyblock = 'MakeCp' + +name = 'prodigal' +version = '2.6.3' + +homepage = 'https://github.com/hyattpd/Prodigal/' + +description = """Prodigal (Prokaryotic Dynamic Programming Genefinding Algorithm) + is a microbial (bacterial and archaeal) gene finding program developed + at Oak Ridge National Laboratory and the University of Tennessee.""" + +toolchain = {'name': 'GCCcore', 'version': '12.2.0'} + +source_urls = ['https://github.com/hyattpd/Prodigal/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['89094ad4bff5a8a8732d899f31cec350f5a4c27bcbdd12663f87c9d1f0ec599f'] + +builddependencies = [('binutils', '2.39')] + +files_to_copy = [ + (['prodigal'], 'bin'), + (['*.h'], 'include'), + (['LICENSE'], 'license'), +] + +sanity_check_paths = { + 'files': ['bin/prodigal'], + 'dirs': ['include', 'license'], +} + +sanity_check_commands = ["prodigal -h"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/p/psutil/psutil-5.9.4-GCCcore-11.2.0.eb b/easybuild/easyconfigs/p/psutil/psutil-5.9.4-GCCcore-11.2.0.eb new file mode 100644 index 00000000000..be9c08d05c6 --- /dev/null +++ b/easybuild/easyconfigs/p/psutil/psutil-5.9.4-GCCcore-11.2.0.eb @@ -0,0 +1,26 @@ +easyblock = 'PythonBundle' + +name = 'psutil' +version = '5.9.4' + +homepage = 'https://github.com/giampaolo/psutil' +description = """A cross-platform process and system utilities module for Python""" + +toolchain = {'name': 'GCCcore', 'version': '11.2.0'} + +builddependencies = [('binutils', '2.37')] + +dependencies = [('Python', '3.9.6')] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + (name, version, { + 'source_urls': ['https://github.com/giampaolo/psutil/archive'], + 'sources': [SOURCE_TAR_GZ], + 'checksums': ['3d7f9739eb435d4b1338944abe23f49584bde5395f27487d2ee25ad9a8774a62'], + }), +] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/p/psycopg2/psycopg2-2.9.6-GCCcore-11.3.0.eb b/easybuild/easyconfigs/p/psycopg2/psycopg2-2.9.6-GCCcore-11.3.0.eb new file mode 100644 index 00000000000..25a24c12236 --- /dev/null +++ b/easybuild/easyconfigs/p/psycopg2/psycopg2-2.9.6-GCCcore-11.3.0.eb @@ -0,0 +1,35 @@ +# Author: Pavel Grochal (INUITS) +# License: GPLv2 + +easyblock = 'PythonPackage' + +name = 'psycopg2' +version = '2.9.6' + +homepage = 'https://psycopg.org/' +description = "Psycopg is the most popular PostgreSQL adapter for the Python programming language." + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +sources = [SOURCE_TAR_GZ] +checksums = ['f15158418fd826831b28585e2ab48ed8df2d0d98f502a2b4fe619e7d5ca29011'] + +builddependencies = [ + ('binutils', '2.38'), +] + +dependencies = [ + ('Python', '3.10.4'), + ('PostgreSQL', '14.4'), +] + +download_dep_fail = True +use_pip = True +sanity_pip_check = True + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages/%(name)s'], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/p/pyMannKendall/pyMannKendall-1.4.3-foss-2022a.eb b/easybuild/easyconfigs/p/pyMannKendall/pyMannKendall-1.4.3-foss-2022a.eb new file mode 100644 index 00000000000..a49ad264275 --- /dev/null +++ b/easybuild/easyconfigs/p/pyMannKendall/pyMannKendall-1.4.3-foss-2022a.eb @@ -0,0 +1,25 @@ +easyblock = 'PythonBundle' + +name = 'pyMannKendall' +version = '1.4.3' + +homepage = 'https://github.com/mmhs013/pymannkendall' +description = """A python package for non parametric Mann Kendall family of trend tests.""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), +] + +exts_list = [ + ('pymannkendall', version, { + 'checksums': ['f9e3bbbb583b5285d15082aa0007825e5bea4dde9858d2e7ca81ee6f1e378e82'], + }), +] + +use_pip = True +sanity_pip_check = True + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/p/pySCENIC/pySCENIC-0.12.1-foss-2022a.eb b/easybuild/easyconfigs/p/pySCENIC/pySCENIC-0.12.1-foss-2022a.eb new file mode 100644 index 00000000000..bd24b611c05 --- /dev/null +++ b/easybuild/easyconfigs/p/pySCENIC/pySCENIC-0.12.1-foss-2022a.eb @@ -0,0 +1,71 @@ + +easyblock = 'PythonBundle' + +name = 'pySCENIC' +version = '0.12.1' + +homepage = 'https://github.com/aertslab/pySCENIC' +description = """pySCENIC is a lightning-fast python implementation of the SCENIC +pipeline (Single-Cell rEgulatory Network Inference and Clustering) which enables +biologists to infer transcription factors, gene regulatory networks and +cell types from single-cell RNA-seq data.""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +dependencies = [ + ('Python', '3.10.4'), + ('PyYAML', '6.0'), + ('Arrow', '8.0.0'), + ('scikit-learn', '1.1.2'), + ('tqdm', '4.64.0'), + ('networkx', '2.8.4'), + ('dask', '2022.10.0'), + ('aiohttp', '3.8.3'), + ('dill', '0.3.6'), + ('loompy', '3.0.7'), + ('umap-learn', '0.5.3'), +] + +use_pip = True + +exts_list = [ + ('cytoolz', version, { + 'checksums': ['fc33909397481c90de3cec831bfb88d97e220dc91939d996920202f184b4648e'], + }), + ('multiprocessing_on_dill', '3.5.0a4', { + 'checksums': ['d6d50c300ff4bd408bb71eb78725e60231039ee9b3d0d9bb7697b9d0e15045e7'], + }), + ('frozendict', '2.3.8', { + 'checksums': ['5526559eca8f1780a4ee5146896f59afc31435313560208dd394a3a5e537d3ff'], + }), + ('arboreto', '0.1.6', { + # the source on PyPI is missing 'requirements.txt', fetching from github instead + 'source_urls': ['https://github.com/aertslab/arboreto/archive/refs/tags/'], + 'sources': [{'download_filename': '%(version)s.tar.gz', 'filename': SOURCE_TAR_GZ}], + 'checksums': ['f94c0bc084ca61422e8b74ecdb80585a45b168ac682f18dd3c52c9097ee29caa'], + }), + ('boltons', '23.0.0', { + 'checksums': ['8c50a71829525835ca3c849c7ed2511610c972b4dddfcd41a4a5447222beb4b0'], + }), + ('interlap', '0.2.7', { + 'checksums': ['31e4f30c54b067c4939049f5d8131ae5e2fa682ec71aa56f89c0e5b900806ec9'], + }), + ('ctxcore', '0.2.0', { + 'sources': ['ctxcore-0.2.0-py3-none-any.whl'], + 'checksums': ['b90570377e26280c4861ebad1f4cee2fe598167c5d4bd12c1b713f03c9682627'], + }), + ('pyscenic', version, { + 'checksums': ['ae8fafa707d2578ffe08f9eed85f14a4cd9e1b53d57217420e2e956f0a8ddba2'], + }), +] + +sanity_check_paths = { + 'files': ['bin/pyscenic'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = ["pyscenic --help"] + +sanity_pip_check = True + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/p/pycocotools/pycocotools-2.0.6-foss-2022a.eb b/easybuild/easyconfigs/p/pycocotools/pycocotools-2.0.6-foss-2022a.eb new file mode 100644 index 00000000000..6791855a959 --- /dev/null +++ b/easybuild/easyconfigs/p/pycocotools/pycocotools-2.0.6-foss-2022a.eb @@ -0,0 +1,25 @@ +easyblock = 'PythonPackage' + +name = 'pycocotools' +version = '2.0.6' + +homepage = 'https://pypi.org/project/pycocotools' +description = "Official APIs for the MS-COCO dataset" + +toolchain = {'name': 'foss', 'version': '2022a'} + +sources = [SOURCE_TAR_GZ] +checksums = ['7fe089b05cc18e806dcf3bd764708d86dab922a100f3734eb77fb77a70a1d18c'] + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), + ('matplotlib', '3.5.2'), +] + +download_dep_fail = True +use_pip = True + +sanity_pip_check = True + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/p/pydicom-seg/pydicom-seg-0.4.1-foss-2022a.eb b/easybuild/easyconfigs/p/pydicom-seg/pydicom-seg-0.4.1-foss-2022a.eb new file mode 100644 index 00000000000..6d9a6cd4b45 --- /dev/null +++ b/easybuild/easyconfigs/p/pydicom-seg/pydicom-seg-0.4.1-foss-2022a.eb @@ -0,0 +1,31 @@ +easyblock = 'PythonBundle' + +name = 'pydicom-seg' +version = '0.4.1' + +homepage = 'https://github.com/razorx89/pydicom-seg' +description = """Reading and writing of DICOM-SEG medical image segmentation storage files + using pydicom as DICOM serialization/deserialization library.""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +dependencies = [ + ('Python', '3.10.4'), + ('SimpleITK', '2.1.1.2'), + ('pydicom', '2.3.0'), +] + +sanity_pip_check = True +use_pip = True + +exts_list = [ + (name, version, { + 'patches': ['pydicom-seg-0.4.1_dep-fix.patch'], + 'checksums': [ + 'ec6bbd961d44b2fb347a9aa313d6b66c5aa8db9d002d28a58fa549ff48a431fb', # pydicom-seg-0.4.1.tar.gz + '71d312e66894e9f7eebca690bfa129bfcd9cfb9ddac974657fafbe34a08d4524', # pydicom-seg-0.4.1_dep-fix.patch + ], + }), +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/p/pydicom-seg/pydicom-seg-0.4.1_dep-fix.patch b/easybuild/easyconfigs/p/pydicom-seg/pydicom-seg-0.4.1_dep-fix.patch new file mode 100644 index 00000000000..3e793f96d7c --- /dev/null +++ b/easybuild/easyconfigs/p/pydicom-seg/pydicom-seg-0.4.1_dep-fix.patch @@ -0,0 +1,38 @@ +Python 3.10.4 for GCCcore-11.3.0 uses jsonschema 4.4.0 +Author: Petr Král (INUITS) +diff -u pydicom-seg-0.4.1/pyproject.toml.orig pydicom-seg-0.4.1/pyproject.toml +--- pydicom-seg-0.4.1/pyproject.toml.orig 2023-02-16 11:32:28.351423500 +0100 ++++ pydicom-seg-0.4.1/pyproject.toml 2023-06-23 12:08:00.072754917 +0200 +@@ -18,7 +18,7 @@ + pydicom = ">=1.4.2" + SimpleITK = ">1.2.4" + numpy = "^1.18.0" +-jsonschema = "^3.2.0" ++jsonschema = ">=3.2.0" + + [tool.poetry.dev-dependencies] + pytest = "^5.3.2" +diff -u pydicom-seg-0.4.1/setup.py.orig pydicom-seg-0.4.1/setup.py +--- pydicom-seg-0.4.1/setup.py.orig 2023-02-16 11:34:18.241670100 +0100 ++++ pydicom-seg-0.4.1/setup.py 2023-06-23 12:08:22.012960453 +0200 +@@ -9,7 +9,7 @@ + + install_requires = \ + ['SimpleITK>1.2.4', +- 'jsonschema>=3.2.0,<4.0.0', ++ 'jsonschema>=3.2.0', + 'numpy>=1.18.0,<2.0.0', + 'pydicom>=1.4.2'] + +diff -u pydicom-seg-0.4.1/PKG-INFO.orig pydicom-seg-0.4.1/PKG-INFO +--- pydicom-seg-0.4.1/PKG-INFO.orig 2023-02-16 11:34:18.242097400 +0100 ++++ pydicom-seg-0.4.1/PKG-INFO 2023-06-23 12:08:38.909784959 +0200 +@@ -14,7 +14,7 @@ + Classifier: Programming Language :: Python :: 3.8 + Classifier: Programming Language :: Python :: 3.9 + Requires-Dist: SimpleITK (>1.2.4) +-Requires-Dist: jsonschema (>=3.2.0,<4.0.0) ++Requires-Dist: jsonschema (>=3.2.0) + Requires-Dist: numpy (>=1.18.0,<2.0.0) + Requires-Dist: pydicom (>=1.4.2) + Description-Content-Type: text/markdown diff --git a/easybuild/easyconfigs/p/pyfaidx/pyfaidx-0.7.2.1-GCCcore-12.2.0.eb b/easybuild/easyconfigs/p/pyfaidx/pyfaidx-0.7.2.1-GCCcore-12.2.0.eb new file mode 100644 index 00000000000..a236fced155 --- /dev/null +++ b/easybuild/easyconfigs/p/pyfaidx/pyfaidx-0.7.2.1-GCCcore-12.2.0.eb @@ -0,0 +1,30 @@ +easyblock = 'PythonPackage' + +name = 'pyfaidx' +version = '0.7.2.1' + +homepage = 'https://pypi.python.org/pypi/pyfaidx' +description = "pyfaidx: efficient pythonic random access to fasta subsequences" + +toolchain = {'name': 'GCCcore', 'version': '12.2.0'} + +sources = [SOURCE_TAR_GZ] +checksums = ['30f0d20a9e3d53353fb20eb69b7e22e6f01a53ed4f21b3e17dd408f0be5051a0'] + +builddependencies = [('binutils', '2.39')] + +dependencies = [('Python', '3.10.8')] + +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/pygmo/pygmo-2.18.0-foss-2022a.eb b/easybuild/easyconfigs/p/pygmo/pygmo-2.18.0-foss-2022a.eb new file mode 100644 index 00000000000..235eb433fa9 --- /dev/null +++ b/easybuild/easyconfigs/p/pygmo/pygmo-2.18.0-foss-2022a.eb @@ -0,0 +1,56 @@ +easyblock = 'CMakePythonPackage' + +name = 'pygmo' +version = '2.18.0' + +homepage = 'https://esa.github.io/pygmo2' +description = "pygmo is a scientific Python library for massively parallel optimization." + +toolchain = {'name': 'foss', 'version': '2022a'} + +source_urls = ['https://github.com/esa/pygmo2/archive/refs/tags/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['9f081cc973297894af09f713f889870ac452bfb32b471f9f7ba08a5e0bb9a125'] + +builddependencies = [ + ('CMake', '3.24.3'), + ('pybind11', '2.9.2'), +] + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), + ('Boost', '1.79.0'), + ('pagmo', '2.18.0'), + ('matplotlib', '3.5.2'), + ('networkx', '2.8.4'), + ('dill', '0.3.6'), +] + +# make sure that all files are installed in the correct location (-DCMAKE_INSTALL_PREFIX is not enough)... +configopts = "-DPYGMO_INSTALL_PATH=%(installdir)s/lib/python%(pyshortver)s/site-packages" + +runtest = False + +exts_defaultclass = 'PythonPackage' + +exts_default_options = { + 'source_urls': [PYPI_SOURCE], + 'download_dep_fail': True, + 'use_pip': True, +} + +exts_list = [ + ('cloudpickle', '2.2.1', { + 'checksums': ['d89684b8de9e34a2a43b3460fbca07d09d6e25ce858df4d5a44240403b6178f5'], + }), +] + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages/pygmo'], +} + +sanity_pip_check = True + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/p/pyiron/pyiron-0.3.0-intel-2020a-Python-3.8.2.eb b/easybuild/easyconfigs/p/pyiron/pyiron-0.3.0-intel-2020a-Python-3.8.2.eb new file mode 100644 index 00000000000..7e7975cedd3 --- /dev/null +++ b/easybuild/easyconfigs/p/pyiron/pyiron-0.3.0-intel-2020a-Python-3.8.2.eb @@ -0,0 +1,86 @@ +easyblock = 'PythonBundle' + +name = 'pyiron' +version = '0.3.0' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://github.com/pyiron/pyiron' +description = "An integrated development environment (IDE) for computational materials science." + +toolchain = {'name': 'intel', 'version': '2020a'} + +dependencies = [ + ('Python', '3.8.2'), + ('SciPy-bundle', '2020.03', versionsuffix), + ('matplotlib', '3.2.1', versionsuffix), + ('h5py', '2.10.0', versionsuffix), + ('PyYAML', '5.3'), + ('phonopy', '2.7.1', versionsuffix), + ('spglib-python', '1.16.0', versionsuffix), + ('ASE', '3.20.1', versionsuffix), + ('numexpr', '2.7.1', versionsuffix), + ('PyTables', '3.6.1', versionsuffix), + ('nglview', '2.7.7', versionsuffix), + ('tqdm', '4.47.0'), + ('molmod', '1.4.5', versionsuffix), + ('scikit-learn', '0.23.1', versionsuffix), + ('yaff', '1.6.0', versionsuffix), + ('TAMkin', '1.2.6', versionsuffix), + ('QuickFF', '2.2.4', versionsuffix), +] + +check_ldshared = True +use_pip = True + +exts_list = [ + ('h5io', '0.1.2', { + 'checksums': ['6400543224c489f1cf487be551f892310fa7060fcd4935b84e515efdc1e1fa43'], + }), + ('defusedxml', '0.6.0', { + 'checksums': ['f684034d135af4c6cbb949b8a4d2ed61634515257a67299e5f940fbaa34377f5'], + }), + ('pysqa', '0.0.11', { + 'checksums': ['b1a1995ac8b83b86046cef8b72cda962c5fdbf480c6dbba906a467a5dd1d3c81'], + }), + ('SQLAlchemy', '1.3.19', { + 'checksums': ['3bba2e9fbedb0511769780fe1d63007081008c5c2d7d715e91858c94dbaa260e'], + }), + ('dill', '0.3.2', { + 'source_tmpl': 'dill-%(version)s.zip', + 'checksums': ['6e12da0d8e49c220e8d6e97ee8882002e624f1160289ce85ec2cc0a5246b3a2e'], + }), + ('smmap', '3.0.4', { + 'checksums': ['9c98bbd1f9786d22f14b3d4126894d56befb835ec90cef151af566c7e19b5d24'], + }), + ('gitdb', '4.0.5', { + 'checksums': ['c9e1f2d0db7ddb9a704c2a0217be31214e91a4fe1dea1efad19ae42ba0c285c9'], + }), + ('GitPython', '3.1.8', { + 'checksums': ['080bf8e2cf1a2b907634761c2eaefbe83b69930c94c66ad11b65a8252959f912'], + 'modulename': 'git', + }), + ('colorama', '0.4.3', { + 'checksums': ['e96da0d330793e2cb9485e9ddfd918d456036c7149416295932478192f4436a1'], + }), + ('pyfiglet', '0.8.post1', { + 'checksums': ['c6c2321755d09267b438ec7b936825a4910fec696292139e664ca8670e103639'], + }), + ('mendeleev', '0.6.0', { + 'checksums': ['944d185e81f158e48dd394b011e6c14acb612c2ffbc3c32c4aa490cd5b4f65dd'], + }), + ('pyfileindex', '0.0.4', { + 'checksums': ['bbfbfc9372f810587917ab1a88bebb8de44d32a1210bbd436c5b88447d97dfd2'], + }), + ('seekpath', '2.0.1', { + 'checksums': ['188513ee187fbbace49066a29ecea9bbd351f23da3bea33d507d0f590856b082'], + }), + (name, version, { + 'checksums': ['6d49899c2dbec4b80299c227b04dceb9211a668c49e9d80a621448b69bb2ac65'], + # import pyiron triggers interactive configuration setup, so we disable it + 'modulename': False, + }), +] + +sanity_pip_check = True + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/p/pypmt/pypmt-1.1.0-foss-2022a.eb b/easybuild/easyconfigs/p/pypmt/pypmt-1.1.0-foss-2022a.eb new file mode 100644 index 00000000000..b52a9b4b673 --- /dev/null +++ b/easybuild/easyconfigs/p/pypmt/pypmt-1.1.0-foss-2022a.eb @@ -0,0 +1,37 @@ +easyblock = 'CMakeMake' + +name = 'pypmt' +version = '1.1.0' + +homepage = 'https://git.astron.nl/RD/pmt' +description = """PMT is a high-level software library capable of + collecting power consumption measurements on various hardware.""" + +toolchain = {'name': 'foss', 'version': '2022a'} +builddependencies = [('CMake', '3.23.1')] + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), +] + +source_urls = ['https://git.astron.nl/RD/pmt/-/archive/%(version)s'] +sources = ['pmt-%(version)s.tar.gz'] +checksums = ['ab342ec33992c1ad4c42e0e66031710fe6320f73a1ca2a6e34cb1d4739da781f'] + +configopts = '-DBUILD_PYTHON_PMT=1' + +sanity_check_paths = { + 'files': ["bin/Rapl-test"], + 'dirs': [ + "lib", + "lib/python", + "include"], +} +sanity_check_commands = [('python', "-c 'import pmt'")] + +modextrapaths = { + 'PYTHONPATH': ['lib/python'] +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/p/pyspoa/pyspoa-0.0.9-GCC-11.3.0.eb b/easybuild/easyconfigs/p/pyspoa/pyspoa-0.0.9-GCC-11.3.0.eb new file mode 100644 index 00000000000..01299533940 --- /dev/null +++ b/easybuild/easyconfigs/p/pyspoa/pyspoa-0.0.9-GCC-11.3.0.eb @@ -0,0 +1,53 @@ +easyblock = 'PythonPackage' + +name = 'pyspoa' +version = '0.0.9' + +local_cereal_version = '1.3.2' + +homepage = 'https://github.com/nanoporetech/pyspoa' +description = "Python bindings to spoa." + +toolchain = {'name': 'GCC', 'version': '11.3.0'} + +sources = [ + { + 'source_urls': ['https://github.com/nanoporetech/pyspoa/archive/'], + 'download_filename': 'v%(version)s.tar.gz', + 'filename': 'pyspoa-%(version)s.tar.gz', + }, + { + 'source_urls': ['https://github.com/USCiLab/cereal/archive/'], + 'download_filename': 'v%s.tar.gz' % local_cereal_version, + 'filename': 'cereal-%s.tar.gz' % local_cereal_version, + }, +] +patches = ['pyspoa-%(version)s_use-spoa-dep.patch'] + +checksums = [ + {'pyspoa-0.0.9.tar.gz': '30b883b8dfc2355a6062f9f848e825f7ffac169657190d797cf17b4314d588fe'}, + {'cereal-%s.tar.gz' % local_cereal_version: '16a7ad9b31ba5880dac55d62b5d6f243c3ebc8d46a3514149e56b5e7ea81f85f'}, + {'pyspoa-0.0.9_use-spoa-dep.patch': 'fdd11ecc22f65e5c06491fb60f59aab3427d264903d678d59095029ab1e65da7'}, +] + +builddependencies = [('CMake', '3.23.1')] + +dependencies = [ + ('Python', '3.10.4'), + ('pybind11', '2.9.2'), + ('spoa', '4.0.7'), +] + +download_dep_fail = True +use_pip = True +sanity_pip_check = True + +preinstallopts = "mkdir -p src/vendor/cereal && ln -s %(builddir)s/cereal-*/include src/vendor/cereal/include && " +# strip out cmake requirements, since we provide that as proper dependency +preinstallopts += "sed -i 's/.cmake==[0-9.]*.//g' setup.py && " + +options = {'modulename': 'spoa'} + +sanity_check_commands = ["cd %(builddir)s/*/tests && python test_pyspoa.py"] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/p/pyspoa/pyspoa-0.0.9-GCC-12.2.0.eb b/easybuild/easyconfigs/p/pyspoa/pyspoa-0.0.9-GCC-12.2.0.eb new file mode 100644 index 00000000000..ff7e7b177e9 --- /dev/null +++ b/easybuild/easyconfigs/p/pyspoa/pyspoa-0.0.9-GCC-12.2.0.eb @@ -0,0 +1,52 @@ +easyblock = 'PythonPackage' + +name = 'pyspoa' +version = '0.0.9' + +homepage = 'https://github.com/nanoporetech/pyspoa' +description = "Python bindings to spoa." + +toolchain = {'name': 'GCC', 'version': '12.2.0'} + +sources = [ + { + 'source_urls': ['https://github.com/nanoporetech/pyspoa/archive/'], + 'download_filename': 'v%(version)s.tar.gz', + 'filename': 'pyspoa-%(version)s.tar.gz', + }, + { + 'source_urls': ['https://github.com/USCiLab/cereal/archive/'], + 'download_filename': '3e4d1b8.tar.gz', + 'filename': 'cereal-20200423.tar.gz', + }, +] +patches = ['pyspoa-0.0.8_use-spoa-dep.patch'] +checksums = [ + {'pyspoa-0.0.9.tar.gz': '30b883b8dfc2355a6062f9f848e825f7ffac169657190d797cf17b4314d588fe'}, + {'cereal-20200423.tar.gz': '284cd14c1e60b36c966bcc8ce650d0b798b8a836d6c379e021e0da0dbe6ddf38'}, + {'pyspoa-0.0.8_use-spoa-dep.patch': 'a98c82ae8346b48952b171675f9df7ab1c95ea5421afcf5bcd778c01c5ee5a52'}, +] + +builddependencies = [('CMake', '3.24.3')] + +dependencies = [ + ('Python', '3.10.8'), + ('pybind11', '2.10.3'), + ('spoa', '4.0.7'), +] + +download_dep_fail = True + +preinstallopts = "mkdir -p src/vendor/cereal && ln -s %(builddir)s/cereal-*/include src/vendor/cereal/include && " +# strip out cmake requirements, since we provide that as proper dependency +preinstallopts += "sed -i 's/.cmake==[0-9.]*.//g' setup.py && " + +use_pip = True + +options = {'modulename': 'spoa'} + +sanity_pip_check = True + +sanity_check_commands = ["cd %(builddir)s/*/tests && python test_pyspoa.py"] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/p/pyspoa/pyspoa-0.0.9_use-spoa-dep.patch b/easybuild/easyconfigs/p/pyspoa/pyspoa-0.0.9_use-spoa-dep.patch new file mode 100644 index 00000000000..969e77f0ffa --- /dev/null +++ b/easybuild/easyconfigs/p/pyspoa/pyspoa-0.0.9_use-spoa-dep.patch @@ -0,0 +1,25 @@ +use spoa dependency provided through EasyBuild + +author: Kenneth Hoste (HPC-UGent) +updated by: Petr Král (Inuits) +diff --git a/pyspoa-0.0.9/setup.py.orig b/pyspoa-0.0.9/setup.py +index 53338a5..6aaff2b 100644 +--- a/pyspoa-0.0.9/setup.py.orig ++++ b/pyspoa-0.0.9/setup.py +@@ -106,14 +106,14 @@ ext_modules = [ + 'spoa', + ['pyspoa.cpp'], + include_dirs=[ +- 'src/include/spoa', ++ os.path.join(os.getenv('EBROOTSPOA'), 'include/spoa'), + 'src/vendor/cereal/include', + get_pybind_include(), + get_pybind_include(user=True), + ], + language='c++', + extra_objects=[ +- 'src/build/lib/libspoa.a' ++ os.path.join(os.getenv('EBROOTSPOA'), 'lib64/libspoa.a'), + ], + + ), diff --git a/easybuild/easyconfigs/p/python-isal/python-isal-1.1.0-GCCcore-12.2.0.eb b/easybuild/easyconfigs/p/python-isal/python-isal-1.1.0-GCCcore-12.2.0.eb new file mode 100644 index 00000000000..a913b5d6331 --- /dev/null +++ b/easybuild/easyconfigs/p/python-isal/python-isal-1.1.0-GCCcore-12.2.0.eb @@ -0,0 +1,36 @@ +# Author: Jasper Grimm (UoY) + +easyblock = 'PythonPackage' + +name = 'python-isal' +version = '1.1.0' + +homepage = 'https://github.com/pycompression/python-isal' +description = """Faster zlib and gzip compatible compression and decompression + by providing python bindings for the isa-l library. +""" + +toolchain = {'name': 'GCCcore', 'version': '12.2.0'} + +github_account = 'pycompression' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['3fa7f5ac22350cf9c4370aa725dea39c4155123864fff4bf6e6392f83976c86f'] + +builddependencies = [('binutils', '2.39')] + +dependencies = [ + ('Python', '3.10.8'), + ('ISA-L', '2.30.0'), +] + +use_pip = True +download_dep_fail = True +sanity_pip_check = True + +preinstallopts = 'PYTHON_ISAL_LINK_DYNAMIC=true' +installopts = '--no-binary isal' + +options = {'modulename': 'isal'} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/p/python-mujoco/python-mujoco-2.2.2-foss-2022a.eb b/easybuild/easyconfigs/p/python-mujoco/python-mujoco-2.2.2-foss-2022a.eb new file mode 100644 index 00000000000..1ee171c4091 --- /dev/null +++ b/easybuild/easyconfigs/p/python-mujoco/python-mujoco-2.2.2-foss-2022a.eb @@ -0,0 +1,54 @@ +easyblock = 'PythonBundle' + +name = 'python-mujoco' +version = '2.2.2' + +homepage = 'https://www.mujoco.org' +description = """ +This package is the canonical Python bindings for the MuJoCo physics engine. +The mujoco package provides direct access to raw MuJoCo C API functions, structs, +constants, and enumerations. Structs are provided as Python classes, with +Pythonic initialization and deletion semantics. +""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +builddependencies = [ + ('CMake', '3.24.3'), + ('Eigen', '3.4.0'), + ('pybind11', '2.9.2'), +] + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), + ('Abseil', '20230125.2'), + ('MuJoCo', '2.2.2'), + ('GLFW', '3.3.8'), + ('PyOpenGL', '3.1.6'), +] + +use_pip = True + +exts_list = [ + ('mujoco', version, { + 'patches': ['python-mujoco-2.2.2_use_eb_deps.patch'], + 'preinstallopts': 'MUJOCO_PATH="$EBROOTMUJOCO"', + 'checksums': [ + {'mujoco-2.2.2.tar.gz': 'b1ca70b21ef01d0e56952d03a387bdae9c6b141c042379226596410a3ac82085'}, + {'python-mujoco-2.2.2_use_eb_deps.patch': + 'dc05de6a86abbc12e23becdcec4c04715c8dcb9abf3dfcdd6baf0113e22273c9'}, + ], + }), + ('absl-py', '1.4.0', { + 'modulename': 'absl', + 'checksums': ['d2c244d01048ba476e7c080bd2c6df5e141d211de80223460d5b3b8a2a58433d'], + }), + ('glfw', '2.6.1', { + 'checksums': ['e15c21f06e74cc9740bf36c3c618b5f0d015ef09fb4e216d138967d8ee532567'], + }), +] + +sanity_pip_check = True + +moduleclass = 'phys' diff --git a/easybuild/easyconfigs/p/python-mujoco/python-mujoco-2.2.2_use_eb_deps.patch b/easybuild/easyconfigs/p/python-mujoco/python-mujoco-2.2.2_use_eb_deps.patch new file mode 100644 index 00000000000..4142c9277fc --- /dev/null +++ b/easybuild/easyconfigs/p/python-mujoco/python-mujoco-2.2.2_use_eb_deps.patch @@ -0,0 +1,32 @@ +Use EasyBuild provided dependencies +Author: Cintia Willemyns (Vrije Universiteit Brussel) +diff -ur mujoco-2.2.2.orig/mujoco/CMakeLists.txt mujoco-2.2.2/mujoco/CMakeLists.txt +--- mujoco-2.2.2.orig/mujoco/CMakeLists.txt 2022-09-06 20:39:39.000000000 +0200 ++++ mujoco-2.2.2/mujoco/CMakeLists.txt 2023-06-28 11:50:43.850376703 +0200 +@@ -119,7 +119,7 @@ + set(MUJOCO_PYTHON_ABSL_TARGETS absl::core_headers absl::flat_hash_map absl::span) + findorfetch( + USE_SYSTEM_PACKAGE +- OFF ++ ON + PACKAGE_NAME + absl + LIBRARY_NAME +@@ -152,7 +152,7 @@ + add_compile_definitions(EIGEN_MPL2_ONLY) + findorfetch( + USE_SYSTEM_PACKAGE +- OFF ++ ON + PACKAGE_NAME + Eigen3 + LIBRARY_NAME +@@ -169,7 +169,7 @@ + # ==================== PYBIND11 ================================================ + findorfetch( + USE_SYSTEM_PACKAGE +- OFF ++ ON + PACKAGE_NAME + pybind11 + LIBRARY_NAME diff --git a/easybuild/easyconfigs/p/python-parasail/python-parasail-1.3.4-foss-2022b.eb b/easybuild/easyconfigs/p/python-parasail/python-parasail-1.3.4-foss-2022b.eb new file mode 100644 index 00000000000..9411731d91a --- /dev/null +++ b/easybuild/easyconfigs/p/python-parasail/python-parasail-1.3.4-foss-2022b.eb @@ -0,0 +1,33 @@ +easyblock = 'PythonPackage' + +name = 'python-parasail' +version = '1.3.4' + +homepage = 'https://github.com/jeffdaily/parasail-python' +description = "Python Bindings for the Parasail C Library" + +toolchain = {'name': 'foss', 'version': '2022b'} + +source_urls = ['https://pypi.python.org/packages/source/%(nameletter)s/parasail'] +sources = ['parasail-%(version)s.tar.gz'] +checksums = ['d6a7035dfae3ef5aafdd7e6915711214c22b572ea059fa69d9d7ecbfb9b61b0f'] + +builddependencies = [ + ('parasail', '2.6.2'), +] + +dependencies = [ + ('Python', '3.10.8'), + ('SciPy-bundle', '2023.02'), +] + +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/p/pytorch-CycleGAN-pix2pix/pytorch-CycleGAN-pix2pix-20230314-foss-2022a-CUDA-11.7.0.eb b/easybuild/easyconfigs/p/pytorch-CycleGAN-pix2pix/pytorch-CycleGAN-pix2pix-20230314-foss-2022a-CUDA-11.7.0.eb new file mode 100644 index 00000000000..7c9c80b1e52 --- /dev/null +++ b/easybuild/easyconfigs/p/pytorch-CycleGAN-pix2pix/pytorch-CycleGAN-pix2pix-20230314-foss-2022a-CUDA-11.7.0.eb @@ -0,0 +1,59 @@ +easyblock = 'Binary' + +name = 'pytorch-CycleGAN-pix2pix' +version = '20230314' +_commit = '9f8f61e' +versionsuffix = '-CUDA-11.7.0' + +homepage = 'https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix' +description = """ +PyTorch implementations for both unpaired and paired image-to-image translation.""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +sources = [{ + 'source_urls': ['https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix/archive'], + 'download_filename': '%s.tar.gz' % _commit, + 'filename': SOURCE_TAR_GZ, +}] +patches = ['%(name)s-%(version)s_fix_pytorch_order.patch'] +checksums = [ + {'pytorch-CycleGAN-pix2pix-20230314.tar.gz': '8a50fd9431b5720767b9a3803d8d8e8dd10119555acbf04eaa2a79ffc9cdefca'}, + {'pytorch-CycleGAN-pix2pix-20230314_fix_pytorch_order.patch': + '5afc81d510fd1ead98e1b9788734659328edac81240af9c97ee02267b0cd7d56'}, +] + +dependencies = [ + ('Python', '3.10.4'), + ('CUDA', '11.7.0', '', SYSTEM), + ('PyTorch', '1.12.0', versionsuffix), + ('torchvision', '0.13.1', versionsuffix), + ('wandb', '0.13.4'), + ('dominate', '2.8.0'), + ('visdom', '0.2.4'), +] + +extract_sources = True + +_pylib = 'lib/python%(pyshortver)s/site-packages' + +postinstallcmds = [ + 'cd %(installdir)s && mkdir bin && mv train.py test.py bin/ && chmod a+rx bin/*.py', + 'cd %%(installdir)s && mkdir -p %s && mv data models options util %s' % (_pylib, _pylib), +] + +fix_python_shebang_for = ['bin/*.py'] + +sanity_check_paths = { + 'files': ['bin/train.py', 'bin/test.py'], + 'dirs': ['datasets', 'docs', 'imgs', 'scripts', _pylib], +} + +sanity_check_commands = [ + 'train.py --help', + 'test.py --help', +] + +modextrapaths = {'PYTHONPATH': _pylib} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/p/pytorch-CycleGAN-pix2pix/pytorch-CycleGAN-pix2pix-20230314_fix_pytorch_order.patch b/easybuild/easyconfigs/p/pytorch-CycleGAN-pix2pix/pytorch-CycleGAN-pix2pix-20230314_fix_pytorch_order.patch new file mode 100644 index 00000000000..b6345657b9a --- /dev/null +++ b/easybuild/easyconfigs/p/pytorch-CycleGAN-pix2pix/pytorch-CycleGAN-pix2pix-20230314_fix_pytorch_order.patch @@ -0,0 +1,60 @@ +Fix: +.../PyTorch/1.12.0-foss-2022a-CUDA-11.7.0/lib/python3.10/site-packages/torch/optim/lr_scheduler.py:131: UserWarning: Detected call of `lr_scheduler.step()` before `optimizer.step()`. In PyTorch 1.1.0 and later, you should call them in the opposite order: `optimizer.step()` before `lr_scheduler.step()`. Failure to do this will result in PyTorch skipping the first value of the learning rate schedule. See more details at https://pytorch.org/docs/stable/optim.html#how-to-adjust-learning-rate + warnings.warn("Detected call of `lr_scheduler.step()` before `optimizer.step()`. " + +From: https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix/issues/1412#issuecomment-1109419010 +diff -ur pytorch-CycleGAN-and-pix2pix-9f8f61e.orig/models/base_model.py pytorch-CycleGAN-and-pix2pix-9f8f61e/models/base_model.py +--- pytorch-CycleGAN-and-pix2pix-9f8f61e.orig/models/base_model.py 2023-03-14 21:28:49.000000000 +0100 ++++ pytorch-CycleGAN-and-pix2pix-9f8f61e/models/base_model.py 2023-06-13 21:50:16.637178772 +0200 +@@ -114,16 +114,7 @@ + return self.image_paths + + def update_learning_rate(self): +- """Update learning rates for all the networks; called at the end of every epoch""" +- old_lr = self.optimizers[0].param_groups[0]['lr'] +- for scheduler in self.schedulers: +- if self.opt.lr_policy == 'plateau': +- scheduler.step(self.metric) +- else: +- scheduler.step() +- +- lr = self.optimizers[0].param_groups[0]['lr'] +- print('learning rate %.7f -> %.7f' % (old_lr, lr)) ++ pass + + def get_current_visuals(self): + """Return visualization images. train.py will display these images with visdom, and save the images to a HTML""" +diff -ur pytorch-CycleGAN-and-pix2pix-9f8f61e.orig/models/pix2pix_model.py pytorch-CycleGAN-and-pix2pix-9f8f61e/models/pix2pix_model.py +--- pytorch-CycleGAN-and-pix2pix-9f8f61e.orig/models/pix2pix_model.py 2023-03-14 21:28:49.000000000 +0100 ++++ pytorch-CycleGAN-and-pix2pix-9f8f61e/models/pix2pix_model.py 2023-06-13 22:02:28.673948000 +0200 +@@ -64,6 +64,7 @@ + # define loss functions + self.criterionGAN = networks.GANLoss(opt.gan_mode).to(self.device) + self.criterionL1 = torch.nn.L1Loss() ++ self.old_lr = opt.lr + # initialize optimizers; schedulers will be automatically created by function . + self.optimizer_G = torch.optim.Adam(self.netG.parameters(), lr=opt.lr, betas=(opt.beta1, 0.999)) + self.optimizer_D = torch.optim.Adam(self.netD.parameters(), lr=opt.lr, betas=(opt.beta1, 0.999)) +@@ -125,3 +126,13 @@ + self.optimizer_G.zero_grad() # set G's gradients to zero + self.backward_G() # calculate graidents for G + self.optimizer_G.step() # update G's weights ++ ++ def update_learning_rate(self): ++ lrd = self.opt.lr / self.opt.n_epochs_decay ++ lr = self.old_lr - lrd ++ for param_group in self.optimizer_D.param_groups: ++ param_group['lr'] = lr ++ for param_group in self.optimizer_G.param_groups: ++ param_group['lr'] = lr ++ print('update learning rate: %f -> %f' % (self.old_lr, lr)) ++ self.old_lr = lr +diff -ur pytorch-CycleGAN-and-pix2pix-9f8f61e.orig/train.py pytorch-CycleGAN-and-pix2pix-9f8f61e/train.py +--- pytorch-CycleGAN-and-pix2pix-9f8f61e.orig/train.py 2023-03-14 21:28:49.000000000 +0100 ++++ pytorch-CycleGAN-and-pix2pix-9f8f61e/train.py 2023-06-13 22:03:55.965877000 +0200 +@@ -75,3 +75,5 @@ + model.save_networks(epoch) + + print('End of epoch %d / %d \t Time Taken: %d sec' % (epoch, opt.n_epochs + opt.n_epochs_decay, time.time() - epoch_start_time)) ++ if epoch > opt.n_epochs: ++ model.update_learning_rate() # update learning rates at the end of every epoch. 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 index ec6b5ac968f..206f0e034b5 100644 --- 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 @@ -20,12 +20,18 @@ patches = [ 'Qt5-5.13.1_fix-avx2.patch', 'Qt5-5.13.1_fix-qmake-libdir.patch', 'Qt5-5.14.1_fix-OF-Gentoo.patch', + 'Qt5-5.15.2b_fix-qtwebengine-abseil-cpp-glibc-2.34.patch', + 'Qt5-5.15.2_fix-qtwebengine-breakpad-glibc-2.34.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 + {'qt-everywhere-src-5.15.2.tar.xz': '3a530d1b243b5dec00bc54937455471aaa3e56849d2593edb8ded07228202240'}, + {'Qt5-5.13.1_fix-avx2.patch': '6f46005f056bf9e6ff3e5d012a874d18ee03b33e685941f2979c970be91a9dbc'}, + {'Qt5-5.13.1_fix-qmake-libdir.patch': '511ca9c0599ceb1989f73d8ceea9199c041512d3a26ee8c5fd870ead2c10cb63'}, + {'Qt5-5.14.1_fix-OF-Gentoo.patch': '0b9defb7ce75314d85bebe07e143db7f7de316fec64c17cbd13f7eec5d2d1afa'}, + {'Qt5-5.15.2b_fix-qtwebengine-abseil-cpp-glibc-2.34.patch': + '1ae0f43ae8444041bc5b8b2dd89a257fedff1f9e7e6007b2c8fb336150e80597'}, + {'Qt5-5.15.2_fix-qtwebengine-breakpad-glibc-2.34.patch': + '74590de2b9e32f2c88123cb096c4f5c3001b00710aad096a4d16444a8e9eb991'}, ] builddependencies = [ diff --git a/easybuild/easyconfigs/q/Qt5/Qt5-5.15.7-GCCcore-12.2.0.eb b/easybuild/easyconfigs/q/Qt5/Qt5-5.15.7-GCCcore-12.2.0.eb index 592deb7c5f5..fedde0639fa 100644 --- a/easybuild/easyconfigs/q/Qt5/Qt5-5.15.7-GCCcore-12.2.0.eb +++ b/easybuild/easyconfigs/q/Qt5/Qt5-5.15.7-GCCcore-12.2.0.eb @@ -20,6 +20,8 @@ patches = [ 'Qt5-5.13.1_fix-avx2.patch', 'Qt5-5.13.1_fix-qmake-libdir.patch', 'Qt5-5.14.1_fix-OF-Gentoo.patch', + 'Qt5-5.15.2_fix-qtwebengine-abseil-cpp-glibc-2.34.patch', + 'Qt5-5.15.2_fix-qtwebengine-breakpad-glibc-2.34.patch', 'Qt5-5.15.7_GCC-12.patch', ] checksums = [ @@ -27,6 +29,10 @@ checksums = [ {'Qt5-5.13.1_fix-avx2.patch': '6f46005f056bf9e6ff3e5d012a874d18ee03b33e685941f2979c970be91a9dbc'}, {'Qt5-5.13.1_fix-qmake-libdir.patch': '511ca9c0599ceb1989f73d8ceea9199c041512d3a26ee8c5fd870ead2c10cb63'}, {'Qt5-5.14.1_fix-OF-Gentoo.patch': '0b9defb7ce75314d85bebe07e143db7f7de316fec64c17cbd13f7eec5d2d1afa'}, + {'Qt5-5.15.2_fix-qtwebengine-abseil-cpp-glibc-2.34.patch': + 'f39506495b70cc0968fb7a5f4c9028b0f0a180c552906ff4e58e0bcae83cf187'}, + {'Qt5-5.15.2_fix-qtwebengine-breakpad-glibc-2.34.patch': + '74590de2b9e32f2c88123cb096c4f5c3001b00710aad096a4d16444a8e9eb991'}, {'Qt5-5.15.7_GCC-12.patch': '9a5bde91b223a3e2e90d3d6bec107af69a1a0f18d789593738a953080473fa68'}, ] diff --git a/easybuild/easyconfigs/q/QuantumESPRESSO/QuantumESPRESSO-6.6-intel-2020a.eb b/easybuild/easyconfigs/q/QuantumESPRESSO/QuantumESPRESSO-6.6-intel-2020a.eb new file mode 100644 index 00000000000..9f590db57c1 --- /dev/null +++ b/easybuild/easyconfigs/q/QuantumESPRESSO/QuantumESPRESSO-6.6-intel-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': 'intel', '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/q/qcat/qcat-1.1.0-foss-2022b.eb b/easybuild/easyconfigs/q/qcat/qcat-1.1.0-foss-2022b.eb new file mode 100644 index 00000000000..fa296e92fee --- /dev/null +++ b/easybuild/easyconfigs/q/qcat/qcat-1.1.0-foss-2022b.eb @@ -0,0 +1,35 @@ +# Author: Pavel Grochal (INUITS) +# License: GPLv2 + +easyblock = 'PythonPackage' + +name = 'qcat' +version = '1.1.0' + +homepage = 'https://github.com/nanoporetech/qcat/releases' +description = "qcat is a Python command-line tool for demultiplexing Oxford Nanopore reads from FASTQ files" + +toolchain = {'name': 'foss', 'version': '2022b'} + +sources = [SOURCE_TAR_GZ] +checksums = ['56f225321a48eef43e2b83a33cbbb47bf1b1edcd569f3db4d088a1bc0199e20a'] + +dependencies = [ + ('Python', '3.10.8'), + ('Biopython', '1.81'), + ('python-parasail', '1.3.4'), + ('PyYAML', '6.0'), +] + +download_dep_fail = True +use_pip = True +sanity_pip_check = True + +sanity_check_paths = { + 'files': ['bin/qcat'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = ["qcat --help"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.15-foss-2022a-R-4.2.1.eb b/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.15-foss-2022a-R-4.2.1.eb index 1ccecc5efcd..70a2e6684d3 100644 --- a/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.15-foss-2022a-R-4.2.1.eb +++ b/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.15-foss-2022a-R-4.2.1.eb @@ -1209,6 +1209,21 @@ exts_list = [ ('deepSNV', '1.42.1', { 'checksums': ['f64d43645d696af7b375c66f7dccf877d099482f8470dd18c4aba8b1f30bf22d'], }), + ('TreeSummarizedExperiment', '2.4.0', { + 'checksums': ['a7339e41cb1ed74bb633b6c4ae6e762f25eeeae2c396da6fa676b29550b7182f'], + }), + ('decontam', '1.16.0', { + 'checksums': ['09a3e41b012678e3c9a3aa8bd577b59f33fbfd05dc270382f8065feb986330bd'], + }), + ('DECIPHER', '2.24.0', { + 'checksums': ['059fbb6df17a7e5dc0e6bd4b95677c44cd4babcd30ef9f3dfc3ee0f7dd12b810'], + }), + ('mia', '1.4.0', { + 'checksums': ['b332f5bc9a2955fd4fff40b98c06696a816fcf15224c0799ea00afa40d4eea96'], + }), + ('ANCOMBC', '1.6.4', { + 'checksums': ['ff5e80929cdbf6beb1073a6f5e008e2d2d8bdaccf5f65635b7fccf6d96b9710b'], + }), ] modextrapaths = {'R_LIBS_SITE': ''} diff --git a/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.16-foss-2022b-R-4.2.2.eb b/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.16-foss-2022b-R-4.2.2.eb index 1b5f6973977..a117c707b50 100644 --- a/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.16-foss-2022b-R-4.2.2.eb +++ b/easybuild/easyconfigs/r/R-bundle-Bioconductor/R-bundle-Bioconductor-3.16-foss-2022b-R-4.2.2.eb @@ -1220,6 +1220,27 @@ exts_list = [ ('SpatialExperiment', '1.8.1', { 'checksums': ['0fdfc5642dde227b73d81812b6641f2d10223de66892b9d61ac80664cd6cbacd'], }), + ('TrajectoryUtils', '1.6.0', { + 'checksums': ['03f0ef8643c0a8be48e042efe5b17ce1840719dd70f16151216fe6aaef261c8c'], + }), + ('slingshot', '2.6.0', { + 'checksums': ['6348ecd10a1572593de1d329318f03d8b1352dc041290a092d25a72f5a8c0902'], + }), + ('TreeSummarizedExperiment', '2.6.0', { + 'checksums': ['82aa3d7ec6935f5bd8fde3d1be38f9827c6bf2bd2a1af98889a9001aec7ddf8c'], + }), + ('decontam', '1.18.0', { + 'checksums': ['02b95f72c76af5abbc5d2febbb2f51b88fab76ebc355b45252bc5bea848a672e'], + }), + ('DECIPHER', '2.26.0', { + 'checksums': ['c10e55204abbfb691a697f40a5527d8e1d645710f43459fad553ece24aeb1f06'], + }), + ('mia', '1.6.0', { + 'checksums': ['ccfaca9cc948778e10bc6157fa95f69db0157c7abcc7cf1b63b934b3df43e87b'], + }), + ('ANCOMBC', '2.0.2', { + 'checksums': ['e577ffe62a86090de9ea3743c84a4f3b34c3d645dcedff3c8af675b8c9b69136'], + }), ] modextrapaths = {'R_LIBS_SITE': ''} diff --git a/easybuild/easyconfigs/r/R/R-4.2.1-foss-2022a.eb b/easybuild/easyconfigs/r/R/R-4.2.1-foss-2022a.eb index 313583b74ab..9d7060cf52e 100644 --- a/easybuild/easyconfigs/r/R/R-4.2.1-foss-2022a.eb +++ b/easybuild/easyconfigs/r/R/R-4.2.1-foss-2022a.eb @@ -15,6 +15,7 @@ builddependencies = [ ('pkgconf', '1.8.0'), ('Xvfb', '21.1.3'), ('Autotools', '20220317'), + ('CMake', '3.24.3'), ] dependencies = [ ('X11', '20220504'), @@ -3526,6 +3527,27 @@ exts_list = [ ('epitools', '0.5-10.1', { 'checksums': ['b418854de1fcedd126f3bf19dc27e8a71ee6efae5371098ab64a53a2d51d164b'], }), + ('RBesT', '1.6-6', { + 'checksums': ['0301ee95f9b46722b9e1bacd668b570eee14badaa8ca0a7d0ccd8d3d9068d485'], + }), + ('systemfonts', '1.0.4', { + 'checksums': ['ef766c75b942f147d382664a00d6a4930f1bfe0cce9d88943f571682a85a84c0'], + }), + ('svglite', '2.1.1', { + 'checksums': ['48700169eec1b05dbee9e2bae000aa84c544617b018cb3ac431a128cfd8dac56'], + }), + ('ECOSolveR', '0.5.5', { + 'checksums': ['2594ed1602b2fe159cc9aff3475e9cba7c1927b496c3daeabc1c0d227943ecc7'], + }), + ('scs', '3.2.4', { + 'checksums': ['c3f39874bf4532fa8c2f2e2c41533ba4fe20b61cf6dfc6314407dc981621298f'], + }), + ('osqp', '0.6.0.8', { + 'checksums': ['14034045ae4ae5ec4eae4944653d41d94282fa85a0cd53614ac86f34fd02ed97'], + }), + ('CVXR', '1.0-11', { + 'checksums': ['e92a9638f35f4909e2a29c3b7106081e3dae7ff88b14bb6466b87fbdc80b972a'], + }), ] moduleclass = 'lang' diff --git a/easybuild/easyconfigs/r/R/R-4.2.2-foss-2022b.eb b/easybuild/easyconfigs/r/R/R-4.2.2-foss-2022b.eb index e8a09bc8b64..a497c759bcb 100644 --- a/easybuild/easyconfigs/r/R/R-4.2.2-foss-2022b.eb +++ b/easybuild/easyconfigs/r/R/R-4.2.2-foss-2022b.eb @@ -15,6 +15,7 @@ builddependencies = [ ('pkgconf', '1.9.3'), ('Xvfb', '21.1.6'), ('Autotools', '20220317'), + ('CMake', '3.24.3'), ] dependencies = [ ('X11', '20221110'), @@ -3591,6 +3592,54 @@ exts_list = [ ('word2vec', '0.3.4', { 'checksums': ['53db1d8c8d6af8ace8636adec1e254b0b61fbdba77ba7a295afc7da3eb4e4362'], }), + ('epitools', '0.5-10.1', { + 'checksums': ['b418854de1fcedd126f3bf19dc27e8a71ee6efae5371098ab64a53a2d51d164b'], + }), + ('RBesT', '1.6-6', { + 'checksums': ['0301ee95f9b46722b9e1bacd668b570eee14badaa8ca0a7d0ccd8d3d9068d485'], + }), + ('svglite', '2.1.1', { + 'checksums': ['48700169eec1b05dbee9e2bae000aa84c544617b018cb3ac431a128cfd8dac56'], + }), + ('rARPACK', '0.11-0', { + 'checksums': ['c33401e2e31d272d485ce2ed22e7fe43ac641fd7c0a45a9b848d3ad60df1028a'], + }), + ('FKSUM', '1.0.1', { + 'checksums': ['6de23f5b7692f627b0b8e9575a612e77e166c16c28acab31d5ea0a27d7afe829'], + }), + ('warp', '0.2.0', { + 'checksums': ['0e0de344f3d711d58e6be2ab47ade1db3b703bf3ca85080b1124c0c25a630a68'], + }), + ('slider', '0.3.0', { + 'checksums': ['bc6a17ba5f0b27c8504a1d04992108470f24fd5662fbea14c300ac75fb02fca1'], + }), + ('rsample', '1.1.1', { + 'checksums': ['90d2ae86d27a397ba9d8d010e7dea5c7b86fecbec7e9af273db0c2e8c374b8ba'], + }), + ('haldensify', '0.2.3', { + 'checksums': ['fc0ee1d5bce54520bad6a1ce1cce5074eead6c8573dc4ce502c48a244d7f341c'], + }), + ('Polychrome', '1.5.1', { + 'checksums': ['6fe7da62459d7b94b1a8516a4626971cf35b76331f46e36798b05d29aa00d143'], + }), + ('shinycssloaders', '1.0.0', { + 'checksums': ['744641836a4cede2bb47caff1b600bff2c3e450dfccd2af4fab0413a8ea87d64'], + }), + ('princurve', '2.1.6', { + 'checksums': ['0216332390eb27013b6ba62232782156dfc99ca640087fcaff53d2be9218f373'], + }), + ('ECOSolveR', '0.5.5', { + 'checksums': ['2594ed1602b2fe159cc9aff3475e9cba7c1927b496c3daeabc1c0d227943ecc7'], + }), + ('scs', '3.2.4', { + 'checksums': ['c3f39874bf4532fa8c2f2e2c41533ba4fe20b61cf6dfc6314407dc981621298f'], + }), + ('osqp', '0.6.0.8', { + 'checksums': ['14034045ae4ae5ec4eae4944653d41d94282fa85a0cd53614ac86f34fd02ed97'], + }), + ('CVXR', '1.0-11', { + 'checksums': ['e92a9638f35f4909e2a29c3b7106081e3dae7ff88b14bb6466b87fbdc80b972a'], + }), ] moduleclass = 'lang' diff --git a/easybuild/easyconfigs/r/RNA-SeQC/RNA-SeQC-1.1.8-GCCcore-11.2.0-Java-11.eb b/easybuild/easyconfigs/r/RNA-SeQC/RNA-SeQC-1.1.8-GCCcore-11.2.0-Java-11.eb new file mode 100644 index 00000000000..b2abeb093c0 --- /dev/null +++ b/easybuild/easyconfigs/r/RNA-SeQC/RNA-SeQC-1.1.8-GCCcore-11.2.0-Java-11.eb @@ -0,0 +1,37 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild + +easyblock = 'JAR' + +name = 'RNA-SeQC' +version = '1.1.8' +versionsuffix = '-Java-%(javaver)s' + +homepage = 'https://software.broadinstitute.org/cancer/cga/rna-seqc' +description = """RNA-SeQC is a java program which computes a series of quality control metrics for + RNA-seq data. The input can be one or more BAM files. The output consists of HTML reports and tab + delimited files of metrics data. This program can be valuable for comparing sequencing quality + across different samples or experiments to evaluate different experimental parameters. It can + also be run on individual samples as a means of quality control before continuing with downstream + analysis.""" + +toolchain = {'name': 'GCCcore', 'version': '11.2.0'} + +source_urls = ['https://data.broadinstitute.org/cancer/cga/tools/rnaseqc/'] +sources = ['%(name)s_v%(version)s.jar'] +checksums = ['0a6a8cc885e77c7e7b75dafcfd2152e0d1031fa7aba2565250a46fbd98979793'] + +builddependencies = [('binutils', '2.37')] + +dependencies = [ + ('BWA', '0.7.17'), + ('Java', '11', '', SYSTEM), +] + +modloadmsg = "To execute RNA-SeQC run: java -jar $EBROOTRNAMINSEQC/%(name)s_v%(version)s.jar" + +sanity_check_paths = { + 'files': ['%(name)s_v%(version)s.jar'], + 'dirs': [''], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/r/ROOT/ROOT-6.22.08-foss-2020b.eb b/easybuild/easyconfigs/r/ROOT/ROOT-6.22.08-foss-2020b.eb index 020ed48f660..ab70796cf4a 100644 --- a/easybuild/easyconfigs/r/ROOT/ROOT-6.22.08-foss-2020b.eb +++ b/easybuild/easyconfigs/r/ROOT/ROOT-6.22.08-foss-2020b.eb @@ -50,6 +50,4 @@ configopts += ' -Dfftw3=ON -Dgsl=ON -DOpenGL_GL_PREFERENCE=GLVND' # Set C++ standard to C++17 for better stability configopts += ' -DCMAKE_CXX_STANDARD=17' -configopts += " -Dgallium-drivers=swrast" - moduleclass = 'data' diff --git a/easybuild/easyconfigs/r/ROOT/ROOT-6.24.06-foss-2021b.eb b/easybuild/easyconfigs/r/ROOT/ROOT-6.24.06-foss-2021b.eb index 0ab4dcba930..91350423753 100644 --- a/easybuild/easyconfigs/r/ROOT/ROOT-6.24.06-foss-2021b.eb +++ b/easybuild/easyconfigs/r/ROOT/ROOT-6.24.06-foss-2021b.eb @@ -50,6 +50,4 @@ configopts += ' -Dfftw3=ON -Dgsl=ON -DOpenGL_GL_PREFERENCE=GLVND' # Set C++ standard to C++17 for better stability configopts += ' -DCMAKE_CXX_STANDARD=17' -configopts += " -Dgallium-drivers=swrast" - moduleclass = 'data' diff --git a/easybuild/easyconfigs/r/ROOT/ROOT-6.26.06-foss-2022a.eb b/easybuild/easyconfigs/r/ROOT/ROOT-6.26.06-foss-2022a.eb new file mode 100644 index 00000000000..e3109d99f7d --- /dev/null +++ b/easybuild/easyconfigs/r/ROOT/ROOT-6.26.06-foss-2022a.eb @@ -0,0 +1,53 @@ +name = 'ROOT' +version = '6.26.06' + +homepage = 'https://root.cern.ch/drupal/' +description = """The ROOT system provides a set of OO frameworks with all the functionality + needed to handle and analyze large amounts of data in a very efficient way.""" + +toolchain = {'name': 'foss', 'version': '2022a'} +toolchainopts = {'pic': True} + +source_urls = ['https://root.cern.ch/download/'] +sources = ['%(namelower)s_v%(version)s.source.tar.gz'] +checksums = ['b1f73c976a580a5c56c8c8a0152582a1dfc560b4dd80e1b7545237b65e6c89cb'] + +builddependencies = [ + ('CMake', '3.23.1'), + ('pkgconf', '1.8.0'), +] + +dependencies = [ + ('GSL', '2.7'), + ('libxml2', '2.9.13'), + ('PCRE', '8.45'), + ('CFITSIO', '4.2.0'), + ('freetype', '2.12.1'), + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), + ('zlib', '1.2.12'), + ('X11', '20220504'), + ('Mesa', '22.0.3'), + ('libGLU', '9.0.2'), + ('GL2PS', '1.4.2'), + ('FFTW', '3.3.10'), + ('SQLite', '3.38.3'), + ('XZ', '5.2.5'), + ('libpng', '1.6.37'), +] + +# NOTE: Ensure that each configopts string begins with a blank +# disable some components +configopts = " -Dxrootd=OFF -Dmysql=OFF -Dkrb5=OFF -Dodbc=OFF -Doracle=OFF -Dpgsql=OFF -Dqt=OFF" + +# make sure some components are enabled +configopts += " -Dpcre=ON -Dzlib=ON -Dpyroot=ON" +configopts += " -Dunuran=ON -Dexplicitlink=ON -Dminuit2=ON -Droofit=ON " + +# Add component-specific settings based on dependencies +configopts += ' -Dfftw3=ON -Dgsl=ON -DOpenGL_GL_PREFERENCE=GLVND' + +# Set C++ standard to C++17 for better stability +configopts += ' -DCMAKE_CXX_STANDARD=17' + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/r/ROOT/ROOT-6.26.10-foss-2022b.eb b/easybuild/easyconfigs/r/ROOT/ROOT-6.26.10-foss-2022b.eb index 4acf0146bc4..6e41414b19b 100644 --- a/easybuild/easyconfigs/r/ROOT/ROOT-6.26.10-foss-2022b.eb +++ b/easybuild/easyconfigs/r/ROOT/ROOT-6.26.10-foss-2022b.eb @@ -50,6 +50,4 @@ configopts += ' -Dfftw3=ON -Dgsl=ON -DOpenGL_GL_PREFERENCE=GLVND' # Set C++ standard to C++17 for better stability configopts += ' -DCMAKE_CXX_STANDARD=17' -configopts += " -Dgallium-drivers=swrast" - moduleclass = 'data' diff --git a/easybuild/easyconfigs/r/RSEM/RSEM-1.3.3-foss-2021b.eb b/easybuild/easyconfigs/r/RSEM/RSEM-1.3.3-foss-2021b.eb new file mode 100644 index 00000000000..55809893f41 --- /dev/null +++ b/easybuild/easyconfigs/r/RSEM/RSEM-1.3.3-foss-2021b.eb @@ -0,0 +1,51 @@ +## +# This is a contribution from DeepThought HPC Service, Flinders University, Adelaide, Australia +# Homepage: https://staff.flinders.edu.au/research/deep-thought +# +# Authors:: Robert Qiao +# License:: GPLv3.0 +# +# Notes:: +## + +easyblock = 'ConfigureMake' + +name = 'RSEM' +version = '1.3.3' + +homepage = 'https://deweylab.github.io/RSEM/' +description = "RNA-Seq by Expectation-Maximization" + +toolchain = {'name': 'foss', 'version': '2021b'} +toolchainopts = {'openmp': True} + +source_urls = ['https://github.com/deweylab/RSEM/archive/'] +sources = ['v%(version)s.tar.gz'] +patches = ['RSEM-1.3.0_makefiles.patch'] +checksums = [ + '90e784dd9df8346caa2a7e3ad2ad07649608a51df1c69bfb6e16f45e611a40dc', # v1.3.3.tar.gz + '2d244659206c78655b92f1bd519ee65f28a6b5f9418dfad04e887b64eca6641b', # RSEM-1.3.0_makefiles.patch +] + +skipsteps = ['configure'] + +installopts = "prefix=%(installdir)s" + +dependencies = [ + ('ncurses', '6.2'), + ('zlib', '1.2.11'), + ('Perl', '5.34.0'), + ('R', '4.1.2'), + ('HISAT2', '2.2.1'), + ('STAR', '2.7.9a'), + ('Bowtie2', '2.4.4'), + ('Bowtie', '1.3.1'), +] + +sanity_check_paths = { + 'files': ['bin/rsem-calculate-expression', 'bin/rsem-plot-model', 'bin/rsem-plot-transcript-wiggles', + 'bin/rsem-bam2wig', 'bin/rsem-generate-data-matrix', 'bin/rsem-run-em', 'bin/convert-sam-for-rsem'], + 'dirs': ['bin/samtools-1.3'], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/r/Ruby/Ruby-3.2.2-GCCcore-12.2.0.eb b/easybuild/easyconfigs/r/Ruby/Ruby-3.2.2-GCCcore-12.2.0.eb new file mode 100644 index 00000000000..0f53d7206f9 --- /dev/null +++ b/easybuild/easyconfigs/r/Ruby/Ruby-3.2.2-GCCcore-12.2.0.eb @@ -0,0 +1,169 @@ +name = 'Ruby' +version = '3.2.2' + +homepage = 'https://www.ruby-lang.org' +description = """Ruby is a dynamic, open source programming language with + a focus on simplicity and productivity. It has an elegant syntax that is + natural to read and easy to write.""" + +toolchain = {'name': 'GCCcore', 'version': '12.2.0'} + +source_urls = ['https://cache.ruby-lang.org/pub/ruby/%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['96c57558871a6748de5bc9f274e93f4b5aad06cd8f37befa0e8d94e7b8a423bc'] + +builddependencies = [ + ('binutils', '2.39'), +] + +dependencies = [ + ('libyaml', '0.2.5'), +] + +exts_default_options = { + 'source_urls': ['https://rubygems.org/downloads/'], + 'source_tmpl': '%(name)s-%(version)s.gem', +} + +# !! order of packages is important !! +# some packages have dependencies with minimum and maximum version requirements +# each version is picked as high as possible to fullfill all requirements +# packages updated on 2022-12-20 +exts_list = [ + ('ffi', '1.15.5', { + 'checksums': ['6f2ed2fa68047962d6072b964420cba91d82ce6fa8ee251950c17fca6af3c2a0'], + }), + ('childprocess', '4.1.0', { + 'checksums': ['3616ce99ccb242361ce7f2b19bf9ff3e6bc1d98b927c7edc29af8ca617ba6cd3'], + }), + ('json', '2.6.3', { + 'checksums': ['86aaea16adf346a2b22743d88f8dcceeb1038843989ab93cda44b5176c845459'], + }), + ('cabin', '0.9.0', { + 'checksums': ['91c5394289e993e7037a6c869e3f212f31a5984d2b1811ac934f591c87446b2c'], + }), + ('backports', '3.24.1', { + 'checksums': ['83a720ea9a3ee0cf5eab18b866e9282293ab4f54eb6430291b3c238481677fb8'], + }), + ('arr-pm', '0.0.12', { + 'checksums': ['fdff482f75239239201f4d667d93424412639aad0b3b0ad4d827e7c637e0ad39'], + }), + ('clamp', '1.3.2', { + 'checksums': ['4f6a99a8678d51abbf1650263a74d1ac50939edc11986271431d2e03a0d7a022'], + }), + ('multipart-post', '2.3.0', { + 'checksums': ['3dcdd74a767302559fcf91a63b568ee00770494ce24195167b1c147ab3f6fe51'], + }), + ('ruby2_keywords', '0.0.5', { + 'checksums': ['ffd13740c573b7301cf7a2e61fc857b2a8e3d3aff32545d6f8300d8bae10e3ef'], + }), + ('faraday-net_http', '3.0.2', { + 'checksums': ['6882929abed8094e1ee30344a3369e856fe34530044630d1f652bf70ebd87e8d'], + }), + ('faraday', '1.2.0', { + 'checksums': ['bd5c138304ee53907f8d0747724660c3a1cdf77d530d1cecd70d141299194b99'], + }), + ('faraday_middleware', '1.2.0', { + 'checksums': ['ded15d574d50e92bd04448d5566913af5cb1a01b2fa311ceecc2464fa0ab88af'], + }), + ('highline', '2.1.0', { + 'checksums': ['d63d7f472f8ffaa143725161ae6fb06895b5cb7527e0b4dac5ad1e4902c80cb9'], + }), + ('net-http-pipeline', '1.0.1', { + 'checksums': ['6923ce2f28bfde589a9f385e999395eead48ccfe4376d4a85d9a77e8c7f0b22f'], + }), + ('connection_pool', '2.4.1', { + 'checksums': ['0f40cf997091f1f04ff66da67eabd61a9fe0d4928b9a3645228532512fab62f4'], + }), + ('net-http-persistent', '2.9.4', { + 'checksums': ['24274d207ffe66222ef70c78a052c7ea6e66b4ff21e2e8a99e3335d095822ef9'], + }), + ('multi_json', '1.15.0', { + 'checksums': ['1fd04138b6e4a90017e8d1b804c039031399866ff3fbabb7822aea367c78615d'], + }), + ('public_suffix', '5.0.1', { + 'checksums': ['65603917ff4ecb32f499f42c14951aeed2380054fa7fc51758fc0a8d455fe043'], + }), + ('addressable', '2.8.4', { + 'checksums': ['40a88af5285625b7fb14070e550e667d5b0cc91f748068701b4d897cacda4897'], + }), + ('concurrent-ruby', '1.2.2', { + 'checksums': ['3879119b8b75e3b62616acc256c64a134d0b0a7a9a3fcba5a233025bcde22c4f'], + }), + ('i18n', '1.14.1', { + 'checksums': ['9d03698903547c060928e70a9bc8b6b87fda674453cda918fc7ab80235ae4a61'], + }), + ('minitest', '5.18.0', { + 'checksums': ['06f43aa0692ce3acf19cb5bc539ad2c6095ca3d2c7e5fbafc58a7d847e898745'], + }), + ('thread_safe', '0.3.6', { + 'checksums': ['9ed7072821b51c57e8d6b7011a8e282e25aeea3a4065eab326e43f66f063b05a'], + }), + ('tzinfo', '1.1.0', { + 'checksums': ['715a47c25f8e4c2f106c92d5a97e612f84eb7e85f5822bf3d6cf615b44492abc'], + }), + ('zeitwerk', '2.6.8', { + 'checksums': ['7361fc7da53b2a81b49ab2d38792b78e99690095659c11609b6d1cc58f5c6632'], + }), + ('activesupport', '5.2.8.1', { + 'checksums': ['f0498c616e1b243c7b56d67920c389f959c186ad7031569e80335b42e1d22564'], + }), + ('gh', '0.18.0', { + 'checksums': ['eb93f18a88db3ba92eb888610fc53fae731d9dacfe55922b58cc3f3aca776a47'], + }), + ('launchy', '2.5.2', { + 'checksums': ['8aa0441655aec5514008e1d04892c2de3ba57bd337afb984568da091121a241b'], + }), + ('ethon', '0.16.0', { + 'checksums': ['bba0da1cea8ac3e1f5cdd7cb1cb5fc78d7ac562c33736f18f0c3eb2b63053d9e'], + }), + ('typhoeus', '1.4.0', { + 'checksums': ['fff9880d5dc35950e7706cf132fd297f377c049101794be1cf01c95567f642d4'], + }), + ('websocket', '1.2.9', { + 'checksums': ['884b12dee993217795bb5f58acc89c0121c88bdc99df4d1636c0505dca352b36'], + }), + ('pusher-client', '0.6.2', { + 'checksums': ['c405c931090e126c056d99f6b69a01b1bcb6cbfdde02389c93e7d547c6efd5a3'], + }), + ('diff-lcs', '1.5.0', { + 'checksums': ['49b934001c8c6aedb37ba19daec5c634da27b318a7a3c654ae979d6ba1929b67'], + }), + ('rspec-support', '3.12.0', { + 'checksums': ['dd4d44b247ff679b95b5607ac5641d197a5f9b1d33f916123cb98fc5f917c58b'], + }), + ('rspec-mocks', '3.12.5', { + 'checksums': ['82030d2bfa1e4eef0a2ee36af5d3d224672598912a3f3384f27cbba9fa09d5c1'], + }), + ('rspec-expectations', '3.12.3', { + 'checksums': ['093d18e2e7e0a2c619ef8f7343d442fc6c0793fb7897d56f16f26c8a9d244416'], + }), + ('rspec-core', '3.12.2', { + 'checksums': ['155b54480f28e2b2813185077fe435c2d663031616360ed3b179a9d6a55d2551'], + }), + ('rspec', '3.12.0', { + 'checksums': ['ccc41799a43509dc0be84070e3f0410ac95cbd480ae7b6c245543eb64162399c'], + }), + ('rack', '2.2.4', { + 'checksums': ['ea2232b638cbd919129c8c8ad8012ecaccc09f848152a7e705d2139d0137ac2b'], + }), + ('rack-protection', '3.0.6', { + 'checksums': ['08c6dfdab74abf57243242df73c286de3d75b2b0110803cd79b4f3f0d531f5ce'], + }), + ('tilt', '2.2.0', { + 'checksums': ['e76f850e611128a87992bb13ba74807624a9b8ec748e2c2ea7139580f67ab22e'], + }), + ('mustermann', '3.0.0', { + 'checksums': ['6d3569aa3c3b2f048c60626f48d9b2d561cc8d2ef269296943b03da181c08b67'], + }), + ('sinatra', '3.0.6', { + 'checksums': ['1d1e158ee7fcdf40e01461bc461f13d854d371b135259370130fca875d870fe0'], + }), + ('rack-test', '2.1.0', { + 'checksums': ['0c61fc61904049d691922ea4bb99e28004ed3f43aa5cfd495024cc345f125dfb'], + }), + ('bundler', '2.4.14', { + 'checksums': ['94824acd510adf40f8dcee6ad18c09f85712c89c468a3dae5a5c47fa69487c72'], + })] + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/r/Rust/Rust-1.65.0-GCCcore-12.2.0.eb b/easybuild/easyconfigs/r/Rust/Rust-1.65.0-GCCcore-12.2.0.eb index 757f1d6d4bf..31a461e1867 100644 --- a/easybuild/easyconfigs/r/Rust/Rust-1.65.0-GCCcore-12.2.0.eb +++ b/easybuild/easyconfigs/r/Rust/Rust-1.65.0-GCCcore-12.2.0.eb @@ -1,5 +1,3 @@ -easyblock = 'ConfigureMake' - name = 'Rust' version = '1.65.0' @@ -28,31 +26,4 @@ dependencies = [ ('OpenSSL', '1.1', '', SYSTEM), ] -configopts = "--enable-extended --sysconfdir=%(installdir)s/etc " - -# avoid build dependency on Ninja, which requires Python, -# since Rust is a build dependency for cryptography that is included with Python -configopts += "--set=llvm.ninja=false " - -# Use ./x.py to bootstrap so that options like -j N are correctly passed through -# see: https://rustc-dev-guide.rust-lang.org/building/how-to-build-and-run.html#what-is-xpy -# (ConfigureMake already adds `-j %(parallel)s` to the `build_cmd`) -build_cmd = "./x.py build" -install_cmd = "./x.py install -j %(parallel)s" - -# avoid failure when home directory is an NFS mount, -# see https://github.com/rust-lang/cargo/issues/6652 -prebuildopts = "export CARGO_HOME=%(builddir)s/cargo && " -preinstallopts = prebuildopts - -sanity_check_paths = { - 'files': ['bin/cargo', 'bin/rustc', 'bin/rustdoc'], - 'dirs': ['lib/rustlib', 'share/doc', 'share/man'], -} - -sanity_check_commands = [ - "cargo --version", - "rustc --version", -] - moduleclass = 'lang' diff --git a/easybuild/easyconfigs/r/Rust/Rust-1.70.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/r/Rust/Rust-1.70.0-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..6b3271c7a20 --- /dev/null +++ b/easybuild/easyconfigs/r/Rust/Rust-1.70.0-GCCcore-12.3.0.eb @@ -0,0 +1,31 @@ +name = 'Rust' +version = '1.70.0' + +homepage = 'https://www.rust-lang.org' +description = """Rust is a systems programming language that runs blazingly fast, prevents segfaults, + and guarantees thread safety.""" + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} + +source_urls = ['https://static.rust-lang.org/dist/'] +sources = ['rustc-%(version)s-src.tar.gz'] +patches = ['Rust-1.70_sysroot-fix-interpreter.patch'] +checksums = [ + {'rustc-1.70.0-src.tar.gz': 'b2bfae000b7a5040e4ec4bbc50a09f21548190cb7570b0ed77358368413bd27c'}, + {'Rust-1.70_sysroot-fix-interpreter.patch': '220129db55e022a98d25028da5dcc9f26b252dd995c3ac92f6312dbb1e362cb1'}, +] + +builddependencies = [ + ('binutils', '2.40'), + ('CMake', '3.26.3'), + ('Python', '3.11.3'), + ('Ninja', '1.11.1'), + ('pkgconf', '1.9.5'), + ('patchelf', '0.18.0'), # only required when RPATH linking is enabled +] + +dependencies = [ + ('OpenSSL', '1.1', '', SYSTEM), +] + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/r/Rust/Rust-1.70_sysroot-fix-interpreter.patch b/easybuild/easyconfigs/r/Rust/Rust-1.70_sysroot-fix-interpreter.patch new file mode 100644 index 00000000000..a5e3d50eb2b --- /dev/null +++ b/easybuild/easyconfigs/r/Rust/Rust-1.70_sysroot-fix-interpreter.patch @@ -0,0 +1,44 @@ +Use patchelf to fix interpreter of binaries that are used during Rust bootstrap procedure +when EasyBuild is configured to build in an alternate sysroot + +This fixes problems like due to a clash with the interpreter from the host, and a more recent libc.so.6 that's picked up +from the alternate sysroot: +error: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /tmp/easybuild/build/Rust/1.52.1/GCCcore-10.3.0/rustc-1.52.1-src/build/bootstrap/debug/deps/libproc_macro_error_attr-fbfef320d848b049.so) + +author: Kenneth Hoste (HPC-UGent) +updated by: micketeer@gmail.com + +--- rustc-1.70.0-src.orig/src/bootstrap/bootstrap.py 2023-05-31 21:28:10.000000000 +0200 ++++ rustc-1.70.0-src/src/bootstrap/bootstrap.py 2023-06-04 14:15:39.784929373 +0200 +@@ -481,6 +481,10 @@ + if self._should_fix_bins_and_dylibs is not None: + return self._should_fix_bins_and_dylibs + ++ if os.getenv("EASYBUILD_SYSROOT"): ++ self._should_fix_bins_and_dylibs = True ++ return True ++ + def get_answer(): + default_encoding = sys.getdefaultencoding() + try: +@@ -531,6 +535,20 @@ + assert self._should_fix_bins_and_dylibs is True + print("attempting to patch", fname) + ++ easybuild_sysroot = os.getenv("EASYBUILD_SYSROOT") ++ if easybuild_sysroot: ++ if not fname.endswith(".so"): ++ # determine patch to interpreter in host via output produced by 'readelf -l /bin/bash' ++ readelf_out = subprocess.check_output(['readelf', '-l', '/bin/bash']).decode('ascii', 'ignore').strip() ++ regex = re.compile('.*program interpreter: ([^\]]+)', re.M) ++ res = regex.search(readelf_out) ++ interpreter_path = os.path.join(easybuild_sysroot, res.group(1).lstrip('/')) ++ if not os.path.exists(interpreter_path): ++ raise Exception("Derived path to interpreter does not exist: %s" % interpreter_path) ++ cmd = ["patchelf", "--set-interpreter", interpreter_path, fname] ++ run(cmd, verbose=True) ++ return ++ + # Only build `.nix-deps` once. + nix_deps_dir = self.nix_deps_dir + if not nix_deps_dir: diff --git a/easybuild/easyconfigs/r/rasterio/rasterio-1.3.8-foss-2022b.eb b/easybuild/easyconfigs/r/rasterio/rasterio-1.3.8-foss-2022b.eb new file mode 100644 index 00000000000..58109f4cb4d --- /dev/null +++ b/easybuild/easyconfigs/r/rasterio/rasterio-1.3.8-foss-2022b.eb @@ -0,0 +1,54 @@ +easyblock = 'PythonBundle' + +name = 'rasterio' +version = '1.3.8' + +homepage = 'https://github.com/mapbox/rasterio' +description = "Rasterio reads and writes geospatial raster data." + +toolchain = {'name': 'foss', 'version': '2022b'} + +dependencies = [ + ('Python', '3.10.8'), + ('SciPy-bundle', '2023.02'), + ('GDAL', '3.6.2'), + ('matplotlib', '3.7.0'), # plot extra + ('boto3', '1.26.163'), # s3 extra +] + +use_pip = True + +exts_list = [ + ('affine', '2.4.0', { + 'checksums': ['a24d818d6a836c131976d22f8c27b8d3ca32d0af64c1d8d29deb7bafa4da1eea'], + }), + ('click-plugins', '1.1.1', { + 'checksums': ['46ab999744a9d831159c3411bb0c79346d94a444df9a3a3742e9ed63645f264b'], + }), + ('cligj', '0.7.2', { + 'checksums': ['a4bc13d623356b373c2c27c53dbd9c68cae5d526270bfa71f6c6fa69669c6b27'], + }), + ('snuggs', '1.4.7', { + 'checksums': ['501cf113fe3892e14e2fee76da5cd0606b7e149c411c271898e6259ebde2617b'], + }), + (name, version, { + 'use_pip_extras': 'plot,s3', + 'checksums': ['ffdd18e78efdf8ad5861065fd812a66dd34264293317ff6540a078ea891cdef8'], + }), +] + +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/regionmask/regionmask-0.10.0-foss-2022b.eb b/easybuild/easyconfigs/r/regionmask/regionmask-0.10.0-foss-2022b.eb new file mode 100644 index 00000000000..dec0c537305 --- /dev/null +++ b/easybuild/easyconfigs/r/regionmask/regionmask-0.10.0-foss-2022b.eb @@ -0,0 +1,31 @@ +easyblock = 'PythonBundle' + +name = 'regionmask' +version = '0.10.0' + +homepage = 'https://regionmask.readthedocs.io' +description = """regionmask creates masks of geographical regions. It determines to which +geographic region each grid point belongs.""" + +toolchain = {'name': 'foss', 'version': '2022b'} + +dependencies = [ + ('Python', '3.10.8'), + ('SciPy-bundle', '2023.02'), + ('geopandas', '0.12.2'), + ('rasterio', '1.3.8'), + ('Shapely', '2.0.1'), + ('xarray', '2023.4.2'), +] + +use_pip = True + +exts_list = [ + (name, version, { + 'checksums': ['6e951ad3513234d1fbd9ed2bfe71b4fd8b088d3fd270606251692854976a3a6b'], + }), +] + +sanity_pip_check = True + +moduleclass = 'geo' diff --git a/easybuild/easyconfigs/r/rnaQUAST/rnaQUAST-2.2.2-foss-2021b.eb b/easybuild/easyconfigs/r/rnaQUAST/rnaQUAST-2.2.2-foss-2021b.eb index 06463e95584..20225e8951c 100644 --- a/easybuild/easyconfigs/r/rnaQUAST/rnaQUAST-2.2.2-foss-2021b.eb +++ b/easybuild/easyconfigs/r/rnaQUAST/rnaQUAST-2.2.2-foss-2021b.eb @@ -16,7 +16,7 @@ checksums = ['941aeb9a296aa0135f8973c0cffa76e05d7451cc698f0f56c23c5627ae163c8f'] dependencies = [ ('Python', '3.9.6'), - ('GMAP-GSNAP', '2021-21-17'), + ('GMAP-GSNAP', '2021-12-17'), ('Biopython', '1.79'), ('matplotlib', '3.4.3'), ('BLAST+', '2.12.0'), diff --git a/easybuild/easyconfigs/s/SEPP/SEPP-4.5.1-foss-2022b.eb b/easybuild/easyconfigs/s/SEPP/SEPP-4.5.1-foss-2022b.eb new file mode 100644 index 00000000000..d5903564e55 --- /dev/null +++ b/easybuild/easyconfigs/s/SEPP/SEPP-4.5.1-foss-2022b.eb @@ -0,0 +1,46 @@ +# Author: Pavel Grochal (INUITS) +# License: GPLv2 +# Updated to v4.5.1 by: +# R.QIAO +# DeepThought, Flinders University + +name = 'SEPP' +version = '4.5.1' + +homepage = 'https://github.com/smirarab/sepp' +description = """SATe-enabled Phylogenetic Placement - addresses the problem of phylogenetic +placement of short reads into reference alignments and trees.""" + +toolchain = {'name': 'foss', 'version': '2022b'} + +# https://github.com/smirarab/sepp +github_account = 'smirarab' +source_urls = [GITHUB_LOWER_SOURCE] +sources = ['%(version)s.tar.gz'] +patches = ['%(name)s-%(version)s_fix_py10_compat.patch'] +checksums = [ + {'4.5.1.tar.gz': '51e052569ae89f586a1a94c804f09fe1b7910a3ffff7664e2005f18c7d3f717b'}, + {'SEPP-4.5.1_fix_py10_compat.patch': 'f789f421e17cb056a43a5e8db01bcdbc07c9ce30d033b2130ccbce770816875f'}, +] + +dependencies = [ + ('Python', '3.10.8'), + ('DendroPy', '4.5.2'), +] + +fix_python_shebang_for = ['bin/*.py'] + +use_pip = True +download_dep_fail = True +sanity_pip_check = True + +local_bin_files = ['run_sepp.py', 'run_upp.py', 'split_sequences.py'] + +sanity_check_paths = { + 'files': ['bin/%s' % f for f in local_bin_files], + 'dirs': ['lib/python%(pyshortver)s/site-packages/sepp'] +} + +sanity_check_commands = ["%s --help" % f for f in local_bin_files] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/s/SPAdes/SPAdes-3.15.4-GCC-12.2.0.eb b/easybuild/easyconfigs/s/SPAdes/SPAdes-3.15.4-GCC-12.2.0.eb new file mode 100644 index 00000000000..cd2ebd173bc --- /dev/null +++ b/easybuild/easyconfigs/s/SPAdes/SPAdes-3.15.4-GCC-12.2.0.eb @@ -0,0 +1,48 @@ +# 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 +# Updated by: +# Filip Kružík (INUITS) + +easyblock = 'CMakeMake' + +name = 'SPAdes' +version = '3.15.4' + +homepage = 'https://cab.spbu.ru/software/spades/' +description = "Genome assembler for single-cell and isolates data sets" + +toolchain = {'name': 'GCC', 'version': '12.2.0'} + +source_urls = ['http://cab.spbu.ru/files/release%(version)s'] +sources = [SOURCE_TAR_GZ] +checksums = ['3b241c528a42a8bdfdf23e5bf8f0084834790590d08491decea9f0f009d8589f'] + +builddependencies = [ + ('CMake', '3.24.3'), +] +dependencies = [ + ('Python', '3.10.8'), + ('zlib', '1.2.12'), + ('bzip2', '1.0.8'), + ('libreadline', '8.2'), +] + +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/SRA-Toolkit/SRA-Toolkit-3.0.5-gompi-2021a.eb b/easybuild/easyconfigs/s/SRA-Toolkit/SRA-Toolkit-3.0.5-gompi-2021a.eb new file mode 100644 index 00000000000..9759bd16641 --- /dev/null +++ b/easybuild/easyconfigs/s/SRA-Toolkit/SRA-Toolkit-3.0.5-gompi-2021a.eb @@ -0,0 +1,69 @@ +# updated: Denis Kristak (INUITS) +# updated: Sebastien Moretti (SIB - Vital-IT) +easyblock = 'CMakeMake' + +name = 'SRA-Toolkit' +version = '3.0.5' + +homepage = 'https://github.com/ncbi/sra-tools' +description = """The SRA Toolkit, and the source-code SRA System Development + Kit (SDK), will allow you to programmatically access data housed within SRA + and convert it from the SRA format""" +github_account = 'ncbi' + +toolchain = {'name': 'gompi', 'version': '2021a'} +toolchainopts = {'extra_cflags': '-DH5_USE_110_API'} + +source_urls = ['https://github.com/ncbi/sra-tools/archive/refs/tags/'] +sources = [{'download_filename': '%(version)s.tar.gz', 'filename': SOURCE_TAR_GZ}] +checksums = [ + {'SRA-Toolkit-3.0.5.tar.gz': '6dca9889ca9cfa83e9ce1c39bf7ae5654576fc79c4f608e902272a49573a05e0'}, +] + +builddependencies = [ + ('CMake', '3.20.1'), + ('flex', '2.6.4'), + ('Bison', '3.7.6'), + ('Perl', '5.32.1', '-minimal'), + ('Python', '3.9.5', '-bare'), +] + +dependencies = [ + ('Java', '11', '', SYSTEM), + ('OpenSSL', '1.1', '', SYSTEM), + ('ncbi-vdb', version), + ('bzip2', '1.0.8'), + ('file', '5.40'), + ('HDF5', '1.10.7'), + ('libxml2', '2.9.10'), + ('zlib', '1.2.11'), +] + +configopts = '-DVDB_INCDIR="$EBROOTNCBIMINVDB/include" -DVDB_LIBDIR="$EBROOTNCBIMINVDB/lib" ' +configopts += '-DBUILD_TOOLS_LOADERS=ON -DBUILD_TOOLS_INTERNAL=ON' + +_sra_bin = [ + 'abi-dump', 'abi-load', 'align-info', 'bam-load', 'cache-mgr', 'cg-load', 'copycat', 'fasterq-dump', 'fastq-dump', + 'fastq-load', 'helicos-load', 'illumina-dump', 'illumina-load', 'kar', 'kdbmeta', 'latf-load', 'pacbio-load', + 'prefetch', 'rcexplain', 'sam-dump', 'sff-dump', 'sff-load', 'srapath', 'sra-pileup', 'sra-sort', 'sra-stat', + 'sratools', 'srf-load', 'test-sra', 'vdb-config', 'vdb-copy', 'vdb-decrypt', 'vdb-dump', 'vdb-encrypt', 'vdb-lock', + 'vdb-unlock', 'vdb-validate', +] + +_ngs_libs = ['libncbi-ngs.a', 'libncbi-ngs-c++.a', 'libncbi-ngs.%s' % SHLIB_EXT, + 'libngs-c++.a', 'libngs-c++.%s' % SHLIB_EXT] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in _sra_bin] + ['lib/%s' % l for l in _ngs_libs], + 'dirs': ['jar', 'include/ncbi-vdb', 'include/ngs'] +} + +sanity_check_commands = [ + "abi-dump --help", + "kar --help", + "sra-sort --help", +] + +modextrapaths = {'CLASSPATH': 'jar/ngs-java.jar'} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/s/STAR/STAR-2.7.10b-GCC-12.2.0.eb b/easybuild/easyconfigs/s/STAR/STAR-2.7.10b-GCC-12.2.0.eb new file mode 100644 index 00000000000..4ffe3451041 --- /dev/null +++ b/easybuild/easyconfigs/s/STAR/STAR-2.7.10b-GCC-12.2.0.eb @@ -0,0 +1,51 @@ +# Contribution from the NIHR Biomedical Research Centre +# Guy's and St Thomas' NHS Foundation Trust and King's College London +# Based on STAR-2.7.7a-GCC-10.2.0.eb +# uploaded by J. Sassmannshausen +# modified by Thomas Eylenbosch + +easyblock = 'MakeCp' + +name = 'STAR' +version = '2.7.10b' + +homepage = 'https://github.com/alexdobin/STAR' +description = "STAR aligns RNA-seq reads to a reference genome using uncompressed suffix arrays." + +toolchain = {'name': 'GCC', 'version': '12.2.0'} +toolchainopts = {'openmp': True} + +github_account = 'alexdobin' +source_urls = [GITHUB_SOURCE] +sources = ['%(version)s.tar.gz'] +patches = ['STAR-%(version)s_use-external-htslib.patch'] +checksums = [ + {'2.7.10b.tar.gz': '0d1b71de6c5be1c5d90b32130d2abcd5785a4fc7c1e9bf19cc391947f2dc46e5'}, + {'STAR-2.7.10b_use-external-htslib.patch': '1d8a24532a384b3065001c672e486b74094f162cb98829d2ec961401215de7da'}, +] + +dependencies = [ + ('HTSlib', '1.17'), + ('zlib', '1.2.12'), +] + +start_dir = 'source' + +buildopts = ' STAR && make STARlong' + +files_to_copy = [ + (['source/%(name)s', 'source/%(name)slong'], 'bin'), + 'CHANGES.md', 'doc', 'extras', 'LICENSE', 'README.md', 'RELEASEnotes.md', +] + +sanity_check_paths = { + 'files': ['bin/%(name)s', 'bin/%(name)slong'], + 'dirs': [], +} + +sanity_check_commands = [ + "STAR --help", + "STARlong --help", +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/s/SUNDIALS/SUNDIALS-5.1.0-foss-2019b.eb b/easybuild/easyconfigs/s/SUNDIALS/SUNDIALS-5.1.0-foss-2019b.eb index 7c93955f97a..262e01cdaf4 100644 --- a/easybuild/easyconfigs/s/SUNDIALS/SUNDIALS-5.1.0-foss-2019b.eb +++ b/easybuild/easyconfigs/s/SUNDIALS/SUNDIALS-5.1.0-foss-2019b.eb @@ -3,7 +3,7 @@ easyblock = 'CMakeMake' name = 'SUNDIALS' version = '5.1.0' -homepage = 'https://computation.llnl.gov/projects/sundials' +homepage = 'https://computing.llnl.gov/projects/sundials' description = "SUNDIALS: SUite of Nonlinear and DIfferential/ALgebraic Equation Solvers" diff --git a/easybuild/easyconfigs/s/SUNDIALS/SUNDIALS-5.1.0-intel-2019b.eb b/easybuild/easyconfigs/s/SUNDIALS/SUNDIALS-5.1.0-intel-2019b.eb index e1d296dc51e..37c34c0232f 100644 --- a/easybuild/easyconfigs/s/SUNDIALS/SUNDIALS-5.1.0-intel-2019b.eb +++ b/easybuild/easyconfigs/s/SUNDIALS/SUNDIALS-5.1.0-intel-2019b.eb @@ -3,7 +3,7 @@ easyblock = 'CMakeMake' name = 'SUNDIALS' version = '5.1.0' -homepage = 'https://computation.llnl.gov/projects/sundials' +homepage = 'https://computing.llnl.gov/projects/sundials' description = "SUNDIALS: SUite of Nonlinear and DIfferential/ALgebraic Equation Solvers" diff --git a/easybuild/easyconfigs/s/SUNDIALS/SUNDIALS-5.7.0-foss-2020b.eb b/easybuild/easyconfigs/s/SUNDIALS/SUNDIALS-5.7.0-foss-2020b.eb index 51543acdb79..29b35cb8304 100644 --- a/easybuild/easyconfigs/s/SUNDIALS/SUNDIALS-5.7.0-foss-2020b.eb +++ b/easybuild/easyconfigs/s/SUNDIALS/SUNDIALS-5.7.0-foss-2020b.eb @@ -3,7 +3,7 @@ easyblock = 'CMakeMake' name = 'SUNDIALS' version = '5.7.0' -homepage = 'https://computation.llnl.gov/projects/sundials' +homepage = 'https://computing.llnl.gov/projects/sundials' description = "SUNDIALS: SUite of Nonlinear and DIfferential/ALgebraic Equation Solvers" 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 index ccf4e479638..52675e145f0 100644 --- a/easybuild/easyconfigs/s/SUNDIALS/SUNDIALS-5.7.0-fosscuda-2020b.eb +++ b/easybuild/easyconfigs/s/SUNDIALS/SUNDIALS-5.7.0-fosscuda-2020b.eb @@ -3,7 +3,7 @@ easyblock = 'CMakeMake' name = 'SUNDIALS' version = '5.7.0' -homepage = 'https://computation.llnl.gov/projects/sundials' +homepage = 'https://computing.llnl.gov/projects/sundials' description = "SUNDIALS: SUite of Nonlinear and DIfferential/ALgebraic Equation Solvers" diff --git a/easybuild/easyconfigs/s/SUNDIALS/SUNDIALS-5.7.0-intel-2020b.eb b/easybuild/easyconfigs/s/SUNDIALS/SUNDIALS-5.7.0-intel-2020b.eb index 5c283e4de39..76e6c5a3a94 100644 --- a/easybuild/easyconfigs/s/SUNDIALS/SUNDIALS-5.7.0-intel-2020b.eb +++ b/easybuild/easyconfigs/s/SUNDIALS/SUNDIALS-5.7.0-intel-2020b.eb @@ -3,7 +3,7 @@ easyblock = 'CMakeMake' name = 'SUNDIALS' version = '5.7.0' -homepage = 'https://computation.llnl.gov/projects/sundials' +homepage = 'https://computing.llnl.gov/projects/sundials' description = "SUNDIALS: SUite of Nonlinear and DIfferential/ALgebraic Equation Solvers" diff --git a/easybuild/easyconfigs/s/SUNDIALS/SUNDIALS-6.2.0-foss-2020b.eb b/easybuild/easyconfigs/s/SUNDIALS/SUNDIALS-6.2.0-foss-2020b.eb new file mode 100644 index 00000000000..2d5442b1329 --- /dev/null +++ b/easybuild/easyconfigs/s/SUNDIALS/SUNDIALS-6.2.0-foss-2020b.eb @@ -0,0 +1,35 @@ +easyblock = 'CMakeMake' + +name = 'SUNDIALS' +version = '6.2.0' + +homepage = 'https://computing.llnl.gov/projects/sundials' + +description = "SUNDIALS: SUite of Nonlinear and DIfferential/ALgebraic Equation Solvers" + +toolchain = {'name': 'foss', 'version': '2020b'} +toolchainopts = {'openmp': True, 'usempi': True, 'pic': True} + +source_urls = ['https://github.com/LLNL/sundials/releases/download/v%(version)s/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['195d5593772fc483f63f08794d79e4bab30c2ec58e6ce4b0fb6bcc0e0c48f31d'] + +builddependencies = [('CMake', '3.18.4')] + +separate_build_dir = True + +configopts = "-DMPI_ENABLE=ON -DOPENMP_ENABLE=ON -DLAPACK_ENABLE=ON" + +local_solvers = ['arkode', 'cvode', 'cvodes', 'ida', 'idas', 'kinsol'] + +sanity_check_paths = { + 'files': ['lib/libsundials_%s.a' % s for s in local_solvers + + ['nvecopenmp', 'nvecparallel', 'nvecserial']] + + ['lib/libsundials_%s.%s' % (s, SHLIB_EXT) for s in local_solvers + + ['nvecopenmp', 'nvecparallel', 'nvecserial']], + 'dirs': ['examples/%s' % s for s in local_solvers] + + ['include/%s' % s for s in local_solvers] + + ['examples/nvector', 'include/nvector', 'include/sundials'], +} + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/s/SUNDIALS/SUNDIALS-6.2.0-intel-2020b.eb b/easybuild/easyconfigs/s/SUNDIALS/SUNDIALS-6.2.0-intel-2020b.eb new file mode 100644 index 00000000000..1637aac0c64 --- /dev/null +++ b/easybuild/easyconfigs/s/SUNDIALS/SUNDIALS-6.2.0-intel-2020b.eb @@ -0,0 +1,35 @@ +easyblock = 'CMakeMake' + +name = 'SUNDIALS' +version = '6.2.0' + +homepage = 'https://computing.llnl.gov/projects/sundials' + +description = "SUNDIALS: SUite of Nonlinear and DIfferential/ALgebraic Equation Solvers" + +toolchain = {'name': 'intel', 'version': '2020b'} +toolchainopts = {'openmp': True, 'usempi': True, 'pic': True} + +source_urls = ['https://github.com/LLNL/sundials/releases/download/v%(version)s/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['195d5593772fc483f63f08794d79e4bab30c2ec58e6ce4b0fb6bcc0e0c48f31d'] + +builddependencies = [('CMake', '3.18.4')] + +separate_build_dir = True + +configopts = "-DMPI_ENABLE=ON -DOPENMP_ENABLE=ON -DLAPACK_ENABLE=ON" + +local_solvers = ['arkode', 'cvode', 'cvodes', 'ida', 'idas', 'kinsol'] + +sanity_check_paths = { + 'files': ['lib/libsundials_%s.a' % s for s in local_solvers + + ['nvecopenmp', 'nvecparallel', 'nvecserial']] + + ['lib/libsundials_%s.%s' % (s, SHLIB_EXT) for s in local_solvers + + ['nvecopenmp', 'nvecparallel', 'nvecserial']], + 'dirs': ['examples/%s' % s for s in local_solvers] + + ['include/%s' % s for s in local_solvers] + + ['examples/nvector', 'include/nvector', 'include/sundials'], +} + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/s/SUNDIALS/SUNDIALS-6.3.0-foss-2021b.eb b/easybuild/easyconfigs/s/SUNDIALS/SUNDIALS-6.3.0-foss-2021b.eb index 59ea1cd22a1..12e9f082554 100644 --- a/easybuild/easyconfigs/s/SUNDIALS/SUNDIALS-6.3.0-foss-2021b.eb +++ b/easybuild/easyconfigs/s/SUNDIALS/SUNDIALS-6.3.0-foss-2021b.eb @@ -3,7 +3,7 @@ easyblock = 'CMakeMake' name = 'SUNDIALS' version = '6.3.0' -homepage = 'https://computation.llnl.gov/projects/sundials' +homepage = 'https://computing.llnl.gov/projects/sundials' description = "SUNDIALS: SUite of Nonlinear and DIfferential/ALgebraic Equation Solvers" diff --git a/easybuild/easyconfigs/s/SUNDIALS/SUNDIALS-6.3.0-foss-2022a.eb b/easybuild/easyconfigs/s/SUNDIALS/SUNDIALS-6.3.0-foss-2022a.eb index efe9f2b54de..3ab52d26040 100644 --- a/easybuild/easyconfigs/s/SUNDIALS/SUNDIALS-6.3.0-foss-2022a.eb +++ b/easybuild/easyconfigs/s/SUNDIALS/SUNDIALS-6.3.0-foss-2022a.eb @@ -3,7 +3,7 @@ easyblock = 'CMakeMake' name = 'SUNDIALS' version = '6.3.0' -homepage = 'https://computation.llnl.gov/projects/sundials' +homepage = 'https://computing.llnl.gov/projects/sundials' description = "SUNDIALS: SUite of Nonlinear and DIfferential/ALgebraic Equation Solvers" diff --git a/easybuild/easyconfigs/s/SUNDIALS/SUNDIALS-6.5.1-foss-2022a.eb b/easybuild/easyconfigs/s/SUNDIALS/SUNDIALS-6.5.1-foss-2022a.eb new file mode 100644 index 00000000000..04e91b5411a --- /dev/null +++ b/easybuild/easyconfigs/s/SUNDIALS/SUNDIALS-6.5.1-foss-2022a.eb @@ -0,0 +1,35 @@ +easyblock = 'CMakeMake' + +name = 'SUNDIALS' +version = '6.5.1' + +homepage = 'https://computing.llnl.gov/projects/sundials' + +description = "SUNDIALS: SUite of Nonlinear and DIfferential/ALgebraic Equation Solvers" + +toolchain = {'name': 'foss', 'version': '2022a'} +toolchainopts = {'openmp': True, 'usempi': True, 'pic': True} + +source_urls = ['https://github.com/LLNL/sundials/releases/download/v%(version)s/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['4252303805171e4dbdd19a01e52c1dcfe0dafc599c3cfedb0a5c2ffb045a8a75'] + +builddependencies = [('CMake', '3.23.1')] + +separate_build_dir = True + +configopts = "-DMPI_ENABLE=ON -DOPENMP_ENABLE=ON -DLAPACK_ENABLE=ON" + +local_solvers = ['arkode', 'cvode', 'cvodes', 'ida', 'idas', 'kinsol'] + +sanity_check_paths = { + 'files': ['lib/libsundials_%s.a' % s for s in local_solvers + + ['nvecopenmp', 'nvecparallel', 'nvecserial']] + + ['lib/libsundials_%s.%s' % (s, SHLIB_EXT) for s in local_solvers + + ['nvecopenmp', 'nvecparallel', 'nvecserial']], + 'dirs': ['examples/%s' % s for s in local_solvers] + + ['include/%s' % s for s in local_solvers] + + ['examples/nvector', 'include/nvector', 'include/sundials'], +} + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/s/SVIM/SVIM-2.0.0-foss-2022a.eb b/easybuild/easyconfigs/s/SVIM/SVIM-2.0.0-foss-2022a.eb new file mode 100644 index 00000000000..9b31271e9ce --- /dev/null +++ b/easybuild/easyconfigs/s/SVIM/SVIM-2.0.0-foss-2022a.eb @@ -0,0 +1,43 @@ +easyblock = 'PythonBundle' + +name = 'SVIM' +version = '2.0.0' + +homepage = 'https://github.com/eldariont/svim' +description = """SVIM (pronounced swim) is a structural variant caller for third-generation sequencing reads. + It is able to detect and classify the following six classes of structural variation: deletions, insertions, + inversions, tandem duplications, interspersed duplications and translocations.""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +dependencies = [ + ('Python', '3.10.4'), + ('Pysam', '0.19.1'), + ('SciPy-bundle', '2022.05'), + ('matplotlib', '3.5.2'), + ('edlib', '1.3.9'), + ('pyspoa', '0.0.9'), + ('py-cpuinfo', '9.0.0'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + (name, version, { + 'sources': [SOURCELOWER_TAR_GZ], + 'checksums': ['1be9cfb84e420858b9e08fc3664b8d16d76bd2f241e6a87d876d9292d66ea1a3'], + }), +] + +sanity_check_paths = { + 'files': ['bin/svim'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = [ + "python -c 'from svim.SVSignature import SignatureDeletion'", + "svim alignment --help", +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/s/SVclone/SVclone-1.1.2-foss-2022b.eb b/easybuild/easyconfigs/s/SVclone/SVclone-1.1.2-foss-2022b.eb new file mode 100644 index 00000000000..68a0b328c71 --- /dev/null +++ b/easybuild/easyconfigs/s/SVclone/SVclone-1.1.2-foss-2022b.eb @@ -0,0 +1,47 @@ +# EasyBuild EasyConfig +# +# Fred Hutch Cancer Center - Seattle Washington US +# +# John Dey +easyblock = 'PythonBundle' + +name = 'SVclone' +version = '1.1.2' + +homepage = 'https://github.com/mcmero/SVclone' +description = """Cluster structural variants of similar cancer cell fraction (CCF).""" + +toolchain = {'name': 'foss', 'version': '2022b'} + +dependencies = [ + ('Python', '3.10.8'), + ('SciPy-bundle', '2023.02'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('pysam', '0.19.1', { + 'checksums': ['dee403cbdf232170c1e11cc24c76e7dd748fc672ad38eb0414f3b9d569b1448f'], + }), + ('PyVCF3', '1.0.3', { + 'modulename': 'vcf', + 'checksums': ['4b16d71c8b97010487e2c939fb4d5707b7bbfa4e2b313df9dba3e372c5ba031d'], + }), + (name, version, { + 'modulename': name, + 'source_tmpl': 'v%(version)s.tar.gz', + 'source_urls': ['https://github.com/mcmero/SVclone/archive/refs/tags'], + 'checksums': ['806e7e31498a084a353a39f98d8d35712d96f182feb6d077d364a2a7100e123e'], + }), +] + +sanity_check_paths = { + 'files': ['bin/%(namelower)s'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = ['%(namelower)s --help'] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/s/Safetensors/Safetensors-0.3.1-foss-2022a-CUDA-11.7.0.eb b/easybuild/easyconfigs/s/Safetensors/Safetensors-0.3.1-foss-2022a-CUDA-11.7.0.eb new file mode 100644 index 00000000000..c437db1f3a6 --- /dev/null +++ b/easybuild/easyconfigs/s/Safetensors/Safetensors-0.3.1-foss-2022a-CUDA-11.7.0.eb @@ -0,0 +1,37 @@ +easyblock = "PythonBundle" + +name = 'Safetensors' +version = '0.3.1' +versionsuffix = '-CUDA-%(cudaver)s' + +homepage = 'https://huggingface.co/docs/safetensors' +description = """Safetensors is a new simple format for storing tensors safely (as opposed to +pickle) and that is still fast (zero-copy). Safetensors is really fast.""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +builddependencies = [ + ('Rust', '1.60.0'), +] + +dependencies = [ + ('CUDA', '11.7.0', '', SYSTEM), + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), + ('jax', '0.3.25', versionsuffix), + ('PyTorch', '1.12.0', versionsuffix), + ('TensorFlow', '2.11.0', versionsuffix), +] + +use_pip = True + +exts_list = [ + ('safetensors', version, { + 'use_pip_extras': 'jax,numpy,tensorflow,torch', + 'checksums': ['571da56ff8d0bec8ae54923b621cda98d36dcef10feb36fd492c4d0c2cd0e869'], + }), +] + +sanity_pip_check = True + +moduleclass = 'ai' diff --git a/easybuild/easyconfigs/s/Safetensors/Safetensors-0.3.1-foss-2022a.eb b/easybuild/easyconfigs/s/Safetensors/Safetensors-0.3.1-foss-2022a.eb new file mode 100644 index 00000000000..b0307d32f5d --- /dev/null +++ b/easybuild/easyconfigs/s/Safetensors/Safetensors-0.3.1-foss-2022a.eb @@ -0,0 +1,35 @@ +easyblock = "PythonBundle" + +name = 'Safetensors' +version = '0.3.1' + +homepage = 'https://huggingface.co/docs/safetensors' +description = """Safetensors is a new simple format for storing tensors safely (as opposed to +pickle) and that is still fast (zero-copy). Safetensors is really fast.""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +builddependencies = [ + ('Rust', '1.60.0'), +] + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), + ('jax', '0.3.25'), + ('PyTorch', '1.12.0'), + ('TensorFlow', '2.11.0'), +] + +use_pip = True + +exts_list = [ + ('safetensors', version, { + 'use_pip_extras': 'jax,numpy,tensorflow,torch', + 'checksums': ['571da56ff8d0bec8ae54923b621cda98d36dcef10feb36fd492c4d0c2cd0e869'], + }), +] + +sanity_pip_check = True + +moduleclass = 'ai' diff --git a/easybuild/easyconfigs/s/ScaFaCoS/ScaFaCoS-1.0.4-foss-2022a.eb b/easybuild/easyconfigs/s/ScaFaCoS/ScaFaCoS-1.0.4-foss-2022a.eb new file mode 100644 index 00000000000..85be515948c --- /dev/null +++ b/easybuild/easyconfigs/s/ScaFaCoS/ScaFaCoS-1.0.4-foss-2022a.eb @@ -0,0 +1,43 @@ +easyblock = 'ConfigureMake' + +name = 'ScaFaCoS' +version = '1.0.4' + +homepage = 'http://www.scafacos.de/' +description = """ScaFaCoS is a library of scalable fast coulomb solvers.""" + +toolchain = {'name': 'foss', 'version': '2022a'} +toolchainopts = {'usempi': True} + +source_urls = ['https://github.com/%(namelower)s/%(namelower)s/releases/download/v%(version)s'] +sources = [SOURCELOWER_TAR_GZ] +checksums = [ + '6634c4202e825e771d1dd75bbe9cac5cee41136c87653fde98fbd634681c1be6', # scafacos-1.0.1.tar.gz +] + +builddependencies = [ + ('Autotools', '20220317'), + ('pkgconf', '1.8.0'), +] + +dependencies = [ + ('GMP', '6.2.1'), + ('GSL', '2.7'), +] + +preconfigopts = 'unset F77 && ' + +configopts = 'FCFLAGS="-fallow-argument-mismatch $FCFLAGS" ' +configopts += '--enable-shared --enable-static --disable-doc ' +# tell it where to find provided FFTW +configopts += '--without-internal-fftw --with-fftw3-includedir=$EBROOTFFTW/include --with-fftw3-libdir=$EBROOTFFTW/lib ' +# only include the solvers supported for LAMMPS +# (for p2nfft we need an additonal dependency) +configopts += '--enable-fcs-solvers=direct,ewald,fmm,p3m ' + +sanity_check_paths = { + 'files': ['lib/libfcs.a', 'include/fcs.h', 'include/fcs_module.mod'], + 'dirs': [], +} + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/s/ScaLAPACK/ScaLAPACK-2.2.0-gompi-2023a-fb.eb b/easybuild/easyconfigs/s/ScaLAPACK/ScaLAPACK-2.2.0-gompi-2023a-fb.eb new file mode 100644 index 00000000000..8653a36db29 --- /dev/null +++ b/easybuild/easyconfigs/s/ScaLAPACK/ScaLAPACK-2.2.0-gompi-2023a-fb.eb @@ -0,0 +1,43 @@ +name = 'ScaLAPACK' +version = '2.2.0' +versionsuffix = '-fb' + +homepage = 'https://www.netlib.org/scalapack/' +description = """The ScaLAPACK (or Scalable LAPACK) library includes a subset of LAPACK routines + redesigned for distributed memory MIMD parallel computers.""" + +toolchain = {'name': 'gompi', 'version': '2023a'} +toolchainopts = {'pic': True} + +source_urls = [homepage] +sources = [SOURCELOWER_TGZ] +patches = ['ScaLAPACK-%(version)s_fix-GCC-10.patch'] +checksums = [ + '40b9406c20735a9a3009d863318cb8d3e496fb073d201c5463df810e01ab2a57', # scalapack-2.2.0.tgz + 'f6bc3c6dee012ba4a696548a2e12b6aae932ce4fd5a142153b338839f52b5906', # ScaLAPACK-2.2.0_fix-GCC-10.patch +] + +builddependencies = [ + ('CMake', '3.26.3'), +] + +dependencies = [ + ('FlexiBLAS', '3.3.1'), +] + +# Config Opts based on AOCL User Guide: +# https://developer.amd.com/wp-content/resources/AOCL_User%20Guide_2.2.pdf + +configopts = '-DBUILD_SHARED_LIBS=ON ' +configopts += '-DBLAS_LIBRARIES="$EBROOTFLEXIBLAS/lib/libflexiblas.%s" ' % SHLIB_EXT +configopts += '-DLAPACK_LIBRARIES="$EBROOTFLEXIBLAS/lib/libflexiblas.%s" ' % SHLIB_EXT +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/SimpleITK/SimpleITK-2.1.0-fosscuda-2020b.eb b/easybuild/easyconfigs/s/SimpleITK/SimpleITK-2.1.0-fosscuda-2020b.eb new file mode 100644 index 00000000000..f51b83860c7 --- /dev/null +++ b/easybuild/easyconfigs/s/SimpleITK/SimpleITK-2.1.0-fosscuda-2020b.eb @@ -0,0 +1,49 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# Updated: Denis Kristak +easyblock = 'CMakeMake' + +name = 'SimpleITK' +version = '2.1.0' + +homepage = 'http://www.simpleitk.org' +description = """SimpleITK is a simplified programming interface to the algorithms and data structures of + the Insight Toolkit (ITK).""" + +toolchain = {'name': 'fosscuda', 'version': '2020b'} + +source_urls = [PYPI_LOWER_SOURCE] +sources = [SOURCE_TAR_GZ] +checksums = ['d5d3b805863b9dfcffeebec69a1b79b5709fc814b12cb9ab759ccbd3e4746839'] + +builddependencies = [ + ('CMake', '3.18.4'), + ('SWIG', '4.0.2'), +] + +dependencies = [ + ('Python', '3.8.6'), + ('Lua', '5.3.5'), + ('ITK', '5.2.1'), + ('scikit-build', '0.11.1'), +] + +start_dir = 'SimpleITK' + +configopts = "-DWRAP_PYTHON=ON -DWRAP_LUA=OFF -DWRAP_RUBY=OFF " +configopts += "-DWRAP_TCL=OFF -DWRAP_JAVA=OFF -DWRAP_R=OFF -DWRAP_CSHARP=OFF " + +postinstallcmds = [ + "cd %(builddir)s/easybuild_obj/Wrapping/Python && " + "pip install --ignore-installed --no-deps --prefix=%(installdir)s . ", +] + +modextrapaths = {'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages']} + +sanity_check_paths = { + 'files': ['lib/libSimpleITK_ITKBiasCorrection-%(version_major_minor)s.a'], + 'dirs': ['include/%(name)s-%(version_major_minor)s', 'lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = ["python -c 'import %(name)s'"] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/s/SimpleITK/SimpleITK-2.1.1.2-foss-2022a.eb b/easybuild/easyconfigs/s/SimpleITK/SimpleITK-2.1.1.2-foss-2022a.eb index 9a0f8d8c8e2..ee1cda90622 100644 --- a/easybuild/easyconfigs/s/SimpleITK/SimpleITK-2.1.1.2-foss-2022a.eb +++ b/easybuild/easyconfigs/s/SimpleITK/SimpleITK-2.1.1.2-foss-2022a.eb @@ -9,6 +9,7 @@ description = """SimpleITK is a simplified programming interface to the algorith toolchain = {'name': 'foss', 'version': '2022a'} +source_urls = [PYPI_SOURCE] sources = [SOURCE_TAR_GZ] patches = ['%(name)s-%(version)s_allow-lua54-for-code-generation.patch'] checksums = [ diff --git a/easybuild/easyconfigs/s/Sniffles/Sniffles-2.0.7-GCC-11.3.0.eb b/easybuild/easyconfigs/s/Sniffles/Sniffles-2.0.7-GCC-11.3.0.eb new file mode 100644 index 00000000000..48aa053395e --- /dev/null +++ b/easybuild/easyconfigs/s/Sniffles/Sniffles-2.0.7-GCC-11.3.0.eb @@ -0,0 +1,37 @@ +easyblock = 'PythonBundle' + +name = 'Sniffles' +version = '2.0.7' + +homepage = 'https://github.com/fritzsedlazeck/Sniffles' +description = """A fast structural variant caller for long-read sequencing, + Sniffles2 accurately detect SVs on germline, somatic and population-level for PacBio and Oxford Nanopore read data.""" + +toolchain = {'name': 'GCC', 'version': '11.3.0'} + +dependencies = [ + ('Python', '3.10.4'), + ('Pysam', '0.19.1'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + (name, version, { + 'sources': [SOURCELOWER_TAR_GZ], + 'checksums': ['bf532eb0b3aaeaee840100a3bb3339f1d5175ba98adfe3cf19685b0abb0885a1'], + }), +] + +sanity_check_paths = { + 'files': ['bin/sniffles'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = [ + "python -c 'from sniffles import sv'", + "sniffles --help", +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/s/SoX/SoX-14.4.2-GCCcore-11.3.0.eb b/easybuild/easyconfigs/s/SoX/SoX-14.4.2-GCCcore-11.3.0.eb index b009ef44f7f..99d84d40bcd 100644 --- a/easybuild/easyconfigs/s/SoX/SoX-14.4.2-GCCcore-11.3.0.eb +++ b/easybuild/easyconfigs/s/SoX/SoX-14.4.2-GCCcore-11.3.0.eb @@ -23,7 +23,7 @@ dependencies = [ ('LAME', '3.100'), ('libmad', '0.15.1b'), ('libvorbis', '1.3.7'), - ('FFmpeg', '5.0.1'), + ('FFmpeg', '4.4.2'), ] sanity_check_paths = { diff --git a/easybuild/easyconfigs/s/SortMeRNA/SortMeRNA-2.1-GCC-9.3.0.eb b/easybuild/easyconfigs/s/SortMeRNA/SortMeRNA-2.1-GCC-9.3.0.eb new file mode 100644 index 00000000000..710019073e2 --- /dev/null +++ b/easybuild/easyconfigs/s/SortMeRNA/SortMeRNA-2.1-GCC-9.3.0.eb @@ -0,0 +1,37 @@ +# # +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Cedric Laczny , 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 = 'SortMeRNA' +version = '2.1' + +homepage = 'https://bioinfo.lifl.fr/RNA/sortmerna/' +description = "SortMeRNA is a biological sequence analysis tool for filtering, mapping and OTU-picking NGS reads." + +toolchain = {'name': 'GCC', 'version': '9.3.0'} +toolchainopts = {'optarch': True, 'pic': True} + +source_urls = ['https://github.com/biocore/%(namelower)s/archive/'] +sources = ['%(version)s.tar.gz'] +# Patch for double includes of header files in Makefile.in +patches = ['%(name)s-%(version)s_Makefile.in.patch'] +checksums = [ + '44a3b29570e339da235acc00a35cde18f4fff03b7087b0fa8100f6c3826385d5', # 2.1.tar.gz + '0137ee3d4c583f3c4a4b18aadd1029e8a9cf0ff1748d364d993b82482777d4d5', # SortMeRNA-2.1_Makefile.in.patch +] + +sanity_check_paths = { + 'files': ['bin/indexdb_rna', 'bin/%(namelower)s'], + 'dirs': ['include', '%(namelower)s'], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/s/Structure_threader/Structure_threader-1.3.10-foss-2022b.eb b/easybuild/easyconfigs/s/Structure_threader/Structure_threader-1.3.10-foss-2022b.eb new file mode 100644 index 00000000000..bdec08d7d4d --- /dev/null +++ b/easybuild/easyconfigs/s/Structure_threader/Structure_threader-1.3.10-foss-2022b.eb @@ -0,0 +1,40 @@ +easyblock = 'PythonBundle' + +name = 'Structure_threader' +version = '1.3.10' + +homepage = 'https://github.com/StuntsPT/Structure_threader' +description = """A program to parallelize the runs of Structure, + fastStructure, MavericK and ALStructure software.""" + +toolchain = {'name': 'foss', 'version': '2022b'} + +dependencies = [ + ('Python', '3.10.8'), + ('plotly.py', '5.13.1'), + ('SciPy-bundle', '2023.02'), + ('matplotlib', '3.7.0'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('colorlover', '0.3.0', { + 'checksums': ['b8fb7246ab46e1f5e6715649453c1762e245a515de5ff2d2b4aab7a6e67fa4e2'], + }), + (name, version, { + 'modulename': '%(namelower)s', + 'source_tmpl': '%(namelower)s-%(version)s.tar.gz', + 'checksums': ['b4d7258e5be370a001f6715599cb60a07583e32b7a8c385b0c87874a669c38b8'], + }), +] + +sanity_check_paths = { + 'files': ['bin/structure_threader'], + 'dirs': [], +} + +sanity_check_commands = ["structure_threader --help"] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/s/Subversion/Subversion-1.14.2-GCCcore-11.3.0.eb b/easybuild/easyconfigs/s/Subversion/Subversion-1.14.2-GCCcore-11.3.0.eb new file mode 100644 index 00000000000..3ef09d2ffa2 --- /dev/null +++ b/easybuild/easyconfigs/s/Subversion/Subversion-1.14.2-GCCcore-11.3.0.eb @@ -0,0 +1,50 @@ +easyblock = 'ConfigureMake' + +name = 'Subversion' +version = '1.14.2' + +homepage = 'https://subversion.apache.org/' +description = " Subversion is an open source version control system." + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +source_urls = [ + 'https://apache.belnet.be/%(namelower)s', + 'http://www.eu.apache.org/dist/%(namelower)s', + 'http://www.us.apache.org/dist/%(namelower)s', + 'https://archive.apache.org/dist/%(namelower)s', +] +sources = [SOURCELOWER_TAR_BZ2] +patches = ['Subversion-1.12.0-no_swig.patch'] +checksums = [ + 'c9130e8d0b75728a66f0e7038fc77052e671830d785b5616aad53b4810d3cc28', # subversion-1.14.2.tar.bz2 + '539ea2118f958d152d78438c81649eb727ff0b2e8491295702ee98e1f922041f', # Subversion-1.12.0-no_swig.patch +] + +builddependencies = [ + ('binutils', '2.38'), + ('Autotools', '20220317'), +] + +dependencies = [ + ('APR', '1.7.0'), + ('APR-util', '1.6.1'), + ('SQLite', '3.38.3'), + ('zlib', '1.2.12'), + ('lz4', '1.9.3'), + ('utf8proc', '2.7.0'), + ('Serf', '1.3.9'), + ('util-linux', '2.38'), +] + +preconfigopts = './autogen.sh && ' + +configopts = "--with-apr=$EBROOTAPR/bin/apr-1-config --with-apr-util=$EBROOTAPRMINUTIL/bin/apu-1-config " +configopts += "--with-zlib=$EBROOTZLIB --with-lz4=$EBROOTLZ4 --with-serf=$EBROOTSERF" + +sanity_check_paths = { + 'files': ["bin/svn", "bin/svnversion"], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-5.13.0-foss-2022b-METIS-5.1.0.eb b/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-5.13.0-foss-2022b-METIS-5.1.0.eb new file mode 100644 index 00000000000..5772cc65e75 --- /dev/null +++ b/easybuild/easyconfigs/s/SuiteSparse/SuiteSparse-5.13.0-foss-2022b-METIS-5.1.0.eb @@ -0,0 +1,31 @@ +name = 'SuiteSparse' +version = '5.13.0' +local_metis_ver = '5.1.0' +versionsuffix = '-METIS-%s' % local_metis_ver + +homepage = 'https://faculty.cse.tamu.edu/davis/suitesparse.html' +description = """SuiteSparse is a collection of libraries to manipulate sparse matrices.""" + +toolchain = {'name': 'foss', 'version': '2022b'} +toolchainopts = {'unroll': True, 'pic': True} + +source_urls = ['https://github.com/DrTimothyAldenDavis/SuiteSparse/archive'] +sources = ['v%(version)s.tar.gz'] +checksums = ['59c6ca2959623f0c69226cf9afb9a018d12a37fab3a8869db5f6d7f83b6b147d'] + +builddependencies = [ + ('CMake', '3.24.3'), + ('M4', '1.4.19'), +] + +dependencies = [ + ('METIS', local_metis_ver), + ('MPFR', '4.2.0'), +] + +# make sure that bin/demo can find libsuitesparseconfig.so.5 during build +prebuildopts = "export LD_LIBRARY_PATH=%(builddir)s/SuiteSparse-%(version)s/lib:$LD_LIBRARY_PATH && " +# remove broken symlink +prebuildopts += "rm GraphBLAS/CUDA/test/graphblascuda_test && " + +moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/s/samblaster/samblaster-0.1.26-GCC-11.3.0.eb b/easybuild/easyconfigs/s/samblaster/samblaster-0.1.26-GCC-11.3.0.eb new file mode 100644 index 00000000000..e0c9cf711e6 --- /dev/null +++ b/easybuild/easyconfigs/s/samblaster/samblaster-0.1.26-GCC-11.3.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': '11.3.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/scArches/scArches-0.5.6-foss-2021a-CUDA-11.3.1.eb b/easybuild/easyconfigs/s/scArches/scArches-0.5.6-foss-2021a-CUDA-11.3.1.eb new file mode 100644 index 00000000000..12280551fa5 --- /dev/null +++ b/easybuild/easyconfigs/s/scArches/scArches-0.5.6-foss-2021a-CUDA-11.3.1.eb @@ -0,0 +1,57 @@ +easyblock = 'PythonBundle' + +name = 'scArches' +version = '0.5.6' +versionsuffix = '-CUDA-%(cudaver)s' + +homepage = 'https://github.com/theislab/scarches' +description = """Single-cell architecture surgery (scArches) is a package for reference-based analysis of single-cell + data.""" + +toolchain = {'name': 'foss', 'version': '2021a'} + +dependencies = [ + ('CUDA', '11.3.1', '', SYSTEM), + ('Python', '3.9.5'), + ('SciPy-bundle', '2021.05'), + ('matplotlib', '3.4.2'), + ('h5py', '3.2.1'), + ('leidenalg', '0.8.7'), + ('scanpy', '1.8.1'), + ('scikit-learn', '0.24.2'), + ('scvi-tools', '0.16.4', versionsuffix), + ('PyTorch', '1.10.0', versionsuffix), + ('tqdm', '4.61.2'), + ('BeautifulSoup', '4.10.0'), + ('loompy', '3.0.7'), +] + +use_pip = True + +exts_list = [ + ('gdown', '4.6.0', { + 'checksums': ['5ce3db0aeda54f46caacb2df86f31c3e3ecd17c355689e6456d85fb528ba9749'], + }), + ('sklearn', '0.0', { + 'checksums': ['e23001573aa194b834122d2b9562459bf5ae494a2d59ca6b8aa22c85a44c0e31'], + }), + ('muon', '0.1.2', { + 'sources': [SOURCE_PY3_WHL], + 'checksums': ['61e0290b113f85177b7596e57aa01552c07700716fac3b8267506fc8a6881dba'], + }), + ('newick', '1.4.0', { + 'checksums': ['0d76ff2fbd180ea790ba177557bf8fbdc56fc166cbe5b31a38113ead8147cf6d'], + }), + ('scHPL', '1.0.2', { + 'checksums': ['a4119fb503e5bfed6fb3e5424cf166d9b1d8822ca0d7fe88d7125807e6da118b'], + 'preinstallopts': "sed -i 's/~=/>=/g' setup.py && ", + 'modulename': 'scHPL', + }), + (name, version, { + 'checksums': ['87b5aa89676b37f65f076631faf3033515cc8380dfad076699410628a1838116'], + }), +] + +sanity_pip_check = True + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/s/segemehl/segemehl-0.3.4-iccifort-2020.4.304.eb b/easybuild/easyconfigs/s/segemehl/segemehl-0.3.4-iccifort-2020.4.304.eb new file mode 100644 index 00000000000..1dba3da2387 --- /dev/null +++ b/easybuild/easyconfigs/s/segemehl/segemehl-0.3.4-iccifort-2020.4.304.eb @@ -0,0 +1,36 @@ +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 map primer- 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': 'iccifort', 'version': '2020.4.304'} + +source_urls = ['https://www.bioinf.uni-leipzig.de/Software/segemehl/downloads/'] +sources = [SOURCE_TAR_GZ] +checksums = ['e4336f03d0d15126dbb1c6368c7e80421b0c7354f4a6b492d54d7d14cf5a7f51'] + +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/seqtk/seqtk-1.4-GCC-12.2.0.eb b/easybuild/easyconfigs/s/seqtk/seqtk-1.4-GCC-12.2.0.eb new file mode 100644 index 00000000000..d0845fed4d2 --- /dev/null +++ b/easybuild/easyconfigs/s/seqtk/seqtk-1.4-GCC-12.2.0.eb @@ -0,0 +1,35 @@ +## +# created by Thomas Eylenbosch +## + +easyblock = 'ConfigureMake' + +name = 'seqtk' +version = '1.4' + +homepage = 'https://github.com/lh3/seqtk/' +description = """Seqtk is a fast and lightweight tool for processing sequences in the FASTA or FASTQ format. + It seamlessly parses both FASTA and FASTQ files which can also be optionally compressed by gzip.""" + +toolchain = {'name': 'GCC', 'version': '12.2.0'} + +github_account = 'lh3' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['d124604ec24f29ed14ce127426ab90e0f3a2c0280c80d1a3ff8b1c09feede19c'] + +dependencies = [('zlib', '1.2.12')] + +skipsteps = ['configure'] + +buildopts = 'CC="$CC" CFLAGS="$CLFAGS"' + +preinstallopts = "mkdir %(installdir)s/bin && " +installopts = 'BINDIR=%(installdir)s/bin/' + +sanity_check_paths = { + 'files': ['bin/seqtk'], + 'dirs': [], +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/s/spoa/spoa-4.0.7-GCC-11.3.0.eb b/easybuild/easyconfigs/s/spoa/spoa-4.0.7-GCC-11.3.0.eb new file mode 100644 index 00000000000..658c26ac530 --- /dev/null +++ b/easybuild/easyconfigs/s/spoa/spoa-4.0.7-GCC-11.3.0.eb @@ -0,0 +1,29 @@ +easyblock = 'CMakeMake' + +name = 'spoa' +version = '4.0.7' + +homepage = 'https://github.com/rvaser/spoa' +description = """Spoa (SIMD POA) is a c++ implementation of the partial order alignment (POA) algorithm + which is used to generate consensus sequences""" + +toolchain = {'name': 'GCC', 'version': '11.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/rvaser/spoa/releases/download/%(version)s/'] +sources = ['spoa-v%(version)s.tar.gz'] +checksums = ['f7a8cd039e4aabea1481e123387fedaa8f87e55418a3649408a615f5c6b1b9a4'] + +builddependencies = [('CMake', '3.23.1')] + +configopts = "-Dspoa_build_executable=ON" + +sanity_check_paths = { + 'files': ['bin/spoa'] + ['include/spoa/%s' % x for x in ['alignment_engine.hpp', 'graph.hpp', 'spoa.hpp']] + + ['lib/libspoa.a', 'lib/pkgconfig/spoa-1.pc'], + 'dirs': [], +} + +sanity_check_commands = ["spoa --help"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/s/spoa/spoa-4.0.7-GCC-12.2.0.eb b/easybuild/easyconfigs/s/spoa/spoa-4.0.7-GCC-12.2.0.eb new file mode 100644 index 00000000000..abf4a21b04e --- /dev/null +++ b/easybuild/easyconfigs/s/spoa/spoa-4.0.7-GCC-12.2.0.eb @@ -0,0 +1,29 @@ +easyblock = 'CMakeMake' + +name = 'spoa' +version = '4.0.7' + +homepage = 'https://github.com/rvaser/spoa' +description = """Spoa (SIMD POA) is a c++ implementation of the partial order alignment (POA) algorithm + which is used to generate consensus sequences""" + +toolchain = {'name': 'GCC', 'version': '12.2.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/rvaser/spoa/releases/download/%(version)s/'] +sources = ['spoa-v%(version)s.tar.gz'] +checksums = ['f7a8cd039e4aabea1481e123387fedaa8f87e55418a3649408a615f5c6b1b9a4'] + +builddependencies = [('CMake', '3.24.3')] + +configopts = "-Dspoa_build_executable=ON" + +sanity_check_paths = { + 'files': ['bin/spoa'] + ['include/spoa/%s' % x for x in ['alignment_engine.hpp', 'graph.hpp', 'spoa.hpp']] + + ['lib/libspoa.a', 'lib/pkgconfig/spoa-1.pc'], + 'dirs': [], +} + +sanity_check_commands = ["spoa --help"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/s/stardist/stardist-0.8.3-foss-2021b-CUDA-11.4.1.eb b/easybuild/easyconfigs/s/stardist/stardist-0.8.3-foss-2021b-CUDA-11.4.1.eb new file mode 100644 index 00000000000..8fb8103c38a --- /dev/null +++ b/easybuild/easyconfigs/s/stardist/stardist-0.8.3-foss-2021b-CUDA-11.4.1.eb @@ -0,0 +1,75 @@ +easyblock = 'PythonBundle' + +name = 'stardist' +version = '0.8.3' +versionsuffix = '-CUDA-%(cudaver)s' + +homepage = 'https://github.com/stardist/stardist' +description = "Object Detection with Star-convex Shapes." + +toolchain = {'name': 'foss', 'version': '2021b'} +toolchainopts = {'pic': True} + +dependencies = [ + ('Python', '3.9.6'), + ('CUDA', '11.4.1', '', SYSTEM), + ('TensorFlow', '2.7.1', versionsuffix), + ('numba', '0.54.1'), + ('imageio', '2.13.5'), + ('scikit-image', '0.19.1'), + ('tqdm', '4.62.3'), + ('PyOpenCL', '2021.2.13', versionsuffix), + ('Mako', '1.1.4'), +] + +use_pip = True + +exts_list = [ + ('tifffile', '2022.10.10', { + 'checksums': ['50b61ba943b866d191295bc38a00191c9fdab23ece063544c7f1a264e3f6aa8e'], + }), + ('csbdeep', '0.7.2', { + 'checksums': ['8a000eb71d04aa753f52ffe81a34c0a30a06ee986d20b9986d76272253e2fd53'], + }), + ('edt', '2.3.0', { + 'checksums': ['220e2086fdf32bbd8964df76b3e1a42061ece1f4b9ea95ec83a094d24d258664'], + }), + ('configparser', '5.3.0', { + 'checksums': ['8be267824b541c09b08db124917f48ab525a6c3e837011f3130781a224c57090'], + }), + ('funcsigs', '1.0.2', { + 'checksums': ['a7bb0f2cf3a3fd1ab2732cb49eba4252c2af4240442415b4abce3b87022a8f50'], + }), + ('reikna', '0.7.6', { + 'checksums': ['722fefbd253d0bbcbf5250b7b9c4aca5722cde4ca38bfbf863a551a5fc26edfa'], + }), + ('scikit-tensor-py3', '20210331', { + 'sources': [{ + 'source_urls': ['https://github.com/evertrol/scikit-tensor-py3/archive/'], + 'download_filename': '99190292b9564e7c4a9312280db732ceedf7b7e3.tar.gz', + 'filename': 'scikit-tensor-py3-%(version)s.tar.gz', + }], + 'checksums': ['5afb33e74c7e7401374a40db4b381b3da182cc76a9b6282bdf04cafff097c046'], + 'modulename': 'sktensor', + }), + ('gputools', '0.2.14', { + 'checksums': ['dc3a4aef73e802f6b94a4262ac4c637a2fb62fe8472368e9143248d6d1cb93de'], + }), + (name, version, { + 'checksums': ['8ac1f6165ca8e8496651c6e2b49ce57d6d574dfb22bf6f63ddaec1f64b8868d1'], + }), +] + +sanity_pip_check = True + +sanity_check_paths = { + 'files': ['bin/stardist-predict2d', 'bin/stardist-predict3d'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = [ + "stardist-predict2d --help", + "stardist-predict3d --help", +] + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/s/statsmodels/statsmodels-0.14.0-gfbf-2022b.eb b/easybuild/easyconfigs/s/statsmodels/statsmodels-0.14.0-gfbf-2022b.eb new file mode 100644 index 00000000000..11abb6318f6 --- /dev/null +++ b/easybuild/easyconfigs/s/statsmodels/statsmodels-0.14.0-gfbf-2022b.eb @@ -0,0 +1,29 @@ +easyblock = 'PythonBundle' + +name = 'statsmodels' +version = '0.14.0' + +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': 'gfbf', 'version': '2022b'} + +dependencies = [ + ('Python', '3.10.8'), + ('SciPy-bundle', '2023.02'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('patsy', '0.5.3', { + 'checksums': ['bdc18001875e319bc91c812c1eb6a10be4bb13cb81eb763f466179dca3b67277'], + }), + (name, version, { + 'checksums': ['6875c7d689e966d948f15eb816ab5616f4928706b180cf470fd5907ab6f647a4'], + }), +] + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/s/strace/strace-5.14-GCCcore-11.2.0.eb b/easybuild/easyconfigs/s/strace/strace-5.14-GCCcore-11.2.0.eb new file mode 100644 index 00000000000..ef709f5fd5a --- /dev/null +++ b/easybuild/easyconfigs/s/strace/strace-5.14-GCCcore-11.2.0.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'strace' +version = '5.14' + +homepage = 'https://strace.io/' +description = """ +strace is a diagnostic, debugging and instructional userspace utility for Linux. It is used to monitor and tamper with +interactions between processes and the Linux kernel, which include system calls, signal deliveries, and changes of +process state. +""" + +toolchain = {'name': 'GCCcore', 'version': '11.2.0'} + +source_urls = ['https://github.com/strace/strace/releases/download/v%(version)s/'] +sources = [SOURCE_TAR_XZ] +checksums = ['901bee6db5e17debad4530dd9ffb4dc9a96c4a656edbe1c3141b7cb307b11e73'] + +builddependencies = [ + ('binutils', '2.37'), +] + +configopts = "--enable-mpers=check" + +sanity_check_paths = { + 'files': ['bin/strace-log-merge', 'bin/strace'], + 'dirs': ['share'] +} + +sanity_check_commands = ['strace --help'] + +moduleclass = 'system' diff --git a/easybuild/easyconfigs/s/subset-bam/subset-bam-1.1.0-GCCcore-10.3.0.eb b/easybuild/easyconfigs/s/subset-bam/subset-bam-1.1.0-GCCcore-10.3.0.eb new file mode 100644 index 00000000000..1f424531e42 --- /dev/null +++ b/easybuild/easyconfigs/s/subset-bam/subset-bam-1.1.0-GCCcore-10.3.0.eb @@ -0,0 +1,309 @@ +# Author: J. Sassmannshausen (Imperial College London/UK) + +easyblock = 'Cargo' + +name = 'subset-bam' +version = '1.1.0' + +homepage = 'https://github.com/10XGenomics/subset-bam' +description = """subset-bam is a tool to subset a 10x Genomics BAM file based on a tag, +most commonly the cell barcode tag.""" + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +crates = [ + ('addr2line', '0.12.1'), + ('adler32', '1.1.0'), + ('aho-corasick', '0.6.10'), + ('aho-corasick', '0.7.10'), + ('ansi_term', '0.11.0'), + ('arrayref', '0.3.6'), + ('arrayvec', '0.5.1'), + ('atty', '0.2.14'), + ('autocfg', '1.0.0'), + ('backtrace', '0.3.49'), + ('base64', '0.11.0'), + ('bindgen', '0.36.1'), + ('bitflags', '0.9.1'), + ('bitflags', '1.2.1'), + ('blake2b_simd', '0.5.10'), + ('bstr', '0.2.13'), + ('byteorder', '1.3.4'), + ('cc', '1.0.54'), + ('cexpr', '0.2.3'), + ('cfg-if', '0.1.10'), + ('chrono', '0.4.11'), + ('clang-sys', '0.22.0'), + ('clap', '2.33.1'), + ('constant_time_eq', '0.1.5'), + ('crossbeam-deque', '0.7.3'), + ('crossbeam-epoch', '0.8.2'), + ('crossbeam-queue', '0.2.3'), + ('crossbeam-utils', '0.7.2'), + ('csv', '1.1.3'), + ('csv-core', '0.1.10'), + ('custom_derive', '0.1.7'), + ('data-encoding', '2.2.1'), + ('dirs', '1.0.5'), + ('either', '1.5.3'), + ('env_logger', '0.5.13'), + ('faccess', '0.2.3'), + ('failure', '0.1.8'), + ('failure_derive', '0.1.8'), + ('fs-utils', '1.1.4'), + ('getrandom', '0.1.14'), + ('gimli', '0.21.0'), + ('glob', '0.2.11'), + ('hermit-abi', '0.1.14'), + ('human-panic', '1.0.3'), + ('humantime', '1.3.0'), + ('idna', '0.1.5'), + ('ieee754', '0.2.6'), + ('itertools', '0.6.5'), + ('itoa', '0.4.6'), + ('lazy_static', '0.2.11'), + ('lazy_static', '1.4.0'), + ('libc', '0.2.71'), + ('libloading', '0.5.2'), + ('linear-map', '1.2.0'), + ('log', '0.4.8'), + ('matches', '0.1.8'), + ('maybe-uninit', '2.0.0'), + ('memchr', '1.0.2'), + ('memchr', '2.3.3'), + ('memoffset', '0.5.4'), + ('miniz_oxide', '0.3.7'), + ('newtype_derive', '0.1.6'), + ('nom', '3.2.1'), + ('num-integer', '0.1.43'), + ('num-traits', '0.2.12'), + ('num_cpus', '1.13.0'), + ('object', '0.20.0'), + ('os_type', '2.2.0'), + ('peeking_take_while', '0.1.2'), + ('percent-encoding', '1.0.1'), + ('ppv-lite86', '0.2.8'), + ('proc-macro2', '0.3.5'), + ('proc-macro2', '1.0.18'), + ('quick-error', '1.2.3'), + ('quote', '0.5.2'), + ('quote', '1.0.7'), + ('rand', '0.7.3'), + ('rand_chacha', '0.2.2'), + ('rand_core', '0.5.1'), + ('rand_hc', '0.2.0'), + ('rayon', '1.3.1'), + ('rayon-core', '1.7.1'), + ('redox_syscall', '0.1.56'), + ('redox_users', '0.3.4'), + ('regex', '0.2.11'), + ('regex', '1.3.9'), + ('regex-automata', '0.1.9'), + ('regex-syntax', '0.5.6'), + ('regex-syntax', '0.6.18'), + ('remove_dir_all', '0.5.3'), + ('ring', '0.14.6'), + ('rust-argon2', '0.7.0'), + ('rust-htslib', '0.20.0'), + ('rustc-demangle', '0.1.16'), + ('rustc_version', '0.1.7'), + ('ryu', '1.0.5'), + ('scopeguard', '1.1.0'), + ('semver', '0.1.20'), + ('serde', '1.0.113'), + ('serde_derive', '1.0.113'), + ('simplelog', '0.5.3'), + ('spin', '0.5.2'), + ('strsim', '0.8.0'), + ('syn', '1.0.31'), + ('synstructure', '0.12.4'), + ('tempfile', '3.1.0'), + ('term', '0.5.2'), + ('termcolor', '1.1.0'), + ('terminal_size', '0.1.12'), + ('textwrap', '0.11.0'), + ('thread_local', '0.3.6'), + ('thread_local', '1.0.1'), + ('time', '0.1.43'), + ('tinyvec', '0.3.3'), + ('toml', '0.5.6'), + ('ucd-util', '0.1.8'), + ('unicode-bidi', '0.3.4'), + ('unicode-normalization', '0.1.13'), + ('unicode-width', '0.1.7'), + ('unicode-xid', '0.1.0'), + ('unicode-xid', '0.2.0'), + ('untrusted', '0.6.2'), + ('url', '1.7.2'), + ('utf8-ranges', '1.0.4'), + ('uuid', '0.8.1'), + ('vec_map', '0.8.2'), + ('wasi', '0.9.0+wasi-snapshot-preview1'), + ('which', '1.0.5'), + ('winapi', '0.3.8'), + ('winapi-i686-pc-windows-gnu', '0.4.0'), + ('winapi-util', '0.1.5'), + ('winapi-x86_64-pc-windows-gnu', '0.4.0'), +] + +source_urls = ['https://github.com/10XGenomics/subset-bam/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = [ + {'v1.1.0.tar.gz': 'af7e384dbacbebe55c6173ec8e52b2cebc95e69b922114003668575550b7227f'}, + {'addr2line-0.12.1.tar.gz': 'a49806b9dadc843c61e7c97e72490ad7f7220ae249012fbda9ad0609457c0543'}, + {'adler32-1.1.0.tar.gz': '567b077b825e468cc974f0020d4082ee6e03132512f207ef1a02fd5d00d1f32d'}, + {'aho-corasick-0.6.10.tar.gz': '81ce3d38065e618af2d7b77e10c5ad9a069859b4be3c2250f674af3840d9c8a5'}, + {'aho-corasick-0.7.10.tar.gz': '8716408b8bc624ed7f65d223ddb9ac2d044c0547b6fa4b0d554f3a9540496ada'}, + {'ansi_term-0.11.0.tar.gz': 'ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b'}, + {'arrayref-0.3.6.tar.gz': 'a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544'}, + {'arrayvec-0.5.1.tar.gz': 'cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8'}, + {'atty-0.2.14.tar.gz': 'd9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8'}, + {'autocfg-1.0.0.tar.gz': 'f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d'}, + {'backtrace-0.3.49.tar.gz': '05100821de9e028f12ae3d189176b41ee198341eb8f369956407fea2f5cc666c'}, + {'base64-0.11.0.tar.gz': 'b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7'}, + {'bindgen-0.36.1.tar.gz': 'acc8fa644dc2b6f6c2d391ccea460da1ad9bf2271c4e9ffaad88d2dd727a7295'}, + {'bitflags-0.9.1.tar.gz': '4efd02e230a02e18f92fc2735f44597385ed02ad8f831e7c1c1156ee5e1ab3a5'}, + {'bitflags-1.2.1.tar.gz': 'cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693'}, + {'blake2b_simd-0.5.10.tar.gz': 'd8fb2d74254a3a0b5cac33ac9f8ed0e44aa50378d9dbb2e5d83bd21ed1dc2c8a'}, + {'bstr-0.2.13.tar.gz': '31accafdb70df7871592c058eca3985b71104e15ac32f64706022c58867da931'}, + {'byteorder-1.3.4.tar.gz': '08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de'}, + {'cc-1.0.54.tar.gz': '7bbb73db36c1246e9034e307d0fba23f9a2e251faa47ade70c1bd252220c8311'}, + {'cexpr-0.2.3.tar.gz': '42aac45e9567d97474a834efdee3081b3c942b2205be932092f53354ce503d6c'}, + {'cfg-if-0.1.10.tar.gz': '4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822'}, + {'chrono-0.4.11.tar.gz': '80094f509cf8b5ae86a4966a39b3ff66cd7e2a3e594accec3743ff3fabeab5b2'}, + {'clang-sys-0.22.0.tar.gz': '939a1a34310b120d26eba35c29475933128b0ec58e24b43327f8dbe6036fc538'}, + {'clap-2.33.1.tar.gz': 'bdfa80d47f954d53a35a64987ca1422f495b8d6483c0fe9f7117b36c2a792129'}, + {'constant_time_eq-0.1.5.tar.gz': '245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc'}, + {'crossbeam-deque-0.7.3.tar.gz': '9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285'}, + {'crossbeam-epoch-0.8.2.tar.gz': '058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace'}, + {'crossbeam-queue-0.2.3.tar.gz': '774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570'}, + {'crossbeam-utils-0.7.2.tar.gz': 'c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8'}, + {'csv-1.1.3.tar.gz': '00affe7f6ab566df61b4be3ce8cf16bc2576bca0963ceb0955e45d514bf9a279'}, + {'csv-core-0.1.10.tar.gz': '2b2466559f260f48ad25fe6317b3c8dac77b5bdb5763ac7d9d6103530663bc90'}, + {'custom_derive-0.1.7.tar.gz': 'ef8ae57c4978a2acd8b869ce6b9ca1dfe817bff704c220209fdef2c0b75a01b9'}, + {'data-encoding-2.2.1.tar.gz': '72aa14c04dfae8dd7d8a2b1cb7ca2152618cd01336dbfe704b8dcbf8d41dbd69'}, + {'dirs-1.0.5.tar.gz': '3fd78930633bd1c6e35c4b42b1df7b0cbc6bc191146e512bb3bedf243fcc3901'}, + {'either-1.5.3.tar.gz': 'bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3'}, + {'env_logger-0.5.13.tar.gz': '15b0a4d2e39f8420210be8b27eeda28029729e2fd4291019455016c348240c38'}, + {'faccess-0.2.3.tar.gz': 'e039175679baf763ddddf4f76900b92d4dae9411ee88cf42d2f11b976b09e07c'}, + {'failure-0.1.8.tar.gz': 'd32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86'}, + {'failure_derive-0.1.8.tar.gz': 'aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4'}, + {'fs-utils-1.1.4.tar.gz': '6fc7a9dc005c944c98a935e7fd626faf5bf7e5a609f94bc13e42fc4a02e52593'}, + {'getrandom-0.1.14.tar.gz': '7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb'}, + {'gimli-0.21.0.tar.gz': 'bcc8e0c9bce37868955864dbecd2b1ab2bdf967e6f28066d65aaac620444b65c'}, + {'glob-0.2.11.tar.gz': '8be18de09a56b60ed0edf84bc9df007e30040691af7acd1c41874faac5895bfb'}, + {'hermit-abi-0.1.14.tar.gz': 'b9586eedd4ce6b3c498bc3b4dd92fc9f11166aa908a914071953768066c67909'}, + {'human-panic-1.0.3.tar.gz': '39f357a500abcbd7c5f967c1d45c8838585b36743823b9d43488f24850534e36'}, + {'humantime-1.3.0.tar.gz': 'df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f'}, + {'idna-0.1.5.tar.gz': '38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e'}, + {'ieee754-0.2.6.tar.gz': '9007da9cacbd3e6343da136e98b0d2df013f553d35bdec8b518f07bea768e19c'}, + {'itertools-0.6.5.tar.gz': 'd3f2be4da1690a039e9ae5fd575f706a63ad5a2120f161b1d653c9da3930dd21'}, + {'itoa-0.4.6.tar.gz': 'dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6'}, + {'lazy_static-0.2.11.tar.gz': '76f033c7ad61445c5b347c7382dd1237847eb1bce590fe50365dcb33d546be73'}, + {'lazy_static-1.4.0.tar.gz': 'e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646'}, + {'libc-0.2.71.tar.gz': '9457b06509d27052635f90d6466700c65095fdf75409b3fbdd903e988b886f49'}, + {'libloading-0.5.2.tar.gz': 'f2b111a074963af1d37a139918ac6d49ad1d0d5e47f72fd55388619691a7d753'}, + {'linear-map-1.2.0.tar.gz': 'bfae20f6b19ad527b550c223fddc3077a547fc70cda94b9b566575423fd303ee'}, + {'log-0.4.8.tar.gz': '14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7'}, + {'matches-0.1.8.tar.gz': '7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08'}, + {'maybe-uninit-2.0.0.tar.gz': '60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00'}, + {'memchr-1.0.2.tar.gz': '148fab2e51b4f1cfc66da2a7c32981d1d3c083a803978268bb11fe4b86925e7a'}, + {'memchr-2.3.3.tar.gz': '3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400'}, + {'memoffset-0.5.4.tar.gz': 'b4fc2c02a7e374099d4ee95a193111f72d2110197fe200272371758f6c3643d8'}, + {'miniz_oxide-0.3.7.tar.gz': '791daaae1ed6889560f8c4359194f56648355540573244a5448a83ba1ecc7435'}, + {'newtype_derive-0.1.6.tar.gz': 'ac8cd24d9f185bb7223958d8c1ff7a961b74b1953fd05dba7cc568a63b3861ec'}, + {'nom-3.2.1.tar.gz': '05aec50c70fd288702bcd93284a8444607f3292dbdf2a30de5ea5dcdbe72287b'}, + {'num-integer-0.1.43.tar.gz': '8d59457e662d541ba17869cf51cf177c0b5f0cbf476c66bdc90bf1edac4f875b'}, + {'num-traits-0.2.12.tar.gz': 'ac267bcc07f48ee5f8935ab0d24f316fb722d7a1292e2913f0cc196b29ffd611'}, + {'num_cpus-1.13.0.tar.gz': '05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3'}, + {'object-0.20.0.tar.gz': '1ab52be62400ca80aa00285d25253d7f7c437b7375c4de678f5405d3afe82ca5'}, + {'os_type-2.2.0.tar.gz': '7edc011af0ae98b7f88cf7e4a83b70a54a75d2b8cb013d6efd02e5956207e9eb'}, + {'peeking_take_while-0.1.2.tar.gz': '19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099'}, + {'percent-encoding-1.0.1.tar.gz': '31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831'}, + {'ppv-lite86-0.2.8.tar.gz': '237a5ed80e274dbc66f86bd59c1e25edc039660be53194b5fe0a482e0f2612ea'}, + {'proc-macro2-0.3.5.tar.gz': '77997c53ae6edd6d187fec07ec41b207063b5ee6f33680e9fa86d405cdd313d4'}, + {'proc-macro2-1.0.18.tar.gz': 'beae6331a816b1f65d04c45b078fd8e6c93e8071771f41b8163255bbd8d7c8fa'}, + {'quick-error-1.2.3.tar.gz': 'a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0'}, + {'quote-0.5.2.tar.gz': '9949cfe66888ffe1d53e6ec9d9f3b70714083854be20fd5e271b232a017401e8'}, + {'quote-1.0.7.tar.gz': 'aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37'}, + {'rand-0.7.3.tar.gz': '6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03'}, + {'rand_chacha-0.2.2.tar.gz': 'f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402'}, + {'rand_core-0.5.1.tar.gz': '90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19'}, + {'rand_hc-0.2.0.tar.gz': 'ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c'}, + {'rayon-1.3.1.tar.gz': '62f02856753d04e03e26929f820d0a0a337ebe71f849801eea335d464b349080'}, + {'rayon-core-1.7.1.tar.gz': 'e92e15d89083484e11353891f1af602cc661426deb9564c298b270c726973280'}, + {'redox_syscall-0.1.56.tar.gz': '2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84'}, + {'redox_users-0.3.4.tar.gz': '09b23093265f8d200fa7b4c2c76297f47e681c655f6f1285a8780d6a022f7431'}, + {'regex-0.2.11.tar.gz': '9329abc99e39129fcceabd24cf5d85b4671ef7c29c50e972bc5afe32438ec384'}, + {'regex-1.3.9.tar.gz': '9c3780fcf44b193bc4d09f36d2a3c87b251da4a046c87795a0d35f4f927ad8e6'}, + {'regex-automata-0.1.9.tar.gz': 'ae1ded71d66a4a97f5e961fd0cb25a5f366a42a41570d16a763a69c092c26ae4'}, + {'regex-syntax-0.5.6.tar.gz': '7d707a4fa2637f2dca2ef9fd02225ec7661fe01a53623c1e6515b6916511f7a7'}, + {'regex-syntax-0.6.18.tar.gz': '26412eb97c6b088a6997e05f69403a802a92d520de2f8e63c2b65f9e0f47c4e8'}, + {'remove_dir_all-0.5.3.tar.gz': '3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7'}, + {'ring-0.14.6.tar.gz': '426bc186e3e95cac1e4a4be125a4aca7e84c2d616ffc02244eef36e2a60a093c'}, + {'rust-argon2-0.7.0.tar.gz': '2bc8af4bda8e1ff4932523b94d3dd20ee30a87232323eda55903ffd71d2fb017'}, + {'rust-htslib-0.20.0.tar.gz': 'f702eebd89609dd27605999d981b67b3380861cc2d4318a2e827709c884006c4'}, + {'rustc-demangle-0.1.16.tar.gz': '4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783'}, + {'rustc_version-0.1.7.tar.gz': 'c5f5376ea5e30ce23c03eb77cbe4962b988deead10910c372b226388b594c084'}, + {'ryu-1.0.5.tar.gz': '71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e'}, + {'scopeguard-1.1.0.tar.gz': 'd29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd'}, + {'semver-0.1.20.tar.gz': 'd4f410fedcf71af0345d7607d246e7ad15faaadd49d240ee3b24e5dc21a820ac'}, + {'serde-1.0.113.tar.gz': '6135c78461981c79497158ef777264c51d9d0f4f3fc3a4d22b915900e42dac6a'}, + {'serde_derive-1.0.113.tar.gz': '93c5eaa17d0954cb481cdcfffe9d84fcfa7a1a9f2349271e678677be4c26ae31'}, + {'simplelog-0.5.3.tar.gz': '2e95345f185d5adeb8ec93459d2dc99654e294cc6ccf5b75414d8ea262de9a13'}, + {'spin-0.5.2.tar.gz': '6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d'}, + {'strsim-0.8.0.tar.gz': '8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a'}, + {'syn-1.0.31.tar.gz': 'b5304cfdf27365b7585c25d4af91b35016ed21ef88f17ced89c7093b43dba8b6'}, + {'synstructure-0.12.4.tar.gz': 'b834f2d66f734cb897113e34aaff2f1ab4719ca946f9a7358dba8f8064148701'}, + {'tempfile-3.1.0.tar.gz': '7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9'}, + {'term-0.5.2.tar.gz': 'edd106a334b7657c10b7c540a0106114feadeb4dc314513e97df481d5d966f42'}, + {'termcolor-1.1.0.tar.gz': 'bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f'}, + {'terminal_size-0.1.12.tar.gz': '8038f95fc7a6f351163f4b964af631bd26c9e828f7db085f2a84aca56f70d13b'}, + {'textwrap-0.11.0.tar.gz': 'd326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060'}, + {'thread_local-0.3.6.tar.gz': 'c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b'}, + {'thread_local-1.0.1.tar.gz': 'd40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14'}, + {'time-0.1.43.tar.gz': 'ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438'}, + {'tinyvec-0.3.3.tar.gz': '53953d2d3a5ad81d9f844a32f14ebb121f50b650cd59d0ee2a07cf13c617efed'}, + {'toml-0.5.6.tar.gz': 'ffc92d160b1eef40665be3a05630d003936a3bc7da7421277846c2613e92c71a'}, + {'ucd-util-0.1.8.tar.gz': 'c85f514e095d348c279b1e5cd76795082cf15bd59b93207832abe0b1d8fed236'}, + {'unicode-bidi-0.3.4.tar.gz': '49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5'}, + {'unicode-normalization-0.1.13.tar.gz': '6fb19cf769fa8c6a80a162df694621ebeb4dafb606470b2b2fce0be40a98a977'}, + {'unicode-width-0.1.7.tar.gz': 'caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479'}, + {'unicode-xid-0.1.0.tar.gz': 'fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc'}, + {'unicode-xid-0.2.0.tar.gz': '826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c'}, + {'untrusted-0.6.2.tar.gz': '55cd1f4b4e96b46aeb8d4855db4a7a9bd96eeeb5c6a1ab54593328761642ce2f'}, + {'url-1.7.2.tar.gz': 'dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a'}, + {'utf8-ranges-1.0.4.tar.gz': 'b4ae116fef2b7fea257ed6440d3cfcff7f190865f170cdad00bb6465bf18ecba'}, + {'uuid-0.8.1.tar.gz': '9fde2f6a4bea1d6e007c4ad38c6839fa71cbb63b6dbf5b595aa38dc9b1093c11'}, + {'vec_map-0.8.2.tar.gz': 'f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191'}, + {'wasi-0.9.0+wasi-snapshot-preview1.tar.gz': 'cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519'}, + {'which-1.0.5.tar.gz': 'e84a603e7e0b1ce1aa1ee2b109c7be00155ce52df5081590d1ffb93f4f515cb2'}, + {'winapi-0.3.8.tar.gz': '8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6'}, + {'winapi-i686-pc-windows-gnu-0.4.0.tar.gz': 'ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6'}, + {'winapi-util-0.1.5.tar.gz': '70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178'}, + {'winapi-x86_64-pc-windows-gnu-0.4.0.tar.gz': '712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f'}, +] + +builddependencies = [ + ('binutils', '2.36.1'), + ('Rust', '1.52.1'), + ('Clang', '12.0.1'), +] + +dependencies = [ + ('bzip2', '1.0.8'), +] + +# It looks like we need to specify this as else it will not work. +buildopts = '-Z unstable-options ' +testopts = '-Z unstable-options ' +installopts = '-Z unstable-options ' + +sanity_check_paths = { + 'files': ['bin/subset-bam'], + 'dirs': [], +} + +sanity_check_commands = ["subset-bam --help"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/t/Tapenade/Tapenade-3.16-Java-17.eb b/easybuild/easyconfigs/t/Tapenade/Tapenade-3.16-Java-17.eb new file mode 100644 index 00000000000..f474d6f883d --- /dev/null +++ b/easybuild/easyconfigs/t/Tapenade/Tapenade-3.16-Java-17.eb @@ -0,0 +1,27 @@ +easyblock = 'Tarball' + +name = 'Tapenade' +version = '3.16' +versionsuffix = '-Java-%(javaver)s' + +homepage = 'https://tapenade.gitlabpages.inria.fr/tapenade/docs/html/index.html' +description = """Tool for Algorithmic Differentiation of programs.""" + +toolchain = SYSTEM + +source_urls = ['https://tapenade.gitlabpages.inria.fr/tapenade/distrib/'] +sources = ['%(namelower)s_%(version)s.tar'] +checksums = ['5ee44218a11861e3a99d413171d4016f1872b652c204c27e0be57d1740fda316'] + +dependencies = [ + ('Java', '17'), +] + +sanity_check_paths = { + 'files': ['bin/tapenade', 'LICENSE.html'], + 'dirs': ['bin', 'resources'], +} + +sanity_check_commands = ["tapenade -?"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/t/TensorFlow-Graphics/TensorFlow-Graphics-2021.12.3-foss-2021b-CUDA-11.4.1.eb b/easybuild/easyconfigs/t/TensorFlow-Graphics/TensorFlow-Graphics-2021.12.3-foss-2021b-CUDA-11.4.1.eb new file mode 100644 index 00000000000..98bc920ae4a --- /dev/null +++ b/easybuild/easyconfigs/t/TensorFlow-Graphics/TensorFlow-Graphics-2021.12.3-foss-2021b-CUDA-11.4.1.eb @@ -0,0 +1,61 @@ +easyblock = 'PythonBundle' + +name = 'TensorFlow-Graphics' +version = '2021.12.3' +versionsuffix = '-CUDA-%(cudaver)s' + +homepage = 'https://github.com/tensorflow/graphics' +description = """Tensorflow Graphics provides a set of differentiable graphics +and geometry layers (e.g. cameras, reflectance models, spatial transformations, +mesh convolutions) and 3D viewer functionalities (e.g. 3D TensorBoard) that can +be used to train and debug your machine learning models of choice.""" + +toolchain = {'name': 'foss', 'version': '2021b'} +toolchainopts = {'pic': True} + +dependencies = [ + ('CUDA', '11.4.1', '', SYSTEM), + ('Python', '3.9.6'), + ('TensorFlow', '2.7.1', versionsuffix), + ('TensorFlow-Datasets', '4.8.3', versionsuffix), + ('matplotlib', '3.4.3'), + ('h5py', '3.6.0'), + ('tqdm', '4.62.3'), + ('OpenEXR', '3.1.1'), + ('networkx', '2.6.3'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('typeguard', '2.13.3', { + 'checksums': ['00edaa8da3a133674796cf5ea87d9f4b4c367d77476e185e80251cc13dfbb8c4'], + }), + ('tensorflow-addons', '0.19.0', { + 'sources': [{ + 'source_urls': ['https://github.com/tensorflow/addons/archive/refs/tags/'], + 'download_filename': 'v%(version)s.tar.gz', + 'filename': '%(name)s-%(version)s.tar.gz', + }], + 'checksums': ['6e1c40f03c9a35453a26eacbf36700f9666882418058a2f0d81aaa939135262f'], + }), + ('OpenEXR', '1.3.9', { + 'modulename': 'Imath', + 'patches': ['TensorFlow-Graphics-2021.12.3_openexr-setup.patch'], + 'checksums': [ + {'OpenEXR-1.3.9.tar.gz': 'cffcd13906291ef1a81b369c1c0e907648ecd24363668873691f44866704ab21'}, + {'TensorFlow-Graphics-2021.12.3_openexr-setup.patch': + '158ad43767c48d9e556d89c0e01a0c23c357f8c432ad443354337ec765d430b6'}, + ], + }), + ('trimesh', '3.20.1', { + 'checksums': ['5149331d0a11082ed2990800e2ecf4f49fca4718b3af92e1c026286c8358d607'], + }), + (name, version, { + 'sources': ['%(namelower)s-%(version)s.tar.gz'], + 'checksums': ['622f6b6c9267da96a0dfabece3fb828aea8405e2004b9b0a6288242674706355'], + }), +] + +moduleclass = 'ai' diff --git a/easybuild/easyconfigs/t/TensorFlow-Graphics/TensorFlow-Graphics-2021.12.3_openexr-setup.patch b/easybuild/easyconfigs/t/TensorFlow-Graphics/TensorFlow-Graphics-2021.12.3_openexr-setup.patch new file mode 100644 index 00000000000..81a9bcb5cd0 --- /dev/null +++ b/easybuild/easyconfigs/t/TensorFlow-Graphics/TensorFlow-Graphics-2021.12.3_openexr-setup.patch @@ -0,0 +1,46 @@ +Use EasyBuild information to get version and specifying paths to relevant dirs +Author: Viktor Rehnberg (Chalmers University of Technology) +diff -ruN a/setup.py b/setup.py +--- a/setup.py 2023-03-03 13:44:54.493375095 +0100 ++++ b/setup.py 2023-03-03 15:33:08.481921491 +0100 +@@ -2,10 +2,11 @@ + from distutils.extension import Extension + from distutils.command.build_py import build_py as _build_py + +-from os import system ++from os import path, environ + import platform + + from distutils.core import setup, Extension ++from distutils.version import LooseVersion + + + VERSION = "1.3.9" +@@ -22,7 +23,7 @@ + + + print("Looking for libOpenEXR...") +-if platform.system() == "Linux" and system("ldconfig -p | grep libOpenEXR"): ++if LooseVersion(environ['EBVERSIONOPENEXR']) < LooseVersion('3'): + # There is no libOpenEXR, probably an old version of OpenEXR + libraries=['Iex', 'Half', 'Imath', 'IlmImf', 'z'] + else: +@@ -44,15 +45,9 @@ + ext_modules=[ + Extension('OpenEXR', + ['OpenEXR.cpp'], +- include_dirs=['/usr/include/OpenEXR', +- '/usr/local/include/OpenEXR', +- '/opt/local/include/OpenEXR', +- '/usr/include/Imath', +- '/usr/local/include/Imath', +- '/opt/local/include/Imath'], +- library_dirs=['/usr/lib', +- '/usr/local/lib', +- '/opt/local/lib'], ++ include_dirs=[path.join(environ['EBROOTOPENEXR'], 'include', 'OpenEXR'), ++ path.join(environ['EBROOTOPENEXR'], 'include', 'Imath')], ++ library_dirs=[path.join(environ['EBROOTOPENEXR'], 'lib')], + libraries=libraries, + extra_compile_args=extra_compile_args) + ], diff --git a/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.11.0-foss-2022a-CUDA-11.7.0.eb b/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.11.0-foss-2022a-CUDA-11.7.0.eb index dc20d8bac90..2251d882c55 100644 --- a/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.11.0-foss-2022a-CUDA-11.7.0.eb +++ b/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.11.0-foss-2022a-CUDA-11.7.0.eb @@ -159,6 +159,7 @@ exts_list = [ 'source_tmpl': 'v%(version)s.tar.gz', 'source_urls': ['https://github.com/tensorflow/tensorflow/archive/'], 'patches': [ + 'TensorFlow-2.1.0_fix-cuda-build.patch', '%(name)s-2.4.0_dont-use-var-lock.patch', '%(name)s-2.5.0-fix-alias-violation-in-absl.patch', '%(name)s-2.5.0_fix-crash-on-shutdown.patch', @@ -173,6 +174,8 @@ exts_list = [ ], 'checksums': [ {'v2.11.0.tar.gz': '99c732b92b1b37fc243a559e02f9aef5671771e272758aa4aec7f34dc92dac48'}, + {'TensorFlow-2.1.0_fix-cuda-build.patch': + '78c20aeaa7784b8ceb46238a81e8c2461137d28e0b576deeba8357d23fbe1f5a'}, {'TensorFlow-2.4.0_dont-use-var-lock.patch': 'b14f2493fd2edf79abd1c4f2dde6c98a3e7d5cb9c25ab9386df874d5f072d6b5'}, {'TensorFlow-2.5.0-fix-alias-violation-in-absl.patch': diff --git a/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.7.1-foss-2021b-CUDA-11.4.1.eb b/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.7.1-foss-2021b-CUDA-11.4.1.eb index 634b72ba92b..5c467fb70e6 100644 --- a/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.7.1-foss-2021b-CUDA-11.4.1.eb +++ b/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.7.1-foss-2021b-CUDA-11.4.1.eb @@ -157,6 +157,8 @@ exts_list = [ 'checksums': ['6953272383486044699fd0e9f00aad167a27e08ce19aae66c6c4b10e7e767793'], }), (name, version, { + 'source_tmpl': 'v%(version)s.tar.gz', + 'source_urls': ['https://github.com/tensorflow/tensorflow/archive/'], 'patches': [ 'TensorFlow-2.1.0_fix-cuda-build.patch', 'TensorFlow-2.4.0_add-ldl.patch', @@ -171,9 +173,40 @@ exts_list = [ 'TensorFlow-2.7.1_remove-io-gcs-dependency.patch', 'TensorFlow-2.7.1_remove-libclang-dependency.patch', 'TensorFlow-2.7.1_fix_cpu_count.patch', + 'TensorFlow-2.7.1_fix-PPC-Eigen-GEMM.patch', + 'TensorFlow-2.7.1_fix-PPC-JIT.patch', + ], + 'checksums': [ + 'abebe2cf5ca379e18071693ca5f45b88ade941b16258a21cc1f12d77d5387a21', # v2.7.1.tar.gz + '78c20aeaa7784b8ceb46238a81e8c2461137d28e0b576deeba8357d23fbe1f5a', # TensorFlow-2.1.0_fix-cuda-build.patch + '917ee7282e782e48673596d8917c3207e60e0851bb9acf230a2a439b067af2e3', # TensorFlow-2.4.0_add-ldl.patch + # TensorFlow-2.4.0_dont-use-var-lock.patch + 'b14f2493fd2edf79abd1c4f2dde6c98a3e7d5cb9c25ab9386df874d5f072d6b5', + # TensorFlow-2.5.0_add-support-for-large-core-systems.patch + '915f3477d6407fafd48269fe1e684a05ce361d9b9b85e58686682df87760f636', + # TensorFlow-2.5.0_disable-avx512-extensions.patch + '3655ce24c97569ac9738c07cac85347ba6f5c815ada95b19b606ffa46d4dda03', + # TensorFlow-2.5.0-fix-alias-violation-in-absl.patch + '12454fda3330fb45cd380377e283f04488b40e0b8ae7378e786ddf731a581f75', + # TensorFlow-2.5.0_fix-arm-vector-intrinsics.patch + '5edea55ce87d5adb14f6ed6996f308879e268b8cec760cf11288e3a56179a029', + # TensorFlow-2.5.0_fix-crash-on-shutdown.patch + '578c7493221ebd3dc25ca43d63a72cbb28fdf4112b1e2baa7390f25781bd78fd', + # TensorFlow-2.7.1_fix_protobuf_error_message.patch + '301ce21845987dc7868624880c0d85e60aa5491c5a0bae0f6ebc8db5727960a5', + # TensorFlow-2.7.1_remove-duplicate-gpu-tests.patch + 'f78526a34d85f4dda59b160b576aa3a3126db7073a58c4e3b1424923f6a21483', + # TensorFlow-2.7.1_remove-io-gcs-dependency.patch + '01c439749938f9fc23fe8de17592460aa46e201575a3f9465bfb6b39ca50ef20', + # TensorFlow-2.7.1_remove-libclang-dependency.patc + 'd202058c0e8a7cdef3157fe12327e23c7291ce2724a15653df0aae3b40c4dadc', + # TensorFlow-2.7.1_fix_cpu_count.patch + '5427a4cff0afc2fe5b24776ae9ca3616c56a79c1fde0025b37bec24837bb0698', + # TensorFlow-2.7.1_fix-PPC-Eigen-GEMM.patch + 'ab647e80af52950c733d084ef9ec4b49780ab20a413476374cf41e25bd20af83', + # TensorFlow-2.7.1_fix-PPC-JIT.patch + 'f0652557e760fdc2b39313a24d6236e7c3984cabc3353e0d867e275ff90a13fe', ], - 'source_tmpl': 'v%(version)s.tar.gz', - 'source_urls': ['https://github.com/tensorflow/tensorflow/archive/'], 'test_script': 'TensorFlow-2.x_mnist-test.py', 'test_tag_filters_cpu': '-gpu,-tpu,-no_cuda_on_cpu_tap,-no_pip,-no_oss,-oss_serial,-benchmark-test,-v1only', 'test_tag_filters_gpu': ('gpu,-no_gpu,-nogpu,-gpu_cupti,-no_cuda11,-no_pip,-no_oss,-oss_serial,' @@ -209,33 +242,6 @@ exts_list = [ 'testopts_gpu': "--test_timeout=3600 --test_size_filters=small " + "--run_under=//tensorflow/tools/ci_build/gpu_build:parallel_gpu_execute", 'with_xla': True, - 'checksums': [ - 'abebe2cf5ca379e18071693ca5f45b88ade941b16258a21cc1f12d77d5387a21', # v2.7.1.tar.gz - '78c20aeaa7784b8ceb46238a81e8c2461137d28e0b576deeba8357d23fbe1f5a', # TensorFlow-2.1.0_fix-cuda-build.patch - '917ee7282e782e48673596d8917c3207e60e0851bb9acf230a2a439b067af2e3', # TensorFlow-2.4.0_add-ldl.patch - # TensorFlow-2.4.0_dont-use-var-lock.patch - 'b14f2493fd2edf79abd1c4f2dde6c98a3e7d5cb9c25ab9386df874d5f072d6b5', - # TensorFlow-2.5.0_add-support-for-large-core-systems.patch - '915f3477d6407fafd48269fe1e684a05ce361d9b9b85e58686682df87760f636', - # TensorFlow-2.5.0_disable-avx512-extensions.patch - '3655ce24c97569ac9738c07cac85347ba6f5c815ada95b19b606ffa46d4dda03', - # TensorFlow-2.5.0-fix-alias-violation-in-absl.patch - '12454fda3330fb45cd380377e283f04488b40e0b8ae7378e786ddf731a581f75', - # TensorFlow-2.5.0_fix-arm-vector-intrinsics.patch - '5edea55ce87d5adb14f6ed6996f308879e268b8cec760cf11288e3a56179a029', - # TensorFlow-2.5.0_fix-crash-on-shutdown.patch - '578c7493221ebd3dc25ca43d63a72cbb28fdf4112b1e2baa7390f25781bd78fd', - # TensorFlow-2.7.1_fix_protobuf_error_message.patch - '301ce21845987dc7868624880c0d85e60aa5491c5a0bae0f6ebc8db5727960a5', - # TensorFlow-2.7.1_remove-duplicate-gpu-tests.patch - 'f78526a34d85f4dda59b160b576aa3a3126db7073a58c4e3b1424923f6a21483', - # TensorFlow-2.7.1_remove-io-gcs-dependency.patch - '01c439749938f9fc23fe8de17592460aa46e201575a3f9465bfb6b39ca50ef20', - # TensorFlow-2.7.1_remove-libclang-dependency.patc - 'd202058c0e8a7cdef3157fe12327e23c7291ce2724a15653df0aae3b40c4dadc', - # TensorFlow-2.7.1_fix_cpu_count.patch - '5427a4cff0afc2fe5b24776ae9ca3616c56a79c1fde0025b37bec24837bb0698', - ], }), ] diff --git a/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.7.1-foss-2021b.eb b/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.7.1-foss-2021b.eb index e2c8fdba601..7662b34846b 100644 --- a/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.7.1-foss-2021b.eb +++ b/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.7.1-foss-2021b.eb @@ -153,6 +153,8 @@ exts_list = [ 'checksums': ['6953272383486044699fd0e9f00aad167a27e08ce19aae66c6c4b10e7e767793'], }), (name, version, { + 'source_tmpl': 'v%(version)s.tar.gz', + 'source_urls': ['https://github.com/tensorflow/tensorflow/archive/'], 'patches': [ 'TensorFlow-2.1.0_fix-cuda-build.patch', 'TensorFlow-2.4.0_add-ldl.patch', @@ -167,9 +169,40 @@ exts_list = [ 'TensorFlow-2.7.1_remove-io-gcs-dependency.patch', 'TensorFlow-2.7.1_remove-libclang-dependency.patch', 'TensorFlow-2.7.1_fix_cpu_count.patch', + 'TensorFlow-2.7.1_fix-PPC-Eigen-GEMM.patch', + 'TensorFlow-2.7.1_fix-PPC-JIT.patch', + ], + 'checksums': [ + 'abebe2cf5ca379e18071693ca5f45b88ade941b16258a21cc1f12d77d5387a21', # v2.7.1.tar.gz + '78c20aeaa7784b8ceb46238a81e8c2461137d28e0b576deeba8357d23fbe1f5a', # TensorFlow-2.1.0_fix-cuda-build.patch + '917ee7282e782e48673596d8917c3207e60e0851bb9acf230a2a439b067af2e3', # TensorFlow-2.4.0_add-ldl.patch + # TensorFlow-2.4.0_dont-use-var-lock.patch + 'b14f2493fd2edf79abd1c4f2dde6c98a3e7d5cb9c25ab9386df874d5f072d6b5', + # TensorFlow-2.5.0_add-support-for-large-core-systems.patch + '915f3477d6407fafd48269fe1e684a05ce361d9b9b85e58686682df87760f636', + # TensorFlow-2.5.0_disable-avx512-extensions.patch + '3655ce24c97569ac9738c07cac85347ba6f5c815ada95b19b606ffa46d4dda03', + # TensorFlow-2.5.0-fix-alias-violation-in-absl.patch + '12454fda3330fb45cd380377e283f04488b40e0b8ae7378e786ddf731a581f75', + # TensorFlow-2.5.0_fix-arm-vector-intrinsics.patch + '5edea55ce87d5adb14f6ed6996f308879e268b8cec760cf11288e3a56179a029', + # TensorFlow-2.5.0_fix-crash-on-shutdown.patch + '578c7493221ebd3dc25ca43d63a72cbb28fdf4112b1e2baa7390f25781bd78fd', + # TensorFlow-2.7.1_fix_protobuf_error_message.patch + '301ce21845987dc7868624880c0d85e60aa5491c5a0bae0f6ebc8db5727960a5', + # TensorFlow-2.7.1_remove-duplicate-gpu-tests.patch + 'f78526a34d85f4dda59b160b576aa3a3126db7073a58c4e3b1424923f6a21483', + # TensorFlow-2.7.1_remove-io-gcs-dependency.patch + '01c439749938f9fc23fe8de17592460aa46e201575a3f9465bfb6b39ca50ef20', + # TensorFlow-2.7.1_remove-libclang-dependency.patc + 'd202058c0e8a7cdef3157fe12327e23c7291ce2724a15653df0aae3b40c4dadc', + # TensorFlow-2.7.1_fix_cpu_count.patch + '5427a4cff0afc2fe5b24776ae9ca3616c56a79c1fde0025b37bec24837bb0698', + # TensorFlow-2.7.1_fix-PPC-Eigen-GEMM.patch + 'ab647e80af52950c733d084ef9ec4b49780ab20a413476374cf41e25bd20af83', + # TensorFlow-2.7.1_fix-PPC-JIT.patch + 'f0652557e760fdc2b39313a24d6236e7c3984cabc3353e0d867e275ff90a13fe', ], - 'source_tmpl': 'v%(version)s.tar.gz', - 'source_urls': ['https://github.com/tensorflow/tensorflow/archive/'], 'test_script': 'TensorFlow-2.x_mnist-test.py', 'test_tag_filters_cpu': '-gpu,-tpu,-no_cuda_on_cpu_tap,-no_pip,-no_oss,-oss_serial,-benchmark-test,-v1only', 'test_tag_filters_gpu': ('gpu,-no_gpu,-nogpu,-gpu_cupti,-no_cuda11,-no_pip,-no_oss,-oss_serial,' @@ -205,33 +238,6 @@ exts_list = [ 'testopts_gpu': "--test_timeout=3600 --test_size_filters=small " + "--run_under=//tensorflow/tools/ci_build/gpu_build:parallel_gpu_execute", 'with_xla': True, - 'checksums': [ - 'abebe2cf5ca379e18071693ca5f45b88ade941b16258a21cc1f12d77d5387a21', # v2.7.1.tar.gz - '78c20aeaa7784b8ceb46238a81e8c2461137d28e0b576deeba8357d23fbe1f5a', # TensorFlow-2.1.0_fix-cuda-build.patch - '917ee7282e782e48673596d8917c3207e60e0851bb9acf230a2a439b067af2e3', # TensorFlow-2.4.0_add-ldl.patch - # TensorFlow-2.4.0_dont-use-var-lock.patch - 'b14f2493fd2edf79abd1c4f2dde6c98a3e7d5cb9c25ab9386df874d5f072d6b5', - # TensorFlow-2.5.0_add-support-for-large-core-systems.patch - '915f3477d6407fafd48269fe1e684a05ce361d9b9b85e58686682df87760f636', - # TensorFlow-2.5.0_disable-avx512-extensions.patch - '3655ce24c97569ac9738c07cac85347ba6f5c815ada95b19b606ffa46d4dda03', - # TensorFlow-2.5.0-fix-alias-violation-in-absl.patch - '12454fda3330fb45cd380377e283f04488b40e0b8ae7378e786ddf731a581f75', - # TensorFlow-2.5.0_fix-arm-vector-intrinsics.patch - '5edea55ce87d5adb14f6ed6996f308879e268b8cec760cf11288e3a56179a029', - # TensorFlow-2.5.0_fix-crash-on-shutdown.patch - '578c7493221ebd3dc25ca43d63a72cbb28fdf4112b1e2baa7390f25781bd78fd', - # TensorFlow-2.7.1_fix_protobuf_error_message.patch - '301ce21845987dc7868624880c0d85e60aa5491c5a0bae0f6ebc8db5727960a5', - # TensorFlow-2.7.1_remove-duplicate-gpu-tests.patch - 'f78526a34d85f4dda59b160b576aa3a3126db7073a58c4e3b1424923f6a21483', - # TensorFlow-2.7.1_remove-io-gcs-dependency.patch - '01c439749938f9fc23fe8de17592460aa46e201575a3f9465bfb6b39ca50ef20', - # TensorFlow-2.7.1_remove-libclang-dependency.patc - 'd202058c0e8a7cdef3157fe12327e23c7291ce2724a15653df0aae3b40c4dadc', - # TensorFlow-2.7.1_fix_cpu_count.patch - '5427a4cff0afc2fe5b24776ae9ca3616c56a79c1fde0025b37bec24837bb0698', - ], }), ] diff --git a/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.7.1_fix-PPC-Eigen-GEMM.patch b/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.7.1_fix-PPC-Eigen-GEMM.patch new file mode 100644 index 00000000000..8cb101abb16 --- /dev/null +++ b/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.7.1_fix-PPC-Eigen-GEMM.patch @@ -0,0 +1,3179 @@ +Eigen (dependency of TF) has a bug multiplying matrices on POWER. +This results in failures in e.g. //tensorflow/python/kernel_tests:lu_op_test + +Fix this by using the changeset from https://gitlab.com/libeigen/eigen/-/merge_requests/680 as a patch. +And the TF patch required after that from https://github.com/tensorflow/tensorflow/pull/52940 + +Author: Alexander Grund (TU Dresden) + +diff --git a/third_party/eigen3/fix-ppc-gemm.patch b/third_party/eigen3/fix-ppc-gemm.patch +new file mode 100644 +index 00000000000..a7b3e887178 +--- /dev/null ++++ b/third_party/eigen3/fix-ppc-gemm.patch +@@ -0,0 +1,3083 @@ ++commit 365a40f85eb6755752930e1dca8f160611be5e28 ++Author: Chip Kerchner ++Date: Thu Oct 28 21:59:41 2021 +0000 ++ ++ Invert rows and depth in non-vectorized portion of packing (PowerPC). ++ ++diff --git a/Eigen/src/Core/arch/AltiVec/Complex.h b/Eigen/src/Core/arch/AltiVec/Complex.h ++index b603dff4e..965f4911a 100644 ++--- a/Eigen/src/Core/arch/AltiVec/Complex.h +++++ b/Eigen/src/Core/arch/AltiVec/Complex.h ++@@ -127,20 +127,20 @@ template<> EIGEN_STRONG_INLINE Packet2cf ploaddup(const std::complex< ++ template<> EIGEN_STRONG_INLINE void pstore >(std::complex * to, const Packet2cf& from) { pstore((float*)to, from.v); } ++ template<> EIGEN_STRONG_INLINE void pstoreu >(std::complex * to, const Packet2cf& from) { pstoreu((float*)to, from.v); } ++ ++-EIGEN_STRONG_INLINE Packet2cf pload2(const std::complex* from0, const std::complex* from1) +++EIGEN_STRONG_INLINE Packet2cf pload2(const std::complex& from0, const std::complex& from1) ++ { ++ Packet4f res0, res1; ++ #ifdef __VSX__ ++- __asm__ ("lxsdx %x0,%y1" : "=wa" (res0) : "Z" (*from0)); ++- __asm__ ("lxsdx %x0,%y1" : "=wa" (res1) : "Z" (*from1)); +++ __asm__ ("lxsdx %x0,%y1" : "=wa" (res0) : "Z" (from0)); +++ __asm__ ("lxsdx %x0,%y1" : "=wa" (res1) : "Z" (from1)); ++ #ifdef _BIG_ENDIAN ++ __asm__ ("xxpermdi %x0, %x1, %x2, 0" : "=wa" (res0) : "wa" (res0), "wa" (res1)); ++ #else ++ __asm__ ("xxpermdi %x0, %x2, %x1, 0" : "=wa" (res0) : "wa" (res0), "wa" (res1)); ++ #endif ++ #else ++- *reinterpret_cast *>(&res0) = *from0; ++- *reinterpret_cast *>(&res1) = *from1; +++ *reinterpret_cast *>(&res0) = from0; +++ *reinterpret_cast *>(&res1) = from1; ++ res0 = vec_perm(res0, res1, p16uc_TRANSPOSE64_HI); ++ #endif ++ return Packet2cf(res0); ++diff --git a/Eigen/src/Core/arch/AltiVec/MatrixProduct.h b/Eigen/src/Core/arch/AltiVec/MatrixProduct.h ++index 3f79b97df..8feb88ea7 100644 ++--- a/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +++++ b/Eigen/src/Core/arch/AltiVec/MatrixProduct.h ++@@ -164,24 +164,23 @@ EIGEN_STRONG_INLINE void symm_pack_complex_rhs_helper(std::complex* bloc ++ ++ rir += vectorDelta; ++ } ++- if (j < cols) +++ +++ for(; j < cols; j++) ++ { ++- rii = rir + ((cols - j) * rows); +++ rii = rir + rows; ++ ++ for(Index i = k2; i < depth; i++) ++ { ++- Index k = j; ++- for(; k < cols; k++) ++- { ++- std::complex v = getAdjointVal(i, k, rhs); +++ std::complex v = getAdjointVal(i, j, rhs); ++ ++- blockBf[rir] = v.real(); ++- blockBf[rii] = v.imag(); +++ blockBf[rir] = v.real(); +++ blockBf[rii] = v.imag(); ++ ++- rir += 1; ++- rii += 1; ++- } +++ rir += 1; +++ rii += 1; ++ } +++ +++ rir += rows; ++ } ++ } ++ ++@@ -260,19 +259,15 @@ EIGEN_STRONG_INLINE void symm_pack_rhs_helper(Scalar* blockB, const Scalar* _rhs ++ } ++ } ++ ++- if (j < cols) +++ for(; j < cols; j++) ++ { ++ for(Index i = k2; i < depth; i++) ++ { ++- Index k = j; ++- for(; k < cols; k++) ++- { ++- if(k <= i) ++- blockB[ri] = rhs(i, k); ++- else ++- blockB[ri] = rhs(k, i); ++- ri += 1; ++- } +++ if(j <= i) +++ blockB[ri] = rhs(i, j); +++ else +++ blockB[ri] = rhs(j, i); +++ ri += 1; ++ } ++ } ++ } ++@@ -406,22 +401,18 @@ struct symm_pack_lhs ++ * and offset and behaves accordingly. ++ **/ ++ ++-template ++-EIGEN_ALWAYS_INLINE void storeBlock(Scalar* to, PacketBlock& block) ++-{ ++- const Index size = 16 / sizeof(Scalar); ++- pstore(to + (0 * size), block.packet[0]); ++- pstore(to + (1 * size), block.packet[1]); ++- pstore(to + (2 * size), block.packet[2]); ++- pstore(to + (3 * size), block.packet[3]); ++-} ++- ++-template ++-EIGEN_ALWAYS_INLINE void storeBlock(Scalar* to, PacketBlock& block) +++template +++EIGEN_ALWAYS_INLINE void storeBlock(Scalar* to, PacketBlock& block) ++ { ++ const Index size = 16 / sizeof(Scalar); ++ pstore(to + (0 * size), block.packet[0]); ++ pstore(to + (1 * size), block.packet[1]); +++ if (N > 2) { +++ pstore(to + (2 * size), block.packet[2]); +++ } +++ if (N > 3) { +++ pstore(to + (3 * size), block.packet[3]); +++ } ++ } ++ ++ // General template for lhs & rhs complex packing. ++@@ -447,9 +438,9 @@ struct dhs_cpack { ++ PacketBlock cblock; ++ ++ if (UseLhs) { ++- bload(cblock, lhs, j, i); +++ bload(cblock, lhs, j, i); ++ } else { ++- bload(cblock, lhs, i, j); +++ bload(cblock, lhs, i, j); ++ } ++ ++ blockr.packet[0] = vec_perm(cblock.packet[0].v, cblock.packet[4].v, p16uc_GETREAL32); ++@@ -476,8 +467,8 @@ struct dhs_cpack { ++ ptranspose(blocki); ++ } ++ ++- storeBlock(blockAt + rir, blockr); ++- storeBlock(blockAt + rii, blocki); +++ storeBlock(blockAt + rir, blockr); +++ storeBlock(blockAt + rii, blocki); ++ ++ rir += 4*vectorSize; ++ rii += 4*vectorSize; ++@@ -497,21 +488,12 @@ struct dhs_cpack { ++ cblock.packet[1] = lhs.template loadPacket(i, j + 2); ++ } ++ } else { ++- std::complex lhs0, lhs1; ++ if (UseLhs) { ++- lhs0 = lhs(j + 0, i); ++- lhs1 = lhs(j + 1, i); ++- cblock.packet[0] = pload2(&lhs0, &lhs1); ++- lhs0 = lhs(j + 2, i); ++- lhs1 = lhs(j + 3, i); ++- cblock.packet[1] = pload2(&lhs0, &lhs1); +++ cblock.packet[0] = pload2(lhs(j + 0, i), lhs(j + 1, i)); +++ cblock.packet[1] = pload2(lhs(j + 2, i), lhs(j + 3, i)); ++ } else { ++- lhs0 = lhs(i, j + 0); ++- lhs1 = lhs(i, j + 1); ++- cblock.packet[0] = pload2(&lhs0, &lhs1); ++- lhs0 = lhs(i, j + 2); ++- lhs1 = lhs(i, j + 3); ++- cblock.packet[1] = pload2(&lhs0, &lhs1); +++ cblock.packet[0] = pload2(lhs(i, j + 0), lhs(i, j + 1)); +++ cblock.packet[1] = pload2(lhs(i, j + 2), lhs(i, j + 3)); ++ } ++ } ++ ++@@ -533,34 +515,50 @@ struct dhs_cpack { ++ rir += ((PanelMode) ? (vectorSize*(2*stride - depth)) : vectorDelta); ++ } ++ ++- if (j < rows) +++ if (!UseLhs) ++ { ++- if(PanelMode) rir += (offset*(rows - j - vectorSize)); ++- rii = rir + (((PanelMode) ? stride : depth) * (rows - j)); +++ if(PanelMode) rir -= (offset*(vectorSize - 1)); ++ ++- for(Index i = 0; i < depth; i++) +++ for(; j < rows; j++) ++ { ++- Index k = j; ++- for(; k < rows; k++) +++ rii = rir + ((PanelMode) ? stride : depth); +++ +++ for(Index i = 0; i < depth; i++) ++ { ++- if (UseLhs) { +++ blockAt[rir] = lhs(i, j).real(); +++ +++ if(Conjugate) +++ blockAt[rii] = -lhs(i, j).imag(); +++ else +++ blockAt[rii] = lhs(i, j).imag(); +++ +++ rir += 1; +++ rii += 1; +++ } +++ +++ rir += ((PanelMode) ? (2*stride - depth) : depth); +++ } +++ } else { +++ if (j < rows) +++ { +++ if(PanelMode) rir += (offset*(rows - j - vectorSize)); +++ rii = rir + (((PanelMode) ? stride : depth) * (rows - j)); +++ +++ for(Index i = 0; i < depth; i++) +++ { +++ Index k = j; +++ for(; k < rows; k++) +++ { ++ blockAt[rir] = lhs(k, i).real(); ++ ++ if(Conjugate) ++ blockAt[rii] = -lhs(k, i).imag(); ++ else ++ blockAt[rii] = lhs(k, i).imag(); ++- } else { ++- blockAt[rir] = lhs(i, k).real(); ++ ++- if(Conjugate) ++- blockAt[rii] = -lhs(i, k).imag(); ++- else ++- blockAt[rii] = lhs(i, k).imag(); +++ rir += 1; +++ rii += 1; ++ } ++- ++- rir += 1; ++- rii += 1; ++ } ++ } ++ } ++@@ -586,16 +584,16 @@ struct dhs_pack{ ++ PacketBlock block; ++ ++ if (UseLhs) { ++- bload(block, lhs, j, i); +++ bload(block, lhs, j, i); ++ } else { ++- bload(block, lhs, i, j); +++ bload(block, lhs, i, j); ++ } ++ if(((StorageOrder == RowMajor) && UseLhs) || ((StorageOrder == ColMajor) && !UseLhs)) ++ { ++ ptranspose(block); ++ } ++ ++- storeBlock(blockA + ri, block); +++ storeBlock(blockA + ri, block); ++ ++ ri += 4*vectorSize; ++ } ++@@ -630,21 +628,33 @@ struct dhs_pack{ ++ if(PanelMode) ri += vectorSize*(stride - offset - depth); ++ } ++ ++- if (j < rows) +++ if (!UseLhs) ++ { ++- if(PanelMode) ri += offset*(rows - j); +++ if(PanelMode) ri += offset; ++ ++- for(Index i = 0; i < depth; i++) +++ for(; j < rows; j++) ++ { ++- Index k = j; ++- for(; k < rows; k++) +++ for(Index i = 0; i < depth; i++) ++ { ++- if (UseLhs) { +++ blockA[ri] = lhs(i, j); +++ ri += 1; +++ } +++ +++ if(PanelMode) ri += stride - depth; +++ } +++ } else { +++ if (j < rows) +++ { +++ if(PanelMode) ri += offset*(rows - j); +++ +++ for(Index i = 0; i < depth; i++) +++ { +++ Index k = j; +++ for(; k < rows; k++) +++ { ++ blockA[ri] = lhs(k, i); ++- } else { ++- blockA[ri] = lhs(i, k); +++ ri += 1; ++ } ++- ri += 1; ++ } ++ } ++ } ++@@ -680,7 +690,7 @@ struct dhs_pack(j, i + 1); ++ } ++ ++- storeBlock(blockA + ri, block); +++ storeBlock(blockA + ri, block); ++ ++ ri += 2*vectorSize; ++ } ++@@ -757,7 +767,7 @@ struct dhs_pack(i + 1, j + 0); //[b1 b2] ++ block.packet[3] = rhs.template loadPacket(i + 1, j + 2); //[b3 b4] ++ ++- storeBlock(blockB + ri, block); +++ storeBlock(blockB + ri, block); ++ } ++ ++ ri += 4*vectorSize; ++@@ -788,19 +798,17 @@ struct dhs_pack(blockAt + rir, blockr); ++- storeBlock(blockAt + rii, blocki); +++ storeBlock(blockAt + rir, blockr); +++ storeBlock(blockAt + rii, blocki); ++ ++ rir += 2*vectorSize; ++ rii += 2*vectorSize; ++@@ -941,7 +949,7 @@ struct dhs_cpack cblock; ++ PacketBlock blockr, blocki; ++ ++- bload(cblock, rhs, i, j); +++ bload(cblock, rhs, i, j); ++ ++ blockr.packet[0] = vec_perm(cblock.packet[0].v, cblock.packet[1].v, p16uc_GETREAL64); ++ blockr.packet[1] = vec_perm(cblock.packet[2].v, cblock.packet[3].v, p16uc_GETREAL64); ++@@ -955,8 +963,8 @@ struct dhs_cpack(blockBt + rir, blockr); ++- storeBlock(blockBt + rii, blocki); +++ storeBlock(blockBt + rir, blockr); +++ storeBlock(blockBt + rii, blocki); ++ ++ rir += 2*vectorSize; ++ rii += 2*vectorSize; ++@@ -965,27 +973,26 @@ struct dhs_cpack ++-EIGEN_ALWAYS_INLINE void pger_common(PacketBlock* acc, const Packet& lhsV, const Packet* rhsV) ++-{ ++- if(NegativeAccumulate) ++- { ++- acc->packet[0] = vec_nmsub(lhsV, rhsV[0], acc->packet[0]); ++- acc->packet[1] = vec_nmsub(lhsV, rhsV[1], acc->packet[1]); ++- acc->packet[2] = vec_nmsub(lhsV, rhsV[2], acc->packet[2]); ++- acc->packet[3] = vec_nmsub(lhsV, rhsV[3], acc->packet[3]); ++- } else { ++- acc->packet[0] = vec_madd(lhsV, rhsV[0], acc->packet[0]); ++- acc->packet[1] = vec_madd(lhsV, rhsV[1], acc->packet[1]); ++- acc->packet[2] = vec_madd(lhsV, rhsV[2], acc->packet[2]); ++- acc->packet[3] = vec_madd(lhsV, rhsV[3], acc->packet[3]); ++- } ++-} ++- ++-template ++-EIGEN_ALWAYS_INLINE void pger_common(PacketBlock* acc, const Packet& lhsV, const Packet* rhsV) +++template +++EIGEN_ALWAYS_INLINE void pger_common(PacketBlock* acc, const Packet& lhsV, const Packet* rhsV) ++ { ++ if(NegativeAccumulate) ++ { ++ acc->packet[0] = vec_nmsub(lhsV, rhsV[0], acc->packet[0]); +++ if (N > 1) { +++ acc->packet[1] = vec_nmsub(lhsV, rhsV[1], acc->packet[1]); +++ } +++ if (N > 2) { +++ acc->packet[2] = vec_nmsub(lhsV, rhsV[2], acc->packet[2]); +++ } +++ if (N > 3) { +++ acc->packet[3] = vec_nmsub(lhsV, rhsV[3], acc->packet[3]); +++ } ++ } else { ++ acc->packet[0] = vec_madd(lhsV, rhsV[0], acc->packet[0]); +++ if (N > 1) { +++ acc->packet[1] = vec_madd(lhsV, rhsV[1], acc->packet[1]); +++ } +++ if (N > 2) { +++ acc->packet[2] = vec_madd(lhsV, rhsV[2], acc->packet[2]); +++ } +++ if (N > 3) { +++ acc->packet[3] = vec_madd(lhsV, rhsV[3], acc->packet[3]); +++ } ++ } ++ } ++ ++@@ -1028,11 +1036,11 @@ EIGEN_ALWAYS_INLINE void pger(PacketBlock* acc, const Scalar* lhs, con ++ { ++ Packet lhsV = pload(lhs); ++ ++- pger_common(acc, lhsV, rhsV); +++ pger_common(acc, lhsV, rhsV); ++ } ++ ++-template ++-EIGEN_ALWAYS_INLINE void loadPacketRemaining(const Scalar* lhs, Packet &lhsV, Index remaining_rows) +++template +++EIGEN_ALWAYS_INLINE void loadPacketRemaining(const Scalar* lhs, Packet &lhsV) ++ { ++ #ifdef _ARCH_PWR9 ++ lhsV = vec_xl_len((Scalar *)lhs, remaining_rows * sizeof(Scalar)); ++@@ -1044,32 +1052,32 @@ EIGEN_ALWAYS_INLINE void loadPacketRemaining(const Scalar* lhs, Packet &lhsV, In ++ #endif ++ } ++ ++-template ++-EIGEN_ALWAYS_INLINE void pger(PacketBlock* acc, const Scalar* lhs, const Packet* rhsV, Index remaining_rows) +++template +++EIGEN_ALWAYS_INLINE void pger(PacketBlock* acc, const Scalar* lhs, const Packet* rhsV) ++ { ++ Packet lhsV; ++- loadPacketRemaining(lhs, lhsV, remaining_rows); +++ loadPacketRemaining(lhs, lhsV); ++ ++- pger_common(acc, lhsV, rhsV); +++ pger_common(acc, lhsV, rhsV); ++ } ++ ++ // 512-bits rank1-update of complex acc. It takes decoupled accumulators as entries. It also takes cares of mixed types real * complex and complex * real. ++ template ++ EIGEN_ALWAYS_INLINE void pgerc_common(PacketBlock* accReal, PacketBlock* accImag, const Packet &lhsV, const Packet &lhsVi, const Packet* rhsV, const Packet* rhsVi) ++ { ++- pger_common(accReal, lhsV, rhsV); +++ pger_common(accReal, lhsV, rhsV); ++ if(LhsIsReal) ++ { ++- pger_common(accImag, lhsV, rhsVi); +++ pger_common(accImag, lhsV, rhsVi); ++ EIGEN_UNUSED_VARIABLE(lhsVi); ++ } else { ++ if (!RhsIsReal) { ++- pger_common(accReal, lhsVi, rhsVi); ++- pger_common(accImag, lhsV, rhsVi); +++ pger_common(accReal, lhsVi, rhsVi); +++ pger_common(accImag, lhsV, rhsVi); ++ } else { ++ EIGEN_UNUSED_VARIABLE(rhsVi); ++ } ++- pger_common(accImag, lhsVi, rhsV); +++ pger_common(accImag, lhsVi, rhsV); ++ } ++ } ++ ++@@ -1084,8 +1092,8 @@ EIGEN_ALWAYS_INLINE void pgerc(PacketBlock* accReal, PacketBlock(accReal, accImag, lhsV, lhsVi, rhsV, rhsVi); ++ } ++ ++-template ++-EIGEN_ALWAYS_INLINE void loadPacketRemaining(const Scalar* lhs_ptr, const Scalar* lhs_ptr_imag, Packet &lhsV, Packet &lhsVi, Index remaining_rows) +++template +++EIGEN_ALWAYS_INLINE void loadPacketRemaining(const Scalar* lhs_ptr, const Scalar* lhs_ptr_imag, Packet &lhsV, Packet &lhsVi) ++ { ++ #ifdef _ARCH_PWR9 ++ lhsV = vec_xl_len((Scalar *)lhs_ptr, remaining_rows * sizeof(Scalar)); ++@@ -1101,11 +1109,11 @@ EIGEN_ALWAYS_INLINE void loadPacketRemaining(const Scalar* lhs_ptr, const Scalar ++ #endif ++ } ++ ++-template ++-EIGEN_ALWAYS_INLINE void pgerc(PacketBlock* accReal, PacketBlock* accImag, const Scalar* lhs_ptr, const Scalar* lhs_ptr_imag, const Packet* rhsV, const Packet* rhsVi, Index remaining_rows) +++template +++EIGEN_ALWAYS_INLINE void pgerc(PacketBlock* accReal, PacketBlock* accImag, const Scalar* lhs_ptr, const Scalar* lhs_ptr_imag, const Packet* rhsV, const Packet* rhsVi) ++ { ++ Packet lhsV, lhsVi; ++- loadPacketRemaining(lhs_ptr, lhs_ptr_imag, lhsV, lhsVi, remaining_rows); +++ loadPacketRemaining(lhs_ptr, lhs_ptr_imag, lhsV, lhsVi); ++ ++ pgerc_common(accReal, accImag, lhsV, lhsVi, rhsV, rhsVi); ++ } ++@@ -1117,132 +1125,142 @@ EIGEN_ALWAYS_INLINE Packet ploadLhs(const Scalar* lhs) ++ } ++ ++ // Zero the accumulator on PacketBlock. ++-template ++-EIGEN_ALWAYS_INLINE void bsetzero(PacketBlock& acc) ++-{ ++- acc.packet[0] = pset1((Scalar)0); ++- acc.packet[1] = pset1((Scalar)0); ++- acc.packet[2] = pset1((Scalar)0); ++- acc.packet[3] = pset1((Scalar)0); ++-} ++- ++-template ++-EIGEN_ALWAYS_INLINE void bsetzero(PacketBlock& acc) +++template +++EIGEN_ALWAYS_INLINE void bsetzero(PacketBlock& acc) ++ { ++ acc.packet[0] = pset1((Scalar)0); +++ if (N > 1) { +++ acc.packet[1] = pset1((Scalar)0); +++ } +++ if (N > 2) { +++ acc.packet[2] = pset1((Scalar)0); +++ } +++ if (N > 3) { +++ acc.packet[3] = pset1((Scalar)0); +++ } ++ } ++ ++ // Scale the PacketBlock vectors by alpha. ++-template ++-EIGEN_ALWAYS_INLINE void bscale(PacketBlock& acc, PacketBlock& accZ, const Packet& pAlpha) ++-{ ++- acc.packet[0] = pmadd(pAlpha, accZ.packet[0], acc.packet[0]); ++- acc.packet[1] = pmadd(pAlpha, accZ.packet[1], acc.packet[1]); ++- acc.packet[2] = pmadd(pAlpha, accZ.packet[2], acc.packet[2]); ++- acc.packet[3] = pmadd(pAlpha, accZ.packet[3], acc.packet[3]); ++-} ++- ++-template ++-EIGEN_ALWAYS_INLINE void bscale(PacketBlock& acc, PacketBlock& accZ, const Packet& pAlpha) +++template +++EIGEN_ALWAYS_INLINE void bscale(PacketBlock& acc, PacketBlock& accZ, const Packet& pAlpha) ++ { ++ acc.packet[0] = pmadd(pAlpha, accZ.packet[0], acc.packet[0]); +++ if (N > 1) { +++ acc.packet[1] = pmadd(pAlpha, accZ.packet[1], acc.packet[1]); +++ } +++ if (N > 2) { +++ acc.packet[2] = pmadd(pAlpha, accZ.packet[2], acc.packet[2]); +++ } +++ if (N > 3) { +++ acc.packet[3] = pmadd(pAlpha, accZ.packet[3], acc.packet[3]); +++ } ++ } ++ ++-template ++-EIGEN_ALWAYS_INLINE void bscalec_common(PacketBlock& acc, PacketBlock& accZ, const Packet& pAlpha) ++-{ ++- acc.packet[0] = pmul(accZ.packet[0], pAlpha); ++- acc.packet[1] = pmul(accZ.packet[1], pAlpha); ++- acc.packet[2] = pmul(accZ.packet[2], pAlpha); ++- acc.packet[3] = pmul(accZ.packet[3], pAlpha); ++-} ++- ++-template ++-EIGEN_ALWAYS_INLINE void bscalec_common(PacketBlock& acc, PacketBlock& accZ, const Packet& pAlpha) +++template +++EIGEN_ALWAYS_INLINE void bscalec_common(PacketBlock& acc, PacketBlock& accZ, const Packet& pAlpha) ++ { ++ acc.packet[0] = pmul(accZ.packet[0], pAlpha); +++ if (N > 1) { +++ acc.packet[1] = pmul(accZ.packet[1], pAlpha); +++ } +++ if (N > 2) { +++ acc.packet[2] = pmul(accZ.packet[2], pAlpha); +++ } +++ if (N > 3) { +++ acc.packet[3] = pmul(accZ.packet[3], pAlpha); +++ } ++ } ++ ++ // Complex version of PacketBlock scaling. ++ template ++ EIGEN_ALWAYS_INLINE void bscalec(PacketBlock& aReal, PacketBlock& aImag, const Packet& bReal, const Packet& bImag, PacketBlock& cReal, PacketBlock& cImag) ++ { ++- bscalec_common(cReal, aReal, bReal); +++ bscalec_common(cReal, aReal, bReal); ++ ++- bscalec_common(cImag, aImag, bReal); +++ bscalec_common(cImag, aImag, bReal); ++ ++- pger_common(&cReal, bImag, aImag.packet); +++ pger_common(&cReal, bImag, aImag.packet); ++ ++- pger_common(&cImag, bImag, aReal.packet); +++ pger_common(&cImag, bImag, aReal.packet); ++ } ++ ++-template ++-EIGEN_ALWAYS_INLINE void band(PacketBlock& acc, const Packet& pMask) +++template +++EIGEN_ALWAYS_INLINE void band(PacketBlock& acc, const Packet& pMask) ++ { ++ acc.packet[0] = pand(acc.packet[0], pMask); ++- acc.packet[1] = pand(acc.packet[1], pMask); ++- acc.packet[2] = pand(acc.packet[2], pMask); ++- acc.packet[3] = pand(acc.packet[3], pMask); +++ if (N > 1) { +++ acc.packet[1] = pand(acc.packet[1], pMask); +++ } +++ if (N > 2) { +++ acc.packet[2] = pand(acc.packet[2], pMask); +++ } +++ if (N > 3) { +++ acc.packet[3] = pand(acc.packet[3], pMask); +++ } ++ } ++ ++-template ++-EIGEN_ALWAYS_INLINE void bscalec(PacketBlock& aReal, PacketBlock& aImag, const Packet& bReal, const Packet& bImag, PacketBlock& cReal, PacketBlock& cImag, const Packet& pMask) +++template +++EIGEN_ALWAYS_INLINE void bscalec(PacketBlock& aReal, PacketBlock& aImag, const Packet& bReal, const Packet& bImag, PacketBlock& cReal, PacketBlock& cImag, const Packet& pMask) ++ { ++- band(aReal, pMask); ++- band(aImag, pMask); +++ band(aReal, pMask); +++ band(aImag, pMask); ++ ++- bscalec(aReal, aImag, bReal, bImag, cReal, cImag); +++ bscalec(aReal, aImag, bReal, bImag, cReal, cImag); ++ } ++ ++ // Load a PacketBlock, the N parameters make tunning gemm easier so we can add more accumulators as needed. ++-template ++-EIGEN_ALWAYS_INLINE void bload(PacketBlock& acc, const DataMapper& res, Index row, Index col) ++-{ ++- if (StorageOrder == RowMajor) { ++- acc.packet[0] = res.template loadPacket(row + 0, col + N*accCols); ++- acc.packet[1] = res.template loadPacket(row + 1, col + N*accCols); ++- acc.packet[2] = res.template loadPacket(row + 2, col + N*accCols); ++- acc.packet[3] = res.template loadPacket(row + 3, col + N*accCols); ++- } else { ++- acc.packet[0] = res.template loadPacket(row + N*accCols, col + 0); ++- acc.packet[1] = res.template loadPacket(row + N*accCols, col + 1); ++- acc.packet[2] = res.template loadPacket(row + N*accCols, col + 2); ++- acc.packet[3] = res.template loadPacket(row + N*accCols, col + 3); ++- } ++-} ++- ++-// An overload of bload when you have a PacketBLock with 8 vectors. ++-template ++-EIGEN_ALWAYS_INLINE void bload(PacketBlock& acc, const DataMapper& res, Index row, Index col) +++template +++EIGEN_ALWAYS_INLINE void bload(PacketBlock& acc, const DataMapper& res, Index row, Index col) ++ { ++ if (StorageOrder == RowMajor) { ++- acc.packet[0] = res.template loadPacket(row + 0, col + N*accCols); ++- acc.packet[1] = res.template loadPacket(row + 1, col + N*accCols); ++- acc.packet[2] = res.template loadPacket(row + 2, col + N*accCols); ++- acc.packet[3] = res.template loadPacket(row + 3, col + N*accCols); ++- acc.packet[4] = res.template loadPacket(row + 0, col + (N+1)*accCols); ++- acc.packet[5] = res.template loadPacket(row + 1, col + (N+1)*accCols); ++- acc.packet[6] = res.template loadPacket(row + 2, col + (N+1)*accCols); ++- acc.packet[7] = res.template loadPacket(row + 3, col + (N+1)*accCols); +++ acc.packet[0] = res.template loadPacket(row + 0, col); +++ if (N > 1) { +++ acc.packet[1] = res.template loadPacket(row + 1, col); +++ } +++ if (N > 2) { +++ acc.packet[2] = res.template loadPacket(row + 2, col); +++ } +++ if (N > 3) { +++ acc.packet[3] = res.template loadPacket(row + 3, col); +++ } +++ if (Complex) { +++ acc.packet[0+N] = res.template loadPacket(row + 0, col + accCols); +++ if (N > 1) { +++ acc.packet[1+N] = res.template loadPacket(row + 1, col + accCols); +++ } +++ if (N > 2) { +++ acc.packet[2+N] = res.template loadPacket(row + 2, col + accCols); +++ } +++ if (N > 3) { +++ acc.packet[3+N] = res.template loadPacket(row + 3, col + accCols); +++ } +++ } ++ } else { ++- acc.packet[0] = res.template loadPacket(row + N*accCols, col + 0); ++- acc.packet[1] = res.template loadPacket(row + N*accCols, col + 1); ++- acc.packet[2] = res.template loadPacket(row + N*accCols, col + 2); ++- acc.packet[3] = res.template loadPacket(row + N*accCols, col + 3); ++- acc.packet[4] = res.template loadPacket(row + (N+1)*accCols, col + 0); ++- acc.packet[5] = res.template loadPacket(row + (N+1)*accCols, col + 1); ++- acc.packet[6] = res.template loadPacket(row + (N+1)*accCols, col + 2); ++- acc.packet[7] = res.template loadPacket(row + (N+1)*accCols, col + 3); +++ acc.packet[0] = res.template loadPacket(row, col + 0); +++ if (N > 1) { +++ acc.packet[1] = res.template loadPacket(row, col + 1); +++ } +++ if (N > 2) { +++ acc.packet[2] = res.template loadPacket(row, col + 2); +++ } +++ if (N > 3) { +++ acc.packet[3] = res.template loadPacket(row, col + 3); +++ } +++ if (Complex) { +++ acc.packet[0+N] = res.template loadPacket(row + accCols, col + 0); +++ if (N > 1) { +++ acc.packet[1+N] = res.template loadPacket(row + accCols, col + 1); +++ } +++ if (N > 2) { +++ acc.packet[2+N] = res.template loadPacket(row + accCols, col + 2); +++ } +++ if (N > 3) { +++ acc.packet[3+N] = res.template loadPacket(row + accCols, col + 3); +++ } +++ } ++ } ++ } ++ ++-template ++-EIGEN_ALWAYS_INLINE void bload(PacketBlock& acc, const DataMapper& res, Index row, Index col) ++-{ ++- acc.packet[0] = res.template loadPacket(row + N*accCols, col + 0); ++- acc.packet[1] = res.template loadPacket(row + (N+1)*accCols, col + 0); ++-} ++- ++ const static Packet4i mask41 = { -1, 0, 0, 0 }; ++ const static Packet4i mask42 = { -1, -1, 0, 0 }; ++ const static Packet4i mask43 = { -1, -1, -1, 0 }; ++@@ -1273,22 +1291,44 @@ EIGEN_ALWAYS_INLINE Packet2d bmask(const int remaining_rows) ++ } ++ } ++ ++-template ++-EIGEN_ALWAYS_INLINE void bscale(PacketBlock& acc, PacketBlock& accZ, const Packet& pAlpha, const Packet& pMask) +++template +++EIGEN_ALWAYS_INLINE void bscale(PacketBlock& acc, PacketBlock& accZ, const Packet& pAlpha, const Packet& pMask) ++ { ++- band(accZ, pMask); +++ band(accZ, pMask); ++ ++- bscale(acc, accZ, pAlpha); +++ bscale(acc, accZ, pAlpha); ++ } ++ ++-template ++-EIGEN_ALWAYS_INLINE void pbroadcast4_old(const __UNPACK_TYPE__(Packet)* a, Packet& a0, Packet& a1, Packet& a2, Packet& a3) +++template EIGEN_ALWAYS_INLINE void +++pbroadcastN_old(const __UNPACK_TYPE__(Packet) *a, +++ Packet& a0, Packet& a1, Packet& a2, Packet& a3) +++{ +++ a0 = pset1(a[0]); +++ if (N > 1) { +++ a1 = pset1(a[1]); +++ } else { +++ EIGEN_UNUSED_VARIABLE(a1); +++ } +++ if (N > 2) { +++ a2 = pset1(a[2]); +++ } else { +++ EIGEN_UNUSED_VARIABLE(a2); +++ } +++ if (N > 3) { +++ a3 = pset1(a[3]); +++ } else { +++ EIGEN_UNUSED_VARIABLE(a3); +++ } +++} +++ +++template<> +++EIGEN_ALWAYS_INLINE void pbroadcastN_old(const float* a, Packet4f& a0, Packet4f& a1, Packet4f& a2, Packet4f& a3) ++ { ++- pbroadcast4(a, a0, a1, a2, a3); +++ pbroadcast4(a, a0, a1, a2, a3); ++ } ++ ++ template<> ++-EIGEN_ALWAYS_INLINE void pbroadcast4_old(const double* a, Packet2d& a0, Packet2d& a1, Packet2d& a2, Packet2d& a3) +++EIGEN_ALWAYS_INLINE void pbroadcastN_old(const double* a, Packet2d& a0, Packet2d& a1, Packet2d& a2, Packet2d& a3) ++ { ++ a1 = pload(a); ++ a3 = pload(a + 2); ++@@ -1298,89 +1338,96 @@ EIGEN_ALWAYS_INLINE void pbroadcast4_old(const double* a, Packet2d& a0 ++ a3 = vec_splat(a3, 1); ++ } ++ ++-// PEEL loop factor. ++-#define PEEL 7 ++- ++-template ++-EIGEN_ALWAYS_INLINE void MICRO_EXTRA_COL( ++- const Scalar* &lhs_ptr, ++- const Scalar* &rhs_ptr, ++- PacketBlock &accZero, ++- Index remaining_rows, ++- Index remaining_cols) +++template EIGEN_ALWAYS_INLINE void +++pbroadcastN(const __UNPACK_TYPE__(Packet) *a, +++ Packet& a0, Packet& a1, Packet& a2, Packet& a3) ++ { ++- Packet rhsV[1]; ++- rhsV[0] = pset1(rhs_ptr[0]); ++- pger<1,Scalar, Packet, false>(&accZero, lhs_ptr, rhsV); ++- lhs_ptr += remaining_rows; ++- rhs_ptr += remaining_cols; +++ a0 = pset1(a[0]); +++ if (N > 1) { +++ a1 = pset1(a[1]); +++ } else { +++ EIGEN_UNUSED_VARIABLE(a1); +++ } +++ if (N > 2) { +++ a2 = pset1(a[2]); +++ } else { +++ EIGEN_UNUSED_VARIABLE(a2); +++ } +++ if (N > 3) { +++ a3 = pset1(a[3]); +++ } else { +++ EIGEN_UNUSED_VARIABLE(a3); +++ } ++ } ++ ++-template ++-EIGEN_STRONG_INLINE void gemm_extra_col( ++- const DataMapper& res, ++- const Scalar* lhs_base, ++- const Scalar* rhs_base, ++- Index depth, ++- Index strideA, ++- Index offsetA, ++- Index row, ++- Index col, ++- Index remaining_rows, ++- Index remaining_cols, ++- const Packet& pAlpha) +++template<> EIGEN_ALWAYS_INLINE void +++pbroadcastN(const float *a, +++ Packet4f& a0, Packet4f& a1, Packet4f& a2, Packet4f& a3) ++ { ++- const Scalar* rhs_ptr = rhs_base; ++- const Scalar* lhs_ptr = lhs_base + row*strideA + remaining_rows*offsetA; ++- PacketBlock accZero; +++ a3 = pload(a); +++ a0 = vec_splat(a3, 0); +++ a1 = vec_splat(a3, 1); +++ a2 = vec_splat(a3, 2); +++ a3 = vec_splat(a3, 3); +++} ++ ++- bsetzero(accZero); +++// PEEL loop factor. +++#define PEEL 7 +++#define PEEL_ROW 7 ++ ++- Index remaining_depth = (depth & -accRows); ++- Index k = 0; ++- for(; k + PEEL <= remaining_depth; k+= PEEL) ++- { ++- EIGEN_POWER_PREFETCH(rhs_ptr); ++- EIGEN_POWER_PREFETCH(lhs_ptr); ++- for (int l = 0; l < PEEL; l++) { ++- MICRO_EXTRA_COL(lhs_ptr, rhs_ptr, accZero, remaining_rows, remaining_cols); ++- } ++- } ++- for(; k < remaining_depth; k++) ++- { ++- MICRO_EXTRA_COL(lhs_ptr, rhs_ptr, accZero, remaining_rows, remaining_cols); +++#define MICRO_UNROLL_PEEL(func) \ +++ func(0) func(1) func(2) func(3) func(4) func(5) func(6) func(7) +++ +++#define MICRO_ZERO_PEEL(peel) \ +++ if ((PEEL_ROW > peel) && (peel != 0)) { \ +++ bsetzero(accZero##peel); \ +++ } else { \ +++ EIGEN_UNUSED_VARIABLE(accZero##peel); \ ++ } ++- for(; k < depth; k++) ++- { ++- Packet rhsV[1]; ++- rhsV[0] = pset1(rhs_ptr[0]); ++- pger<1, Scalar, Packet, Index, false>(&accZero, lhs_ptr, rhsV, remaining_rows); ++- lhs_ptr += remaining_rows; ++- rhs_ptr += remaining_cols; +++ +++#define MICRO_ZERO_PEEL_ROW \ +++ MICRO_UNROLL_PEEL(MICRO_ZERO_PEEL); +++ +++#define MICRO_WORK_PEEL(peel) \ +++ if (PEEL_ROW > peel) { \ +++ pbroadcastN(rhs_ptr + (accRows * peel), rhsV##peel[0], rhsV##peel[1], rhsV##peel[2], rhsV##peel[3]); \ +++ pger(&accZero##peel, lhs_ptr + (remaining_rows * peel), rhsV##peel); \ +++ } else { \ +++ EIGEN_UNUSED_VARIABLE(rhsV##peel); \ ++ } ++ ++- accZero.packet[0] = vec_mul(pAlpha, accZero.packet[0]); ++- for(Index i = 0; i < remaining_rows; i++) { ++- res(row + i, col) += accZero.packet[0][i]; +++#define MICRO_WORK_PEEL_ROW \ +++ Packet rhsV0[4], rhsV1[4], rhsV2[4], rhsV3[4], rhsV4[4], rhsV5[4], rhsV6[4], rhsV7[4]; \ +++ MICRO_UNROLL_PEEL(MICRO_WORK_PEEL); \ +++ lhs_ptr += (remaining_rows * PEEL_ROW); \ +++ rhs_ptr += (accRows * PEEL_ROW); +++ +++#define MICRO_ADD_PEEL(peel, sum) \ +++ if (PEEL_ROW > peel) { \ +++ for (Index i = 0; i < accRows; i++) { \ +++ accZero##sum.packet[i] += accZero##peel.packet[i]; \ +++ } \ ++ } ++-} ++ ++-template +++#define MICRO_ADD_PEEL_ROW \ +++ MICRO_ADD_PEEL(4, 0) MICRO_ADD_PEEL(5, 1) MICRO_ADD_PEEL(6, 2) MICRO_ADD_PEEL(7, 3) \ +++ MICRO_ADD_PEEL(2, 0) MICRO_ADD_PEEL(3, 1) MICRO_ADD_PEEL(1, 0) +++ +++template ++ EIGEN_ALWAYS_INLINE void MICRO_EXTRA_ROW( ++ const Scalar* &lhs_ptr, ++ const Scalar* &rhs_ptr, ++- PacketBlock &accZero, ++- Index remaining_rows) +++ PacketBlock &accZero) ++ { ++ Packet rhsV[4]; ++- pbroadcast4(rhs_ptr, rhsV[0], rhsV[1], rhsV[2], rhsV[3]); ++- pger<4, Scalar, Packet, false>(&accZero, lhs_ptr, rhsV); +++ pbroadcastN(rhs_ptr, rhsV[0], rhsV[1], rhsV[2], rhsV[3]); +++ pger(&accZero, lhs_ptr, rhsV); ++ lhs_ptr += remaining_rows; ++ rhs_ptr += accRows; ++ } ++ ++-template ++-EIGEN_STRONG_INLINE void gemm_extra_row( +++template +++EIGEN_ALWAYS_INLINE void gemm_unrolled_row_iteration( ++ const DataMapper& res, ++ const Scalar* lhs_base, ++ const Scalar* rhs_base, ++@@ -1391,59 +1438,89 @@ EIGEN_STRONG_INLINE void gemm_extra_row( ++ Index col, ++ Index rows, ++ Index cols, ++- Index remaining_rows, ++ const Packet& pAlpha, ++ const Packet& pMask) ++ { ++ const Scalar* rhs_ptr = rhs_base; ++ const Scalar* lhs_ptr = lhs_base + row*strideA + remaining_rows*offsetA; ++- PacketBlock accZero, acc; +++ PacketBlock accZero0, accZero1, accZero2, accZero3, accZero4, accZero5, accZero6, accZero7, acc; ++ ++- bsetzero(accZero); +++ bsetzero(accZero0); ++ ++- Index remaining_depth = (col + accRows < cols) ? depth : (depth & -accRows); +++ Index remaining_depth = (col + quad_traits::rows < cols) ? depth : (depth & -quad_traits::rows); ++ Index k = 0; ++- for(; k + PEEL <= remaining_depth; k+= PEEL) ++- { ++- EIGEN_POWER_PREFETCH(rhs_ptr); ++- EIGEN_POWER_PREFETCH(lhs_ptr); ++- for (int l = 0; l < PEEL; l++) { ++- MICRO_EXTRA_ROW(lhs_ptr, rhs_ptr, accZero, remaining_rows); ++- } +++ if (remaining_depth >= PEEL_ROW) { +++ MICRO_ZERO_PEEL_ROW +++ do +++ { +++ EIGEN_POWER_PREFETCH(rhs_ptr); +++ EIGEN_POWER_PREFETCH(lhs_ptr); +++ MICRO_WORK_PEEL_ROW +++ } while ((k += PEEL_ROW) + PEEL_ROW <= remaining_depth); +++ MICRO_ADD_PEEL_ROW ++ } ++ for(; k < remaining_depth; k++) ++ { ++- MICRO_EXTRA_ROW(lhs_ptr, rhs_ptr, accZero, remaining_rows); +++ MICRO_EXTRA_ROW(lhs_ptr, rhs_ptr, accZero0); ++ } ++ ++ if ((remaining_depth == depth) && (rows >= accCols)) ++ { ++- for(Index j = 0; j < 4; j++) { ++- acc.packet[j] = res.template loadPacket(row, col + j); ++- } ++- bscale(acc, accZero, pAlpha, pMask); ++- res.template storePacketBlock(row, col, acc); +++ bload(acc, res, row, 0); +++ bscale(acc, accZero0, pAlpha, pMask); +++ res.template storePacketBlock(row, 0, acc); ++ } else { ++ for(; k < depth; k++) ++ { ++ Packet rhsV[4]; ++- pbroadcast4(rhs_ptr, rhsV[0], rhsV[1], rhsV[2], rhsV[3]); ++- pger<4, Scalar, Packet, Index, false>(&accZero, lhs_ptr, rhsV, remaining_rows); +++ pbroadcastN(rhs_ptr, rhsV[0], rhsV[1], rhsV[2], rhsV[3]); +++ pger(&accZero0, lhs_ptr, rhsV); ++ lhs_ptr += remaining_rows; ++ rhs_ptr += accRows; ++ } ++ ++- for(Index j = 0; j < 4; j++) { ++- accZero.packet[j] = vec_mul(pAlpha, accZero.packet[j]); ++- } ++- for(Index j = 0; j < 4; j++) { +++ for(Index j = 0; j < accRows; j++) { +++ accZero0.packet[j] = vec_mul(pAlpha, accZero0.packet[j]); ++ for(Index i = 0; i < remaining_rows; i++) { ++- res(row + i, col + j) += accZero.packet[j][i]; +++ res(row + i, j) += accZero0.packet[j][i]; ++ } ++ } ++ } ++ } ++ +++template +++EIGEN_ALWAYS_INLINE void gemm_extra_row( +++ const DataMapper& res, +++ const Scalar* lhs_base, +++ const Scalar* rhs_base, +++ Index depth, +++ Index strideA, +++ Index offsetA, +++ Index row, +++ Index col, +++ Index rows, +++ Index cols, +++ Index remaining_rows, +++ const Packet& pAlpha, +++ const Packet& pMask) +++{ +++ switch(remaining_rows) { +++ case 1: +++ gemm_unrolled_row_iteration(res, lhs_base, rhs_base, depth, strideA, offsetA, row, col, rows, cols, pAlpha, pMask); +++ break; +++ case 2: +++ if (sizeof(Scalar) == sizeof(float)) { +++ gemm_unrolled_row_iteration(res, lhs_base, rhs_base, depth, strideA, offsetA, row, col, rows, cols, pAlpha, pMask); +++ } +++ break; +++ default: +++ if (sizeof(Scalar) == sizeof(float)) { +++ gemm_unrolled_row_iteration(res, lhs_base, rhs_base, depth, strideA, offsetA, row, col, rows, cols, pAlpha, pMask); +++ } +++ break; +++ } +++} +++ ++ #define MICRO_UNROLL(func) \ ++ func(0) func(1) func(2) func(3) func(4) func(5) func(6) func(7) ++ ++@@ -1462,34 +1539,24 @@ EIGEN_STRONG_INLINE void gemm_extra_row( ++ ++ #define MICRO_WORK_ONE(iter, peel) \ ++ if (unroll_factor > iter) { \ ++- pger_common(&accZero##iter, lhsV##iter, rhsV##peel); \ +++ pger_common(&accZero##iter, lhsV##iter, rhsV##peel); \ ++ } ++ ++ #define MICRO_TYPE_PEEL4(func, func2, peel) \ ++ if (PEEL > peel) { \ ++ Packet lhsV0, lhsV1, lhsV2, lhsV3, lhsV4, lhsV5, lhsV6, lhsV7; \ ++- pbroadcast4(rhs_ptr + (accRows * peel), rhsV##peel[0], rhsV##peel[1], rhsV##peel[2], rhsV##peel[3]); \ ++- MICRO_UNROLL_WORK(func, func2, peel) \ ++- } else { \ ++- EIGEN_UNUSED_VARIABLE(rhsV##peel); \ ++- } ++- ++-#define MICRO_TYPE_PEEL1(func, func2, peel) \ ++- if (PEEL > peel) { \ ++- Packet lhsV0, lhsV1, lhsV2, lhsV3, lhsV4, lhsV5, lhsV6, lhsV7; \ ++- rhsV##peel[0] = pset1(rhs_ptr[remaining_cols * peel]); \ +++ pbroadcastN(rhs_ptr + (accRows * peel), rhsV##peel[0], rhsV##peel[1], rhsV##peel[2], rhsV##peel[3]); \ ++ MICRO_UNROLL_WORK(func, func2, peel) \ ++ } else { \ ++ EIGEN_UNUSED_VARIABLE(rhsV##peel); \ ++ } ++ ++ #define MICRO_UNROLL_TYPE_PEEL(M, func, func1, func2) \ ++- Packet rhsV0[M], rhsV1[M], rhsV2[M], rhsV3[M], rhsV4[M], rhsV5[M], rhsV6[M], rhsV7[M], rhsV8[M], rhsV9[M]; \ +++ Packet rhsV0[M], rhsV1[M], rhsV2[M], rhsV3[M], rhsV4[M], rhsV5[M], rhsV6[M], rhsV7[M]; \ ++ func(func1,func2,0); func(func1,func2,1); \ ++ func(func1,func2,2); func(func1,func2,3); \ ++ func(func1,func2,4); func(func1,func2,5); \ ++- func(func1,func2,6); func(func1,func2,7); \ ++- func(func1,func2,8); func(func1,func2,9); +++ func(func1,func2,6); func(func1,func2,7); ++ ++ #define MICRO_UNROLL_TYPE_ONE(M, func, func1, func2) \ ++ Packet rhsV0[M]; \ ++@@ -1503,17 +1570,9 @@ EIGEN_STRONG_INLINE void gemm_extra_row( ++ MICRO_UNROLL_TYPE_ONE(4, MICRO_TYPE_PEEL4, MICRO_WORK_ONE, MICRO_LOAD_ONE); \ ++ rhs_ptr += accRows; ++ ++-#define MICRO_ONE_PEEL1 \ ++- MICRO_UNROLL_TYPE_PEEL(1, MICRO_TYPE_PEEL1, MICRO_WORK_ONE, MICRO_LOAD_ONE); \ ++- rhs_ptr += (remaining_cols * PEEL); ++- ++-#define MICRO_ONE1 \ ++- MICRO_UNROLL_TYPE_ONE(1, MICRO_TYPE_PEEL1, MICRO_WORK_ONE, MICRO_LOAD_ONE); \ ++- rhs_ptr += remaining_cols; ++- ++ #define MICRO_DST_PTR_ONE(iter) \ ++ if (unroll_factor > iter) { \ ++- bsetzero(accZero##iter); \ +++ bsetzero(accZero##iter); \ ++ } else { \ ++ EIGEN_UNUSED_VARIABLE(accZero##iter); \ ++ } ++@@ -1522,7 +1581,7 @@ EIGEN_STRONG_INLINE void gemm_extra_row( ++ ++ #define MICRO_SRC_PTR_ONE(iter) \ ++ if (unroll_factor > iter) { \ ++- lhs_ptr##iter = lhs_base + ( (row/accCols) + iter )*strideA*accCols + accCols*offsetA; \ +++ lhs_ptr##iter = lhs_base + ( (row/accCols) + iter )*strideA*accCols; \ ++ } else { \ ++ EIGEN_UNUSED_VARIABLE(lhs_ptr##iter); \ ++ } ++@@ -1538,25 +1597,13 @@ EIGEN_STRONG_INLINE void gemm_extra_row( ++ ++ #define MICRO_STORE_ONE(iter) \ ++ if (unroll_factor > iter) { \ ++- acc.packet[0] = res.template loadPacket(row + iter*accCols, col + 0); \ ++- acc.packet[1] = res.template loadPacket(row + iter*accCols, col + 1); \ ++- acc.packet[2] = res.template loadPacket(row + iter*accCols, col + 2); \ ++- acc.packet[3] = res.template loadPacket(row + iter*accCols, col + 3); \ ++- bscale(acc, accZero##iter, pAlpha); \ ++- res.template storePacketBlock(row + iter*accCols, col, acc); \ +++ bload(acc, res, row + iter*accCols, 0); \ +++ bscale(acc, accZero##iter, pAlpha); \ +++ res.template storePacketBlock(row + iter*accCols, 0, acc); \ ++ } ++ ++ #define MICRO_STORE MICRO_UNROLL(MICRO_STORE_ONE) ++ ++-#define MICRO_COL_STORE_ONE(iter) \ ++- if (unroll_factor > iter) { \ ++- acc.packet[0] = res.template loadPacket(row + iter*accCols, col + 0); \ ++- bscale(acc, accZero##iter, pAlpha); \ ++- res.template storePacketBlock(row + iter*accCols, col, acc); \ ++- } ++- ++-#define MICRO_COL_STORE MICRO_UNROLL(MICRO_COL_STORE_ONE) ++- ++ template ++ EIGEN_STRONG_INLINE void gemm_unrolled_iteration( ++ const DataMapper& res, ++@@ -1564,15 +1611,13 @@ EIGEN_STRONG_INLINE void gemm_unrolled_iteration( ++ const Scalar* rhs_base, ++ Index depth, ++ Index strideA, ++- Index offsetA, ++ Index& row, ++- Index col, ++ const Packet& pAlpha) ++ { ++ const Scalar* rhs_ptr = rhs_base; ++ const Scalar* lhs_ptr0 = NULL, * lhs_ptr1 = NULL, * lhs_ptr2 = NULL, * lhs_ptr3 = NULL, * lhs_ptr4 = NULL, * lhs_ptr5 = NULL, * lhs_ptr6 = NULL, * lhs_ptr7 = NULL; ++- PacketBlock accZero0, accZero1, accZero2, accZero3, accZero4, accZero5, accZero6, accZero7; ++- PacketBlock acc; +++ PacketBlock accZero0, accZero1, accZero2, accZero3, accZero4, accZero5, accZero6, accZero7; +++ PacketBlock acc; ++ ++ MICRO_SRC_PTR ++ MICRO_DST_PTR ++@@ -1593,101 +1638,100 @@ EIGEN_STRONG_INLINE void gemm_unrolled_iteration( ++ row += unroll_factor*accCols; ++ } ++ ++-template ++-EIGEN_STRONG_INLINE void gemm_unrolled_col_iteration( +++template +++EIGEN_ALWAYS_INLINE void gemm_cols( ++ const DataMapper& res, ++- const Scalar* lhs_base, ++- const Scalar* rhs_base, +++ const Scalar* blockA, +++ const Scalar* blockB, ++ Index depth, ++ Index strideA, ++ Index offsetA, ++- Index& row, +++ Index strideB, +++ Index offsetB, ++ Index col, ++- Index remaining_cols, ++- const Packet& pAlpha) +++ Index rows, +++ Index cols, +++ Index remaining_rows, +++ const Packet& pAlpha, +++ const Packet& pMask) ++ { ++- const Scalar* rhs_ptr = rhs_base; ++- const Scalar* lhs_ptr0 = NULL, * lhs_ptr1 = NULL, * lhs_ptr2 = NULL, * lhs_ptr3 = NULL, * lhs_ptr4 = NULL, * lhs_ptr5 = NULL, * lhs_ptr6 = NULL, *lhs_ptr7 = NULL; ++- PacketBlock accZero0, accZero1, accZero2, accZero3, accZero4, accZero5, accZero6, accZero7; ++- PacketBlock acc; ++- ++- MICRO_SRC_PTR ++- MICRO_DST_PTR ++- ++- Index k = 0; ++- for(; k + PEEL <= depth; k+= PEEL) ++- { ++- EIGEN_POWER_PREFETCH(rhs_ptr); ++- MICRO_PREFETCH ++- MICRO_ONE_PEEL1 ++- } ++- for(; k < depth; k++) ++- { ++- MICRO_ONE1 ++- } ++- MICRO_COL_STORE +++ const DataMapper res3 = res.getSubMapper(0, col); ++ ++- row += unroll_factor*accCols; ++-} +++ const Scalar* rhs_base = blockB + col*strideB + accRows*offsetB; +++ const Scalar* lhs_base = blockA + accCols*offsetA; +++ Index row = 0; ++ ++-template ++-EIGEN_STRONG_INLINE void gemm_unrolled_col( ++- const DataMapper& res, ++- const Scalar* lhs_base, ++- const Scalar* rhs_base, ++- Index depth, ++- Index strideA, ++- Index offsetA, ++- Index& row, ++- Index rows, ++- Index col, ++- Index remaining_cols, ++- const Packet& pAlpha) ++-{ ++ #define MAX_UNROLL 6 ++ while(row + MAX_UNROLL*accCols <= rows) { ++- gemm_unrolled_col_iteration(res, lhs_base, rhs_base, depth, strideA, offsetA, row, col, remaining_cols, pAlpha); +++ gemm_unrolled_iteration(res3, lhs_base, rhs_base, depth, strideA, row, pAlpha); ++ } ++ switch( (rows-row)/accCols ) { ++ #if MAX_UNROLL > 7 ++ case 7: ++- gemm_unrolled_col_iteration<7, Scalar, Packet, DataMapper, Index, accCols>(res, lhs_base, rhs_base, depth, strideA, offsetA, row, col, remaining_cols, pAlpha); +++ gemm_unrolled_iteration<7, Scalar, Packet, DataMapper, Index, accRows, accCols>(res3, lhs_base, rhs_base, depth, strideA, row, pAlpha); ++ break; ++ #endif ++ #if MAX_UNROLL > 6 ++ case 6: ++- gemm_unrolled_col_iteration<6, Scalar, Packet, DataMapper, Index, accCols>(res, lhs_base, rhs_base, depth, strideA, offsetA, row, col, remaining_cols, pAlpha); +++ gemm_unrolled_iteration<6, Scalar, Packet, DataMapper, Index, accRows, accCols>(res3, lhs_base, rhs_base, depth, strideA, row, pAlpha); ++ break; ++ #endif ++ #if MAX_UNROLL > 5 ++- case 5: ++- gemm_unrolled_col_iteration<5, Scalar, Packet, DataMapper, Index, accCols>(res, lhs_base, rhs_base, depth, strideA, offsetA, row, col, remaining_cols, pAlpha); +++ case 5: +++ gemm_unrolled_iteration<5, Scalar, Packet, DataMapper, Index, accRows, accCols>(res3, lhs_base, rhs_base, depth, strideA, row, pAlpha); ++ break; ++ #endif ++ #if MAX_UNROLL > 4 ++- case 4: ++- gemm_unrolled_col_iteration<4, Scalar, Packet, DataMapper, Index, accCols>(res, lhs_base, rhs_base, depth, strideA, offsetA, row, col, remaining_cols, pAlpha); +++ case 4: +++ gemm_unrolled_iteration<4, Scalar, Packet, DataMapper, Index, accRows, accCols>(res3, lhs_base, rhs_base, depth, strideA, row, pAlpha); ++ break; ++ #endif ++ #if MAX_UNROLL > 3 ++- case 3: ++- gemm_unrolled_col_iteration<3, Scalar, Packet, DataMapper, Index, accCols>(res, lhs_base, rhs_base, depth, strideA, offsetA, row, col, remaining_cols, pAlpha); ++- break; +++ case 3: +++ gemm_unrolled_iteration<3, Scalar, Packet, DataMapper, Index, accRows, accCols>(res3, lhs_base, rhs_base, depth, strideA, row, pAlpha); +++ break; ++ #endif ++ #if MAX_UNROLL > 2 ++- case 2: ++- gemm_unrolled_col_iteration<2, Scalar, Packet, DataMapper, Index, accCols>(res, lhs_base, rhs_base, depth, strideA, offsetA, row, col, remaining_cols, pAlpha); ++- break; +++ case 2: +++ gemm_unrolled_iteration<2, Scalar, Packet, DataMapper, Index, accRows, accCols>(res3, lhs_base, rhs_base, depth, strideA, row, pAlpha); +++ break; ++ #endif ++ #if MAX_UNROLL > 1 ++- case 1: ++- gemm_unrolled_col_iteration<1, Scalar, Packet, DataMapper, Index, accCols>(res, lhs_base, rhs_base, depth, strideA, offsetA, row, col, remaining_cols, pAlpha); ++- break; +++ case 1: +++ gemm_unrolled_iteration<1, Scalar, Packet, DataMapper, Index, accRows, accCols>(res3, lhs_base, rhs_base, depth, strideA, row, pAlpha); +++ break; ++ #endif ++- default: ++- break; +++ default: +++ break; ++ } ++ #undef MAX_UNROLL +++ +++ if(remaining_rows > 0) +++ { +++ gemm_extra_row(res3, blockA, rhs_base, depth, strideA, offsetA, row, col, rows, cols, remaining_rows, pAlpha, pMask); +++ } +++} +++ +++template +++EIGEN_STRONG_INLINE void gemm_extra_cols( +++ const DataMapper& res, +++ const Scalar* blockA, +++ const Scalar* blockB, +++ Index depth, +++ Index strideA, +++ Index offsetA, +++ Index strideB, +++ Index offsetB, +++ Index col, +++ Index rows, +++ Index cols, +++ Index remaining_rows, +++ const Packet& pAlpha, +++ const Packet& pMask) +++{ +++ for (; col < cols; col++) { +++ gemm_cols(res, blockA, blockB, depth, strideA, offsetA, strideB, offsetB, col, rows, cols, remaining_rows, pAlpha, pMask); +++ } ++ } ++ ++ /**************** ++@@ -1697,7 +1741,6 @@ template(res, lhs_base, rhs_base, depth, strideA, offsetA, row, col, pAlpha); ++- } ++- switch( (rows-row)/accCols ) { ++-#if MAX_UNROLL > 7 ++- case 7: ++- gemm_unrolled_iteration<7, Scalar, Packet, DataMapper, Index, accRows, accCols>(res, lhs_base, rhs_base, depth, strideA, offsetA, row, col, pAlpha); ++- break; ++-#endif ++-#if MAX_UNROLL > 6 ++- case 6: ++- gemm_unrolled_iteration<6, Scalar, Packet, DataMapper, Index, accRows, accCols>(res, lhs_base, rhs_base, depth, strideA, offsetA, row, col, pAlpha); ++- break; ++-#endif ++-#if MAX_UNROLL > 5 ++- case 5: ++- gemm_unrolled_iteration<5, Scalar, Packet, DataMapper, Index, accRows, accCols>(res, lhs_base, rhs_base, depth, strideA, offsetA, row, col, pAlpha); ++- break; ++-#endif ++-#if MAX_UNROLL > 4 ++- case 4: ++- gemm_unrolled_iteration<4, Scalar, Packet, DataMapper, Index, accRows, accCols>(res, lhs_base, rhs_base, depth, strideA, offsetA, row, col, pAlpha); ++- break; ++-#endif ++-#if MAX_UNROLL > 3 ++- case 3: ++- gemm_unrolled_iteration<3, Scalar, Packet, DataMapper, Index, accRows, accCols>(res, lhs_base, rhs_base, depth, strideA, offsetA, row, col, pAlpha); ++- break; ++-#endif ++-#if MAX_UNROLL > 2 ++- case 2: ++- gemm_unrolled_iteration<2, Scalar, Packet, DataMapper, Index, accRows, accCols>(res, lhs_base, rhs_base, depth, strideA, offsetA, row, col, pAlpha); ++- break; ++-#endif ++-#if MAX_UNROLL > 1 ++- case 1: ++- gemm_unrolled_iteration<1, Scalar, Packet, DataMapper, Index, accRows, accCols>(res, lhs_base, rhs_base, depth, strideA, offsetA, row, col, pAlpha); ++- break; ++-#endif ++- default: ++- break; ++- } ++-#undef MAX_UNROLL ++- ++- if(remaining_rows > 0) ++- { ++- gemm_extra_row(res, lhs_base, rhs_base, depth, strideA, offsetA, row, col, rows, cols, remaining_rows, pAlpha, pMask); ++- } ++- } ++- ++- if(remaining_cols > 0) ++- { ++- const Scalar* rhs_base = blockB + col*strideB + remaining_cols*offsetB; ++- const Scalar* lhs_base = blockA; ++- ++- for(; col < cols; col++) ++- { ++- Index row = 0; ++- ++- gemm_unrolled_col(res, lhs_base, rhs_base, depth, strideA, offsetA, row, rows, col, remaining_cols, pAlpha); ++- ++- if (remaining_rows > 0) ++- { ++- gemm_extra_col(res, lhs_base, rhs_base, depth, strideA, offsetA, row, col, remaining_rows, remaining_cols, pAlpha); ++- } ++- rhs_base++; +++ gemm_cols(res, blockA, blockB, depth, strideA, offsetA, strideB, offsetB, col, rows, cols, remaining_rows, pAlpha, pMask); ++ } ++- } +++ +++ gemm_extra_cols(res, blockA, blockB, depth, strideA, offsetA, strideB, offsetB, col, rows, cols, remaining_rows, pAlpha, pMask); ++ } ++ ++ #define accColsC (accCols / 2) ++@@ -1789,117 +1763,66 @@ EIGEN_STRONG_INLINE void gemm(const DataMapper& res, const Scalar* blockA, const ++ ++ // PEEL_COMPLEX loop factor. ++ #define PEEL_COMPLEX 3 +++#define PEEL_COMPLEX_ROW 3 ++ ++-template ++-EIGEN_ALWAYS_INLINE void MICRO_COMPLEX_EXTRA_COL( ++- const Scalar* &lhs_ptr_real, const Scalar* &lhs_ptr_imag, ++- const Scalar* &rhs_ptr_real, const Scalar* &rhs_ptr_imag, ++- PacketBlock &accReal, PacketBlock &accImag, ++- Index remaining_rows, ++- Index remaining_cols) ++-{ ++- Packet rhsV[1], rhsVi[1]; ++- rhsV[0] = pset1(rhs_ptr_real[0]); ++- if(!RhsIsReal) rhsVi[0] = pset1(rhs_ptr_imag[0]); ++- pgerc<1, Scalar, Packet, ConjugateLhs, ConjugateRhs, LhsIsReal, RhsIsReal>(&accReal, &accImag, lhs_ptr_real, lhs_ptr_imag, rhsV, rhsVi); ++- lhs_ptr_real += remaining_rows; ++- if(!LhsIsReal) lhs_ptr_imag += remaining_rows; ++- else EIGEN_UNUSED_VARIABLE(lhs_ptr_imag); ++- rhs_ptr_real += remaining_cols; ++- if(!RhsIsReal) rhs_ptr_imag += remaining_cols; ++- else EIGEN_UNUSED_VARIABLE(rhs_ptr_imag); ++-} +++#define MICRO_COMPLEX_UNROLL_PEEL(func) \ +++ func(0) func(1) func(2) func(3) ++ ++-template ++-EIGEN_STRONG_INLINE void gemm_complex_extra_col( ++- const DataMapper& res, ++- const Scalar* lhs_base, ++- const Scalar* rhs_base, ++- Index depth, ++- Index strideA, ++- Index offsetA, ++- Index strideB, ++- Index row, ++- Index col, ++- Index remaining_rows, ++- Index remaining_cols, ++- const Packet& pAlphaReal, ++- const Packet& pAlphaImag) ++-{ ++- const Scalar* rhs_ptr_real = rhs_base; ++- const Scalar* rhs_ptr_imag; ++- if(!RhsIsReal) rhs_ptr_imag = rhs_base + remaining_cols*strideB; ++- else EIGEN_UNUSED_VARIABLE(rhs_ptr_imag); ++- const Scalar* lhs_ptr_real = lhs_base + advanceRows*row*strideA + remaining_rows*offsetA; ++- const Scalar* lhs_ptr_imag; ++- if(!LhsIsReal) lhs_ptr_imag = lhs_ptr_real + remaining_rows*strideA; ++- else EIGEN_UNUSED_VARIABLE(lhs_ptr_imag); ++- PacketBlock accReal, accImag; ++- PacketBlock taccReal, taccImag; ++- PacketBlock acc0, acc1; ++- ++- bsetzero(accReal); ++- bsetzero(accImag); ++- ++- Index remaining_depth = (depth & -accRows); ++- Index k = 0; ++- for(; k + PEEL_COMPLEX <= remaining_depth; k+= PEEL_COMPLEX) ++- { ++- EIGEN_POWER_PREFETCH(rhs_ptr_real); ++- if(!RhsIsReal) { ++- EIGEN_POWER_PREFETCH(rhs_ptr_imag); ++- } ++- EIGEN_POWER_PREFETCH(lhs_ptr_real); ++- if(!LhsIsReal) { ++- EIGEN_POWER_PREFETCH(lhs_ptr_imag); ++- } ++- for (int l = 0; l < PEEL_COMPLEX; l++) { ++- MICRO_COMPLEX_EXTRA_COL(lhs_ptr_real, lhs_ptr_imag, rhs_ptr_real, rhs_ptr_imag, accReal, accImag, remaining_rows, remaining_cols); ++- } ++- } ++- for(; k < remaining_depth; k++) ++- { ++- MICRO_COMPLEX_EXTRA_COL(lhs_ptr_real, lhs_ptr_imag, rhs_ptr_real, rhs_ptr_imag, accReal, accImag, remaining_rows, remaining_cols); +++#define MICRO_COMPLEX_ZERO_PEEL(peel) \ +++ if ((PEEL_COMPLEX_ROW > peel) && (peel != 0)) { \ +++ bsetzero(accReal##peel); \ +++ bsetzero(accImag##peel); \ +++ } else { \ +++ EIGEN_UNUSED_VARIABLE(accReal##peel); \ +++ EIGEN_UNUSED_VARIABLE(accImag##peel); \ ++ } ++ ++- for(; k < depth; k++) ++- { ++- Packet rhsV[1], rhsVi[1]; ++- rhsV[0] = pset1(rhs_ptr_real[0]); ++- if(!RhsIsReal) rhsVi[0] = pset1(rhs_ptr_imag[0]); ++- pgerc<1, Scalar, Packet, Index, ConjugateLhs, ConjugateRhs, LhsIsReal, RhsIsReal>(&accReal, &accImag, lhs_ptr_real, lhs_ptr_imag, rhsV, rhsVi, remaining_rows); ++- lhs_ptr_real += remaining_rows; ++- if(!LhsIsReal) lhs_ptr_imag += remaining_rows; ++- rhs_ptr_real += remaining_cols; ++- if(!RhsIsReal) rhs_ptr_imag += remaining_cols; +++#define MICRO_COMPLEX_ZERO_PEEL_ROW \ +++ MICRO_COMPLEX_UNROLL_PEEL(MICRO_COMPLEX_ZERO_PEEL); +++ +++#define MICRO_COMPLEX_WORK_PEEL(peel) \ +++ if (PEEL_COMPLEX_ROW > peel) { \ +++ pbroadcastN_old(rhs_ptr_real + (accRows * peel), rhsV##peel[0], rhsV##peel[1], rhsV##peel[2], rhsV##peel[3]); \ +++ if(!RhsIsReal) pbroadcastN_old(rhs_ptr_imag + (accRows * peel), rhsVi##peel[0], rhsVi##peel[1], rhsVi##peel[2], rhsVi##peel[3]); \ +++ pgerc(&accReal##peel, &accImag##peel, lhs_ptr_real + (remaining_rows * peel), lhs_ptr_imag + (remaining_rows * peel), rhsV##peel, rhsVi##peel); \ +++ } else { \ +++ EIGEN_UNUSED_VARIABLE(rhsV##peel); \ +++ EIGEN_UNUSED_VARIABLE(rhsVi##peel); \ ++ } ++ ++- bscalec(accReal, accImag, pAlphaReal, pAlphaImag, taccReal, taccImag); ++- bcouple_common(taccReal, taccImag, acc0, acc1); +++#define MICRO_COMPLEX_WORK_PEEL_ROW \ +++ Packet rhsV0[4], rhsV1[4], rhsV2[4], rhsV3[4]; \ +++ Packet rhsVi0[4], rhsVi1[4], rhsVi2[4], rhsVi3[4]; \ +++ MICRO_COMPLEX_UNROLL_PEEL(MICRO_COMPLEX_WORK_PEEL); \ +++ lhs_ptr_real += (remaining_rows * PEEL_COMPLEX_ROW); \ +++ if(!LhsIsReal) lhs_ptr_imag += (remaining_rows * PEEL_COMPLEX_ROW); \ +++ else EIGEN_UNUSED_VARIABLE(lhs_ptr_imag); \ +++ rhs_ptr_real += (accRows * PEEL_COMPLEX_ROW); \ +++ if(!RhsIsReal) rhs_ptr_imag += (accRows * PEEL_COMPLEX_ROW); \ +++ else EIGEN_UNUSED_VARIABLE(rhs_ptr_imag); ++ ++- if ((sizeof(Scalar) == sizeof(float)) && (remaining_rows == 1)) ++- { ++- res(row + 0, col + 0) += pfirst(acc0.packet[0]); ++- } else { ++- acc0.packet[0] += res.template loadPacket(row + 0, col + 0); ++- res.template storePacketBlock(row + 0, col + 0, acc0); ++- if(remaining_rows > accColsC) { ++- res(row + accColsC, col + 0) += pfirst(acc1.packet[0]); ++- } +++#define MICRO_COMPLEX_ADD_PEEL(peel, sum) \ +++ if (PEEL_COMPLEX_ROW > peel) { \ +++ for (Index i = 0; i < accRows; i++) { \ +++ accReal##sum.packet[i] += accReal##peel.packet[i]; \ +++ accImag##sum.packet[i] += accImag##peel.packet[i]; \ +++ } \ ++ } ++-} ++ ++-template +++#define MICRO_COMPLEX_ADD_PEEL_ROW \ +++ MICRO_COMPLEX_ADD_PEEL(2, 0) MICRO_COMPLEX_ADD_PEEL(3, 1) \ +++ MICRO_COMPLEX_ADD_PEEL(1, 0) +++ +++template ++ EIGEN_ALWAYS_INLINE void MICRO_COMPLEX_EXTRA_ROW( ++ const Scalar* &lhs_ptr_real, const Scalar* &lhs_ptr_imag, ++ const Scalar* &rhs_ptr_real, const Scalar* &rhs_ptr_imag, ++- PacketBlock &accReal, PacketBlock &accImag, ++- Index remaining_rows) +++ PacketBlock &accReal, PacketBlock &accImag) ++ { ++ Packet rhsV[4], rhsVi[4]; ++- pbroadcast4_old(rhs_ptr_real, rhsV[0], rhsV[1], rhsV[2], rhsV[3]); ++- if(!RhsIsReal) pbroadcast4_old(rhs_ptr_imag, rhsVi[0], rhsVi[1], rhsVi[2], rhsVi[3]); ++- pgerc<4, Scalar, Packet, ConjugateLhs, ConjugateRhs, LhsIsReal, RhsIsReal>(&accReal, &accImag, lhs_ptr_real, lhs_ptr_imag, rhsV, rhsVi); +++ pbroadcastN_old(rhs_ptr_real, rhsV[0], rhsV[1], rhsV[2], rhsV[3]); +++ if(!RhsIsReal) pbroadcastN_old(rhs_ptr_imag, rhsVi[0], rhsVi[1], rhsVi[2], rhsVi[3]); +++ pgerc(&accReal, &accImag, lhs_ptr_real, lhs_ptr_imag, rhsV, rhsVi); ++ lhs_ptr_real += remaining_rows; ++ if(!LhsIsReal) lhs_ptr_imag += remaining_rows; ++ else EIGEN_UNUSED_VARIABLE(lhs_ptr_imag); ++@@ -1908,8 +1831,8 @@ EIGEN_ALWAYS_INLINE void MICRO_COMPLEX_EXTRA_ROW( ++ else EIGEN_UNUSED_VARIABLE(rhs_ptr_imag); ++ } ++ ++-template ++-EIGEN_STRONG_INLINE void gemm_complex_extra_row( +++template +++EIGEN_ALWAYS_INLINE void gemm_unrolled_complex_row_iteration( ++ const DataMapper& res, ++ const Scalar* lhs_base, ++ const Scalar* rhs_base, ++@@ -1921,106 +1844,141 @@ EIGEN_STRONG_INLINE void gemm_complex_extra_row( ++ Index col, ++ Index rows, ++ Index cols, ++- Index remaining_rows, ++ const Packet& pAlphaReal, ++ const Packet& pAlphaImag, ++ const Packet& pMask) ++ { ++ const Scalar* rhs_ptr_real = rhs_base; ++- const Scalar* rhs_ptr_imag; +++ const Scalar* rhs_ptr_imag = NULL; ++ if(!RhsIsReal) rhs_ptr_imag = rhs_base + accRows*strideB; ++ else EIGEN_UNUSED_VARIABLE(rhs_ptr_imag); ++ const Scalar* lhs_ptr_real = lhs_base + advanceRows*row*strideA + remaining_rows*offsetA; ++- const Scalar* lhs_ptr_imag; +++ const Scalar* lhs_ptr_imag = NULL; ++ if(!LhsIsReal) lhs_ptr_imag = lhs_ptr_real + remaining_rows*strideA; ++ else EIGEN_UNUSED_VARIABLE(lhs_ptr_imag); ++- PacketBlock accReal, accImag; ++- PacketBlock taccReal, taccImag; ++- PacketBlock acc0, acc1; ++- PacketBlock tRes; +++ PacketBlock accReal0, accImag0, accReal1, accImag1, accReal2, accImag2, accReal3, accImag3; +++ PacketBlock taccReal, taccImag; +++ PacketBlock acc0, acc1; +++ PacketBlock tRes; ++ ++- bsetzero(accReal); ++- bsetzero(accImag); +++ bsetzero(accReal0); +++ bsetzero(accImag0); ++ ++- Index remaining_depth = (col + accRows < cols) ? depth : (depth & -accRows); +++ Index remaining_depth = (col + quad_traits::rows < cols) ? depth : (depth & -quad_traits::rows); ++ Index k = 0; ++- for(; k + PEEL_COMPLEX <= remaining_depth; k+= PEEL_COMPLEX) ++- { ++- EIGEN_POWER_PREFETCH(rhs_ptr_real); ++- if(!RhsIsReal) { ++- EIGEN_POWER_PREFETCH(rhs_ptr_imag); ++- } ++- EIGEN_POWER_PREFETCH(lhs_ptr_real); ++- if(!LhsIsReal) { ++- EIGEN_POWER_PREFETCH(lhs_ptr_imag); ++- } ++- for (int l = 0; l < PEEL_COMPLEX; l++) { ++- MICRO_COMPLEX_EXTRA_ROW(lhs_ptr_real, lhs_ptr_imag, rhs_ptr_real, rhs_ptr_imag, accReal, accImag, remaining_rows); ++- } +++ if (remaining_depth >= PEEL_COMPLEX_ROW) { +++ MICRO_COMPLEX_ZERO_PEEL_ROW +++ do +++ { +++ EIGEN_POWER_PREFETCH(rhs_ptr_real); +++ if(!RhsIsReal) { +++ EIGEN_POWER_PREFETCH(rhs_ptr_imag); +++ } +++ EIGEN_POWER_PREFETCH(lhs_ptr_real); +++ if(!LhsIsReal) { +++ EIGEN_POWER_PREFETCH(lhs_ptr_imag); +++ } +++ MICRO_COMPLEX_WORK_PEEL_ROW +++ } while ((k += PEEL_COMPLEX_ROW) + PEEL_COMPLEX_ROW <= remaining_depth); +++ MICRO_COMPLEX_ADD_PEEL_ROW ++ } ++ for(; k < remaining_depth; k++) ++ { ++- MICRO_COMPLEX_EXTRA_ROW(lhs_ptr_real, lhs_ptr_imag, rhs_ptr_real, rhs_ptr_imag, accReal, accImag, remaining_rows); +++ MICRO_COMPLEX_EXTRA_ROW(lhs_ptr_real, lhs_ptr_imag, rhs_ptr_real, rhs_ptr_imag, accReal0, accImag0); ++ } ++ ++ if ((remaining_depth == depth) && (rows >= accCols)) ++ { ++- bload(tRes, res, row, col); ++- bscalec(accReal, accImag, pAlphaReal, pAlphaImag, taccReal, taccImag, pMask); ++- bcouple(taccReal, taccImag, tRes, acc0, acc1); ++- res.template storePacketBlock(row + 0, col, acc0); ++- res.template storePacketBlock(row + accColsC, col, acc1); +++ bload(tRes, res, row, 0); +++ bscalec(accReal0, accImag0, pAlphaReal, pAlphaImag, taccReal, taccImag, pMask); +++ bcouple(taccReal, taccImag, tRes, acc0, acc1); +++ res.template storePacketBlock(row + 0, 0, acc0); +++ res.template storePacketBlock(row + accColsC, 0, acc1); ++ } else { ++ for(; k < depth; k++) ++ { ++ Packet rhsV[4], rhsVi[4]; ++- pbroadcast4_old(rhs_ptr_real, rhsV[0], rhsV[1], rhsV[2], rhsV[3]); ++- if(!RhsIsReal) pbroadcast4_old(rhs_ptr_imag, rhsVi[0], rhsVi[1], rhsVi[2], rhsVi[3]); ++- pgerc<4, Scalar, Packet, Index, ConjugateLhs, ConjugateRhs, LhsIsReal, RhsIsReal>(&accReal, &accImag, lhs_ptr_real, lhs_ptr_imag, rhsV, rhsVi, remaining_rows); +++ pbroadcastN_old(rhs_ptr_real, rhsV[0], rhsV[1], rhsV[2], rhsV[3]); +++ if(!RhsIsReal) pbroadcastN_old(rhs_ptr_imag, rhsVi[0], rhsVi[1], rhsVi[2], rhsVi[3]); +++ pgerc(&accReal0, &accImag0, lhs_ptr_real, lhs_ptr_imag, rhsV, rhsVi); ++ lhs_ptr_real += remaining_rows; ++ if(!LhsIsReal) lhs_ptr_imag += remaining_rows; ++ rhs_ptr_real += accRows; ++ if(!RhsIsReal) rhs_ptr_imag += accRows; ++ } ++ ++- bscalec(accReal, accImag, pAlphaReal, pAlphaImag, taccReal, taccImag); ++- bcouple_common(taccReal, taccImag, acc0, acc1); +++ bscalec(accReal0, accImag0, pAlphaReal, pAlphaImag, taccReal, taccImag); +++ bcouple_common(taccReal, taccImag, acc0, acc1); ++ ++ if ((sizeof(Scalar) == sizeof(float)) && (remaining_rows == 1)) ++ { ++- for(Index j = 0; j < 4; j++) { ++- res(row + 0, col + j) += pfirst(acc0.packet[j]); +++ for(Index j = 0; j < accRows; j++) { +++ res(row + 0, j) += pfirst(acc0.packet[j]); ++ } ++ } else { ++- for(Index j = 0; j < 4; j++) { +++ for(Index j = 0; j < accRows; j++) { ++ PacketBlock acc2; ++- acc2.packet[0] = res.template loadPacket(row + 0, col + j) + acc0.packet[j]; ++- res.template storePacketBlock(row + 0, col + j, acc2); +++ acc2.packet[0] = res.template loadPacket(row + 0, j) + acc0.packet[j]; +++ res.template storePacketBlock(row + 0, j, acc2); ++ if(remaining_rows > accColsC) { ++- res(row + accColsC, col + j) += pfirst(acc1.packet[j]); +++ res(row + accColsC, j) += pfirst(acc1.packet[j]); ++ } ++ } ++ } ++ } ++ } ++ +++template +++EIGEN_ALWAYS_INLINE void gemm_complex_extra_row( +++ const DataMapper& res, +++ const Scalar* lhs_base, +++ const Scalar* rhs_base, +++ Index depth, +++ Index strideA, +++ Index offsetA, +++ Index strideB, +++ Index row, +++ Index col, +++ Index rows, +++ Index cols, +++ Index remaining_rows, +++ const Packet& pAlphaReal, +++ const Packet& pAlphaImag, +++ const Packet& pMask) +++{ +++ switch(remaining_rows) { +++ case 1: +++ gemm_unrolled_complex_row_iteration(res, lhs_base, rhs_base, depth, strideA, offsetA, strideB, row, col, rows, cols, pAlphaReal, pAlphaImag, pMask); +++ break; +++ case 2: +++ if (sizeof(Scalar) == sizeof(float)) { +++ gemm_unrolled_complex_row_iteration(res, lhs_base, rhs_base, depth, strideA, offsetA, strideB, row, col, rows, cols, pAlphaReal, pAlphaImag, pMask); +++ } +++ break; +++ default: +++ if (sizeof(Scalar) == sizeof(float)) { +++ gemm_unrolled_complex_row_iteration(res, lhs_base, rhs_base, depth, strideA, offsetA, strideB, row, col, rows, cols, pAlphaReal, pAlphaImag, pMask); +++ } +++ break; +++ } +++} +++ ++ #define MICRO_COMPLEX_UNROLL(func) \ ++- func(0) func(1) func(2) func(3) func(4) +++ func(0) func(1) func(2) func(3) ++ ++ #define MICRO_COMPLEX_UNROLL_WORK(func, func2, peel) \ ++ MICRO_COMPLEX_UNROLL(func2); \ ++- func(0,peel) func(1,peel) func(2,peel) func(3,peel) func(4,peel) +++ func(0,peel) func(1,peel) func(2,peel) func(3,peel) ++ ++ #define MICRO_COMPLEX_LOAD_ONE(iter) \ ++ if (unroll_factor > iter) { \ ++ lhsV##iter = ploadLhs(lhs_ptr_real##iter); \ ++- lhs_ptr_real##iter += accCols; \ ++ if(!LhsIsReal) { \ ++- lhsVi##iter = ploadLhs(lhs_ptr_imag##iter); \ ++- lhs_ptr_imag##iter += accCols; \ +++ lhsVi##iter = ploadLhs(lhs_ptr_real##iter + imag_delta); \ ++ } else { \ ++ EIGEN_UNUSED_VARIABLE(lhsVi##iter); \ ++ } \ +++ lhs_ptr_real##iter += accCols; \ ++ } else { \ ++ EIGEN_UNUSED_VARIABLE(lhsV##iter); \ ++ EIGEN_UNUSED_VARIABLE(lhsVi##iter); \ ++@@ -2028,37 +1986,16 @@ EIGEN_STRONG_INLINE void gemm_complex_extra_row( ++ ++ #define MICRO_COMPLEX_WORK_ONE4(iter, peel) \ ++ if (unroll_factor > iter) { \ ++- pgerc_common<4, Packet, ConjugateLhs, ConjugateRhs, LhsIsReal, RhsIsReal>(&accReal##iter, &accImag##iter, lhsV##iter, lhsVi##iter, rhsV##peel, rhsVi##peel); \ ++- } ++- ++-#define MICRO_COMPLEX_WORK_ONE1(iter, peel) \ ++- if (unroll_factor > iter) { \ ++- pgerc_common<1, Packet, ConjugateLhs, ConjugateRhs, LhsIsReal, RhsIsReal>(&accReal##iter, &accImag##iter, lhsV##iter, lhsVi##iter, rhsV##peel, rhsVi##peel); \ +++ pgerc_common(&accReal##iter, &accImag##iter, lhsV##iter, lhsVi##iter, rhsV##peel, rhsVi##peel); \ ++ } ++ ++ #define MICRO_COMPLEX_TYPE_PEEL4(func, func2, peel) \ ++ if (PEEL_COMPLEX > peel) { \ ++- Packet lhsV0, lhsV1, lhsV2, lhsV3, lhsV4; \ ++- Packet lhsVi0, lhsVi1, lhsVi2, lhsVi3, lhsVi4; \ ++- pbroadcast4_old(rhs_ptr_real + (accRows * peel), rhsV##peel[0], rhsV##peel[1], rhsV##peel[2], rhsV##peel[3]); \ +++ Packet lhsV0, lhsV1, lhsV2, lhsV3; \ +++ Packet lhsVi0, lhsVi1, lhsVi2, lhsVi3; \ +++ pbroadcastN_old(rhs_ptr_real + (accRows * peel), rhsV##peel[0], rhsV##peel[1], rhsV##peel[2], rhsV##peel[3]); \ ++ if(!RhsIsReal) { \ ++- pbroadcast4_old(rhs_ptr_imag + (accRows * peel), rhsVi##peel[0], rhsVi##peel[1], rhsVi##peel[2], rhsVi##peel[3]); \ ++- } else { \ ++- EIGEN_UNUSED_VARIABLE(rhsVi##peel); \ ++- } \ ++- MICRO_COMPLEX_UNROLL_WORK(func, func2, peel) \ ++- } else { \ ++- EIGEN_UNUSED_VARIABLE(rhsV##peel); \ ++- EIGEN_UNUSED_VARIABLE(rhsVi##peel); \ ++- } ++- ++-#define MICRO_COMPLEX_TYPE_PEEL1(func, func2, peel) \ ++- if (PEEL_COMPLEX > peel) { \ ++- Packet lhsV0, lhsV1, lhsV2, lhsV3, lhsV4; \ ++- Packet lhsVi0, lhsVi1, lhsVi2, lhsVi3, lhsVi4; \ ++- rhsV##peel[0] = pset1(rhs_ptr_real[remaining_cols * peel]); \ ++- if(!RhsIsReal) { \ ++- rhsVi##peel[0] = pset1(rhs_ptr_imag[remaining_cols * peel]); \ +++ pbroadcastN_old(rhs_ptr_imag + (accRows * peel), rhsVi##peel[0], rhsVi##peel[1], rhsVi##peel[2], rhsVi##peel[3]); \ ++ } else { \ ++ EIGEN_UNUSED_VARIABLE(rhsVi##peel); \ ++ } \ ++@@ -2069,13 +2006,10 @@ EIGEN_STRONG_INLINE void gemm_complex_extra_row( ++ } ++ ++ #define MICRO_COMPLEX_UNROLL_TYPE_PEEL(M, func, func1, func2) \ ++- Packet rhsV0[M], rhsV1[M], rhsV2[M], rhsV3[M], rhsV4[M], rhsV5[M], rhsV6[M], rhsV7[M], rhsV8[M], rhsV9[M]; \ ++- Packet rhsVi0[M], rhsVi1[M], rhsVi2[M], rhsVi3[M], rhsVi4[M], rhsVi5[M], rhsVi6[M], rhsVi7[M], rhsVi8[M], rhsVi9[M]; \ +++ Packet rhsV0[M], rhsV1[M], rhsV2[M], rhsV3[M]; \ +++ Packet rhsVi0[M], rhsVi1[M], rhsVi2[M], rhsVi3[M]; \ ++ func(func1,func2,0); func(func1,func2,1); \ ++- func(func1,func2,2); func(func1,func2,3); \ ++- func(func1,func2,4); func(func1,func2,5); \ ++- func(func1,func2,6); func(func1,func2,7); \ ++- func(func1,func2,8); func(func1,func2,9); +++ func(func1,func2,2); func(func1,func2,3); ++ ++ #define MICRO_COMPLEX_UNROLL_TYPE_ONE(M, func, func1, func2) \ ++ Packet rhsV0[M], rhsVi0[M];\ ++@@ -2091,20 +2025,10 @@ EIGEN_STRONG_INLINE void gemm_complex_extra_row( ++ rhs_ptr_real += accRows; \ ++ if(!RhsIsReal) rhs_ptr_imag += accRows; ++ ++-#define MICRO_COMPLEX_ONE_PEEL1 \ ++- MICRO_COMPLEX_UNROLL_TYPE_PEEL(1, MICRO_COMPLEX_TYPE_PEEL1, MICRO_COMPLEX_WORK_ONE1, MICRO_COMPLEX_LOAD_ONE); \ ++- rhs_ptr_real += (remaining_cols * PEEL_COMPLEX); \ ++- if(!RhsIsReal) rhs_ptr_imag += (remaining_cols * PEEL_COMPLEX); ++- ++-#define MICRO_COMPLEX_ONE1 \ ++- MICRO_COMPLEX_UNROLL_TYPE_ONE(1, MICRO_COMPLEX_TYPE_PEEL1, MICRO_COMPLEX_WORK_ONE1, MICRO_COMPLEX_LOAD_ONE); \ ++- rhs_ptr_real += remaining_cols; \ ++- if(!RhsIsReal) rhs_ptr_imag += remaining_cols; ++- ++ #define MICRO_COMPLEX_DST_PTR_ONE(iter) \ ++ if (unroll_factor > iter) { \ ++- bsetzero(accReal##iter); \ ++- bsetzero(accImag##iter); \ +++ bsetzero(accReal##iter); \ +++ bsetzero(accImag##iter); \ ++ } else { \ ++ EIGEN_UNUSED_VARIABLE(accReal##iter); \ ++ EIGEN_UNUSED_VARIABLE(accImag##iter); \ ++@@ -2114,15 +2038,9 @@ EIGEN_STRONG_INLINE void gemm_complex_extra_row( ++ ++ #define MICRO_COMPLEX_SRC_PTR_ONE(iter) \ ++ if (unroll_factor > iter) { \ ++- lhs_ptr_real##iter = lhs_base + ( ((advanceRows*row)/accCols) + iter*advanceRows )*strideA*accCols + accCols*offsetA; \ ++- if(!LhsIsReal) { \ ++- lhs_ptr_imag##iter = lhs_ptr_real##iter + accCols*strideA; \ ++- } else { \ ++- EIGEN_UNUSED_VARIABLE(lhs_ptr_imag##iter); \ ++- } \ +++ lhs_ptr_real##iter = lhs_base + ( ((advanceRows*row)/accCols) + iter*advanceRows )*strideA*accCols; \ ++ } else { \ ++ EIGEN_UNUSED_VARIABLE(lhs_ptr_real##iter); \ ++- EIGEN_UNUSED_VARIABLE(lhs_ptr_imag##iter); \ ++ } ++ ++ #define MICRO_COMPLEX_SRC_PTR MICRO_COMPLEX_UNROLL(MICRO_COMPLEX_SRC_PTR_ONE) ++@@ -2130,35 +2048,21 @@ EIGEN_STRONG_INLINE void gemm_complex_extra_row( ++ #define MICRO_COMPLEX_PREFETCH_ONE(iter) \ ++ if (unroll_factor > iter) { \ ++ EIGEN_POWER_PREFETCH(lhs_ptr_real##iter); \ ++- if(!LhsIsReal) { \ ++- EIGEN_POWER_PREFETCH(lhs_ptr_imag##iter); \ ++- } \ ++ } ++ ++ #define MICRO_COMPLEX_PREFETCH MICRO_COMPLEX_UNROLL(MICRO_COMPLEX_PREFETCH_ONE) ++ ++ #define MICRO_COMPLEX_STORE_ONE(iter) \ ++ if (unroll_factor > iter) { \ ++- bload(tRes, res, row + iter*accCols, col); \ ++- bscalec(accReal##iter, accImag##iter, pAlphaReal, pAlphaImag, taccReal, taccImag); \ ++- bcouple(taccReal, taccImag, tRes, acc0, acc1); \ ++- res.template storePacketBlock(row + iter*accCols + 0, col, acc0); \ ++- res.template storePacketBlock(row + iter*accCols + accColsC, col, acc1); \ +++ bload(tRes, res, row + iter*accCols, 0); \ +++ bscalec(accReal##iter, accImag##iter, pAlphaReal, pAlphaImag, taccReal, taccImag); \ +++ bcouple(taccReal, taccImag, tRes, acc0, acc1); \ +++ res.template storePacketBlock(row + iter*accCols + 0, 0, acc0); \ +++ res.template storePacketBlock(row + iter*accCols + accColsC, 0, acc1); \ ++ } ++ ++ #define MICRO_COMPLEX_STORE MICRO_COMPLEX_UNROLL(MICRO_COMPLEX_STORE_ONE) ++ ++-#define MICRO_COMPLEX_COL_STORE_ONE(iter) \ ++- if (unroll_factor > iter) { \ ++- bload(tRes, res, row + iter*accCols, col); \ ++- bscalec(accReal##iter, accImag##iter, pAlphaReal, pAlphaImag, taccReal, taccImag); \ ++- bcouple(taccReal, taccImag, tRes, acc0, acc1); \ ++- res.template storePacketBlock(row + iter*accCols + 0, col, acc0); \ ++- res.template storePacketBlock(row + iter*accCols + accColsC, col, acc1); \ ++- } ++- ++-#define MICRO_COMPLEX_COL_STORE MICRO_COMPLEX_UNROLL(MICRO_COMPLEX_COL_STORE_ONE) ++- ++ template ++ EIGEN_STRONG_INLINE void gemm_complex_unrolled_iteration( ++ const DataMapper& res, ++@@ -2166,29 +2070,26 @@ EIGEN_STRONG_INLINE void gemm_complex_unrolled_iteration( ++ const Scalar* rhs_base, ++ Index depth, ++ Index strideA, ++- Index offsetA, ++ Index strideB, ++ Index& row, ++- Index col, ++ const Packet& pAlphaReal, ++ const Packet& pAlphaImag) ++ { ++ const Scalar* rhs_ptr_real = rhs_base; ++- const Scalar* rhs_ptr_imag; +++ const Scalar* rhs_ptr_imag = NULL; +++ const Index imag_delta = accCols*strideA; ++ if(!RhsIsReal) { ++ rhs_ptr_imag = rhs_base + accRows*strideB; ++ } else { ++ EIGEN_UNUSED_VARIABLE(rhs_ptr_imag); ++ } ++- const Scalar* lhs_ptr_real0 = NULL, * lhs_ptr_imag0 = NULL, * lhs_ptr_real1 = NULL, * lhs_ptr_imag1 = NULL; ++- const Scalar* lhs_ptr_real2 = NULL, * lhs_ptr_imag2 = NULL, * lhs_ptr_real3 = NULL, * lhs_ptr_imag3 = NULL; ++- const Scalar* lhs_ptr_real4 = NULL, * lhs_ptr_imag4 = NULL; ++- PacketBlock accReal0, accImag0, accReal1, accImag1; ++- PacketBlock accReal2, accImag2, accReal3, accImag3; ++- PacketBlock accReal4, accImag4; ++- PacketBlock taccReal, taccImag; ++- PacketBlock acc0, acc1; ++- PacketBlock tRes; +++ const Scalar* lhs_ptr_real0 = NULL, * lhs_ptr_real1 = NULL; +++ const Scalar* lhs_ptr_real2 = NULL, * lhs_ptr_real3 = NULL; +++ PacketBlock accReal0, accImag0, accReal1, accImag1; +++ PacketBlock accReal2, accImag2, accReal3, accImag3; +++ PacketBlock taccReal, taccImag; +++ PacketBlock acc0, acc1; +++ PacketBlock tRes; ++ ++ MICRO_COMPLEX_SRC_PTR ++ MICRO_COMPLEX_DST_PTR ++@@ -2212,112 +2113,93 @@ EIGEN_STRONG_INLINE void gemm_complex_unrolled_iteration( ++ row += unroll_factor*accCols; ++ } ++ ++-template ++-EIGEN_STRONG_INLINE void gemm_complex_unrolled_col_iteration( +++template +++EIGEN_ALWAYS_INLINE void gemm_complex_cols( ++ const DataMapper& res, ++- const Scalar* lhs_base, ++- const Scalar* rhs_base, +++ const Scalar* blockA, +++ const Scalar* blockB, ++ Index depth, ++ Index strideA, ++ Index offsetA, ++ Index strideB, ++- Index& row, +++ Index offsetB, ++ Index col, ++- Index remaining_cols, +++ Index rows, +++ Index cols, +++ Index remaining_rows, ++ const Packet& pAlphaReal, ++- const Packet& pAlphaImag) +++ const Packet& pAlphaImag, +++ const Packet& pMask) ++ { ++- const Scalar* rhs_ptr_real = rhs_base; ++- const Scalar* rhs_ptr_imag; ++- if(!RhsIsReal) { ++- rhs_ptr_imag = rhs_base + remaining_cols*strideB; ++- } else { ++- EIGEN_UNUSED_VARIABLE(rhs_ptr_imag); ++- } ++- const Scalar* lhs_ptr_real0 = NULL, * lhs_ptr_imag0 = NULL, * lhs_ptr_real1 = NULL, * lhs_ptr_imag1 = NULL; ++- const Scalar* lhs_ptr_real2 = NULL, * lhs_ptr_imag2 = NULL, * lhs_ptr_real3 = NULL, * lhs_ptr_imag3 = NULL; ++- const Scalar* lhs_ptr_real4 = NULL, * lhs_ptr_imag4 = NULL; ++- PacketBlock accReal0, accImag0, accReal1, accImag1; ++- PacketBlock accReal2, accImag2, accReal3, accImag3; ++- PacketBlock accReal4, accImag4; ++- PacketBlock taccReal, taccImag; ++- PacketBlock acc0, acc1; ++- PacketBlock tRes; +++ const DataMapper res3 = res.getSubMapper(0, col); ++ ++- MICRO_COMPLEX_SRC_PTR ++- MICRO_COMPLEX_DST_PTR +++ const Scalar* rhs_base = blockB + advanceCols*col*strideB + accRows*offsetB; +++ const Scalar* lhs_base = blockA + accCols*offsetA; +++ Index row = 0; ++ ++- Index k = 0; ++- for(; k + PEEL_COMPLEX <= depth; k+= PEEL_COMPLEX) ++- { ++- EIGEN_POWER_PREFETCH(rhs_ptr_real); ++- if(!RhsIsReal) { ++- EIGEN_POWER_PREFETCH(rhs_ptr_imag); ++- } ++- MICRO_COMPLEX_PREFETCH ++- MICRO_COMPLEX_ONE_PEEL1 +++#define MAX_COMPLEX_UNROLL 3 +++ while(row + MAX_COMPLEX_UNROLL*accCols <= rows) { +++ gemm_complex_unrolled_iteration(res3, lhs_base, rhs_base, depth, strideA, strideB, row, pAlphaReal, pAlphaImag); ++ } ++- for(; k < depth; k++) ++- { ++- MICRO_COMPLEX_ONE1 +++ switch( (rows-row)/accCols ) { +++#if MAX_COMPLEX_UNROLL > 4 +++ case 4: +++ gemm_complex_unrolled_iteration<4, Scalar, Packet, Packetc, DataMapper, Index, accRows, accCols, ConjugateLhs, ConjugateRhs, LhsIsReal, RhsIsReal>(res3, lhs_base, rhs_base, depth, strideA, strideB, row, pAlphaReal, pAlphaImag); +++ break; +++#endif +++#if MAX_COMPLEX_UNROLL > 3 +++ case 3: +++ gemm_complex_unrolled_iteration<3, Scalar, Packet, Packetc, DataMapper, Index, accRows, accCols, ConjugateLhs, ConjugateRhs, LhsIsReal, RhsIsReal>(res3, lhs_base, rhs_base, depth, strideA, strideB, row, pAlphaReal, pAlphaImag); +++ break; +++#endif +++#if MAX_COMPLEX_UNROLL > 2 +++ case 2: +++ gemm_complex_unrolled_iteration<2, Scalar, Packet, Packetc, DataMapper, Index, accRows, accCols, ConjugateLhs, ConjugateRhs, LhsIsReal, RhsIsReal>(res3, lhs_base, rhs_base, depth, strideA, strideB, row, pAlphaReal, pAlphaImag); +++ break; +++#endif +++#if MAX_COMPLEX_UNROLL > 1 +++ case 1: +++ gemm_complex_unrolled_iteration<1, Scalar, Packet, Packetc, DataMapper, Index, accRows, accCols, ConjugateLhs, ConjugateRhs, LhsIsReal, RhsIsReal>(res3, lhs_base, rhs_base, depth, strideA, strideB, row, pAlphaReal, pAlphaImag); +++ break; +++#endif +++ default: +++ break; ++ } ++- MICRO_COMPLEX_COL_STORE +++#undef MAX_COMPLEX_UNROLL ++ ++- row += unroll_factor*accCols; +++ if(remaining_rows > 0) +++ { +++ gemm_complex_extra_row(res3, blockA, rhs_base, depth, strideA, offsetA, strideB, row, col, rows, cols, remaining_rows, pAlphaReal, pAlphaImag, pMask); +++ } ++ } ++ ++ template ++-EIGEN_STRONG_INLINE void gemm_complex_unrolled_col( +++EIGEN_STRONG_INLINE void gemm_complex_extra_cols( ++ const DataMapper& res, ++- const Scalar* lhs_base, ++- const Scalar* rhs_base, +++ const Scalar* blockA, +++ const Scalar* blockB, ++ Index depth, ++ Index strideA, ++ Index offsetA, ++ Index strideB, ++- Index& row, ++- Index rows, +++ Index offsetB, ++ Index col, ++- Index remaining_cols, +++ Index rows, +++ Index cols, +++ Index remaining_rows, ++ const Packet& pAlphaReal, ++- const Packet& pAlphaImag) +++ const Packet& pAlphaImag, +++ const Packet& pMask) ++ { ++-#define MAX_COMPLEX_UNROLL 3 ++- while(row + MAX_COMPLEX_UNROLL*accCols <= rows) { ++- gemm_complex_unrolled_col_iteration(res, lhs_base, rhs_base, depth, strideA, offsetA, strideB, row, col, remaining_cols, pAlphaReal, pAlphaImag); ++- } ++- switch( (rows-row)/accCols ) { ++-#if MAX_COMPLEX_UNROLL > 4 ++- case 4: ++- gemm_complex_unrolled_col_iteration<4, Scalar, Packet, Packetc, DataMapper, Index, accCols, ConjugateLhs, ConjugateRhs, LhsIsReal, RhsIsReal>(res, lhs_base, rhs_base, depth, strideA, offsetA, strideB, row, col, remaining_cols, pAlphaReal, pAlphaImag); ++- break; ++-#endif ++-#if MAX_COMPLEX_UNROLL > 3 ++- case 3: ++- gemm_complex_unrolled_col_iteration<3, Scalar, Packet, Packetc, DataMapper, Index, accCols, ConjugateLhs, ConjugateRhs, LhsIsReal, RhsIsReal>(res, lhs_base, rhs_base, depth, strideA, offsetA, strideB, row, col, remaining_cols, pAlphaReal, pAlphaImag); ++- break; ++-#endif ++-#if MAX_COMPLEX_UNROLL > 2 ++- case 2: ++- gemm_complex_unrolled_col_iteration<2, Scalar, Packet, Packetc, DataMapper, Index, accCols, ConjugateLhs, ConjugateRhs, LhsIsReal, RhsIsReal>(res, lhs_base, rhs_base, depth, strideA, offsetA, strideB, row, col, remaining_cols, pAlphaReal, pAlphaImag); ++- break; ++-#endif ++-#if MAX_COMPLEX_UNROLL > 1 ++- case 1: ++- gemm_complex_unrolled_col_iteration<1, Scalar, Packet, Packetc, DataMapper, Index, accCols, ConjugateLhs, ConjugateRhs, LhsIsReal, RhsIsReal>(res, lhs_base, rhs_base, depth, strideA, offsetA, strideB, row, col, remaining_cols, pAlphaReal, pAlphaImag); ++- break; ++-#endif ++- default: ++- break; +++ for (; col < cols; col++) { +++ gemm_complex_cols(res, blockA, blockB, depth, strideA, offsetA, strideB, offsetB, col, rows, cols, remaining_rows, pAlphaReal, pAlphaImag, pMask); ++ } ++-#undef MAX_COMPLEX_UNROLL ++ } ++ ++ template ++ EIGEN_STRONG_INLINE void gemm_complex(const DataMapper& res, const LhsScalar* blockAc, const RhsScalar* blockBc, Index rows, Index depth, Index cols, Scalarc alpha, Index strideA, Index strideB, Index offsetA, Index offsetB) ++ { ++ const Index remaining_rows = rows % accCols; ++- const Index remaining_cols = cols % accRows; ++ ++ if( strideA == -1 ) strideA = depth; ++ if( strideB == -1 ) strideB = depth; ++@@ -2332,64 +2214,10 @@ EIGEN_STRONG_INLINE void gemm_complex(const DataMapper& res, const LhsScalar* bl ++ Index col = 0; ++ for(; col + accRows <= cols; col += accRows) ++ { ++- const Scalar* rhs_base = blockB + advanceCols*col*strideB + accRows*offsetB; ++- const Scalar* lhs_base = blockA; ++- Index row = 0; ++- ++-#define MAX_COMPLEX_UNROLL 3 ++- while(row + MAX_COMPLEX_UNROLL*accCols <= rows) { ++- gemm_complex_unrolled_iteration(res, lhs_base, rhs_base, depth, strideA, offsetA, strideB, row, col, pAlphaReal, pAlphaImag); ++- } ++- switch( (rows-row)/accCols ) { ++-#if MAX_COMPLEX_UNROLL > 4 ++- case 4: ++- gemm_complex_unrolled_iteration<4, Scalar, Packet, Packetc, DataMapper, Index, accRows, accCols, ConjugateLhs, ConjugateRhs, LhsIsReal, RhsIsReal>(res, lhs_base, rhs_base, depth, strideA, offsetA, strideB, row, col, pAlphaReal, pAlphaImag); ++- break; ++-#endif ++-#if MAX_COMPLEX_UNROLL > 3 ++- case 3: ++- gemm_complex_unrolled_iteration<3, Scalar, Packet, Packetc, DataMapper, Index, accRows, accCols, ConjugateLhs, ConjugateRhs, LhsIsReal, RhsIsReal>(res, lhs_base, rhs_base, depth, strideA, offsetA, strideB, row, col, pAlphaReal, pAlphaImag); ++- break; ++-#endif ++-#if MAX_COMPLEX_UNROLL > 2 ++- case 2: ++- gemm_complex_unrolled_iteration<2, Scalar, Packet, Packetc, DataMapper, Index, accRows, accCols, ConjugateLhs, ConjugateRhs, LhsIsReal, RhsIsReal>(res, lhs_base, rhs_base, depth, strideA, offsetA, strideB, row, col, pAlphaReal, pAlphaImag); ++- break; ++-#endif ++-#if MAX_COMPLEX_UNROLL > 1 ++- case 1: ++- gemm_complex_unrolled_iteration<1, Scalar, Packet, Packetc, DataMapper, Index, accRows, accCols, ConjugateLhs, ConjugateRhs, LhsIsReal, RhsIsReal>(res, lhs_base, rhs_base, depth, strideA, offsetA, strideB, row, col, pAlphaReal, pAlphaImag); ++- break; ++-#endif ++- default: ++- break; ++- } ++-#undef MAX_COMPLEX_UNROLL ++- ++- if(remaining_rows > 0) ++- { ++- gemm_complex_extra_row(res, lhs_base, rhs_base, depth, strideA, offsetA, strideB, row, col, rows, cols, remaining_rows, pAlphaReal, pAlphaImag, pMask); ++- } +++ gemm_complex_cols(res, blockA, blockB, depth, strideA, offsetA, strideB, offsetB, col, rows, cols, remaining_rows, pAlphaReal, pAlphaImag, pMask); ++ } ++ ++- if(remaining_cols > 0) ++- { ++- const Scalar* rhs_base = blockB + advanceCols*col*strideB + remaining_cols*offsetB; ++- const Scalar* lhs_base = blockA; ++- ++- for(; col < cols; col++) ++- { ++- Index row = 0; ++- ++- gemm_complex_unrolled_col(res, lhs_base, rhs_base, depth, strideA, offsetA, strideB, row, rows, col, remaining_cols, pAlphaReal, pAlphaImag); ++- ++- if (remaining_rows > 0) ++- { ++- gemm_complex_extra_col(res, lhs_base, rhs_base, depth, strideA, offsetA, strideB, row, col, remaining_rows, remaining_cols, pAlphaReal, pAlphaImag); ++- } ++- rhs_base++; ++- } ++- } +++ gemm_complex_extra_cols(res, blockA, blockB, depth, strideA, offsetA, strideB, offsetB, col, rows, cols, remaining_rows, pAlphaReal, pAlphaImag, pMask); ++ } ++ ++ #undef accColsC ++diff --git a/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h b/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h ++index 33d543494..bf01dba1c 100644 ++--- a/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +++++ b/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h ++@@ -9,22 +9,8 @@ namespace Eigen { ++ ++ namespace internal { ++ ++-template ++-EIGEN_STRONG_INLINE void gemm_extra_col( ++- const DataMapper& res, ++- const Scalar* lhs_base, ++- const Scalar* rhs_base, ++- Index depth, ++- Index strideA, ++- Index offsetA, ++- Index row, ++- Index col, ++- Index remaining_rows, ++- Index remaining_cols, ++- const Packet& pAlpha); ++- ++ template ++-EIGEN_STRONG_INLINE void gemm_extra_row( +++EIGEN_ALWAYS_INLINE void gemm_extra_row( ++ const DataMapper& res, ++ const Scalar* lhs_base, ++ const Scalar* rhs_base, ++@@ -39,41 +25,28 @@ EIGEN_STRONG_INLINE void gemm_extra_row( ++ const Packet& pAlpha, ++ const Packet& pMask); ++ ++-template ++-EIGEN_STRONG_INLINE void gemm_unrolled_col( +++template +++EIGEN_STRONG_INLINE void gemm_extra_cols( ++ const DataMapper& res, ++- const Scalar* lhs_base, ++- const Scalar* rhs_base, +++ const Scalar* blockA, +++ const Scalar* blockB, ++ Index depth, ++ Index strideA, ++ Index offsetA, ++- Index& row, ++- Index rows, +++ Index strideB, +++ Index offsetB, ++ Index col, ++- Index remaining_cols, ++- const Packet& pAlpha); +++ Index rows, +++ Index cols, +++ Index remaining_rows, +++ const Packet& pAlpha, +++ const Packet& pMask); ++ ++ template ++ EIGEN_ALWAYS_INLINE Packet bmask(const int remaining_rows); ++ ++ template ++-EIGEN_STRONG_INLINE void gemm_complex_extra_col( ++- const DataMapper& res, ++- const Scalar* lhs_base, ++- const Scalar* rhs_base, ++- Index depth, ++- Index strideA, ++- Index offsetA, ++- Index strideB, ++- Index row, ++- Index col, ++- Index remaining_rows, ++- Index remaining_cols, ++- const Packet& pAlphaReal, ++- const Packet& pAlphaImag); ++- ++-template ++-EIGEN_STRONG_INLINE void gemm_complex_extra_row( +++EIGEN_ALWAYS_INLINE void gemm_complex_extra_row( ++ const DataMapper& res, ++ const Scalar* lhs_base, ++ const Scalar* rhs_base, ++@@ -91,123 +64,88 @@ EIGEN_STRONG_INLINE void gemm_complex_extra_row( ++ const Packet& pMask); ++ ++ template ++-EIGEN_STRONG_INLINE void gemm_complex_unrolled_col( +++EIGEN_STRONG_INLINE void gemm_complex_extra_cols( ++ const DataMapper& res, ++- const Scalar* lhs_base, ++- const Scalar* rhs_base, +++ const Scalar* blockA, +++ const Scalar* blockB, ++ Index depth, ++ Index strideA, ++ Index offsetA, ++ Index strideB, ++- Index& row, ++- Index rows, +++ Index offsetB, ++ Index col, ++- Index remaining_cols, +++ Index rows, +++ Index cols, +++ Index remaining_rows, ++ const Packet& pAlphaReal, ++- const Packet& pAlphaImag); +++ const Packet& pAlphaImag, +++ const Packet& pMask); ++ ++ template ++ EIGEN_ALWAYS_INLINE Packet ploadLhs(const Scalar* lhs); ++ ++-template ++-EIGEN_ALWAYS_INLINE void bload(PacketBlock& acc, const DataMapper& res, Index row, Index col); +++template +++EIGEN_ALWAYS_INLINE void bload(PacketBlock& acc, const DataMapper& res, Index row, Index col); ++ ++-template ++-EIGEN_ALWAYS_INLINE void bload(PacketBlock& acc, const DataMapper& res, Index row, Index col); ++- ++-template ++-EIGEN_ALWAYS_INLINE void bscale(PacketBlock& acc, PacketBlock& accZ, const Packet& pAlpha); +++template +++EIGEN_ALWAYS_INLINE void bscale(PacketBlock& acc, PacketBlock& accZ, const Packet& pAlpha); ++ ++ template ++ EIGEN_ALWAYS_INLINE void bscalec(PacketBlock& aReal, PacketBlock& aImag, const Packet& bReal, const Packet& bImag, PacketBlock& cReal, PacketBlock& cImag); ++ ++-const static Packet16uc p16uc_SETCOMPLEX32_FIRST = { 0, 1, 2, 3, ++- 16, 17, 18, 19, ++- 4, 5, 6, 7, ++- 20, 21, 22, 23}; ++- ++-const static Packet16uc p16uc_SETCOMPLEX32_SECOND = { 8, 9, 10, 11, ++- 24, 25, 26, 27, ++- 12, 13, 14, 15, ++- 28, 29, 30, 31}; ++-//[a,b],[ai,bi] = [a,ai] - This is equivalent to p16uc_GETREAL64 ++-const static Packet16uc p16uc_SETCOMPLEX64_FIRST = { 0, 1, 2, 3, 4, 5, 6, 7, ++- 16, 17, 18, 19, 20, 21, 22, 23}; ++- ++-//[a,b],[ai,bi] = [b,bi] - This is equivalent to p16uc_GETIMAG64 ++-const static Packet16uc p16uc_SETCOMPLEX64_SECOND = { 8, 9, 10, 11, 12, 13, 14, 15, ++- 24, 25, 26, 27, 28, 29, 30, 31}; ++- ++- ++ // Grab two decouples real/imaginary PacketBlocks and return two coupled (real/imaginary pairs) PacketBlocks. ++-template ++-EIGEN_ALWAYS_INLINE void bcouple_common(PacketBlock& taccReal, PacketBlock& taccImag, PacketBlock& acc1, PacketBlock& acc2) ++-{ ++- acc1.packet[0].v = vec_perm(taccReal.packet[0], taccImag.packet[0], p16uc_SETCOMPLEX32_FIRST); ++- acc1.packet[1].v = vec_perm(taccReal.packet[1], taccImag.packet[1], p16uc_SETCOMPLEX32_FIRST); ++- acc1.packet[2].v = vec_perm(taccReal.packet[2], taccImag.packet[2], p16uc_SETCOMPLEX32_FIRST); ++- acc1.packet[3].v = vec_perm(taccReal.packet[3], taccImag.packet[3], p16uc_SETCOMPLEX32_FIRST); ++- ++- acc2.packet[0].v = vec_perm(taccReal.packet[0], taccImag.packet[0], p16uc_SETCOMPLEX32_SECOND); ++- acc2.packet[1].v = vec_perm(taccReal.packet[1], taccImag.packet[1], p16uc_SETCOMPLEX32_SECOND); ++- acc2.packet[2].v = vec_perm(taccReal.packet[2], taccImag.packet[2], p16uc_SETCOMPLEX32_SECOND); ++- acc2.packet[3].v = vec_perm(taccReal.packet[3], taccImag.packet[3], p16uc_SETCOMPLEX32_SECOND); ++-} ++- ++-template ++-EIGEN_ALWAYS_INLINE void bcouple(PacketBlock& taccReal, PacketBlock& taccImag, PacketBlock& tRes, PacketBlock& acc1, PacketBlock& acc2) ++-{ ++- bcouple_common(taccReal, taccImag, acc1, acc2); ++- ++- acc1.packet[0] = padd(tRes.packet[0], acc1.packet[0]); ++- acc1.packet[1] = padd(tRes.packet[1], acc1.packet[1]); ++- acc1.packet[2] = padd(tRes.packet[2], acc1.packet[2]); ++- acc1.packet[3] = padd(tRes.packet[3], acc1.packet[3]); ++- ++- acc2.packet[0] = padd(tRes.packet[4], acc2.packet[0]); ++- acc2.packet[1] = padd(tRes.packet[5], acc2.packet[1]); ++- acc2.packet[2] = padd(tRes.packet[6], acc2.packet[2]); ++- acc2.packet[3] = padd(tRes.packet[7], acc2.packet[3]); ++-} ++- ++-template ++-EIGEN_ALWAYS_INLINE void bcouple_common(PacketBlock& taccReal, PacketBlock& taccImag, PacketBlock& acc1, PacketBlock& acc2) +++template +++EIGEN_ALWAYS_INLINE void bcouple_common(PacketBlock& taccReal, PacketBlock& taccImag, PacketBlock& acc1, PacketBlock& acc2) ++ { ++- acc1.packet[0].v = vec_perm(taccReal.packet[0], taccImag.packet[0], p16uc_SETCOMPLEX32_FIRST); ++- ++- acc2.packet[0].v = vec_perm(taccReal.packet[0], taccImag.packet[0], p16uc_SETCOMPLEX32_SECOND); +++ acc1.packet[0].v = vec_mergeh(taccReal.packet[0], taccImag.packet[0]); +++ if (N > 1) { +++ acc1.packet[1].v = vec_mergeh(taccReal.packet[1], taccImag.packet[1]); +++ } +++ if (N > 2) { +++ acc1.packet[2].v = vec_mergeh(taccReal.packet[2], taccImag.packet[2]); +++ } +++ if (N > 3) { +++ acc1.packet[3].v = vec_mergeh(taccReal.packet[3], taccImag.packet[3]); +++ } +++ +++ acc2.packet[0].v = vec_mergel(taccReal.packet[0], taccImag.packet[0]); +++ if (N > 1) { +++ acc2.packet[1].v = vec_mergel(taccReal.packet[1], taccImag.packet[1]); +++ } +++ if (N > 2) { +++ acc2.packet[2].v = vec_mergel(taccReal.packet[2], taccImag.packet[2]); +++ } +++ if (N > 3) { +++ acc2.packet[3].v = vec_mergel(taccReal.packet[3], taccImag.packet[3]); +++ } ++ } ++ ++-template ++-EIGEN_ALWAYS_INLINE void bcouple(PacketBlock& taccReal, PacketBlock& taccImag, PacketBlock& tRes, PacketBlock& acc1, PacketBlock& acc2) +++template +++EIGEN_ALWAYS_INLINE void bcouple(PacketBlock& taccReal, PacketBlock& taccImag, PacketBlock& tRes, PacketBlock& acc1, PacketBlock& acc2) ++ { ++- bcouple_common(taccReal, taccImag, acc1, acc2); +++ bcouple_common(taccReal, taccImag, acc1, acc2); ++ ++ acc1.packet[0] = padd(tRes.packet[0], acc1.packet[0]); ++- ++- acc2.packet[0] = padd(tRes.packet[1], acc2.packet[0]); ++-} ++- ++-template<> ++-EIGEN_ALWAYS_INLINE void bcouple_common(PacketBlock& taccReal, PacketBlock& taccImag, PacketBlock& acc1, PacketBlock& acc2) ++-{ ++- acc1.packet[0].v = vec_perm(taccReal.packet[0], taccImag.packet[0], p16uc_SETCOMPLEX64_FIRST); ++- acc1.packet[1].v = vec_perm(taccReal.packet[1], taccImag.packet[1], p16uc_SETCOMPLEX64_FIRST); ++- acc1.packet[2].v = vec_perm(taccReal.packet[2], taccImag.packet[2], p16uc_SETCOMPLEX64_FIRST); ++- acc1.packet[3].v = vec_perm(taccReal.packet[3], taccImag.packet[3], p16uc_SETCOMPLEX64_FIRST); ++- ++- acc2.packet[0].v = vec_perm(taccReal.packet[0], taccImag.packet[0], p16uc_SETCOMPLEX64_SECOND); ++- acc2.packet[1].v = vec_perm(taccReal.packet[1], taccImag.packet[1], p16uc_SETCOMPLEX64_SECOND); ++- acc2.packet[2].v = vec_perm(taccReal.packet[2], taccImag.packet[2], p16uc_SETCOMPLEX64_SECOND); ++- acc2.packet[3].v = vec_perm(taccReal.packet[3], taccImag.packet[3], p16uc_SETCOMPLEX64_SECOND); ++-} ++- ++-template<> ++-EIGEN_ALWAYS_INLINE void bcouple_common(PacketBlock& taccReal, PacketBlock& taccImag, PacketBlock& acc1, PacketBlock& acc2) ++-{ ++- acc1.packet[0].v = vec_perm(taccReal.packet[0], taccImag.packet[0], p16uc_SETCOMPLEX64_FIRST); ++- ++- acc2.packet[0].v = vec_perm(taccReal.packet[0], taccImag.packet[0], p16uc_SETCOMPLEX64_SECOND); +++ if (N > 1) { +++ acc1.packet[1] = padd(tRes.packet[1], acc1.packet[1]); +++ } +++ if (N > 2) { +++ acc1.packet[2] = padd(tRes.packet[2], acc1.packet[2]); +++ } +++ if (N > 3) { +++ acc1.packet[3] = padd(tRes.packet[3], acc1.packet[3]); +++ } +++ +++ acc2.packet[0] = padd(tRes.packet[0+N], acc2.packet[0]); +++ if (N > 1) { +++ acc2.packet[1] = padd(tRes.packet[1+N], acc2.packet[1]); +++ } +++ if (N > 2) { +++ acc2.packet[2] = padd(tRes.packet[2+N], acc2.packet[2]); +++ } +++ if (N > 3) { +++ acc2.packet[3] = padd(tRes.packet[3+N], acc2.packet[3]); +++ } ++ } ++ ++ // This is necessary because ploadRhs for double returns a pair of vectors when MMA is enabled. ++diff --git a/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h b/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h ++index 6540c6fa6..5b4449537 100644 ++--- a/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +++++ b/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h ++@@ -11,7 +11,7 @@ ++ #ifndef EIGEN_MATRIX_PRODUCT_MMA_ALTIVEC_H ++ #define EIGEN_MATRIX_PRODUCT_MMA_ALTIVEC_H ++ ++-#pragma GCC target("cpu=power10") +++#pragma GCC target("cpu=power10,htm") ++ ++ #ifdef __has_builtin ++ #if !__has_builtin(__builtin_vsx_assemble_pair) ++@@ -30,37 +30,37 @@ EIGEN_ALWAYS_INLINE void bsetzeroMMA(__vector_quad* acc) ++ } ++ ++ template ++-EIGEN_ALWAYS_INLINE void storeAccumulator(Index i, Index j, const DataMapper& data, const Packet& alpha, __vector_quad* acc) +++EIGEN_ALWAYS_INLINE void storeAccumulator(Index i, const DataMapper& data, const Packet& alpha, __vector_quad* acc) ++ { ++ PacketBlock result; ++ __builtin_mma_disassemble_acc(&result.packet, acc); ++ ++ PacketBlock tRes; ++- bload(tRes, data, i, j); +++ bload(tRes, data, i, 0); ++ ++- bscale(tRes, result, alpha); +++ bscale(tRes, result, alpha); ++ ++- data.template storePacketBlock(i, j, tRes); +++ data.template storePacketBlock(i, 0, tRes); ++ } ++ ++-template ++-EIGEN_ALWAYS_INLINE void storeComplexAccumulator(Index i, Index j, const DataMapper& data, const Packet& alphaReal, const Packet& alphaImag, __vector_quad* accReal, __vector_quad* accImag) +++template +++EIGEN_ALWAYS_INLINE void storeComplexAccumulator(Index i, const DataMapper& data, const Packet& alphaReal, const Packet& alphaImag, __vector_quad* accReal, __vector_quad* accImag) ++ { ++ PacketBlock resultReal, resultImag; ++ __builtin_mma_disassemble_acc(&resultReal.packet, accReal); ++ __builtin_mma_disassemble_acc(&resultImag.packet, accImag); ++ ++ PacketBlock tRes; ++- bload(tRes, data, i, j); +++ bload(tRes, data, i, 0); ++ ++ PacketBlock taccReal, taccImag; ++ bscalec(resultReal, resultImag, alphaReal, alphaImag, taccReal, taccImag); ++ ++ PacketBlock acc1, acc2; ++- bcouple(taccReal, taccImag, tRes, acc1, acc2); +++ bcouple(taccReal, taccImag, tRes, acc1, acc2); ++ ++- data.template storePacketBlock(i + N*accColsC, j, acc1); ++- data.template storePacketBlock(i + (N+1)*accColsC, j, acc2); +++ data.template storePacketBlock(i, 0, acc1); +++ data.template storePacketBlock(i + accColsC, 0, acc2); ++ } ++ ++ // Defaults to float32, since Eigen still supports C++03 we can't use default template arguments ++@@ -125,7 +125,7 @@ EIGEN_ALWAYS_INLINE void pgercMMA(__vector_quad* accReal, __vector_quad* accImag ++ template ++ EIGEN_ALWAYS_INLINE void ploadRhsMMA(const Scalar* rhs, Packet& rhsV) ++ { ++- rhsV = ploadRhs((const Scalar*)(rhs)); +++ rhsV = ploadRhs(rhs); ++ } ++ ++ template<> ++@@ -184,12 +184,11 @@ EIGEN_ALWAYS_INLINE void ploadRhsMMA(const float*, __vector_pair&) ++ } ++ ++ #define MICRO_MMA_UNROLL_TYPE_PEEL(func, func2, type) \ ++- type rhsV0, rhsV1, rhsV2, rhsV3, rhsV4, rhsV5, rhsV6, rhsV7, rhsV8, rhsV9; \ +++ type rhsV0, rhsV1, rhsV2, rhsV3, rhsV4, rhsV5, rhsV6, rhsV7; \ ++ MICRO_MMA_TYPE_PEEL(func,func2,type,0); MICRO_MMA_TYPE_PEEL(func,func2,type,1); \ ++ MICRO_MMA_TYPE_PEEL(func,func2,type,2); MICRO_MMA_TYPE_PEEL(func,func2,type,3); \ ++ MICRO_MMA_TYPE_PEEL(func,func2,type,4); MICRO_MMA_TYPE_PEEL(func,func2,type,5); \ ++- MICRO_MMA_TYPE_PEEL(func,func2,type,6); MICRO_MMA_TYPE_PEEL(func,func2,type,7); \ ++- MICRO_MMA_TYPE_PEEL(func,func2,type,8); MICRO_MMA_TYPE_PEEL(func,func2,type,9); +++ MICRO_MMA_TYPE_PEEL(func,func2,type,6); MICRO_MMA_TYPE_PEEL(func,func2,type,7); ++ ++ #define MICRO_MMA_UNROLL_TYPE_ONE(func, func2, type) \ ++ type rhsV0; \ ++@@ -222,7 +221,7 @@ EIGEN_ALWAYS_INLINE void ploadRhsMMA(const float*, __vector_pair&) ++ ++ #define MICRO_MMA_SRC_PTR_ONE(iter) \ ++ if (unroll_factor > iter) { \ ++- lhs_ptr##iter = lhs_base + ( (row/accCols) + iter )*strideA*accCols + accCols*offsetA; \ +++ lhs_ptr##iter = lhs_base + ( (row/accCols) + iter )*strideA*accCols; \ ++ } else { \ ++ EIGEN_UNUSED_VARIABLE(lhs_ptr##iter); \ ++ } ++@@ -238,21 +237,19 @@ EIGEN_ALWAYS_INLINE void ploadRhsMMA(const float*, __vector_pair&) ++ ++ #define MICRO_MMA_STORE_ONE(iter) \ ++ if (unroll_factor > iter) { \ ++- storeAccumulator(row + iter*accCols, col, res, pAlpha, &accZero##iter); \ +++ storeAccumulator(row + iter*accCols, res, pAlpha, &accZero##iter); \ ++ } ++ ++ #define MICRO_MMA_STORE MICRO_MMA_UNROLL(MICRO_MMA_STORE_ONE) ++ ++ template ++-EIGEN_STRONG_INLINE void gemm_unrolled_MMA_iteration( +++EIGEN_ALWAYS_INLINE void gemm_unrolled_MMA_iteration( ++ const DataMapper& res, ++ const Scalar* lhs_base, ++ const Scalar* rhs_base, ++ Index depth, ++ Index strideA, ++- Index offsetA, ++ Index& row, ++- Index col, ++ const Packet& pAlpha) ++ { ++ const Scalar* rhs_ptr = rhs_base; ++@@ -278,94 +275,98 @@ EIGEN_STRONG_INLINE void gemm_unrolled_MMA_iteration( ++ row += unroll_factor*accCols; ++ } ++ ++-template ++-void gemmMMA(const DataMapper& res, const Scalar* blockA, const Scalar* blockB, Index rows, Index depth, Index cols, Scalar alpha, Index strideA, Index strideB, Index offsetA, Index offsetB) +++template +++EIGEN_ALWAYS_INLINE void gemmMMA_cols( +++ const DataMapper& res, +++ const Scalar* blockA, +++ const Scalar* blockB, +++ Index depth, +++ Index strideA, +++ Index offsetA, +++ Index strideB, +++ Index offsetB, +++ Index col, +++ Index rows, +++ Index cols, +++ Index remaining_rows, +++ const Packet& pAlpha, +++ const Packet& pMask) ++ { ++- const Index remaining_rows = rows % accCols; ++- const Index remaining_cols = cols % accRows; ++- ++- if( strideA == -1 ) strideA = depth; ++- if( strideB == -1 ) strideB = depth; ++- ++- const Packet pAlpha = pset1(alpha); ++- const Packet pMask = bmask((const int)(remaining_rows)); +++ const DataMapper res3 = res.getSubMapper(0, col); ++ ++- Index col = 0; ++- for(; col + accRows <= cols; col += accRows) ++- { ++- const Scalar* rhs_base = blockB + col*strideB + accRows*offsetB; ++- const Scalar* lhs_base = blockA; +++ const Scalar* rhs_base = blockB + col*strideB + accRows*offsetB; +++ const Scalar* lhs_base = blockA + accCols*offsetA; +++ Index row = 0; ++ ++- Index row = 0; ++ #define MAX_MMA_UNROLL 7 ++- while(row + MAX_MMA_UNROLL*accCols <= rows) { ++- gemm_unrolled_MMA_iteration(res, lhs_base, rhs_base, depth, strideA, offsetA, row, col, pAlpha); ++- } ++- switch( (rows-row)/accCols ) { +++ while(row + MAX_MMA_UNROLL*accCols <= rows) { +++ gemm_unrolled_MMA_iteration(res3, lhs_base, rhs_base, depth, strideA, row, pAlpha); +++ } +++ switch( (rows-row)/accCols ) { ++ #if MAX_MMA_UNROLL > 7 ++- case 7: ++- gemm_unrolled_MMA_iteration<7, Scalar, Packet, RhsPacket, DataMapper, Index, accRows, accCols>(res, lhs_base, rhs_base, depth, strideA, offsetA, row, col, pAlpha); ++- break; +++ case 7: +++ gemm_unrolled_MMA_iteration<7, Scalar, Packet, RhsPacket, DataMapper, Index, accRows, accCols>(res3, lhs_base, rhs_base, depth, strideA, row, pAlpha); +++ break; ++ #endif ++ #if MAX_MMA_UNROLL > 6 ++- case 6: ++- gemm_unrolled_MMA_iteration<6, Scalar, Packet, RhsPacket, DataMapper, Index, accRows, accCols>(res, lhs_base, rhs_base, depth, strideA, offsetA, row, col, pAlpha); ++- break; +++ case 6: +++ gemm_unrolled_MMA_iteration<6, Scalar, Packet, RhsPacket, DataMapper, Index, accRows, accCols>(res3, lhs_base, rhs_base, depth, strideA, row, pAlpha); +++ break; ++ #endif ++ #if MAX_MMA_UNROLL > 5 ++- case 5: ++- gemm_unrolled_MMA_iteration<5, Scalar, Packet, RhsPacket, DataMapper, Index, accRows, accCols>(res, lhs_base, rhs_base, depth, strideA, offsetA, row, col, pAlpha); ++- break; +++ case 5: +++ gemm_unrolled_MMA_iteration<5, Scalar, Packet, RhsPacket, DataMapper, Index, accRows, accCols>(res3, lhs_base, rhs_base, depth, strideA, row, pAlpha); +++ break; ++ #endif ++ #if MAX_MMA_UNROLL > 4 ++- case 4: ++- gemm_unrolled_MMA_iteration<4, Scalar, Packet, RhsPacket, DataMapper, Index, accRows, accCols>(res, lhs_base, rhs_base, depth, strideA, offsetA, row, col, pAlpha); ++- break; +++ case 4: +++ gemm_unrolled_MMA_iteration<4, Scalar, Packet, RhsPacket, DataMapper, Index, accRows, accCols>(res3, lhs_base, rhs_base, depth, strideA, row, pAlpha); +++ break; ++ #endif ++ #if MAX_MMA_UNROLL > 3 ++- case 3: ++- gemm_unrolled_MMA_iteration<3, Scalar, Packet, RhsPacket, DataMapper, Index, accRows, accCols>(res, lhs_base, rhs_base, depth, strideA, offsetA, row, col, pAlpha); ++- break; +++ case 3: +++ gemm_unrolled_MMA_iteration<3, Scalar, Packet, RhsPacket, DataMapper, Index, accRows, accCols>(res3, lhs_base, rhs_base, depth, strideA, row, pAlpha); +++ break; ++ #endif ++ #if MAX_MMA_UNROLL > 2 ++- case 2: ++- gemm_unrolled_MMA_iteration<2, Scalar, Packet, RhsPacket, DataMapper, Index, accRows, accCols>(res, lhs_base, rhs_base, depth, strideA, offsetA, row, col, pAlpha); ++- break; +++ case 2: +++ gemm_unrolled_MMA_iteration<2, Scalar, Packet, RhsPacket, DataMapper, Index, accRows, accCols>(res3, lhs_base, rhs_base, depth, strideA, row, pAlpha); +++ break; ++ #endif ++ #if MAX_MMA_UNROLL > 1 ++- case 1: ++- gemm_unrolled_MMA_iteration<1, Scalar, Packet, RhsPacket, DataMapper, Index, accRows, accCols>(res, lhs_base, rhs_base, depth, strideA, offsetA, row, col, pAlpha); ++- break; +++ case 1: +++ gemm_unrolled_MMA_iteration<1, Scalar, Packet, RhsPacket, DataMapper, Index, accRows, accCols>(res3, lhs_base, rhs_base, depth, strideA, row, pAlpha); +++ break; ++ #endif ++- default: ++- break; ++- } +++ default: +++ break; +++ } ++ #undef MAX_MMA_UNROLL ++ ++- if(remaining_rows > 0) ++- { ++- gemm_extra_row(res, lhs_base, rhs_base, depth, strideA, offsetA, row, col, rows, cols, remaining_rows, pAlpha, pMask); ++- } ++- } +++ if(remaining_rows > 0) +++ { +++ gemm_extra_row(res3, blockA, rhs_base, depth, strideA, offsetA, row, col, rows, cols, remaining_rows, pAlpha, pMask); +++ } +++} ++ ++- if(remaining_cols > 0) ++- { ++- const Scalar* rhs_base = blockB + col*strideB + remaining_cols*offsetB; ++- const Scalar* lhs_base = blockA; +++template +++void gemmMMA(const DataMapper& res, const Scalar* blockA, const Scalar* blockB, Index rows, Index depth, Index cols, Scalar alpha, Index strideA, Index strideB, Index offsetA, Index offsetB) +++{ +++ const Index remaining_rows = rows % accCols; ++ ++- for(; col < cols; col++) ++- { ++- Index row = 0; +++ if( strideA == -1 ) strideA = depth; +++ if( strideB == -1 ) strideB = depth; ++ ++- gemm_unrolled_col(res, lhs_base, rhs_base, depth, strideA, offsetA, row, rows, col, remaining_cols, pAlpha); +++ const Packet pAlpha = pset1(alpha); +++ const Packet pMask = bmask((const int)(remaining_rows)); ++ ++- if (remaining_rows > 0) ++- { ++- gemm_extra_col(res, lhs_base, rhs_base, depth, strideA, offsetA, row, col, remaining_rows, remaining_cols, pAlpha); ++- } ++- rhs_base++; ++- } +++ Index col = 0; +++ for(; col + accRows <= cols; col += accRows) +++ { +++ gemmMMA_cols(res, blockA, blockB, depth, strideA, offsetA, strideB, offsetB, col, rows, cols, remaining_rows, pAlpha, pMask); ++ } +++ +++ gemm_extra_cols(res, blockA, blockB, depth, strideA, offsetA, strideB, offsetB, col, rows, cols, remaining_rows, pAlpha, pMask); ++ } ++ ++ #define accColsC (accCols / 2) ++@@ -373,21 +374,20 @@ void gemmMMA(const DataMapper& res, const Scalar* blockA, const Scalar* blockB, ++ #define advanceCols ((RhsIsReal) ? 1 : 2) ++ ++ // PEEL_COMPLEX_MMA loop factor. ++-#define PEEL_COMPLEX_MMA 7 +++#define PEEL_COMPLEX_MMA 3 ++ ++ #define MICRO_COMPLEX_MMA_UNROLL(func) \ ++- func(0) func(1) func(2) func(3) func(4) +++ func(0) func(1) func(2) func(3) ++ ++ #define MICRO_COMPLEX_MMA_LOAD_ONE(iter) \ ++ if (unroll_factor > iter) { \ ++ lhsV##iter = ploadLhs(lhs_ptr_real##iter); \ ++- lhs_ptr_real##iter += accCols; \ ++ if(!LhsIsReal) { \ ++- lhsVi##iter = ploadLhs(lhs_ptr_imag##iter); \ ++- lhs_ptr_imag##iter += accCols; \ +++ lhsVi##iter = ploadLhs(lhs_ptr_real##iter + imag_delta); \ ++ } else { \ ++ EIGEN_UNUSED_VARIABLE(lhsVi##iter); \ ++ } \ +++ lhs_ptr_real##iter += accCols; \ ++ } else { \ ++ EIGEN_UNUSED_VARIABLE(lhsV##iter); \ ++ EIGEN_UNUSED_VARIABLE(lhsVi##iter); \ ++@@ -400,8 +400,8 @@ void gemmMMA(const DataMapper& res, const Scalar* blockA, const Scalar* blockB, ++ ++ #define MICRO_COMPLEX_MMA_TYPE_PEEL(func, func2, type, peel) \ ++ if (PEEL_COMPLEX_MMA > peel) { \ ++- Packet lhsV0, lhsV1, lhsV2, lhsV3, lhsV4; \ ++- Packet lhsVi0, lhsVi1, lhsVi2, lhsVi3, lhsVi4; \ +++ Packet lhsV0, lhsV1, lhsV2, lhsV3; \ +++ Packet lhsVi0, lhsVi1, lhsVi2, lhsVi3; \ ++ ploadRhsMMA(rhs_ptr_real + (accRows * peel), rhsV##peel); \ ++ if(!RhsIsReal) { \ ++ ploadRhsMMA(rhs_ptr_imag + (accRows * peel), rhsVi##peel); \ ++@@ -409,20 +409,17 @@ void gemmMMA(const DataMapper& res, const Scalar* blockA, const Scalar* blockB, ++ EIGEN_UNUSED_VARIABLE(rhsVi##peel); \ ++ } \ ++ MICRO_COMPLEX_MMA_UNROLL(func2); \ ++- func(0,type,peel) func(1,type,peel) func(2,type,peel) func(3,type,peel) func(4,type,peel) \ +++ func(0,type,peel) func(1,type,peel) func(2,type,peel) func(3,type,peel) \ ++ } else { \ ++ EIGEN_UNUSED_VARIABLE(rhsV##peel); \ ++ EIGEN_UNUSED_VARIABLE(rhsVi##peel); \ ++ } ++ ++ #define MICRO_COMPLEX_MMA_UNROLL_TYPE_PEEL(func, func2, type) \ ++- type rhsV0, rhsV1, rhsV2, rhsV3, rhsV4, rhsV5, rhsV6, rhsV7, rhsV8, rhsV9; \ ++- type rhsVi0, rhsVi1, rhsVi2, rhsVi3, rhsVi4, rhsVi5, rhsVi6, rhsVi7, rhsVi8, rhsVi9; \ +++ type rhsV0, rhsV1, rhsV2, rhsV3; \ +++ type rhsVi0, rhsVi1, rhsVi2, rhsVi3; \ ++ MICRO_COMPLEX_MMA_TYPE_PEEL(func,func2,type,0); MICRO_COMPLEX_MMA_TYPE_PEEL(func,func2,type,1); \ ++- MICRO_COMPLEX_MMA_TYPE_PEEL(func,func2,type,2); MICRO_COMPLEX_MMA_TYPE_PEEL(func,func2,type,3); \ ++- MICRO_COMPLEX_MMA_TYPE_PEEL(func,func2,type,4); MICRO_COMPLEX_MMA_TYPE_PEEL(func,func2,type,5); \ ++- MICRO_COMPLEX_MMA_TYPE_PEEL(func,func2,type,6); MICRO_COMPLEX_MMA_TYPE_PEEL(func,func2,type,7); \ ++- MICRO_COMPLEX_MMA_TYPE_PEEL(func,func2,type,8); MICRO_COMPLEX_MMA_TYPE_PEEL(func,func2,type,9); +++ MICRO_COMPLEX_MMA_TYPE_PEEL(func,func2,type,2); MICRO_COMPLEX_MMA_TYPE_PEEL(func,func2,type,3); ++ ++ #define MICRO_COMPLEX_MMA_UNROLL_TYPE_ONE(func, func2, type) \ ++ type rhsV0, rhsVi0; \ ++@@ -459,15 +456,9 @@ void gemmMMA(const DataMapper& res, const Scalar* blockA, const Scalar* blockB, ++ ++ #define MICRO_COMPLEX_MMA_SRC_PTR_ONE(iter) \ ++ if (unroll_factor > iter) { \ ++- lhs_ptr_real##iter = lhs_base + ( ((advanceRows*row)/accCols) + iter*advanceRows )*strideA*accCols + accCols*offsetA; \ ++- if(!LhsIsReal) { \ ++- lhs_ptr_imag##iter = lhs_ptr_real##iter + accCols*strideA; \ ++- } else { \ ++- EIGEN_UNUSED_VARIABLE(lhs_ptr_imag##iter); \ ++- } \ +++ lhs_ptr_real##iter = lhs_base + ( ((advanceRows*row)/accCols) + iter*advanceRows )*strideA*accCols; \ ++ } else { \ ++ EIGEN_UNUSED_VARIABLE(lhs_ptr_real##iter); \ ++- EIGEN_UNUSED_VARIABLE(lhs_ptr_imag##iter); \ ++ } ++ ++ #define MICRO_COMPLEX_MMA_SRC_PTR MICRO_COMPLEX_MMA_UNROLL(MICRO_COMPLEX_MMA_SRC_PTR_ONE) ++@@ -475,45 +466,40 @@ void gemmMMA(const DataMapper& res, const Scalar* blockA, const Scalar* blockB, ++ #define MICRO_COMPLEX_MMA_PREFETCH_ONE(iter) \ ++ if (unroll_factor > iter) { \ ++ EIGEN_POWER_PREFETCH(lhs_ptr_real##iter); \ ++- if(!LhsIsReal) { \ ++- EIGEN_POWER_PREFETCH(lhs_ptr_imag##iter); \ ++- } \ ++ } ++ ++ #define MICRO_COMPLEX_MMA_PREFETCH MICRO_COMPLEX_MMA_UNROLL(MICRO_COMPLEX_MMA_PREFETCH_ONE) ++ ++ #define MICRO_COMPLEX_MMA_STORE_ONE(iter) \ ++ if (unroll_factor > iter) { \ ++- storeComplexAccumulator(row + iter*accCols, col, res, pAlphaReal, pAlphaImag, &accReal##iter, &accImag##iter); \ +++ storeComplexAccumulator(row + iter*accCols, res, pAlphaReal, pAlphaImag, &accReal##iter, &accImag##iter); \ ++ } ++ ++ #define MICRO_COMPLEX_MMA_STORE MICRO_COMPLEX_MMA_UNROLL(MICRO_COMPLEX_MMA_STORE_ONE) ++ ++ template ++-EIGEN_STRONG_INLINE void gemm_complex_unrolled_MMA_iteration( +++EIGEN_ALWAYS_INLINE void gemm_complex_unrolled_MMA_iteration( ++ const DataMapper& res, ++ const Scalar* lhs_base, ++ const Scalar* rhs_base, ++ Index depth, ++ Index strideA, ++- Index offsetA, ++ Index strideB, ++ Index& row, ++- Index col, ++ const Packet& pAlphaReal, ++ const Packet& pAlphaImag) ++ { ++ const Scalar* rhs_ptr_real = rhs_base; ++- const Scalar* rhs_ptr_imag; +++ const Scalar* rhs_ptr_imag = NULL; +++ const Index imag_delta = accCols*strideA; ++ if(!RhsIsReal) { ++ rhs_ptr_imag = rhs_base + accRows*strideB; ++ } else { ++ EIGEN_UNUSED_VARIABLE(rhs_ptr_imag); ++ } ++- const Scalar* lhs_ptr_real0 = NULL, * lhs_ptr_imag0 = NULL, * lhs_ptr_real1 = NULL, * lhs_ptr_imag1 = NULL; ++- const Scalar* lhs_ptr_real2 = NULL, * lhs_ptr_imag2 = NULL, * lhs_ptr_real3 = NULL, * lhs_ptr_imag3 = NULL; ++- const Scalar* lhs_ptr_real4 = NULL, * lhs_ptr_imag4 = NULL; ++- __vector_quad accReal0, accImag0, accReal1, accImag1, accReal2, accImag2, accReal3, accImag3, accReal4, accImag4; +++ const Scalar* lhs_ptr_real0 = NULL, * lhs_ptr_real1 = NULL; +++ const Scalar* lhs_ptr_real2 = NULL, * lhs_ptr_real3 = NULL; +++ __vector_quad accReal0, accImag0, accReal1, accImag1, accReal2, accImag2, accReal3, accImag3; ++ ++ MICRO_COMPLEX_MMA_SRC_PTR ++ MICRO_COMPLEX_MMA_DST_PTR ++@@ -537,11 +523,70 @@ EIGEN_STRONG_INLINE void gemm_complex_unrolled_MMA_iteration( ++ row += unroll_factor*accCols; ++ } ++ +++template +++EIGEN_ALWAYS_INLINE void gemmMMA_complex_cols( +++ const DataMapper& res, +++ const Scalar* blockA, +++ const Scalar* blockB, +++ Index depth, +++ Index strideA, +++ Index offsetA, +++ Index strideB, +++ Index offsetB, +++ Index col, +++ Index rows, +++ Index cols, +++ Index remaining_rows, +++ const Packet& pAlphaReal, +++ const Packet& pAlphaImag, +++ const Packet& pMask) +++{ +++ const DataMapper res3 = res.getSubMapper(0, col); +++ +++ const Scalar* rhs_base = blockB + advanceCols*col*strideB + accRows*offsetB; +++ const Scalar* lhs_base = blockA + accCols*offsetA; +++ Index row = 0; +++ +++#define MAX_COMPLEX_MMA_UNROLL 4 +++ while(row + MAX_COMPLEX_MMA_UNROLL*accCols <= rows) { +++ gemm_complex_unrolled_MMA_iteration(res3, lhs_base, rhs_base, depth, strideA, strideB, row, pAlphaReal, pAlphaImag); +++ } +++ switch( (rows-row)/accCols ) { +++#if MAX_COMPLEX_MMA_UNROLL > 4 +++ case 4: +++ gemm_complex_unrolled_MMA_iteration<4, Scalar, Packet, Packetc, RhsPacket, DataMapper, Index, accRows, accCols, ConjugateLhs, ConjugateRhs, LhsIsReal, RhsIsReal>(res3, lhs_base, rhs_base, depth, strideA, strideB, row, pAlphaReal, pAlphaImag); +++ break; +++#endif +++#if MAX_COMPLEX_MMA_UNROLL > 3 +++ case 3: +++ gemm_complex_unrolled_MMA_iteration<3, Scalar, Packet, Packetc, RhsPacket, DataMapper, Index, accRows, accCols, ConjugateLhs, ConjugateRhs, LhsIsReal, RhsIsReal>(res3, lhs_base, rhs_base, depth, strideA, strideB, row, pAlphaReal, pAlphaImag); +++ break; +++#endif +++#if MAX_COMPLEX_MMA_UNROLL > 2 +++ case 2: +++ gemm_complex_unrolled_MMA_iteration<2, Scalar, Packet, Packetc, RhsPacket, DataMapper, Index, accRows, accCols, ConjugateLhs, ConjugateRhs, LhsIsReal, RhsIsReal>(res3, lhs_base, rhs_base, depth, strideA, strideB, row, pAlphaReal, pAlphaImag); +++ break; +++#endif +++#if MAX_COMPLEX_MMA_UNROLL > 1 +++ case 1: +++ gemm_complex_unrolled_MMA_iteration<1, Scalar, Packet, Packetc, RhsPacket, DataMapper, Index, accRows, accCols, ConjugateLhs, ConjugateRhs, LhsIsReal, RhsIsReal>(res3, lhs_base, rhs_base, depth, strideA, strideB, row, pAlphaReal, pAlphaImag); +++ break; +++#endif +++ default: +++ break; +++ } +++#undef MAX_COMPLEX_MMA_UNROLL +++ +++ if(remaining_rows > 0) +++ { +++ gemm_complex_extra_row(res3, blockA, rhs_base, depth, strideA, offsetA, strideB, row, col, rows, cols, remaining_rows, pAlphaReal, pAlphaImag, pMask); +++ } +++} +++ ++ template ++ void gemm_complexMMA(const DataMapper& res, const LhsScalar* blockAc, const RhsScalar* blockBc, Index rows, Index depth, Index cols, Scalarc alpha, Index strideA, Index strideB, Index offsetA, Index offsetB) ++ { ++ const Index remaining_rows = rows % accCols; ++- const Index remaining_cols = cols % accRows; ++ ++ if( strideA == -1 ) strideA = depth; ++ if( strideB == -1 ) strideB = depth; ++@@ -556,64 +601,10 @@ void gemm_complexMMA(const DataMapper& res, const LhsScalar* blockAc, const RhsS ++ Index col = 0; ++ for(; col + accRows <= cols; col += accRows) ++ { ++- const Scalar* rhs_base = blockB + advanceCols*col*strideB + accRows*offsetB; ++- const Scalar* lhs_base = blockA; ++- Index row = 0; ++- ++-#define MAX_COMPLEX_MMA_UNROLL 4 ++- while(row + MAX_COMPLEX_MMA_UNROLL*accCols <= rows) { ++- gemm_complex_unrolled_MMA_iteration(res, lhs_base, rhs_base, depth, strideA, offsetA, strideB, row, col, pAlphaReal, pAlphaImag); ++- } ++- switch( (rows-row)/accCols ) { ++-#if MAX_COMPLEX_MMA_UNROLL > 4 ++- case 4: ++- gemm_complex_unrolled_MMA_iteration<4, Scalar, Packet, Packetc, RhsPacket, DataMapper, Index, accRows, accCols, ConjugateLhs, ConjugateRhs, LhsIsReal, RhsIsReal>(res, lhs_base, rhs_base, depth, strideA, offsetA, strideB, row, col, pAlphaReal, pAlphaImag); ++- break; ++-#endif ++-#if MAX_COMPLEX_MMA_UNROLL > 3 ++- case 3: ++- gemm_complex_unrolled_MMA_iteration<3, Scalar, Packet, Packetc, RhsPacket, DataMapper, Index, accRows, accCols, ConjugateLhs, ConjugateRhs, LhsIsReal, RhsIsReal>(res, lhs_base, rhs_base, depth, strideA, offsetA, strideB, row, col, pAlphaReal, pAlphaImag); ++- break; ++-#endif ++-#if MAX_COMPLEX_MMA_UNROLL > 2 ++- case 2: ++- gemm_complex_unrolled_MMA_iteration<2, Scalar, Packet, Packetc, RhsPacket, DataMapper, Index, accRows, accCols, ConjugateLhs, ConjugateRhs, LhsIsReal, RhsIsReal>(res, lhs_base, rhs_base, depth, strideA, offsetA, strideB, row, col, pAlphaReal, pAlphaImag); ++- break; ++-#endif ++-#if MAX_COMPLEX_MMA_UNROLL > 1 ++- case 1: ++- gemm_complex_unrolled_MMA_iteration<1, Scalar, Packet, Packetc, RhsPacket, DataMapper, Index, accRows, accCols, ConjugateLhs, ConjugateRhs, LhsIsReal, RhsIsReal>(res, lhs_base, rhs_base, depth, strideA, offsetA, strideB, row, col, pAlphaReal, pAlphaImag); ++- break; ++-#endif ++- default: ++- break; ++- } ++-#undef MAX_COMPLEX_MMA_UNROLL ++- ++- if(remaining_rows > 0) ++- { ++- gemm_complex_extra_row(res, lhs_base, rhs_base, depth, strideA, offsetA, strideB, row, col, rows, cols, remaining_rows, pAlphaReal, pAlphaImag, pMask); ++- } +++ gemmMMA_complex_cols(res, blockA, blockB, depth, strideA, offsetA, strideB, offsetB, col, rows, cols, remaining_rows, pAlphaReal, pAlphaImag, pMask); ++ } ++ ++- if(remaining_cols > 0) ++- { ++- const Scalar* rhs_base = blockB + advanceCols*col*strideB + remaining_cols*offsetB; ++- const Scalar* lhs_base = blockA; ++- ++- for(; col < cols; col++) ++- { ++- Index row = 0; ++- ++- gemm_complex_unrolled_col(res, lhs_base, rhs_base, depth, strideA, offsetA, strideB, row, rows, col, remaining_cols, pAlphaReal, pAlphaImag); ++- ++- if (remaining_rows > 0) ++- { ++- gemm_complex_extra_col(res, lhs_base, rhs_base, depth, strideA, offsetA, strideB, row, col, remaining_rows, remaining_cols, pAlphaReal, pAlphaImag); ++- } ++- rhs_base++; ++- } ++- } +++ gemm_complex_extra_cols(res, blockA, blockB, depth, strideA, offsetA, strideB, offsetB, col, rows, cols, remaining_rows, pAlphaReal, pAlphaImag, pMask); ++ } ++ ++ #undef accColsC +diff --git a/third_party/eigen3/workspace.bzl b/third_party/eigen3/workspace.bzl +index 21799365434..cd1feb4d29c 100644 +--- a/third_party/eigen3/workspace.bzl ++++ b/third_party/eigen3/workspace.bzl +@@ -16,6 +16,7 @@ def repo(): + build_file = "//third_party/eigen3:eigen_archive.BUILD", + sha256 = EIGEN_SHA256, + strip_prefix = "eigen-{commit}".format(commit = EIGEN_COMMIT), ++ patch_file = "//third_party/eigen3:fix-ppc-gemm.patch", + urls = [ + "https://storage.googleapis.com/mirror.tensorflow.org/gitlab.com/libeigen/eigen/-/archive/{commit}/eigen-{commit}.tar.gz".format(commit = EIGEN_COMMIT), + "https://gitlab.com/libeigen/eigen/-/archive/{commit}/eigen-{commit}.tar.gz".format(commit = EIGEN_COMMIT), +From bc900ca63038d44342d013da75e85ad65ab0c4e6 Mon Sep 17 00:00:00 2001 +From: "Maxiwell S. Garcia" +Date: Mon, 1 Nov 2021 10:10:34 -0500 +Subject: [PATCH] ppc: remove the special condition for ppc on convolutions + +After a recent change on Eigen Altivec package, we don't need this +special condition on convolutions anymore + +https://gitlab.com/libeigen/eigen/-/commit/9cf34ee0aed25a7464e6ec14f977cfa940f48f1b +--- + tensorflow/core/kernels/eigen_cuboid_convolution.h | 10 ---------- + .../core/kernels/eigen_spatial_convolutions-inl.h | 10 ---------- + 2 files changed, 20 deletions(-) + +diff --git a/tensorflow/core/kernels/eigen_cuboid_convolution.h b/tensorflow/core/kernels/eigen_cuboid_convolution.h +index bf0cdd59e4fb3..729dcd3bd2af0 100644 +--- a/tensorflow/core/kernels/eigen_cuboid_convolution.h ++++ b/tensorflow/core/kernels/eigen_cuboid_convolution.h +@@ -1358,15 +1358,6 @@ struct gemm_pack_rhs< + } + + // Copy the remaining columns one at a time (nr==1). +-#if defined(EIGEN_VECTORIZE_ALTIVEC) || defined(EIGEN_VECTORIZE_VSX) +- // remaining columns are handled different for PPC +- for (Index k = 0; k < depth; k++) { +- for (Index j2 = packet_cols4; j2 < cols; ++j2) { +- *block = rhs(k, j2); +- block += 1; +- } +- } +-#else + for (Index j2 = packet_cols4; j2 < cols; ++j2) { + const SubMapper dm0 = rhs.getLinearMapper(0, j2); + for (Index k = 0; k < depth; k++) { +@@ -1374,7 +1365,6 @@ struct gemm_pack_rhs< + block += 1; + } + } +-#endif + } + }; + +diff --git a/tensorflow/core/kernels/eigen_spatial_convolutions-inl.h b/tensorflow/core/kernels/eigen_spatial_convolutions-inl.h +index 61cfc820a6cca..37a41f952fa87 100644 +--- a/tensorflow/core/kernels/eigen_spatial_convolutions-inl.h ++++ b/tensorflow/core/kernels/eigen_spatial_convolutions-inl.h +@@ -1233,15 +1233,6 @@ struct gemm_pack_rhs< + } + + // copy the remaining columns one at a time (nr==1) +-#if defined(EIGEN_VECTORIZE_ALTIVEC) || defined(EIGEN_VECTORIZE_VSX) +- // remaining columns are handled different for PPC +- for (Index k = 0; k < depth; k++) { +- for (Index j2 = packet_cols4; j2 < cols; ++j2) { +- *block = rhs(k, j2); +- block += 1; +- } +- } +-#else + for (Index j2 = packet_cols4; j2 < cols; ++j2) { + const SubMapper dm0 = rhs.getLinearMapper(0, j2); + for (Index k = 0; k < depth; k++) { +@@ -1249,7 +1240,6 @@ struct gemm_pack_rhs< + block += 1; + } + } +-#endif + } + }; + diff --git a/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.7.1_fix-PPC-JIT.patch b/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.7.1_fix-PPC-JIT.patch new file mode 100644 index 00000000000..1f361e3b706 --- /dev/null +++ b/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.7.1_fix-PPC-JIT.patch @@ -0,0 +1,82 @@ +Allow JIT compilation for PPC targets (e.g. "pwr9" CPUs) +From https://github.com/tensorflow/tensorflow/pull/55306 +Backported for TF 2.7.1 + +Author: Alexander Grund (TU Dresden) + +diff --git a/third_party/cpuinfo/BUILD.bazel b/third_party/cpuinfo/BUILD.bazel +index eb2937d20ef..dfea408db94 100644 +--- a/third_party/cpuinfo/BUILD.bazel ++++ b/third_party/cpuinfo/BUILD.bazel +@@ -109,6 +109,7 @@ cc_library( + ":linux_mips64": COMMON_SRCS + LINUX_SRCS, + ":linux_riscv64": COMMON_SRCS + LINUX_SRCS, + ":linux_s390x": COMMON_SRCS + LINUX_SRCS, ++ ":linux_ppc64le": COMMON_SRCS + LINUX_SRCS, + ":macos_x86_64": COMMON_SRCS + X86_SRCS + MACH_SRCS + MACH_X86_SRCS, + ":macos_arm64": COMMON_SRCS + MACH_SRCS + MACH_ARM_SRCS, + ":windows_x86_64": COMMON_SRCS + X86_SRCS + WINDOWS_X86_SRCS, +@@ -232,6 +233,11 @@ config_setting( + values = {"cpu": "s390x"}, + ) + ++config_setting( ++ name = "linux_ppc64le", ++ values = {"cpu": "ppc"}, ++) ++ + config_setting( + name = "macos_x86_64", + values = { +diff --git a/third_party/llvm/macos_build_fix.patch b/third_party/llvm/macos_build_fix.patch +index 8ff52f906a6..4467081c410 100644 +--- a/third_party/llvm/macos_build_fix.patch ++++ b/third_party/llvm/macos_build_fix.patch +@@ -22,6 +22,48 @@ index ff64df694048..55f3077bff74 100644 + "@bazel_tools//src/conditions:linux_aarch64": native_arch_defines("AArch64", "aarch64-unknown-linux-gnu"), + "//conditions:default": native_arch_defines("X86", "x86_64-unknown-linux-gnu"), + }) + [ ++ ++ ++From b250c34bbd415b2a8c3e0532e98591ab1780cda6 Mon Sep 17 00:00:00 2001 ++From: Nishidha Panpaliya ++Date: Mon, 21 Mar 2022 09:51:36 -0400 ++Subject: [PATCH] Fix for ppc64le ++ ++--- ++ utils/bazel/llvm-project-overlay/llvm/config.bzl | 1 + ++ 1 file changed, 1 insertion(+) ++ ++diff --git a/utils/bazel/llvm-project-overlay/llvm/config.bzl b/utils/bazel/llvm-project-overlay/llvm/config.bzl ++index 772714f38941..9ed63e8d44a3 100644 ++--- a/utils/bazel/llvm-project-overlay/llvm/config.bzl +++++ b/utils/bazel/llvm-project-overlay/llvm/config.bzl ++@@ -78,6 +78,7 @@ ++ "@bazel_tools//src/conditions:windows": native_arch_defines("X86", "x86_64-pc-win32"), ++ "@bazel_tools//src/conditions:darwin": native_arch_defines("X86", "x86_64-unknown-darwin"), ++ "@bazel_tools//src/conditions:linux_aarch64": native_arch_defines("AArch64", "aarch64-unknown-linux-gnu"), +++ "@bazel_tools//src/conditions:linux_ppc64le": native_arch_defines("PowerPC", "powerpc64le-unknown-linux-gnu"), ++ "//conditions:default": native_arch_defines("X86", "x86_64-unknown-linux-gnu"), ++ }) + [ ++ # These shouldn't be needed by the C++11 standard, but are for some ++ ++--- ++Fix link errors on PPC caused by above patch: https://github.com/llvm/llvm-project/issues/59590 ++ ++Author: Alexander Grund (TU Dresden) ++ ++diff --git a/utils/bazel/llvm-project-overlay/mlir/BUILD.bazel b/utils/bazel/llvm-project-overlay/mlir/BUILD.bazel ++index f4dfb3791477..da92b53b7a2b 100644 ++--- a/utils/bazel/llvm-project-overlay/mlir/BUILD.bazel +++++ b/utils/bazel/llvm-project-overlay/mlir/BUILD.bazel ++@@ -4986,6 +4986,7 @@ cc_library( ++ ":Support", ++ ":ToLLVMIRTranslation", ++ ":Translation", +++ "//llvm:AllTargetsAsmParsers", ++ "//llvm:BitReader", ++ "//llvm:BitWriter", ++ "//llvm:Core", ++ + -- + 2.33.0.685.g46640cef36-goog diff --git a/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.8.4-foss-2021b-CUDA-11.4.1.eb b/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.8.4-foss-2021b-CUDA-11.4.1.eb new file mode 100644 index 00000000000..969be86e142 --- /dev/null +++ b/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.8.4-foss-2021b-CUDA-11.4.1.eb @@ -0,0 +1,238 @@ +easyblock = 'PythonBundle' + +name = 'TensorFlow' +version = '2.8.4' +versionsuffix = '-CUDA-%(cudaver)s' + +homepage = 'https://www.tensorflow.org/' +description = "An open-source software library for Machine Intelligence" + +toolchain = {'name': 'foss', 'version': '2021b'} +toolchainopts = {'pic': True} + +builddependencies = [ + ('Bazel', '4.2.2'), + ('protobuf', '3.17.3'), + # git 2.x required, see also https://github.com/tensorflow/tensorflow/issues/29053 + ('git', '2.33.1', '-nodocs'), + ('pybind11', '2.7.1'), + ('UnZip', '6.0'), + ('LLVM', '12.0.1'), # for debugging with llvm-symbolizer, to be removed +] +dependencies = [ + ('CUDA', '11.4.1', '', SYSTEM), + ('cuDNN', '8.2.2.26', versionsuffix, SYSTEM), + ('NCCL', '2.10.3', versionsuffix), + ('Python', '3.9.6'), + ('h5py', '3.6.0'), + ('cURL', '7.78.0'), + ('dill', '0.3.4'), + ('double-conversion', '3.1.5'), + ('flatbuffers', '2.0.0'), + ('giflib', '5.2.1'), + ('hwloc', '2.5.0'), + ('ICU', '69.1'), + ('JsonCpp', '1.9.4'), + ('libjpeg-turbo', '2.0.6'), + ('LMDB', '0.9.29'), + ('NASM', '2.15.05'), + ('nsync', '1.24.0'), + ('SQLite', '3.36'), + ('protobuf-python', '3.17.3'), + ('flatbuffers-python', '2.0'), + ('libpng', '1.6.37'), + ('snappy', '1.1.9'), + ('zlib', '1.2.11'), +] + +use_pip = True +sanity_pip_check = True + +# Dependencies created and updated using findPythonDeps.sh: +# https://gist.github.com/Flamefire/49426e502cd8983757bd01a08a10ae0d +exts_list = [ + ('wrapt', '1.14.1', { + 'checksums': ['380a85cf89e0e69b7cfbe2ea9f765f004ff419f34194018a6827ac0e3edfed4d'], + }), + ('tensorflow-estimator', '2.8.0', { + 'source_tmpl': 'tensorflow_estimator-%(version)s-py2.py3-none-any.whl', + 'checksums': ['bee8e0520c60ae7eaf6ca8cb46c5a9f4b45725531380db8fbe38fcb48478b6bb'], + }), + ('termcolor', '1.1.0', { + 'checksums': ['1d6d69ce66211143803fbc56652b41d73b4a400a2891d7bf7a1cdf4c02de613b'], + }), + ('Werkzeug', '2.1.2', { + 'checksums': ['1ce08e8093ed67d638d63879fd1ba3735817f7a80de3674d293f5984f25fb6e6'], + }), + ('tensorboard_plugin_wit', '1.8.1', { + 'source_tmpl': SOURCE_PY3_WHL, + 'checksums': ['ff26bdd583d155aa951ee3b152b3d0cffae8005dc697f72b44a8e8c2a77a8cbe'], + }), + ('tensorboard-data-server', '0.6.1', { + 'source_tmpl': 'tensorboard_data_server-%(version)s-py3-none-any.whl', + 'checksums': ['809fe9887682d35c1f7d1f54f0f40f98bb1f771b14265b453ca051e2ce58fca7'], + }), + ('Markdown', '3.3.7', { + 'checksums': ['cbb516f16218e643d8e0a95b309f77eb118cb138d39a4f27851e6a63581db874'], + }), + ('grpcio', '1.46.1', { + 'modulename': 'grpc', + 'preinstallopts': "export GRPC_PYTHON_BUILD_EXT_COMPILER_JOBS=%(parallel)s && ", + 'checksums': ['4835b0f5fedbee3a3d6eea48f4e65dffd30b52c078690fa97ddc9fcea1e3b35d'], + }), + ('oauthlib', '3.2.0', { + 'checksums': ['23a8208d75b902797ea29fd31fa80a15ed9dc2c6c16fe73f5d346f83f6fa27a2'], + }), + ('requests-oauthlib', '1.3.1', { + 'checksums': ['75beac4a47881eeb94d5ea5d6ad31ef88856affe2332b9aafb52c6452ccf0d7a'], + }), + ('rsa', '4.8', { + 'checksums': ['5c6bd9dc7a543b7fe4304a631f8a8a3b674e2bbfc49c2ae96200cdbe55df6b17'], + }), + ('pyasn1-modules', '0.2.8', { + 'checksums': ['905f84c712230b2c592c19470d3ca8d552de726050d1d1716282a1f6146be65e'], + }), + ('cachetools', '5.1.0', { + 'checksums': ['8b3b8fa53f564762e5b221e9896798951e7f915513abf2ba072ce0f07f3f5a98'], + }), + ('google-auth', '2.6.6', { + 'modulename': 'google.auth', + 'checksums': ['1ba4938e032b73deb51e59c4656a00e0939cf0b1112575099f136babb4563312'], + }), + ('google-auth-oauthlib', '0.4.6', { + 'checksums': ['a90a072f6993f2c327067bf65270046384cda5a8ecb20b94ea9a687f1f233a7a'], + }), + ('tensorboard', '2.8.0', { + 'source_tmpl': SOURCE_PY3_WHL, + 'checksums': ['65a338e4424e9079f2604923bdbe301792adce2ace1be68da6b3ddf005170def'], + }), + ('opt-einsum', '3.3.0', { + 'source_tmpl': 'opt_einsum-%(version)s.tar.gz', + 'checksums': ['59f6475f77bbc37dcf7cd748519c0ec60722e91e63ca114e68821c0c54a46549'], + }), + ('Keras-Preprocessing', '1.1.2', { + 'source_tmpl': 'Keras_Preprocessing-%(version)s.tar.gz', + 'checksums': ['add82567c50c8bc648c14195bf544a5ce7c1f76761536956c3d2978970179ef3'], + }), + ('keras', '2.8.0', { + 'source_tmpl': SOURCE_WHL, + 'checksums': ['744d39dc6577dcd80ff4a4d41549e92b77d6a17e0edd58a431d30656e29bc94e'], + }), + ('google-pasta', '0.2.0', { + 'modulename': 'pasta', + 'checksums': ['c9f2c8dfc8f96d0d5808299920721be30c9eec37f2389f28904f454565c8a16e'], + }), + ('astunparse', '1.6.3', { + 'checksums': ['5ad93a8456f0d084c3456d059fd9a92cce667963232cbf763eac3bc5b7940872'], + }), + ('tblib', '1.7.0', { + 'checksums': ['059bd77306ea7b419d4f76016aef6d7027cc8a0785579b5aad198803435f882c'], + }), + ('portpicker', '1.5.2', { + 'checksums': ['c55683ad725f5c00a41bc7db0225223e8be024b1fa564d039ed3390e4fd48fb3'], + }), + ('absl-py', '1.0.0', { + 'modulename': 'absl', + 'checksums': ['ac511215c01ee9ae47b19716599e8ccfa746f2e18de72bdf641b79b22afa27ea'], + }), + # System dependency astor_archive + ('astor', '0.8.1', { + 'checksums': ['6a6effda93f4e1ce9f618779b2dd1d9d84f1e32812c23a29b3fff6fd7f63fa5e'], + }), + # Optional profile plugin + dependency + ('gviz-api', '1.10.0', { + 'source_tmpl': 'gviz_api-%(version)s.tar.gz', + 'checksums': ['846692dd8cc73224fc31b18e41589bd934e1cc05090c6576af4b4b26c2e71b90'], + }), + ('tensorboard-plugin-profile', '2.8.0', { + 'source_tmpl': 'tensorboard_plugin_profile-%(version)s.tar.gz', + 'checksums': ['58d65c979951e7628ca3b46c798e10e5813026a3ecfbacc319cf88ebe766134a'], + }), + (name, version, { + 'source_tmpl': 'v%(version)s.tar.gz', + 'source_urls': ['https://github.com/tensorflow/tensorflow/archive/'], + 'patches': [ + 'TensorFlow-2.1.0_fix-cuda-build.patch', + 'TensorFlow-2.4.0_add-ldl.patch', + 'TensorFlow-2.4.0_dont-use-var-lock.patch', + 'TensorFlow-2.5.0_add-support-for-large-core-systems.patch', + 'TensorFlow-2.5.0_disable-avx512-extensions.patch', + 'TensorFlow-2.5.0-fix-alias-violation-in-absl.patch', + 'TensorFlow-2.5.0_fix-arm-vector-intrinsics.patch', + 'TensorFlow-2.5.0_fix-crash-on-shutdown.patch', + 'TensorFlow-2.7.1_fix_cpu_count.patch', + 'TensorFlow-2.7.1_remove-duplicate-gpu-tests.patch', + 'TensorFlow-2.8.4_exclude-xnnpack-on-ppc.patch', + 'TensorFlow-2.8.4_fix-PPC-JIT.patch', + 'TensorFlow-2.8.4_remove-libclang-and-io-gcs-deps.patch', + 'TensorFlow-2.8.4_resolve-gcc-symlinks.patch', + ], + 'checksums': [ + {'v2.8.4.tar.gz': 'c08a222792bdbff9da299c7885561ee27b95d414d1111c426efac4ccdce92cde'}, + {'TensorFlow-2.1.0_fix-cuda-build.patch': + '78c20aeaa7784b8ceb46238a81e8c2461137d28e0b576deeba8357d23fbe1f5a'}, + {'TensorFlow-2.4.0_add-ldl.patch': '917ee7282e782e48673596d8917c3207e60e0851bb9acf230a2a439b067af2e3'}, + {'TensorFlow-2.4.0_dont-use-var-lock.patch': + 'b14f2493fd2edf79abd1c4f2dde6c98a3e7d5cb9c25ab9386df874d5f072d6b5'}, + {'TensorFlow-2.5.0_add-support-for-large-core-systems.patch': + '915f3477d6407fafd48269fe1e684a05ce361d9b9b85e58686682df87760f636'}, + {'TensorFlow-2.5.0_disable-avx512-extensions.patch': + '3655ce24c97569ac9738c07cac85347ba6f5c815ada95b19b606ffa46d4dda03'}, + {'TensorFlow-2.5.0-fix-alias-violation-in-absl.patch': + '12454fda3330fb45cd380377e283f04488b40e0b8ae7378e786ddf731a581f75'}, + {'TensorFlow-2.5.0_fix-arm-vector-intrinsics.patch': + '5edea55ce87d5adb14f6ed6996f308879e268b8cec760cf11288e3a56179a029'}, + {'TensorFlow-2.5.0_fix-crash-on-shutdown.patch': + '578c7493221ebd3dc25ca43d63a72cbb28fdf4112b1e2baa7390f25781bd78fd'}, + {'TensorFlow-2.7.1_fix_cpu_count.patch': + '5427a4cff0afc2fe5b24776ae9ca3616c56a79c1fde0025b37bec24837bb0698'}, + {'TensorFlow-2.7.1_remove-duplicate-gpu-tests.patch': + 'f78526a34d85f4dda59b160b576aa3a3126db7073a58c4e3b1424923f6a21483'}, + {'TensorFlow-2.8.4_exclude-xnnpack-on-ppc.patch': + 'ebd404ac56cc4ca662483f1f591e62e11749361be57a7ba5f4b2f0d03e829884'}, + {'TensorFlow-2.8.4_fix-PPC-JIT.patch': + '27d28293105b4dd0a25f58346c68b672f57215756f14a97c442d0e3317e93a2b'}, + {'TensorFlow-2.8.4_remove-libclang-and-io-gcs-deps.patch': + '10a6daad2ef65d649a6d4a6659f97f833359b3c35d3ce15e63d2db2e331a6a35'}, + {'TensorFlow-2.8.4_resolve-gcc-symlinks.patch': + '43ce9acc6bffff68a31d2263d0064d272999b2e0a2c6546690287cd1c9c90f04'}, + ], + 'test_script': 'TensorFlow-2.x_mnist-test.py', + 'test_tag_filters_cpu': '-gpu,-tpu,-no_cuda_on_cpu_tap,-no_pip,-no_oss,-oss_serial,-benchmark-test,-v1only', + 'test_tag_filters_gpu': ('gpu,-no_gpu,-nogpu,-gpu_cupti,-no_cuda11,-no_pip,-no_oss,-oss_serial,' + '-benchmark-test,-v1only'), + 'test_targets': [ + '//tensorflow/core/...', + '-//tensorflow/core:example_java_proto', + '-//tensorflow/core/example:example_protos_closure', + '//tensorflow/cc/...', + '//tensorflow/c/...', + '//tensorflow/python/...', + # Fails on some nodes but C API isn't installed anyway + '-//tensorflow/c/eager:c_api_test_gpu', + '-//tensorflow/c/eager:c_api_distributed_test', + '-//tensorflow/c/eager:c_api_distributed_test_gpu', + # Race condition with port picker: https://github.com/tensorflow/tensorflow/issues/46602 + '-//tensorflow/c/eager:c_api_cluster_test_gpu', + '-//tensorflow/c/eager:c_api_remote_function_test_gpu', + '-//tensorflow/c/eager:c_api_remote_test_gpu', + # Fails to open its own test.xml(?) + '-//tensorflow/core/common_runtime:collective_param_resolver_local_test', + # Fails on non-AVX-512 systems: https://github.com/tensorflow/tensorflow/issues/46532 + '-//tensorflow/core/common_runtime:mkl_layout_pass_test', + '-//tensorflow/core/kernels/mkl:mkl_fused_ops_test', + # Fails on AMD EPYC systems: https://github.com/tensorflow/tensorflow/issues/52151 + '-//tensorflow/core/kernels/mkl:mkl_fused_batch_norm_op_test', + # All tests in this directory fail with segfault (TensorFlow Graph IR) + '-//tensorflow/core/ir/importexport/tests/roundtrip/...', + # Fails on e.g. AMD EPYC and known to be flaky on Mac: https://github.com/tensorflow/tensorflow/issues/56717 + '-//tensorflow/python/data/experimental/kernel_tests/service:fault_tolerance_test', + ], + 'testopts': "--test_timeout=3600 --test_size_filters=small", + 'testopts_gpu': "--test_timeout=3600 --test_size_filters=small " + + "--run_under=//tensorflow/tools/ci_build/gpu_build:parallel_gpu_execute", + 'with_xla': True, + }), +] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.8.4-foss-2021b.eb b/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.8.4-foss-2021b.eb index fdeaf3afa24..f8546680a72 100644 --- a/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.8.4-foss-2021b.eb +++ b/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.8.4-foss-2021b.eb @@ -38,7 +38,6 @@ dependencies = [ ('libpng', '1.6.37'), ('snappy', '1.1.9'), ('zlib', '1.2.11'), - ('networkx', '2.6.3'), # required for pythran ] use_pip = True @@ -50,8 +49,8 @@ exts_list = [ ('wrapt', '1.14.1', { 'checksums': ['380a85cf89e0e69b7cfbe2ea9f765f004ff419f34194018a6827ac0e3edfed4d'], }), - ('tensorflow_estimator', '2.8.0', { - 'source_tmpl': '%(name)s-%(version)s-py2.py3-none-any.whl', + ('tensorflow-estimator', '2.8.0', { + 'source_tmpl': 'tensorflow_estimator-%(version)s-py2.py3-none-any.whl', 'checksums': ['bee8e0520c60ae7eaf6ca8cb46c5a9f4b45725531380db8fbe38fcb48478b6bb'], }), ('termcolor', '1.1.0', { @@ -61,11 +60,11 @@ exts_list = [ 'checksums': ['1ce08e8093ed67d638d63879fd1ba3735817f7a80de3674d293f5984f25fb6e6'], }), ('tensorboard_plugin_wit', '1.8.1', { - 'source_tmpl': '%(name)s-%(version)s-py3-none-any.whl', + 'source_tmpl': SOURCE_PY3_WHL, 'checksums': ['ff26bdd583d155aa951ee3b152b3d0cffae8005dc697f72b44a8e8c2a77a8cbe'], }), - ('tensorboard_data_server', '0.6.1', { - 'source_tmpl': '%(name)s-%(version)s-py3-none-any.whl', + ('tensorboard-data-server', '0.6.1', { + 'source_tmpl': 'tensorboard_data_server-%(version)s-py3-none-any.whl', 'checksums': ['809fe9887682d35c1f7d1f54f0f40f98bb1f771b14265b453ca051e2ce58fca7'], }), ('Markdown', '3.3.7', { @@ -99,17 +98,19 @@ exts_list = [ 'checksums': ['a90a072f6993f2c327067bf65270046384cda5a8ecb20b94ea9a687f1f233a7a'], }), ('tensorboard', '2.8.0', { - 'source_tmpl': '%(name)s-%(version)s-py3-none-any.whl', + 'source_tmpl': SOURCE_PY3_WHL, 'checksums': ['65a338e4424e9079f2604923bdbe301792adce2ace1be68da6b3ddf005170def'], }), - ('opt_einsum', '3.3.0', { + ('opt-einsum', '3.3.0', { + 'source_tmpl': 'opt_einsum-%(version)s.tar.gz', 'checksums': ['59f6475f77bbc37dcf7cd748519c0ec60722e91e63ca114e68821c0c54a46549'], }), - ('Keras_Preprocessing', '1.1.2', { + ('Keras-Preprocessing', '1.1.2', { + 'source_tmpl': 'Keras_Preprocessing-%(version)s.tar.gz', 'checksums': ['add82567c50c8bc648c14195bf544a5ce7c1f76761536956c3d2978970179ef3'], }), ('keras', '2.8.0', { - 'source_tmpl': '%(name)s-%(version)s-py2.py3-none-any.whl', + 'source_tmpl': SOURCE_WHL, 'checksums': ['744d39dc6577dcd80ff4a4d41549e92b77d6a17e0edd58a431d30656e29bc94e'], }), ('google-pasta', '0.2.0', { @@ -129,9 +130,23 @@ exts_list = [ 'modulename': 'absl', 'checksums': ['ac511215c01ee9ae47b19716599e8ccfa746f2e18de72bdf641b79b22afa27ea'], }), + # System dependency astor_archive + ('astor', '0.8.1', { + 'checksums': ['6a6effda93f4e1ce9f618779b2dd1d9d84f1e32812c23a29b3fff6fd7f63fa5e'], + }), + # Optional profile plugin + dependency + ('gviz-api', '1.10.0', { + 'source_tmpl': 'gviz_api-%(version)s.tar.gz', + 'checksums': ['846692dd8cc73224fc31b18e41589bd934e1cc05090c6576af4b4b26c2e71b90'], + }), + ('tensorboard-plugin-profile', '2.8.0', { + 'source_tmpl': 'tensorboard_plugin_profile-%(version)s.tar.gz', + 'checksums': ['58d65c979951e7628ca3b46c798e10e5813026a3ecfbacc319cf88ebe766134a'], + }), (name, version, { + 'source_tmpl': 'v%(version)s.tar.gz', + 'source_urls': ['https://github.com/tensorflow/tensorflow/archive/'], 'patches': [ - 'TensorFlow-2.1.0_fix-cuda-build.patch', 'TensorFlow-2.4.0_add-ldl.patch', 'TensorFlow-2.4.0_dont-use-var-lock.patch', 'TensorFlow-2.5.0_add-support-for-large-core-systems.patch', @@ -139,12 +154,41 @@ exts_list = [ 'TensorFlow-2.5.0-fix-alias-violation-in-absl.patch', 'TensorFlow-2.5.0_fix-arm-vector-intrinsics.patch', 'TensorFlow-2.5.0_fix-crash-on-shutdown.patch', + 'TensorFlow-2.7.1_fix_cpu_count.patch', 'TensorFlow-2.7.1_remove-duplicate-gpu-tests.patch', + 'TensorFlow-2.8.4_exclude-xnnpack-on-ppc.patch', + 'TensorFlow-2.8.4_fix-PPC-JIT.patch', 'TensorFlow-2.8.4_remove-libclang-and-io-gcs-deps.patch', - 'TensorFlow-2.7.1_fix_cpu_count.patch', + 'TensorFlow-2.8.4_resolve-gcc-symlinks.patch', + ], + 'checksums': [ + {'v2.8.4.tar.gz': 'c08a222792bdbff9da299c7885561ee27b95d414d1111c426efac4ccdce92cde'}, + {'TensorFlow-2.4.0_add-ldl.patch': '917ee7282e782e48673596d8917c3207e60e0851bb9acf230a2a439b067af2e3'}, + {'TensorFlow-2.4.0_dont-use-var-lock.patch': + 'b14f2493fd2edf79abd1c4f2dde6c98a3e7d5cb9c25ab9386df874d5f072d6b5'}, + {'TensorFlow-2.5.0_add-support-for-large-core-systems.patch': + '915f3477d6407fafd48269fe1e684a05ce361d9b9b85e58686682df87760f636'}, + {'TensorFlow-2.5.0_disable-avx512-extensions.patch': + '3655ce24c97569ac9738c07cac85347ba6f5c815ada95b19b606ffa46d4dda03'}, + {'TensorFlow-2.5.0-fix-alias-violation-in-absl.patch': + '12454fda3330fb45cd380377e283f04488b40e0b8ae7378e786ddf731a581f75'}, + {'TensorFlow-2.5.0_fix-arm-vector-intrinsics.patch': + '5edea55ce87d5adb14f6ed6996f308879e268b8cec760cf11288e3a56179a029'}, + {'TensorFlow-2.5.0_fix-crash-on-shutdown.patch': + '578c7493221ebd3dc25ca43d63a72cbb28fdf4112b1e2baa7390f25781bd78fd'}, + {'TensorFlow-2.7.1_fix_cpu_count.patch': + '5427a4cff0afc2fe5b24776ae9ca3616c56a79c1fde0025b37bec24837bb0698'}, + {'TensorFlow-2.7.1_remove-duplicate-gpu-tests.patch': + 'f78526a34d85f4dda59b160b576aa3a3126db7073a58c4e3b1424923f6a21483'}, + {'TensorFlow-2.8.4_exclude-xnnpack-on-ppc.patch': + 'ebd404ac56cc4ca662483f1f591e62e11749361be57a7ba5f4b2f0d03e829884'}, + {'TensorFlow-2.8.4_fix-PPC-JIT.patch': + '27d28293105b4dd0a25f58346c68b672f57215756f14a97c442d0e3317e93a2b'}, + {'TensorFlow-2.8.4_remove-libclang-and-io-gcs-deps.patch': + '10a6daad2ef65d649a6d4a6659f97f833359b3c35d3ce15e63d2db2e331a6a35'}, + {'TensorFlow-2.8.4_resolve-gcc-symlinks.patch': + '43ce9acc6bffff68a31d2263d0064d272999b2e0a2c6546690287cd1c9c90f04'}, ], - 'source_tmpl': 'v%(version)s.tar.gz', - 'source_urls': ['https://github.com/tensorflow/tensorflow/archive/'], 'test_script': 'TensorFlow-2.x_mnist-test.py', 'test_tag_filters_cpu': '-gpu,-tpu,-no_cuda_on_cpu_tap,-no_pip,-no_oss,-oss_serial,-benchmark-test,-v1only', 'test_tag_filters_gpu': ('gpu,-no_gpu,-nogpu,-gpu_cupti,-no_cuda11,-no_pip,-no_oss,-oss_serial,' @@ -180,30 +224,6 @@ exts_list = [ 'testopts_gpu': "--test_timeout=3600 --test_size_filters=small " + "--run_under=//tensorflow/tools/ci_build/gpu_build:parallel_gpu_execute", 'with_xla': True, - 'checksums': [ - {'v2.8.4.tar.gz': 'c08a222792bdbff9da299c7885561ee27b95d414d1111c426efac4ccdce92cde'}, - {'TensorFlow-2.1.0_fix-cuda-build.patch': - '78c20aeaa7784b8ceb46238a81e8c2461137d28e0b576deeba8357d23fbe1f5a'}, - {'TensorFlow-2.4.0_add-ldl.patch': '917ee7282e782e48673596d8917c3207e60e0851bb9acf230a2a439b067af2e3'}, - {'TensorFlow-2.4.0_dont-use-var-lock.patch': - 'b14f2493fd2edf79abd1c4f2dde6c98a3e7d5cb9c25ab9386df874d5f072d6b5'}, - {'TensorFlow-2.5.0_add-support-for-large-core-systems.patch': - '915f3477d6407fafd48269fe1e684a05ce361d9b9b85e58686682df87760f636'}, - {'TensorFlow-2.5.0_disable-avx512-extensions.patch': - '3655ce24c97569ac9738c07cac85347ba6f5c815ada95b19b606ffa46d4dda03'}, - {'TensorFlow-2.5.0-fix-alias-violation-in-absl.patch': - '12454fda3330fb45cd380377e283f04488b40e0b8ae7378e786ddf731a581f75'}, - {'TensorFlow-2.5.0_fix-arm-vector-intrinsics.patch': - '5edea55ce87d5adb14f6ed6996f308879e268b8cec760cf11288e3a56179a029'}, - {'TensorFlow-2.5.0_fix-crash-on-shutdown.patch': - '578c7493221ebd3dc25ca43d63a72cbb28fdf4112b1e2baa7390f25781bd78fd'}, - {'TensorFlow-2.7.1_remove-duplicate-gpu-tests.patch': - 'f78526a34d85f4dda59b160b576aa3a3126db7073a58c4e3b1424923f6a21483'}, - {'TensorFlow-2.8.4_remove-libclang-and-io-gcs-deps.patch': - '10a6daad2ef65d649a6d4a6659f97f833359b3c35d3ce15e63d2db2e331a6a35'}, - {'TensorFlow-2.7.1_fix_cpu_count.patch': - '5427a4cff0afc2fe5b24776ae9ca3616c56a79c1fde0025b37bec24837bb0698'}, - ], }), ] diff --git a/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.8.4_fix-PPC-JIT.patch b/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.8.4_fix-PPC-JIT.patch new file mode 100644 index 00000000000..ca57b87dee1 --- /dev/null +++ b/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.8.4_fix-PPC-JIT.patch @@ -0,0 +1,58 @@ +diff --git a/third_party/cpuinfo/cpuinfo.BUILD b/third_party/cpuinfo/cpuinfo.BUILD +index eb2937d20ef..dfea408db94 100644 +--- a/third_party/cpuinfo/cpuinfo.BUILD ++++ b/third_party/cpuinfo/cpuinfo.BUILD +@@ -109,6 +109,7 @@ cc_library( + ":linux_mips64": COMMON_SRCS + LINUX_SRCS, + ":linux_riscv64": COMMON_SRCS + LINUX_SRCS, + ":linux_s390x": COMMON_SRCS + LINUX_SRCS, ++ ":linux_ppc64le": COMMON_SRCS + LINUX_SRCS, + ":macos_x86_64": COMMON_SRCS + X86_SRCS + MACH_SRCS + MACH_X86_SRCS, + ":macos_arm64": COMMON_SRCS + MACH_SRCS + MACH_ARM_SRCS, + ":windows_x86_64": COMMON_SRCS + X86_SRCS + WINDOWS_X86_SRCS, +@@ -232,6 +233,11 @@ config_setting( + values = {"cpu": "s390x"}, + ) + ++config_setting( ++ name = "linux_ppc64le", ++ values = {"cpu": "ppc"}, ++) ++ + config_setting( + name = "macos_x86_64", + values = { +diff --git a/third_party/llvm/macos_build_fix.patch b/third_party/llvm/macos_build_fix.patch +index 4dba8676ea5..af31f0c1d9e 100644 +--- a/third_party/llvm/macos_build_fix.patch ++++ b/third_party/llvm/macos_build_fix.patch +@@ -42,5 +42,29 @@ index ff64df694048..c9c35b01711c 100644 + "@bazel_tools//src/conditions:linux_aarch64": native_arch_defines("AArch64", "aarch64-unknown-linux-gnu"), + "//conditions:default": native_arch_defines("X86", "x86_64-unknown-linux-gnu"), + }) + [ ++ ++ ++From b250c34bbd415b2a8c3e0532e98591ab1780cda6 Mon Sep 17 00:00:00 2001 ++From: Nishidha Panpaliya ++Date: Mon, 21 Mar 2022 09:51:36 -0400 ++Subject: [PATCH] Fix for ppc64le ++ ++--- ++ utils/bazel/llvm-project-overlay/llvm/config.bzl | 1 + ++ 1 file changed, 1 insertion(+) ++ ++diff --git a/utils/bazel/llvm-project-overlay/llvm/config.bzl b/utils/bazel/llvm-project-overlay/llvm/config.bzl ++index 772714f38941..9ed63e8d44a3 100644 ++--- a/utils/bazel/llvm-project-overlay/llvm/config.bzl +++++ b/utils/bazel/llvm-project-overlay/llvm/config.bzl ++@@ -86,6 +86,7 @@ llvm_config_defines = os_defines + select({ ++ "//llvm:macos_arm64": native_arch_defines("AArch64", "arm64-apple-darwin"), ++ "@bazel_tools//src/conditions:darwin": native_arch_defines("X86", "x86_64-unknown-darwin"), ++ "@bazel_tools//src/conditions:linux_aarch64": native_arch_defines("AArch64", "aarch64-unknown-linux-gnu"), +++ "@bazel_tools//src/conditions:linux_ppc64le": native_arch_defines("PowerPC", "powerpc64le-unknown-linux-gnu"), ++ "//conditions:default": native_arch_defines("X86", "x86_64-unknown-linux-gnu"), ++ }) + [ ++ # These shouldn't be needed by the C++11 standard, but are for some ++ + -- + 2.30.1 (Apple Git-130) diff --git a/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.9.1-foss-2022a-CUDA-11.7.0.eb b/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.9.1-foss-2022a-CUDA-11.7.0.eb new file mode 100644 index 00000000000..5dc7c5b4535 --- /dev/null +++ b/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.9.1-foss-2022a-CUDA-11.7.0.eb @@ -0,0 +1,256 @@ +easyblock = 'PythonBundle' + +name = 'TensorFlow' +version = '2.9.1' +versionsuffix = '-CUDA-%(cudaver)s' + +homepage = 'https://www.tensorflow.org/' +description = "An open-source software library for Machine Intelligence" + +toolchain = {'name': 'foss', 'version': '2022a'} +toolchainopts = {'pic': True} + +builddependencies = [ + ('Bazel', '5.1.1'), + ('protobuf', '3.19.4'), + # git 2.x required, see also https://github.com/tensorflow/tensorflow/issues/29053 + ('git', '2.36.0', '-nodocs'), + ('pybind11', '2.9.2'), + ('UnZip', '6.0'), + ('LLVM', '14.0.3'), # for debugging with llvm-symbolizer, to be removed +] +dependencies = [ + ('CUDA', '11.7.0', '', SYSTEM), + ('cuDNN', '8.4.1.50', versionsuffix, SYSTEM), + ('NCCL', '2.12.12', versionsuffix), + ('Python', '3.10.4'), + ('h5py', '3.7.0'), + ('cURL', '7.83.0'), + ('dill', '0.3.6'), + ('double-conversion', '3.2.0'), + ('flatbuffers', '2.0.7'), + ('giflib', '5.2.1'), + ('hwloc', '2.7.1'), + ('ICU', '71.1'), + ('JsonCpp', '1.9.5'), + ('libjpeg-turbo', '2.1.3'), + ('LMDB', '0.9.29'), + ('NASM', '2.15.05'), + ('nsync', '1.25.0'), + ('SQLite', '3.38.3'), + ('protobuf-python', '3.19.4'), + ('flatbuffers-python', '2.0'), + ('libpng', '1.6.37'), + ('snappy', '1.1.9'), + ('zlib', '1.2.12'), + ('networkx', '2.8.4'), # required for pythran +] + +use_pip = True +sanity_pip_check = True + +# Dependencies created and updated using findPythonDeps.sh: +# https://gist.github.com/Flamefire/49426e502cd8983757bd01a08a10ae0d +exts_list = [ + ('wrapt', '1.14.1', { + 'checksums': ['380a85cf89e0e69b7cfbe2ea9f765f004ff419f34194018a6827ac0e3edfed4d'], + }), + ('termcolor', '1.1.0', { + 'checksums': ['1d6d69ce66211143803fbc56652b41d73b4a400a2891d7bf7a1cdf4c02de613b'], + }), + ('tensorflow-estimator', '2.9.0', { + 'source_tmpl': 'tensorflow_estimator-%(version)s-py2.py3-none-any.whl', + 'checksums': ['e9762bb302f51bc1eb2f35d19f0190a6a2d809d754d5def788c4328fe3746744'], + }), + ('Werkzeug', '2.2.2', { + 'checksums': ['7ea2d48322cc7c0f8b3a215ed73eabd7b5d75d0b50e31ab006286ccff9e00b8f'], + }), + ('tensorboard-plugin-wit', '1.8.1', { + 'source_tmpl': 'tensorboard_plugin_wit-%(version)s-py3-none-any.whl', + 'checksums': ['ff26bdd583d155aa951ee3b152b3d0cffae8005dc697f72b44a8e8c2a77a8cbe'], + }), + ('tensorboard-data-server', '0.6.1', { + 'source_tmpl': 'tensorboard_data_server-%(version)s-py3-none-any.whl', + 'checksums': ['809fe9887682d35c1f7d1f54f0f40f98bb1f771b14265b453ca051e2ce58fca7'], + }), + ('Markdown', '3.4.1', { + 'checksums': ['3b809086bb6efad416156e00a0da66fe47618a5d6918dd688f53f40c8e4cfeff'], + }), + ('grpcio', '1.47.0', { + 'modulename': 'grpc', + 'preinstallopts': "export GRPC_PYTHON_BUILD_EXT_COMPILER_JOBS=%(parallel)s && ", + 'checksums': ['5dbba95fab9b35957b4977b8904fc1fa56b302f9051eff4d7716ebb0c087f801'], + }), + ('oauthlib', '3.2.0', { + 'checksums': ['23a8208d75b902797ea29fd31fa80a15ed9dc2c6c16fe73f5d346f83f6fa27a2'], + }), + ('requests-oauthlib', '1.3.1', { + 'checksums': ['75beac4a47881eeb94d5ea5d6ad31ef88856affe2332b9aafb52c6452ccf0d7a'], + }), + ('rsa', '4.9', { + 'checksums': ['e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21'], + }), + ('pyasn1-modules', '0.2.8', { + 'checksums': ['905f84c712230b2c592c19470d3ca8d552de726050d1d1716282a1f6146be65e'], + }), + ('cachetools', '5.2.0', { + 'checksums': ['6a94c6402995a99c3970cc7e4884bb60b4a8639938157eeed436098bf9831757'], + }), + ('google-auth', '2.10.0', { + 'modulename': 'google.auth', + 'checksums': ['7904dbd44b745c7323fef29565adee2fe7ff48473e2d94443aced40b0404a395'], + }), + ('google-auth-oauthlib', '0.4.6', { + 'checksums': ['a90a072f6993f2c327067bf65270046384cda5a8ecb20b94ea9a687f1f233a7a'], + }), + ('absl-py', '1.2.0', { + 'modulename': 'absl', + 'checksums': ['f568809938c49abbda89826223c992b630afd23c638160ad7840cfe347710d97'], + }), + ('tensorboard', version, { + 'source_tmpl': SOURCE_PY3_WHL, + 'checksums': ['baa727f791776f9e5841d347127720ceed4bbd59c36b40604b95fb2ae6029276'], + }), + ('opt-einsum', '3.3.0', { + 'source_tmpl': 'opt_einsum-%(version)s.tar.gz', + 'checksums': ['59f6475f77bbc37dcf7cd748519c0ec60722e91e63ca114e68821c0c54a46549'], + }), + ('Keras-Preprocessing', '1.1.2', { + 'source_tmpl': 'Keras_Preprocessing-%(version)s.tar.gz', + 'checksums': ['add82567c50c8bc648c14195bf544a5ce7c1f76761536956c3d2978970179ef3'], + }), + ('keras', '2.9.0', { + 'source_tmpl': SOURCE_WHL, + 'checksums': ['55911256f89cfc9343c9fbe4b61ec45a2d33d89729cbe1ab9dcacf8b07b8b6ab'], + }), + ('google-pasta', '0.2.0', { + 'modulename': 'pasta', + 'checksums': ['c9f2c8dfc8f96d0d5808299920721be30c9eec37f2389f28904f454565c8a16e'], + }), + ('astunparse', '1.6.3', { + 'checksums': ['5ad93a8456f0d084c3456d059fd9a92cce667963232cbf763eac3bc5b7940872'], + }), + # Version <= 0.4.0 required by TF: https://github.com/tensorflow/tensorflow/issues/56244 + ('gast', '0.4.0', { + 'checksums': ['40feb7b8b8434785585ab224d1568b857edb18297e5a3047f1ba012bc83b42c1'], + }), + # (newer) pythran and beniget in SciPy-Bundle require gast 0.5 + ('beniget', '0.3.0', { + 'checksums': ['062c893be9cdf87c3144fb15041cce4d81c67107c1591952cd45fdce789a0ff1'], + }), + ('pythran', '0.9.11', { + 'checksums': ['a317f91e2aade9f6550dc3bf40b5caeb45b7e012daf27e2b3e4ad928edb01667'], + }), + # Required by tests + ('portpicker', '1.5.2', { + 'checksums': ['c55683ad725f5c00a41bc7db0225223e8be024b1fa564d039ed3390e4fd48fb3'], + }), + # System dependencies + ('tblib', '1.7.0', { + 'checksums': ['059bd77306ea7b419d4f76016aef6d7027cc8a0785579b5aad198803435f882c'], + }), + ('astor', '0.8.1', { + 'checksums': ['6a6effda93f4e1ce9f618779b2dd1d9d84f1e32812c23a29b3fff6fd7f63fa5e'], + }), + # Optional profile plugin + dependency + ('gviz-api', '1.10.0', { + 'source_tmpl': 'gviz_api-%(version)s.tar.gz', + 'checksums': ['846692dd8cc73224fc31b18e41589bd934e1cc05090c6576af4b4b26c2e71b90'], + }), + ('tensorboard-plugin-profile', '2.8.0', { + 'source_tmpl': 'tensorboard_plugin_profile-%(version)s.tar.gz', + 'checksums': ['58d65c979951e7628ca3b46c798e10e5813026a3ecfbacc319cf88ebe766134a'], + }), + (name, version, { + 'source_tmpl': 'v%(version)s.tar.gz', + 'source_urls': ['https://github.com/tensorflow/tensorflow/archive/'], + 'patches': [ + 'TensorFlow-2.1.0_fix-cuda-build.patch', + 'TensorFlow-2.4.0_add-ldl.patch', + 'TensorFlow-2.4.0_dont-use-var-lock.patch', + 'TensorFlow-2.5.0_add-support-for-large-core-systems.patch', + 'TensorFlow-2.5.0_disable-avx512-extensions.patch', + 'TensorFlow-2.5.0-fix-alias-violation-in-absl.patch', + 'TensorFlow-2.5.0_fix-arm-vector-intrinsics.patch', + 'TensorFlow-2.5.0_fix-crash-on-shutdown.patch', + 'TensorFlow-2.7.1_fix_cpu_count.patch', + 'TensorFlow-2.8.4_exclude-xnnpack-on-ppc.patch', + 'TensorFlow-2.8.4_fix-PPC-JIT.patch', + 'TensorFlow-2.8.4_resolve-gcc-symlinks.patch', + 'TensorFlow-2.9.1_fix-check-for-MKL.patch', + 'TensorFlow-2.9.1_fix-PPC-Eigen-build.patch', + 'TensorFlow-2.9.1_remove-duplicate-gpu-tests.patch', + 'TensorFlow-2.9.1_remove-libclang-and-io-gcs-deps.patch', + 'TensorFlow-2.9.1_support_flatbuffers_2.0.patch', + 'TensorFlow-2.9.1_support_flatbuffers_2.0.6.patch', + ], + 'checksums': [ + {'v2.9.1.tar.gz': '6eaf86ead73e23988fe192da1db68f4d3828bcdd0f3a9dc195935e339c95dbdc'}, + {'TensorFlow-2.1.0_fix-cuda-build.patch': + '78c20aeaa7784b8ceb46238a81e8c2461137d28e0b576deeba8357d23fbe1f5a'}, + {'TensorFlow-2.4.0_add-ldl.patch': '917ee7282e782e48673596d8917c3207e60e0851bb9acf230a2a439b067af2e3'}, + {'TensorFlow-2.4.0_dont-use-var-lock.patch': + 'b14f2493fd2edf79abd1c4f2dde6c98a3e7d5cb9c25ab9386df874d5f072d6b5'}, + {'TensorFlow-2.5.0_add-support-for-large-core-systems.patch': + '915f3477d6407fafd48269fe1e684a05ce361d9b9b85e58686682df87760f636'}, + {'TensorFlow-2.5.0_disable-avx512-extensions.patch': + '3655ce24c97569ac9738c07cac85347ba6f5c815ada95b19b606ffa46d4dda03'}, + {'TensorFlow-2.5.0-fix-alias-violation-in-absl.patch': + '12454fda3330fb45cd380377e283f04488b40e0b8ae7378e786ddf731a581f75'}, + {'TensorFlow-2.5.0_fix-arm-vector-intrinsics.patch': + '5edea55ce87d5adb14f6ed6996f308879e268b8cec760cf11288e3a56179a029'}, + {'TensorFlow-2.5.0_fix-crash-on-shutdown.patch': + '578c7493221ebd3dc25ca43d63a72cbb28fdf4112b1e2baa7390f25781bd78fd'}, + {'TensorFlow-2.7.1_fix_cpu_count.patch': + '5427a4cff0afc2fe5b24776ae9ca3616c56a79c1fde0025b37bec24837bb0698'}, + {'TensorFlow-2.8.4_exclude-xnnpack-on-ppc.patch': + 'ebd404ac56cc4ca662483f1f591e62e11749361be57a7ba5f4b2f0d03e829884'}, + {'TensorFlow-2.8.4_fix-PPC-JIT.patch': + '27d28293105b4dd0a25f58346c68b672f57215756f14a97c442d0e3317e93a2b'}, + {'TensorFlow-2.8.4_resolve-gcc-symlinks.patch': + '43ce9acc6bffff68a31d2263d0064d272999b2e0a2c6546690287cd1c9c90f04'}, + {'TensorFlow-2.9.1_fix-check-for-MKL.patch': + '3b9d20b43391def093a30dbc45b7502a48916efedf7314700f78cc7b2cc1b645'}, + {'TensorFlow-2.9.1_fix-PPC-Eigen-build.patch': + '5f559a6eade65df665c7c69bc2e5d5d4214b85ea836e966f5dba73211307b972'}, + {'TensorFlow-2.9.1_remove-duplicate-gpu-tests.patch': + '6fe50faab28387c622c68dc3fc0cbfb2a51000cd750c1a82f8420b54fcd2509f'}, + {'TensorFlow-2.9.1_remove-libclang-and-io-gcs-deps.patch': + '13a987ce8e20957d9a618493f6a0e8f67e0f9c8b11596f27bcd7322a8e62113d'}, + {'TensorFlow-2.9.1_support_flatbuffers_2.0.patch': + 'aaf0e0f86ad26f98a2bbb230dc2bbc2fb5f04886ab340049b5eaf3c70ae18f39'}, + {'TensorFlow-2.9.1_support_flatbuffers_2.0.6.patch': + 'b6203d42d68fe42a637499b78e423b66e1310dbc34ef3d1d2d804f8c665997ae'}, + ], + 'test_script': 'TensorFlow-2.x_mnist-test.py', + 'test_tag_filters_cpu': '-gpu,-tpu,-no_cuda_on_cpu_tap,' + '-no_pip,-no_oss,-oss_serial,-benchmark-test,-v1only', + 'test_tag_filters_gpu': 'gpu,-no_gpu,-nogpu,-gpu_cupti,-no_cuda11,' + '-no_pip,-no_oss,-oss_serial,-benchmark-test,-v1only', + 'test_targets': [ + '//tensorflow/core/...', + '-//tensorflow/core:example_java_proto', + '-//tensorflow/core/example:example_protos_closure', + '//tensorflow/cc/...', + '//tensorflow/c/...', + '//tensorflow/python/...', + '-//tensorflow/c/eager:c_api_test_gpu', + '-//tensorflow/c/eager:c_api_distributed_test', + '-//tensorflow/c/eager:c_api_distributed_test_gpu', + '-//tensorflow/c/eager:c_api_cluster_test_gpu', + '-//tensorflow/c/eager:c_api_remote_function_test_gpu', + '-//tensorflow/c/eager:c_api_remote_test_gpu', + '-//tensorflow/core/common_runtime:collective_param_resolver_local_test', + '-//tensorflow/core/common_runtime:mkl_layout_pass_test', + '-//tensorflow/core/kernels/mkl:mkl_fused_ops_test', + '-//tensorflow/core/kernels/mkl:mkl_fused_batch_norm_op_test', + '-//tensorflow/core/ir/importexport/tests/roundtrip/...', + ], + 'testopts': "--test_timeout=3600 --test_size_filters=small", + 'testopts_gpu': "--test_timeout=3600 --test_size_filters=small " + "--run_under=//tensorflow/tools/ci_build/gpu_build:parallel_gpu_execute", + 'with_xla': True, + }), +] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.9.1-foss-2022a.eb b/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.9.1-foss-2022a.eb new file mode 100644 index 00000000000..d75ff3264c5 --- /dev/null +++ b/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.9.1-foss-2022a.eb @@ -0,0 +1,249 @@ +easyblock = 'PythonBundle' + +name = 'TensorFlow' +version = '2.9.1' + +homepage = 'https://www.tensorflow.org/' +description = "An open-source software library for Machine Intelligence" + +toolchain = {'name': 'foss', 'version': '2022a'} +toolchainopts = {'pic': True} + +builddependencies = [ + ('Bazel', '5.1.1'), + ('protobuf', '3.19.4'), + # git 2.x required, see also https://github.com/tensorflow/tensorflow/issues/29053 + ('git', '2.36.0', '-nodocs'), + ('pybind11', '2.9.2'), + ('UnZip', '6.0'), + ('LLVM', '14.0.3'), # for debugging with llvm-symbolizer, to be removed +] +dependencies = [ + ('Python', '3.10.4'), + ('h5py', '3.7.0'), + ('cURL', '7.83.0'), + ('dill', '0.3.6'), + ('double-conversion', '3.2.0'), + ('flatbuffers', '2.0.7'), + ('giflib', '5.2.1'), + ('hwloc', '2.7.1'), + ('ICU', '71.1'), + ('JsonCpp', '1.9.5'), + ('libjpeg-turbo', '2.1.3'), + ('LMDB', '0.9.29'), + ('NASM', '2.15.05'), + ('nsync', '1.25.0'), + ('SQLite', '3.38.3'), + ('protobuf-python', '3.19.4'), + ('flatbuffers-python', '2.0'), + ('libpng', '1.6.37'), + ('snappy', '1.1.9'), + ('zlib', '1.2.12'), + ('networkx', '2.8.4'), # required for pythran +] + +use_pip = True +sanity_pip_check = True + +# Dependencies created and updated using findPythonDeps.sh: +# https://gist.github.com/Flamefire/49426e502cd8983757bd01a08a10ae0d +exts_list = [ + ('wrapt', '1.14.1', { + 'checksums': ['380a85cf89e0e69b7cfbe2ea9f765f004ff419f34194018a6827ac0e3edfed4d'], + }), + ('termcolor', '1.1.0', { + 'checksums': ['1d6d69ce66211143803fbc56652b41d73b4a400a2891d7bf7a1cdf4c02de613b'], + }), + ('tensorflow-estimator', '2.9.0', { + 'source_tmpl': 'tensorflow_estimator-%(version)s-py2.py3-none-any.whl', + 'checksums': ['e9762bb302f51bc1eb2f35d19f0190a6a2d809d754d5def788c4328fe3746744'], + }), + ('Werkzeug', '2.2.2', { + 'checksums': ['7ea2d48322cc7c0f8b3a215ed73eabd7b5d75d0b50e31ab006286ccff9e00b8f'], + }), + ('tensorboard-plugin-wit', '1.8.1', { + 'source_tmpl': 'tensorboard_plugin_wit-%(version)s-py3-none-any.whl', + 'checksums': ['ff26bdd583d155aa951ee3b152b3d0cffae8005dc697f72b44a8e8c2a77a8cbe'], + }), + ('tensorboard-data-server', '0.6.1', { + 'source_tmpl': 'tensorboard_data_server-%(version)s-py3-none-any.whl', + 'checksums': ['809fe9887682d35c1f7d1f54f0f40f98bb1f771b14265b453ca051e2ce58fca7'], + }), + ('Markdown', '3.4.1', { + 'checksums': ['3b809086bb6efad416156e00a0da66fe47618a5d6918dd688f53f40c8e4cfeff'], + }), + ('grpcio', '1.47.0', { + 'modulename': 'grpc', + 'preinstallopts': "export GRPC_PYTHON_BUILD_EXT_COMPILER_JOBS=%(parallel)s && ", + 'checksums': ['5dbba95fab9b35957b4977b8904fc1fa56b302f9051eff4d7716ebb0c087f801'], + }), + ('oauthlib', '3.2.0', { + 'checksums': ['23a8208d75b902797ea29fd31fa80a15ed9dc2c6c16fe73f5d346f83f6fa27a2'], + }), + ('requests-oauthlib', '1.3.1', { + 'checksums': ['75beac4a47881eeb94d5ea5d6ad31ef88856affe2332b9aafb52c6452ccf0d7a'], + }), + ('rsa', '4.9', { + 'checksums': ['e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21'], + }), + ('pyasn1-modules', '0.2.8', { + 'checksums': ['905f84c712230b2c592c19470d3ca8d552de726050d1d1716282a1f6146be65e'], + }), + ('cachetools', '5.2.0', { + 'checksums': ['6a94c6402995a99c3970cc7e4884bb60b4a8639938157eeed436098bf9831757'], + }), + ('google-auth', '2.10.0', { + 'modulename': 'google.auth', + 'checksums': ['7904dbd44b745c7323fef29565adee2fe7ff48473e2d94443aced40b0404a395'], + }), + ('google-auth-oauthlib', '0.4.6', { + 'checksums': ['a90a072f6993f2c327067bf65270046384cda5a8ecb20b94ea9a687f1f233a7a'], + }), + ('absl-py', '1.2.0', { + 'modulename': 'absl', + 'checksums': ['f568809938c49abbda89826223c992b630afd23c638160ad7840cfe347710d97'], + }), + ('tensorboard', version, { + 'source_tmpl': SOURCE_PY3_WHL, + 'checksums': ['baa727f791776f9e5841d347127720ceed4bbd59c36b40604b95fb2ae6029276'], + }), + ('opt-einsum', '3.3.0', { + 'source_tmpl': 'opt_einsum-%(version)s.tar.gz', + 'checksums': ['59f6475f77bbc37dcf7cd748519c0ec60722e91e63ca114e68821c0c54a46549'], + }), + ('Keras-Preprocessing', '1.1.2', { + 'source_tmpl': 'Keras_Preprocessing-%(version)s.tar.gz', + 'checksums': ['add82567c50c8bc648c14195bf544a5ce7c1f76761536956c3d2978970179ef3'], + }), + ('keras', '2.9.0', { + 'source_tmpl': SOURCE_WHL, + 'checksums': ['55911256f89cfc9343c9fbe4b61ec45a2d33d89729cbe1ab9dcacf8b07b8b6ab'], + }), + ('google-pasta', '0.2.0', { + 'modulename': 'pasta', + 'checksums': ['c9f2c8dfc8f96d0d5808299920721be30c9eec37f2389f28904f454565c8a16e'], + }), + ('astunparse', '1.6.3', { + 'checksums': ['5ad93a8456f0d084c3456d059fd9a92cce667963232cbf763eac3bc5b7940872'], + }), + # Version <= 0.4.0 required by TF: https://github.com/tensorflow/tensorflow/issues/56244 + ('gast', '0.4.0', { + 'checksums': ['40feb7b8b8434785585ab224d1568b857edb18297e5a3047f1ba012bc83b42c1'], + }), + # (newer) pythran and beniget in SciPy-Bundle require gast 0.5 + ('beniget', '0.3.0', { + 'checksums': ['062c893be9cdf87c3144fb15041cce4d81c67107c1591952cd45fdce789a0ff1'], + }), + ('pythran', '0.9.11', { + 'checksums': ['a317f91e2aade9f6550dc3bf40b5caeb45b7e012daf27e2b3e4ad928edb01667'], + }), + # Required by tests + ('portpicker', '1.5.2', { + 'checksums': ['c55683ad725f5c00a41bc7db0225223e8be024b1fa564d039ed3390e4fd48fb3'], + }), + # System dependencies + ('tblib', '1.7.0', { + 'checksums': ['059bd77306ea7b419d4f76016aef6d7027cc8a0785579b5aad198803435f882c'], + }), + ('astor', '0.8.1', { + 'checksums': ['6a6effda93f4e1ce9f618779b2dd1d9d84f1e32812c23a29b3fff6fd7f63fa5e'], + }), + # Optional profile plugin + dependency + ('gviz-api', '1.10.0', { + 'source_tmpl': 'gviz_api-%(version)s.tar.gz', + 'checksums': ['846692dd8cc73224fc31b18e41589bd934e1cc05090c6576af4b4b26c2e71b90'], + }), + ('tensorboard-plugin-profile', '2.8.0', { + 'source_tmpl': 'tensorboard_plugin_profile-%(version)s.tar.gz', + 'checksums': ['58d65c979951e7628ca3b46c798e10e5813026a3ecfbacc319cf88ebe766134a'], + }), + (name, version, { + 'source_tmpl': 'v%(version)s.tar.gz', + 'source_urls': ['https://github.com/tensorflow/tensorflow/archive/'], + 'patches': [ + 'TensorFlow-2.4.0_add-ldl.patch', + 'TensorFlow-2.4.0_dont-use-var-lock.patch', + 'TensorFlow-2.5.0_add-support-for-large-core-systems.patch', + 'TensorFlow-2.5.0_disable-avx512-extensions.patch', + 'TensorFlow-2.5.0-fix-alias-violation-in-absl.patch', + 'TensorFlow-2.5.0_fix-arm-vector-intrinsics.patch', + 'TensorFlow-2.5.0_fix-crash-on-shutdown.patch', + 'TensorFlow-2.7.1_fix_cpu_count.patch', + 'TensorFlow-2.8.4_exclude-xnnpack-on-ppc.patch', + 'TensorFlow-2.8.4_fix-PPC-JIT.patch', + 'TensorFlow-2.8.4_resolve-gcc-symlinks.patch', + 'TensorFlow-2.9.1_fix-check-for-MKL.patch', + 'TensorFlow-2.9.1_fix-PPC-Eigen-build.patch', + 'TensorFlow-2.9.1_remove-duplicate-gpu-tests.patch', + 'TensorFlow-2.9.1_remove-libclang-and-io-gcs-deps.patch', + 'TensorFlow-2.9.1_support_flatbuffers_2.0.patch', + 'TensorFlow-2.9.1_support_flatbuffers_2.0.6.patch', + ], + 'checksums': [ + {'v2.9.1.tar.gz': '6eaf86ead73e23988fe192da1db68f4d3828bcdd0f3a9dc195935e339c95dbdc'}, + {'TensorFlow-2.4.0_add-ldl.patch': '917ee7282e782e48673596d8917c3207e60e0851bb9acf230a2a439b067af2e3'}, + {'TensorFlow-2.4.0_dont-use-var-lock.patch': + 'b14f2493fd2edf79abd1c4f2dde6c98a3e7d5cb9c25ab9386df874d5f072d6b5'}, + {'TensorFlow-2.5.0_add-support-for-large-core-systems.patch': + '915f3477d6407fafd48269fe1e684a05ce361d9b9b85e58686682df87760f636'}, + {'TensorFlow-2.5.0_disable-avx512-extensions.patch': + '3655ce24c97569ac9738c07cac85347ba6f5c815ada95b19b606ffa46d4dda03'}, + {'TensorFlow-2.5.0-fix-alias-violation-in-absl.patch': + '12454fda3330fb45cd380377e283f04488b40e0b8ae7378e786ddf731a581f75'}, + {'TensorFlow-2.5.0_fix-arm-vector-intrinsics.patch': + '5edea55ce87d5adb14f6ed6996f308879e268b8cec760cf11288e3a56179a029'}, + {'TensorFlow-2.5.0_fix-crash-on-shutdown.patch': + '578c7493221ebd3dc25ca43d63a72cbb28fdf4112b1e2baa7390f25781bd78fd'}, + {'TensorFlow-2.7.1_fix_cpu_count.patch': + '5427a4cff0afc2fe5b24776ae9ca3616c56a79c1fde0025b37bec24837bb0698'}, + {'TensorFlow-2.8.4_exclude-xnnpack-on-ppc.patch': + 'ebd404ac56cc4ca662483f1f591e62e11749361be57a7ba5f4b2f0d03e829884'}, + {'TensorFlow-2.8.4_fix-PPC-JIT.patch': + '27d28293105b4dd0a25f58346c68b672f57215756f14a97c442d0e3317e93a2b'}, + {'TensorFlow-2.8.4_resolve-gcc-symlinks.patch': + '43ce9acc6bffff68a31d2263d0064d272999b2e0a2c6546690287cd1c9c90f04'}, + {'TensorFlow-2.9.1_fix-check-for-MKL.patch': + '3b9d20b43391def093a30dbc45b7502a48916efedf7314700f78cc7b2cc1b645'}, + {'TensorFlow-2.9.1_fix-PPC-Eigen-build.patch': + '5f559a6eade65df665c7c69bc2e5d5d4214b85ea836e966f5dba73211307b972'}, + {'TensorFlow-2.9.1_remove-duplicate-gpu-tests.patch': + '6fe50faab28387c622c68dc3fc0cbfb2a51000cd750c1a82f8420b54fcd2509f'}, + {'TensorFlow-2.9.1_remove-libclang-and-io-gcs-deps.patch': + '13a987ce8e20957d9a618493f6a0e8f67e0f9c8b11596f27bcd7322a8e62113d'}, + {'TensorFlow-2.9.1_support_flatbuffers_2.0.patch': + 'aaf0e0f86ad26f98a2bbb230dc2bbc2fb5f04886ab340049b5eaf3c70ae18f39'}, + {'TensorFlow-2.9.1_support_flatbuffers_2.0.6.patch': + 'b6203d42d68fe42a637499b78e423b66e1310dbc34ef3d1d2d804f8c665997ae'}, + ], + 'test_script': 'TensorFlow-2.x_mnist-test.py', + 'test_tag_filters_cpu': '-gpu,-tpu,-no_cuda_on_cpu_tap,' + '-no_pip,-no_oss,-oss_serial,-benchmark-test,-v1only', + 'test_tag_filters_gpu': 'gpu,-no_gpu,-nogpu,-gpu_cupti,-no_cuda11,' + '-no_pip,-no_oss,-oss_serial,-benchmark-test,-v1only', + 'test_targets': [ + '//tensorflow/core/...', + '-//tensorflow/core:example_java_proto', + '-//tensorflow/core/example:example_protos_closure', + '//tensorflow/cc/...', + '//tensorflow/c/...', + '//tensorflow/python/...', + '-//tensorflow/c/eager:c_api_test_gpu', + '-//tensorflow/c/eager:c_api_distributed_test', + '-//tensorflow/c/eager:c_api_distributed_test_gpu', + '-//tensorflow/c/eager:c_api_cluster_test_gpu', + '-//tensorflow/c/eager:c_api_remote_function_test_gpu', + '-//tensorflow/c/eager:c_api_remote_test_gpu', + '-//tensorflow/core/common_runtime:collective_param_resolver_local_test', + '-//tensorflow/core/common_runtime:mkl_layout_pass_test', + '-//tensorflow/core/kernels/mkl:mkl_fused_ops_test', + '-//tensorflow/core/kernels/mkl:mkl_fused_batch_norm_op_test', + '-//tensorflow/core/ir/importexport/tests/roundtrip/...', + ], + 'testopts': "--test_timeout=3600 --test_size_filters=small", + 'testopts_gpu': "--test_timeout=3600 --test_size_filters=small " + "--run_under=//tensorflow/tools/ci_build/gpu_build:parallel_gpu_execute", + 'with_xla': True, + }), +] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.9.1_fix-PPC-Eigen-build.patch b/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.9.1_fix-PPC-Eigen-build.patch new file mode 100644 index 00000000000..7ebb09097df --- /dev/null +++ b/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.9.1_fix-PPC-Eigen-build.patch @@ -0,0 +1,34 @@ +The new Eigen version used in TF 2.9 is not compatible with the custom classes +defined in TF leading to a compile error on PPC: +'class EigenForTFLite::internal::TensorContractionInputMapper, const EigenForTFLite::TensorImagePatchOp<-1, -1, const EigenForTFLite::TensorMap, 16> > >, EigenForTFLite::ThreadPoolDevice>, std::array, std::array, 4, true, false, 0, EigenForTFLite::MakePointer>' has no member named 'load' + +See https://github.com/tensorflow/tensorflow/issues/59212 and https://gitlab.com/libeigen/eigen/-/merge_requests/764#note_1231907378 +This might be easily fixable in more recent versions of TF/Eigen +but for now simply disable the custom TF code for PPC. + +diff --git a/tensorflow/core/kernels/eigen_cuboid_convolution.h b/tensorflow/core/kernels/eigen_cuboid_convolution.h +index 729dcd3bd2a..89f1d5b6732 100644 +--- a/tensorflow/core/kernels/eigen_cuboid_convolution.h ++++ b/tensorflow/core/kernels/eigen_cuboid_convolution.h +@@ -28,7 +28,7 @@ namespace Eigen { + + namespace internal { + +-#if !EIGEN_ALTIVEC_USE_CUSTOM_PACK ++#ifndef EIGEN_VECTORIZE_VSX + // WARNING: Most of the code here implicitly assumes that the matrix is in + // ColMajor layout. This is guaranteed by the tensor contraction (see + // TensorContraction.h). +diff --git a/tensorflow/core/kernels/eigen_spatial_convolutions-inl.h b/tensorflow/core/kernels/eigen_spatial_convolutions-inl.h +index 37a41f952fa..ade41fbf103 100644 +--- a/tensorflow/core/kernels/eigen_spatial_convolutions-inl.h ++++ b/tensorflow/core/kernels/eigen_spatial_convolutions-inl.h +@@ -23,7 +23,7 @@ namespace Eigen { + + namespace internal { + +-#if !EIGEN_ALTIVEC_USE_CUSTOM_PACK ++#ifndef EIGEN_VECTORIZE_VSX + // WARNING: Most of the code here implicitly assumes that the matrix is in + // ColMajor layout. This is guaranteed by the tensor contraction (see + // TensorContraction.h). diff --git a/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.9.1_fix-check-for-MKL.patch b/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.9.1_fix-check-for-MKL.patch new file mode 100644 index 00000000000..a9c1da7bc9a --- /dev/null +++ b/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.9.1_fix-check-for-MKL.patch @@ -0,0 +1,197 @@ +Tests are incorrectly not skipped causing failures related to MKL. +See https://github.com/tensorflow/tensorflow/issues/59252 + +Use a patch from TF 2.11: https://github.com/tensorflow/tensorflow/commit/5ec3d2e626589540bcfbeb7dac40255034e587df + +Author: Alexander Grund (TU Dresden) + +diff --git a/tensorflow/core/util/BUILD b/tensorflow/core/util/BUILD +index 8881f6fd5e9..25882152abf 100644 +--- a/tensorflow/core/util/BUILD ++++ b/tensorflow/core/util/BUILD +@@ -491,6 +491,11 @@ cc_library( + "//tensorflow/python:__pkg__", + "//tensorflow/python/util:__pkg__", + ], ++ deps = [ ++ "//tensorflow/core/platform:platform_port", ++ "//tensorflow/core/util:env_var", ++ "@com_google_absl//absl/base", ++ ], + alwayslink = 1, + ) + +diff --git a/tensorflow/core/util/port.cc b/tensorflow/core/util/port.cc +index 358b39bfb00..0aa3cfa708e 100644 +--- a/tensorflow/core/util/port.cc ++++ b/tensorflow/core/util/port.cc +@@ -15,6 +15,9 @@ limitations under the License. + + #include "tensorflow/core/util/port.h" + ++#include "absl/base/call_once.h" ++#include "tensorflow/core/platform/cpu_info.h" ++#include "tensorflow/core/util/env_var.h" + + namespace tensorflow { + +@@ -60,10 +63,57 @@ bool GpuSupportsHalfMatMulAndConv() { + } + + bool IsMklEnabled() { +-#if defined(INTEL_MKL) && defined(ENABLE_MKL) +- return true; +-#else ++#ifndef INTEL_MKL + return false; +-#endif // INTEL_MKL && ENABLE_MKL ++#endif ++ static absl::once_flag once; // NOLINT(clang-diagnostic-unreachable-code) ++#ifdef ENABLE_MKL ++ // Keeping TF_DISABLE_MKL env variable for legacy reasons. ++ static bool oneDNN_disabled = false; ++ absl::call_once(once, [&] { ++ TF_CHECK_OK(ReadBoolFromEnvVar("TF_DISABLE_MKL", false, &oneDNN_disabled)); ++ if (oneDNN_disabled) VLOG(2) << "TF-MKL: Disabling oneDNN"; ++ }); ++ return (!oneDNN_disabled); ++#else ++ // Linux: Turn oneDNN on by default for CPUs with neural network features. ++ // Windows: oneDNN is off by default. ++ // No need to guard for other platforms here because INTEL_MKL is only defined ++ // for non-mobile Linux or Windows. ++ static bool oneDNN_enabled = ++#ifdef __linux__ ++ port::TestCPUFeature(port::CPUFeature::AVX512_VNNI) || ++ port::TestCPUFeature(port::CPUFeature::AVX512_BF16) || ++ port::TestCPUFeature(port::CPUFeature::AVX_VNNI) || ++ port::TestCPUFeature(port::CPUFeature::AMX_TILE) || ++ port::TestCPUFeature(port::CPUFeature::AMX_INT8) || ++ port::TestCPUFeature(port::CPUFeature::AMX_BF16); ++#else ++ false; ++#endif // __linux__ ++ absl::call_once(once, [&] { ++ auto status = ReadBoolFromEnvVar("TF_ENABLE_ONEDNN_OPTS", oneDNN_enabled, ++ &oneDNN_enabled); ++ if (!status.ok()) { ++ LOG(WARNING) << "TF_ENABLE_ONEDNN_OPTS is not set to either '0', 'false'," ++ << " '1', or 'true'. Using the default setting: " ++ << oneDNN_enabled; ++ } ++ if (oneDNN_enabled) { ++#ifndef DNNL_AARCH64_USE_ACL ++ LOG(INFO) << "oneDNN custom operations are on. " ++ << "You may see slightly different numerical results due to " ++ << "floating-point round-off errors from different computation " ++ << "orders. To turn them off, set the environment variable " ++ << "`TF_ENABLE_ONEDNN_OPTS=0`."; ++#else ++ LOG(INFO) << "Experimental oneDNN custom operations are on. " ++ << "If you experience issues, please turn them off by setting " ++ << "the environment variable `TF_ENABLE_ONEDNN_OPTS=0`."; ++#endif // !DNNL_AARCH64_USE_ACL ++ } ++ }); ++ return oneDNN_enabled; ++#endif // ENABLE_MKL + } + } // end namespace tensorflow +diff --git a/tensorflow/core/util/util.cc b/tensorflow/core/util/util.cc +index eef2618de91..1c12f552d7d 100644 +--- a/tensorflow/core/util/util.cc ++++ b/tensorflow/core/util/util.cc +@@ -15,16 +15,10 @@ limitations under the License. + + #include "tensorflow/core/util/util.h" + +-#include +-#include +- +-#include "absl/base/call_once.h" +-#include "tensorflow/core/framework/device_factory.h" + #include "tensorflow/core/lib/gtl/inlined_vector.h" + #include "tensorflow/core/lib/strings/strcat.h" +-#include "tensorflow/core/platform/cpu_info.h" + #include "tensorflow/core/platform/logging.h" +-#include "tensorflow/core/util/env_var.h" ++#include "tensorflow/core/util/port.h" + + namespace tensorflow { + +@@ -127,59 +121,7 @@ string SliceDebugString(const TensorShape& shape, const int64_t flat) { + return result; + } + +-bool IsMKLEnabled() { +-#ifndef INTEL_MKL +- return false; +-#endif // !INTEL_MKL +- static absl::once_flag once; +-#ifdef ENABLE_MKL +- // Keeping TF_DISABLE_MKL env variable for legacy reasons. +- static bool oneDNN_disabled = false; +- absl::call_once(once, [&] { +- TF_CHECK_OK(ReadBoolFromEnvVar("TF_DISABLE_MKL", false, &oneDNN_disabled)); +- if (oneDNN_disabled) VLOG(2) << "TF-MKL: Disabling oneDNN"; +- }); +- return (!oneDNN_disabled); +-#else +- // Linux: Turn oneDNN on by default for CPUs with neural network features. +- // Windows: oneDNN is off by default. +- // No need to guard for other platforms here because INTEL_MKL is only defined +- // for non-mobile Linux or Windows. +- static bool oneDNN_enabled = +-#ifdef __linux__ +- port::TestCPUFeature(port::CPUFeature::AVX512_VNNI) || +- port::TestCPUFeature(port::CPUFeature::AVX512_BF16) || +- port::TestCPUFeature(port::CPUFeature::AVX_VNNI) || +- port::TestCPUFeature(port::CPUFeature::AMX_TILE) || +- port::TestCPUFeature(port::CPUFeature::AMX_INT8) || +- port::TestCPUFeature(port::CPUFeature::AMX_BF16); +-#else +- false; +-#endif // __linux__ +- absl::call_once(once, [&] { +- auto status = ReadBoolFromEnvVar("TF_ENABLE_ONEDNN_OPTS", oneDNN_enabled, +- &oneDNN_enabled); +- if (!status.ok()) { +- LOG(WARNING) << "TF_ENABLE_ONEDNN_OPTS is not set to either '0', 'false'," +- << " '1', or 'true'. Using the default setting: " +- << oneDNN_enabled; +- } +- if (oneDNN_enabled) { +-#ifndef DNNL_AARCH64_USE_ACL +- LOG(INFO) << "oneDNN custom operations are on. " +- << "You may see slightly different numerical results due to " +- << "floating-point round-off errors from different computation " +- << "orders. To turn them off, set the environment variable " +- << "`TF_ENABLE_ONEDNN_OPTS=0`."; +-#else +- LOG(INFO) << "Experimental oneDNN custom operations are on. " +- << "If you experience issues, please turn them off by setting " +- << "the environment variable `TF_ENABLE_ONEDNN_OPTS=0`."; +-#endif // !DNNL_AARCH64_USE_ACL +- } +- }); +- return oneDNN_enabled; +-#endif // ENABLE_MKL +-} ++// TODO(penporn): Remove this function from util.cc ++bool IsMKLEnabled() { return IsMklEnabled(); } + + } // namespace tensorflow +diff --git a/tensorflow/python/framework/test_util.py b/tensorflow/python/framework/test_util.py +index 02149d89b2f..e859ec47a1e 100644 +--- a/tensorflow/python/framework/test_util.py ++++ b/tensorflow/python/framework/test_util.py +@@ -359,8 +359,7 @@ def GpuSupportsHalfMatMulAndConv(): + + + def IsMklEnabled(): +- return (_pywrap_util_port.IsMklEnabled() or +- os.getenv("TF_ENABLE_ONEDNN_OPTS", "False").lower() in ["true", "1"]) ++ return _pywrap_util_port.IsMklEnabled() + + + def InstallStackTraceHandler(): diff --git a/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.9.1_remove-libclang-and-io-gcs-deps.patch b/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.9.1_remove-libclang-and-io-gcs-deps.patch new file mode 100644 index 00000000000..437f45fe5ef --- /dev/null +++ b/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.9.1_remove-libclang-and-io-gcs-deps.patch @@ -0,0 +1,35 @@ +This combines two patches from TensorFlow 2.7.1. + +tensorflow-io-gcs-filesystem is not available as a binary for all architectures and +building it requires TensorFlow to be installed, i.e. there is a cyclic dependency. +As it is not actually required (but optional) remove it from `REQUIRED_PACKAGES`. +See https://github.com/tensorflow/tensorflow/issues/56636 + +libclang was introduced in +https://github.com/tensorflow/tensorflow/commit/c211472000ff57bac7fcec9b0465cf73b37bf135 +> This is in preparation to open-source TF's TFRT backend. +> TFRT generates code using libclang python bindings as part of the build. +Hence it is not currently used and as it is not (easily) available for all architectures +simply remove it. + +Patch added by Simon Branford (University of Birmingham) +Updated by Alexander Grund (TU Dresden) + +--- a/tensorflow/tools/pip_package/setup.py ++++ b/tensorflow/tools/pip_package/setup.py +@@ -83,7 +83,6 @@ REQUIRED_PACKAGES = [ + 'google_pasta >= 0.1.1', + 'h5py >= 2.9.0', + 'keras_preprocessing >= 1.1.1', # 1.1.0 needs tensorflow==1.7 +- 'libclang >= 13.0.0', + 'numpy >= 1.20', + 'opt_einsum >= 2.3.2', + 'packaging', +@@ -100,7 +99,6 @@ REQUIRED_PACKAGES = [ + 'termcolor >= 1.1.0', + 'typing_extensions >= 3.6.6', + 'wrapt >= 1.11.0', +- 'tensorflow-io-gcs-filesystem >= 0.23.1', + # grpcio does not build correctly on big-endian machines due to lack of + # BoringSSL support. + # See https://github.com/tensorflow/tensorflow/issues/17882. diff --git a/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.9.1_support_flatbuffers_2.0.6.patch b/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.9.1_support_flatbuffers_2.0.6.patch new file mode 100644 index 00000000000..9612f06140a --- /dev/null +++ b/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.9.1_support_flatbuffers_2.0.6.patch @@ -0,0 +1,4901 @@ +Add support for flatbuffers 2.0.6 on top of 2.0 +Taken from https://github.com/tensorflow/tensorflow/commit/3ef396642bb88580b527077cf2d6dc12325085be + +Backported to 2.9.1 by +Author: Alexander Grund (TU Dresden) + +diff --git a/tensorflow/lite/CMakeLists.txt b/tensorflow/lite/CMakeLists.txt +index 40f9485b5d6..5ac317b9c13 100644 +--- a/tensorflow/lite/CMakeLists.txt ++++ b/tensorflow/lite/CMakeLists.txt +@@ -306,6 +306,11 @@ if(TFLITE_ENABLE_GPU) + ${TFLITE_SOURCE_DIR}/tools/versioning/gpu_compatibility.cc + ${TFLITE_SOURCE_DIR}/tools/versioning/op_signature.cc + ) ++ include_directories( ++ AFTER ++ ${TFLITE_SOURCE_DIR}/delegates/gpu/common ++ ${TFLITE_SOURCE_DIR}/delegates/gpu/common/task ++ ) + if(TFLITE_ENABLE_METAL AND "${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin") + # + # libmetal_delegate library +diff --git a/tensorflow/lite/delegates/gpu/cl/compiled_program_cache_generated.h b/tensorflow/lite/delegates/gpu/cl/compiled_program_cache_generated.h +index 8a12bf2a9db..ec0f176b45a 100644 +--- a/tensorflow/lite/delegates/gpu/cl/compiled_program_cache_generated.h ++++ b/tensorflow/lite/delegates/gpu/cl/compiled_program_cache_generated.h +@@ -26,10 +26,13 @@ namespace cl { + namespace data { + + struct Program; ++struct ProgramBuilder; + + struct CompiledCache; ++struct CompiledCacheBuilder; + + struct Program FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { ++ typedef ProgramBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_FINGERPRINT = 4, + VT_BINARY = 6 +@@ -42,7 +45,7 @@ struct Program FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_FINGERPRINT) && ++ VerifyField(verifier, VT_FINGERPRINT, 8) && + VerifyOffset(verifier, VT_BINARY) && + verifier.VerifyVector(binary()) && + verifier.EndTable(); +@@ -50,6 +53,7 @@ struct Program FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct ProgramBuilder { ++ typedef Program Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_fingerprint(uint64_t fingerprint) { +@@ -62,7 +66,6 @@ struct ProgramBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- ProgramBuilder &operator=(const ProgramBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -92,6 +95,7 @@ inline flatbuffers::Offset CreateProgramDirect( + } + + struct CompiledCache FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { ++ typedef CompiledCacheBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_DRIVER_VERSION = 4, + VT_PROGRAMS = 6 +@@ -99,8 +103,8 @@ struct CompiledCache FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + const flatbuffers::String *driver_version() const { + return GetPointer(VT_DRIVER_VERSION); + } +- const flatbuffers::Vector> *programs() const { +- return GetPointer> *>(VT_PROGRAMS); ++ const flatbuffers::Vector> *programs() const { ++ return GetPointer> *>(VT_PROGRAMS); + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +@@ -114,19 +118,19 @@ struct CompiledCache FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct CompiledCacheBuilder { ++ typedef CompiledCache Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_driver_version(flatbuffers::Offset driver_version) { + fbb_.AddOffset(CompiledCache::VT_DRIVER_VERSION, driver_version); + } +- void add_programs(flatbuffers::Offset>> programs) { ++ void add_programs(flatbuffers::Offset>> programs) { + fbb_.AddOffset(CompiledCache::VT_PROGRAMS, programs); + } + explicit CompiledCacheBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- CompiledCacheBuilder &operator=(const CompiledCacheBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -137,7 +141,7 @@ struct CompiledCacheBuilder { + inline flatbuffers::Offset CreateCompiledCache( + flatbuffers::FlatBufferBuilder &_fbb, + flatbuffers::Offset driver_version = 0, +- flatbuffers::Offset>> programs = 0) { ++ flatbuffers::Offset>> programs = 0) { + CompiledCacheBuilder builder_(_fbb); + builder_.add_programs(programs); + builder_.add_driver_version(driver_version); +@@ -147,9 +151,9 @@ inline flatbuffers::Offset CreateCompiledCache( + inline flatbuffers::Offset CreateCompiledCacheDirect( + flatbuffers::FlatBufferBuilder &_fbb, + const char *driver_version = nullptr, +- const std::vector> *programs = nullptr) { ++ const std::vector> *programs = nullptr) { + auto driver_version__ = driver_version ? _fbb.CreateString(driver_version) : 0; +- auto programs__ = programs ? _fbb.CreateVector>(*programs) : 0; ++ auto programs__ = programs ? _fbb.CreateVector>(*programs) : 0; + return tflite::gpu::cl::data::CreateCompiledCache( + _fbb, + driver_version__, +@@ -173,6 +177,11 @@ inline bool CompiledCacheBufferHasIdentifier(const void *buf) { + buf, CompiledCacheIdentifier()); + } + ++inline bool SizePrefixedCompiledCacheBufferHasIdentifier(const void *buf) { ++ return flatbuffers::BufferHasIdentifier( ++ buf, CompiledCacheIdentifier(), true); ++} ++ + inline bool VerifyCompiledCacheBuffer( + flatbuffers::Verifier &verifier) { + return verifier.VerifyBuffer(CompiledCacheIdentifier()); +diff --git a/tensorflow/lite/delegates/gpu/cl/serialization_generated.h b/tensorflow/lite/delegates/gpu/cl/serialization_generated.h +index 26691adb44a..aa4affb7ed4 100644 +--- a/tensorflow/lite/delegates/gpu/cl/serialization_generated.h ++++ b/tensorflow/lite/delegates/gpu/cl/serialization_generated.h +@@ -19,8 +19,9 @@ limitations under the License. + #define FLATBUFFERS_GENERATED_SERIALIZATION_TFLITE_GPU_CL_DATA_H_ + + #include "flatbuffers/flatbuffers.h" +-#include "tensorflow/lite/delegates/gpu/common/gpu_model_generated.h" +-#include "tensorflow/lite/delegates/gpu/common/task/serialization_base_generated.h" ++ ++#include "serialization_base_generated.h" ++#include "gpu_model_generated.h" + + namespace tflite { + namespace gpu { +@@ -39,15 +40,18 @@ struct BinaryProgram FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + VT_FINGERPRINT = 4, + VT_BINARY = 6 + }; +- uint64_t fingerprint() const { return GetField(VT_FINGERPRINT, 0); } ++ uint64_t fingerprint() const { ++ return GetField(VT_FINGERPRINT, 0); ++ } + const flatbuffers::Vector *binary() const { + return GetPointer *>(VT_BINARY); + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_FINGERPRINT) && ++ VerifyField(verifier, VT_FINGERPRINT, 8) && + VerifyOffset(verifier, VT_BINARY) && +- verifier.VerifyVector(binary()) && verifier.EndTable(); ++ verifier.VerifyVector(binary()) && ++ verifier.EndTable(); + } + }; + +@@ -62,7 +66,7 @@ struct BinaryProgramBuilder { + fbb_.AddOffset(BinaryProgram::VT_BINARY, binary); + } + explicit BinaryProgramBuilder(flatbuffers::FlatBufferBuilder &_fbb) +- : fbb_(_fbb) { ++ : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } + flatbuffers::Offset Finish() { +@@ -73,7 +77,8 @@ struct BinaryProgramBuilder { + }; + + inline flatbuffers::Offset CreateBinaryProgram( +- flatbuffers::FlatBufferBuilder &_fbb, uint64_t fingerprint = 0, ++ flatbuffers::FlatBufferBuilder &_fbb, ++ uint64_t fingerprint = 0, + flatbuffers::Offset> binary = 0) { + BinaryProgramBuilder builder_(_fbb); + builder_.add_fingerprint(fingerprint); +@@ -82,11 +87,14 @@ inline flatbuffers::Offset CreateBinaryProgram( + } + + inline flatbuffers::Offset CreateBinaryProgramDirect( +- flatbuffers::FlatBufferBuilder &_fbb, uint64_t fingerprint = 0, ++ flatbuffers::FlatBufferBuilder &_fbb, ++ uint64_t fingerprint = 0, + const std::vector *binary = nullptr) { + auto binary__ = binary ? _fbb.CreateVector(*binary) : 0; +- return tflite::gpu::cl::data::CreateBinaryProgram(_fbb, fingerprint, +- binary__); ++ return tflite::gpu::cl::data::CreateBinaryProgram( ++ _fbb, ++ fingerprint, ++ binary__); + } + + struct InferenceContext FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +@@ -104,25 +112,18 @@ struct InferenceContext FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + const flatbuffers::String *driver_version() const { + return GetPointer(VT_DRIVER_VERSION); + } +- const flatbuffers::Vector< +- flatbuffers::Offset> +- *binary_programs() const { +- return GetPointer> *>( +- VT_BINARY_PROGRAMS); ++ const flatbuffers::Vector> *binary_programs() const { ++ return GetPointer> *>(VT_BINARY_PROGRAMS); + } +- const flatbuffers::Vector> +- *tuned_work_group_sizes_per_node() const { +- return GetPointer> *>( +- VT_TUNED_WORK_GROUP_SIZES_PER_NODE); ++ const flatbuffers::Vector> *tuned_work_group_sizes_per_node() const { ++ return GetPointer> *>(VT_TUNED_WORK_GROUP_SIZES_PER_NODE); + } + const flatbuffers::Vector *fingerprints_per_node() const { +- return GetPointer *>( +- VT_FINGERPRINTS_PER_NODE); ++ return GetPointer *>(VT_FINGERPRINTS_PER_NODE); + } + bool Verify(flatbuffers::Verifier &verifier) const { +- return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_GPU_MODEL) && ++ return VerifyTableStart(verifier) && ++ VerifyOffset(verifier, VT_GPU_MODEL) && + verifier.VerifyTable(gpu_model()) && + VerifyOffset(verifier, VT_DRIVER_VERSION) && + verifier.VerifyString(driver_version()) && +@@ -142,32 +143,20 @@ struct InferenceContextBuilder { + typedef InferenceContext Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; +- void add_gpu_model( +- flatbuffers::Offset gpu_model) { ++ void add_gpu_model(flatbuffers::Offset gpu_model) { + fbb_.AddOffset(InferenceContext::VT_GPU_MODEL, gpu_model); + } +- void add_driver_version( +- flatbuffers::Offset driver_version) { ++ void add_driver_version(flatbuffers::Offset driver_version) { + fbb_.AddOffset(InferenceContext::VT_DRIVER_VERSION, driver_version); + } +- void add_binary_programs( +- flatbuffers::Offset>> +- binary_programs) { ++ void add_binary_programs(flatbuffers::Offset>> binary_programs) { + fbb_.AddOffset(InferenceContext::VT_BINARY_PROGRAMS, binary_programs); + } +- void add_tuned_work_group_sizes_per_node( +- flatbuffers::Offset< +- flatbuffers::Vector>> +- tuned_work_group_sizes_per_node) { +- fbb_.AddOffset(InferenceContext::VT_TUNED_WORK_GROUP_SIZES_PER_NODE, +- tuned_work_group_sizes_per_node); ++ void add_tuned_work_group_sizes_per_node(flatbuffers::Offset>> tuned_work_group_sizes_per_node) { ++ fbb_.AddOffset(InferenceContext::VT_TUNED_WORK_GROUP_SIZES_PER_NODE, tuned_work_group_sizes_per_node); + } +- void add_fingerprints_per_node( +- flatbuffers::Offset> +- fingerprints_per_node) { +- fbb_.AddOffset(InferenceContext::VT_FINGERPRINTS_PER_NODE, +- fingerprints_per_node); ++ void add_fingerprints_per_node(flatbuffers::Offset> fingerprints_per_node) { ++ fbb_.AddOffset(InferenceContext::VT_FINGERPRINTS_PER_NODE, fingerprints_per_node); + } + explicit InferenceContextBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { +@@ -184,14 +173,9 @@ inline flatbuffers::Offset CreateInferenceContext( + flatbuffers::FlatBufferBuilder &_fbb, + flatbuffers::Offset gpu_model = 0, + flatbuffers::Offset driver_version = 0, +- flatbuffers::Offset>> +- binary_programs = 0, +- flatbuffers::Offset< +- flatbuffers::Vector>> +- tuned_work_group_sizes_per_node = 0, +- flatbuffers::Offset> fingerprints_per_node = +- 0) { ++ flatbuffers::Offset>> binary_programs = 0, ++ flatbuffers::Offset>> tuned_work_group_sizes_per_node = 0, ++ flatbuffers::Offset> fingerprints_per_node = 0) { + InferenceContextBuilder builder_(_fbb); + builder_.add_fingerprints_per_node(fingerprints_per_node); + builder_.add_tuned_work_group_sizes_per_node(tuned_work_group_sizes_per_node); +@@ -205,31 +189,20 @@ inline flatbuffers::Offset CreateInferenceContextDirect( + flatbuffers::FlatBufferBuilder &_fbb, + flatbuffers::Offset gpu_model = 0, + const char *driver_version = nullptr, +- const std::vector> +- *binary_programs = nullptr, +- const std::vector> +- *tuned_work_group_sizes_per_node = nullptr, ++ const std::vector> *binary_programs = nullptr, ++ const std::vector> *tuned_work_group_sizes_per_node = nullptr, + const std::vector *fingerprints_per_node = nullptr) { +- auto driver_version__ = +- driver_version ? _fbb.CreateString(driver_version) : 0; +- auto binary_programs__ = +- binary_programs +- ? _fbb.CreateVector< +- flatbuffers::Offset>( +- *binary_programs) +- : 0; +- auto tuned_work_group_sizes_per_node__ = +- tuned_work_group_sizes_per_node +- ? _fbb.CreateVector>( +- *tuned_work_group_sizes_per_node) +- : 0; +- auto fingerprints_per_node__ = +- fingerprints_per_node +- ? _fbb.CreateVector(*fingerprints_per_node) +- : 0; ++ auto driver_version__ = driver_version ? _fbb.CreateString(driver_version) : 0; ++ auto binary_programs__ = binary_programs ? _fbb.CreateVector>(*binary_programs) : 0; ++ auto tuned_work_group_sizes_per_node__ = tuned_work_group_sizes_per_node ? _fbb.CreateVector>(*tuned_work_group_sizes_per_node) : 0; ++ auto fingerprints_per_node__ = fingerprints_per_node ? _fbb.CreateVector(*fingerprints_per_node) : 0; + return tflite::gpu::cl::data::CreateInferenceContext( +- _fbb, gpu_model, driver_version__, binary_programs__, +- tuned_work_group_sizes_per_node__, fingerprints_per_node__); ++ _fbb, ++ gpu_model, ++ driver_version__, ++ binary_programs__, ++ tuned_work_group_sizes_per_node__, ++ fingerprints_per_node__); + } + + inline const tflite::gpu::cl::data::InferenceContext *GetInferenceContext(const void *buf) { +diff --git a/tensorflow/lite/delegates/gpu/common/gpu_model_generated.h b/tensorflow/lite/delegates/gpu/common/gpu_model_generated.h +index 0f0873b1e44..8cc0d6c75c9 100644 +--- a/tensorflow/lite/delegates/gpu/common/gpu_model_generated.h ++++ b/tensorflow/lite/delegates/gpu/common/gpu_model_generated.h +@@ -18,7 +18,8 @@ limitations under the License. + #define FLATBUFFERS_GENERATED_GPUMODEL_TFLITE_GPU_DATA_H_ + + #include "flatbuffers/flatbuffers.h" +-#include "tensorflow/lite/delegates/gpu/common/task/serialization_base_generated.h" ++ ++#include "serialization_base_generated.h" + + namespace tflite { + namespace gpu { +@@ -45,11 +46,15 @@ struct TensorDescWithId FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + const tflite::gpu::data::TensorDescriptor *desc() const { + return GetPointer(VT_DESC); + } +- int32_t id() const { return GetField(VT_ID, 0); } ++ int32_t id() const { ++ return GetField(VT_ID, 0); ++ } + bool Verify(flatbuffers::Verifier &verifier) const { +- return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_DESC) && ++ return VerifyTableStart(verifier) && ++ VerifyOffset(verifier, VT_DESC) && + verifier.VerifyTable(desc()) && +- VerifyField(verifier, VT_ID) && verifier.EndTable(); ++ VerifyField(verifier, VT_ID, 4) && ++ verifier.EndTable(); + } + }; + +@@ -64,7 +69,7 @@ struct TensorDescWithIdBuilder { + fbb_.AddElement(TensorDescWithId::VT_ID, id, 0); + } + explicit TensorDescWithIdBuilder(flatbuffers::FlatBufferBuilder &_fbb) +- : fbb_(_fbb) { ++ : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } + flatbuffers::Offset Finish() { +@@ -90,12 +95,17 @@ struct PairOfValueIds FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + VT_FIRST = 4, + VT_SECOND = 6 + }; +- int32_t first() const { return GetField(VT_FIRST, 0); } +- int32_t second() const { return GetField(VT_SECOND, 0); } ++ int32_t first() const { ++ return GetField(VT_FIRST, 0); ++ } ++ int32_t second() const { ++ return GetField(VT_SECOND, 0); ++ } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_FIRST) && +- VerifyField(verifier, VT_SECOND) && verifier.EndTable(); ++ VerifyField(verifier, VT_FIRST, 4) && ++ VerifyField(verifier, VT_SECOND, 4) && ++ verifier.EndTable(); + } + }; + +@@ -110,7 +120,7 @@ struct PairOfValueIdsBuilder { + fbb_.AddElement(PairOfValueIds::VT_SECOND, second, 0); + } + explicit PairOfValueIdsBuilder(flatbuffers::FlatBufferBuilder &_fbb) +- : fbb_(_fbb) { ++ : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } + flatbuffers::Offset Finish() { +@@ -121,7 +131,8 @@ struct PairOfValueIdsBuilder { + }; + + inline flatbuffers::Offset CreatePairOfValueIds( +- flatbuffers::FlatBufferBuilder &_fbb, int32_t first = 0, ++ flatbuffers::FlatBufferBuilder &_fbb, ++ int32_t first = 0, + int32_t second = 0) { + PairOfValueIdsBuilder builder_(_fbb); + builder_.add_second(second); +@@ -150,13 +161,15 @@ struct GpuNode FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + return GetPointer(VT_NAME); + } + bool Verify(flatbuffers::Verifier &verifier) const { +- return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_GPU_OP) && ++ return VerifyTableStart(verifier) && ++ VerifyOffset(verifier, VT_GPU_OP) && + verifier.VerifyTable(gpu_op()) && + VerifyOffset(verifier, VT_INPUT_IDS) && + verifier.VerifyVector(input_ids()) && + VerifyOffset(verifier, VT_OUTPUT_IDS) && + verifier.VerifyVector(output_ids()) && +- VerifyOffset(verifier, VT_NAME) && verifier.VerifyString(name()) && ++ VerifyOffset(verifier, VT_NAME) && ++ verifier.VerifyString(name()) && + verifier.EndTable(); + } + }; +@@ -168,18 +181,17 @@ struct GpuNodeBuilder { + void add_gpu_op(flatbuffers::Offset gpu_op) { + fbb_.AddOffset(GpuNode::VT_GPU_OP, gpu_op); + } +- void add_input_ids( +- flatbuffers::Offset> input_ids) { ++ void add_input_ids(flatbuffers::Offset> input_ids) { + fbb_.AddOffset(GpuNode::VT_INPUT_IDS, input_ids); + } +- void add_output_ids( +- flatbuffers::Offset> output_ids) { ++ void add_output_ids(flatbuffers::Offset> output_ids) { + fbb_.AddOffset(GpuNode::VT_OUTPUT_IDS, output_ids); + } + void add_name(flatbuffers::Offset name) { + fbb_.AddOffset(GpuNode::VT_NAME, name); + } +- explicit GpuNodeBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { ++ explicit GpuNodeBuilder(flatbuffers::FlatBufferBuilder &_fbb) ++ : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } + flatbuffers::Offset Finish() { +@@ -212,8 +224,12 @@ inline flatbuffers::Offset CreateGpuNodeDirect( + auto input_ids__ = input_ids ? _fbb.CreateVector(*input_ids) : 0; + auto output_ids__ = output_ids ? _fbb.CreateVector(*output_ids) : 0; + auto name__ = name ? _fbb.CreateString(name) : 0; +- return tflite::gpu::data::CreateGpuNode(_fbb, gpu_op, input_ids__, +- output_ids__, name__); ++ return tflite::gpu::data::CreateGpuNode( ++ _fbb, ++ gpu_op, ++ input_ids__, ++ output_ids__, ++ name__); + } + + struct GpuModel FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +@@ -228,24 +244,14 @@ struct GpuModel FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + VT_OUTPUT_REFS = 16, + VT_VARIABLE_IDS_AND_REFS = 18 + }; +- const flatbuffers::Vector> +- *nodes() const { +- return GetPointer> *>(VT_NODES); +- } +- const flatbuffers::Vector< +- flatbuffers::Offset> +- *tensors() const { +- return GetPointer> *>( +- VT_TENSORS); +- } +- const flatbuffers::Vector< +- flatbuffers::Offset> +- *const_tensors() const { +- return GetPointer> *>( +- VT_CONST_TENSORS); ++ const flatbuffers::Vector> *nodes() const { ++ return GetPointer> *>(VT_NODES); ++ } ++ const flatbuffers::Vector> *tensors() const { ++ return GetPointer> *>(VT_TENSORS); ++ } ++ const flatbuffers::Vector> *const_tensors() const { ++ return GetPointer> *>(VT_CONST_TENSORS); + } + const flatbuffers::Vector *input_ids() const { + return GetPointer *>(VT_INPUT_IDS); +@@ -259,15 +265,12 @@ struct GpuModel FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + const flatbuffers::Vector *output_refs() const { + return GetPointer *>(VT_OUTPUT_REFS); + } +- const flatbuffers::Vector< +- flatbuffers::Offset> +- *variable_ids_and_refs() const { +- return GetPointer> *>( +- VT_VARIABLE_IDS_AND_REFS); ++ const flatbuffers::Vector> *variable_ids_and_refs() const { ++ return GetPointer> *>(VT_VARIABLE_IDS_AND_REFS); + } + bool Verify(flatbuffers::Verifier &verifier) const { +- return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_NODES) && ++ return VerifyTableStart(verifier) && ++ VerifyOffset(verifier, VT_NODES) && + verifier.VerifyVector(nodes()) && + verifier.VerifyVectorOfTables(nodes()) && + VerifyOffset(verifier, VT_TENSORS) && +@@ -295,47 +298,32 @@ struct GpuModelBuilder { + typedef GpuModel Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; +- void add_nodes( +- flatbuffers::Offset< +- flatbuffers::Vector>> +- nodes) { ++ void add_nodes(flatbuffers::Offset>> nodes) { + fbb_.AddOffset(GpuModel::VT_NODES, nodes); + } +- void add_tensors( +- flatbuffers::Offset>> +- tensors) { ++ void add_tensors(flatbuffers::Offset>> tensors) { + fbb_.AddOffset(GpuModel::VT_TENSORS, tensors); + } +- void add_const_tensors( +- flatbuffers::Offset>> +- const_tensors) { ++ void add_const_tensors(flatbuffers::Offset>> const_tensors) { + fbb_.AddOffset(GpuModel::VT_CONST_TENSORS, const_tensors); + } +- void add_input_ids( +- flatbuffers::Offset> input_ids) { ++ void add_input_ids(flatbuffers::Offset> input_ids) { + fbb_.AddOffset(GpuModel::VT_INPUT_IDS, input_ids); + } +- void add_output_ids( +- flatbuffers::Offset> output_ids) { ++ void add_output_ids(flatbuffers::Offset> output_ids) { + fbb_.AddOffset(GpuModel::VT_OUTPUT_IDS, output_ids); + } +- void add_input_refs( +- flatbuffers::Offset> input_refs) { ++ void add_input_refs(flatbuffers::Offset> input_refs) { + fbb_.AddOffset(GpuModel::VT_INPUT_REFS, input_refs); + } +- void add_output_refs( +- flatbuffers::Offset> output_refs) { ++ void add_output_refs(flatbuffers::Offset> output_refs) { + fbb_.AddOffset(GpuModel::VT_OUTPUT_REFS, output_refs); + } +- void add_variable_ids_and_refs( +- flatbuffers::Offset>> +- variable_ids_and_refs) { ++ void add_variable_ids_and_refs(flatbuffers::Offset>> variable_ids_and_refs) { + fbb_.AddOffset(GpuModel::VT_VARIABLE_IDS_AND_REFS, variable_ids_and_refs); + } +- explicit GpuModelBuilder(flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { ++ explicit GpuModelBuilder(flatbuffers::FlatBufferBuilder &_fbb) ++ : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } + flatbuffers::Offset Finish() { +@@ -347,22 +335,14 @@ struct GpuModelBuilder { + + inline flatbuffers::Offset CreateGpuModel( + flatbuffers::FlatBufferBuilder &_fbb, +- flatbuffers::Offset< +- flatbuffers::Vector>> +- nodes = 0, +- flatbuffers::Offset>> +- tensors = 0, +- flatbuffers::Offset>> +- const_tensors = 0, ++ flatbuffers::Offset>> nodes = 0, ++ flatbuffers::Offset>> tensors = 0, ++ flatbuffers::Offset>> const_tensors = 0, + flatbuffers::Offset> input_ids = 0, + flatbuffers::Offset> output_ids = 0, + flatbuffers::Offset> input_refs = 0, + flatbuffers::Offset> output_refs = 0, +- flatbuffers::Offset>> +- variable_ids_and_refs = 0) { ++ flatbuffers::Offset>> variable_ids_and_refs = 0) { + GpuModelBuilder builder_(_fbb); + builder_.add_variable_ids_and_refs(variable_ids_and_refs); + builder_.add_output_refs(output_refs); +@@ -377,48 +357,32 @@ inline flatbuffers::Offset CreateGpuModel( + + inline flatbuffers::Offset CreateGpuModelDirect( + flatbuffers::FlatBufferBuilder &_fbb, +- const std::vector> *nodes = +- nullptr, +- const std::vector> +- *tensors = nullptr, +- const std::vector> +- *const_tensors = nullptr, ++ const std::vector> *nodes = nullptr, ++ const std::vector> *tensors = nullptr, ++ const std::vector> *const_tensors = nullptr, + const std::vector *input_ids = nullptr, + const std::vector *output_ids = nullptr, + const std::vector *input_refs = nullptr, + const std::vector *output_refs = nullptr, +- const std::vector> +- *variable_ids_and_refs = nullptr) { +- auto nodes__ = +- nodes +- ? _fbb.CreateVector>( +- *nodes) +- : 0; +- auto tensors__ = +- tensors ? _fbb.CreateVector< +- flatbuffers::Offset>( +- *tensors) +- : 0; +- auto const_tensors__ = +- const_tensors +- ? _fbb.CreateVector< +- flatbuffers::Offset>( +- *const_tensors) +- : 0; ++ const std::vector> *variable_ids_and_refs = nullptr) { ++ auto nodes__ = nodes ? _fbb.CreateVector>(*nodes) : 0; ++ auto tensors__ = tensors ? _fbb.CreateVector>(*tensors) : 0; ++ auto const_tensors__ = const_tensors ? _fbb.CreateVector>(*const_tensors) : 0; + auto input_ids__ = input_ids ? _fbb.CreateVector(*input_ids) : 0; + auto output_ids__ = output_ids ? _fbb.CreateVector(*output_ids) : 0; + auto input_refs__ = input_refs ? _fbb.CreateVector(*input_refs) : 0; +- auto output_refs__ = +- output_refs ? _fbb.CreateVector(*output_refs) : 0; +- auto variable_ids_and_refs__ = +- variable_ids_and_refs +- ? _fbb.CreateVector< +- flatbuffers::Offset>( +- *variable_ids_and_refs) +- : 0; ++ auto output_refs__ = output_refs ? _fbb.CreateVector(*output_refs) : 0; ++ auto variable_ids_and_refs__ = variable_ids_and_refs ? _fbb.CreateVector>(*variable_ids_and_refs) : 0; + return tflite::gpu::data::CreateGpuModel( +- _fbb, nodes__, tensors__, const_tensors__, input_ids__, output_ids__, +- input_refs__, output_refs__, variable_ids_and_refs__); ++ _fbb, ++ nodes__, ++ tensors__, ++ const_tensors__, ++ input_ids__, ++ output_ids__, ++ input_refs__, ++ output_refs__, ++ variable_ids_and_refs__); + } + + } // namespace data +diff --git a/tensorflow/lite/delegates/gpu/common/task/serialization_base_generated.h b/tensorflow/lite/delegates/gpu/common/task/serialization_base_generated.h +index a8f7b714e80..c2bd14c3c1a 100644 +--- a/tensorflow/lite/delegates/gpu/common/task/serialization_base_generated.h ++++ b/tensorflow/lite/delegates/gpu/common/task/serialization_base_generated.h +@@ -139,17 +139,38 @@ enum class DataType : int8_t { + + inline const DataType (&EnumValuesDataType())[12] { + static const DataType values[] = { +- DataType::UNKNOWN, DataType::FLOAT16, DataType::FLOAT32, +- DataType::FLOAT64, DataType::UINT8, DataType::INT8, +- DataType::UINT16, DataType::INT16, DataType::UINT32, +- DataType::INT32, DataType::UINT64, DataType::INT64}; ++ DataType::UNKNOWN, ++ DataType::FLOAT16, ++ DataType::FLOAT32, ++ DataType::FLOAT64, ++ DataType::UINT8, ++ DataType::INT8, ++ DataType::UINT16, ++ DataType::INT16, ++ DataType::UINT32, ++ DataType::INT32, ++ DataType::UINT64, ++ DataType::INT64 ++ }; + return values; + } + + inline const char * const *EnumNamesDataType() { +- static const char *const names[13] = { +- "UNKNOWN", "FLOAT16", "FLOAT32", "FLOAT64", "UINT8", "INT8", "UINT16", +- "INT16", "UINT32", "INT32", "UINT64", "INT64", nullptr}; ++ static const char * const names[13] = { ++ "UNKNOWN", ++ "FLOAT16", ++ "FLOAT32", ++ "FLOAT64", ++ "UINT8", ++ "INT8", ++ "UINT16", ++ "INT16", ++ "UINT32", ++ "INT32", ++ "UINT64", ++ "INT64", ++ nullptr ++ }; + return names; + } + +@@ -315,21 +336,26 @@ enum class CalculationsPrecision : int8_t { + }; + + inline const CalculationsPrecision (&EnumValuesCalculationsPrecision())[3] { +- static const CalculationsPrecision values[] = {CalculationsPrecision::F32, +- CalculationsPrecision::F32_F16, +- CalculationsPrecision::F16}; ++ static const CalculationsPrecision values[] = { ++ CalculationsPrecision::F32, ++ CalculationsPrecision::F32_F16, ++ CalculationsPrecision::F16 ++ }; + return values; + } + +-inline const char *const *EnumNamesCalculationsPrecision() { +- static const char *const names[4] = {"F32", "F32_F16", "F16", nullptr}; ++inline const char * const *EnumNamesCalculationsPrecision() { ++ static const char * const names[4] = { ++ "F32", ++ "F32_F16", ++ "F16", ++ nullptr ++ }; + return names; + } + + inline const char *EnumNameCalculationsPrecision(CalculationsPrecision e) { +- if (flatbuffers::IsOutRange(e, CalculationsPrecision::F32, +- CalculationsPrecision::F16)) +- return ""; ++ if (flatbuffers::IsOutRange(e, CalculationsPrecision::F32, CalculationsPrecision::F16)) return ""; + const size_t index = static_cast(e); + return EnumNamesCalculationsPrecision()[index]; + } +@@ -346,26 +372,29 @@ enum class TensorToGrid : int8_t { + + inline const TensorToGrid (&EnumValuesTensorToGrid())[5] { + static const TensorToGrid values[] = { +- TensorToGrid::CUSTOM, TensorToGrid::WB_TO_X_HD_TO_Y_S_TO_Z, +- TensorToGrid::WB_TO_X_HD_TO_Y_Z_IS_1, TensorToGrid::WB_TO_X_H_TO_Y_D_TO_Z, +- TensorToGrid::B_TO_X_Y_IS_1_Z_IS_1}; ++ TensorToGrid::CUSTOM, ++ TensorToGrid::WB_TO_X_HD_TO_Y_S_TO_Z, ++ TensorToGrid::WB_TO_X_HD_TO_Y_Z_IS_1, ++ TensorToGrid::WB_TO_X_H_TO_Y_D_TO_Z, ++ TensorToGrid::B_TO_X_Y_IS_1_Z_IS_1 ++ }; + return values; + } + +-inline const char *const *EnumNamesTensorToGrid() { +- static const char *const names[6] = {"CUSTOM", +- "WB_TO_X_HD_TO_Y_S_TO_Z", +- "WB_TO_X_HD_TO_Y_Z_IS_1", +- "WB_TO_X_H_TO_Y_D_TO_Z", +- "B_TO_X_Y_IS_1_Z_IS_1", +- nullptr}; ++inline const char * const *EnumNamesTensorToGrid() { ++ static const char * const names[6] = { ++ "CUSTOM", ++ "WB_TO_X_HD_TO_Y_S_TO_Z", ++ "WB_TO_X_HD_TO_Y_Z_IS_1", ++ "WB_TO_X_H_TO_Y_D_TO_Z", ++ "B_TO_X_Y_IS_1_Z_IS_1", ++ nullptr ++ }; + return names; + } + + inline const char *EnumNameTensorToGrid(TensorToGrid e) { +- if (flatbuffers::IsOutRange(e, TensorToGrid::CUSTOM, +- TensorToGrid::B_TO_X_Y_IS_1_Z_IS_1)) +- return ""; ++ if (flatbuffers::IsOutRange(e, TensorToGrid::CUSTOM, TensorToGrid::B_TO_X_Y_IS_1_Z_IS_1)) return ""; + const size_t index = static_cast(e); + return EnumNamesTensorToGrid()[index]; + } +@@ -383,30 +412,31 @@ enum class CompilerOptions : int8_t { + + inline const CompilerOptions (&EnumValuesCompilerOptions())[6] { + static const CompilerOptions values[] = { +- CompilerOptions::ADRENO_FULL_SIMD_LINE, +- CompilerOptions::ADRENO_MORE_WAVES, +- CompilerOptions::CL_FAST_RELAXED_MATH, +- CompilerOptions::CL_OPT_DISABLE, +- CompilerOptions::CL_2_0, +- CompilerOptions::CL_3_0}; ++ CompilerOptions::ADRENO_FULL_SIMD_LINE, ++ CompilerOptions::ADRENO_MORE_WAVES, ++ CompilerOptions::CL_FAST_RELAXED_MATH, ++ CompilerOptions::CL_OPT_DISABLE, ++ CompilerOptions::CL_2_0, ++ CompilerOptions::CL_3_0 ++ }; + return values; + } + +-inline const char *const *EnumNamesCompilerOptions() { +- static const char *const names[7] = {"ADRENO_FULL_SIMD_LINE", +- "ADRENO_MORE_WAVES", +- "CL_FAST_RELAXED_MATH", +- "CL_OPT_DISABLE", +- "CL_2_0", +- "CL_3_0", +- nullptr}; ++inline const char * const *EnumNamesCompilerOptions() { ++ static const char * const names[7] = { ++ "ADRENO_FULL_SIMD_LINE", ++ "ADRENO_MORE_WAVES", ++ "CL_FAST_RELAXED_MATH", ++ "CL_OPT_DISABLE", ++ "CL_2_0", ++ "CL_3_0", ++ nullptr ++ }; + return names; + } + + inline const char *EnumNameCompilerOptions(CompilerOptions e) { +- if (flatbuffers::IsOutRange(e, CompilerOptions::ADRENO_FULL_SIMD_LINE, +- CompilerOptions::CL_3_0)) +- return ""; ++ if (flatbuffers::IsOutRange(e, CompilerOptions::ADRENO_FULL_SIMD_LINE, CompilerOptions::CL_3_0)) return ""; + const size_t index = static_cast(e); + return EnumNamesCompilerOptions()[index]; + } +@@ -433,10 +463,10 @@ struct Int4 FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_X) && +- VerifyField(verifier, VT_Y) && +- VerifyField(verifier, VT_Z) && +- VerifyField(verifier, VT_W) && ++ VerifyField(verifier, VT_X, 4) && ++ VerifyField(verifier, VT_Y, 4) && ++ VerifyField(verifier, VT_Z, 4) && ++ VerifyField(verifier, VT_W, 4) && + verifier.EndTable(); + } + }; +@@ -500,9 +530,9 @@ struct Int3 FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_X) && +- VerifyField(verifier, VT_Y) && +- VerifyField(verifier, VT_Z) && ++ VerifyField(verifier, VT_X, 4) && ++ VerifyField(verifier, VT_Y, 4) && ++ VerifyField(verifier, VT_Z, 4) && + verifier.EndTable(); + } + }; +@@ -557,8 +587,8 @@ struct Int2 FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_X) && +- VerifyField(verifier, VT_Y) && ++ VerifyField(verifier, VT_X, 4) && ++ VerifyField(verifier, VT_Y, 4) && + verifier.EndTable(); + } + }; +@@ -676,7 +706,7 @@ struct GPUObjectDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table + VerifyOffset(verifier, VT_STATE_VARS) && + verifier.VerifyVector(state_vars()) && + verifier.VerifyVectorOfTables(state_vars()) && +- VerifyField(verifier, VT_ACCESS_TYPE) && ++ VerifyField(verifier, VT_ACCESS_TYPE, 1) && + verifier.EndTable(); + } + }; +@@ -743,8 +773,8 @@ struct IntValue FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + return VerifyTableStart(verifier) && + VerifyOffset(verifier, VT_NAME) && + verifier.VerifyString(name()) && +- VerifyField(verifier, VT_VALUE) && +- VerifyField(verifier, VT_ACTIVE) && ++ VerifyField(verifier, VT_VALUE, 4) && ++ VerifyField(verifier, VT_ACTIVE, 1) && + verifier.EndTable(); + } + }; +@@ -818,8 +848,8 @@ struct FloatValue FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + return VerifyTableStart(verifier) && + VerifyOffset(verifier, VT_NAME) && + verifier.VerifyString(name()) && +- VerifyField(verifier, VT_VALUE) && +- VerifyField(verifier, VT_ACTIVE) && ++ VerifyField(verifier, VT_VALUE, 4) && ++ VerifyField(verifier, VT_ACTIVE, 1) && + verifier.EndTable(); + } + }; +@@ -893,8 +923,8 @@ struct HalfValue FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + return VerifyTableStart(verifier) && + VerifyOffset(verifier, VT_NAME) && + verifier.VerifyString(name()) && +- VerifyField(verifier, VT_VALUE) && +- VerifyField(verifier, VT_ACTIVE) && ++ VerifyField(verifier, VT_VALUE, 4) && ++ VerifyField(verifier, VT_ACTIVE, 1) && + verifier.EndTable(); + } + }; +@@ -984,13 +1014,13 @@ struct BufferDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + return VerifyTableStart(verifier) && + VerifyOffset(verifier, VT_BASE_OBJ) && + verifier.VerifyTable(base_obj()) && +- VerifyField(verifier, VT_ELEMENT_TYPE) && +- VerifyField(verifier, VT_ELEMENT_SIZE) && +- VerifyField(verifier, VT_MEMORY_TYPE) && ++ VerifyField(verifier, VT_ELEMENT_TYPE, 1) && ++ VerifyField(verifier, VT_ELEMENT_SIZE, 4) && ++ VerifyField(verifier, VT_MEMORY_TYPE, 1) && + VerifyOffset(verifier, VT_ATTRIBUTES) && + verifier.VerifyVector(attributes()) && + verifier.VerifyVectorOfStrings(attributes()) && +- VerifyField(verifier, VT_SIZE) && ++ VerifyField(verifier, VT_SIZE, 4) && + VerifyOffset(verifier, VT_DATA) && + verifier.VerifyVector(data()) && + verifier.EndTable(); +@@ -1107,9 +1137,9 @@ struct Texture2DDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table + return VerifyTableStart(verifier) && + VerifyOffset(verifier, VT_BASE_OBJ) && + verifier.VerifyTable(base_obj()) && +- VerifyField(verifier, VT_ELEMENT_TYPE) && +- VerifyField(verifier, VT_NORMALIZED) && +- VerifyField(verifier, VT_NORMALIZED_TYPE) && ++ VerifyField(verifier, VT_ELEMENT_TYPE, 1) && ++ VerifyField(verifier, VT_NORMALIZED, 1) && ++ VerifyField(verifier, VT_NORMALIZED_TYPE, 1) && + VerifyOffset(verifier, VT_SIZE) && + verifier.VerifyTable(size()) && + VerifyOffset(verifier, VT_DATA) && +@@ -1220,10 +1250,10 @@ struct TensorLinearDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Tab + return VerifyTableStart(verifier) && + VerifyOffset(verifier, VT_BASE_OBJ) && + verifier.VerifyTable(base_obj()) && +- VerifyField(verifier, VT_STORAGE_TYPE) && +- VerifyField(verifier, VT_ELEMENT_TYPE) && +- VerifyField(verifier, VT_MEMORY_TYPE) && +- VerifyField(verifier, VT_SIZE) && ++ VerifyField(verifier, VT_STORAGE_TYPE, 1) && ++ VerifyField(verifier, VT_ELEMENT_TYPE, 1) && ++ VerifyField(verifier, VT_MEMORY_TYPE, 1) && ++ VerifyField(verifier, VT_SIZE, 4) && + VerifyOffset(verifier, VT_DATA) && + verifier.VerifyVector(data()) && + verifier.EndTable(); +@@ -1326,11 +1356,11 @@ struct BHWDC FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_B) && +- VerifyField(verifier, VT_H) && +- VerifyField(verifier, VT_W) && +- VerifyField(verifier, VT_D) && +- VerifyField(verifier, VT_C) && ++ VerifyField(verifier, VT_B, 4) && ++ VerifyField(verifier, VT_H, 4) && ++ VerifyField(verifier, VT_W, 4) && ++ VerifyField(verifier, VT_D, 4) && ++ VerifyField(verifier, VT_C, 4) && + verifier.EndTable(); + } + }; +@@ -1418,17 +1448,18 @@ struct TensorDescriptor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + return GetField(VT_USE_BUFFER_FOR_WRITE_ONLY_IMAGE_BUFFER, 0) != 0; + } + bool Verify(flatbuffers::Verifier &verifier) const { +- return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_BASE_OBJ) && ++ return VerifyTableStart(verifier) && ++ VerifyOffset(verifier, VT_BASE_OBJ) && + verifier.VerifyTable(base_obj()) && +- VerifyField(verifier, VT_DATA_TYPE) && +- VerifyField(verifier, VT_STORAGE_TYPE) && +- VerifyField(verifier, VT_LAYOUT) && +- VerifyOffset(verifier, VT_SHAPE) && verifier.VerifyTable(shape()) && +- VerifyOffset(verifier, VT_DATA) && verifier.VerifyVector(data()) && +- VerifyField(verifier, +- VT_USE_BUFFER_FOR_WRITE_ONLY_2D_TEXTURE) && +- VerifyField(verifier, +- VT_USE_BUFFER_FOR_WRITE_ONLY_IMAGE_BUFFER) && ++ VerifyField(verifier, VT_DATA_TYPE, 1) && ++ VerifyField(verifier, VT_STORAGE_TYPE, 1) && ++ VerifyField(verifier, VT_LAYOUT, 1) && ++ VerifyOffset(verifier, VT_SHAPE) && ++ verifier.VerifyTable(shape()) && ++ VerifyOffset(verifier, VT_DATA) && ++ verifier.VerifyVector(data()) && ++ VerifyField(verifier, VT_USE_BUFFER_FOR_WRITE_ONLY_2D_TEXTURE, 1) && ++ VerifyField(verifier, VT_USE_BUFFER_FOR_WRITE_ONLY_IMAGE_BUFFER, 1) && + verifier.EndTable(); + } + }; +@@ -1455,17 +1486,11 @@ struct TensorDescriptorBuilder { + void add_data(flatbuffers::Offset> data) { + fbb_.AddOffset(TensorDescriptor::VT_DATA, data); + } +- void add_use_buffer_for_write_only_2d_texture( +- bool use_buffer_for_write_only_2d_texture) { +- fbb_.AddElement( +- TensorDescriptor::VT_USE_BUFFER_FOR_WRITE_ONLY_2D_TEXTURE, +- static_cast(use_buffer_for_write_only_2d_texture), 0); ++ void add_use_buffer_for_write_only_2d_texture(bool use_buffer_for_write_only_2d_texture) { ++ fbb_.AddElement(TensorDescriptor::VT_USE_BUFFER_FOR_WRITE_ONLY_2D_TEXTURE, static_cast(use_buffer_for_write_only_2d_texture), 0); + } +- void add_use_buffer_for_write_only_image_buffer( +- bool use_buffer_for_write_only_image_buffer) { +- fbb_.AddElement( +- TensorDescriptor::VT_USE_BUFFER_FOR_WRITE_ONLY_IMAGE_BUFFER, +- static_cast(use_buffer_for_write_only_image_buffer), 0); ++ void add_use_buffer_for_write_only_image_buffer(bool use_buffer_for_write_only_image_buffer) { ++ fbb_.AddElement(TensorDescriptor::VT_USE_BUFFER_FOR_WRITE_ONLY_IMAGE_BUFFER, static_cast(use_buffer_for_write_only_image_buffer), 0); + } + explicit TensorDescriptorBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { +@@ -1481,10 +1506,8 @@ struct TensorDescriptorBuilder { + inline flatbuffers::Offset CreateTensorDescriptor( + flatbuffers::FlatBufferBuilder &_fbb, + flatbuffers::Offset base_obj = 0, +- tflite::gpu::data::DataType data_type = +- tflite::gpu::data::DataType::UNKNOWN, +- tflite::gpu::data::TensorStorageType storage_type = +- tflite::gpu::data::TensorStorageType::UNKNOWN, ++ tflite::gpu::data::DataType data_type = tflite::gpu::data::DataType::UNKNOWN, ++ tflite::gpu::data::TensorStorageType storage_type = tflite::gpu::data::TensorStorageType::UNKNOWN, + tflite::gpu::data::Layout layout = tflite::gpu::data::Layout::UNKNOWN, + flatbuffers::Offset shape = 0, + flatbuffers::Offset> data = 0, +@@ -1494,10 +1517,8 @@ inline flatbuffers::Offset CreateTensorDescriptor( + builder_.add_data(data); + builder_.add_shape(shape); + builder_.add_base_obj(base_obj); +- builder_.add_use_buffer_for_write_only_image_buffer( +- use_buffer_for_write_only_image_buffer); +- builder_.add_use_buffer_for_write_only_2d_texture( +- use_buffer_for_write_only_2d_texture); ++ builder_.add_use_buffer_for_write_only_image_buffer(use_buffer_for_write_only_image_buffer); ++ builder_.add_use_buffer_for_write_only_2d_texture(use_buffer_for_write_only_2d_texture); + builder_.add_layout(layout); + builder_.add_storage_type(storage_type); + builder_.add_data_type(data_type); +@@ -1507,10 +1528,8 @@ inline flatbuffers::Offset CreateTensorDescriptor( + inline flatbuffers::Offset CreateTensorDescriptorDirect( + flatbuffers::FlatBufferBuilder &_fbb, + flatbuffers::Offset base_obj = 0, +- tflite::gpu::data::DataType data_type = +- tflite::gpu::data::DataType::UNKNOWN, +- tflite::gpu::data::TensorStorageType storage_type = +- tflite::gpu::data::TensorStorageType::UNKNOWN, ++ tflite::gpu::data::DataType data_type = tflite::gpu::data::DataType::UNKNOWN, ++ tflite::gpu::data::TensorStorageType storage_type = tflite::gpu::data::TensorStorageType::UNKNOWN, + tflite::gpu::data::Layout layout = tflite::gpu::data::Layout::UNKNOWN, + flatbuffers::Offset shape = 0, + const std::vector *data = nullptr, +@@ -1518,7 +1537,13 @@ inline flatbuffers::Offset CreateTensorDescriptorDirect( + bool use_buffer_for_write_only_image_buffer = false) { + auto data__ = data ? _fbb.CreateVector(*data) : 0; + return tflite::gpu::data::CreateTensorDescriptor( +- _fbb, base_obj, data_type, storage_type, layout, shape, data__, ++ _fbb, ++ base_obj, ++ data_type, ++ storage_type, ++ layout, ++ shape, ++ data__, + use_buffer_for_write_only_2d_texture, + use_buffer_for_write_only_image_buffer); + } +@@ -1989,32 +2014,24 @@ struct OperationDef FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + VT_DST_TENSORS = 8 + }; + tflite::gpu::data::CalculationsPrecision precision() const { +- return static_cast( +- GetField(VT_PRECISION, 0)); +- } +- const flatbuffers::Vector< +- flatbuffers::Offset> +- *src_tensors() const { +- return GetPointer> *>( +- VT_SRC_TENSORS); +- } +- const flatbuffers::Vector< +- flatbuffers::Offset> +- *dst_tensors() const { +- return GetPointer> *>( +- VT_DST_TENSORS); ++ return static_cast(GetField(VT_PRECISION, 0)); ++ } ++ const flatbuffers::Vector> *src_tensors() const { ++ return GetPointer> *>(VT_SRC_TENSORS); ++ } ++ const flatbuffers::Vector> *dst_tensors() const { ++ return GetPointer> *>(VT_DST_TENSORS); + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_PRECISION) && ++ VerifyField(verifier, VT_PRECISION, 1) && + VerifyOffset(verifier, VT_SRC_TENSORS) && + verifier.VerifyVector(src_tensors()) && + verifier.VerifyVectorOfTables(src_tensors()) && + VerifyOffset(verifier, VT_DST_TENSORS) && + verifier.VerifyVector(dst_tensors()) && +- verifier.VerifyVectorOfTables(dst_tensors()) && verifier.EndTable(); ++ verifier.VerifyVectorOfTables(dst_tensors()) && ++ verifier.EndTable(); + } + }; + +@@ -2023,23 +2040,16 @@ struct OperationDefBuilder { + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_precision(tflite::gpu::data::CalculationsPrecision precision) { +- fbb_.AddElement(OperationDef::VT_PRECISION, +- static_cast(precision), 0); ++ fbb_.AddElement(OperationDef::VT_PRECISION, static_cast(precision), 0); + } +- void add_src_tensors( +- flatbuffers::Offset>> +- src_tensors) { ++ void add_src_tensors(flatbuffers::Offset>> src_tensors) { + fbb_.AddOffset(OperationDef::VT_SRC_TENSORS, src_tensors); + } +- void add_dst_tensors( +- flatbuffers::Offset>> +- dst_tensors) { ++ void add_dst_tensors(flatbuffers::Offset>> dst_tensors) { + fbb_.AddOffset(OperationDef::VT_DST_TENSORS, dst_tensors); + } + explicit OperationDefBuilder(flatbuffers::FlatBufferBuilder &_fbb) +- : fbb_(_fbb) { ++ : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } + flatbuffers::Offset Finish() { +@@ -2051,14 +2061,9 @@ struct OperationDefBuilder { + + inline flatbuffers::Offset CreateOperationDef( + flatbuffers::FlatBufferBuilder &_fbb, +- tflite::gpu::data::CalculationsPrecision precision = +- tflite::gpu::data::CalculationsPrecision::F32, +- flatbuffers::Offset>> +- src_tensors = 0, +- flatbuffers::Offset>> +- dst_tensors = 0) { ++ tflite::gpu::data::CalculationsPrecision precision = tflite::gpu::data::CalculationsPrecision::F32, ++ flatbuffers::Offset>> src_tensors = 0, ++ flatbuffers::Offset>> dst_tensors = 0) { + OperationDefBuilder builder_(_fbb); + builder_.add_dst_tensors(dst_tensors); + builder_.add_src_tensors(src_tensors); +@@ -2068,26 +2073,16 @@ inline flatbuffers::Offset CreateOperationDef( + + inline flatbuffers::Offset CreateOperationDefDirect( + flatbuffers::FlatBufferBuilder &_fbb, +- tflite::gpu::data::CalculationsPrecision precision = +- tflite::gpu::data::CalculationsPrecision::F32, +- const std::vector> +- *src_tensors = nullptr, +- const std::vector> +- *dst_tensors = nullptr) { +- auto src_tensors__ = +- src_tensors +- ? _fbb.CreateVector< +- flatbuffers::Offset>( +- *src_tensors) +- : 0; +- auto dst_tensors__ = +- dst_tensors +- ? _fbb.CreateVector< +- flatbuffers::Offset>( +- *dst_tensors) +- : 0; +- return tflite::gpu::data::CreateOperationDef(_fbb, precision, src_tensors__, +- dst_tensors__); ++ tflite::gpu::data::CalculationsPrecision precision = tflite::gpu::data::CalculationsPrecision::F32, ++ const std::vector> *src_tensors = nullptr, ++ const std::vector> *dst_tensors = nullptr) { ++ auto src_tensors__ = src_tensors ? _fbb.CreateVector>(*src_tensors) : 0; ++ auto dst_tensors__ = dst_tensors ? _fbb.CreateVector>(*dst_tensors) : 0; ++ return tflite::gpu::data::CreateOperationDef( ++ _fbb, ++ precision, ++ src_tensors__, ++ dst_tensors__); + } + + struct CompilerOption FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +@@ -2096,12 +2091,12 @@ struct CompilerOption FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + VT_OPTION = 4 + }; + tflite::gpu::data::CompilerOptions option() const { +- return static_cast( +- GetField(VT_OPTION, 0)); ++ return static_cast(GetField(VT_OPTION, 0)); + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_OPTION) && verifier.EndTable(); ++ VerifyField(verifier, VT_OPTION, 1) && ++ verifier.EndTable(); + } + }; + +@@ -2110,11 +2105,10 @@ struct CompilerOptionBuilder { + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_option(tflite::gpu::data::CompilerOptions option) { +- fbb_.AddElement(CompilerOption::VT_OPTION, +- static_cast(option), 0); ++ fbb_.AddElement(CompilerOption::VT_OPTION, static_cast(option), 0); + } + explicit CompilerOptionBuilder(flatbuffers::FlatBufferBuilder &_fbb) +- : fbb_(_fbb) { ++ : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } + flatbuffers::Offset Finish() { +@@ -2126,8 +2120,7 @@ struct CompilerOptionBuilder { + + inline flatbuffers::Offset CreateCompilerOption( + flatbuffers::FlatBufferBuilder &_fbb, +- tflite::gpu::data::CompilerOptions option = +- tflite::gpu::data::CompilerOptions::ADRENO_FULL_SIMD_LINE) { ++ tflite::gpu::data::CompilerOptions option = tflite::gpu::data::CompilerOptions::ADRENO_FULL_SIMD_LINE) { + CompilerOptionBuilder builder_(_fbb); + builder_.add_option(option); + return builder_.Finish(); +@@ -2164,23 +2157,24 @@ struct GPUOperation FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + const tflite::gpu::data::Int3 *work_group_size() const { + return GetPointer(VT_WORK_GROUP_SIZE); + } +- const flatbuffers::Vector< +- flatbuffers::Offset> +- *compiler_options() const { +- return GetPointer> *>( +- VT_COMPILER_OPTIONS); ++ const flatbuffers::Vector> *compiler_options() const { ++ return GetPointer> *>(VT_COMPILER_OPTIONS); + } + tflite::gpu::data::TensorToGrid tensor_to_grid() const { +- return static_cast( +- GetField(VT_TENSOR_TO_GRID, 0)); ++ return static_cast(GetField(VT_TENSOR_TO_GRID, 0)); ++ } ++ bool elementwise() const { ++ return GetField(VT_ELEMENTWISE, 0) != 0; ++ } ++ bool linkable() const { ++ return GetField(VT_LINKABLE, 0) != 0; + } +- bool elementwise() const { return GetField(VT_ELEMENTWISE, 0) != 0; } +- bool linkable() const { return GetField(VT_LINKABLE, 0) != 0; } + bool check_src_channels_size() const { + return GetField(VT_CHECK_SRC_CHANNELS_SIZE, 0) != 0; + } +- uint64_t flops() const { return GetField(VT_FLOPS, 0); } ++ uint64_t flops() const { ++ return GetField(VT_FLOPS, 0); ++ } + const tflite::gpu::data::OperationDef *definition() const { + return GetPointer(VT_DEFINITION); + } +@@ -2188,23 +2182,16 @@ struct GPUOperation FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + return GetField(VT_GRID_DIMENSION, 0); + } + const tflite::gpu::data::Int3 *work_group_launch_order() const { +- return GetPointer( +- VT_WORK_GROUP_LAUNCH_ORDER); ++ return GetPointer(VT_WORK_GROUP_LAUNCH_ORDER); + } + const tflite::gpu::data::Int3 *grid_size() const { + return GetPointer(VT_GRID_SIZE); + } +- const flatbuffers::Vector> +- *src_tensors_names() const { +- return GetPointer< +- const flatbuffers::Vector> *>( +- VT_SRC_TENSORS_NAMES); ++ const flatbuffers::Vector> *src_tensors_names() const { ++ return GetPointer> *>(VT_SRC_TENSORS_NAMES); + } +- const flatbuffers::Vector> +- *dst_tensors_names() const { +- return GetPointer< +- const flatbuffers::Vector> *>( +- VT_DST_TENSORS_NAMES); ++ const flatbuffers::Vector> *dst_tensors_names() const { ++ return GetPointer> *>(VT_DST_TENSORS_NAMES); + } + const tflite::gpu::data::Int3 *work_groups_count() const { + return GetPointer(VT_WORK_GROUPS_COUNT); +@@ -2216,22 +2203,24 @@ struct GPUOperation FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + return GetPointer(VT_ELEMENTWISE_CODE); + } + bool Verify(flatbuffers::Verifier &verifier) const { +- return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_ARGUMENTS) && ++ return VerifyTableStart(verifier) && ++ VerifyOffset(verifier, VT_ARGUMENTS) && + verifier.VerifyTable(arguments()) && +- VerifyOffset(verifier, VT_CODE) && verifier.VerifyString(code()) && ++ VerifyOffset(verifier, VT_CODE) && ++ verifier.VerifyString(code()) && + VerifyOffset(verifier, VT_WORK_GROUP_SIZE) && + verifier.VerifyTable(work_group_size()) && + VerifyOffset(verifier, VT_COMPILER_OPTIONS) && + verifier.VerifyVector(compiler_options()) && + verifier.VerifyVectorOfTables(compiler_options()) && +- VerifyField(verifier, VT_TENSOR_TO_GRID) && +- VerifyField(verifier, VT_ELEMENTWISE) && +- VerifyField(verifier, VT_LINKABLE) && +- VerifyField(verifier, VT_CHECK_SRC_CHANNELS_SIZE) && +- VerifyField(verifier, VT_FLOPS) && ++ VerifyField(verifier, VT_TENSOR_TO_GRID, 1) && ++ VerifyField(verifier, VT_ELEMENTWISE, 1) && ++ VerifyField(verifier, VT_LINKABLE, 1) && ++ VerifyField(verifier, VT_CHECK_SRC_CHANNELS_SIZE, 1) && ++ VerifyField(verifier, VT_FLOPS, 8) && + VerifyOffset(verifier, VT_DEFINITION) && + verifier.VerifyTable(definition()) && +- VerifyField(verifier, VT_GRID_DIMENSION) && ++ VerifyField(verifier, VT_GRID_DIMENSION, 4) && + VerifyOffset(verifier, VT_WORK_GROUP_LAUNCH_ORDER) && + verifier.VerifyTable(work_group_launch_order()) && + VerifyOffset(verifier, VT_GRID_SIZE) && +@@ -2244,9 +2233,10 @@ struct GPUOperation FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + verifier.VerifyVectorOfStrings(dst_tensors_names()) && + VerifyOffset(verifier, VT_WORK_GROUPS_COUNT) && + verifier.VerifyTable(work_groups_count()) && +- VerifyField(verifier, VT_LINKABLE_COUNT) && ++ VerifyField(verifier, VT_LINKABLE_COUNT, 4) && + VerifyOffset(verifier, VT_ELEMENTWISE_CODE) && +- verifier.VerifyString(elementwise_code()) && verifier.EndTable(); ++ verifier.VerifyString(elementwise_code()) && ++ verifier.EndTable(); + } + }; + +@@ -2254,84 +2244,62 @@ struct GPUOperationBuilder { + typedef GPUOperation Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; +- void add_arguments( +- flatbuffers::Offset arguments) { ++ void add_arguments(flatbuffers::Offset arguments) { + fbb_.AddOffset(GPUOperation::VT_ARGUMENTS, arguments); + } + void add_code(flatbuffers::Offset code) { + fbb_.AddOffset(GPUOperation::VT_CODE, code); + } +- void add_work_group_size( +- flatbuffers::Offset work_group_size) { ++ void add_work_group_size(flatbuffers::Offset work_group_size) { + fbb_.AddOffset(GPUOperation::VT_WORK_GROUP_SIZE, work_group_size); + } +- void add_compiler_options( +- flatbuffers::Offset>> +- compiler_options) { ++ void add_compiler_options(flatbuffers::Offset>> compiler_options) { + fbb_.AddOffset(GPUOperation::VT_COMPILER_OPTIONS, compiler_options); + } + void add_tensor_to_grid(tflite::gpu::data::TensorToGrid tensor_to_grid) { +- fbb_.AddElement(GPUOperation::VT_TENSOR_TO_GRID, +- static_cast(tensor_to_grid), 0); ++ fbb_.AddElement(GPUOperation::VT_TENSOR_TO_GRID, static_cast(tensor_to_grid), 0); + } + void add_elementwise(bool elementwise) { +- fbb_.AddElement(GPUOperation::VT_ELEMENTWISE, +- static_cast(elementwise), 0); ++ fbb_.AddElement(GPUOperation::VT_ELEMENTWISE, static_cast(elementwise), 0); + } + void add_linkable(bool linkable) { +- fbb_.AddElement(GPUOperation::VT_LINKABLE, +- static_cast(linkable), 0); ++ fbb_.AddElement(GPUOperation::VT_LINKABLE, static_cast(linkable), 0); + } + void add_check_src_channels_size(bool check_src_channels_size) { +- fbb_.AddElement(GPUOperation::VT_CHECK_SRC_CHANNELS_SIZE, +- static_cast(check_src_channels_size), 0); ++ fbb_.AddElement(GPUOperation::VT_CHECK_SRC_CHANNELS_SIZE, static_cast(check_src_channels_size), 0); + } + void add_flops(uint64_t flops) { + fbb_.AddElement(GPUOperation::VT_FLOPS, flops, 0); + } +- void add_definition( +- flatbuffers::Offset definition) { ++ void add_definition(flatbuffers::Offset definition) { + fbb_.AddOffset(GPUOperation::VT_DEFINITION, definition); + } + void add_grid_dimension(int32_t grid_dimension) { +- fbb_.AddElement(GPUOperation::VT_GRID_DIMENSION, grid_dimension, +- 0); ++ fbb_.AddElement(GPUOperation::VT_GRID_DIMENSION, grid_dimension, 0); + } +- void add_work_group_launch_order( +- flatbuffers::Offset work_group_launch_order) { +- fbb_.AddOffset(GPUOperation::VT_WORK_GROUP_LAUNCH_ORDER, +- work_group_launch_order); ++ void add_work_group_launch_order(flatbuffers::Offset work_group_launch_order) { ++ fbb_.AddOffset(GPUOperation::VT_WORK_GROUP_LAUNCH_ORDER, work_group_launch_order); + } + void add_grid_size(flatbuffers::Offset grid_size) { + fbb_.AddOffset(GPUOperation::VT_GRID_SIZE, grid_size); + } +- void add_src_tensors_names( +- flatbuffers::Offset< +- flatbuffers::Vector>> +- src_tensors_names) { ++ void add_src_tensors_names(flatbuffers::Offset>> src_tensors_names) { + fbb_.AddOffset(GPUOperation::VT_SRC_TENSORS_NAMES, src_tensors_names); + } +- void add_dst_tensors_names( +- flatbuffers::Offset< +- flatbuffers::Vector>> +- dst_tensors_names) { ++ void add_dst_tensors_names(flatbuffers::Offset>> dst_tensors_names) { + fbb_.AddOffset(GPUOperation::VT_DST_TENSORS_NAMES, dst_tensors_names); + } +- void add_work_groups_count( +- flatbuffers::Offset work_groups_count) { ++ void add_work_groups_count(flatbuffers::Offset work_groups_count) { + fbb_.AddOffset(GPUOperation::VT_WORK_GROUPS_COUNT, work_groups_count); + } + void add_linkable_count(int32_t linkable_count) { +- fbb_.AddElement(GPUOperation::VT_LINKABLE_COUNT, linkable_count, +- 0); ++ fbb_.AddElement(GPUOperation::VT_LINKABLE_COUNT, linkable_count, 0); + } +- void add_elementwise_code( +- flatbuffers::Offset elementwise_code) { ++ void add_elementwise_code(flatbuffers::Offset elementwise_code) { + fbb_.AddOffset(GPUOperation::VT_ELEMENTWISE_CODE, elementwise_code); + } + explicit GPUOperationBuilder(flatbuffers::FlatBufferBuilder &_fbb) +- : fbb_(_fbb) { ++ : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } + flatbuffers::Offset Finish() { +@@ -2346,23 +2314,18 @@ inline flatbuffers::Offset CreateGPUOperation( + flatbuffers::Offset arguments = 0, + flatbuffers::Offset code = 0, + flatbuffers::Offset work_group_size = 0, +- flatbuffers::Offset>> +- compiler_options = 0, +- tflite::gpu::data::TensorToGrid tensor_to_grid = +- tflite::gpu::data::TensorToGrid::CUSTOM, +- bool elementwise = false, bool linkable = false, +- bool check_src_channels_size = false, uint64_t flops = 0, ++ flatbuffers::Offset>> compiler_options = 0, ++ tflite::gpu::data::TensorToGrid tensor_to_grid = tflite::gpu::data::TensorToGrid::CUSTOM, ++ bool elementwise = false, ++ bool linkable = false, ++ bool check_src_channels_size = false, ++ uint64_t flops = 0, + flatbuffers::Offset definition = 0, + int32_t grid_dimension = 0, + flatbuffers::Offset work_group_launch_order = 0, + flatbuffers::Offset grid_size = 0, +- flatbuffers::Offset< +- flatbuffers::Vector>> +- src_tensors_names = 0, +- flatbuffers::Offset< +- flatbuffers::Vector>> +- dst_tensors_names = 0, ++ flatbuffers::Offset>> src_tensors_names = 0, ++ flatbuffers::Offset>> dst_tensors_names = 0, + flatbuffers::Offset work_groups_count = 0, + int32_t linkable_count = 0, + flatbuffers::Offset elementwise_code = 0) { +@@ -2393,47 +2356,46 @@ inline flatbuffers::Offset CreateGPUOperationDirect( + flatbuffers::Offset arguments = 0, + const char *code = nullptr, + flatbuffers::Offset work_group_size = 0, +- const std::vector> +- *compiler_options = nullptr, +- tflite::gpu::data::TensorToGrid tensor_to_grid = +- tflite::gpu::data::TensorToGrid::CUSTOM, +- bool elementwise = false, bool linkable = false, +- bool check_src_channels_size = false, uint64_t flops = 0, ++ const std::vector> *compiler_options = nullptr, ++ tflite::gpu::data::TensorToGrid tensor_to_grid = tflite::gpu::data::TensorToGrid::CUSTOM, ++ bool elementwise = false, ++ bool linkable = false, ++ bool check_src_channels_size = false, ++ uint64_t flops = 0, + flatbuffers::Offset definition = 0, + int32_t grid_dimension = 0, + flatbuffers::Offset work_group_launch_order = 0, + flatbuffers::Offset grid_size = 0, +- const std::vector> +- *src_tensors_names = nullptr, +- const std::vector> +- *dst_tensors_names = nullptr, ++ const std::vector> *src_tensors_names = nullptr, ++ const std::vector> *dst_tensors_names = nullptr, + flatbuffers::Offset work_groups_count = 0, +- int32_t linkable_count = 0, const char *elementwise_code = nullptr) { ++ int32_t linkable_count = 0, ++ const char *elementwise_code = nullptr) { + auto code__ = code ? _fbb.CreateString(code) : 0; +- auto compiler_options__ = +- compiler_options +- ? _fbb.CreateVector< +- flatbuffers::Offset>( +- *compiler_options) +- : 0; +- auto src_tensors_names__ = +- src_tensors_names +- ? _fbb.CreateVector>( +- *src_tensors_names) +- : 0; +- auto dst_tensors_names__ = +- dst_tensors_names +- ? _fbb.CreateVector>( +- *dst_tensors_names) +- : 0; +- auto elementwise_code__ = +- elementwise_code ? _fbb.CreateString(elementwise_code) : 0; ++ auto compiler_options__ = compiler_options ? _fbb.CreateVector>(*compiler_options) : 0; ++ auto src_tensors_names__ = src_tensors_names ? _fbb.CreateVector>(*src_tensors_names) : 0; ++ auto dst_tensors_names__ = dst_tensors_names ? _fbb.CreateVector>(*dst_tensors_names) : 0; ++ auto elementwise_code__ = elementwise_code ? _fbb.CreateString(elementwise_code) : 0; + return tflite::gpu::data::CreateGPUOperation( +- _fbb, arguments, code__, work_group_size, compiler_options__, +- tensor_to_grid, elementwise, linkable, check_src_channels_size, flops, +- definition, grid_dimension, work_group_launch_order, grid_size, +- src_tensors_names__, dst_tensors_names__, work_groups_count, +- linkable_count, elementwise_code__); ++ _fbb, ++ arguments, ++ code__, ++ work_group_size, ++ compiler_options__, ++ tensor_to_grid, ++ elementwise, ++ linkable, ++ check_src_channels_size, ++ flops, ++ definition, ++ grid_dimension, ++ work_group_launch_order, ++ grid_size, ++ src_tensors_names__, ++ dst_tensors_names__, ++ work_groups_count, ++ linkable_count, ++ elementwise_code__); + } + + } // namespace data +diff --git a/tensorflow/lite/experimental/acceleration/configuration/BUILD b/tensorflow/lite/experimental/acceleration/configuration/BUILD +index 4aa77261555..54fa181e5c2 100644 +--- a/tensorflow/lite/experimental/acceleration/configuration/BUILD ++++ b/tensorflow/lite/experimental/acceleration/configuration/BUILD +@@ -83,31 +83,11 @@ tf_proto_library_py( + ) + # copybara:comment_end + +-# TODO(b/191428000): The automatic generation is temporarily disabled until +-# https://github.com/google/flatbuffers/pull/6486 is landed and tensorflow +-# flatbuffer version updated. +-# Until that time you need to build configuration_for_generation_generated.h +-# and copy the result to configuration_generated.h. +-genrule( +- name = "copy_configuration_fbs", +- srcs = ["configuration.fbs"], +- outs = ["configuration_for_generation.fbs"], +- cmd = "cp $(<) $(@)", +-) +- + flatbuffer_cc_library( +- name = "configuration_fbs_for_generation", +- srcs = [":configuration_for_generation.fbs"], +- flatc_args = DEFAULT_FLATC_ARGS + ["--gen-compare"], +- visibility = ["//visibility:private"], +-) +- +-cc_library( + name = "configuration_fbs", +- hdrs = ["configuration_generated.h"], ++ srcs = [":configuration.fbs"], + compatible_with = get_compatible_with_portable(), +- linkstatic = True, +- deps = ["@flatbuffers//:runtime_cc"], ++ flatc_args = DEFAULT_FLATC_ARGS + ["--gen-compare"], + ) + + flatbuffer_java_library( +diff --git a/tensorflow/lite/experimental/acceleration/configuration/configuration_generated.h b/tensorflow/lite/experimental/acceleration/configuration/configuration_generated.h +old mode 100644 +new mode 100755 +index 40b0f0322bc..1491cb9ff83 +--- a/tensorflow/lite/experimental/acceleration/configuration/configuration_generated.h ++++ b/tensorflow/lite/experimental/acceleration/configuration/configuration_generated.h +@@ -12,86 +12,109 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + ==============================================================================*/ +-// clang-format off + // automatically generated by the FlatBuffers compiler, do not modify + +-#ifndef FLATBUFFERS_GENERATED_CONFIGURATIONFORGENERATION_TFLITE_H_ +-#define FLATBUFFERS_GENERATED_CONFIGURATIONFORGENERATION_TFLITE_H_ ++#ifndef FLATBUFFERS_GENERATED_CONFIGURATION_TFLITE_H_ ++#define FLATBUFFERS_GENERATED_CONFIGURATION_TFLITE_H_ + + #include "flatbuffers/flatbuffers.h" + + namespace tflite { + + struct ComputeSettings; ++struct ComputeSettingsBuilder; + struct ComputeSettingsT; + + struct NNAPISettings; ++struct NNAPISettingsBuilder; + struct NNAPISettingsT; + + struct GPUSettings; ++struct GPUSettingsBuilder; + struct GPUSettingsT; + + struct HexagonSettings; ++struct HexagonSettingsBuilder; + struct HexagonSettingsT; + + struct XNNPackSettings; ++struct XNNPackSettingsBuilder; + struct XNNPackSettingsT; + + struct CoreMLSettings; ++struct CoreMLSettingsBuilder; + struct CoreMLSettingsT; + + struct EdgeTpuDeviceSpec; ++struct EdgeTpuDeviceSpecBuilder; + struct EdgeTpuDeviceSpecT; + + struct EdgeTpuInactivePowerConfig; ++struct EdgeTpuInactivePowerConfigBuilder; + struct EdgeTpuInactivePowerConfigT; + + struct EdgeTpuSettings; ++struct EdgeTpuSettingsBuilder; + struct EdgeTpuSettingsT; + + struct CoralSettings; ++struct CoralSettingsBuilder; + struct CoralSettingsT; + + struct CPUSettings; ++struct CPUSettingsBuilder; + struct CPUSettingsT; + + struct TFLiteSettings; ++struct TFLiteSettingsBuilder; + struct TFLiteSettingsT; + + struct FallbackSettings; ++struct FallbackSettingsBuilder; + struct FallbackSettingsT; + + struct BenchmarkMetric; ++struct BenchmarkMetricBuilder; + struct BenchmarkMetricT; + + struct BenchmarkResult; ++struct BenchmarkResultBuilder; + struct BenchmarkResultT; + + struct ErrorCode; ++struct ErrorCodeBuilder; + struct ErrorCodeT; + + struct BenchmarkError; ++struct BenchmarkErrorBuilder; + struct BenchmarkErrorT; + + struct BenchmarkEvent; ++struct BenchmarkEventBuilder; + struct BenchmarkEventT; + + struct BestAccelerationDecision; ++struct BestAccelerationDecisionBuilder; + struct BestAccelerationDecisionT; + + struct BenchmarkInitializationFailure; ++struct BenchmarkInitializationFailureBuilder; + struct BenchmarkInitializationFailureT; + + struct MiniBenchmarkEvent; ++struct MiniBenchmarkEventBuilder; + struct MiniBenchmarkEventT; + + struct ModelFile; ++struct ModelFileBuilder; + struct ModelFileT; + + struct BenchmarkStoragePaths; ++struct BenchmarkStoragePathsBuilder; + struct BenchmarkStoragePathsT; + + struct MinibenchmarkSettings; ++struct MinibenchmarkSettingsBuilder; + struct MinibenchmarkSettingsT; + + bool operator==(const ComputeSettingsT &lhs, const ComputeSettingsT &rhs); +@@ -143,7 +166,7 @@ bool operator!=(const BenchmarkStoragePathsT &lhs, const BenchmarkStoragePathsT + bool operator==(const MinibenchmarkSettingsT &lhs, const MinibenchmarkSettingsT &rhs); + bool operator!=(const MinibenchmarkSettingsT &lhs, const MinibenchmarkSettingsT &rhs); + +-enum ExecutionPreference { ++enum ExecutionPreference : int32_t { + ExecutionPreference_ANY = 0, + ExecutionPreference_LOW_LATENCY = 1, + ExecutionPreference_LOW_POWER = 2, +@@ -179,7 +202,7 @@ inline const char *EnumNameExecutionPreference(ExecutionPreference e) { + return EnumNamesExecutionPreference()[index]; + } + +-enum Delegate { ++enum Delegate : int32_t { + Delegate_NONE = 0, + Delegate_NNAPI = 1, + Delegate_GPU = 2, +@@ -227,7 +250,7 @@ inline const char *EnumNameDelegate(Delegate e) { + return EnumNamesDelegate()[index]; + } + +-enum NNAPIExecutionPreference { ++enum NNAPIExecutionPreference : int32_t { + NNAPIExecutionPreference_UNDEFINED = 0, + NNAPIExecutionPreference_NNAPI_LOW_POWER = 1, + NNAPIExecutionPreference_NNAPI_FAST_SINGLE_ANSWER = 2, +@@ -263,7 +286,7 @@ inline const char *EnumNameNNAPIExecutionPreference(NNAPIExecutionPreference e) + return EnumNamesNNAPIExecutionPreference()[index]; + } + +-enum NNAPIExecutionPriority { ++enum NNAPIExecutionPriority : int32_t { + NNAPIExecutionPriority_NNAPI_PRIORITY_UNDEFINED = 0, + NNAPIExecutionPriority_NNAPI_PRIORITY_LOW = 1, + NNAPIExecutionPriority_NNAPI_PRIORITY_MEDIUM = 2, +@@ -299,7 +322,7 @@ inline const char *EnumNameNNAPIExecutionPriority(NNAPIExecutionPriority e) { + return EnumNamesNNAPIExecutionPriority()[index]; + } + +-enum GPUBackend { ++enum GPUBackend : int32_t { + GPUBackend_UNSET = 0, + GPUBackend_OPENCL = 1, + GPUBackend_OPENGL = 2, +@@ -332,7 +355,7 @@ inline const char *EnumNameGPUBackend(GPUBackend e) { + return EnumNamesGPUBackend()[index]; + } + +-enum GPUInferencePriority { ++enum GPUInferencePriority : int32_t { + GPUInferencePriority_GPU_PRIORITY_AUTO = 0, + GPUInferencePriority_GPU_PRIORITY_MAX_PRECISION = 1, + GPUInferencePriority_GPU_PRIORITY_MIN_LATENCY = 2, +@@ -368,7 +391,7 @@ inline const char *EnumNameGPUInferencePriority(GPUInferencePriority e) { + return EnumNamesGPUInferencePriority()[index]; + } + +-enum GPUInferenceUsage { ++enum GPUInferenceUsage : int32_t { + GPUInferenceUsage_GPU_INFERENCE_PREFERENCE_FAST_SINGLE_ANSWER = 0, + GPUInferenceUsage_GPU_INFERENCE_PREFERENCE_SUSTAINED_SPEED = 1, + GPUInferenceUsage_MIN = GPUInferenceUsage_GPU_INFERENCE_PREFERENCE_FAST_SINGLE_ANSWER, +@@ -400,7 +423,7 @@ inline const char *EnumNameGPUInferenceUsage(GPUInferenceUsage e) { + + namespace CoreMLSettings_ { + +-enum EnabledDevices { ++enum EnabledDevices : int32_t { + EnabledDevices_DEVICES_ALL = 0, + EnabledDevices_DEVICES_WITH_NEURAL_ENGINE = 1, + EnabledDevices_MIN = EnabledDevices_DEVICES_ALL, +@@ -434,7 +457,7 @@ inline const char *EnumNameEnabledDevices(EnabledDevices e) { + + namespace EdgeTpuDeviceSpec_ { + +-enum PlatformType { ++enum PlatformType : int32_t { + PlatformType_MMIO = 0, + PlatformType_REFERENCE = 1, + PlatformType_SIMULATOR = 2, +@@ -472,7 +495,7 @@ inline const char *EnumNamePlatformType(PlatformType e) { + + } // namespace EdgeTpuDeviceSpec_ + +-enum EdgeTpuPowerState { ++enum EdgeTpuPowerState : int32_t { + EdgeTpuPowerState_UNDEFINED_POWERSTATE = 0, + EdgeTpuPowerState_TPU_CORE_OFF = 1, + EdgeTpuPowerState_READY = 2, +@@ -522,7 +545,7 @@ inline const char *EnumNameEdgeTpuPowerState(EdgeTpuPowerState e) { + + namespace EdgeTpuSettings_ { + +-enum FloatTruncationType { ++enum FloatTruncationType : int32_t { + FloatTruncationType_UNSPECIFIED = 0, + FloatTruncationType_NO_TRUNCATION = 1, + FloatTruncationType_BFLOAT16 = 2, +@@ -558,7 +581,7 @@ inline const char *EnumNameFloatTruncationType(FloatTruncationType e) { + return EnumNamesFloatTruncationType()[index]; + } + +-enum QosClass { ++enum QosClass : int32_t { + QosClass_QOS_UNDEFINED = 0, + QosClass_BEST_EFFORT = 1, + QosClass_REALTIME = 2, +@@ -595,7 +618,7 @@ inline const char *EnumNameQosClass(QosClass e) { + + namespace CoralSettings_ { + +-enum Performance { ++enum Performance : int32_t { + Performance_UNDEFINED = 0, + Performance_MAXIMUM = 1, + Performance_HIGH = 2, +@@ -636,7 +659,7 @@ inline const char *EnumNamePerformance(Performance e) { + + } // namespace CoralSettings_ + +-enum BenchmarkEventType { ++enum BenchmarkEventType : int32_t { + BenchmarkEventType_UNDEFINED_BENCHMARK_EVENT_TYPE = 0, + BenchmarkEventType_START = 1, + BenchmarkEventType_END = 2, +@@ -678,7 +701,7 @@ inline const char *EnumNameBenchmarkEventType(BenchmarkEventType e) { + return EnumNamesBenchmarkEventType()[index]; + } + +-enum BenchmarkStage { ++enum BenchmarkStage : int32_t { + BenchmarkStage_UNKNOWN = 0, + BenchmarkStage_INITIALIZATION = 1, + BenchmarkStage_INFERENCE = 2, +@@ -713,18 +736,20 @@ inline const char *EnumNameBenchmarkStage(BenchmarkStage e) { + + struct ComputeSettingsT : public flatbuffers::NativeTable { + typedef ComputeSettings TableType; +- tflite::ExecutionPreference preference; +- std::unique_ptr tflite_settings; +- std::string model_namespace_for_statistics; +- std::string model_identifier_for_statistics; +- std::unique_ptr settings_to_test_locally; +- ComputeSettingsT() +- : preference(tflite::ExecutionPreference_ANY) { +- } ++ tflite::ExecutionPreference preference = tflite::ExecutionPreference_ANY; ++ std::unique_ptr tflite_settings{}; ++ std::string model_namespace_for_statistics{}; ++ std::string model_identifier_for_statistics{}; ++ std::unique_ptr settings_to_test_locally{}; ++ ComputeSettingsT() = default; ++ ComputeSettingsT(const ComputeSettingsT &o); ++ ComputeSettingsT(ComputeSettingsT&&) FLATBUFFERS_NOEXCEPT = default; ++ ComputeSettingsT &operator=(ComputeSettingsT o) FLATBUFFERS_NOEXCEPT; + }; + + struct ComputeSettings FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef ComputeSettingsT NativeTableType; ++ typedef ComputeSettingsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_PREFERENCE = 4, + VT_TFLITE_SETTINGS = 6, +@@ -749,7 +774,7 @@ struct ComputeSettings FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_PREFERENCE) && ++ VerifyField(verifier, VT_PREFERENCE, 4) && + VerifyOffset(verifier, VT_TFLITE_SETTINGS) && + verifier.VerifyTable(tflite_settings()) && + VerifyOffset(verifier, VT_MODEL_NAMESPACE_FOR_STATISTICS) && +@@ -766,6 +791,7 @@ struct ComputeSettings FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct ComputeSettingsBuilder { ++ typedef ComputeSettings Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_preference(tflite::ExecutionPreference preference) { +@@ -787,7 +813,6 @@ struct ComputeSettingsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- ComputeSettingsBuilder &operator=(const ComputeSettingsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -833,32 +858,27 @@ flatbuffers::Offset CreateComputeSettings(flatbuffers::FlatBuff + + struct NNAPISettingsT : public flatbuffers::NativeTable { + typedef NNAPISettings TableType; +- std::string accelerator_name; +- std::string cache_directory; +- std::string model_token; +- tflite::NNAPIExecutionPreference execution_preference; +- int32_t no_of_nnapi_instances_to_cache; +- std::unique_ptr fallback_settings; +- bool allow_nnapi_cpu_on_android_10_plus; +- tflite::NNAPIExecutionPriority execution_priority; +- bool allow_dynamic_dimensions; +- bool allow_fp16_precision_for_fp32; +- bool use_burst_computation; +- int64_t support_library_handle; +- NNAPISettingsT() +- : execution_preference(tflite::NNAPIExecutionPreference_UNDEFINED), +- no_of_nnapi_instances_to_cache(0), +- allow_nnapi_cpu_on_android_10_plus(false), +- execution_priority(tflite::NNAPIExecutionPriority_NNAPI_PRIORITY_UNDEFINED), +- allow_dynamic_dimensions(false), +- allow_fp16_precision_for_fp32(false), +- use_burst_computation(false), +- support_library_handle(0) { +- } ++ std::string accelerator_name{}; ++ std::string cache_directory{}; ++ std::string model_token{}; ++ tflite::NNAPIExecutionPreference execution_preference = tflite::NNAPIExecutionPreference_UNDEFINED; ++ int32_t no_of_nnapi_instances_to_cache = 0; ++ std::unique_ptr fallback_settings{}; ++ bool allow_nnapi_cpu_on_android_10_plus = false; ++ tflite::NNAPIExecutionPriority execution_priority = tflite::NNAPIExecutionPriority_NNAPI_PRIORITY_UNDEFINED; ++ bool allow_dynamic_dimensions = false; ++ bool allow_fp16_precision_for_fp32 = false; ++ bool use_burst_computation = false; ++ int64_t support_library_handle = 0; ++ NNAPISettingsT() = default; ++ NNAPISettingsT(const NNAPISettingsT &o); ++ NNAPISettingsT(NNAPISettingsT&&) FLATBUFFERS_NOEXCEPT = default; ++ NNAPISettingsT &operator=(NNAPISettingsT o) FLATBUFFERS_NOEXCEPT; + }; + + struct NNAPISettings FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef NNAPISettingsT NativeTableType; ++ typedef NNAPISettingsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_ACCELERATOR_NAME = 4, + VT_CACHE_DIRECTORY = 6, +@@ -917,16 +937,16 @@ struct NNAPISettings FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + verifier.VerifyString(cache_directory()) && + VerifyOffset(verifier, VT_MODEL_TOKEN) && + verifier.VerifyString(model_token()) && +- VerifyField(verifier, VT_EXECUTION_PREFERENCE) && +- VerifyField(verifier, VT_NO_OF_NNAPI_INSTANCES_TO_CACHE) && ++ VerifyField(verifier, VT_EXECUTION_PREFERENCE, 4) && ++ VerifyField(verifier, VT_NO_OF_NNAPI_INSTANCES_TO_CACHE, 4) && + VerifyOffset(verifier, VT_FALLBACK_SETTINGS) && + verifier.VerifyTable(fallback_settings()) && +- VerifyField(verifier, VT_ALLOW_NNAPI_CPU_ON_ANDROID_10_PLUS) && +- VerifyField(verifier, VT_EXECUTION_PRIORITY) && +- VerifyField(verifier, VT_ALLOW_DYNAMIC_DIMENSIONS) && +- VerifyField(verifier, VT_ALLOW_FP16_PRECISION_FOR_FP32) && +- VerifyField(verifier, VT_USE_BURST_COMPUTATION) && +- VerifyField(verifier, VT_SUPPORT_LIBRARY_HANDLE) && ++ VerifyField(verifier, VT_ALLOW_NNAPI_CPU_ON_ANDROID_10_PLUS, 1) && ++ VerifyField(verifier, VT_EXECUTION_PRIORITY, 4) && ++ VerifyField(verifier, VT_ALLOW_DYNAMIC_DIMENSIONS, 1) && ++ VerifyField(verifier, VT_ALLOW_FP16_PRECISION_FOR_FP32, 1) && ++ VerifyField(verifier, VT_USE_BURST_COMPUTATION, 1) && ++ VerifyField(verifier, VT_SUPPORT_LIBRARY_HANDLE, 8) && + verifier.EndTable(); + } + NNAPISettingsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -935,6 +955,7 @@ struct NNAPISettings FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct NNAPISettingsBuilder { ++ typedef NNAPISettings Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_accelerator_name(flatbuffers::Offset accelerator_name) { +@@ -977,7 +998,6 @@ struct NNAPISettingsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- NNAPISettingsBuilder &operator=(const NNAPISettingsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -1052,28 +1072,20 @@ flatbuffers::Offset CreateNNAPISettings(flatbuffers::FlatBufferBu + + struct GPUSettingsT : public flatbuffers::NativeTable { + typedef GPUSettings TableType; +- bool is_precision_loss_allowed; +- bool enable_quantized_inference; +- tflite::GPUBackend force_backend; +- tflite::GPUInferencePriority inference_priority1; +- tflite::GPUInferencePriority inference_priority2; +- tflite::GPUInferencePriority inference_priority3; +- tflite::GPUInferenceUsage inference_preference; +- std::string cache_directory; +- std::string model_token; +- GPUSettingsT() +- : is_precision_loss_allowed(false), +- enable_quantized_inference(true), +- force_backend(tflite::GPUBackend_UNSET), +- inference_priority1(tflite::GPUInferencePriority_GPU_PRIORITY_AUTO), +- inference_priority2(tflite::GPUInferencePriority_GPU_PRIORITY_AUTO), +- inference_priority3(tflite::GPUInferencePriority_GPU_PRIORITY_AUTO), +- inference_preference(tflite::GPUInferenceUsage_GPU_INFERENCE_PREFERENCE_FAST_SINGLE_ANSWER) { +- } ++ bool is_precision_loss_allowed = false; ++ bool enable_quantized_inference = true; ++ tflite::GPUBackend force_backend = tflite::GPUBackend_UNSET; ++ tflite::GPUInferencePriority inference_priority1 = tflite::GPUInferencePriority_GPU_PRIORITY_AUTO; ++ tflite::GPUInferencePriority inference_priority2 = tflite::GPUInferencePriority_GPU_PRIORITY_AUTO; ++ tflite::GPUInferencePriority inference_priority3 = tflite::GPUInferencePriority_GPU_PRIORITY_AUTO; ++ tflite::GPUInferenceUsage inference_preference = tflite::GPUInferenceUsage_GPU_INFERENCE_PREFERENCE_FAST_SINGLE_ANSWER; ++ std::string cache_directory{}; ++ std::string model_token{}; + }; + + struct GPUSettings FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef GPUSettingsT NativeTableType; ++ typedef GPUSettingsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_IS_PRECISION_LOSS_ALLOWED = 4, + VT_ENABLE_QUANTIZED_INFERENCE = 6, +@@ -1114,13 +1126,13 @@ struct GPUSettings FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_IS_PRECISION_LOSS_ALLOWED) && +- VerifyField(verifier, VT_ENABLE_QUANTIZED_INFERENCE) && +- VerifyField(verifier, VT_FORCE_BACKEND) && +- VerifyField(verifier, VT_INFERENCE_PRIORITY1) && +- VerifyField(verifier, VT_INFERENCE_PRIORITY2) && +- VerifyField(verifier, VT_INFERENCE_PRIORITY3) && +- VerifyField(verifier, VT_INFERENCE_PREFERENCE) && ++ VerifyField(verifier, VT_IS_PRECISION_LOSS_ALLOWED, 1) && ++ VerifyField(verifier, VT_ENABLE_QUANTIZED_INFERENCE, 1) && ++ VerifyField(verifier, VT_FORCE_BACKEND, 4) && ++ VerifyField(verifier, VT_INFERENCE_PRIORITY1, 4) && ++ VerifyField(verifier, VT_INFERENCE_PRIORITY2, 4) && ++ VerifyField(verifier, VT_INFERENCE_PRIORITY3, 4) && ++ VerifyField(verifier, VT_INFERENCE_PREFERENCE, 4) && + VerifyOffset(verifier, VT_CACHE_DIRECTORY) && + verifier.VerifyString(cache_directory()) && + VerifyOffset(verifier, VT_MODEL_TOKEN) && +@@ -1133,6 +1145,7 @@ struct GPUSettings FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct GPUSettingsBuilder { ++ typedef GPUSettings Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_is_precision_loss_allowed(bool is_precision_loss_allowed) { +@@ -1166,7 +1179,6 @@ struct GPUSettingsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- GPUSettingsBuilder &operator=(const GPUSettingsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -1228,20 +1240,15 @@ flatbuffers::Offset CreateGPUSettings(flatbuffers::FlatBufferBuilde + + struct HexagonSettingsT : public flatbuffers::NativeTable { + typedef HexagonSettings TableType; +- int32_t debug_level; +- int32_t powersave_level; +- bool print_graph_profile; +- bool print_graph_debug; +- HexagonSettingsT() +- : debug_level(0), +- powersave_level(0), +- print_graph_profile(false), +- print_graph_debug(false) { +- } ++ int32_t debug_level = 0; ++ int32_t powersave_level = 0; ++ bool print_graph_profile = false; ++ bool print_graph_debug = false; + }; + + struct HexagonSettings FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef HexagonSettingsT NativeTableType; ++ typedef HexagonSettingsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_DEBUG_LEVEL = 4, + VT_POWERSAVE_LEVEL = 6, +@@ -1262,10 +1269,10 @@ struct HexagonSettings FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_DEBUG_LEVEL) && +- VerifyField(verifier, VT_POWERSAVE_LEVEL) && +- VerifyField(verifier, VT_PRINT_GRAPH_PROFILE) && +- VerifyField(verifier, VT_PRINT_GRAPH_DEBUG) && ++ VerifyField(verifier, VT_DEBUG_LEVEL, 4) && ++ VerifyField(verifier, VT_POWERSAVE_LEVEL, 4) && ++ VerifyField(verifier, VT_PRINT_GRAPH_PROFILE, 1) && ++ VerifyField(verifier, VT_PRINT_GRAPH_DEBUG, 1) && + verifier.EndTable(); + } + HexagonSettingsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -1274,6 +1281,7 @@ struct HexagonSettings FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct HexagonSettingsBuilder { ++ typedef HexagonSettings Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_debug_level(int32_t debug_level) { +@@ -1292,7 +1300,6 @@ struct HexagonSettingsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- HexagonSettingsBuilder &operator=(const HexagonSettingsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -1318,14 +1325,12 @@ flatbuffers::Offset CreateHexagonSettings(flatbuffers::FlatBuff + + struct XNNPackSettingsT : public flatbuffers::NativeTable { + typedef XNNPackSettings TableType; +- int32_t num_threads; +- XNNPackSettingsT() +- : num_threads(0) { +- } ++ int32_t num_threads = 0; + }; + + struct XNNPackSettings FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef XNNPackSettingsT NativeTableType; ++ typedef XNNPackSettingsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_NUM_THREADS = 4 + }; +@@ -1334,7 +1339,7 @@ struct XNNPackSettings FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_NUM_THREADS) && ++ VerifyField(verifier, VT_NUM_THREADS, 4) && + verifier.EndTable(); + } + XNNPackSettingsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -1343,6 +1348,7 @@ struct XNNPackSettings FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct XNNPackSettingsBuilder { ++ typedef XNNPackSettings Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_num_threads(int32_t num_threads) { +@@ -1352,7 +1358,6 @@ struct XNNPackSettingsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- XNNPackSettingsBuilder &operator=(const XNNPackSettingsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -1372,20 +1377,15 @@ flatbuffers::Offset CreateXNNPackSettings(flatbuffers::FlatBuff + + struct CoreMLSettingsT : public flatbuffers::NativeTable { + typedef CoreMLSettings TableType; +- tflite::CoreMLSettings_::EnabledDevices enabled_devices; +- int32_t coreml_version; +- int32_t max_delegated_partitions; +- int32_t min_nodes_per_partition; +- CoreMLSettingsT() +- : enabled_devices(tflite::CoreMLSettings_::EnabledDevices_DEVICES_ALL), +- coreml_version(0), +- max_delegated_partitions(0), +- min_nodes_per_partition(2) { +- } ++ tflite::CoreMLSettings_::EnabledDevices enabled_devices = tflite::CoreMLSettings_::EnabledDevices_DEVICES_ALL; ++ int32_t coreml_version = 0; ++ int32_t max_delegated_partitions = 0; ++ int32_t min_nodes_per_partition = 2; + }; + + struct CoreMLSettings FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef CoreMLSettingsT NativeTableType; ++ typedef CoreMLSettingsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_ENABLED_DEVICES = 4, + VT_COREML_VERSION = 6, +@@ -1406,10 +1406,10 @@ struct CoreMLSettings FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_ENABLED_DEVICES) && +- VerifyField(verifier, VT_COREML_VERSION) && +- VerifyField(verifier, VT_MAX_DELEGATED_PARTITIONS) && +- VerifyField(verifier, VT_MIN_NODES_PER_PARTITION) && ++ VerifyField(verifier, VT_ENABLED_DEVICES, 4) && ++ VerifyField(verifier, VT_COREML_VERSION, 4) && ++ VerifyField(verifier, VT_MAX_DELEGATED_PARTITIONS, 4) && ++ VerifyField(verifier, VT_MIN_NODES_PER_PARTITION, 4) && + verifier.EndTable(); + } + CoreMLSettingsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -1418,6 +1418,7 @@ struct CoreMLSettings FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct CoreMLSettingsBuilder { ++ typedef CoreMLSettings Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_enabled_devices(tflite::CoreMLSettings_::EnabledDevices enabled_devices) { +@@ -1436,7 +1437,6 @@ struct CoreMLSettingsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- CoreMLSettingsBuilder &operator=(const CoreMLSettingsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -1462,19 +1462,15 @@ flatbuffers::Offset CreateCoreMLSettings(flatbuffers::FlatBuffer + + struct EdgeTpuDeviceSpecT : public flatbuffers::NativeTable { + typedef EdgeTpuDeviceSpec TableType; +- tflite::EdgeTpuDeviceSpec_::PlatformType platform_type; +- int32_t num_chips; +- std::vector device_paths; +- int32_t chip_family; +- EdgeTpuDeviceSpecT() +- : platform_type(tflite::EdgeTpuDeviceSpec_::PlatformType_MMIO), +- num_chips(0), +- chip_family(0) { +- } ++ tflite::EdgeTpuDeviceSpec_::PlatformType platform_type = tflite::EdgeTpuDeviceSpec_::PlatformType_MMIO; ++ int32_t num_chips = 0; ++ std::vector device_paths{}; ++ int32_t chip_family = 0; + }; + + struct EdgeTpuDeviceSpec FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef EdgeTpuDeviceSpecT NativeTableType; ++ typedef EdgeTpuDeviceSpecBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_PLATFORM_TYPE = 4, + VT_NUM_CHIPS = 6, +@@ -1495,12 +1491,12 @@ struct EdgeTpuDeviceSpec FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_PLATFORM_TYPE) && +- VerifyField(verifier, VT_NUM_CHIPS) && ++ VerifyField(verifier, VT_PLATFORM_TYPE, 4) && ++ VerifyField(verifier, VT_NUM_CHIPS, 4) && + VerifyOffset(verifier, VT_DEVICE_PATHS) && + verifier.VerifyVector(device_paths()) && + verifier.VerifyVectorOfStrings(device_paths()) && +- VerifyField(verifier, VT_CHIP_FAMILY) && ++ VerifyField(verifier, VT_CHIP_FAMILY, 4) && + verifier.EndTable(); + } + EdgeTpuDeviceSpecT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -1509,6 +1505,7 @@ struct EdgeTpuDeviceSpec FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct EdgeTpuDeviceSpecBuilder { ++ typedef EdgeTpuDeviceSpec Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_platform_type(tflite::EdgeTpuDeviceSpec_::PlatformType platform_type) { +@@ -1527,7 +1524,6 @@ struct EdgeTpuDeviceSpecBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- EdgeTpuDeviceSpecBuilder &operator=(const EdgeTpuDeviceSpecBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -1568,16 +1564,13 @@ flatbuffers::Offset CreateEdgeTpuDeviceSpec(flatbuffers::Flat + + struct EdgeTpuInactivePowerConfigT : public flatbuffers::NativeTable { + typedef EdgeTpuInactivePowerConfig TableType; +- tflite::EdgeTpuPowerState inactive_power_state; +- int64_t inactive_timeout_us; +- EdgeTpuInactivePowerConfigT() +- : inactive_power_state(tflite::EdgeTpuPowerState_UNDEFINED_POWERSTATE), +- inactive_timeout_us(0) { +- } ++ tflite::EdgeTpuPowerState inactive_power_state = tflite::EdgeTpuPowerState_UNDEFINED_POWERSTATE; ++ int64_t inactive_timeout_us = 0; + }; + + struct EdgeTpuInactivePowerConfig FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef EdgeTpuInactivePowerConfigT NativeTableType; ++ typedef EdgeTpuInactivePowerConfigBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_INACTIVE_POWER_STATE = 4, + VT_INACTIVE_TIMEOUT_US = 6 +@@ -1590,8 +1583,8 @@ struct EdgeTpuInactivePowerConfig FLATBUFFERS_FINAL_CLASS : private flatbuffers: + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_INACTIVE_POWER_STATE) && +- VerifyField(verifier, VT_INACTIVE_TIMEOUT_US) && ++ VerifyField(verifier, VT_INACTIVE_POWER_STATE, 4) && ++ VerifyField(verifier, VT_INACTIVE_TIMEOUT_US, 8) && + verifier.EndTable(); + } + EdgeTpuInactivePowerConfigT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -1600,6 +1593,7 @@ struct EdgeTpuInactivePowerConfig FLATBUFFERS_FINAL_CLASS : private flatbuffers: + }; + + struct EdgeTpuInactivePowerConfigBuilder { ++ typedef EdgeTpuInactivePowerConfig Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_inactive_power_state(tflite::EdgeTpuPowerState inactive_power_state) { +@@ -1612,7 +1606,6 @@ struct EdgeTpuInactivePowerConfigBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- EdgeTpuInactivePowerConfigBuilder &operator=(const EdgeTpuInactivePowerConfigBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -1634,23 +1627,22 @@ flatbuffers::Offset CreateEdgeTpuInactivePowerConfig + + struct EdgeTpuSettingsT : public flatbuffers::NativeTable { + typedef EdgeTpuSettings TableType; +- tflite::EdgeTpuPowerState inference_power_state; +- std::vector> inactive_power_configs; +- int32_t inference_priority; +- std::unique_ptr edgetpu_device_spec; +- std::string model_token; +- tflite::EdgeTpuSettings_::FloatTruncationType float_truncation_type; +- tflite::EdgeTpuSettings_::QosClass qos_class; +- EdgeTpuSettingsT() +- : inference_power_state(tflite::EdgeTpuPowerState_UNDEFINED_POWERSTATE), +- inference_priority(-1), +- float_truncation_type(tflite::EdgeTpuSettings_::FloatTruncationType_UNSPECIFIED), +- qos_class(tflite::EdgeTpuSettings_::QosClass_QOS_UNDEFINED) { +- } ++ tflite::EdgeTpuPowerState inference_power_state = tflite::EdgeTpuPowerState_UNDEFINED_POWERSTATE; ++ std::vector> inactive_power_configs{}; ++ int32_t inference_priority = -1; ++ std::unique_ptr edgetpu_device_spec{}; ++ std::string model_token{}; ++ tflite::EdgeTpuSettings_::FloatTruncationType float_truncation_type = tflite::EdgeTpuSettings_::FloatTruncationType_UNSPECIFIED; ++ tflite::EdgeTpuSettings_::QosClass qos_class = tflite::EdgeTpuSettings_::QosClass_QOS_UNDEFINED; ++ EdgeTpuSettingsT() = default; ++ EdgeTpuSettingsT(const EdgeTpuSettingsT &o); ++ EdgeTpuSettingsT(EdgeTpuSettingsT&&) FLATBUFFERS_NOEXCEPT = default; ++ EdgeTpuSettingsT &operator=(EdgeTpuSettingsT o) FLATBUFFERS_NOEXCEPT; + }; + + struct EdgeTpuSettings FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef EdgeTpuSettingsT NativeTableType; ++ typedef EdgeTpuSettingsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_INFERENCE_POWER_STATE = 4, + VT_INACTIVE_POWER_CONFIGS = 6, +@@ -1683,17 +1675,17 @@ struct EdgeTpuSettings FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_INFERENCE_POWER_STATE) && ++ VerifyField(verifier, VT_INFERENCE_POWER_STATE, 4) && + VerifyOffset(verifier, VT_INACTIVE_POWER_CONFIGS) && + verifier.VerifyVector(inactive_power_configs()) && + verifier.VerifyVectorOfTables(inactive_power_configs()) && +- VerifyField(verifier, VT_INFERENCE_PRIORITY) && ++ VerifyField(verifier, VT_INFERENCE_PRIORITY, 4) && + VerifyOffset(verifier, VT_EDGETPU_DEVICE_SPEC) && + verifier.VerifyTable(edgetpu_device_spec()) && + VerifyOffset(verifier, VT_MODEL_TOKEN) && + verifier.VerifyString(model_token()) && +- VerifyField(verifier, VT_FLOAT_TRUNCATION_TYPE) && +- VerifyField(verifier, VT_QOS_CLASS) && ++ VerifyField(verifier, VT_FLOAT_TRUNCATION_TYPE, 4) && ++ VerifyField(verifier, VT_QOS_CLASS, 4) && + verifier.EndTable(); + } + EdgeTpuSettingsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -1702,6 +1694,7 @@ struct EdgeTpuSettings FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct EdgeTpuSettingsBuilder { ++ typedef EdgeTpuSettings Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_inference_power_state(tflite::EdgeTpuPowerState inference_power_state) { +@@ -1729,7 +1722,6 @@ struct EdgeTpuSettingsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- EdgeTpuSettingsBuilder &operator=(const EdgeTpuSettingsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -1783,19 +1775,15 @@ flatbuffers::Offset CreateEdgeTpuSettings(flatbuffers::FlatBuff + + struct CoralSettingsT : public flatbuffers::NativeTable { + typedef CoralSettings TableType; +- std::string device; +- tflite::CoralSettings_::Performance performance; +- bool usb_always_dfu; +- int32_t usb_max_bulk_in_queue_length; +- CoralSettingsT() +- : performance(tflite::CoralSettings_::Performance_UNDEFINED), +- usb_always_dfu(false), +- usb_max_bulk_in_queue_length(0) { +- } ++ std::string device{}; ++ tflite::CoralSettings_::Performance performance = tflite::CoralSettings_::Performance_UNDEFINED; ++ bool usb_always_dfu = false; ++ int32_t usb_max_bulk_in_queue_length = 0; + }; + + struct CoralSettings FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef CoralSettingsT NativeTableType; ++ typedef CoralSettingsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_DEVICE = 4, + VT_PERFORMANCE = 6, +@@ -1818,9 +1806,9 @@ struct CoralSettings FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + return VerifyTableStart(verifier) && + VerifyOffset(verifier, VT_DEVICE) && + verifier.VerifyString(device()) && +- VerifyField(verifier, VT_PERFORMANCE) && +- VerifyField(verifier, VT_USB_ALWAYS_DFU) && +- VerifyField(verifier, VT_USB_MAX_BULK_IN_QUEUE_LENGTH) && ++ VerifyField(verifier, VT_PERFORMANCE, 4) && ++ VerifyField(verifier, VT_USB_ALWAYS_DFU, 1) && ++ VerifyField(verifier, VT_USB_MAX_BULK_IN_QUEUE_LENGTH, 4) && + verifier.EndTable(); + } + CoralSettingsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -1829,6 +1817,7 @@ struct CoralSettings FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct CoralSettingsBuilder { ++ typedef CoralSettings Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_device(flatbuffers::Offset device) { +@@ -1847,7 +1836,6 @@ struct CoralSettingsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- CoralSettingsBuilder &operator=(const CoralSettingsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -1888,14 +1876,12 @@ flatbuffers::Offset CreateCoralSettings(flatbuffers::FlatBufferBu + + struct CPUSettingsT : public flatbuffers::NativeTable { + typedef CPUSettings TableType; +- int32_t num_threads; +- CPUSettingsT() +- : num_threads(-1) { +- } ++ int32_t num_threads = -1; + }; + + struct CPUSettings FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef CPUSettingsT NativeTableType; ++ typedef CPUSettingsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_NUM_THREADS = 4 + }; +@@ -1904,7 +1890,7 @@ struct CPUSettings FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_NUM_THREADS) && ++ VerifyField(verifier, VT_NUM_THREADS, 4) && + verifier.EndTable(); + } + CPUSettingsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -1913,6 +1899,7 @@ struct CPUSettings FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct CPUSettingsBuilder { ++ typedef CPUSettings Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_num_threads(int32_t num_threads) { +@@ -1922,7 +1909,6 @@ struct CPUSettingsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- CPUSettingsBuilder &operator=(const CPUSettingsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -1942,25 +1928,26 @@ flatbuffers::Offset CreateCPUSettings(flatbuffers::FlatBufferBuilde + + struct TFLiteSettingsT : public flatbuffers::NativeTable { + typedef TFLiteSettings TableType; +- tflite::Delegate delegate; +- std::unique_ptr nnapi_settings; +- std::unique_ptr gpu_settings; +- std::unique_ptr hexagon_settings; +- std::unique_ptr xnnpack_settings; +- std::unique_ptr coreml_settings; +- std::unique_ptr cpu_settings; +- int32_t max_delegated_partitions; +- std::unique_ptr edgetpu_settings; +- std::unique_ptr coral_settings; +- std::unique_ptr fallback_settings; +- TFLiteSettingsT() +- : delegate(tflite::Delegate_NONE), +- max_delegated_partitions(0) { +- } ++ tflite::Delegate delegate = tflite::Delegate_NONE; ++ std::unique_ptr nnapi_settings{}; ++ std::unique_ptr gpu_settings{}; ++ std::unique_ptr hexagon_settings{}; ++ std::unique_ptr xnnpack_settings{}; ++ std::unique_ptr coreml_settings{}; ++ std::unique_ptr cpu_settings{}; ++ int32_t max_delegated_partitions = 0; ++ std::unique_ptr edgetpu_settings{}; ++ std::unique_ptr coral_settings{}; ++ std::unique_ptr fallback_settings{}; ++ TFLiteSettingsT() = default; ++ TFLiteSettingsT(const TFLiteSettingsT &o); ++ TFLiteSettingsT(TFLiteSettingsT&&) FLATBUFFERS_NOEXCEPT = default; ++ TFLiteSettingsT &operator=(TFLiteSettingsT o) FLATBUFFERS_NOEXCEPT; + }; + + struct TFLiteSettings FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef TFLiteSettingsT NativeTableType; ++ typedef TFLiteSettingsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_DELEGATE = 4, + VT_NNAPI_SETTINGS = 6, +@@ -2009,7 +1996,7 @@ struct TFLiteSettings FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_DELEGATE) && ++ VerifyField(verifier, VT_DELEGATE, 4) && + VerifyOffset(verifier, VT_NNAPI_SETTINGS) && + verifier.VerifyTable(nnapi_settings()) && + VerifyOffset(verifier, VT_GPU_SETTINGS) && +@@ -2022,7 +2009,7 @@ struct TFLiteSettings FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + verifier.VerifyTable(coreml_settings()) && + VerifyOffset(verifier, VT_CPU_SETTINGS) && + verifier.VerifyTable(cpu_settings()) && +- VerifyField(verifier, VT_MAX_DELEGATED_PARTITIONS) && ++ VerifyField(verifier, VT_MAX_DELEGATED_PARTITIONS, 4) && + VerifyOffset(verifier, VT_EDGETPU_SETTINGS) && + verifier.VerifyTable(edgetpu_settings()) && + VerifyOffset(verifier, VT_CORAL_SETTINGS) && +@@ -2037,6 +2024,7 @@ struct TFLiteSettings FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct TFLiteSettingsBuilder { ++ typedef TFLiteSettings Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_delegate(tflite::Delegate delegate) { +@@ -2076,7 +2064,6 @@ struct TFLiteSettingsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- TFLiteSettingsBuilder &operator=(const TFLiteSettingsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -2116,16 +2103,13 @@ flatbuffers::Offset CreateTFLiteSettings(flatbuffers::FlatBuffer + + struct FallbackSettingsT : public flatbuffers::NativeTable { + typedef FallbackSettings TableType; +- bool allow_automatic_fallback_on_compilation_error; +- bool allow_automatic_fallback_on_execution_error; +- FallbackSettingsT() +- : allow_automatic_fallback_on_compilation_error(false), +- allow_automatic_fallback_on_execution_error(false) { +- } ++ bool allow_automatic_fallback_on_compilation_error = false; ++ bool allow_automatic_fallback_on_execution_error = false; + }; + + struct FallbackSettings FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef FallbackSettingsT NativeTableType; ++ typedef FallbackSettingsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_ALLOW_AUTOMATIC_FALLBACK_ON_COMPILATION_ERROR = 4, + VT_ALLOW_AUTOMATIC_FALLBACK_ON_EXECUTION_ERROR = 6 +@@ -2138,8 +2122,8 @@ struct FallbackSettings FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_ALLOW_AUTOMATIC_FALLBACK_ON_COMPILATION_ERROR) && +- VerifyField(verifier, VT_ALLOW_AUTOMATIC_FALLBACK_ON_EXECUTION_ERROR) && ++ VerifyField(verifier, VT_ALLOW_AUTOMATIC_FALLBACK_ON_COMPILATION_ERROR, 1) && ++ VerifyField(verifier, VT_ALLOW_AUTOMATIC_FALLBACK_ON_EXECUTION_ERROR, 1) && + verifier.EndTable(); + } + FallbackSettingsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -2148,6 +2132,7 @@ struct FallbackSettings FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct FallbackSettingsBuilder { ++ typedef FallbackSettings Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_allow_automatic_fallback_on_compilation_error(bool allow_automatic_fallback_on_compilation_error) { +@@ -2160,7 +2145,6 @@ struct FallbackSettingsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- FallbackSettingsBuilder &operator=(const FallbackSettingsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -2182,14 +2166,13 @@ flatbuffers::Offset CreateFallbackSettings(flatbuffers::FlatBu + + struct BenchmarkMetricT : public flatbuffers::NativeTable { + typedef BenchmarkMetric TableType; +- std::string name; +- std::vector values; +- BenchmarkMetricT() { +- } ++ std::string name{}; ++ std::vector values{}; + }; + + struct BenchmarkMetric FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef BenchmarkMetricT NativeTableType; ++ typedef BenchmarkMetricBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_NAME = 4, + VT_VALUES = 6 +@@ -2214,6 +2197,7 @@ struct BenchmarkMetric FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct BenchmarkMetricBuilder { ++ typedef BenchmarkMetric Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_name(flatbuffers::Offset name) { +@@ -2226,7 +2210,6 @@ struct BenchmarkMetricBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- BenchmarkMetricBuilder &operator=(const BenchmarkMetricBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -2260,19 +2243,20 @@ flatbuffers::Offset CreateBenchmarkMetric(flatbuffers::FlatBuff + + struct BenchmarkResultT : public flatbuffers::NativeTable { + typedef BenchmarkResult TableType; +- std::vector initialization_time_us; +- std::vector inference_time_us; +- int32_t max_memory_kb; +- bool ok; +- std::vector> metrics; +- BenchmarkResultT() +- : max_memory_kb(0), +- ok(false) { +- } ++ std::vector initialization_time_us{}; ++ std::vector inference_time_us{}; ++ int32_t max_memory_kb = 0; ++ bool ok = false; ++ std::vector> metrics{}; ++ BenchmarkResultT() = default; ++ BenchmarkResultT(const BenchmarkResultT &o); ++ BenchmarkResultT(BenchmarkResultT&&) FLATBUFFERS_NOEXCEPT = default; ++ BenchmarkResultT &operator=(BenchmarkResultT o) FLATBUFFERS_NOEXCEPT; + }; + + struct BenchmarkResult FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef BenchmarkResultT NativeTableType; ++ typedef BenchmarkResultBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_INITIALIZATION_TIME_US = 4, + VT_INFERENCE_TIME_US = 6, +@@ -2301,8 +2285,8 @@ struct BenchmarkResult FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + verifier.VerifyVector(initialization_time_us()) && + VerifyOffset(verifier, VT_INFERENCE_TIME_US) && + verifier.VerifyVector(inference_time_us()) && +- VerifyField(verifier, VT_MAX_MEMORY_KB) && +- VerifyField(verifier, VT_OK) && ++ VerifyField(verifier, VT_MAX_MEMORY_KB, 4) && ++ VerifyField(verifier, VT_OK, 1) && + VerifyOffset(verifier, VT_METRICS) && + verifier.VerifyVector(metrics()) && + verifier.VerifyVectorOfTables(metrics()) && +@@ -2314,6 +2298,7 @@ struct BenchmarkResult FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct BenchmarkResultBuilder { ++ typedef BenchmarkResult Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_initialization_time_us(flatbuffers::Offset> initialization_time_us) { +@@ -2335,7 +2320,6 @@ struct BenchmarkResultBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- BenchmarkResultBuilder &operator=(const BenchmarkResultBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -2382,18 +2366,14 @@ flatbuffers::Offset CreateBenchmarkResult(flatbuffers::FlatBuff + + struct ErrorCodeT : public flatbuffers::NativeTable { + typedef ErrorCode TableType; +- tflite::Delegate source; +- int32_t tflite_error; +- int64_t underlying_api_error; +- ErrorCodeT() +- : source(tflite::Delegate_NONE), +- tflite_error(0), +- underlying_api_error(0) { +- } ++ tflite::Delegate source = tflite::Delegate_NONE; ++ int32_t tflite_error = 0; ++ int64_t underlying_api_error = 0; + }; + + struct ErrorCode FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef ErrorCodeT NativeTableType; ++ typedef ErrorCodeBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_SOURCE = 4, + VT_TFLITE_ERROR = 6, +@@ -2410,9 +2390,9 @@ struct ErrorCode FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_SOURCE) && +- VerifyField(verifier, VT_TFLITE_ERROR) && +- VerifyField(verifier, VT_UNDERLYING_API_ERROR) && ++ VerifyField(verifier, VT_SOURCE, 4) && ++ VerifyField(verifier, VT_TFLITE_ERROR, 4) && ++ VerifyField(verifier, VT_UNDERLYING_API_ERROR, 8) && + verifier.EndTable(); + } + ErrorCodeT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -2421,6 +2401,7 @@ struct ErrorCode FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct ErrorCodeBuilder { ++ typedef ErrorCode Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_source(tflite::Delegate source) { +@@ -2436,7 +2417,6 @@ struct ErrorCodeBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- ErrorCodeBuilder &operator=(const ErrorCodeBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -2460,21 +2440,20 @@ flatbuffers::Offset CreateErrorCode(flatbuffers::FlatBufferBuilder &_ + + struct BenchmarkErrorT : public flatbuffers::NativeTable { + typedef BenchmarkError TableType; +- tflite::BenchmarkStage stage; +- int32_t exit_code; +- int32_t signal; +- std::vector> error_code; +- int32_t mini_benchmark_error_code; +- BenchmarkErrorT() +- : stage(tflite::BenchmarkStage_UNKNOWN), +- exit_code(0), +- signal(0), +- mini_benchmark_error_code(0) { +- } ++ tflite::BenchmarkStage stage = tflite::BenchmarkStage_UNKNOWN; ++ int32_t exit_code = 0; ++ int32_t signal = 0; ++ std::vector> error_code{}; ++ int32_t mini_benchmark_error_code = 0; ++ BenchmarkErrorT() = default; ++ BenchmarkErrorT(const BenchmarkErrorT &o); ++ BenchmarkErrorT(BenchmarkErrorT&&) FLATBUFFERS_NOEXCEPT = default; ++ BenchmarkErrorT &operator=(BenchmarkErrorT o) FLATBUFFERS_NOEXCEPT; + }; + + struct BenchmarkError FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef BenchmarkErrorT NativeTableType; ++ typedef BenchmarkErrorBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_STAGE = 4, + VT_EXIT_CODE = 6, +@@ -2499,13 +2478,13 @@ struct BenchmarkError FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_STAGE) && +- VerifyField(verifier, VT_EXIT_CODE) && +- VerifyField(verifier, VT_SIGNAL) && ++ VerifyField(verifier, VT_STAGE, 4) && ++ VerifyField(verifier, VT_EXIT_CODE, 4) && ++ VerifyField(verifier, VT_SIGNAL, 4) && + VerifyOffset(verifier, VT_ERROR_CODE) && + verifier.VerifyVector(error_code()) && + verifier.VerifyVectorOfTables(error_code()) && +- VerifyField(verifier, VT_MINI_BENCHMARK_ERROR_CODE) && ++ VerifyField(verifier, VT_MINI_BENCHMARK_ERROR_CODE, 4) && + verifier.EndTable(); + } + BenchmarkErrorT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -2514,6 +2493,7 @@ struct BenchmarkError FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct BenchmarkErrorBuilder { ++ typedef BenchmarkError Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_stage(tflite::BenchmarkStage stage) { +@@ -2535,7 +2515,6 @@ struct BenchmarkErrorBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- BenchmarkErrorBuilder &operator=(const BenchmarkErrorBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -2580,21 +2559,21 @@ flatbuffers::Offset CreateBenchmarkError(flatbuffers::FlatBuffer + + struct BenchmarkEventT : public flatbuffers::NativeTable { + typedef BenchmarkEvent TableType; +- std::unique_ptr tflite_settings; +- tflite::BenchmarkEventType event_type; +- std::unique_ptr result; +- std::unique_ptr error; +- int64_t boottime_us; +- int64_t wallclock_us; +- BenchmarkEventT() +- : event_type(tflite::BenchmarkEventType_UNDEFINED_BENCHMARK_EVENT_TYPE), +- boottime_us(0), +- wallclock_us(0) { +- } ++ std::unique_ptr tflite_settings{}; ++ tflite::BenchmarkEventType event_type = tflite::BenchmarkEventType_UNDEFINED_BENCHMARK_EVENT_TYPE; ++ std::unique_ptr result{}; ++ std::unique_ptr error{}; ++ int64_t boottime_us = 0; ++ int64_t wallclock_us = 0; ++ BenchmarkEventT() = default; ++ BenchmarkEventT(const BenchmarkEventT &o); ++ BenchmarkEventT(BenchmarkEventT&&) FLATBUFFERS_NOEXCEPT = default; ++ BenchmarkEventT &operator=(BenchmarkEventT o) FLATBUFFERS_NOEXCEPT; + }; + + struct BenchmarkEvent FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef BenchmarkEventT NativeTableType; ++ typedef BenchmarkEventBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_TFLITE_SETTINGS = 4, + VT_EVENT_TYPE = 6, +@@ -2625,13 +2604,13 @@ struct BenchmarkEvent FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + return VerifyTableStart(verifier) && + VerifyOffset(verifier, VT_TFLITE_SETTINGS) && + verifier.VerifyTable(tflite_settings()) && +- VerifyField(verifier, VT_EVENT_TYPE) && ++ VerifyField(verifier, VT_EVENT_TYPE, 4) && + VerifyOffset(verifier, VT_RESULT) && + verifier.VerifyTable(result()) && + VerifyOffset(verifier, VT_ERROR) && + verifier.VerifyTable(error()) && +- VerifyField(verifier, VT_BOOTTIME_US) && +- VerifyField(verifier, VT_WALLCLOCK_US) && ++ VerifyField(verifier, VT_BOOTTIME_US, 8) && ++ VerifyField(verifier, VT_WALLCLOCK_US, 8) && + verifier.EndTable(); + } + BenchmarkEventT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -2640,6 +2619,7 @@ struct BenchmarkEvent FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct BenchmarkEventBuilder { ++ typedef BenchmarkEvent Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_tflite_settings(flatbuffers::Offset tflite_settings) { +@@ -2664,7 +2644,6 @@ struct BenchmarkEventBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- BenchmarkEventBuilder &operator=(const BenchmarkEventBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -2694,17 +2673,18 @@ flatbuffers::Offset CreateBenchmarkEvent(flatbuffers::FlatBuffer + + struct BestAccelerationDecisionT : public flatbuffers::NativeTable { + typedef BestAccelerationDecision TableType; +- int32_t number_of_source_events; +- std::unique_ptr min_latency_event; +- int64_t min_inference_time_us; +- BestAccelerationDecisionT() +- : number_of_source_events(0), +- min_inference_time_us(0) { +- } ++ int32_t number_of_source_events = 0; ++ std::unique_ptr min_latency_event{}; ++ int64_t min_inference_time_us = 0; ++ BestAccelerationDecisionT() = default; ++ BestAccelerationDecisionT(const BestAccelerationDecisionT &o); ++ BestAccelerationDecisionT(BestAccelerationDecisionT&&) FLATBUFFERS_NOEXCEPT = default; ++ BestAccelerationDecisionT &operator=(BestAccelerationDecisionT o) FLATBUFFERS_NOEXCEPT; + }; + + struct BestAccelerationDecision FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef BestAccelerationDecisionT NativeTableType; ++ typedef BestAccelerationDecisionBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_NUMBER_OF_SOURCE_EVENTS = 4, + VT_MIN_LATENCY_EVENT = 6, +@@ -2721,10 +2701,10 @@ struct BestAccelerationDecision FLATBUFFERS_FINAL_CLASS : private flatbuffers::T + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_NUMBER_OF_SOURCE_EVENTS) && ++ VerifyField(verifier, VT_NUMBER_OF_SOURCE_EVENTS, 4) && + VerifyOffset(verifier, VT_MIN_LATENCY_EVENT) && + verifier.VerifyTable(min_latency_event()) && +- VerifyField(verifier, VT_MIN_INFERENCE_TIME_US) && ++ VerifyField(verifier, VT_MIN_INFERENCE_TIME_US, 8) && + verifier.EndTable(); + } + BestAccelerationDecisionT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -2733,6 +2713,7 @@ struct BestAccelerationDecision FLATBUFFERS_FINAL_CLASS : private flatbuffers::T + }; + + struct BestAccelerationDecisionBuilder { ++ typedef BestAccelerationDecision Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_number_of_source_events(int32_t number_of_source_events) { +@@ -2748,7 +2729,6 @@ struct BestAccelerationDecisionBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- BestAccelerationDecisionBuilder &operator=(const BestAccelerationDecisionBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -2772,14 +2752,12 @@ flatbuffers::Offset CreateBestAccelerationDecision(fla + + struct BenchmarkInitializationFailureT : public flatbuffers::NativeTable { + typedef BenchmarkInitializationFailure TableType; +- int32_t initialization_status; +- BenchmarkInitializationFailureT() +- : initialization_status(0) { +- } ++ int32_t initialization_status = 0; + }; + + struct BenchmarkInitializationFailure FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef BenchmarkInitializationFailureT NativeTableType; ++ typedef BenchmarkInitializationFailureBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_INITIALIZATION_STATUS = 4 + }; +@@ -2788,7 +2766,7 @@ struct BenchmarkInitializationFailure FLATBUFFERS_FINAL_CLASS : private flatbuff + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_INITIALIZATION_STATUS) && ++ VerifyField(verifier, VT_INITIALIZATION_STATUS, 4) && + verifier.EndTable(); + } + BenchmarkInitializationFailureT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -2797,6 +2775,7 @@ struct BenchmarkInitializationFailure FLATBUFFERS_FINAL_CLASS : private flatbuff + }; + + struct BenchmarkInitializationFailureBuilder { ++ typedef BenchmarkInitializationFailure Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_initialization_status(int32_t initialization_status) { +@@ -2806,7 +2785,6 @@ struct BenchmarkInitializationFailureBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- BenchmarkInitializationFailureBuilder &operator=(const BenchmarkInitializationFailureBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -2826,17 +2804,19 @@ flatbuffers::Offset CreateBenchmarkInitializatio + + struct MiniBenchmarkEventT : public flatbuffers::NativeTable { + typedef MiniBenchmarkEvent TableType; +- bool is_log_flushing_event; +- std::unique_ptr best_acceleration_decision; +- std::unique_ptr initialization_failure; +- std::unique_ptr benchmark_event; +- MiniBenchmarkEventT() +- : is_log_flushing_event(false) { +- } ++ bool is_log_flushing_event = false; ++ std::unique_ptr best_acceleration_decision{}; ++ std::unique_ptr initialization_failure{}; ++ std::unique_ptr benchmark_event{}; ++ MiniBenchmarkEventT() = default; ++ MiniBenchmarkEventT(const MiniBenchmarkEventT &o); ++ MiniBenchmarkEventT(MiniBenchmarkEventT&&) FLATBUFFERS_NOEXCEPT = default; ++ MiniBenchmarkEventT &operator=(MiniBenchmarkEventT o) FLATBUFFERS_NOEXCEPT; + }; + + struct MiniBenchmarkEvent FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef MiniBenchmarkEventT NativeTableType; ++ typedef MiniBenchmarkEventBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_IS_LOG_FLUSHING_EVENT = 4, + VT_BEST_ACCELERATION_DECISION = 6, +@@ -2857,7 +2837,7 @@ struct MiniBenchmarkEvent FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_IS_LOG_FLUSHING_EVENT) && ++ VerifyField(verifier, VT_IS_LOG_FLUSHING_EVENT, 1) && + VerifyOffset(verifier, VT_BEST_ACCELERATION_DECISION) && + verifier.VerifyTable(best_acceleration_decision()) && + VerifyOffset(verifier, VT_INITIALIZATION_FAILURE) && +@@ -2872,6 +2852,7 @@ struct MiniBenchmarkEvent FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct MiniBenchmarkEventBuilder { ++ typedef MiniBenchmarkEvent Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_is_log_flushing_event(bool is_log_flushing_event) { +@@ -2890,7 +2871,6 @@ struct MiniBenchmarkEventBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- MiniBenchmarkEventBuilder &operator=(const MiniBenchmarkEventBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -2916,19 +2896,15 @@ flatbuffers::Offset CreateMiniBenchmarkEvent(flatbuffers::Fl + + struct ModelFileT : public flatbuffers::NativeTable { + typedef ModelFile TableType; +- std::string filename; +- int64_t fd; +- int64_t offset; +- int64_t length; +- ModelFileT() +- : fd(0), +- offset(0), +- length(0) { +- } ++ std::string filename{}; ++ int64_t fd = 0; ++ int64_t offset = 0; ++ int64_t length = 0; + }; + + struct ModelFile FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef ModelFileT NativeTableType; ++ typedef ModelFileBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_FILENAME = 4, + VT_FD = 6, +@@ -2951,9 +2927,9 @@ struct ModelFile FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + return VerifyTableStart(verifier) && + VerifyOffset(verifier, VT_FILENAME) && + verifier.VerifyString(filename()) && +- VerifyField(verifier, VT_FD) && +- VerifyField(verifier, VT_OFFSET) && +- VerifyField(verifier, VT_LENGTH) && ++ VerifyField(verifier, VT_FD, 8) && ++ VerifyField(verifier, VT_OFFSET, 8) && ++ VerifyField(verifier, VT_LENGTH, 8) && + verifier.EndTable(); + } + ModelFileT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -2962,6 +2938,7 @@ struct ModelFile FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct ModelFileBuilder { ++ typedef ModelFile Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_filename(flatbuffers::Offset filename) { +@@ -2980,7 +2957,6 @@ struct ModelFileBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- ModelFileBuilder &operator=(const ModelFileBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -3021,14 +2997,13 @@ flatbuffers::Offset CreateModelFile(flatbuffers::FlatBufferBuilder &_ + + struct BenchmarkStoragePathsT : public flatbuffers::NativeTable { + typedef BenchmarkStoragePaths TableType; +- std::string storage_file_path; +- std::string data_directory_path; +- BenchmarkStoragePathsT() { +- } ++ std::string storage_file_path{}; ++ std::string data_directory_path{}; + }; + + struct BenchmarkStoragePaths FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef BenchmarkStoragePathsT NativeTableType; ++ typedef BenchmarkStoragePathsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_STORAGE_FILE_PATH = 4, + VT_DATA_DIRECTORY_PATH = 6 +@@ -3053,6 +3028,7 @@ struct BenchmarkStoragePaths FLATBUFFERS_FINAL_CLASS : private flatbuffers::Tabl + }; + + struct BenchmarkStoragePathsBuilder { ++ typedef BenchmarkStoragePaths Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_storage_file_path(flatbuffers::Offset storage_file_path) { +@@ -3065,7 +3041,6 @@ struct BenchmarkStoragePathsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- BenchmarkStoragePathsBuilder &operator=(const BenchmarkStoragePathsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -3099,15 +3074,18 @@ flatbuffers::Offset CreateBenchmarkStoragePaths(flatbuffe + + struct MinibenchmarkSettingsT : public flatbuffers::NativeTable { + typedef MinibenchmarkSettings TableType; +- std::vector> settings_to_test; +- std::unique_ptr model_file; +- std::unique_ptr storage_paths; +- MinibenchmarkSettingsT() { +- } ++ std::vector> settings_to_test{}; ++ std::unique_ptr model_file{}; ++ std::unique_ptr storage_paths{}; ++ MinibenchmarkSettingsT() = default; ++ MinibenchmarkSettingsT(const MinibenchmarkSettingsT &o); ++ MinibenchmarkSettingsT(MinibenchmarkSettingsT&&) FLATBUFFERS_NOEXCEPT = default; ++ MinibenchmarkSettingsT &operator=(MinibenchmarkSettingsT o) FLATBUFFERS_NOEXCEPT; + }; + + struct MinibenchmarkSettings FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef MinibenchmarkSettingsT NativeTableType; ++ typedef MinibenchmarkSettingsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_SETTINGS_TO_TEST = 4, + VT_MODEL_FILE = 6, +@@ -3139,6 +3117,7 @@ struct MinibenchmarkSettings FLATBUFFERS_FINAL_CLASS : private flatbuffers::Tabl + }; + + struct MinibenchmarkSettingsBuilder { ++ typedef MinibenchmarkSettings Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_settings_to_test(flatbuffers::Offset>> settings_to_test) { +@@ -3154,7 +3133,6 @@ struct MinibenchmarkSettingsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- MinibenchmarkSettingsBuilder &operator=(const MinibenchmarkSettingsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -3204,20 +3182,37 @@ inline bool operator!=(const ComputeSettingsT &lhs, const ComputeSettingsT &rhs) + } + + ++inline ComputeSettingsT::ComputeSettingsT(const ComputeSettingsT &o) ++ : preference(o.preference), ++ tflite_settings((o.tflite_settings) ? new tflite::TFLiteSettingsT(*o.tflite_settings) : nullptr), ++ model_namespace_for_statistics(o.model_namespace_for_statistics), ++ model_identifier_for_statistics(o.model_identifier_for_statistics), ++ settings_to_test_locally((o.settings_to_test_locally) ? new tflite::MinibenchmarkSettingsT(*o.settings_to_test_locally) : nullptr) { ++} ++ ++inline ComputeSettingsT &ComputeSettingsT::operator=(ComputeSettingsT o) FLATBUFFERS_NOEXCEPT { ++ std::swap(preference, o.preference); ++ std::swap(tflite_settings, o.tflite_settings); ++ std::swap(model_namespace_for_statistics, o.model_namespace_for_statistics); ++ std::swap(model_identifier_for_statistics, o.model_identifier_for_statistics); ++ std::swap(settings_to_test_locally, o.settings_to_test_locally); ++ return *this; ++} ++ + inline ComputeSettingsT *ComputeSettings::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new ComputeSettingsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new ComputeSettingsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void ComputeSettings::UnPackTo(ComputeSettingsT *_o, const flatbuffers::resolver_function_t *_resolver) const { + (void)_o; + (void)_resolver; + { auto _e = preference(); _o->preference = _e; } +- { auto _e = tflite_settings(); if (_e) _o->tflite_settings = std::unique_ptr(_e->UnPack(_resolver)); } ++ { auto _e = tflite_settings(); if (_e) { if(_o->tflite_settings) { _e->UnPackTo(_o->tflite_settings.get(), _resolver); } else { _o->tflite_settings = std::unique_ptr(_e->UnPack(_resolver)); } } } + { auto _e = model_namespace_for_statistics(); if (_e) _o->model_namespace_for_statistics = _e->str(); } + { auto _e = model_identifier_for_statistics(); if (_e) _o->model_identifier_for_statistics = _e->str(); } +- { auto _e = settings_to_test_locally(); if (_e) _o->settings_to_test_locally = std::unique_ptr(_e->UnPack(_resolver)); } ++ { auto _e = settings_to_test_locally(); if (_e) { if(_o->settings_to_test_locally) { _e->UnPackTo(_o->settings_to_test_locally.get(), _resolver); } else { _o->settings_to_test_locally = std::unique_ptr(_e->UnPack(_resolver)); } } } + } + + inline flatbuffers::Offset ComputeSettings::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ComputeSettingsT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +@@ -3264,10 +3259,41 @@ inline bool operator!=(const NNAPISettingsT &lhs, const NNAPISettingsT &rhs) { + } + + ++inline NNAPISettingsT::NNAPISettingsT(const NNAPISettingsT &o) ++ : accelerator_name(o.accelerator_name), ++ cache_directory(o.cache_directory), ++ model_token(o.model_token), ++ execution_preference(o.execution_preference), ++ no_of_nnapi_instances_to_cache(o.no_of_nnapi_instances_to_cache), ++ fallback_settings((o.fallback_settings) ? new tflite::FallbackSettingsT(*o.fallback_settings) : nullptr), ++ allow_nnapi_cpu_on_android_10_plus(o.allow_nnapi_cpu_on_android_10_plus), ++ execution_priority(o.execution_priority), ++ allow_dynamic_dimensions(o.allow_dynamic_dimensions), ++ allow_fp16_precision_for_fp32(o.allow_fp16_precision_for_fp32), ++ use_burst_computation(o.use_burst_computation), ++ support_library_handle(o.support_library_handle) { ++} ++ ++inline NNAPISettingsT &NNAPISettingsT::operator=(NNAPISettingsT o) FLATBUFFERS_NOEXCEPT { ++ std::swap(accelerator_name, o.accelerator_name); ++ std::swap(cache_directory, o.cache_directory); ++ std::swap(model_token, o.model_token); ++ std::swap(execution_preference, o.execution_preference); ++ std::swap(no_of_nnapi_instances_to_cache, o.no_of_nnapi_instances_to_cache); ++ std::swap(fallback_settings, o.fallback_settings); ++ std::swap(allow_nnapi_cpu_on_android_10_plus, o.allow_nnapi_cpu_on_android_10_plus); ++ std::swap(execution_priority, o.execution_priority); ++ std::swap(allow_dynamic_dimensions, o.allow_dynamic_dimensions); ++ std::swap(allow_fp16_precision_for_fp32, o.allow_fp16_precision_for_fp32); ++ std::swap(use_burst_computation, o.use_burst_computation); ++ std::swap(support_library_handle, o.support_library_handle); ++ return *this; ++} ++ + inline NNAPISettingsT *NNAPISettings::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new NNAPISettingsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new NNAPISettingsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void NNAPISettings::UnPackTo(NNAPISettingsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -3278,7 +3304,7 @@ inline void NNAPISettings::UnPackTo(NNAPISettingsT *_o, const flatbuffers::resol + { auto _e = model_token(); if (_e) _o->model_token = _e->str(); } + { auto _e = execution_preference(); _o->execution_preference = _e; } + { auto _e = no_of_nnapi_instances_to_cache(); _o->no_of_nnapi_instances_to_cache = _e; } +- { auto _e = fallback_settings(); if (_e) _o->fallback_settings = std::unique_ptr(_e->UnPack(_resolver)); } ++ { auto _e = fallback_settings(); if (_e) { if(_o->fallback_settings) { _e->UnPackTo(_o->fallback_settings.get(), _resolver); } else { _o->fallback_settings = std::unique_ptr(_e->UnPack(_resolver)); } } } + { auto _e = allow_nnapi_cpu_on_android_10_plus(); _o->allow_nnapi_cpu_on_android_10_plus = _e; } + { auto _e = execution_priority(); _o->execution_priority = _e; } + { auto _e = allow_dynamic_dimensions(); _o->allow_dynamic_dimensions = _e; } +@@ -3343,9 +3369,9 @@ inline bool operator!=(const GPUSettingsT &lhs, const GPUSettingsT &rhs) { + + + inline GPUSettingsT *GPUSettings::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new GPUSettingsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new GPUSettingsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void GPUSettings::UnPackTo(GPUSettingsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -3407,9 +3433,9 @@ inline bool operator!=(const HexagonSettingsT &lhs, const HexagonSettingsT &rhs) + + + inline HexagonSettingsT *HexagonSettings::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new HexagonSettingsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new HexagonSettingsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void HexagonSettings::UnPackTo(HexagonSettingsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -3453,9 +3479,9 @@ inline bool operator!=(const XNNPackSettingsT &lhs, const XNNPackSettingsT &rhs) + + + inline XNNPackSettingsT *XNNPackSettings::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new XNNPackSettingsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new XNNPackSettingsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void XNNPackSettings::UnPackTo(XNNPackSettingsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -3493,9 +3519,9 @@ inline bool operator!=(const CoreMLSettingsT &lhs, const CoreMLSettingsT &rhs) { + + + inline CoreMLSettingsT *CoreMLSettings::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new CoreMLSettingsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new CoreMLSettingsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void CoreMLSettings::UnPackTo(CoreMLSettingsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -3542,9 +3568,9 @@ inline bool operator!=(const EdgeTpuDeviceSpecT &lhs, const EdgeTpuDeviceSpecT & + + + inline EdgeTpuDeviceSpecT *EdgeTpuDeviceSpec::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new EdgeTpuDeviceSpecT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new EdgeTpuDeviceSpecT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void EdgeTpuDeviceSpec::UnPackTo(EdgeTpuDeviceSpecT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -3589,9 +3615,9 @@ inline bool operator!=(const EdgeTpuInactivePowerConfigT &lhs, const EdgeTpuInac + + + inline EdgeTpuInactivePowerConfigT *EdgeTpuInactivePowerConfig::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new EdgeTpuInactivePowerConfigT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new EdgeTpuInactivePowerConfigT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void EdgeTpuInactivePowerConfig::UnPackTo(EdgeTpuInactivePowerConfigT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -3634,19 +3660,41 @@ inline bool operator!=(const EdgeTpuSettingsT &lhs, const EdgeTpuSettingsT &rhs) + } + + ++inline EdgeTpuSettingsT::EdgeTpuSettingsT(const EdgeTpuSettingsT &o) ++ : inference_power_state(o.inference_power_state), ++ inference_priority(o.inference_priority), ++ edgetpu_device_spec((o.edgetpu_device_spec) ? new tflite::EdgeTpuDeviceSpecT(*o.edgetpu_device_spec) : nullptr), ++ model_token(o.model_token), ++ float_truncation_type(o.float_truncation_type), ++ qos_class(o.qos_class) { ++ inactive_power_configs.reserve(o.inactive_power_configs.size()); ++ for (const auto &v : o.inactive_power_configs) { inactive_power_configs.emplace_back((v) ? new tflite::EdgeTpuInactivePowerConfigT(*v) : nullptr); } ++} ++ ++inline EdgeTpuSettingsT &EdgeTpuSettingsT::operator=(EdgeTpuSettingsT o) FLATBUFFERS_NOEXCEPT { ++ std::swap(inference_power_state, o.inference_power_state); ++ std::swap(inactive_power_configs, o.inactive_power_configs); ++ std::swap(inference_priority, o.inference_priority); ++ std::swap(edgetpu_device_spec, o.edgetpu_device_spec); ++ std::swap(model_token, o.model_token); ++ std::swap(float_truncation_type, o.float_truncation_type); ++ std::swap(qos_class, o.qos_class); ++ return *this; ++} ++ + inline EdgeTpuSettingsT *EdgeTpuSettings::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new EdgeTpuSettingsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new EdgeTpuSettingsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void EdgeTpuSettings::UnPackTo(EdgeTpuSettingsT *_o, const flatbuffers::resolver_function_t *_resolver) const { + (void)_o; + (void)_resolver; + { auto _e = inference_power_state(); _o->inference_power_state = _e; } +- { auto _e = inactive_power_configs(); if (_e) { _o->inactive_power_configs.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->inactive_power_configs[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); } } } ++ { auto _e = inactive_power_configs(); if (_e) { _o->inactive_power_configs.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->inactive_power_configs[_i]) { _e->Get(_i)->UnPackTo(_o->inactive_power_configs[_i].get(), _resolver); } else { _o->inactive_power_configs[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } } + { auto _e = inference_priority(); _o->inference_priority = _e; } +- { auto _e = edgetpu_device_spec(); if (_e) _o->edgetpu_device_spec = std::unique_ptr(_e->UnPack(_resolver)); } ++ { auto _e = edgetpu_device_spec(); if (_e) { if(_o->edgetpu_device_spec) { _e->UnPackTo(_o->edgetpu_device_spec.get(), _resolver); } else { _o->edgetpu_device_spec = std::unique_ptr(_e->UnPack(_resolver)); } } } + { auto _e = model_token(); if (_e) _o->model_token = _e->str(); } + { auto _e = float_truncation_type(); _o->float_truncation_type = _e; } + { auto _e = qos_class(); _o->qos_class = _e; } +@@ -3693,9 +3741,9 @@ inline bool operator!=(const CoralSettingsT &lhs, const CoralSettingsT &rhs) { + + + inline CoralSettingsT *CoralSettings::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new CoralSettingsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new CoralSettingsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void CoralSettings::UnPackTo(CoralSettingsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -3739,9 +3787,9 @@ inline bool operator!=(const CPUSettingsT &lhs, const CPUSettingsT &rhs) { + + + inline CPUSettingsT *CPUSettings::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new CPUSettingsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new CPUSettingsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void CPUSettings::UnPackTo(CPUSettingsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -3785,26 +3833,55 @@ inline bool operator!=(const TFLiteSettingsT &lhs, const TFLiteSettingsT &rhs) { + } + + ++inline TFLiteSettingsT::TFLiteSettingsT(const TFLiteSettingsT &o) ++ : delegate(o.delegate), ++ nnapi_settings((o.nnapi_settings) ? new tflite::NNAPISettingsT(*o.nnapi_settings) : nullptr), ++ gpu_settings((o.gpu_settings) ? new tflite::GPUSettingsT(*o.gpu_settings) : nullptr), ++ hexagon_settings((o.hexagon_settings) ? new tflite::HexagonSettingsT(*o.hexagon_settings) : nullptr), ++ xnnpack_settings((o.xnnpack_settings) ? new tflite::XNNPackSettingsT(*o.xnnpack_settings) : nullptr), ++ coreml_settings((o.coreml_settings) ? new tflite::CoreMLSettingsT(*o.coreml_settings) : nullptr), ++ cpu_settings((o.cpu_settings) ? new tflite::CPUSettingsT(*o.cpu_settings) : nullptr), ++ max_delegated_partitions(o.max_delegated_partitions), ++ edgetpu_settings((o.edgetpu_settings) ? new tflite::EdgeTpuSettingsT(*o.edgetpu_settings) : nullptr), ++ coral_settings((o.coral_settings) ? new tflite::CoralSettingsT(*o.coral_settings) : nullptr), ++ fallback_settings((o.fallback_settings) ? new tflite::FallbackSettingsT(*o.fallback_settings) : nullptr) { ++} ++ ++inline TFLiteSettingsT &TFLiteSettingsT::operator=(TFLiteSettingsT o) FLATBUFFERS_NOEXCEPT { ++ std::swap(delegate, o.delegate); ++ std::swap(nnapi_settings, o.nnapi_settings); ++ std::swap(gpu_settings, o.gpu_settings); ++ std::swap(hexagon_settings, o.hexagon_settings); ++ std::swap(xnnpack_settings, o.xnnpack_settings); ++ std::swap(coreml_settings, o.coreml_settings); ++ std::swap(cpu_settings, o.cpu_settings); ++ std::swap(max_delegated_partitions, o.max_delegated_partitions); ++ std::swap(edgetpu_settings, o.edgetpu_settings); ++ std::swap(coral_settings, o.coral_settings); ++ std::swap(fallback_settings, o.fallback_settings); ++ return *this; ++} ++ + inline TFLiteSettingsT *TFLiteSettings::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new TFLiteSettingsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new TFLiteSettingsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void TFLiteSettings::UnPackTo(TFLiteSettingsT *_o, const flatbuffers::resolver_function_t *_resolver) const { + (void)_o; + (void)_resolver; + { auto _e = delegate(); _o->delegate = _e; } +- { auto _e = nnapi_settings(); if (_e) _o->nnapi_settings = std::unique_ptr(_e->UnPack(_resolver)); } +- { auto _e = gpu_settings(); if (_e) _o->gpu_settings = std::unique_ptr(_e->UnPack(_resolver)); } +- { auto _e = hexagon_settings(); if (_e) _o->hexagon_settings = std::unique_ptr(_e->UnPack(_resolver)); } +- { auto _e = xnnpack_settings(); if (_e) _o->xnnpack_settings = std::unique_ptr(_e->UnPack(_resolver)); } +- { auto _e = coreml_settings(); if (_e) _o->coreml_settings = std::unique_ptr(_e->UnPack(_resolver)); } +- { auto _e = cpu_settings(); if (_e) _o->cpu_settings = std::unique_ptr(_e->UnPack(_resolver)); } ++ { auto _e = nnapi_settings(); if (_e) { if(_o->nnapi_settings) { _e->UnPackTo(_o->nnapi_settings.get(), _resolver); } else { _o->nnapi_settings = std::unique_ptr(_e->UnPack(_resolver)); } } } ++ { auto _e = gpu_settings(); if (_e) { if(_o->gpu_settings) { _e->UnPackTo(_o->gpu_settings.get(), _resolver); } else { _o->gpu_settings = std::unique_ptr(_e->UnPack(_resolver)); } } } ++ { auto _e = hexagon_settings(); if (_e) { if(_o->hexagon_settings) { _e->UnPackTo(_o->hexagon_settings.get(), _resolver); } else { _o->hexagon_settings = std::unique_ptr(_e->UnPack(_resolver)); } } } ++ { auto _e = xnnpack_settings(); if (_e) { if(_o->xnnpack_settings) { _e->UnPackTo(_o->xnnpack_settings.get(), _resolver); } else { _o->xnnpack_settings = std::unique_ptr(_e->UnPack(_resolver)); } } } ++ { auto _e = coreml_settings(); if (_e) { if(_o->coreml_settings) { _e->UnPackTo(_o->coreml_settings.get(), _resolver); } else { _o->coreml_settings = std::unique_ptr(_e->UnPack(_resolver)); } } } ++ { auto _e = cpu_settings(); if (_e) { if(_o->cpu_settings) { _e->UnPackTo(_o->cpu_settings.get(), _resolver); } else { _o->cpu_settings = std::unique_ptr(_e->UnPack(_resolver)); } } } + { auto _e = max_delegated_partitions(); _o->max_delegated_partitions = _e; } +- { auto _e = edgetpu_settings(); if (_e) _o->edgetpu_settings = std::unique_ptr(_e->UnPack(_resolver)); } +- { auto _e = coral_settings(); if (_e) _o->coral_settings = std::unique_ptr(_e->UnPack(_resolver)); } +- { auto _e = fallback_settings(); if (_e) _o->fallback_settings = std::unique_ptr(_e->UnPack(_resolver)); } ++ { auto _e = edgetpu_settings(); if (_e) { if(_o->edgetpu_settings) { _e->UnPackTo(_o->edgetpu_settings.get(), _resolver); } else { _o->edgetpu_settings = std::unique_ptr(_e->UnPack(_resolver)); } } } ++ { auto _e = coral_settings(); if (_e) { if(_o->coral_settings) { _e->UnPackTo(_o->coral_settings.get(), _resolver); } else { _o->coral_settings = std::unique_ptr(_e->UnPack(_resolver)); } } } ++ { auto _e = fallback_settings(); if (_e) { if(_o->fallback_settings) { _e->UnPackTo(_o->fallback_settings.get(), _resolver); } else { _o->fallback_settings = std::unique_ptr(_e->UnPack(_resolver)); } } } + } + + inline flatbuffers::Offset TFLiteSettings::Pack(flatbuffers::FlatBufferBuilder &_fbb, const TFLiteSettingsT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +@@ -3854,9 +3931,9 @@ inline bool operator!=(const FallbackSettingsT &lhs, const FallbackSettingsT &rh + + + inline FallbackSettingsT *FallbackSettings::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new FallbackSettingsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new FallbackSettingsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void FallbackSettings::UnPackTo(FallbackSettingsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -3895,9 +3972,9 @@ inline bool operator!=(const BenchmarkMetricT &lhs, const BenchmarkMetricT &rhs) + + + inline BenchmarkMetricT *BenchmarkMetric::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new BenchmarkMetricT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new BenchmarkMetricT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void BenchmarkMetric::UnPackTo(BenchmarkMetricT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -3938,10 +4015,28 @@ inline bool operator!=(const BenchmarkResultT &lhs, const BenchmarkResultT &rhs) + } + + ++inline BenchmarkResultT::BenchmarkResultT(const BenchmarkResultT &o) ++ : initialization_time_us(o.initialization_time_us), ++ inference_time_us(o.inference_time_us), ++ max_memory_kb(o.max_memory_kb), ++ ok(o.ok) { ++ metrics.reserve(o.metrics.size()); ++ for (const auto &v : o.metrics) { metrics.emplace_back((v) ? new tflite::BenchmarkMetricT(*v) : nullptr); } ++} ++ ++inline BenchmarkResultT &BenchmarkResultT::operator=(BenchmarkResultT o) FLATBUFFERS_NOEXCEPT { ++ std::swap(initialization_time_us, o.initialization_time_us); ++ std::swap(inference_time_us, o.inference_time_us); ++ std::swap(max_memory_kb, o.max_memory_kb); ++ std::swap(ok, o.ok); ++ std::swap(metrics, o.metrics); ++ return *this; ++} ++ + inline BenchmarkResultT *BenchmarkResult::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new BenchmarkResultT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new BenchmarkResultT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void BenchmarkResult::UnPackTo(BenchmarkResultT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -3951,7 +4046,7 @@ inline void BenchmarkResult::UnPackTo(BenchmarkResultT *_o, const flatbuffers::r + { auto _e = inference_time_us(); if (_e) { _o->inference_time_us.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->inference_time_us[_i] = _e->Get(_i); } } } + { auto _e = max_memory_kb(); _o->max_memory_kb = _e; } + { auto _e = ok(); _o->ok = _e; } +- { auto _e = metrics(); if (_e) { _o->metrics.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->metrics[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); } } } ++ { auto _e = metrics(); if (_e) { _o->metrics.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->metrics[_i]) { _e->Get(_i)->UnPackTo(_o->metrics[_i].get(), _resolver); } else { _o->metrics[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } } + } + + inline flatbuffers::Offset BenchmarkResult::Pack(flatbuffers::FlatBufferBuilder &_fbb, const BenchmarkResultT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +@@ -3990,9 +4085,9 @@ inline bool operator!=(const ErrorCodeT &lhs, const ErrorCodeT &rhs) { + + + inline ErrorCodeT *ErrorCode::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new ErrorCodeT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new ErrorCodeT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void ErrorCode::UnPackTo(ErrorCodeT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -4036,10 +4131,28 @@ inline bool operator!=(const BenchmarkErrorT &lhs, const BenchmarkErrorT &rhs) { + } + + ++inline BenchmarkErrorT::BenchmarkErrorT(const BenchmarkErrorT &o) ++ : stage(o.stage), ++ exit_code(o.exit_code), ++ signal(o.signal), ++ mini_benchmark_error_code(o.mini_benchmark_error_code) { ++ error_code.reserve(o.error_code.size()); ++ for (const auto &v : o.error_code) { error_code.emplace_back((v) ? new tflite::ErrorCodeT(*v) : nullptr); } ++} ++ ++inline BenchmarkErrorT &BenchmarkErrorT::operator=(BenchmarkErrorT o) FLATBUFFERS_NOEXCEPT { ++ std::swap(stage, o.stage); ++ std::swap(exit_code, o.exit_code); ++ std::swap(signal, o.signal); ++ std::swap(error_code, o.error_code); ++ std::swap(mini_benchmark_error_code, o.mini_benchmark_error_code); ++ return *this; ++} ++ + inline BenchmarkErrorT *BenchmarkError::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new BenchmarkErrorT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new BenchmarkErrorT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void BenchmarkError::UnPackTo(BenchmarkErrorT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -4048,7 +4161,7 @@ inline void BenchmarkError::UnPackTo(BenchmarkErrorT *_o, const flatbuffers::res + { auto _e = stage(); _o->stage = _e; } + { auto _e = exit_code(); _o->exit_code = _e; } + { auto _e = signal(); _o->signal = _e; } +- { auto _e = error_code(); if (_e) { _o->error_code.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->error_code[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); } } } ++ { auto _e = error_code(); if (_e) { _o->error_code.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->error_code[_i]) { _e->Get(_i)->UnPackTo(_o->error_code[_i].get(), _resolver); } else { _o->error_code[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } } + { auto _e = mini_benchmark_error_code(); _o->mini_benchmark_error_code = _e; } + } + +@@ -4090,19 +4203,38 @@ inline bool operator!=(const BenchmarkEventT &lhs, const BenchmarkEventT &rhs) { + } + + ++inline BenchmarkEventT::BenchmarkEventT(const BenchmarkEventT &o) ++ : tflite_settings((o.tflite_settings) ? new tflite::TFLiteSettingsT(*o.tflite_settings) : nullptr), ++ event_type(o.event_type), ++ result((o.result) ? new tflite::BenchmarkResultT(*o.result) : nullptr), ++ error((o.error) ? new tflite::BenchmarkErrorT(*o.error) : nullptr), ++ boottime_us(o.boottime_us), ++ wallclock_us(o.wallclock_us) { ++} ++ ++inline BenchmarkEventT &BenchmarkEventT::operator=(BenchmarkEventT o) FLATBUFFERS_NOEXCEPT { ++ std::swap(tflite_settings, o.tflite_settings); ++ std::swap(event_type, o.event_type); ++ std::swap(result, o.result); ++ std::swap(error, o.error); ++ std::swap(boottime_us, o.boottime_us); ++ std::swap(wallclock_us, o.wallclock_us); ++ return *this; ++} ++ + inline BenchmarkEventT *BenchmarkEvent::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new BenchmarkEventT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new BenchmarkEventT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void BenchmarkEvent::UnPackTo(BenchmarkEventT *_o, const flatbuffers::resolver_function_t *_resolver) const { + (void)_o; + (void)_resolver; +- { auto _e = tflite_settings(); if (_e) _o->tflite_settings = std::unique_ptr(_e->UnPack(_resolver)); } ++ { auto _e = tflite_settings(); if (_e) { if(_o->tflite_settings) { _e->UnPackTo(_o->tflite_settings.get(), _resolver); } else { _o->tflite_settings = std::unique_ptr(_e->UnPack(_resolver)); } } } + { auto _e = event_type(); _o->event_type = _e; } +- { auto _e = result(); if (_e) _o->result = std::unique_ptr(_e->UnPack(_resolver)); } +- { auto _e = error(); if (_e) _o->error = std::unique_ptr(_e->UnPack(_resolver)); } ++ { auto _e = result(); if (_e) { if(_o->result) { _e->UnPackTo(_o->result.get(), _resolver); } else { _o->result = std::unique_ptr(_e->UnPack(_resolver)); } } } ++ { auto _e = error(); if (_e) { if(_o->error) { _e->UnPackTo(_o->error.get(), _resolver); } else { _o->error = std::unique_ptr(_e->UnPack(_resolver)); } } } + { auto _e = boottime_us(); _o->boottime_us = _e; } + { auto _e = wallclock_us(); _o->wallclock_us = _e; } + } +@@ -4144,17 +4276,30 @@ inline bool operator!=(const BestAccelerationDecisionT &lhs, const BestAccelerat + } + + ++inline BestAccelerationDecisionT::BestAccelerationDecisionT(const BestAccelerationDecisionT &o) ++ : number_of_source_events(o.number_of_source_events), ++ min_latency_event((o.min_latency_event) ? new tflite::BenchmarkEventT(*o.min_latency_event) : nullptr), ++ min_inference_time_us(o.min_inference_time_us) { ++} ++ ++inline BestAccelerationDecisionT &BestAccelerationDecisionT::operator=(BestAccelerationDecisionT o) FLATBUFFERS_NOEXCEPT { ++ std::swap(number_of_source_events, o.number_of_source_events); ++ std::swap(min_latency_event, o.min_latency_event); ++ std::swap(min_inference_time_us, o.min_inference_time_us); ++ return *this; ++} ++ + inline BestAccelerationDecisionT *BestAccelerationDecision::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new BestAccelerationDecisionT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new BestAccelerationDecisionT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void BestAccelerationDecision::UnPackTo(BestAccelerationDecisionT *_o, const flatbuffers::resolver_function_t *_resolver) const { + (void)_o; + (void)_resolver; + { auto _e = number_of_source_events(); _o->number_of_source_events = _e; } +- { auto _e = min_latency_event(); if (_e) _o->min_latency_event = std::unique_ptr(_e->UnPack(_resolver)); } ++ { auto _e = min_latency_event(); if (_e) { if(_o->min_latency_event) { _e->UnPackTo(_o->min_latency_event.get(), _resolver); } else { _o->min_latency_event = std::unique_ptr(_e->UnPack(_resolver)); } } } + { auto _e = min_inference_time_us(); _o->min_inference_time_us = _e; } + } + +@@ -4188,9 +4333,9 @@ inline bool operator!=(const BenchmarkInitializationFailureT &lhs, const Benchma + + + inline BenchmarkInitializationFailureT *BenchmarkInitializationFailure::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new BenchmarkInitializationFailureT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new BenchmarkInitializationFailureT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void BenchmarkInitializationFailure::UnPackTo(BenchmarkInitializationFailureT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -4227,19 +4372,34 @@ inline bool operator!=(const MiniBenchmarkEventT &lhs, const MiniBenchmarkEventT + } + + ++inline MiniBenchmarkEventT::MiniBenchmarkEventT(const MiniBenchmarkEventT &o) ++ : is_log_flushing_event(o.is_log_flushing_event), ++ best_acceleration_decision((o.best_acceleration_decision) ? new tflite::BestAccelerationDecisionT(*o.best_acceleration_decision) : nullptr), ++ initialization_failure((o.initialization_failure) ? new tflite::BenchmarkInitializationFailureT(*o.initialization_failure) : nullptr), ++ benchmark_event((o.benchmark_event) ? new tflite::BenchmarkEventT(*o.benchmark_event) : nullptr) { ++} ++ ++inline MiniBenchmarkEventT &MiniBenchmarkEventT::operator=(MiniBenchmarkEventT o) FLATBUFFERS_NOEXCEPT { ++ std::swap(is_log_flushing_event, o.is_log_flushing_event); ++ std::swap(best_acceleration_decision, o.best_acceleration_decision); ++ std::swap(initialization_failure, o.initialization_failure); ++ std::swap(benchmark_event, o.benchmark_event); ++ return *this; ++} ++ + inline MiniBenchmarkEventT *MiniBenchmarkEvent::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new MiniBenchmarkEventT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new MiniBenchmarkEventT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void MiniBenchmarkEvent::UnPackTo(MiniBenchmarkEventT *_o, const flatbuffers::resolver_function_t *_resolver) const { + (void)_o; + (void)_resolver; + { auto _e = is_log_flushing_event(); _o->is_log_flushing_event = _e; } +- { auto _e = best_acceleration_decision(); if (_e) _o->best_acceleration_decision = std::unique_ptr(_e->UnPack(_resolver)); } +- { auto _e = initialization_failure(); if (_e) _o->initialization_failure = std::unique_ptr(_e->UnPack(_resolver)); } +- { auto _e = benchmark_event(); if (_e) _o->benchmark_event = std::unique_ptr(_e->UnPack(_resolver)); } ++ { auto _e = best_acceleration_decision(); if (_e) { if(_o->best_acceleration_decision) { _e->UnPackTo(_o->best_acceleration_decision.get(), _resolver); } else { _o->best_acceleration_decision = std::unique_ptr(_e->UnPack(_resolver)); } } } ++ { auto _e = initialization_failure(); if (_e) { if(_o->initialization_failure) { _e->UnPackTo(_o->initialization_failure.get(), _resolver); } else { _o->initialization_failure = std::unique_ptr(_e->UnPack(_resolver)); } } } ++ { auto _e = benchmark_event(); if (_e) { if(_o->benchmark_event) { _e->UnPackTo(_o->benchmark_event.get(), _resolver); } else { _o->benchmark_event = std::unique_ptr(_e->UnPack(_resolver)); } } } + } + + inline flatbuffers::Offset MiniBenchmarkEvent::Pack(flatbuffers::FlatBufferBuilder &_fbb, const MiniBenchmarkEventT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +@@ -4277,9 +4437,9 @@ inline bool operator!=(const ModelFileT &lhs, const ModelFileT &rhs) { + + + inline ModelFileT *ModelFile::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new ModelFileT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new ModelFileT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void ModelFile::UnPackTo(ModelFileT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -4324,9 +4484,9 @@ inline bool operator!=(const BenchmarkStoragePathsT &lhs, const BenchmarkStorage + + + inline BenchmarkStoragePathsT *BenchmarkStoragePaths::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new BenchmarkStoragePathsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new BenchmarkStoragePathsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void BenchmarkStoragePaths::UnPackTo(BenchmarkStoragePathsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -4365,18 +4525,32 @@ inline bool operator!=(const MinibenchmarkSettingsT &lhs, const MinibenchmarkSet + } + + ++inline MinibenchmarkSettingsT::MinibenchmarkSettingsT(const MinibenchmarkSettingsT &o) ++ : model_file((o.model_file) ? new tflite::ModelFileT(*o.model_file) : nullptr), ++ storage_paths((o.storage_paths) ? new tflite::BenchmarkStoragePathsT(*o.storage_paths) : nullptr) { ++ settings_to_test.reserve(o.settings_to_test.size()); ++ for (const auto &v : o.settings_to_test) { settings_to_test.emplace_back((v) ? new tflite::TFLiteSettingsT(*v) : nullptr); } ++} ++ ++inline MinibenchmarkSettingsT &MinibenchmarkSettingsT::operator=(MinibenchmarkSettingsT o) FLATBUFFERS_NOEXCEPT { ++ std::swap(settings_to_test, o.settings_to_test); ++ std::swap(model_file, o.model_file); ++ std::swap(storage_paths, o.storage_paths); ++ return *this; ++} ++ + inline MinibenchmarkSettingsT *MinibenchmarkSettings::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new MinibenchmarkSettingsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new MinibenchmarkSettingsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void MinibenchmarkSettings::UnPackTo(MinibenchmarkSettingsT *_o, const flatbuffers::resolver_function_t *_resolver) const { + (void)_o; + (void)_resolver; +- { auto _e = settings_to_test(); if (_e) { _o->settings_to_test.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->settings_to_test[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); } } } +- { auto _e = model_file(); if (_e) _o->model_file = std::unique_ptr(_e->UnPack(_resolver)); } +- { auto _e = storage_paths(); if (_e) _o->storage_paths = std::unique_ptr(_e->UnPack(_resolver)); } ++ { auto _e = settings_to_test(); if (_e) { _o->settings_to_test.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->settings_to_test[_i]) { _e->Get(_i)->UnPackTo(_o->settings_to_test[_i].get(), _resolver); } else { _o->settings_to_test[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } } ++ { auto _e = model_file(); if (_e) { if(_o->model_file) { _e->UnPackTo(_o->model_file.get(), _resolver); } else { _o->model_file = std::unique_ptr(_e->UnPack(_resolver)); } } } ++ { auto _e = storage_paths(); if (_e) { if(_o->storage_paths) { _e->UnPackTo(_o->storage_paths.get(), _resolver); } else { _o->storage_paths = std::unique_ptr(_e->UnPack(_resolver)); } } } + } + + inline flatbuffers::Offset MinibenchmarkSettings::Pack(flatbuffers::FlatBufferBuilder &_fbb, const MinibenchmarkSettingsT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +@@ -4399,4 +4573,4 @@ inline flatbuffers::Offset CreateMinibenchmarkSettings(fl + + } // namespace tflite + +-#endif // FLATBUFFERS_GENERATED_CONFIGURATIONFORGENERATION_TFLITE_H_ ++#endif // FLATBUFFERS_GENERATED_CONFIGURATION_TFLITE_H_ +diff --git a/tensorflow/lite/schema/schema_generated.h b/tensorflow/lite/schema/schema_generated.h +index 0de55f064ef..886eddaeaac 100755 +--- a/tensorflow/lite/schema/schema_generated.h ++++ b/tensorflow/lite/schema/schema_generated.h +@@ -4023,10 +4023,10 @@ struct QuantizationParameters FLATBUFFERS_FINAL_CLASS : private flatbuffers::Tab + verifier.VerifyVector(scale()) && + VerifyOffset(verifier, VT_ZERO_POINT) && + verifier.VerifyVector(zero_point()) && +- VerifyField(verifier, VT_DETAILS_TYPE) && ++ VerifyField(verifier, VT_DETAILS_TYPE, 1) && + VerifyOffset(verifier, VT_DETAILS) && + VerifyQuantizationDetails(verifier, details(), details_type()) && +- VerifyField(verifier, VT_QUANTIZED_DIMENSION) && ++ VerifyField(verifier, VT_QUANTIZED_DIMENSION, 4) && + verifier.EndTable(); + } + QuantizationParametersT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -4367,12 +4367,12 @@ struct DimensionMetadata FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_FORMAT) && +- VerifyField(verifier, VT_DENSE_SIZE) && +- VerifyField(verifier, VT_ARRAY_SEGMENTS_TYPE) && ++ VerifyField(verifier, VT_FORMAT, 1) && ++ VerifyField(verifier, VT_DENSE_SIZE, 4) && ++ VerifyField(verifier, VT_ARRAY_SEGMENTS_TYPE, 1) && + VerifyOffset(verifier, VT_ARRAY_SEGMENTS) && + VerifySparseIndexVector(verifier, array_segments(), array_segments_type()) && +- VerifyField(verifier, VT_ARRAY_INDICES_TYPE) && ++ VerifyField(verifier, VT_ARRAY_INDICES_TYPE, 1) && + VerifyOffset(verifier, VT_ARRAY_INDICES) && + VerifySparseIndexVector(verifier, array_indices(), array_indices_type()) && + verifier.EndTable(); +@@ -4464,6 +4464,10 @@ struct SparsityParametersT : public flatbuffers::NativeTable { + std::vector traversal_order{}; + std::vector block_map{}; + std::vector> dim_metadata{}; ++ SparsityParametersT() = default; ++ SparsityParametersT(const SparsityParametersT &o); ++ SparsityParametersT(SparsityParametersT&&) FLATBUFFERS_NOEXCEPT = default; ++ SparsityParametersT &operator=(SparsityParametersT o) FLATBUFFERS_NOEXCEPT; + }; + + struct SparsityParameters FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +@@ -4562,6 +4566,10 @@ struct TensorT : public flatbuffers::NativeTable { + bool is_variable = false; + std::unique_ptr sparsity{}; + std::vector shape_signature{}; ++ TensorT() = default; ++ TensorT(const TensorT &o); ++ TensorT(TensorT&&) FLATBUFFERS_NOEXCEPT = default; ++ TensorT &operator=(TensorT o) FLATBUFFERS_NOEXCEPT; + }; + + struct Tensor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +@@ -4605,13 +4613,13 @@ struct Tensor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + return VerifyTableStart(verifier) && + VerifyOffset(verifier, VT_SHAPE) && + verifier.VerifyVector(shape()) && +- VerifyField(verifier, VT_TYPE) && +- VerifyField(verifier, VT_BUFFER) && ++ VerifyField(verifier, VT_TYPE, 1) && ++ VerifyField(verifier, VT_BUFFER, 4) && + VerifyOffset(verifier, VT_NAME) && + verifier.VerifyString(name()) && + VerifyOffset(verifier, VT_QUANTIZATION) && + verifier.VerifyTable(quantization()) && +- VerifyField(verifier, VT_IS_VARIABLE) && ++ VerifyField(verifier, VT_IS_VARIABLE, 1) && + VerifyOffset(verifier, VT_SPARSITY) && + verifier.VerifyTable(sparsity()) && + VerifyOffset(verifier, VT_SHAPE_SIGNATURE) && +@@ -4752,12 +4760,12 @@ struct Conv2DOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_PADDING) && +- VerifyField(verifier, VT_STRIDE_W) && +- VerifyField(verifier, VT_STRIDE_H) && +- VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION) && +- VerifyField(verifier, VT_DILATION_W_FACTOR) && +- VerifyField(verifier, VT_DILATION_H_FACTOR) && ++ VerifyField(verifier, VT_PADDING, 1) && ++ VerifyField(verifier, VT_STRIDE_W, 4) && ++ VerifyField(verifier, VT_STRIDE_H, 4) && ++ VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION, 1) && ++ VerifyField(verifier, VT_DILATION_W_FACTOR, 4) && ++ VerifyField(verifier, VT_DILATION_H_FACTOR, 4) && + verifier.EndTable(); + } + Conv2DOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -4869,14 +4877,14 @@ struct Conv3DOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_PADDING) && +- VerifyField(verifier, VT_STRIDE_D) && +- VerifyField(verifier, VT_STRIDE_W) && +- VerifyField(verifier, VT_STRIDE_H) && +- VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION) && +- VerifyField(verifier, VT_DILATION_D_FACTOR) && +- VerifyField(verifier, VT_DILATION_W_FACTOR) && +- VerifyField(verifier, VT_DILATION_H_FACTOR) && ++ VerifyField(verifier, VT_PADDING, 1) && ++ VerifyField(verifier, VT_STRIDE_D, 4) && ++ VerifyField(verifier, VT_STRIDE_W, 4) && ++ VerifyField(verifier, VT_STRIDE_H, 4) && ++ VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION, 1) && ++ VerifyField(verifier, VT_DILATION_D_FACTOR, 4) && ++ VerifyField(verifier, VT_DILATION_W_FACTOR, 4) && ++ VerifyField(verifier, VT_DILATION_H_FACTOR, 4) && + verifier.EndTable(); + } + Conv3DOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -4988,12 +4996,12 @@ struct Pool2DOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_PADDING) && +- VerifyField(verifier, VT_STRIDE_W) && +- VerifyField(verifier, VT_STRIDE_H) && +- VerifyField(verifier, VT_FILTER_WIDTH) && +- VerifyField(verifier, VT_FILTER_HEIGHT) && +- VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION) && ++ VerifyField(verifier, VT_PADDING, 1) && ++ VerifyField(verifier, VT_STRIDE_W, 4) && ++ VerifyField(verifier, VT_STRIDE_H, 4) && ++ VerifyField(verifier, VT_FILTER_WIDTH, 4) && ++ VerifyField(verifier, VT_FILTER_HEIGHT, 4) && ++ VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION, 1) && + verifier.EndTable(); + } + Pool2DOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -5100,13 +5108,13 @@ struct DepthwiseConv2DOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Tab + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_PADDING) && +- VerifyField(verifier, VT_STRIDE_W) && +- VerifyField(verifier, VT_STRIDE_H) && +- VerifyField(verifier, VT_DEPTH_MULTIPLIER) && +- VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION) && +- VerifyField(verifier, VT_DILATION_W_FACTOR) && +- VerifyField(verifier, VT_DILATION_H_FACTOR) && ++ VerifyField(verifier, VT_PADDING, 1) && ++ VerifyField(verifier, VT_STRIDE_W, 4) && ++ VerifyField(verifier, VT_STRIDE_H, 4) && ++ VerifyField(verifier, VT_DEPTH_MULTIPLIER, 4) && ++ VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION, 1) && ++ VerifyField(verifier, VT_DILATION_W_FACTOR, 4) && ++ VerifyField(verifier, VT_DILATION_H_FACTOR, 4) && + verifier.EndTable(); + } + DepthwiseConv2DOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -5198,7 +5206,7 @@ struct ConcatEmbeddingsOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Ta + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_NUM_CHANNELS) && ++ VerifyField(verifier, VT_NUM_CHANNELS, 4) && + VerifyOffset(verifier, VT_NUM_COLUMNS_PER_CHANNEL) && + verifier.VerifyVector(num_columns_per_channel()) && + VerifyOffset(verifier, VT_EMBEDDING_DIM_PER_CHANNEL) && +@@ -5278,7 +5286,7 @@ struct LSHProjectionOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_TYPE) && ++ VerifyField(verifier, VT_TYPE, 1) && + verifier.EndTable(); + } + LSHProjectionOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -5340,9 +5348,9 @@ struct SVDFOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_RANK) && +- VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION) && +- VerifyField(verifier, VT_ASYMMETRIC_QUANTIZE_INPUTS) && ++ VerifyField(verifier, VT_RANK, 4) && ++ VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION, 1) && ++ VerifyField(verifier, VT_ASYMMETRIC_QUANTIZE_INPUTS, 1) && + verifier.EndTable(); + } + SVDFOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -5409,8 +5417,8 @@ struct RNNOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION) && +- VerifyField(verifier, VT_ASYMMETRIC_QUANTIZE_INPUTS) && ++ VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION, 1) && ++ VerifyField(verifier, VT_ASYMMETRIC_QUANTIZE_INPUTS, 1) && + verifier.EndTable(); + } + RNNOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -5477,9 +5485,9 @@ struct SequenceRNNOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_TIME_MAJOR) && +- VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION) && +- VerifyField(verifier, VT_ASYMMETRIC_QUANTIZE_INPUTS) && ++ VerifyField(verifier, VT_TIME_MAJOR, 1) && ++ VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION, 1) && ++ VerifyField(verifier, VT_ASYMMETRIC_QUANTIZE_INPUTS, 1) && + verifier.EndTable(); + } + SequenceRNNOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -5556,10 +5564,10 @@ struct BidirectionalSequenceRNNOptions FLATBUFFERS_FINAL_CLASS : private flatbuf + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_TIME_MAJOR) && +- VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION) && +- VerifyField(verifier, VT_MERGE_OUTPUTS) && +- VerifyField(verifier, VT_ASYMMETRIC_QUANTIZE_INPUTS) && ++ VerifyField(verifier, VT_TIME_MAJOR, 1) && ++ VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION, 1) && ++ VerifyField(verifier, VT_MERGE_OUTPUTS, 1) && ++ VerifyField(verifier, VT_ASYMMETRIC_QUANTIZE_INPUTS, 1) && + verifier.EndTable(); + } + BidirectionalSequenceRNNOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -5641,10 +5649,10 @@ struct FullyConnectedOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Tabl + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION) && +- VerifyField(verifier, VT_WEIGHTS_FORMAT) && +- VerifyField(verifier, VT_KEEP_NUM_DIMS) && +- VerifyField(verifier, VT_ASYMMETRIC_QUANTIZE_INPUTS) && ++ VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION, 1) && ++ VerifyField(verifier, VT_WEIGHTS_FORMAT, 1) && ++ VerifyField(verifier, VT_KEEP_NUM_DIMS, 1) && ++ VerifyField(verifier, VT_ASYMMETRIC_QUANTIZE_INPUTS, 1) && + verifier.EndTable(); + } + FullyConnectedOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -5711,7 +5719,7 @@ struct SoftmaxOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_BETA) && ++ VerifyField(verifier, VT_BETA, 4) && + verifier.EndTable(); + } + SoftmaxOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -5768,8 +5776,8 @@ struct ConcatenationOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_AXIS) && +- VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION) && ++ VerifyField(verifier, VT_AXIS, 4) && ++ VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION, 1) && + verifier.EndTable(); + } + ConcatenationOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -5831,8 +5839,8 @@ struct AddOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION) && +- VerifyField(verifier, VT_POT_SCALE_INT16) && ++ VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION, 1) && ++ VerifyField(verifier, VT_POT_SCALE_INT16, 1) && + verifier.EndTable(); + } + AddOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -5889,7 +5897,7 @@ struct MulOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION) && ++ VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION, 1) && + verifier.EndTable(); + } + MulOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -5941,7 +5949,7 @@ struct L2NormOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION) && ++ VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION, 1) && + verifier.EndTable(); + } + L2NormOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -6008,10 +6016,10 @@ struct LocalResponseNormalizationOptions FLATBUFFERS_FINAL_CLASS : private flatb + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_RADIUS) && +- VerifyField(verifier, VT_BIAS) && +- VerifyField(verifier, VT_ALPHA) && +- VerifyField(verifier, VT_BETA) && ++ VerifyField(verifier, VT_RADIUS, 4) && ++ VerifyField(verifier, VT_BIAS, 4) && ++ VerifyField(verifier, VT_ALPHA, 4) && ++ VerifyField(verifier, VT_BETA, 4) && + verifier.EndTable(); + } + LocalResponseNormalizationOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -6098,11 +6106,11 @@ struct LSTMOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION) && +- VerifyField(verifier, VT_CELL_CLIP) && +- VerifyField(verifier, VT_PROJ_CLIP) && +- VerifyField(verifier, VT_KERNEL_TYPE) && +- VerifyField(verifier, VT_ASYMMETRIC_QUANTIZE_INPUTS) && ++ VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION, 1) && ++ VerifyField(verifier, VT_CELL_CLIP, 4) && ++ VerifyField(verifier, VT_PROJ_CLIP, 4) && ++ VerifyField(verifier, VT_KERNEL_TYPE, 1) && ++ VerifyField(verifier, VT_ASYMMETRIC_QUANTIZE_INPUTS, 1) && + verifier.EndTable(); + } + LSTMOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -6194,11 +6202,11 @@ struct UnidirectionalSequenceLSTMOptions FLATBUFFERS_FINAL_CLASS : private flatb + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION) && +- VerifyField(verifier, VT_CELL_CLIP) && +- VerifyField(verifier, VT_PROJ_CLIP) && +- VerifyField(verifier, VT_TIME_MAJOR) && +- VerifyField(verifier, VT_ASYMMETRIC_QUANTIZE_INPUTS) && ++ VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION, 1) && ++ VerifyField(verifier, VT_CELL_CLIP, 4) && ++ VerifyField(verifier, VT_PROJ_CLIP, 4) && ++ VerifyField(verifier, VT_TIME_MAJOR, 1) && ++ VerifyField(verifier, VT_ASYMMETRIC_QUANTIZE_INPUTS, 1) && + verifier.EndTable(); + } + UnidirectionalSequenceLSTMOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -6295,12 +6303,12 @@ struct BidirectionalSequenceLSTMOptions FLATBUFFERS_FINAL_CLASS : private flatbu + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION) && +- VerifyField(verifier, VT_CELL_CLIP) && +- VerifyField(verifier, VT_PROJ_CLIP) && +- VerifyField(verifier, VT_MERGE_OUTPUTS) && +- VerifyField(verifier, VT_TIME_MAJOR) && +- VerifyField(verifier, VT_ASYMMETRIC_QUANTIZE_INPUTS) && ++ VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION, 1) && ++ VerifyField(verifier, VT_CELL_CLIP, 4) && ++ VerifyField(verifier, VT_PROJ_CLIP, 4) && ++ VerifyField(verifier, VT_MERGE_OUTPUTS, 1) && ++ VerifyField(verifier, VT_TIME_MAJOR, 1) && ++ VerifyField(verifier, VT_ASYMMETRIC_QUANTIZE_INPUTS, 1) && + verifier.EndTable(); + } + BidirectionalSequenceLSTMOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -6382,8 +6390,8 @@ struct ResizeBilinearOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Tabl + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_ALIGN_CORNERS) && +- VerifyField(verifier, VT_HALF_PIXEL_CENTERS) && ++ VerifyField(verifier, VT_ALIGN_CORNERS, 1) && ++ VerifyField(verifier, VT_HALF_PIXEL_CENTERS, 1) && + verifier.EndTable(); + } + ResizeBilinearOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -6445,8 +6453,8 @@ struct ResizeNearestNeighborOptions FLATBUFFERS_FINAL_CLASS : private flatbuffer + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_ALIGN_CORNERS) && +- VerifyField(verifier, VT_HALF_PIXEL_CENTERS) && ++ VerifyField(verifier, VT_ALIGN_CORNERS, 1) && ++ VerifyField(verifier, VT_HALF_PIXEL_CENTERS, 1) && + verifier.EndTable(); + } + ResizeNearestNeighborOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -6503,7 +6511,7 @@ struct CallOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_SUBGRAPH) && ++ VerifyField(verifier, VT_SUBGRAPH, 4) && + verifier.EndTable(); + } + CallOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -6783,9 +6791,9 @@ struct SkipGramOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_NGRAM_SIZE) && +- VerifyField(verifier, VT_MAX_SKIP_SIZE) && +- VerifyField(verifier, VT_INCLUDE_ALL_NGRAMS) && ++ VerifyField(verifier, VT_NGRAM_SIZE, 4) && ++ VerifyField(verifier, VT_MAX_SKIP_SIZE, 4) && ++ VerifyField(verifier, VT_INCLUDE_ALL_NGRAMS, 1) && + verifier.EndTable(); + } + SkipGramOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -6847,7 +6855,7 @@ struct SpaceToDepthOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_BLOCK_SIZE) && ++ VerifyField(verifier, VT_BLOCK_SIZE, 4) && + verifier.EndTable(); + } + SpaceToDepthOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -6899,7 +6907,7 @@ struct DepthToSpaceOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_BLOCK_SIZE) && ++ VerifyField(verifier, VT_BLOCK_SIZE, 4) && + verifier.EndTable(); + } + DepthToSpaceOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -6956,8 +6964,8 @@ struct SubOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION) && +- VerifyField(verifier, VT_POT_SCALE_INT16) && ++ VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION, 1) && ++ VerifyField(verifier, VT_POT_SCALE_INT16, 1) && + verifier.EndTable(); + } + SubOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -7014,7 +7022,7 @@ struct DivOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION) && ++ VerifyField(verifier, VT_FUSED_ACTIVATION_FUNCTION, 1) && + verifier.EndTable(); + } + DivOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -7105,7 +7113,7 @@ struct EmbeddingLookupSparseOptions FLATBUFFERS_FINAL_CLASS : private flatbuffer + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_COMBINER) && ++ VerifyField(verifier, VT_COMBINER, 1) && + verifier.EndTable(); + } + EmbeddingLookupSparseOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -7162,8 +7170,8 @@ struct GatherOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_AXIS) && +- VerifyField(verifier, VT_BATCH_DIMS) && ++ VerifyField(verifier, VT_AXIS, 4) && ++ VerifyField(verifier, VT_BATCH_DIMS, 4) && + verifier.EndTable(); + } + GatherOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -7337,7 +7345,7 @@ struct ReducerOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_KEEP_DIMS) && ++ VerifyField(verifier, VT_KEEP_DIMS, 1) && + verifier.EndTable(); + } + ReducerOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -7451,7 +7459,7 @@ struct SplitOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_NUM_SPLITS) && ++ VerifyField(verifier, VT_NUM_SPLITS, 4) && + verifier.EndTable(); + } + SplitOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -7503,7 +7511,7 @@ struct SplitVOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_NUM_SPLITS) && ++ VerifyField(verifier, VT_NUM_SPLITS, 4) && + verifier.EndTable(); + } + SplitVOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -7575,11 +7583,11 @@ struct StridedSliceOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_BEGIN_MASK) && +- VerifyField(verifier, VT_END_MASK) && +- VerifyField(verifier, VT_ELLIPSIS_MASK) && +- VerifyField(verifier, VT_NEW_AXIS_MASK) && +- VerifyField(verifier, VT_SHRINK_AXIS_MASK) && ++ VerifyField(verifier, VT_BEGIN_MASK, 4) && ++ VerifyField(verifier, VT_END_MASK, 4) && ++ VerifyField(verifier, VT_ELLIPSIS_MASK, 4) && ++ VerifyField(verifier, VT_NEW_AXIS_MASK, 4) && ++ VerifyField(verifier, VT_SHRINK_AXIS_MASK, 4) && + verifier.EndTable(); + } + StridedSliceOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -7695,8 +7703,8 @@ struct CastOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_IN_DATA_TYPE) && +- VerifyField(verifier, VT_OUT_DATA_TYPE) && ++ VerifyField(verifier, VT_IN_DATA_TYPE, 1) && ++ VerifyField(verifier, VT_OUT_DATA_TYPE, 1) && + verifier.EndTable(); + } + CastOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -7870,7 +7878,7 @@ struct ArgMaxOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_OUTPUT_TYPE) && ++ VerifyField(verifier, VT_OUTPUT_TYPE, 1) && + verifier.EndTable(); + } + ArgMaxOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -7922,7 +7930,7 @@ struct ArgMinOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_OUTPUT_TYPE) && ++ VerifyField(verifier, VT_OUTPUT_TYPE, 1) && + verifier.EndTable(); + } + ArgMinOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -8257,9 +8265,9 @@ struct TransposeConvOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_PADDING) && +- VerifyField(verifier, VT_STRIDE_W) && +- VerifyField(verifier, VT_STRIDE_H) && ++ VerifyField(verifier, VT_PADDING, 1) && ++ VerifyField(verifier, VT_STRIDE_W, 4) && ++ VerifyField(verifier, VT_STRIDE_H, 4) && + verifier.EndTable(); + } + TransposeConvOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -8360,7 +8368,7 @@ struct SparseToDenseOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_VALIDATE_INDICES) && ++ VerifyField(verifier, VT_VALIDATE_INDICES, 1) && + verifier.EndTable(); + } + SparseToDenseOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -8490,7 +8498,7 @@ struct ShapeOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_OUT_TYPE) && ++ VerifyField(verifier, VT_OUT_TYPE, 1) && + verifier.EndTable(); + } + ShapeOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -8635,10 +8643,10 @@ struct FakeQuantOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_MIN) && +- VerifyField(verifier, VT_MAX) && +- VerifyField(verifier, VT_NUM_BITS) && +- VerifyField(verifier, VT_NARROW_RANGE) && ++ VerifyField(verifier, VT_MIN, 4) && ++ VerifyField(verifier, VT_MAX, 4) && ++ VerifyField(verifier, VT_NUM_BITS, 4) && ++ VerifyField(verifier, VT_NARROW_RANGE, 1) && + verifier.EndTable(); + } + FakeQuantOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -8710,8 +8718,8 @@ struct PackOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_VALUES_COUNT) && +- VerifyField(verifier, VT_AXIS) && ++ VerifyField(verifier, VT_VALUES_COUNT, 4) && ++ VerifyField(verifier, VT_AXIS, 4) && + verifier.EndTable(); + } + PackOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -8807,7 +8815,7 @@ struct OneHotOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_AXIS) && ++ VerifyField(verifier, VT_AXIS, 4) && + verifier.EndTable(); + } + OneHotOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -9020,8 +9028,8 @@ struct UnpackOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_NUM) && +- VerifyField(verifier, VT_AXIS) && ++ VerifyField(verifier, VT_NUM, 4) && ++ VerifyField(verifier, VT_AXIS, 4) && + verifier.EndTable(); + } + UnpackOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -9312,7 +9320,7 @@ struct LeakyReluOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_ALPHA) && ++ VerifyField(verifier, VT_ALPHA, 4) && + verifier.EndTable(); + } + LeakyReluOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -9403,7 +9411,7 @@ struct MirrorPadOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_MODE) && ++ VerifyField(verifier, VT_MODE, 1) && + verifier.EndTable(); + } + MirrorPadOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -9455,7 +9463,7 @@ struct UniqueOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_IDX_OUT_TYPE) && ++ VerifyField(verifier, VT_IDX_OUT_TYPE, 1) && + verifier.EndTable(); + } + UniqueOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -9668,8 +9676,8 @@ struct ReverseSequenceOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Tab + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_SEQ_DIM) && +- VerifyField(verifier, VT_BATCH_DIM) && ++ VerifyField(verifier, VT_SEQ_DIM, 4) && ++ VerifyField(verifier, VT_BATCH_DIM, 4) && + verifier.EndTable(); + } + ReverseSequenceOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -9848,8 +9856,8 @@ struct IfOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_THEN_SUBGRAPH_INDEX) && +- VerifyField(verifier, VT_ELSE_SUBGRAPH_INDEX) && ++ VerifyField(verifier, VT_THEN_SUBGRAPH_INDEX, 4) && ++ VerifyField(verifier, VT_ELSE_SUBGRAPH_INDEX, 4) && + verifier.EndTable(); + } + IfOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -9906,7 +9914,7 @@ struct CallOnceOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_INIT_SUBGRAPH_INDEX) && ++ VerifyField(verifier, VT_INIT_SUBGRAPH_INDEX, 4) && + verifier.EndTable(); + } + CallOnceOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -9963,8 +9971,8 @@ struct WhileOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_COND_SUBGRAPH_INDEX) && +- VerifyField(verifier, VT_BODY_SUBGRAPH_INDEX) && ++ VerifyField(verifier, VT_COND_SUBGRAPH_INDEX, 4) && ++ VerifyField(verifier, VT_BODY_SUBGRAPH_INDEX, 4) && + verifier.EndTable(); + } + WhileOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -10265,9 +10273,9 @@ struct BatchMatMulOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_ADJ_X) && +- VerifyField(verifier, VT_ADJ_Y) && +- VerifyField(verifier, VT_ASYMMETRIC_QUANTIZE_INPUTS) && ++ VerifyField(verifier, VT_ADJ_X, 1) && ++ VerifyField(verifier, VT_ADJ_Y, 1) && ++ VerifyField(verifier, VT_ASYMMETRIC_QUANTIZE_INPUTS, 1) && + verifier.EndTable(); + } + BatchMatMulOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -10334,8 +10342,8 @@ struct CumsumOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_EXCLUSIVE) && +- VerifyField(verifier, VT_REVERSE) && ++ VerifyField(verifier, VT_EXCLUSIVE, 1) && ++ VerifyField(verifier, VT_REVERSE, 1) && + verifier.EndTable(); + } + CumsumOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -10480,9 +10488,9 @@ struct HashtableOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_TABLE_ID) && +- VerifyField(verifier, VT_KEY_DTYPE) && +- VerifyField(verifier, VT_VALUE_DTYPE) && ++ VerifyField(verifier, VT_TABLE_ID, 4) && ++ VerifyField(verifier, VT_KEY_DTYPE, 1) && ++ VerifyField(verifier, VT_VALUE_DTYPE, 1) && + verifier.EndTable(); + } + HashtableOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -10821,8 +10829,8 @@ struct RandomOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_SEED) && +- VerifyField(verifier, VT_SEED2) && ++ VerifyField(verifier, VT_SEED, 8) && ++ VerifyField(verifier, VT_SEED2, 8) && + verifier.EndTable(); + } + RandomOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -10941,7 +10949,7 @@ struct GeluOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_APPROXIMATE) && ++ VerifyField(verifier, VT_APPROXIMATE, 1) && + verifier.EndTable(); + } + GeluOptionsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -11047,11 +11055,11 @@ struct OperatorCode FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_DEPRECATED_BUILTIN_CODE) && ++ VerifyField(verifier, VT_DEPRECATED_BUILTIN_CODE, 1) && + VerifyOffset(verifier, VT_CUSTOM_CODE) && + verifier.VerifyString(custom_code()) && +- VerifyField(verifier, VT_VERSION) && +- VerifyField(verifier, VT_BUILTIN_CODE) && ++ VerifyField(verifier, VT_VERSION, 4) && ++ VerifyField(verifier, VT_BUILTIN_CODE, 4) && + verifier.EndTable(); + } + OperatorCodeT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -11524,17 +11532,17 @@ struct Operator FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_OPCODE_INDEX) && ++ VerifyField(verifier, VT_OPCODE_INDEX, 4) && + VerifyOffset(verifier, VT_INPUTS) && + verifier.VerifyVector(inputs()) && + VerifyOffset(verifier, VT_OUTPUTS) && + verifier.VerifyVector(outputs()) && +- VerifyField(verifier, VT_BUILTIN_OPTIONS_TYPE) && ++ VerifyField(verifier, VT_BUILTIN_OPTIONS_TYPE, 1) && + VerifyOffset(verifier, VT_BUILTIN_OPTIONS) && + VerifyBuiltinOptions(verifier, builtin_options(), builtin_options_type()) && + VerifyOffset(verifier, VT_CUSTOM_OPTIONS) && + verifier.VerifyVector(custom_options()) && +- VerifyField(verifier, VT_CUSTOM_OPTIONS_FORMAT) && ++ VerifyField(verifier, VT_CUSTOM_OPTIONS_FORMAT, 1) && + VerifyOffset(verifier, VT_MUTATING_VARIABLE_INPUTS) && + verifier.VerifyVector(mutating_variable_inputs()) && + VerifyOffset(verifier, VT_INTERMEDIATES) && +@@ -12118,6 +12126,10 @@ struct SubGraphT : public flatbuffers::NativeTable { + std::vector outputs{}; + std::vector> operators{}; + std::string name{}; ++ SubGraphT() = default; ++ SubGraphT(const SubGraphT &o); ++ SubGraphT(SubGraphT&&) FLATBUFFERS_NOEXCEPT = default; ++ SubGraphT &operator=(SubGraphT o) FLATBUFFERS_NOEXCEPT; + }; + + struct SubGraph FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +@@ -12321,7 +12333,7 @@ struct Metadata FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + return VerifyTableStart(verifier) && + VerifyOffset(verifier, VT_NAME) && + verifier.VerifyString(name()) && +- VerifyField(verifier, VT_BUFFER) && ++ VerifyField(verifier, VT_BUFFER, 4) && + verifier.EndTable(); + } + MetadataT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -12396,7 +12408,7 @@ struct TensorMap FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + return VerifyTableStart(verifier) && + VerifyOffset(verifier, VT_NAME) && + verifier.VerifyString(name()) && +- VerifyField(verifier, VT_TENSOR_INDEX) && ++ VerifyField(verifier, VT_TENSOR_INDEX, 4) && + verifier.EndTable(); + } + TensorMapT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -12454,6 +12466,10 @@ struct SignatureDefT : public flatbuffers::NativeTable { + std::vector> outputs{}; + std::string signature_key{}; + uint32_t subgraph_index = 0; ++ SignatureDefT() = default; ++ SignatureDefT(const SignatureDefT &o); ++ SignatureDefT(SignatureDefT&&) FLATBUFFERS_NOEXCEPT = default; ++ SignatureDefT &operator=(SignatureDefT o) FLATBUFFERS_NOEXCEPT; + }; + + struct SignatureDef FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +@@ -12487,7 +12503,7 @@ struct SignatureDef FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + verifier.VerifyVectorOfTables(outputs()) && + VerifyOffset(verifier, VT_SIGNATURE_KEY) && + verifier.VerifyString(signature_key()) && +- VerifyField(verifier, VT_SUBGRAPH_INDEX) && ++ VerifyField(verifier, VT_SUBGRAPH_INDEX, 4) && + verifier.EndTable(); + } + SignatureDefT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const; +@@ -12565,6 +12581,10 @@ struct ModelT : public flatbuffers::NativeTable { + std::vector metadata_buffer{}; + std::vector> metadata{}; + std::vector> signature_defs{}; ++ ModelT() = default; ++ ModelT(const ModelT &o); ++ ModelT(ModelT&&) FLATBUFFERS_NOEXCEPT = default; ++ ModelT &operator=(ModelT o) FLATBUFFERS_NOEXCEPT; + }; + + struct Model FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { +@@ -12606,7 +12626,7 @@ struct Model FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + } + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && +- VerifyField(verifier, VT_VERSION) && ++ VerifyField(verifier, VT_VERSION, 4) && + VerifyOffset(verifier, VT_OPERATOR_CODES) && + verifier.VerifyVector(operator_codes()) && + verifier.VerifyVectorOfTables(operator_codes()) && +@@ -12917,6 +12937,20 @@ inline flatbuffers::Offset CreateDimensionMetadata(flatbuffer + _array_indices); + } + ++inline SparsityParametersT::SparsityParametersT(const SparsityParametersT &o) ++ : traversal_order(o.traversal_order), ++ block_map(o.block_map) { ++ dim_metadata.reserve(o.dim_metadata.size()); ++ for (const auto &v : o.dim_metadata) { dim_metadata.emplace_back((v) ? new tflite::DimensionMetadataT(*v) : nullptr); } ++} ++ ++inline SparsityParametersT &SparsityParametersT::operator=(SparsityParametersT o) FLATBUFFERS_NOEXCEPT { ++ std::swap(traversal_order, o.traversal_order); ++ std::swap(block_map, o.block_map); ++ std::swap(dim_metadata, o.dim_metadata); ++ return *this; ++} ++ + inline SparsityParametersT *SparsityParameters::UnPack(const flatbuffers::resolver_function_t *_resolver) const { + auto _o = std::unique_ptr(new SparsityParametersT()); + UnPackTo(_o.get(), _resolver); +@@ -12949,6 +12983,29 @@ inline flatbuffers::Offset CreateSparsityParameters(flatbuff + _dim_metadata); + } + ++inline TensorT::TensorT(const TensorT &o) ++ : shape(o.shape), ++ type(o.type), ++ buffer(o.buffer), ++ name(o.name), ++ quantization((o.quantization) ? new tflite::QuantizationParametersT(*o.quantization) : nullptr), ++ is_variable(o.is_variable), ++ sparsity((o.sparsity) ? new tflite::SparsityParametersT(*o.sparsity) : nullptr), ++ shape_signature(o.shape_signature) { ++} ++ ++inline TensorT &TensorT::operator=(TensorT o) FLATBUFFERS_NOEXCEPT { ++ std::swap(shape, o.shape); ++ std::swap(type, o.type); ++ std::swap(buffer, o.buffer); ++ std::swap(name, o.name); ++ std::swap(quantization, o.quantization); ++ std::swap(is_variable, o.is_variable); ++ std::swap(sparsity, o.sparsity); ++ std::swap(shape_signature, o.shape_signature); ++ return *this; ++} ++ + inline TensorT *Tensor::UnPack(const flatbuffers::resolver_function_t *_resolver) const { + auto _o = std::unique_ptr(new TensorT()); + UnPackTo(_o.get(), _resolver); +@@ -16198,6 +16255,25 @@ inline flatbuffers::Offset CreateOperator(flatbuffers::FlatBufferBuild + _intermediates); + } + ++inline SubGraphT::SubGraphT(const SubGraphT &o) ++ : inputs(o.inputs), ++ outputs(o.outputs), ++ name(o.name) { ++ tensors.reserve(o.tensors.size()); ++ for (const auto &v : o.tensors) { tensors.emplace_back((v) ? new tflite::TensorT(*v) : nullptr); } ++ operators.reserve(o.operators.size()); ++ for (const auto &v : o.operators) { operators.emplace_back((v) ? new tflite::OperatorT(*v) : nullptr); } ++} ++ ++inline SubGraphT &SubGraphT::operator=(SubGraphT o) FLATBUFFERS_NOEXCEPT { ++ std::swap(tensors, o.tensors); ++ std::swap(inputs, o.inputs); ++ std::swap(outputs, o.outputs); ++ std::swap(operators, o.operators); ++ std::swap(name, o.name); ++ return *this; ++} ++ + inline SubGraphT *SubGraph::UnPack(const flatbuffers::resolver_function_t *_resolver) const { + auto _o = std::unique_ptr(new SubGraphT()); + UnPackTo(_o.get(), _resolver); +@@ -16321,6 +16397,23 @@ inline flatbuffers::Offset CreateTensorMap(flatbuffers::FlatBufferBui + _tensor_index); + } + ++inline SignatureDefT::SignatureDefT(const SignatureDefT &o) ++ : signature_key(o.signature_key), ++ subgraph_index(o.subgraph_index) { ++ inputs.reserve(o.inputs.size()); ++ for (const auto &v : o.inputs) { inputs.emplace_back((v) ? new tflite::TensorMapT(*v) : nullptr); } ++ outputs.reserve(o.outputs.size()); ++ for (const auto &v : o.outputs) { outputs.emplace_back((v) ? new tflite::TensorMapT(*v) : nullptr); } ++} ++ ++inline SignatureDefT &SignatureDefT::operator=(SignatureDefT o) FLATBUFFERS_NOEXCEPT { ++ std::swap(inputs, o.inputs); ++ std::swap(outputs, o.outputs); ++ std::swap(signature_key, o.signature_key); ++ std::swap(subgraph_index, o.subgraph_index); ++ return *this; ++} ++ + inline SignatureDefT *SignatureDef::UnPack(const flatbuffers::resolver_function_t *_resolver) const { + auto _o = std::unique_ptr(new SignatureDefT()); + UnPackTo(_o.get(), _resolver); +@@ -16356,6 +16449,34 @@ inline flatbuffers::Offset CreateSignatureDef(flatbuffers::FlatBuf + _subgraph_index); + } + ++inline ModelT::ModelT(const ModelT &o) ++ : version(o.version), ++ description(o.description), ++ metadata_buffer(o.metadata_buffer) { ++ operator_codes.reserve(o.operator_codes.size()); ++ for (const auto &v : o.operator_codes) { operator_codes.emplace_back((v) ? new tflite::OperatorCodeT(*v) : nullptr); } ++ subgraphs.reserve(o.subgraphs.size()); ++ for (const auto &v : o.subgraphs) { subgraphs.emplace_back((v) ? new tflite::SubGraphT(*v) : nullptr); } ++ buffers.reserve(o.buffers.size()); ++ for (const auto &v : o.buffers) { buffers.emplace_back((v) ? new tflite::BufferT(*v) : nullptr); } ++ metadata.reserve(o.metadata.size()); ++ for (const auto &v : o.metadata) { metadata.emplace_back((v) ? new tflite::MetadataT(*v) : nullptr); } ++ signature_defs.reserve(o.signature_defs.size()); ++ for (const auto &v : o.signature_defs) { signature_defs.emplace_back((v) ? new tflite::SignatureDefT(*v) : nullptr); } ++} ++ ++inline ModelT &ModelT::operator=(ModelT o) FLATBUFFERS_NOEXCEPT { ++ std::swap(version, o.version); ++ std::swap(operator_codes, o.operator_codes); ++ std::swap(subgraphs, o.subgraphs); ++ std::swap(description, o.description); ++ std::swap(buffers, o.buffers); ++ std::swap(metadata_buffer, o.metadata_buffer); ++ std::swap(metadata, o.metadata); ++ std::swap(signature_defs, o.signature_defs); ++ return *this; ++} ++ + inline ModelT *Model::UnPack(const flatbuffers::resolver_function_t *_resolver) const { + auto _o = std::unique_ptr(new ModelT()); + UnPackTo(_o.get(), _resolver); +@@ -19111,6 +19232,11 @@ inline bool ModelBufferHasIdentifier(const void *buf) { + buf, ModelIdentifier()); + } + ++inline bool SizePrefixedModelBufferHasIdentifier(const void *buf) { ++ return flatbuffers::BufferHasIdentifier( ++ buf, ModelIdentifier(), true); ++} ++ + inline bool VerifyModelBuffer( + flatbuffers::Verifier &verifier) { + return verifier.VerifyBuffer(ModelIdentifier()); +diff --git a/tensorflow/lite/tools/cmake/modules/flatbuffers.cmake b/tensorflow/lite/tools/cmake/modules/flatbuffers.cmake +index ac91a03a48a..d1d06d09505 100644 +--- a/tensorflow/lite/tools/cmake/modules/flatbuffers.cmake ++++ b/tensorflow/lite/tools/cmake/modules/flatbuffers.cmake +@@ -23,7 +23,7 @@ OverridableFetchContent_Declare( + flatbuffers + GIT_REPOSITORY https://github.com/google/flatbuffers + # Sync with tensorflow/third_party/flatbuffers/workspace.bzl +- GIT_TAG v2.0.5 ++ GIT_TAG v2.0.6 + GIT_SHALLOW TRUE + GIT_PROGRESS TRUE + SOURCE_DIR "${CMAKE_BINARY_DIR}/flatbuffers" +diff --git a/tensorflow/opensource_only.files b/tensorflow/opensource_only.files +index 8cf130f5509..8ccaae2b9c6 100644 +--- a/tensorflow/opensource_only.files ++++ b/tensorflow/opensource_only.files +@@ -61,6 +61,7 @@ tensorflow/lite/delegates/gpu/cl/serialization_generated.h: + tensorflow/lite/delegates/gpu/common/gpu_model_generated.h: + tensorflow/lite/delegates/gpu/common/task/serialization_base_generated.h: + tensorflow/lite/delegates/hexagon/hexagon_nn/BUILD: ++tensorflow/lite/experimental/acceleration/configuration/configuration_generated.h: + tensorflow/lite/experimental/acceleration/mini_benchmark/libjpeg.h: + tensorflow/lite/experimental/acceleration/mini_benchmark/special_rules.bzl: + tensorflow/lite/ios/BUILD: +diff --git a/third_party/flatbuffers/workspace.bzl b/third_party/flatbuffers/workspace.bzl +index 84aae9dc51f..ceb8a2720da 100644 +--- a/third_party/flatbuffers/workspace.bzl ++++ b/third_party/flatbuffers/workspace.bzl +@@ -5,9 +5,9 @@ load("//third_party:repo.bzl", "tf_http_archive", "tf_mirror_urls") + def repo(): + tf_http_archive( + name = "flatbuffers", +- strip_prefix = "flatbuffers-2.0.5", +- sha256 = "b01e97c988c429e164c5c7df9e87c80007ca87f593c0d73733ba536ddcbc8f98", +- urls = tf_mirror_urls("https://github.com/google/flatbuffers/archive/v2.0.5.tar.gz"), ++ strip_prefix = "flatbuffers-2.0.6", ++ sha256 = "e2dc24985a85b278dd06313481a9ca051d048f9474e0f199e372fea3ea4248c9", ++ urls = tf_mirror_urls("https://github.com/google/flatbuffers/archive/v2.0.6.tar.gz"), + build_file = "//third_party/flatbuffers:flatbuffers.BUILD", + system_build_file = "//third_party/flatbuffers:BUILD.system", + link_files = { diff --git a/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.9.1_support_flatbuffers_2.0.patch b/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.9.1_support_flatbuffers_2.0.patch new file mode 100644 index 00000000000..81077042987 --- /dev/null +++ b/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.9.1_support_flatbuffers_2.0.patch @@ -0,0 +1,8002 @@ +Add support for flatbuffers 2.0. +Taken from https://github.com/tensorflow/tensorflow/commit/625a4045bc0728c0f3d1b63e05749201f8b401dd + +Backported to 2.9.1 by +Author: Alexander Grund (TU Dresden) + +diff --git a/tensorflow/compiler/mlir/lite/flatbuffer_export.cc b/tensorflow/compiler/mlir/lite/flatbuffer_export.cc +index 9467afdf3c5..b75d55204c1 100644 +--- a/tensorflow/compiler/mlir/lite/flatbuffer_export.cc ++++ b/tensorflow/compiler/mlir/lite/flatbuffer_export.cc +@@ -784,17 +784,19 @@ Optional> Translator::BuildTensorFromType( + GetTFLiteType(tensor_type.getElementType()).ValueOrDie(); + BufferOffset q_params = 0; + if (auto qtype = element_type.dyn_cast()) { ++ std::vector scales = {static_cast(qtype.getScale())}; ++ std::vector zero_points = {qtype.getZeroPoint()}; + q_params = tflite::CreateQuantizationParameters( +- builder_, /*min=*/0, /*max=*/0, +- builder_.CreateVector({static_cast(qtype.getScale())}), +- builder_.CreateVector({qtype.getZeroPoint()})); ++ builder_, /*min=*/0, /*max=*/0, builder_.CreateVector(scales), ++ builder_.CreateVector(zero_points)); + } else if (auto qtype = + element_type + .dyn_cast()) { ++ std::vector mins = {static_cast(qtype.getMin())}; ++ std::vector maxs = {static_cast(qtype.getMax())}; + q_params = tflite::CreateQuantizationParameters( +- builder_, +- builder_.CreateVector({static_cast(qtype.getMin())}), +- builder_.CreateVector({static_cast(qtype.getMax())})); ++ builder_, builder_.CreateVector(mins), ++ builder_.CreateVector(maxs)); + } + return tflite::CreateTensor( + builder_, builder_.CreateVector(shape), tflite_element_type, +@@ -868,20 +870,23 @@ Optional> Translator::BuildTensor( + + BufferOffset q_params; + if (auto qtype = element_type.dyn_cast()) { ++ std::vector scales = {static_cast(qtype.getScale())}; ++ std::vector zero_points = {qtype.getZeroPoint()}; + q_params = tflite::CreateQuantizationParameters( + // min and max values are not stored in the quantized type from MLIR, so + // both are set to 0 in the flatbuffer when they are exported. +- builder_, /*min=*/0, /*max=*/0, +- builder_.CreateVector({static_cast(qtype.getScale())}), +- builder_.CreateVector({qtype.getZeroPoint()})); ++ builder_, /*min=*/0, /*max=*/0, builder_.CreateVector(scales), ++ builder_.CreateVector(zero_points)); + } else if (auto qtype = + element_type + .dyn_cast()) { + std::vector scales(qtype.getScales().begin(), + qtype.getScales().end()); ++ std::vector zero_points(qtype.getZeroPoints().begin(), ++ qtype.getZeroPoints().end()); + q_params = tflite::CreateQuantizationParameters( + builder_, /*min=*/0, /*max=*/0, builder_.CreateVector(scales), +- builder_.CreateVector(qtype.getZeroPoints()), ++ builder_.CreateVector(zero_points), + tflite::QuantizationDetails_NONE, /*details=*/0, + qtype.getQuantizedDimension()); + } else if (quant_parameters.hasValue()) { +diff --git a/tensorflow/compiler/mlir/lite/quantization/lite/quantize_model_test.cc b/tensorflow/compiler/mlir/lite/quantization/lite/quantize_model_test.cc +index 6075c6515bd..cd67fad748a 100644 +--- a/tensorflow/compiler/mlir/lite/quantization/lite/quantize_model_test.cc ++++ b/tensorflow/compiler/mlir/lite/quantization/lite/quantize_model_test.cc +@@ -210,7 +210,7 @@ void ExpectSameModels(const ModelT& model, const ModelT& expected_model) { + continue; + } + ExpectEqualTensor(tensor.get(), expected_tensor); +- if (tensor->buffer >= 0) { ++ if (expected_tensor->buffer > 0) { + const int buffer_idx = tensor->buffer; + const int expected_buffer_idx = expected_tensor->buffer; + const auto buffer = model.buffers[buffer_idx].get()->data; +diff --git a/tensorflow/lite/kernels/test_util.cc b/tensorflow/lite/kernels/test_util.cc +index 0e97b89bca4..eef287d6267 100644 +--- a/tensorflow/lite/kernels/test_util.cc ++++ b/tensorflow/lite/kernels/test_util.cc +@@ -112,7 +112,8 @@ int SingleOpModel::AddIntermediate(TensorType type, + CreateQuantizationParameters(builder_, /*min=*/0, /*max=*/0, + builder_.CreateVector(scale), + builder_.CreateVector(zero_point)); +- tensors_.push_back(CreateTensor(builder_, builder_.CreateVector({}), ++ std::vector empty; ++ tensors_.push_back(CreateTensor(builder_, builder_.CreateVector(empty), + type, + /*buffer=*/0, + /*name=*/0, q_params, false)); +diff --git a/tensorflow/lite/kernels/test_util.h b/tensorflow/lite/kernels/test_util.h +index cf61f32a9c9..81bab720d79 100644 +--- a/tensorflow/lite/kernels/test_util.h ++++ b/tensorflow/lite/kernels/test_util.h +@@ -245,12 +245,12 @@ class SingleOpModel { + if (i < t.shape.size() && + t.format[t.traversal_order[i]] == kTfLiteDimSparseCSR) { + auto array_segments = +- CreateInt32Vector(builder_, +- builder_.CreateVector(dim_metadata[metadata_idx])) ++ CreateInt32Vector(builder_, builder_.CreateVector( ++ dim_metadata[metadata_idx])) + .Union(); + auto array_indices = +- CreateInt32Vector( +- builder_, builder_.CreateVector(dim_metadata[metadata_idx + 1])) ++ CreateInt32Vector(builder_, builder_.CreateVector( ++ dim_metadata[metadata_idx + 1])) + .Union(); + fb_dim_metadata[i] = CreateDimensionMetadata( + builder_, DimensionType_SPARSE_CSR, 0, +@@ -263,8 +263,8 @@ class SingleOpModel { + } + + flatbuffers::Offset s_param = CreateSparsityParameters( +- builder_, builder_.CreateVector(t.traversal_order), +- builder_.CreateVector(t.block_map), ++ builder_, builder_.CreateVector(t.traversal_order), ++ builder_.CreateVector(t.block_map), + builder_.CreateVector(fb_dim_metadata)); + + int buffer_id = 0; +@@ -359,9 +359,11 @@ class SingleOpModel { + float min, max, scaling_factor; + tensor_utils::SymmetricQuantizeFloats( + sparse_data.data(), length, q.data(), &min, &max, &scaling_factor); ++ std::vector scales{scaling_factor}; ++ std::vector zero_points{0}; + q_params = CreateQuantizationParameters( +- builder_, 0, 0, builder_.CreateVector({scaling_factor}), +- builder_.CreateVector({0})); ++ builder_, 0, 0, builder_.CreateVector(scales), ++ builder_.CreateVector(zero_points)); + auto data_buffer = builder_.CreateVector( + reinterpret_cast(q.data()), q.size()); + buffers_.push_back(CreateBuffer(builder_, data_buffer)); +@@ -369,9 +371,11 @@ class SingleOpModel { + CHECK_EQ(t.type, TensorType_INT8) + << "The INT8 quantization is only supported for sparsified tensor"; + auto q = Quantize(sparse_data, t.scale, t.zero_point); ++ std::vector scales{t.scale}; ++ std::vector zero_points{0}; + q_params = CreateQuantizationParameters( +- builder_, t.min, t.max, builder_.CreateVector({t.scale}), +- builder_.CreateVector({0})); ++ builder_, t.min, t.max, builder_.CreateVector(scales), ++ builder_.CreateVector(zero_points)); + auto data_buffer = builder_.CreateVector( + reinterpret_cast(q.data()), q.size()); + buffers_.push_back(CreateBuffer(builder_, data_buffer)); +@@ -690,10 +694,11 @@ class SingleOpModel { + t.max = 0; + } + ++ std::vector scales{t.scale}; ++ std::vector zero_points{t.zero_point}; + q_params = CreateQuantizationParameters( +- builder_, /*min=*/0, /*max=*/0, +- builder_.CreateVector({t.scale}), +- builder_.CreateVector({t.zero_point})); ++ builder_, /*min=*/0, /*max=*/0, builder_.CreateVector(scales), ++ builder_.CreateVector(zero_points)); + } + + int buffer_id = 0; +diff --git a/tensorflow/lite/schema/BUILD b/tensorflow/lite/schema/BUILD +index eb3d9df659d..7d1f2b7a2e3 100644 +--- a/tensorflow/lite/schema/BUILD ++++ b/tensorflow/lite/schema/BUILD +@@ -77,6 +77,11 @@ py_test( + # "//tensorflow/lite/schema:schema_generated.h.oss", + # ], + # python_version = "PY3", ++# # TODO(b/217577534): Enable this TAP with FlatBuffer 2.0 migration. ++# tags = [ ++# "manual", ++# "notap", ++# ], + # deps = [ + # "//testing/pybase", + # "@absl_py//absl/flags", +diff --git a/tensorflow/lite/schema/schema_generated.h b/tensorflow/lite/schema/schema_generated.h +index e5ce189f147..0de55f064ef 100755 +--- a/tensorflow/lite/schema/schema_generated.h ++++ b/tensorflow/lite/schema/schema_generated.h +@@ -23,405 +23,538 @@ limitations under the License. + namespace tflite { + + struct CustomQuantization; ++struct CustomQuantizationBuilder; + struct CustomQuantizationT; + + struct QuantizationParameters; ++struct QuantizationParametersBuilder; + struct QuantizationParametersT; + + struct Int32Vector; ++struct Int32VectorBuilder; + struct Int32VectorT; + + struct Uint16Vector; ++struct Uint16VectorBuilder; + struct Uint16VectorT; + + struct Uint8Vector; ++struct Uint8VectorBuilder; + struct Uint8VectorT; + + struct DimensionMetadata; ++struct DimensionMetadataBuilder; + struct DimensionMetadataT; + + struct SparsityParameters; ++struct SparsityParametersBuilder; + struct SparsityParametersT; + + struct Tensor; ++struct TensorBuilder; + struct TensorT; + + struct Conv2DOptions; ++struct Conv2DOptionsBuilder; + struct Conv2DOptionsT; + + struct Conv3DOptions; ++struct Conv3DOptionsBuilder; + struct Conv3DOptionsT; + + struct Pool2DOptions; ++struct Pool2DOptionsBuilder; + struct Pool2DOptionsT; + + struct DepthwiseConv2DOptions; ++struct DepthwiseConv2DOptionsBuilder; + struct DepthwiseConv2DOptionsT; + + struct ConcatEmbeddingsOptions; ++struct ConcatEmbeddingsOptionsBuilder; + struct ConcatEmbeddingsOptionsT; + + struct LSHProjectionOptions; ++struct LSHProjectionOptionsBuilder; + struct LSHProjectionOptionsT; + + struct SVDFOptions; ++struct SVDFOptionsBuilder; + struct SVDFOptionsT; + + struct RNNOptions; ++struct RNNOptionsBuilder; + struct RNNOptionsT; + + struct SequenceRNNOptions; ++struct SequenceRNNOptionsBuilder; + struct SequenceRNNOptionsT; + + struct BidirectionalSequenceRNNOptions; ++struct BidirectionalSequenceRNNOptionsBuilder; + struct BidirectionalSequenceRNNOptionsT; + + struct FullyConnectedOptions; ++struct FullyConnectedOptionsBuilder; + struct FullyConnectedOptionsT; + + struct SoftmaxOptions; ++struct SoftmaxOptionsBuilder; + struct SoftmaxOptionsT; + + struct ConcatenationOptions; ++struct ConcatenationOptionsBuilder; + struct ConcatenationOptionsT; + + struct AddOptions; ++struct AddOptionsBuilder; + struct AddOptionsT; + + struct MulOptions; ++struct MulOptionsBuilder; + struct MulOptionsT; + + struct L2NormOptions; ++struct L2NormOptionsBuilder; + struct L2NormOptionsT; + + struct LocalResponseNormalizationOptions; ++struct LocalResponseNormalizationOptionsBuilder; + struct LocalResponseNormalizationOptionsT; + + struct LSTMOptions; ++struct LSTMOptionsBuilder; + struct LSTMOptionsT; + + struct UnidirectionalSequenceLSTMOptions; ++struct UnidirectionalSequenceLSTMOptionsBuilder; + struct UnidirectionalSequenceLSTMOptionsT; + + struct BidirectionalSequenceLSTMOptions; ++struct BidirectionalSequenceLSTMOptionsBuilder; + struct BidirectionalSequenceLSTMOptionsT; + + struct ResizeBilinearOptions; ++struct ResizeBilinearOptionsBuilder; + struct ResizeBilinearOptionsT; + + struct ResizeNearestNeighborOptions; ++struct ResizeNearestNeighborOptionsBuilder; + struct ResizeNearestNeighborOptionsT; + + struct CallOptions; ++struct CallOptionsBuilder; + struct CallOptionsT; + + struct PadOptions; ++struct PadOptionsBuilder; + struct PadOptionsT; + + struct PadV2Options; ++struct PadV2OptionsBuilder; + struct PadV2OptionsT; + + struct ReshapeOptions; ++struct ReshapeOptionsBuilder; + struct ReshapeOptionsT; + + struct SpaceToBatchNDOptions; ++struct SpaceToBatchNDOptionsBuilder; + struct SpaceToBatchNDOptionsT; + + struct BatchToSpaceNDOptions; ++struct BatchToSpaceNDOptionsBuilder; + struct BatchToSpaceNDOptionsT; + + struct SkipGramOptions; ++struct SkipGramOptionsBuilder; + struct SkipGramOptionsT; + + struct SpaceToDepthOptions; ++struct SpaceToDepthOptionsBuilder; + struct SpaceToDepthOptionsT; + + struct DepthToSpaceOptions; ++struct DepthToSpaceOptionsBuilder; + struct DepthToSpaceOptionsT; + + struct SubOptions; ++struct SubOptionsBuilder; + struct SubOptionsT; + + struct DivOptions; ++struct DivOptionsBuilder; + struct DivOptionsT; + + struct TopKV2Options; ++struct TopKV2OptionsBuilder; + struct TopKV2OptionsT; + + struct EmbeddingLookupSparseOptions; ++struct EmbeddingLookupSparseOptionsBuilder; + struct EmbeddingLookupSparseOptionsT; + + struct GatherOptions; ++struct GatherOptionsBuilder; + struct GatherOptionsT; + + struct TransposeOptions; ++struct TransposeOptionsBuilder; + struct TransposeOptionsT; + + struct ExpOptions; ++struct ExpOptionsBuilder; + struct ExpOptionsT; + + struct CosOptions; ++struct CosOptionsBuilder; + struct CosOptionsT; + + struct ReducerOptions; ++struct ReducerOptionsBuilder; + struct ReducerOptionsT; + + struct SqueezeOptions; ++struct SqueezeOptionsBuilder; + struct SqueezeOptionsT; + + struct SplitOptions; ++struct SplitOptionsBuilder; + struct SplitOptionsT; + + struct SplitVOptions; ++struct SplitVOptionsBuilder; + struct SplitVOptionsT; + + struct StridedSliceOptions; ++struct StridedSliceOptionsBuilder; + struct StridedSliceOptionsT; + + struct LogSoftmaxOptions; ++struct LogSoftmaxOptionsBuilder; + struct LogSoftmaxOptionsT; + + struct CastOptions; ++struct CastOptionsBuilder; + struct CastOptionsT; + + struct DequantizeOptions; ++struct DequantizeOptionsBuilder; + struct DequantizeOptionsT; + + struct MaximumMinimumOptions; ++struct MaximumMinimumOptionsBuilder; + struct MaximumMinimumOptionsT; + + struct TileOptions; ++struct TileOptionsBuilder; + struct TileOptionsT; + + struct ArgMaxOptions; ++struct ArgMaxOptionsBuilder; + struct ArgMaxOptionsT; + + struct ArgMinOptions; ++struct ArgMinOptionsBuilder; + struct ArgMinOptionsT; + + struct GreaterOptions; ++struct GreaterOptionsBuilder; + struct GreaterOptionsT; + + struct GreaterEqualOptions; ++struct GreaterEqualOptionsBuilder; + struct GreaterEqualOptionsT; + + struct LessOptions; ++struct LessOptionsBuilder; + struct LessOptionsT; + + struct LessEqualOptions; ++struct LessEqualOptionsBuilder; + struct LessEqualOptionsT; + + struct NegOptions; ++struct NegOptionsBuilder; + struct NegOptionsT; + + struct SelectOptions; ++struct SelectOptionsBuilder; + struct SelectOptionsT; + + struct SliceOptions; ++struct SliceOptionsBuilder; + struct SliceOptionsT; + + struct TransposeConvOptions; ++struct TransposeConvOptionsBuilder; + struct TransposeConvOptionsT; + + struct ExpandDimsOptions; ++struct ExpandDimsOptionsBuilder; + struct ExpandDimsOptionsT; + + struct SparseToDenseOptions; ++struct SparseToDenseOptionsBuilder; + struct SparseToDenseOptionsT; + + struct EqualOptions; ++struct EqualOptionsBuilder; + struct EqualOptionsT; + + struct NotEqualOptions; ++struct NotEqualOptionsBuilder; + struct NotEqualOptionsT; + + struct ShapeOptions; ++struct ShapeOptionsBuilder; + struct ShapeOptionsT; + + struct RankOptions; ++struct RankOptionsBuilder; + struct RankOptionsT; + + struct PowOptions; ++struct PowOptionsBuilder; + struct PowOptionsT; + + struct FakeQuantOptions; ++struct FakeQuantOptionsBuilder; + struct FakeQuantOptionsT; + + struct PackOptions; ++struct PackOptionsBuilder; + struct PackOptionsT; + + struct LogicalOrOptions; ++struct LogicalOrOptionsBuilder; + struct LogicalOrOptionsT; + + struct OneHotOptions; ++struct OneHotOptionsBuilder; + struct OneHotOptionsT; + + struct AbsOptions; ++struct AbsOptionsBuilder; + struct AbsOptionsT; + + struct HardSwishOptions; ++struct HardSwishOptionsBuilder; + struct HardSwishOptionsT; + + struct LogicalAndOptions; ++struct LogicalAndOptionsBuilder; + struct LogicalAndOptionsT; + + struct LogicalNotOptions; ++struct LogicalNotOptionsBuilder; + struct LogicalNotOptionsT; + + struct UnpackOptions; ++struct UnpackOptionsBuilder; + struct UnpackOptionsT; + + struct FloorDivOptions; ++struct FloorDivOptionsBuilder; + struct FloorDivOptionsT; + + struct SquareOptions; ++struct SquareOptionsBuilder; + struct SquareOptionsT; + + struct ZerosLikeOptions; ++struct ZerosLikeOptionsBuilder; + struct ZerosLikeOptionsT; + + struct FillOptions; ++struct FillOptionsBuilder; + struct FillOptionsT; + + struct FloorModOptions; ++struct FloorModOptionsBuilder; + struct FloorModOptionsT; + + struct RangeOptions; ++struct RangeOptionsBuilder; + struct RangeOptionsT; + + struct LeakyReluOptions; ++struct LeakyReluOptionsBuilder; + struct LeakyReluOptionsT; + + struct SquaredDifferenceOptions; ++struct SquaredDifferenceOptionsBuilder; + struct SquaredDifferenceOptionsT; + + struct MirrorPadOptions; ++struct MirrorPadOptionsBuilder; + struct MirrorPadOptionsT; + + struct UniqueOptions; ++struct UniqueOptionsBuilder; + struct UniqueOptionsT; + + struct ReverseV2Options; ++struct ReverseV2OptionsBuilder; + struct ReverseV2OptionsT; + + struct AddNOptions; ++struct AddNOptionsBuilder; + struct AddNOptionsT; + + struct GatherNdOptions; ++struct GatherNdOptionsBuilder; + struct GatherNdOptionsT; + + struct WhereOptions; ++struct WhereOptionsBuilder; + struct WhereOptionsT; + + struct ReverseSequenceOptions; ++struct ReverseSequenceOptionsBuilder; + struct ReverseSequenceOptionsT; + + struct MatrixDiagOptions; ++struct MatrixDiagOptionsBuilder; + struct MatrixDiagOptionsT; + + struct QuantizeOptions; ++struct QuantizeOptionsBuilder; + struct QuantizeOptionsT; + + struct MatrixSetDiagOptions; ++struct MatrixSetDiagOptionsBuilder; + struct MatrixSetDiagOptionsT; + + struct IfOptions; ++struct IfOptionsBuilder; + struct IfOptionsT; + + struct CallOnceOptions; ++struct CallOnceOptionsBuilder; + struct CallOnceOptionsT; + + struct WhileOptions; ++struct WhileOptionsBuilder; + struct WhileOptionsT; + + struct NonMaxSuppressionV4Options; ++struct NonMaxSuppressionV4OptionsBuilder; + struct NonMaxSuppressionV4OptionsT; + + struct NonMaxSuppressionV5Options; ++struct NonMaxSuppressionV5OptionsBuilder; + struct NonMaxSuppressionV5OptionsT; + + struct ScatterNdOptions; ++struct ScatterNdOptionsBuilder; + struct ScatterNdOptionsT; + + struct SelectV2Options; ++struct SelectV2OptionsBuilder; + struct SelectV2OptionsT; + + struct DensifyOptions; ++struct DensifyOptionsBuilder; + struct DensifyOptionsT; + + struct SegmentSumOptions; ++struct SegmentSumOptionsBuilder; + struct SegmentSumOptionsT; + + struct BatchMatMulOptions; ++struct BatchMatMulOptionsBuilder; + struct BatchMatMulOptionsT; + + struct CumsumOptions; ++struct CumsumOptionsBuilder; + struct CumsumOptionsT; + + struct BroadcastToOptions; ++struct BroadcastToOptionsBuilder; + struct BroadcastToOptionsT; + + struct Rfft2dOptions; ++struct Rfft2dOptionsBuilder; + struct Rfft2dOptionsT; + + struct HashtableOptions; ++struct HashtableOptionsBuilder; + struct HashtableOptionsT; + + struct HashtableFindOptions; ++struct HashtableFindOptionsBuilder; + struct HashtableFindOptionsT; + + struct HashtableImportOptions; ++struct HashtableImportOptionsBuilder; + struct HashtableImportOptionsT; + + struct HashtableSizeOptions; ++struct HashtableSizeOptionsBuilder; + struct HashtableSizeOptionsT; + + struct VarHandleOptions; ++struct VarHandleOptionsBuilder; + struct VarHandleOptionsT; + + struct ReadVariableOptions; ++struct ReadVariableOptionsBuilder; + struct ReadVariableOptionsT; + + struct AssignVariableOptions; ++struct AssignVariableOptionsBuilder; + struct AssignVariableOptionsT; + + struct RandomOptions; ++struct RandomOptionsBuilder; + struct RandomOptionsT; + + struct BucketizeOptions; ++struct BucketizeOptionsBuilder; + struct BucketizeOptionsT; + + struct GeluOptions; ++struct GeluOptionsBuilder; + struct GeluOptionsT; + + struct DynamicUpdateSliceOptions; ++struct DynamicUpdateSliceOptionsBuilder; + struct DynamicUpdateSliceOptionsT; + + struct OperatorCode; ++struct OperatorCodeBuilder; + struct OperatorCodeT; + + struct Operator; ++struct OperatorBuilder; + struct OperatorT; + + struct SubGraph; ++struct SubGraphBuilder; + struct SubGraphT; + + struct Buffer; ++struct BufferBuilder; + struct BufferT; + + struct Metadata; ++struct MetadataBuilder; + struct MetadataT; + + struct TensorMap; ++struct TensorMapBuilder; + struct TensorMapT; + + struct SignatureDef; ++struct SignatureDefBuilder; + struct SignatureDefT; + + struct Model; ++struct ModelBuilder; + struct ModelT; + +-enum TensorType { ++enum TensorType : int8_t { + TensorType_FLOAT32 = 0, + TensorType_FLOAT16 = 1, + TensorType_INT32 = 2, +@@ -496,7 +629,7 @@ inline const char *EnumNameTensorType(TensorType e) { + return EnumNamesTensorType()[index]; + } + +-enum QuantizationDetails { ++enum QuantizationDetails : uint8_t { + QuantizationDetails_NONE = 0, + QuantizationDetails_CustomQuantization = 1, + QuantizationDetails_MIN = QuantizationDetails_NONE, +@@ -534,6 +667,14 @@ template<> struct QuantizationDetailsTraits { + static const QuantizationDetails enum_value = QuantizationDetails_CustomQuantization; + }; + ++template struct QuantizationDetailsUnionTraits { ++ static const QuantizationDetails enum_value = QuantizationDetails_NONE; ++}; ++ ++template<> struct QuantizationDetailsUnionTraits { ++ static const QuantizationDetails enum_value = QuantizationDetails_CustomQuantization; ++}; ++ + struct QuantizationDetailsUnion { + QuantizationDetails type; + void *value; +@@ -542,8 +683,8 @@ struct QuantizationDetailsUnion { + QuantizationDetailsUnion(QuantizationDetailsUnion&& u) FLATBUFFERS_NOEXCEPT : + type(QuantizationDetails_NONE), value(nullptr) + { std::swap(type, u.type); std::swap(value, u.value); } +- QuantizationDetailsUnion(const QuantizationDetailsUnion &) FLATBUFFERS_NOEXCEPT; +- QuantizationDetailsUnion &operator=(const QuantizationDetailsUnion &u) FLATBUFFERS_NOEXCEPT ++ QuantizationDetailsUnion(const QuantizationDetailsUnion &); ++ QuantizationDetailsUnion &operator=(const QuantizationDetailsUnion &u) + { QuantizationDetailsUnion t(u); std::swap(type, t.type); std::swap(value, t.value); return *this; } + QuantizationDetailsUnion &operator=(QuantizationDetailsUnion &&u) FLATBUFFERS_NOEXCEPT + { std::swap(type, u.type); std::swap(value, u.value); return *this; } +@@ -551,17 +692,15 @@ struct QuantizationDetailsUnion { + + void Reset(); + +-#ifndef FLATBUFFERS_CPP98_STL + template + void Set(T&& val) { +- using RT = typename std::remove_reference::type; ++ typedef typename std::remove_reference::type RT; + Reset(); +- type = QuantizationDetailsTraits::enum_value; ++ type = QuantizationDetailsUnionTraits::enum_value; + if (type != QuantizationDetails_NONE) { + value = new RT(std::forward(val)); + } + } +-#endif // FLATBUFFERS_CPP98_STL + + static void *UnPack(const void *obj, QuantizationDetails type, const flatbuffers::resolver_function_t *resolver); + flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher = nullptr) const; +@@ -579,7 +718,7 @@ struct QuantizationDetailsUnion { + bool VerifyQuantizationDetails(flatbuffers::Verifier &verifier, const void *obj, QuantizationDetails type); + bool VerifyQuantizationDetailsVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types); + +-enum DimensionType { ++enum DimensionType : int8_t { + DimensionType_DENSE = 0, + DimensionType_SPARSE_CSR = 1, + DimensionType_MIN = DimensionType_DENSE, +@@ -609,7 +748,7 @@ inline const char *EnumNameDimensionType(DimensionType e) { + return EnumNamesDimensionType()[index]; + } + +-enum SparseIndexVector { ++enum SparseIndexVector : uint8_t { + SparseIndexVector_NONE = 0, + SparseIndexVector_Int32Vector = 1, + SparseIndexVector_Uint16Vector = 2, +@@ -661,6 +800,22 @@ template<> struct SparseIndexVectorTraits { + static const SparseIndexVector enum_value = SparseIndexVector_Uint8Vector; + }; + ++template struct SparseIndexVectorUnionTraits { ++ static const SparseIndexVector enum_value = SparseIndexVector_NONE; ++}; ++ ++template<> struct SparseIndexVectorUnionTraits { ++ static const SparseIndexVector enum_value = SparseIndexVector_Int32Vector; ++}; ++ ++template<> struct SparseIndexVectorUnionTraits { ++ static const SparseIndexVector enum_value = SparseIndexVector_Uint16Vector; ++}; ++ ++template<> struct SparseIndexVectorUnionTraits { ++ static const SparseIndexVector enum_value = SparseIndexVector_Uint8Vector; ++}; ++ + struct SparseIndexVectorUnion { + SparseIndexVector type; + void *value; +@@ -669,8 +824,8 @@ struct SparseIndexVectorUnion { + SparseIndexVectorUnion(SparseIndexVectorUnion&& u) FLATBUFFERS_NOEXCEPT : + type(SparseIndexVector_NONE), value(nullptr) + { std::swap(type, u.type); std::swap(value, u.value); } +- SparseIndexVectorUnion(const SparseIndexVectorUnion &) FLATBUFFERS_NOEXCEPT; +- SparseIndexVectorUnion &operator=(const SparseIndexVectorUnion &u) FLATBUFFERS_NOEXCEPT ++ SparseIndexVectorUnion(const SparseIndexVectorUnion &); ++ SparseIndexVectorUnion &operator=(const SparseIndexVectorUnion &u) + { SparseIndexVectorUnion t(u); std::swap(type, t.type); std::swap(value, t.value); return *this; } + SparseIndexVectorUnion &operator=(SparseIndexVectorUnion &&u) FLATBUFFERS_NOEXCEPT + { std::swap(type, u.type); std::swap(value, u.value); return *this; } +@@ -678,17 +833,15 @@ struct SparseIndexVectorUnion { + + void Reset(); + +-#ifndef FLATBUFFERS_CPP98_STL + template + void Set(T&& val) { +- using RT = typename std::remove_reference::type; ++ typedef typename std::remove_reference::type RT; + Reset(); +- type = SparseIndexVectorTraits::enum_value; ++ type = SparseIndexVectorUnionTraits::enum_value; + if (type != SparseIndexVector_NONE) { + value = new RT(std::forward(val)); + } + } +-#endif // FLATBUFFERS_CPP98_STL + + static void *UnPack(const void *obj, SparseIndexVector type, const flatbuffers::resolver_function_t *resolver); + flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher = nullptr) const; +@@ -722,7 +875,7 @@ struct SparseIndexVectorUnion { + bool VerifySparseIndexVector(flatbuffers::Verifier &verifier, const void *obj, SparseIndexVector type); + bool VerifySparseIndexVectorVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types); + +-enum BuiltinOperator { ++enum BuiltinOperator : int32_t { + BuiltinOperator_ADD = 0, + BuiltinOperator_AVERAGE_POOL_2D = 1, + BuiltinOperator_CONCATENATION = 2, +@@ -1202,7 +1355,7 @@ inline const char *EnumNameBuiltinOperator(BuiltinOperator e) { + return EnumNamesBuiltinOperator()[index]; + } + +-enum BuiltinOptions { ++enum BuiltinOptions : uint8_t { + BuiltinOptions_NONE = 0, + BuiltinOptions_Conv2DOptions = 1, + BuiltinOptions_DepthwiseConv2DOptions = 2, +@@ -2052,6 +2205,478 @@ template<> struct BuiltinOptionsTraits { + static const BuiltinOptions enum_value = BuiltinOptions_DynamicUpdateSliceOptions; + }; + ++template struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_NONE; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_Conv2DOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_DepthwiseConv2DOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_ConcatEmbeddingsOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_LSHProjectionOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_Pool2DOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_SVDFOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_RNNOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_FullyConnectedOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_SoftmaxOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_ConcatenationOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_AddOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_L2NormOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_LocalResponseNormalizationOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_LSTMOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_ResizeBilinearOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_CallOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_ReshapeOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_SkipGramOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_SpaceToDepthOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_EmbeddingLookupSparseOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_MulOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_PadOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_GatherOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_BatchToSpaceNDOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_SpaceToBatchNDOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_TransposeOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_ReducerOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_SubOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_DivOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_SqueezeOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_SequenceRNNOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_StridedSliceOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_ExpOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_TopKV2Options; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_SplitOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_LogSoftmaxOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_CastOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_DequantizeOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_MaximumMinimumOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_ArgMaxOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_LessOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_NegOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_PadV2Options; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_GreaterOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_GreaterEqualOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_LessEqualOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_SelectOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_SliceOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_TransposeConvOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_SparseToDenseOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_TileOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_ExpandDimsOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_EqualOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_NotEqualOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_ShapeOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_PowOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_ArgMinOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_FakeQuantOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_PackOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_LogicalOrOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_OneHotOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_LogicalAndOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_LogicalNotOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_UnpackOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_FloorDivOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_SquareOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_ZerosLikeOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_FillOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_BidirectionalSequenceLSTMOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_BidirectionalSequenceRNNOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_UnidirectionalSequenceLSTMOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_FloorModOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_RangeOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_ResizeNearestNeighborOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_LeakyReluOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_SquaredDifferenceOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_MirrorPadOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_AbsOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_SplitVOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_UniqueOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_ReverseV2Options; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_AddNOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_GatherNdOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_CosOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_WhereOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_RankOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_ReverseSequenceOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_MatrixDiagOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_QuantizeOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_MatrixSetDiagOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_HardSwishOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_IfOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_WhileOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_DepthToSpaceOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_NonMaxSuppressionV4Options; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_NonMaxSuppressionV5Options; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_ScatterNdOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_SelectV2Options; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_DensifyOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_SegmentSumOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_BatchMatMulOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_CumsumOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_CallOnceOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_BroadcastToOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_Rfft2dOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_Conv3DOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_HashtableOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_HashtableFindOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_HashtableImportOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_HashtableSizeOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_VarHandleOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_ReadVariableOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_AssignVariableOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_RandomOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_BucketizeOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_GeluOptions; ++}; ++ ++template<> struct BuiltinOptionsUnionTraits { ++ static const BuiltinOptions enum_value = BuiltinOptions_DynamicUpdateSliceOptions; ++}; ++ + struct BuiltinOptionsUnion { + BuiltinOptions type; + void *value; +@@ -2060,8 +2685,8 @@ struct BuiltinOptionsUnion { + BuiltinOptionsUnion(BuiltinOptionsUnion&& u) FLATBUFFERS_NOEXCEPT : + type(BuiltinOptions_NONE), value(nullptr) + { std::swap(type, u.type); std::swap(value, u.value); } +- BuiltinOptionsUnion(const BuiltinOptionsUnion &) FLATBUFFERS_NOEXCEPT; +- BuiltinOptionsUnion &operator=(const BuiltinOptionsUnion &u) FLATBUFFERS_NOEXCEPT ++ BuiltinOptionsUnion(const BuiltinOptionsUnion &); ++ BuiltinOptionsUnion &operator=(const BuiltinOptionsUnion &u) + { BuiltinOptionsUnion t(u); std::swap(type, t.type); std::swap(value, t.value); return *this; } + BuiltinOptionsUnion &operator=(BuiltinOptionsUnion &&u) FLATBUFFERS_NOEXCEPT + { std::swap(type, u.type); std::swap(value, u.value); return *this; } +@@ -2069,17 +2694,15 @@ struct BuiltinOptionsUnion { + + void Reset(); + +-#ifndef FLATBUFFERS_CPP98_STL + template + void Set(T&& val) { +- using RT = typename std::remove_reference::type; ++ typedef typename std::remove_reference::type RT; + Reset(); +- type = BuiltinOptionsTraits::enum_value; ++ type = BuiltinOptionsUnionTraits::enum_value; + if (type != BuiltinOptions_NONE) { + value = new RT(std::forward(val)); + } + } +-#endif // FLATBUFFERS_CPP98_STL + + static void *UnPack(const void *obj, BuiltinOptions type, const flatbuffers::resolver_function_t *resolver); + flatbuffers::Offset Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher = nullptr) const; +@@ -3025,7 +3648,7 @@ struct BuiltinOptionsUnion { + bool VerifyBuiltinOptions(flatbuffers::Verifier &verifier, const void *obj, BuiltinOptions type); + bool VerifyBuiltinOptionsVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *values, const flatbuffers::Vector *types); + +-enum Padding { ++enum Padding : int8_t { + Padding_SAME = 0, + Padding_VALID = 1, + Padding_MIN = Padding_SAME, +@@ -3055,7 +3678,7 @@ inline const char *EnumNamePadding(Padding e) { + return EnumNamesPadding()[index]; + } + +-enum ActivationFunctionType { ++enum ActivationFunctionType : int8_t { + ActivationFunctionType_NONE = 0, + ActivationFunctionType_RELU = 1, + ActivationFunctionType_RELU_N1_TO_1 = 2, +@@ -3097,7 +3720,7 @@ inline const char *EnumNameActivationFunctionType(ActivationFunctionType e) { + return EnumNamesActivationFunctionType()[index]; + } + +-enum LSHProjectionType { ++enum LSHProjectionType : int8_t { + LSHProjectionType_UNKNOWN = 0, + LSHProjectionType_SPARSE = 1, + LSHProjectionType_DENSE = 2, +@@ -3130,7 +3753,7 @@ inline const char *EnumNameLSHProjectionType(LSHProjectionType e) { + return EnumNamesLSHProjectionType()[index]; + } + +-enum FullyConnectedOptionsWeightsFormat { ++enum FullyConnectedOptionsWeightsFormat : int8_t { + FullyConnectedOptionsWeightsFormat_DEFAULT = 0, + FullyConnectedOptionsWeightsFormat_SHUFFLED4x16INT8 = 1, + FullyConnectedOptionsWeightsFormat_MIN = FullyConnectedOptionsWeightsFormat_DEFAULT, +@@ -3160,7 +3783,7 @@ inline const char *EnumNameFullyConnectedOptionsWeightsFormat(FullyConnectedOpti + return EnumNamesFullyConnectedOptionsWeightsFormat()[index]; + } + +-enum LSTMKernelType { ++enum LSTMKernelType : int8_t { + LSTMKernelType_FULL = 0, + LSTMKernelType_BASIC = 1, + LSTMKernelType_MIN = LSTMKernelType_FULL, +@@ -3190,7 +3813,7 @@ inline const char *EnumNameLSTMKernelType(LSTMKernelType e) { + return EnumNamesLSTMKernelType()[index]; + } + +-enum CombinerType { ++enum CombinerType : int8_t { + CombinerType_SUM = 0, + CombinerType_MEAN = 1, + CombinerType_SQRTN = 2, +@@ -3223,7 +3846,7 @@ inline const char *EnumNameCombinerType(CombinerType e) { + return EnumNamesCombinerType()[index]; + } + +-enum MirrorPadMode { ++enum MirrorPadMode : int8_t { + MirrorPadMode_REFLECT = 0, + MirrorPadMode_SYMMETRIC = 1, + MirrorPadMode_MIN = MirrorPadMode_REFLECT, +@@ -3253,7 +3876,7 @@ inline const char *EnumNameMirrorPadMode(MirrorPadMode e) { + return EnumNamesMirrorPadMode()[index]; + } + +-enum CustomOptionsFormat { ++enum CustomOptionsFormat : int8_t { + CustomOptionsFormat_FLEXBUFFERS = 0, + CustomOptionsFormat_MIN = CustomOptionsFormat_FLEXBUFFERS, + CustomOptionsFormat_MAX = CustomOptionsFormat_FLEXBUFFERS +@@ -3282,13 +3905,12 @@ inline const char *EnumNameCustomOptionsFormat(CustomOptionsFormat e) { + + struct CustomQuantizationT : public flatbuffers::NativeTable { + typedef CustomQuantization TableType; +- std::vector custom; +- CustomQuantizationT() { +- } ++ std::vector custom{}; + }; + + struct CustomQuantization FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef CustomQuantizationT NativeTableType; ++ typedef CustomQuantizationBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_CUSTOM = 4 + }; +@@ -3307,6 +3929,7 @@ struct CustomQuantization FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct CustomQuantizationBuilder { ++ typedef CustomQuantization Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_custom(flatbuffers::Offset> custom) { +@@ -3316,7 +3939,6 @@ struct CustomQuantizationBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- CustomQuantizationBuilder &operator=(const CustomQuantizationBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -3346,19 +3968,17 @@ flatbuffers::Offset CreateCustomQuantization(flatbuffers::Fl + + struct QuantizationParametersT : public flatbuffers::NativeTable { + typedef QuantizationParameters TableType; +- std::vector min; +- std::vector max; +- std::vector scale; +- std::vector zero_point; +- tflite::QuantizationDetailsUnion details; +- int32_t quantized_dimension; +- QuantizationParametersT() +- : quantized_dimension(0) { +- } ++ std::vector min{}; ++ std::vector max{}; ++ std::vector scale{}; ++ std::vector zero_point{}; ++ tflite::QuantizationDetailsUnion details{}; ++ int32_t quantized_dimension = 0; + }; + + struct QuantizationParameters FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef QuantizationParametersT NativeTableType; ++ typedef QuantizationParametersBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_MIN = 4, + VT_MAX = 6, +@@ -3419,6 +4039,7 @@ template<> inline const tflite::CustomQuantization *QuantizationParameters::deta + } + + struct QuantizationParametersBuilder { ++ typedef QuantizationParameters Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_min(flatbuffers::Offset> min) { +@@ -3446,7 +4067,6 @@ struct QuantizationParametersBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- QuantizationParametersBuilder &operator=(const QuantizationParametersBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -3502,13 +4122,12 @@ flatbuffers::Offset CreateQuantizationParameters(flatbuf + + struct Int32VectorT : public flatbuffers::NativeTable { + typedef Int32Vector TableType; +- std::vector values; +- Int32VectorT() { +- } ++ std::vector values{}; + }; + + struct Int32Vector FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef Int32VectorT NativeTableType; ++ typedef Int32VectorBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_VALUES = 4 + }; +@@ -3527,6 +4146,7 @@ struct Int32Vector FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct Int32VectorBuilder { ++ typedef Int32Vector Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_values(flatbuffers::Offset> values) { +@@ -3536,7 +4156,6 @@ struct Int32VectorBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- Int32VectorBuilder &operator=(const Int32VectorBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -3565,13 +4184,12 @@ flatbuffers::Offset CreateInt32Vector(flatbuffers::FlatBufferBuilde + + struct Uint16VectorT : public flatbuffers::NativeTable { + typedef Uint16Vector TableType; +- std::vector values; +- Uint16VectorT() { +- } ++ std::vector values{}; + }; + + struct Uint16Vector FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef Uint16VectorT NativeTableType; ++ typedef Uint16VectorBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_VALUES = 4 + }; +@@ -3590,6 +4208,7 @@ struct Uint16Vector FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct Uint16VectorBuilder { ++ typedef Uint16Vector Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_values(flatbuffers::Offset> values) { +@@ -3599,7 +4218,6 @@ struct Uint16VectorBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- Uint16VectorBuilder &operator=(const Uint16VectorBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -3629,13 +4247,12 @@ flatbuffers::Offset CreateUint16Vector(flatbuffers::FlatBufferBuil + + struct Uint8VectorT : public flatbuffers::NativeTable { + typedef Uint8Vector TableType; +- std::vector values; +- Uint8VectorT() { +- } ++ std::vector values{}; + }; + + struct Uint8Vector FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef Uint8VectorT NativeTableType; ++ typedef Uint8VectorBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_VALUES = 4 + }; +@@ -3654,6 +4271,7 @@ struct Uint8Vector FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct Uint8VectorBuilder { ++ typedef Uint8Vector Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_values(flatbuffers::Offset> values) { +@@ -3663,7 +4281,6 @@ struct Uint8VectorBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- Uint8VectorBuilder &operator=(const Uint8VectorBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -3693,18 +4310,15 @@ flatbuffers::Offset CreateUint8Vector(flatbuffers::FlatBufferBuilde + + struct DimensionMetadataT : public flatbuffers::NativeTable { + typedef DimensionMetadata TableType; +- tflite::DimensionType format; +- int32_t dense_size; +- tflite::SparseIndexVectorUnion array_segments; +- tflite::SparseIndexVectorUnion array_indices; +- DimensionMetadataT() +- : format(tflite::DimensionType_DENSE), +- dense_size(0) { +- } ++ tflite::DimensionType format = tflite::DimensionType_DENSE; ++ int32_t dense_size = 0; ++ tflite::SparseIndexVectorUnion array_segments{}; ++ tflite::SparseIndexVectorUnion array_indices{}; + }; + + struct DimensionMetadata FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef DimensionMetadataT NativeTableType; ++ typedef DimensionMetadataBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_FORMAT = 4, + VT_DENSE_SIZE = 6, +@@ -3793,6 +4407,7 @@ template<> inline const tflite::Uint8Vector *DimensionMetadata::array_indices_as + } + + struct DimensionMetadataBuilder { ++ typedef DimensionMetadata Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_format(tflite::DimensionType format) { +@@ -3817,7 +4432,6 @@ struct DimensionMetadataBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- DimensionMetadataBuilder &operator=(const DimensionMetadataBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -3847,15 +4461,14 @@ flatbuffers::Offset CreateDimensionMetadata(flatbuffers::Flat + + struct SparsityParametersT : public flatbuffers::NativeTable { + typedef SparsityParameters TableType; +- std::vector traversal_order; +- std::vector block_map; +- std::vector> dim_metadata; +- SparsityParametersT() { +- } ++ std::vector traversal_order{}; ++ std::vector block_map{}; ++ std::vector> dim_metadata{}; + }; + + struct SparsityParameters FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef SparsityParametersT NativeTableType; ++ typedef SparsityParametersBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_TRAVERSAL_ORDER = 4, + VT_BLOCK_MAP = 6, +@@ -3887,6 +4500,7 @@ struct SparsityParameters FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct SparsityParametersBuilder { ++ typedef SparsityParameters Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_traversal_order(flatbuffers::Offset> traversal_order) { +@@ -3902,7 +4516,6 @@ struct SparsityParametersBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- SparsityParametersBuilder &operator=(const SparsityParametersBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -3941,23 +4554,19 @@ flatbuffers::Offset CreateSparsityParameters(flatbuffers::Fl + + struct TensorT : public flatbuffers::NativeTable { + typedef Tensor TableType; +- std::vector shape; +- tflite::TensorType type; +- uint32_t buffer; +- std::string name; +- std::unique_ptr quantization; +- bool is_variable; +- std::unique_ptr sparsity; +- std::vector shape_signature; +- TensorT() +- : type(tflite::TensorType_FLOAT32), +- buffer(0), +- is_variable(false) { +- } ++ std::vector shape{}; ++ tflite::TensorType type = tflite::TensorType_FLOAT32; ++ uint32_t buffer = 0; ++ std::string name{}; ++ std::unique_ptr quantization{}; ++ bool is_variable = false; ++ std::unique_ptr sparsity{}; ++ std::vector shape_signature{}; + }; + + struct Tensor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef TensorT NativeTableType; ++ typedef TensorBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_SHAPE = 4, + VT_TYPE = 6, +@@ -4015,6 +4624,7 @@ struct Tensor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct TensorBuilder { ++ typedef Tensor Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_shape(flatbuffers::Offset> shape) { +@@ -4045,7 +4655,6 @@ struct TensorBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- TensorBuilder &operator=(const TensorBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -4104,24 +4713,17 @@ flatbuffers::Offset CreateTensor(flatbuffers::FlatBufferBuilder &_fbb, c + + struct Conv2DOptionsT : public flatbuffers::NativeTable { + typedef Conv2DOptions TableType; +- tflite::Padding padding; +- int32_t stride_w; +- int32_t stride_h; +- tflite::ActivationFunctionType fused_activation_function; +- int32_t dilation_w_factor; +- int32_t dilation_h_factor; +- Conv2DOptionsT() +- : padding(tflite::Padding_SAME), +- stride_w(0), +- stride_h(0), +- fused_activation_function(tflite::ActivationFunctionType_NONE), +- dilation_w_factor(1), +- dilation_h_factor(1) { +- } ++ tflite::Padding padding = tflite::Padding_SAME; ++ int32_t stride_w = 0; ++ int32_t stride_h = 0; ++ tflite::ActivationFunctionType fused_activation_function = tflite::ActivationFunctionType_NONE; ++ int32_t dilation_w_factor = 1; ++ int32_t dilation_h_factor = 1; + }; + + struct Conv2DOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef Conv2DOptionsT NativeTableType; ++ typedef Conv2DOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_PADDING = 4, + VT_STRIDE_W = 6, +@@ -4164,6 +4766,7 @@ struct Conv2DOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct Conv2DOptionsBuilder { ++ typedef Conv2DOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_padding(tflite::Padding padding) { +@@ -4188,7 +4791,6 @@ struct Conv2DOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- Conv2DOptionsBuilder &operator=(const Conv2DOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -4218,28 +4820,19 @@ flatbuffers::Offset CreateConv2DOptions(flatbuffers::FlatBufferBu + + struct Conv3DOptionsT : public flatbuffers::NativeTable { + typedef Conv3DOptions TableType; +- tflite::Padding padding; +- int32_t stride_d; +- int32_t stride_w; +- int32_t stride_h; +- tflite::ActivationFunctionType fused_activation_function; +- int32_t dilation_d_factor; +- int32_t dilation_w_factor; +- int32_t dilation_h_factor; +- Conv3DOptionsT() +- : padding(tflite::Padding_SAME), +- stride_d(0), +- stride_w(0), +- stride_h(0), +- fused_activation_function(tflite::ActivationFunctionType_NONE), +- dilation_d_factor(1), +- dilation_w_factor(1), +- dilation_h_factor(1) { +- } ++ tflite::Padding padding = tflite::Padding_SAME; ++ int32_t stride_d = 0; ++ int32_t stride_w = 0; ++ int32_t stride_h = 0; ++ tflite::ActivationFunctionType fused_activation_function = tflite::ActivationFunctionType_NONE; ++ int32_t dilation_d_factor = 1; ++ int32_t dilation_w_factor = 1; ++ int32_t dilation_h_factor = 1; + }; + + struct Conv3DOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef Conv3DOptionsT NativeTableType; ++ typedef Conv3DOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_PADDING = 4, + VT_STRIDE_D = 6, +@@ -4292,6 +4885,7 @@ struct Conv3DOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct Conv3DOptionsBuilder { ++ typedef Conv3DOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_padding(tflite::Padding padding) { +@@ -4322,7 +4916,6 @@ struct Conv3DOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- Conv3DOptionsBuilder &operator=(const Conv3DOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -4356,24 +4949,17 @@ flatbuffers::Offset CreateConv3DOptions(flatbuffers::FlatBufferBu + + struct Pool2DOptionsT : public flatbuffers::NativeTable { + typedef Pool2DOptions TableType; +- tflite::Padding padding; +- int32_t stride_w; +- int32_t stride_h; +- int32_t filter_width; +- int32_t filter_height; +- tflite::ActivationFunctionType fused_activation_function; +- Pool2DOptionsT() +- : padding(tflite::Padding_SAME), +- stride_w(0), +- stride_h(0), +- filter_width(0), +- filter_height(0), +- fused_activation_function(tflite::ActivationFunctionType_NONE) { +- } ++ tflite::Padding padding = tflite::Padding_SAME; ++ int32_t stride_w = 0; ++ int32_t stride_h = 0; ++ int32_t filter_width = 0; ++ int32_t filter_height = 0; ++ tflite::ActivationFunctionType fused_activation_function = tflite::ActivationFunctionType_NONE; + }; + + struct Pool2DOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef Pool2DOptionsT NativeTableType; ++ typedef Pool2DOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_PADDING = 4, + VT_STRIDE_W = 6, +@@ -4416,6 +5002,7 @@ struct Pool2DOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct Pool2DOptionsBuilder { ++ typedef Pool2DOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_padding(tflite::Padding padding) { +@@ -4440,7 +5027,6 @@ struct Pool2DOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- Pool2DOptionsBuilder &operator=(const Pool2DOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -4470,26 +5056,18 @@ flatbuffers::Offset CreatePool2DOptions(flatbuffers::FlatBufferBu + + struct DepthwiseConv2DOptionsT : public flatbuffers::NativeTable { + typedef DepthwiseConv2DOptions TableType; +- tflite::Padding padding; +- int32_t stride_w; +- int32_t stride_h; +- int32_t depth_multiplier; +- tflite::ActivationFunctionType fused_activation_function; +- int32_t dilation_w_factor; +- int32_t dilation_h_factor; +- DepthwiseConv2DOptionsT() +- : padding(tflite::Padding_SAME), +- stride_w(0), +- stride_h(0), +- depth_multiplier(0), +- fused_activation_function(tflite::ActivationFunctionType_NONE), +- dilation_w_factor(1), +- dilation_h_factor(1) { +- } ++ tflite::Padding padding = tflite::Padding_SAME; ++ int32_t stride_w = 0; ++ int32_t stride_h = 0; ++ int32_t depth_multiplier = 0; ++ tflite::ActivationFunctionType fused_activation_function = tflite::ActivationFunctionType_NONE; ++ int32_t dilation_w_factor = 1; ++ int32_t dilation_h_factor = 1; + }; + + struct DepthwiseConv2DOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef DepthwiseConv2DOptionsT NativeTableType; ++ typedef DepthwiseConv2DOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_PADDING = 4, + VT_STRIDE_W = 6, +@@ -4537,6 +5115,7 @@ struct DepthwiseConv2DOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Tab + }; + + struct DepthwiseConv2DOptionsBuilder { ++ typedef DepthwiseConv2DOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_padding(tflite::Padding padding) { +@@ -4564,7 +5143,6 @@ struct DepthwiseConv2DOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- DepthwiseConv2DOptionsBuilder &operator=(const DepthwiseConv2DOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -4596,16 +5174,14 @@ flatbuffers::Offset CreateDepthwiseConv2DOptions(flatbuf + + struct ConcatEmbeddingsOptionsT : public flatbuffers::NativeTable { + typedef ConcatEmbeddingsOptions TableType; +- int32_t num_channels; +- std::vector num_columns_per_channel; +- std::vector embedding_dim_per_channel; +- ConcatEmbeddingsOptionsT() +- : num_channels(0) { +- } ++ int32_t num_channels = 0; ++ std::vector num_columns_per_channel{}; ++ std::vector embedding_dim_per_channel{}; + }; + + struct ConcatEmbeddingsOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef ConcatEmbeddingsOptionsT NativeTableType; ++ typedef ConcatEmbeddingsOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_NUM_CHANNELS = 4, + VT_NUM_COLUMNS_PER_CHANNEL = 6, +@@ -4635,6 +5211,7 @@ struct ConcatEmbeddingsOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Ta + }; + + struct ConcatEmbeddingsOptionsBuilder { ++ typedef ConcatEmbeddingsOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_num_channels(int32_t num_channels) { +@@ -4650,7 +5227,6 @@ struct ConcatEmbeddingsOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- ConcatEmbeddingsOptionsBuilder &operator=(const ConcatEmbeddingsOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -4688,14 +5264,12 @@ flatbuffers::Offset CreateConcatEmbeddingsOptions(flatb + + struct LSHProjectionOptionsT : public flatbuffers::NativeTable { + typedef LSHProjectionOptions TableType; +- tflite::LSHProjectionType type; +- LSHProjectionOptionsT() +- : type(tflite::LSHProjectionType_UNKNOWN) { +- } ++ tflite::LSHProjectionType type = tflite::LSHProjectionType_UNKNOWN; + }; + + struct LSHProjectionOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef LSHProjectionOptionsT NativeTableType; ++ typedef LSHProjectionOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_TYPE = 4 + }; +@@ -4713,6 +5287,7 @@ struct LSHProjectionOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table + }; + + struct LSHProjectionOptionsBuilder { ++ typedef LSHProjectionOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_type(tflite::LSHProjectionType type) { +@@ -4722,7 +5297,6 @@ struct LSHProjectionOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- LSHProjectionOptionsBuilder &operator=(const LSHProjectionOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -4742,18 +5316,14 @@ flatbuffers::Offset CreateLSHProjectionOptions(flatbuffers + + struct SVDFOptionsT : public flatbuffers::NativeTable { + typedef SVDFOptions TableType; +- int32_t rank; +- tflite::ActivationFunctionType fused_activation_function; +- bool asymmetric_quantize_inputs; +- SVDFOptionsT() +- : rank(0), +- fused_activation_function(tflite::ActivationFunctionType_NONE), +- asymmetric_quantize_inputs(false) { +- } ++ int32_t rank = 0; ++ tflite::ActivationFunctionType fused_activation_function = tflite::ActivationFunctionType_NONE; ++ bool asymmetric_quantize_inputs = false; + }; + + struct SVDFOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef SVDFOptionsT NativeTableType; ++ typedef SVDFOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_RANK = 4, + VT_FUSED_ACTIVATION_FUNCTION = 6, +@@ -4781,6 +5351,7 @@ struct SVDFOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct SVDFOptionsBuilder { ++ typedef SVDFOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_rank(int32_t rank) { +@@ -4796,7 +5367,6 @@ struct SVDFOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- SVDFOptionsBuilder &operator=(const SVDFOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -4820,16 +5390,13 @@ flatbuffers::Offset CreateSVDFOptions(flatbuffers::FlatBufferBuilde + + struct RNNOptionsT : public flatbuffers::NativeTable { + typedef RNNOptions TableType; +- tflite::ActivationFunctionType fused_activation_function; +- bool asymmetric_quantize_inputs; +- RNNOptionsT() +- : fused_activation_function(tflite::ActivationFunctionType_NONE), +- asymmetric_quantize_inputs(false) { +- } ++ tflite::ActivationFunctionType fused_activation_function = tflite::ActivationFunctionType_NONE; ++ bool asymmetric_quantize_inputs = false; + }; + + struct RNNOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef RNNOptionsT NativeTableType; ++ typedef RNNOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_FUSED_ACTIVATION_FUNCTION = 4, + VT_ASYMMETRIC_QUANTIZE_INPUTS = 6 +@@ -4852,6 +5419,7 @@ struct RNNOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct RNNOptionsBuilder { ++ typedef RNNOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_fused_activation_function(tflite::ActivationFunctionType fused_activation_function) { +@@ -4864,7 +5432,6 @@ struct RNNOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- RNNOptionsBuilder &operator=(const RNNOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -4886,18 +5453,14 @@ flatbuffers::Offset CreateRNNOptions(flatbuffers::FlatBufferBuilder + + struct SequenceRNNOptionsT : public flatbuffers::NativeTable { + typedef SequenceRNNOptions TableType; +- bool time_major; +- tflite::ActivationFunctionType fused_activation_function; +- bool asymmetric_quantize_inputs; +- SequenceRNNOptionsT() +- : time_major(false), +- fused_activation_function(tflite::ActivationFunctionType_NONE), +- asymmetric_quantize_inputs(false) { +- } ++ bool time_major = false; ++ tflite::ActivationFunctionType fused_activation_function = tflite::ActivationFunctionType_NONE; ++ bool asymmetric_quantize_inputs = false; + }; + + struct SequenceRNNOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef SequenceRNNOptionsT NativeTableType; ++ typedef SequenceRNNOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_TIME_MAJOR = 4, + VT_FUSED_ACTIVATION_FUNCTION = 6, +@@ -4925,6 +5488,7 @@ struct SequenceRNNOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct SequenceRNNOptionsBuilder { ++ typedef SequenceRNNOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_time_major(bool time_major) { +@@ -4940,7 +5504,6 @@ struct SequenceRNNOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- SequenceRNNOptionsBuilder &operator=(const SequenceRNNOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -4964,20 +5527,15 @@ flatbuffers::Offset CreateSequenceRNNOptions(flatbuffers::Fl + + struct BidirectionalSequenceRNNOptionsT : public flatbuffers::NativeTable { + typedef BidirectionalSequenceRNNOptions TableType; +- bool time_major; +- tflite::ActivationFunctionType fused_activation_function; +- bool merge_outputs; +- bool asymmetric_quantize_inputs; +- BidirectionalSequenceRNNOptionsT() +- : time_major(false), +- fused_activation_function(tflite::ActivationFunctionType_NONE), +- merge_outputs(false), +- asymmetric_quantize_inputs(false) { +- } ++ bool time_major = false; ++ tflite::ActivationFunctionType fused_activation_function = tflite::ActivationFunctionType_NONE; ++ bool merge_outputs = false; ++ bool asymmetric_quantize_inputs = false; + }; + + struct BidirectionalSequenceRNNOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef BidirectionalSequenceRNNOptionsT NativeTableType; ++ typedef BidirectionalSequenceRNNOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_TIME_MAJOR = 4, + VT_FUSED_ACTIVATION_FUNCTION = 6, +@@ -5010,6 +5568,7 @@ struct BidirectionalSequenceRNNOptions FLATBUFFERS_FINAL_CLASS : private flatbuf + }; + + struct BidirectionalSequenceRNNOptionsBuilder { ++ typedef BidirectionalSequenceRNNOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_time_major(bool time_major) { +@@ -5028,7 +5587,6 @@ struct BidirectionalSequenceRNNOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- BidirectionalSequenceRNNOptionsBuilder &operator=(const BidirectionalSequenceRNNOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -5054,20 +5612,15 @@ flatbuffers::Offset CreateBidirectionalSequence + + struct FullyConnectedOptionsT : public flatbuffers::NativeTable { + typedef FullyConnectedOptions TableType; +- tflite::ActivationFunctionType fused_activation_function; +- tflite::FullyConnectedOptionsWeightsFormat weights_format; +- bool keep_num_dims; +- bool asymmetric_quantize_inputs; +- FullyConnectedOptionsT() +- : fused_activation_function(tflite::ActivationFunctionType_NONE), +- weights_format(tflite::FullyConnectedOptionsWeightsFormat_DEFAULT), +- keep_num_dims(false), +- asymmetric_quantize_inputs(false) { +- } ++ tflite::ActivationFunctionType fused_activation_function = tflite::ActivationFunctionType_NONE; ++ tflite::FullyConnectedOptionsWeightsFormat weights_format = tflite::FullyConnectedOptionsWeightsFormat_DEFAULT; ++ bool keep_num_dims = false; ++ bool asymmetric_quantize_inputs = false; + }; + + struct FullyConnectedOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef FullyConnectedOptionsT NativeTableType; ++ typedef FullyConnectedOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_FUSED_ACTIVATION_FUNCTION = 4, + VT_WEIGHTS_FORMAT = 6, +@@ -5100,6 +5653,7 @@ struct FullyConnectedOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Tabl + }; + + struct FullyConnectedOptionsBuilder { ++ typedef FullyConnectedOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_fused_activation_function(tflite::ActivationFunctionType fused_activation_function) { +@@ -5118,7 +5672,6 @@ struct FullyConnectedOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- FullyConnectedOptionsBuilder &operator=(const FullyConnectedOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -5144,14 +5697,12 @@ flatbuffers::Offset CreateFullyConnectedOptions(flatbuffe + + struct SoftmaxOptionsT : public flatbuffers::NativeTable { + typedef SoftmaxOptions TableType; +- float beta; +- SoftmaxOptionsT() +- : beta(0.0f) { +- } ++ float beta = 0.0f; + }; + + struct SoftmaxOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef SoftmaxOptionsT NativeTableType; ++ typedef SoftmaxOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_BETA = 4 + }; +@@ -5169,6 +5720,7 @@ struct SoftmaxOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct SoftmaxOptionsBuilder { ++ typedef SoftmaxOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_beta(float beta) { +@@ -5178,7 +5730,6 @@ struct SoftmaxOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- SoftmaxOptionsBuilder &operator=(const SoftmaxOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -5198,16 +5749,13 @@ flatbuffers::Offset CreateSoftmaxOptions(flatbuffers::FlatBuffer + + struct ConcatenationOptionsT : public flatbuffers::NativeTable { + typedef ConcatenationOptions TableType; +- int32_t axis; +- tflite::ActivationFunctionType fused_activation_function; +- ConcatenationOptionsT() +- : axis(0), +- fused_activation_function(tflite::ActivationFunctionType_NONE) { +- } ++ int32_t axis = 0; ++ tflite::ActivationFunctionType fused_activation_function = tflite::ActivationFunctionType_NONE; + }; + + struct ConcatenationOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef ConcatenationOptionsT NativeTableType; ++ typedef ConcatenationOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_AXIS = 4, + VT_FUSED_ACTIVATION_FUNCTION = 6 +@@ -5230,6 +5778,7 @@ struct ConcatenationOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table + }; + + struct ConcatenationOptionsBuilder { ++ typedef ConcatenationOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_axis(int32_t axis) { +@@ -5242,7 +5791,6 @@ struct ConcatenationOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- ConcatenationOptionsBuilder &operator=(const ConcatenationOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -5264,16 +5812,13 @@ flatbuffers::Offset CreateConcatenationOptions(flatbuffers + + struct AddOptionsT : public flatbuffers::NativeTable { + typedef AddOptions TableType; +- tflite::ActivationFunctionType fused_activation_function; +- bool pot_scale_int16; +- AddOptionsT() +- : fused_activation_function(tflite::ActivationFunctionType_NONE), +- pot_scale_int16(true) { +- } ++ tflite::ActivationFunctionType fused_activation_function = tflite::ActivationFunctionType_NONE; ++ bool pot_scale_int16 = true; + }; + + struct AddOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef AddOptionsT NativeTableType; ++ typedef AddOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_FUSED_ACTIVATION_FUNCTION = 4, + VT_POT_SCALE_INT16 = 6 +@@ -5296,6 +5841,7 @@ struct AddOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct AddOptionsBuilder { ++ typedef AddOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_fused_activation_function(tflite::ActivationFunctionType fused_activation_function) { +@@ -5308,7 +5854,6 @@ struct AddOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- AddOptionsBuilder &operator=(const AddOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -5330,14 +5875,12 @@ flatbuffers::Offset CreateAddOptions(flatbuffers::FlatBufferBuilder + + struct MulOptionsT : public flatbuffers::NativeTable { + typedef MulOptions TableType; +- tflite::ActivationFunctionType fused_activation_function; +- MulOptionsT() +- : fused_activation_function(tflite::ActivationFunctionType_NONE) { +- } ++ tflite::ActivationFunctionType fused_activation_function = tflite::ActivationFunctionType_NONE; + }; + + struct MulOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef MulOptionsT NativeTableType; ++ typedef MulOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_FUSED_ACTIVATION_FUNCTION = 4 + }; +@@ -5355,6 +5898,7 @@ struct MulOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct MulOptionsBuilder { ++ typedef MulOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_fused_activation_function(tflite::ActivationFunctionType fused_activation_function) { +@@ -5364,7 +5908,6 @@ struct MulOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- MulOptionsBuilder &operator=(const MulOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -5384,14 +5927,12 @@ flatbuffers::Offset CreateMulOptions(flatbuffers::FlatBufferBuilder + + struct L2NormOptionsT : public flatbuffers::NativeTable { + typedef L2NormOptions TableType; +- tflite::ActivationFunctionType fused_activation_function; +- L2NormOptionsT() +- : fused_activation_function(tflite::ActivationFunctionType_NONE) { +- } ++ tflite::ActivationFunctionType fused_activation_function = tflite::ActivationFunctionType_NONE; + }; + + struct L2NormOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef L2NormOptionsT NativeTableType; ++ typedef L2NormOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_FUSED_ACTIVATION_FUNCTION = 4 + }; +@@ -5409,6 +5950,7 @@ struct L2NormOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct L2NormOptionsBuilder { ++ typedef L2NormOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_fused_activation_function(tflite::ActivationFunctionType fused_activation_function) { +@@ -5418,7 +5960,6 @@ struct L2NormOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- L2NormOptionsBuilder &operator=(const L2NormOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -5438,20 +5979,15 @@ flatbuffers::Offset CreateL2NormOptions(flatbuffers::FlatBufferBu + + struct LocalResponseNormalizationOptionsT : public flatbuffers::NativeTable { + typedef LocalResponseNormalizationOptions TableType; +- int32_t radius; +- float bias; +- float alpha; +- float beta; +- LocalResponseNormalizationOptionsT() +- : radius(0), +- bias(0.0f), +- alpha(0.0f), +- beta(0.0f) { +- } ++ int32_t radius = 0; ++ float bias = 0.0f; ++ float alpha = 0.0f; ++ float beta = 0.0f; + }; + + struct LocalResponseNormalizationOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef LocalResponseNormalizationOptionsT NativeTableType; ++ typedef LocalResponseNormalizationOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_RADIUS = 4, + VT_BIAS = 6, +@@ -5484,6 +6020,7 @@ struct LocalResponseNormalizationOptions FLATBUFFERS_FINAL_CLASS : private flatb + }; + + struct LocalResponseNormalizationOptionsBuilder { ++ typedef LocalResponseNormalizationOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_radius(int32_t radius) { +@@ -5502,7 +6039,6 @@ struct LocalResponseNormalizationOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- LocalResponseNormalizationOptionsBuilder &operator=(const LocalResponseNormalizationOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -5528,22 +6064,16 @@ flatbuffers::Offset CreateLocalResponseNormal + + struct LSTMOptionsT : public flatbuffers::NativeTable { + typedef LSTMOptions TableType; +- tflite::ActivationFunctionType fused_activation_function; +- float cell_clip; +- float proj_clip; +- tflite::LSTMKernelType kernel_type; +- bool asymmetric_quantize_inputs; +- LSTMOptionsT() +- : fused_activation_function(tflite::ActivationFunctionType_NONE), +- cell_clip(0.0f), +- proj_clip(0.0f), +- kernel_type(tflite::LSTMKernelType_FULL), +- asymmetric_quantize_inputs(false) { +- } ++ tflite::ActivationFunctionType fused_activation_function = tflite::ActivationFunctionType_NONE; ++ float cell_clip = 0.0f; ++ float proj_clip = 0.0f; ++ tflite::LSTMKernelType kernel_type = tflite::LSTMKernelType_FULL; ++ bool asymmetric_quantize_inputs = false; + }; + + struct LSTMOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef LSTMOptionsT NativeTableType; ++ typedef LSTMOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_FUSED_ACTIVATION_FUNCTION = 4, + VT_CELL_CLIP = 6, +@@ -5581,6 +6111,7 @@ struct LSTMOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct LSTMOptionsBuilder { ++ typedef LSTMOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_fused_activation_function(tflite::ActivationFunctionType fused_activation_function) { +@@ -5602,7 +6133,6 @@ struct LSTMOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- LSTMOptionsBuilder &operator=(const LSTMOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -5630,22 +6160,16 @@ flatbuffers::Offset CreateLSTMOptions(flatbuffers::FlatBufferBuilde + + struct UnidirectionalSequenceLSTMOptionsT : public flatbuffers::NativeTable { + typedef UnidirectionalSequenceLSTMOptions TableType; +- tflite::ActivationFunctionType fused_activation_function; +- float cell_clip; +- float proj_clip; +- bool time_major; +- bool asymmetric_quantize_inputs; +- UnidirectionalSequenceLSTMOptionsT() +- : fused_activation_function(tflite::ActivationFunctionType_NONE), +- cell_clip(0.0f), +- proj_clip(0.0f), +- time_major(false), +- asymmetric_quantize_inputs(false) { +- } ++ tflite::ActivationFunctionType fused_activation_function = tflite::ActivationFunctionType_NONE; ++ float cell_clip = 0.0f; ++ float proj_clip = 0.0f; ++ bool time_major = false; ++ bool asymmetric_quantize_inputs = false; + }; + + struct UnidirectionalSequenceLSTMOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef UnidirectionalSequenceLSTMOptionsT NativeTableType; ++ typedef UnidirectionalSequenceLSTMOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_FUSED_ACTIVATION_FUNCTION = 4, + VT_CELL_CLIP = 6, +@@ -5683,6 +6207,7 @@ struct UnidirectionalSequenceLSTMOptions FLATBUFFERS_FINAL_CLASS : private flatb + }; + + struct UnidirectionalSequenceLSTMOptionsBuilder { ++ typedef UnidirectionalSequenceLSTMOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_fused_activation_function(tflite::ActivationFunctionType fused_activation_function) { +@@ -5704,7 +6229,6 @@ struct UnidirectionalSequenceLSTMOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- UnidirectionalSequenceLSTMOptionsBuilder &operator=(const UnidirectionalSequenceLSTMOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -5732,24 +6256,17 @@ flatbuffers::Offset CreateUnidirectionalSeque + + struct BidirectionalSequenceLSTMOptionsT : public flatbuffers::NativeTable { + typedef BidirectionalSequenceLSTMOptions TableType; +- tflite::ActivationFunctionType fused_activation_function; +- float cell_clip; +- float proj_clip; +- bool merge_outputs; +- bool time_major; +- bool asymmetric_quantize_inputs; +- BidirectionalSequenceLSTMOptionsT() +- : fused_activation_function(tflite::ActivationFunctionType_NONE), +- cell_clip(0.0f), +- proj_clip(0.0f), +- merge_outputs(false), +- time_major(true), +- asymmetric_quantize_inputs(false) { +- } ++ tflite::ActivationFunctionType fused_activation_function = tflite::ActivationFunctionType_NONE; ++ float cell_clip = 0.0f; ++ float proj_clip = 0.0f; ++ bool merge_outputs = false; ++ bool time_major = true; ++ bool asymmetric_quantize_inputs = false; + }; + + struct BidirectionalSequenceLSTMOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef BidirectionalSequenceLSTMOptionsT NativeTableType; ++ typedef BidirectionalSequenceLSTMOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_FUSED_ACTIVATION_FUNCTION = 4, + VT_CELL_CLIP = 6, +@@ -5792,6 +6309,7 @@ struct BidirectionalSequenceLSTMOptions FLATBUFFERS_FINAL_CLASS : private flatbu + }; + + struct BidirectionalSequenceLSTMOptionsBuilder { ++ typedef BidirectionalSequenceLSTMOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_fused_activation_function(tflite::ActivationFunctionType fused_activation_function) { +@@ -5816,7 +6334,6 @@ struct BidirectionalSequenceLSTMOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- BidirectionalSequenceLSTMOptionsBuilder &operator=(const BidirectionalSequenceLSTMOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -5846,16 +6363,13 @@ flatbuffers::Offset CreateBidirectionalSequenc + + struct ResizeBilinearOptionsT : public flatbuffers::NativeTable { + typedef ResizeBilinearOptions TableType; +- bool align_corners; +- bool half_pixel_centers; +- ResizeBilinearOptionsT() +- : align_corners(false), +- half_pixel_centers(false) { +- } ++ bool align_corners = false; ++ bool half_pixel_centers = false; + }; + + struct ResizeBilinearOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef ResizeBilinearOptionsT NativeTableType; ++ typedef ResizeBilinearOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_ALIGN_CORNERS = 8, + VT_HALF_PIXEL_CENTERS = 10 +@@ -5878,6 +6392,7 @@ struct ResizeBilinearOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Tabl + }; + + struct ResizeBilinearOptionsBuilder { ++ typedef ResizeBilinearOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_align_corners(bool align_corners) { +@@ -5890,7 +6405,6 @@ struct ResizeBilinearOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- ResizeBilinearOptionsBuilder &operator=(const ResizeBilinearOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -5912,16 +6426,13 @@ flatbuffers::Offset CreateResizeBilinearOptions(flatbuffe + + struct ResizeNearestNeighborOptionsT : public flatbuffers::NativeTable { + typedef ResizeNearestNeighborOptions TableType; +- bool align_corners; +- bool half_pixel_centers; +- ResizeNearestNeighborOptionsT() +- : align_corners(false), +- half_pixel_centers(false) { +- } ++ bool align_corners = false; ++ bool half_pixel_centers = false; + }; + + struct ResizeNearestNeighborOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef ResizeNearestNeighborOptionsT NativeTableType; ++ typedef ResizeNearestNeighborOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_ALIGN_CORNERS = 4, + VT_HALF_PIXEL_CENTERS = 6 +@@ -5944,6 +6455,7 @@ struct ResizeNearestNeighborOptions FLATBUFFERS_FINAL_CLASS : private flatbuffer + }; + + struct ResizeNearestNeighborOptionsBuilder { ++ typedef ResizeNearestNeighborOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_align_corners(bool align_corners) { +@@ -5956,7 +6468,6 @@ struct ResizeNearestNeighborOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- ResizeNearestNeighborOptionsBuilder &operator=(const ResizeNearestNeighborOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -5978,14 +6489,12 @@ flatbuffers::Offset CreateResizeNearestNeighborOpt + + struct CallOptionsT : public flatbuffers::NativeTable { + typedef CallOptions TableType; +- uint32_t subgraph; +- CallOptionsT() +- : subgraph(0) { +- } ++ uint32_t subgraph = 0; + }; + + struct CallOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef CallOptionsT NativeTableType; ++ typedef CallOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_SUBGRAPH = 4 + }; +@@ -6003,6 +6512,7 @@ struct CallOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct CallOptionsBuilder { ++ typedef CallOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_subgraph(uint32_t subgraph) { +@@ -6012,7 +6522,6 @@ struct CallOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- CallOptionsBuilder &operator=(const CallOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -6032,12 +6541,11 @@ flatbuffers::Offset CreateCallOptions(flatbuffers::FlatBufferBuilde + + struct PadOptionsT : public flatbuffers::NativeTable { + typedef PadOptions TableType; +- PadOptionsT() { +- } + }; + + struct PadOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef PadOptionsT NativeTableType; ++ typedef PadOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -6048,13 +6556,13 @@ struct PadOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct PadOptionsBuilder { ++ typedef PadOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit PadOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- PadOptionsBuilder &operator=(const PadOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -6072,12 +6580,11 @@ flatbuffers::Offset CreatePadOptions(flatbuffers::FlatBufferBuilder + + struct PadV2OptionsT : public flatbuffers::NativeTable { + typedef PadV2Options TableType; +- PadV2OptionsT() { +- } + }; + + struct PadV2Options FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef PadV2OptionsT NativeTableType; ++ typedef PadV2OptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -6088,13 +6595,13 @@ struct PadV2Options FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct PadV2OptionsBuilder { ++ typedef PadV2Options Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit PadV2OptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- PadV2OptionsBuilder &operator=(const PadV2OptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -6112,13 +6619,12 @@ flatbuffers::Offset CreatePadV2Options(flatbuffers::FlatBufferBuil + + struct ReshapeOptionsT : public flatbuffers::NativeTable { + typedef ReshapeOptions TableType; +- std::vector new_shape; +- ReshapeOptionsT() { +- } ++ std::vector new_shape{}; + }; + + struct ReshapeOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef ReshapeOptionsT NativeTableType; ++ typedef ReshapeOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_NEW_SHAPE = 4 + }; +@@ -6137,6 +6643,7 @@ struct ReshapeOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct ReshapeOptionsBuilder { ++ typedef ReshapeOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_new_shape(flatbuffers::Offset> new_shape) { +@@ -6146,7 +6653,6 @@ struct ReshapeOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- ReshapeOptionsBuilder &operator=(const ReshapeOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -6175,12 +6681,11 @@ flatbuffers::Offset CreateReshapeOptions(flatbuffers::FlatBuffer + + struct SpaceToBatchNDOptionsT : public flatbuffers::NativeTable { + typedef SpaceToBatchNDOptions TableType; +- SpaceToBatchNDOptionsT() { +- } + }; + + struct SpaceToBatchNDOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef SpaceToBatchNDOptionsT NativeTableType; ++ typedef SpaceToBatchNDOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -6191,13 +6696,13 @@ struct SpaceToBatchNDOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Tabl + }; + + struct SpaceToBatchNDOptionsBuilder { ++ typedef SpaceToBatchNDOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit SpaceToBatchNDOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- SpaceToBatchNDOptionsBuilder &operator=(const SpaceToBatchNDOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -6215,12 +6720,11 @@ flatbuffers::Offset CreateSpaceToBatchNDOptions(flatbuffe + + struct BatchToSpaceNDOptionsT : public flatbuffers::NativeTable { + typedef BatchToSpaceNDOptions TableType; +- BatchToSpaceNDOptionsT() { +- } + }; + + struct BatchToSpaceNDOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef BatchToSpaceNDOptionsT NativeTableType; ++ typedef BatchToSpaceNDOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -6231,13 +6735,13 @@ struct BatchToSpaceNDOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Tabl + }; + + struct BatchToSpaceNDOptionsBuilder { ++ typedef BatchToSpaceNDOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit BatchToSpaceNDOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- BatchToSpaceNDOptionsBuilder &operator=(const BatchToSpaceNDOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -6255,18 +6759,14 @@ flatbuffers::Offset CreateBatchToSpaceNDOptions(flatbuffe + + struct SkipGramOptionsT : public flatbuffers::NativeTable { + typedef SkipGramOptions TableType; +- int32_t ngram_size; +- int32_t max_skip_size; +- bool include_all_ngrams; +- SkipGramOptionsT() +- : ngram_size(0), +- max_skip_size(0), +- include_all_ngrams(false) { +- } ++ int32_t ngram_size = 0; ++ int32_t max_skip_size = 0; ++ bool include_all_ngrams = false; + }; + + struct SkipGramOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef SkipGramOptionsT NativeTableType; ++ typedef SkipGramOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_NGRAM_SIZE = 4, + VT_MAX_SKIP_SIZE = 6, +@@ -6294,6 +6794,7 @@ struct SkipGramOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct SkipGramOptionsBuilder { ++ typedef SkipGramOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_ngram_size(int32_t ngram_size) { +@@ -6309,7 +6810,6 @@ struct SkipGramOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- SkipGramOptionsBuilder &operator=(const SkipGramOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -6333,14 +6833,12 @@ flatbuffers::Offset CreateSkipGramOptions(flatbuffers::FlatBuff + + struct SpaceToDepthOptionsT : public flatbuffers::NativeTable { + typedef SpaceToDepthOptions TableType; +- int32_t block_size; +- SpaceToDepthOptionsT() +- : block_size(0) { +- } ++ int32_t block_size = 0; + }; + + struct SpaceToDepthOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef SpaceToDepthOptionsT NativeTableType; ++ typedef SpaceToDepthOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_BLOCK_SIZE = 4 + }; +@@ -6358,6 +6856,7 @@ struct SpaceToDepthOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table + }; + + struct SpaceToDepthOptionsBuilder { ++ typedef SpaceToDepthOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_block_size(int32_t block_size) { +@@ -6367,7 +6866,6 @@ struct SpaceToDepthOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- SpaceToDepthOptionsBuilder &operator=(const SpaceToDepthOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -6387,14 +6885,12 @@ flatbuffers::Offset CreateSpaceToDepthOptions(flatbuffers:: + + struct DepthToSpaceOptionsT : public flatbuffers::NativeTable { + typedef DepthToSpaceOptions TableType; +- int32_t block_size; +- DepthToSpaceOptionsT() +- : block_size(0) { +- } ++ int32_t block_size = 0; + }; + + struct DepthToSpaceOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef DepthToSpaceOptionsT NativeTableType; ++ typedef DepthToSpaceOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_BLOCK_SIZE = 4 + }; +@@ -6412,6 +6908,7 @@ struct DepthToSpaceOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table + }; + + struct DepthToSpaceOptionsBuilder { ++ typedef DepthToSpaceOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_block_size(int32_t block_size) { +@@ -6421,7 +6918,6 @@ struct DepthToSpaceOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- DepthToSpaceOptionsBuilder &operator=(const DepthToSpaceOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -6441,16 +6937,13 @@ flatbuffers::Offset CreateDepthToSpaceOptions(flatbuffers:: + + struct SubOptionsT : public flatbuffers::NativeTable { + typedef SubOptions TableType; +- tflite::ActivationFunctionType fused_activation_function; +- bool pot_scale_int16; +- SubOptionsT() +- : fused_activation_function(tflite::ActivationFunctionType_NONE), +- pot_scale_int16(true) { +- } ++ tflite::ActivationFunctionType fused_activation_function = tflite::ActivationFunctionType_NONE; ++ bool pot_scale_int16 = true; + }; + + struct SubOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef SubOptionsT NativeTableType; ++ typedef SubOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_FUSED_ACTIVATION_FUNCTION = 4, + VT_POT_SCALE_INT16 = 6 +@@ -6473,6 +6966,7 @@ struct SubOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct SubOptionsBuilder { ++ typedef SubOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_fused_activation_function(tflite::ActivationFunctionType fused_activation_function) { +@@ -6485,7 +6979,6 @@ struct SubOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- SubOptionsBuilder &operator=(const SubOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -6507,14 +7000,12 @@ flatbuffers::Offset CreateSubOptions(flatbuffers::FlatBufferBuilder + + struct DivOptionsT : public flatbuffers::NativeTable { + typedef DivOptions TableType; +- tflite::ActivationFunctionType fused_activation_function; +- DivOptionsT() +- : fused_activation_function(tflite::ActivationFunctionType_NONE) { +- } ++ tflite::ActivationFunctionType fused_activation_function = tflite::ActivationFunctionType_NONE; + }; + + struct DivOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef DivOptionsT NativeTableType; ++ typedef DivOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_FUSED_ACTIVATION_FUNCTION = 4 + }; +@@ -6532,6 +7023,7 @@ struct DivOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct DivOptionsBuilder { ++ typedef DivOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_fused_activation_function(tflite::ActivationFunctionType fused_activation_function) { +@@ -6541,7 +7033,6 @@ struct DivOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- DivOptionsBuilder &operator=(const DivOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -6561,12 +7052,11 @@ flatbuffers::Offset CreateDivOptions(flatbuffers::FlatBufferBuilder + + struct TopKV2OptionsT : public flatbuffers::NativeTable { + typedef TopKV2Options TableType; +- TopKV2OptionsT() { +- } + }; + + struct TopKV2Options FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef TopKV2OptionsT NativeTableType; ++ typedef TopKV2OptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -6577,13 +7067,13 @@ struct TopKV2Options FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct TopKV2OptionsBuilder { ++ typedef TopKV2Options Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit TopKV2OptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- TopKV2OptionsBuilder &operator=(const TopKV2OptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -6601,14 +7091,12 @@ flatbuffers::Offset CreateTopKV2Options(flatbuffers::FlatBufferBu + + struct EmbeddingLookupSparseOptionsT : public flatbuffers::NativeTable { + typedef EmbeddingLookupSparseOptions TableType; +- tflite::CombinerType combiner; +- EmbeddingLookupSparseOptionsT() +- : combiner(tflite::CombinerType_SUM) { +- } ++ tflite::CombinerType combiner = tflite::CombinerType_SUM; + }; + + struct EmbeddingLookupSparseOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef EmbeddingLookupSparseOptionsT NativeTableType; ++ typedef EmbeddingLookupSparseOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_COMBINER = 4 + }; +@@ -6626,6 +7114,7 @@ struct EmbeddingLookupSparseOptions FLATBUFFERS_FINAL_CLASS : private flatbuffer + }; + + struct EmbeddingLookupSparseOptionsBuilder { ++ typedef EmbeddingLookupSparseOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_combiner(tflite::CombinerType combiner) { +@@ -6635,7 +7124,6 @@ struct EmbeddingLookupSparseOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- EmbeddingLookupSparseOptionsBuilder &operator=(const EmbeddingLookupSparseOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -6655,16 +7143,13 @@ flatbuffers::Offset CreateEmbeddingLookupSparseOpt + + struct GatherOptionsT : public flatbuffers::NativeTable { + typedef GatherOptions TableType; +- int32_t axis; +- int32_t batch_dims; +- GatherOptionsT() +- : axis(0), +- batch_dims(0) { +- } ++ int32_t axis = 0; ++ int32_t batch_dims = 0; + }; + + struct GatherOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef GatherOptionsT NativeTableType; ++ typedef GatherOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_AXIS = 4, + VT_BATCH_DIMS = 6 +@@ -6687,6 +7172,7 @@ struct GatherOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct GatherOptionsBuilder { ++ typedef GatherOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_axis(int32_t axis) { +@@ -6699,7 +7185,6 @@ struct GatherOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- GatherOptionsBuilder &operator=(const GatherOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -6721,12 +7206,11 @@ flatbuffers::Offset CreateGatherOptions(flatbuffers::FlatBufferBu + + struct TransposeOptionsT : public flatbuffers::NativeTable { + typedef TransposeOptions TableType; +- TransposeOptionsT() { +- } + }; + + struct TransposeOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef TransposeOptionsT NativeTableType; ++ typedef TransposeOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -6737,13 +7221,13 @@ struct TransposeOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct TransposeOptionsBuilder { ++ typedef TransposeOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit TransposeOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- TransposeOptionsBuilder &operator=(const TransposeOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -6761,12 +7245,11 @@ flatbuffers::Offset CreateTransposeOptions(flatbuffers::FlatBu + + struct ExpOptionsT : public flatbuffers::NativeTable { + typedef ExpOptions TableType; +- ExpOptionsT() { +- } + }; + + struct ExpOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef ExpOptionsT NativeTableType; ++ typedef ExpOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -6777,13 +7260,13 @@ struct ExpOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct ExpOptionsBuilder { ++ typedef ExpOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit ExpOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- ExpOptionsBuilder &operator=(const ExpOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -6801,12 +7284,11 @@ flatbuffers::Offset CreateExpOptions(flatbuffers::FlatBufferBuilder + + struct CosOptionsT : public flatbuffers::NativeTable { + typedef CosOptions TableType; +- CosOptionsT() { +- } + }; + + struct CosOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef CosOptionsT NativeTableType; ++ typedef CosOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -6817,13 +7299,13 @@ struct CosOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct CosOptionsBuilder { ++ typedef CosOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit CosOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- CosOptionsBuilder &operator=(const CosOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -6841,14 +7323,12 @@ flatbuffers::Offset CreateCosOptions(flatbuffers::FlatBufferBuilder + + struct ReducerOptionsT : public flatbuffers::NativeTable { + typedef ReducerOptions TableType; +- bool keep_dims; +- ReducerOptionsT() +- : keep_dims(false) { +- } ++ bool keep_dims = false; + }; + + struct ReducerOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef ReducerOptionsT NativeTableType; ++ typedef ReducerOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_KEEP_DIMS = 4 + }; +@@ -6866,6 +7346,7 @@ struct ReducerOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct ReducerOptionsBuilder { ++ typedef ReducerOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_keep_dims(bool keep_dims) { +@@ -6875,7 +7356,6 @@ struct ReducerOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- ReducerOptionsBuilder &operator=(const ReducerOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -6895,13 +7375,12 @@ flatbuffers::Offset CreateReducerOptions(flatbuffers::FlatBuffer + + struct SqueezeOptionsT : public flatbuffers::NativeTable { + typedef SqueezeOptions TableType; +- std::vector squeeze_dims; +- SqueezeOptionsT() { +- } ++ std::vector squeeze_dims{}; + }; + + struct SqueezeOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef SqueezeOptionsT NativeTableType; ++ typedef SqueezeOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_SQUEEZE_DIMS = 4 + }; +@@ -6920,6 +7399,7 @@ struct SqueezeOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct SqueezeOptionsBuilder { ++ typedef SqueezeOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_squeeze_dims(flatbuffers::Offset> squeeze_dims) { +@@ -6929,7 +7409,6 @@ struct SqueezeOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- SqueezeOptionsBuilder &operator=(const SqueezeOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -6958,14 +7437,12 @@ flatbuffers::Offset CreateSqueezeOptions(flatbuffers::FlatBuffer + + struct SplitOptionsT : public flatbuffers::NativeTable { + typedef SplitOptions TableType; +- int32_t num_splits; +- SplitOptionsT() +- : num_splits(0) { +- } ++ int32_t num_splits = 0; + }; + + struct SplitOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef SplitOptionsT NativeTableType; ++ typedef SplitOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_NUM_SPLITS = 4 + }; +@@ -6983,6 +7460,7 @@ struct SplitOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct SplitOptionsBuilder { ++ typedef SplitOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_num_splits(int32_t num_splits) { +@@ -6992,7 +7470,6 @@ struct SplitOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- SplitOptionsBuilder &operator=(const SplitOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -7012,14 +7489,12 @@ flatbuffers::Offset CreateSplitOptions(flatbuffers::FlatBufferBuil + + struct SplitVOptionsT : public flatbuffers::NativeTable { + typedef SplitVOptions TableType; +- int32_t num_splits; +- SplitVOptionsT() +- : num_splits(0) { +- } ++ int32_t num_splits = 0; + }; + + struct SplitVOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef SplitVOptionsT NativeTableType; ++ typedef SplitVOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_NUM_SPLITS = 4 + }; +@@ -7037,6 +7512,7 @@ struct SplitVOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct SplitVOptionsBuilder { ++ typedef SplitVOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_num_splits(int32_t num_splits) { +@@ -7046,7 +7522,6 @@ struct SplitVOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- SplitVOptionsBuilder &operator=(const SplitVOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -7066,22 +7541,16 @@ flatbuffers::Offset CreateSplitVOptions(flatbuffers::FlatBufferBu + + struct StridedSliceOptionsT : public flatbuffers::NativeTable { + typedef StridedSliceOptions TableType; +- int32_t begin_mask; +- int32_t end_mask; +- int32_t ellipsis_mask; +- int32_t new_axis_mask; +- int32_t shrink_axis_mask; +- StridedSliceOptionsT() +- : begin_mask(0), +- end_mask(0), +- ellipsis_mask(0), +- new_axis_mask(0), +- shrink_axis_mask(0) { +- } ++ int32_t begin_mask = 0; ++ int32_t end_mask = 0; ++ int32_t ellipsis_mask = 0; ++ int32_t new_axis_mask = 0; ++ int32_t shrink_axis_mask = 0; + }; + + struct StridedSliceOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef StridedSliceOptionsT NativeTableType; ++ typedef StridedSliceOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_BEGIN_MASK = 4, + VT_END_MASK = 6, +@@ -7119,6 +7588,7 @@ struct StridedSliceOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table + }; + + struct StridedSliceOptionsBuilder { ++ typedef StridedSliceOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_begin_mask(int32_t begin_mask) { +@@ -7140,7 +7610,6 @@ struct StridedSliceOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- StridedSliceOptionsBuilder &operator=(const StridedSliceOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -7168,12 +7637,11 @@ flatbuffers::Offset CreateStridedSliceOptions(flatbuffers:: + + struct LogSoftmaxOptionsT : public flatbuffers::NativeTable { + typedef LogSoftmaxOptions TableType; +- LogSoftmaxOptionsT() { +- } + }; + + struct LogSoftmaxOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef LogSoftmaxOptionsT NativeTableType; ++ typedef LogSoftmaxOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -7184,13 +7652,13 @@ struct LogSoftmaxOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct LogSoftmaxOptionsBuilder { ++ typedef LogSoftmaxOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit LogSoftmaxOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- LogSoftmaxOptionsBuilder &operator=(const LogSoftmaxOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -7208,16 +7676,13 @@ flatbuffers::Offset CreateLogSoftmaxOptions(flatbuffers::Flat + + struct CastOptionsT : public flatbuffers::NativeTable { + typedef CastOptions TableType; +- tflite::TensorType in_data_type; +- tflite::TensorType out_data_type; +- CastOptionsT() +- : in_data_type(tflite::TensorType_FLOAT32), +- out_data_type(tflite::TensorType_FLOAT32) { +- } ++ tflite::TensorType in_data_type = tflite::TensorType_FLOAT32; ++ tflite::TensorType out_data_type = tflite::TensorType_FLOAT32; + }; + + struct CastOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef CastOptionsT NativeTableType; ++ typedef CastOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_IN_DATA_TYPE = 4, + VT_OUT_DATA_TYPE = 6 +@@ -7240,6 +7705,7 @@ struct CastOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct CastOptionsBuilder { ++ typedef CastOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_in_data_type(tflite::TensorType in_data_type) { +@@ -7252,7 +7718,6 @@ struct CastOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- CastOptionsBuilder &operator=(const CastOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -7274,12 +7739,11 @@ flatbuffers::Offset CreateCastOptions(flatbuffers::FlatBufferBuilde + + struct DequantizeOptionsT : public flatbuffers::NativeTable { + typedef DequantizeOptions TableType; +- DequantizeOptionsT() { +- } + }; + + struct DequantizeOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef DequantizeOptionsT NativeTableType; ++ typedef DequantizeOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -7290,13 +7754,13 @@ struct DequantizeOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct DequantizeOptionsBuilder { ++ typedef DequantizeOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit DequantizeOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- DequantizeOptionsBuilder &operator=(const DequantizeOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -7314,12 +7778,11 @@ flatbuffers::Offset CreateDequantizeOptions(flatbuffers::Flat + + struct MaximumMinimumOptionsT : public flatbuffers::NativeTable { + typedef MaximumMinimumOptions TableType; +- MaximumMinimumOptionsT() { +- } + }; + + struct MaximumMinimumOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef MaximumMinimumOptionsT NativeTableType; ++ typedef MaximumMinimumOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -7330,13 +7793,13 @@ struct MaximumMinimumOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Tabl + }; + + struct MaximumMinimumOptionsBuilder { ++ typedef MaximumMinimumOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit MaximumMinimumOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- MaximumMinimumOptionsBuilder &operator=(const MaximumMinimumOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -7354,12 +7817,11 @@ flatbuffers::Offset CreateMaximumMinimumOptions(flatbuffe + + struct TileOptionsT : public flatbuffers::NativeTable { + typedef TileOptions TableType; +- TileOptionsT() { +- } + }; + + struct TileOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef TileOptionsT NativeTableType; ++ typedef TileOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -7370,13 +7832,13 @@ struct TileOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct TileOptionsBuilder { ++ typedef TileOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit TileOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- TileOptionsBuilder &operator=(const TileOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -7394,14 +7856,12 @@ flatbuffers::Offset CreateTileOptions(flatbuffers::FlatBufferBuilde + + struct ArgMaxOptionsT : public flatbuffers::NativeTable { + typedef ArgMaxOptions TableType; +- tflite::TensorType output_type; +- ArgMaxOptionsT() +- : output_type(tflite::TensorType_FLOAT32) { +- } ++ tflite::TensorType output_type = tflite::TensorType_FLOAT32; + }; + + struct ArgMaxOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef ArgMaxOptionsT NativeTableType; ++ typedef ArgMaxOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_OUTPUT_TYPE = 4 + }; +@@ -7419,6 +7879,7 @@ struct ArgMaxOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct ArgMaxOptionsBuilder { ++ typedef ArgMaxOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_output_type(tflite::TensorType output_type) { +@@ -7428,7 +7889,6 @@ struct ArgMaxOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- ArgMaxOptionsBuilder &operator=(const ArgMaxOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -7448,14 +7908,12 @@ flatbuffers::Offset CreateArgMaxOptions(flatbuffers::FlatBufferBu + + struct ArgMinOptionsT : public flatbuffers::NativeTable { + typedef ArgMinOptions TableType; +- tflite::TensorType output_type; +- ArgMinOptionsT() +- : output_type(tflite::TensorType_FLOAT32) { +- } ++ tflite::TensorType output_type = tflite::TensorType_FLOAT32; + }; + + struct ArgMinOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef ArgMinOptionsT NativeTableType; ++ typedef ArgMinOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_OUTPUT_TYPE = 4 + }; +@@ -7473,6 +7931,7 @@ struct ArgMinOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct ArgMinOptionsBuilder { ++ typedef ArgMinOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_output_type(tflite::TensorType output_type) { +@@ -7482,7 +7941,6 @@ struct ArgMinOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- ArgMinOptionsBuilder &operator=(const ArgMinOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -7502,12 +7960,11 @@ flatbuffers::Offset CreateArgMinOptions(flatbuffers::FlatBufferBu + + struct GreaterOptionsT : public flatbuffers::NativeTable { + typedef GreaterOptions TableType; +- GreaterOptionsT() { +- } + }; + + struct GreaterOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef GreaterOptionsT NativeTableType; ++ typedef GreaterOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -7518,13 +7975,13 @@ struct GreaterOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct GreaterOptionsBuilder { ++ typedef GreaterOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit GreaterOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- GreaterOptionsBuilder &operator=(const GreaterOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -7542,12 +7999,11 @@ flatbuffers::Offset CreateGreaterOptions(flatbuffers::FlatBuffer + + struct GreaterEqualOptionsT : public flatbuffers::NativeTable { + typedef GreaterEqualOptions TableType; +- GreaterEqualOptionsT() { +- } + }; + + struct GreaterEqualOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef GreaterEqualOptionsT NativeTableType; ++ typedef GreaterEqualOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -7558,13 +8014,13 @@ struct GreaterEqualOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table + }; + + struct GreaterEqualOptionsBuilder { ++ typedef GreaterEqualOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit GreaterEqualOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- GreaterEqualOptionsBuilder &operator=(const GreaterEqualOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -7582,12 +8038,11 @@ flatbuffers::Offset CreateGreaterEqualOptions(flatbuffers:: + + struct LessOptionsT : public flatbuffers::NativeTable { + typedef LessOptions TableType; +- LessOptionsT() { +- } + }; + + struct LessOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef LessOptionsT NativeTableType; ++ typedef LessOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -7598,13 +8053,13 @@ struct LessOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct LessOptionsBuilder { ++ typedef LessOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit LessOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- LessOptionsBuilder &operator=(const LessOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -7622,12 +8077,11 @@ flatbuffers::Offset CreateLessOptions(flatbuffers::FlatBufferBuilde + + struct LessEqualOptionsT : public flatbuffers::NativeTable { + typedef LessEqualOptions TableType; +- LessEqualOptionsT() { +- } + }; + + struct LessEqualOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef LessEqualOptionsT NativeTableType; ++ typedef LessEqualOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -7638,13 +8092,13 @@ struct LessEqualOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct LessEqualOptionsBuilder { ++ typedef LessEqualOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit LessEqualOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- LessEqualOptionsBuilder &operator=(const LessEqualOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -7662,12 +8116,11 @@ flatbuffers::Offset CreateLessEqualOptions(flatbuffers::FlatBu + + struct NegOptionsT : public flatbuffers::NativeTable { + typedef NegOptions TableType; +- NegOptionsT() { +- } + }; + + struct NegOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef NegOptionsT NativeTableType; ++ typedef NegOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -7678,13 +8131,13 @@ struct NegOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct NegOptionsBuilder { ++ typedef NegOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit NegOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- NegOptionsBuilder &operator=(const NegOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -7702,12 +8155,11 @@ flatbuffers::Offset CreateNegOptions(flatbuffers::FlatBufferBuilder + + struct SelectOptionsT : public flatbuffers::NativeTable { + typedef SelectOptions TableType; +- SelectOptionsT() { +- } + }; + + struct SelectOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef SelectOptionsT NativeTableType; ++ typedef SelectOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -7718,13 +8170,13 @@ struct SelectOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct SelectOptionsBuilder { ++ typedef SelectOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit SelectOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- SelectOptionsBuilder &operator=(const SelectOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -7742,12 +8194,11 @@ flatbuffers::Offset CreateSelectOptions(flatbuffers::FlatBufferBu + + struct SliceOptionsT : public flatbuffers::NativeTable { + typedef SliceOptions TableType; +- SliceOptionsT() { +- } + }; + + struct SliceOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef SliceOptionsT NativeTableType; ++ typedef SliceOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -7758,13 +8209,13 @@ struct SliceOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct SliceOptionsBuilder { ++ typedef SliceOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit SliceOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- SliceOptionsBuilder &operator=(const SliceOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -7782,18 +8233,14 @@ flatbuffers::Offset CreateSliceOptions(flatbuffers::FlatBufferBuil + + struct TransposeConvOptionsT : public flatbuffers::NativeTable { + typedef TransposeConvOptions TableType; +- tflite::Padding padding; +- int32_t stride_w; +- int32_t stride_h; +- TransposeConvOptionsT() +- : padding(tflite::Padding_SAME), +- stride_w(0), +- stride_h(0) { +- } ++ tflite::Padding padding = tflite::Padding_SAME; ++ int32_t stride_w = 0; ++ int32_t stride_h = 0; + }; + + struct TransposeConvOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef TransposeConvOptionsT NativeTableType; ++ typedef TransposeConvOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_PADDING = 4, + VT_STRIDE_W = 6, +@@ -7821,6 +8268,7 @@ struct TransposeConvOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table + }; + + struct TransposeConvOptionsBuilder { ++ typedef TransposeConvOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_padding(tflite::Padding padding) { +@@ -7836,7 +8284,6 @@ struct TransposeConvOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- TransposeConvOptionsBuilder &operator=(const TransposeConvOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -7860,12 +8307,11 @@ flatbuffers::Offset CreateTransposeConvOptions(flatbuffers + + struct ExpandDimsOptionsT : public flatbuffers::NativeTable { + typedef ExpandDimsOptions TableType; +- ExpandDimsOptionsT() { +- } + }; + + struct ExpandDimsOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef ExpandDimsOptionsT NativeTableType; ++ typedef ExpandDimsOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -7876,13 +8322,13 @@ struct ExpandDimsOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct ExpandDimsOptionsBuilder { ++ typedef ExpandDimsOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit ExpandDimsOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- ExpandDimsOptionsBuilder &operator=(const ExpandDimsOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -7900,14 +8346,12 @@ flatbuffers::Offset CreateExpandDimsOptions(flatbuffers::Flat + + struct SparseToDenseOptionsT : public flatbuffers::NativeTable { + typedef SparseToDenseOptions TableType; +- bool validate_indices; +- SparseToDenseOptionsT() +- : validate_indices(false) { +- } ++ bool validate_indices = false; + }; + + struct SparseToDenseOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef SparseToDenseOptionsT NativeTableType; ++ typedef SparseToDenseOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_VALIDATE_INDICES = 4 + }; +@@ -7925,6 +8369,7 @@ struct SparseToDenseOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table + }; + + struct SparseToDenseOptionsBuilder { ++ typedef SparseToDenseOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_validate_indices(bool validate_indices) { +@@ -7934,7 +8379,6 @@ struct SparseToDenseOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- SparseToDenseOptionsBuilder &operator=(const SparseToDenseOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -7954,12 +8398,11 @@ flatbuffers::Offset CreateSparseToDenseOptions(flatbuffers + + struct EqualOptionsT : public flatbuffers::NativeTable { + typedef EqualOptions TableType; +- EqualOptionsT() { +- } + }; + + struct EqualOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef EqualOptionsT NativeTableType; ++ typedef EqualOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -7970,13 +8413,13 @@ struct EqualOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct EqualOptionsBuilder { ++ typedef EqualOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit EqualOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- EqualOptionsBuilder &operator=(const EqualOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -7994,12 +8437,11 @@ flatbuffers::Offset CreateEqualOptions(flatbuffers::FlatBufferBuil + + struct NotEqualOptionsT : public flatbuffers::NativeTable { + typedef NotEqualOptions TableType; +- NotEqualOptionsT() { +- } + }; + + struct NotEqualOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef NotEqualOptionsT NativeTableType; ++ typedef NotEqualOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -8010,13 +8452,13 @@ struct NotEqualOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct NotEqualOptionsBuilder { ++ typedef NotEqualOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit NotEqualOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- NotEqualOptionsBuilder &operator=(const NotEqualOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -8034,14 +8476,12 @@ flatbuffers::Offset CreateNotEqualOptions(flatbuffers::FlatBuff + + struct ShapeOptionsT : public flatbuffers::NativeTable { + typedef ShapeOptions TableType; +- tflite::TensorType out_type; +- ShapeOptionsT() +- : out_type(tflite::TensorType_FLOAT32) { +- } ++ tflite::TensorType out_type = tflite::TensorType_FLOAT32; + }; + + struct ShapeOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef ShapeOptionsT NativeTableType; ++ typedef ShapeOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_OUT_TYPE = 4 + }; +@@ -8059,6 +8499,7 @@ struct ShapeOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct ShapeOptionsBuilder { ++ typedef ShapeOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_out_type(tflite::TensorType out_type) { +@@ -8068,7 +8509,6 @@ struct ShapeOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- ShapeOptionsBuilder &operator=(const ShapeOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -8088,12 +8528,11 @@ flatbuffers::Offset CreateShapeOptions(flatbuffers::FlatBufferBuil + + struct RankOptionsT : public flatbuffers::NativeTable { + typedef RankOptions TableType; +- RankOptionsT() { +- } + }; + + struct RankOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef RankOptionsT NativeTableType; ++ typedef RankOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -8104,13 +8543,13 @@ struct RankOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct RankOptionsBuilder { ++ typedef RankOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit RankOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- RankOptionsBuilder &operator=(const RankOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -8128,12 +8567,11 @@ flatbuffers::Offset CreateRankOptions(flatbuffers::FlatBufferBuilde + + struct PowOptionsT : public flatbuffers::NativeTable { + typedef PowOptions TableType; +- PowOptionsT() { +- } + }; + + struct PowOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef PowOptionsT NativeTableType; ++ typedef PowOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -8144,13 +8582,13 @@ struct PowOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct PowOptionsBuilder { ++ typedef PowOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit PowOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- PowOptionsBuilder &operator=(const PowOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -8168,20 +8606,15 @@ flatbuffers::Offset CreatePowOptions(flatbuffers::FlatBufferBuilder + + struct FakeQuantOptionsT : public flatbuffers::NativeTable { + typedef FakeQuantOptions TableType; +- float min; +- float max; +- int32_t num_bits; +- bool narrow_range; +- FakeQuantOptionsT() +- : min(0.0f), +- max(0.0f), +- num_bits(0), +- narrow_range(false) { +- } ++ float min = 0.0f; ++ float max = 0.0f; ++ int32_t num_bits = 0; ++ bool narrow_range = false; + }; + + struct FakeQuantOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef FakeQuantOptionsT NativeTableType; ++ typedef FakeQuantOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_MIN = 4, + VT_MAX = 6, +@@ -8214,6 +8647,7 @@ struct FakeQuantOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct FakeQuantOptionsBuilder { ++ typedef FakeQuantOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_min(float min) { +@@ -8232,7 +8666,6 @@ struct FakeQuantOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- FakeQuantOptionsBuilder &operator=(const FakeQuantOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -8258,16 +8691,13 @@ flatbuffers::Offset CreateFakeQuantOptions(flatbuffers::FlatBu + + struct PackOptionsT : public flatbuffers::NativeTable { + typedef PackOptions TableType; +- int32_t values_count; +- int32_t axis; +- PackOptionsT() +- : values_count(0), +- axis(0) { +- } ++ int32_t values_count = 0; ++ int32_t axis = 0; + }; + + struct PackOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef PackOptionsT NativeTableType; ++ typedef PackOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_VALUES_COUNT = 4, + VT_AXIS = 6 +@@ -8290,6 +8720,7 @@ struct PackOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct PackOptionsBuilder { ++ typedef PackOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_values_count(int32_t values_count) { +@@ -8302,7 +8733,6 @@ struct PackOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- PackOptionsBuilder &operator=(const PackOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -8324,12 +8754,11 @@ flatbuffers::Offset CreatePackOptions(flatbuffers::FlatBufferBuilde + + struct LogicalOrOptionsT : public flatbuffers::NativeTable { + typedef LogicalOrOptions TableType; +- LogicalOrOptionsT() { +- } + }; + + struct LogicalOrOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef LogicalOrOptionsT NativeTableType; ++ typedef LogicalOrOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -8340,13 +8769,13 @@ struct LogicalOrOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct LogicalOrOptionsBuilder { ++ typedef LogicalOrOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit LogicalOrOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- LogicalOrOptionsBuilder &operator=(const LogicalOrOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -8364,14 +8793,12 @@ flatbuffers::Offset CreateLogicalOrOptions(flatbuffers::FlatBu + + struct OneHotOptionsT : public flatbuffers::NativeTable { + typedef OneHotOptions TableType; +- int32_t axis; +- OneHotOptionsT() +- : axis(0) { +- } ++ int32_t axis = 0; + }; + + struct OneHotOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef OneHotOptionsT NativeTableType; ++ typedef OneHotOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_AXIS = 4 + }; +@@ -8389,6 +8816,7 @@ struct OneHotOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct OneHotOptionsBuilder { ++ typedef OneHotOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_axis(int32_t axis) { +@@ -8398,7 +8826,6 @@ struct OneHotOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- OneHotOptionsBuilder &operator=(const OneHotOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -8418,12 +8845,11 @@ flatbuffers::Offset CreateOneHotOptions(flatbuffers::FlatBufferBu + + struct AbsOptionsT : public flatbuffers::NativeTable { + typedef AbsOptions TableType; +- AbsOptionsT() { +- } + }; + + struct AbsOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef AbsOptionsT NativeTableType; ++ typedef AbsOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -8434,13 +8860,13 @@ struct AbsOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct AbsOptionsBuilder { ++ typedef AbsOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit AbsOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- AbsOptionsBuilder &operator=(const AbsOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -8458,12 +8884,11 @@ flatbuffers::Offset CreateAbsOptions(flatbuffers::FlatBufferBuilder + + struct HardSwishOptionsT : public flatbuffers::NativeTable { + typedef HardSwishOptions TableType; +- HardSwishOptionsT() { +- } + }; + + struct HardSwishOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef HardSwishOptionsT NativeTableType; ++ typedef HardSwishOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -8474,13 +8899,13 @@ struct HardSwishOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct HardSwishOptionsBuilder { ++ typedef HardSwishOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit HardSwishOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- HardSwishOptionsBuilder &operator=(const HardSwishOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -8498,12 +8923,11 @@ flatbuffers::Offset CreateHardSwishOptions(flatbuffers::FlatBu + + struct LogicalAndOptionsT : public flatbuffers::NativeTable { + typedef LogicalAndOptions TableType; +- LogicalAndOptionsT() { +- } + }; + + struct LogicalAndOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef LogicalAndOptionsT NativeTableType; ++ typedef LogicalAndOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -8514,13 +8938,13 @@ struct LogicalAndOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct LogicalAndOptionsBuilder { ++ typedef LogicalAndOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit LogicalAndOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- LogicalAndOptionsBuilder &operator=(const LogicalAndOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -8538,12 +8962,11 @@ flatbuffers::Offset CreateLogicalAndOptions(flatbuffers::Flat + + struct LogicalNotOptionsT : public flatbuffers::NativeTable { + typedef LogicalNotOptions TableType; +- LogicalNotOptionsT() { +- } + }; + + struct LogicalNotOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef LogicalNotOptionsT NativeTableType; ++ typedef LogicalNotOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -8554,13 +8977,13 @@ struct LogicalNotOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct LogicalNotOptionsBuilder { ++ typedef LogicalNotOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit LogicalNotOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- LogicalNotOptionsBuilder &operator=(const LogicalNotOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -8578,16 +9001,13 @@ flatbuffers::Offset CreateLogicalNotOptions(flatbuffers::Flat + + struct UnpackOptionsT : public flatbuffers::NativeTable { + typedef UnpackOptions TableType; +- int32_t num; +- int32_t axis; +- UnpackOptionsT() +- : num(0), +- axis(0) { +- } ++ int32_t num = 0; ++ int32_t axis = 0; + }; + + struct UnpackOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef UnpackOptionsT NativeTableType; ++ typedef UnpackOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_NUM = 4, + VT_AXIS = 6 +@@ -8610,6 +9030,7 @@ struct UnpackOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct UnpackOptionsBuilder { ++ typedef UnpackOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_num(int32_t num) { +@@ -8622,7 +9043,6 @@ struct UnpackOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- UnpackOptionsBuilder &operator=(const UnpackOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -8644,12 +9064,11 @@ flatbuffers::Offset CreateUnpackOptions(flatbuffers::FlatBufferBu + + struct FloorDivOptionsT : public flatbuffers::NativeTable { + typedef FloorDivOptions TableType; +- FloorDivOptionsT() { +- } + }; + + struct FloorDivOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef FloorDivOptionsT NativeTableType; ++ typedef FloorDivOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -8660,13 +9079,13 @@ struct FloorDivOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct FloorDivOptionsBuilder { ++ typedef FloorDivOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit FloorDivOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- FloorDivOptionsBuilder &operator=(const FloorDivOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -8684,12 +9103,11 @@ flatbuffers::Offset CreateFloorDivOptions(flatbuffers::FlatBuff + + struct SquareOptionsT : public flatbuffers::NativeTable { + typedef SquareOptions TableType; +- SquareOptionsT() { +- } + }; + + struct SquareOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef SquareOptionsT NativeTableType; ++ typedef SquareOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -8700,13 +9118,13 @@ struct SquareOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct SquareOptionsBuilder { ++ typedef SquareOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit SquareOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- SquareOptionsBuilder &operator=(const SquareOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -8724,12 +9142,11 @@ flatbuffers::Offset CreateSquareOptions(flatbuffers::FlatBufferBu + + struct ZerosLikeOptionsT : public flatbuffers::NativeTable { + typedef ZerosLikeOptions TableType; +- ZerosLikeOptionsT() { +- } + }; + + struct ZerosLikeOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef ZerosLikeOptionsT NativeTableType; ++ typedef ZerosLikeOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -8740,13 +9157,13 @@ struct ZerosLikeOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct ZerosLikeOptionsBuilder { ++ typedef ZerosLikeOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit ZerosLikeOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- ZerosLikeOptionsBuilder &operator=(const ZerosLikeOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -8764,12 +9181,11 @@ flatbuffers::Offset CreateZerosLikeOptions(flatbuffers::FlatBu + + struct FillOptionsT : public flatbuffers::NativeTable { + typedef FillOptions TableType; +- FillOptionsT() { +- } + }; + + struct FillOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef FillOptionsT NativeTableType; ++ typedef FillOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -8780,13 +9196,13 @@ struct FillOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct FillOptionsBuilder { ++ typedef FillOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit FillOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- FillOptionsBuilder &operator=(const FillOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -8804,12 +9220,11 @@ flatbuffers::Offset CreateFillOptions(flatbuffers::FlatBufferBuilde + + struct FloorModOptionsT : public flatbuffers::NativeTable { + typedef FloorModOptions TableType; +- FloorModOptionsT() { +- } + }; + + struct FloorModOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef FloorModOptionsT NativeTableType; ++ typedef FloorModOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -8820,13 +9235,13 @@ struct FloorModOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct FloorModOptionsBuilder { ++ typedef FloorModOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit FloorModOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- FloorModOptionsBuilder &operator=(const FloorModOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -8844,12 +9259,11 @@ flatbuffers::Offset CreateFloorModOptions(flatbuffers::FlatBuff + + struct RangeOptionsT : public flatbuffers::NativeTable { + typedef RangeOptions TableType; +- RangeOptionsT() { +- } + }; + + struct RangeOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef RangeOptionsT NativeTableType; ++ typedef RangeOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -8860,13 +9274,13 @@ struct RangeOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct RangeOptionsBuilder { ++ typedef RangeOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit RangeOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- RangeOptionsBuilder &operator=(const RangeOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -8884,14 +9298,12 @@ flatbuffers::Offset CreateRangeOptions(flatbuffers::FlatBufferBuil + + struct LeakyReluOptionsT : public flatbuffers::NativeTable { + typedef LeakyReluOptions TableType; +- float alpha; +- LeakyReluOptionsT() +- : alpha(0.0f) { +- } ++ float alpha = 0.0f; + }; + + struct LeakyReluOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef LeakyReluOptionsT NativeTableType; ++ typedef LeakyReluOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_ALPHA = 4 + }; +@@ -8909,6 +9321,7 @@ struct LeakyReluOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct LeakyReluOptionsBuilder { ++ typedef LeakyReluOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_alpha(float alpha) { +@@ -8918,7 +9331,6 @@ struct LeakyReluOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- LeakyReluOptionsBuilder &operator=(const LeakyReluOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -8938,12 +9350,11 @@ flatbuffers::Offset CreateLeakyReluOptions(flatbuffers::FlatBu + + struct SquaredDifferenceOptionsT : public flatbuffers::NativeTable { + typedef SquaredDifferenceOptions TableType; +- SquaredDifferenceOptionsT() { +- } + }; + + struct SquaredDifferenceOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef SquaredDifferenceOptionsT NativeTableType; ++ typedef SquaredDifferenceOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -8954,13 +9365,13 @@ struct SquaredDifferenceOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::T + }; + + struct SquaredDifferenceOptionsBuilder { ++ typedef SquaredDifferenceOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit SquaredDifferenceOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- SquaredDifferenceOptionsBuilder &operator=(const SquaredDifferenceOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -8978,14 +9389,12 @@ flatbuffers::Offset CreateSquaredDifferenceOptions(fla + + struct MirrorPadOptionsT : public flatbuffers::NativeTable { + typedef MirrorPadOptions TableType; +- tflite::MirrorPadMode mode; +- MirrorPadOptionsT() +- : mode(tflite::MirrorPadMode_REFLECT) { +- } ++ tflite::MirrorPadMode mode = tflite::MirrorPadMode_REFLECT; + }; + + struct MirrorPadOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef MirrorPadOptionsT NativeTableType; ++ typedef MirrorPadOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_MODE = 4 + }; +@@ -9003,6 +9412,7 @@ struct MirrorPadOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct MirrorPadOptionsBuilder { ++ typedef MirrorPadOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_mode(tflite::MirrorPadMode mode) { +@@ -9012,7 +9422,6 @@ struct MirrorPadOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- MirrorPadOptionsBuilder &operator=(const MirrorPadOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -9032,14 +9441,12 @@ flatbuffers::Offset CreateMirrorPadOptions(flatbuffers::FlatBu + + struct UniqueOptionsT : public flatbuffers::NativeTable { + typedef UniqueOptions TableType; +- tflite::TensorType idx_out_type; +- UniqueOptionsT() +- : idx_out_type(tflite::TensorType_INT32) { +- } ++ tflite::TensorType idx_out_type = tflite::TensorType_INT32; + }; + + struct UniqueOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef UniqueOptionsT NativeTableType; ++ typedef UniqueOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_IDX_OUT_TYPE = 4 + }; +@@ -9057,6 +9464,7 @@ struct UniqueOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct UniqueOptionsBuilder { ++ typedef UniqueOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_idx_out_type(tflite::TensorType idx_out_type) { +@@ -9066,7 +9474,6 @@ struct UniqueOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- UniqueOptionsBuilder &operator=(const UniqueOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -9086,12 +9493,11 @@ flatbuffers::Offset CreateUniqueOptions(flatbuffers::FlatBufferBu + + struct ReverseV2OptionsT : public flatbuffers::NativeTable { + typedef ReverseV2Options TableType; +- ReverseV2OptionsT() { +- } + }; + + struct ReverseV2Options FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef ReverseV2OptionsT NativeTableType; ++ typedef ReverseV2OptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -9102,13 +9508,13 @@ struct ReverseV2Options FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct ReverseV2OptionsBuilder { ++ typedef ReverseV2Options Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit ReverseV2OptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- ReverseV2OptionsBuilder &operator=(const ReverseV2OptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -9126,12 +9532,11 @@ flatbuffers::Offset CreateReverseV2Options(flatbuffers::FlatBu + + struct AddNOptionsT : public flatbuffers::NativeTable { + typedef AddNOptions TableType; +- AddNOptionsT() { +- } + }; + + struct AddNOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef AddNOptionsT NativeTableType; ++ typedef AddNOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -9142,13 +9547,13 @@ struct AddNOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct AddNOptionsBuilder { ++ typedef AddNOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit AddNOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- AddNOptionsBuilder &operator=(const AddNOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -9166,12 +9571,11 @@ flatbuffers::Offset CreateAddNOptions(flatbuffers::FlatBufferBuilde + + struct GatherNdOptionsT : public flatbuffers::NativeTable { + typedef GatherNdOptions TableType; +- GatherNdOptionsT() { +- } + }; + + struct GatherNdOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef GatherNdOptionsT NativeTableType; ++ typedef GatherNdOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -9182,13 +9586,13 @@ struct GatherNdOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct GatherNdOptionsBuilder { ++ typedef GatherNdOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit GatherNdOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- GatherNdOptionsBuilder &operator=(const GatherNdOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -9206,12 +9610,11 @@ flatbuffers::Offset CreateGatherNdOptions(flatbuffers::FlatBuff + + struct WhereOptionsT : public flatbuffers::NativeTable { + typedef WhereOptions TableType; +- WhereOptionsT() { +- } + }; + + struct WhereOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef WhereOptionsT NativeTableType; ++ typedef WhereOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -9222,13 +9625,13 @@ struct WhereOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct WhereOptionsBuilder { ++ typedef WhereOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit WhereOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- WhereOptionsBuilder &operator=(const WhereOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -9246,16 +9649,13 @@ flatbuffers::Offset CreateWhereOptions(flatbuffers::FlatBufferBuil + + struct ReverseSequenceOptionsT : public flatbuffers::NativeTable { + typedef ReverseSequenceOptions TableType; +- int32_t seq_dim; +- int32_t batch_dim; +- ReverseSequenceOptionsT() +- : seq_dim(0), +- batch_dim(0) { +- } ++ int32_t seq_dim = 0; ++ int32_t batch_dim = 0; + }; + + struct ReverseSequenceOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef ReverseSequenceOptionsT NativeTableType; ++ typedef ReverseSequenceOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_SEQ_DIM = 4, + VT_BATCH_DIM = 6 +@@ -9278,6 +9678,7 @@ struct ReverseSequenceOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Tab + }; + + struct ReverseSequenceOptionsBuilder { ++ typedef ReverseSequenceOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_seq_dim(int32_t seq_dim) { +@@ -9290,7 +9691,6 @@ struct ReverseSequenceOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- ReverseSequenceOptionsBuilder &operator=(const ReverseSequenceOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -9312,12 +9712,11 @@ flatbuffers::Offset CreateReverseSequenceOptions(flatbuf + + struct MatrixDiagOptionsT : public flatbuffers::NativeTable { + typedef MatrixDiagOptions TableType; +- MatrixDiagOptionsT() { +- } + }; + + struct MatrixDiagOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef MatrixDiagOptionsT NativeTableType; ++ typedef MatrixDiagOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -9328,13 +9727,13 @@ struct MatrixDiagOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct MatrixDiagOptionsBuilder { ++ typedef MatrixDiagOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit MatrixDiagOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- MatrixDiagOptionsBuilder &operator=(const MatrixDiagOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -9352,12 +9751,11 @@ flatbuffers::Offset CreateMatrixDiagOptions(flatbuffers::Flat + + struct QuantizeOptionsT : public flatbuffers::NativeTable { + typedef QuantizeOptions TableType; +- QuantizeOptionsT() { +- } + }; + + struct QuantizeOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef QuantizeOptionsT NativeTableType; ++ typedef QuantizeOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -9368,13 +9766,13 @@ struct QuantizeOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct QuantizeOptionsBuilder { ++ typedef QuantizeOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit QuantizeOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- QuantizeOptionsBuilder &operator=(const QuantizeOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -9392,12 +9790,11 @@ flatbuffers::Offset CreateQuantizeOptions(flatbuffers::FlatBuff + + struct MatrixSetDiagOptionsT : public flatbuffers::NativeTable { + typedef MatrixSetDiagOptions TableType; +- MatrixSetDiagOptionsT() { +- } + }; + + struct MatrixSetDiagOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef MatrixSetDiagOptionsT NativeTableType; ++ typedef MatrixSetDiagOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -9408,13 +9805,13 @@ struct MatrixSetDiagOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table + }; + + struct MatrixSetDiagOptionsBuilder { ++ typedef MatrixSetDiagOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit MatrixSetDiagOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- MatrixSetDiagOptionsBuilder &operator=(const MatrixSetDiagOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -9432,16 +9829,13 @@ flatbuffers::Offset CreateMatrixSetDiagOptions(flatbuffers + + struct IfOptionsT : public flatbuffers::NativeTable { + typedef IfOptions TableType; +- int32_t then_subgraph_index; +- int32_t else_subgraph_index; +- IfOptionsT() +- : then_subgraph_index(0), +- else_subgraph_index(0) { +- } ++ int32_t then_subgraph_index = 0; ++ int32_t else_subgraph_index = 0; + }; + + struct IfOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef IfOptionsT NativeTableType; ++ typedef IfOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_THEN_SUBGRAPH_INDEX = 4, + VT_ELSE_SUBGRAPH_INDEX = 6 +@@ -9464,6 +9858,7 @@ struct IfOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct IfOptionsBuilder { ++ typedef IfOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_then_subgraph_index(int32_t then_subgraph_index) { +@@ -9476,7 +9871,6 @@ struct IfOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- IfOptionsBuilder &operator=(const IfOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -9498,14 +9892,12 @@ flatbuffers::Offset CreateIfOptions(flatbuffers::FlatBufferBuilder &_ + + struct CallOnceOptionsT : public flatbuffers::NativeTable { + typedef CallOnceOptions TableType; +- int32_t init_subgraph_index; +- CallOnceOptionsT() +- : init_subgraph_index(0) { +- } ++ int32_t init_subgraph_index = 0; + }; + + struct CallOnceOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef CallOnceOptionsT NativeTableType; ++ typedef CallOnceOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_INIT_SUBGRAPH_INDEX = 4 + }; +@@ -9523,6 +9915,7 @@ struct CallOnceOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct CallOnceOptionsBuilder { ++ typedef CallOnceOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_init_subgraph_index(int32_t init_subgraph_index) { +@@ -9532,7 +9925,6 @@ struct CallOnceOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- CallOnceOptionsBuilder &operator=(const CallOnceOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -9552,16 +9944,13 @@ flatbuffers::Offset CreateCallOnceOptions(flatbuffers::FlatBuff + + struct WhileOptionsT : public flatbuffers::NativeTable { + typedef WhileOptions TableType; +- int32_t cond_subgraph_index; +- int32_t body_subgraph_index; +- WhileOptionsT() +- : cond_subgraph_index(0), +- body_subgraph_index(0) { +- } ++ int32_t cond_subgraph_index = 0; ++ int32_t body_subgraph_index = 0; + }; + + struct WhileOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef WhileOptionsT NativeTableType; ++ typedef WhileOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_COND_SUBGRAPH_INDEX = 4, + VT_BODY_SUBGRAPH_INDEX = 6 +@@ -9584,6 +9973,7 @@ struct WhileOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct WhileOptionsBuilder { ++ typedef WhileOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_cond_subgraph_index(int32_t cond_subgraph_index) { +@@ -9596,7 +9986,6 @@ struct WhileOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- WhileOptionsBuilder &operator=(const WhileOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -9618,12 +10007,11 @@ flatbuffers::Offset CreateWhileOptions(flatbuffers::FlatBufferBuil + + struct NonMaxSuppressionV4OptionsT : public flatbuffers::NativeTable { + typedef NonMaxSuppressionV4Options TableType; +- NonMaxSuppressionV4OptionsT() { +- } + }; + + struct NonMaxSuppressionV4Options FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef NonMaxSuppressionV4OptionsT NativeTableType; ++ typedef NonMaxSuppressionV4OptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -9634,13 +10022,13 @@ struct NonMaxSuppressionV4Options FLATBUFFERS_FINAL_CLASS : private flatbuffers: + }; + + struct NonMaxSuppressionV4OptionsBuilder { ++ typedef NonMaxSuppressionV4Options Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit NonMaxSuppressionV4OptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- NonMaxSuppressionV4OptionsBuilder &operator=(const NonMaxSuppressionV4OptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -9658,12 +10046,11 @@ flatbuffers::Offset CreateNonMaxSuppressionV4Options + + struct NonMaxSuppressionV5OptionsT : public flatbuffers::NativeTable { + typedef NonMaxSuppressionV5Options TableType; +- NonMaxSuppressionV5OptionsT() { +- } + }; + + struct NonMaxSuppressionV5Options FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef NonMaxSuppressionV5OptionsT NativeTableType; ++ typedef NonMaxSuppressionV5OptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -9674,13 +10061,13 @@ struct NonMaxSuppressionV5Options FLATBUFFERS_FINAL_CLASS : private flatbuffers: + }; + + struct NonMaxSuppressionV5OptionsBuilder { ++ typedef NonMaxSuppressionV5Options Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit NonMaxSuppressionV5OptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- NonMaxSuppressionV5OptionsBuilder &operator=(const NonMaxSuppressionV5OptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -9698,12 +10085,11 @@ flatbuffers::Offset CreateNonMaxSuppressionV5Options + + struct ScatterNdOptionsT : public flatbuffers::NativeTable { + typedef ScatterNdOptions TableType; +- ScatterNdOptionsT() { +- } + }; + + struct ScatterNdOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef ScatterNdOptionsT NativeTableType; ++ typedef ScatterNdOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -9714,13 +10100,13 @@ struct ScatterNdOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct ScatterNdOptionsBuilder { ++ typedef ScatterNdOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit ScatterNdOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- ScatterNdOptionsBuilder &operator=(const ScatterNdOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -9738,12 +10124,11 @@ flatbuffers::Offset CreateScatterNdOptions(flatbuffers::FlatBu + + struct SelectV2OptionsT : public flatbuffers::NativeTable { + typedef SelectV2Options TableType; +- SelectV2OptionsT() { +- } + }; + + struct SelectV2Options FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef SelectV2OptionsT NativeTableType; ++ typedef SelectV2OptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -9754,13 +10139,13 @@ struct SelectV2Options FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct SelectV2OptionsBuilder { ++ typedef SelectV2Options Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit SelectV2OptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- SelectV2OptionsBuilder &operator=(const SelectV2OptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -9778,12 +10163,11 @@ flatbuffers::Offset CreateSelectV2Options(flatbuffers::FlatBuff + + struct DensifyOptionsT : public flatbuffers::NativeTable { + typedef DensifyOptions TableType; +- DensifyOptionsT() { +- } + }; + + struct DensifyOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef DensifyOptionsT NativeTableType; ++ typedef DensifyOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -9794,13 +10178,13 @@ struct DensifyOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct DensifyOptionsBuilder { ++ typedef DensifyOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit DensifyOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- DensifyOptionsBuilder &operator=(const DensifyOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -9818,12 +10202,11 @@ flatbuffers::Offset CreateDensifyOptions(flatbuffers::FlatBuffer + + struct SegmentSumOptionsT : public flatbuffers::NativeTable { + typedef SegmentSumOptions TableType; +- SegmentSumOptionsT() { +- } + }; + + struct SegmentSumOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef SegmentSumOptionsT NativeTableType; ++ typedef SegmentSumOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -9834,13 +10217,13 @@ struct SegmentSumOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct SegmentSumOptionsBuilder { ++ typedef SegmentSumOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit SegmentSumOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- SegmentSumOptionsBuilder &operator=(const SegmentSumOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -9858,18 +10241,14 @@ flatbuffers::Offset CreateSegmentSumOptions(flatbuffers::Flat + + struct BatchMatMulOptionsT : public flatbuffers::NativeTable { + typedef BatchMatMulOptions TableType; +- bool adj_x; +- bool adj_y; +- bool asymmetric_quantize_inputs; +- BatchMatMulOptionsT() +- : adj_x(false), +- adj_y(false), +- asymmetric_quantize_inputs(false) { +- } ++ bool adj_x = false; ++ bool adj_y = false; ++ bool asymmetric_quantize_inputs = false; + }; + + struct BatchMatMulOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef BatchMatMulOptionsT NativeTableType; ++ typedef BatchMatMulOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_ADJ_X = 4, + VT_ADJ_Y = 6, +@@ -9897,6 +10276,7 @@ struct BatchMatMulOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct BatchMatMulOptionsBuilder { ++ typedef BatchMatMulOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_adj_x(bool adj_x) { +@@ -9912,7 +10292,6 @@ struct BatchMatMulOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- BatchMatMulOptionsBuilder &operator=(const BatchMatMulOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -9936,16 +10315,13 @@ flatbuffers::Offset CreateBatchMatMulOptions(flatbuffers::Fl + + struct CumsumOptionsT : public flatbuffers::NativeTable { + typedef CumsumOptions TableType; +- bool exclusive; +- bool reverse; +- CumsumOptionsT() +- : exclusive(false), +- reverse(false) { +- } ++ bool exclusive = false; ++ bool reverse = false; + }; + + struct CumsumOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef CumsumOptionsT NativeTableType; ++ typedef CumsumOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_EXCLUSIVE = 4, + VT_REVERSE = 6 +@@ -9968,6 +10344,7 @@ struct CumsumOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct CumsumOptionsBuilder { ++ typedef CumsumOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_exclusive(bool exclusive) { +@@ -9980,7 +10357,6 @@ struct CumsumOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- CumsumOptionsBuilder &operator=(const CumsumOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -10002,12 +10378,11 @@ flatbuffers::Offset CreateCumsumOptions(flatbuffers::FlatBufferBu + + struct BroadcastToOptionsT : public flatbuffers::NativeTable { + typedef BroadcastToOptions TableType; +- BroadcastToOptionsT() { +- } + }; + + struct BroadcastToOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef BroadcastToOptionsT NativeTableType; ++ typedef BroadcastToOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -10018,13 +10393,13 @@ struct BroadcastToOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct BroadcastToOptionsBuilder { ++ typedef BroadcastToOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit BroadcastToOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- BroadcastToOptionsBuilder &operator=(const BroadcastToOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -10042,12 +10417,11 @@ flatbuffers::Offset CreateBroadcastToOptions(flatbuffers::Fl + + struct Rfft2dOptionsT : public flatbuffers::NativeTable { + typedef Rfft2dOptions TableType; +- Rfft2dOptionsT() { +- } + }; + + struct Rfft2dOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef Rfft2dOptionsT NativeTableType; ++ typedef Rfft2dOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -10058,13 +10432,13 @@ struct Rfft2dOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct Rfft2dOptionsBuilder { ++ typedef Rfft2dOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit Rfft2dOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- Rfft2dOptionsBuilder &operator=(const Rfft2dOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -10082,18 +10456,14 @@ flatbuffers::Offset CreateRfft2dOptions(flatbuffers::FlatBufferBu + + struct HashtableOptionsT : public flatbuffers::NativeTable { + typedef HashtableOptions TableType; +- int32_t table_id; +- tflite::TensorType key_dtype; +- tflite::TensorType value_dtype; +- HashtableOptionsT() +- : table_id(0), +- key_dtype(tflite::TensorType_FLOAT32), +- value_dtype(tflite::TensorType_FLOAT32) { +- } ++ int32_t table_id = 0; ++ tflite::TensorType key_dtype = tflite::TensorType_FLOAT32; ++ tflite::TensorType value_dtype = tflite::TensorType_FLOAT32; + }; + + struct HashtableOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef HashtableOptionsT NativeTableType; ++ typedef HashtableOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_TABLE_ID = 4, + VT_KEY_DTYPE = 6, +@@ -10121,6 +10491,7 @@ struct HashtableOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct HashtableOptionsBuilder { ++ typedef HashtableOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_table_id(int32_t table_id) { +@@ -10136,7 +10507,6 @@ struct HashtableOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- HashtableOptionsBuilder &operator=(const HashtableOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -10160,12 +10530,11 @@ flatbuffers::Offset CreateHashtableOptions(flatbuffers::FlatBu + + struct HashtableFindOptionsT : public flatbuffers::NativeTable { + typedef HashtableFindOptions TableType; +- HashtableFindOptionsT() { +- } + }; + + struct HashtableFindOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef HashtableFindOptionsT NativeTableType; ++ typedef HashtableFindOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -10176,13 +10545,13 @@ struct HashtableFindOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table + }; + + struct HashtableFindOptionsBuilder { ++ typedef HashtableFindOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit HashtableFindOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- HashtableFindOptionsBuilder &operator=(const HashtableFindOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -10200,12 +10569,11 @@ flatbuffers::Offset CreateHashtableFindOptions(flatbuffers + + struct HashtableImportOptionsT : public flatbuffers::NativeTable { + typedef HashtableImportOptions TableType; +- HashtableImportOptionsT() { +- } + }; + + struct HashtableImportOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef HashtableImportOptionsT NativeTableType; ++ typedef HashtableImportOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -10216,13 +10584,13 @@ struct HashtableImportOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Tab + }; + + struct HashtableImportOptionsBuilder { ++ typedef HashtableImportOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit HashtableImportOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- HashtableImportOptionsBuilder &operator=(const HashtableImportOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -10240,12 +10608,11 @@ flatbuffers::Offset CreateHashtableImportOptions(flatbuf + + struct HashtableSizeOptionsT : public flatbuffers::NativeTable { + typedef HashtableSizeOptions TableType; +- HashtableSizeOptionsT() { +- } + }; + + struct HashtableSizeOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef HashtableSizeOptionsT NativeTableType; ++ typedef HashtableSizeOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -10256,13 +10623,13 @@ struct HashtableSizeOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table + }; + + struct HashtableSizeOptionsBuilder { ++ typedef HashtableSizeOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit HashtableSizeOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- HashtableSizeOptionsBuilder &operator=(const HashtableSizeOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -10280,14 +10647,13 @@ flatbuffers::Offset CreateHashtableSizeOptions(flatbuffers + + struct VarHandleOptionsT : public flatbuffers::NativeTable { + typedef VarHandleOptions TableType; +- std::string container; +- std::string shared_name; +- VarHandleOptionsT() { +- } ++ std::string container{}; ++ std::string shared_name{}; + }; + + struct VarHandleOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef VarHandleOptionsT NativeTableType; ++ typedef VarHandleOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_CONTAINER = 4, + VT_SHARED_NAME = 6 +@@ -10312,6 +10678,7 @@ struct VarHandleOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct VarHandleOptionsBuilder { ++ typedef VarHandleOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_container(flatbuffers::Offset container) { +@@ -10324,7 +10691,6 @@ struct VarHandleOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- VarHandleOptionsBuilder &operator=(const VarHandleOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -10358,12 +10724,11 @@ flatbuffers::Offset CreateVarHandleOptions(flatbuffers::FlatBu + + struct ReadVariableOptionsT : public flatbuffers::NativeTable { + typedef ReadVariableOptions TableType; +- ReadVariableOptionsT() { +- } + }; + + struct ReadVariableOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef ReadVariableOptionsT NativeTableType; ++ typedef ReadVariableOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -10374,13 +10739,13 @@ struct ReadVariableOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table + }; + + struct ReadVariableOptionsBuilder { ++ typedef ReadVariableOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit ReadVariableOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- ReadVariableOptionsBuilder &operator=(const ReadVariableOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -10398,12 +10763,11 @@ flatbuffers::Offset CreateReadVariableOptions(flatbuffers:: + + struct AssignVariableOptionsT : public flatbuffers::NativeTable { + typedef AssignVariableOptions TableType; +- AssignVariableOptionsT() { +- } + }; + + struct AssignVariableOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef AssignVariableOptionsT NativeTableType; ++ typedef AssignVariableOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -10414,13 +10778,13 @@ struct AssignVariableOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Tabl + }; + + struct AssignVariableOptionsBuilder { ++ typedef AssignVariableOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit AssignVariableOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- AssignVariableOptionsBuilder &operator=(const AssignVariableOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -10438,16 +10802,13 @@ flatbuffers::Offset CreateAssignVariableOptions(flatbuffe + + struct RandomOptionsT : public flatbuffers::NativeTable { + typedef RandomOptions TableType; +- int64_t seed; +- int64_t seed2; +- RandomOptionsT() +- : seed(0), +- seed2(0) { +- } ++ int64_t seed = 0; ++ int64_t seed2 = 0; + }; + + struct RandomOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef RandomOptionsT NativeTableType; ++ typedef RandomOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_SEED = 4, + VT_SEED2 = 6 +@@ -10470,6 +10831,7 @@ struct RandomOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct RandomOptionsBuilder { ++ typedef RandomOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_seed(int64_t seed) { +@@ -10482,7 +10844,6 @@ struct RandomOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- RandomOptionsBuilder &operator=(const RandomOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -10504,13 +10865,12 @@ flatbuffers::Offset CreateRandomOptions(flatbuffers::FlatBufferBu + + struct BucketizeOptionsT : public flatbuffers::NativeTable { + typedef BucketizeOptions TableType; +- std::vector boundaries; +- BucketizeOptionsT() { +- } ++ std::vector boundaries{}; + }; + + struct BucketizeOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef BucketizeOptionsT NativeTableType; ++ typedef BucketizeOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_BOUNDARIES = 4 + }; +@@ -10529,6 +10889,7 @@ struct BucketizeOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct BucketizeOptionsBuilder { ++ typedef BucketizeOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_boundaries(flatbuffers::Offset> boundaries) { +@@ -10538,7 +10899,6 @@ struct BucketizeOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- BucketizeOptionsBuilder &operator=(const BucketizeOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -10567,14 +10927,12 @@ flatbuffers::Offset CreateBucketizeOptions(flatbuffers::FlatBu + + struct GeluOptionsT : public flatbuffers::NativeTable { + typedef GeluOptions TableType; +- bool approximate; +- GeluOptionsT() +- : approximate(false) { +- } ++ bool approximate = false; + }; + + struct GeluOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef GeluOptionsT NativeTableType; ++ typedef GeluOptionsBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_APPROXIMATE = 4 + }; +@@ -10592,6 +10950,7 @@ struct GeluOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct GeluOptionsBuilder { ++ typedef GeluOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_approximate(bool approximate) { +@@ -10601,7 +10960,6 @@ struct GeluOptionsBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- GeluOptionsBuilder &operator=(const GeluOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -10621,12 +10979,11 @@ flatbuffers::Offset CreateGeluOptions(flatbuffers::FlatBufferBuilde + + struct DynamicUpdateSliceOptionsT : public flatbuffers::NativeTable { + typedef DynamicUpdateSliceOptions TableType; +- DynamicUpdateSliceOptionsT() { +- } + }; + + struct DynamicUpdateSliceOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef DynamicUpdateSliceOptionsT NativeTableType; ++ typedef DynamicUpdateSliceOptionsBuilder Builder; + bool Verify(flatbuffers::Verifier &verifier) const { + return VerifyTableStart(verifier) && + verifier.EndTable(); +@@ -10637,13 +10994,13 @@ struct DynamicUpdateSliceOptions FLATBUFFERS_FINAL_CLASS : private flatbuffers:: + }; + + struct DynamicUpdateSliceOptionsBuilder { ++ typedef DynamicUpdateSliceOptions Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + explicit DynamicUpdateSliceOptionsBuilder(flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- DynamicUpdateSliceOptionsBuilder &operator=(const DynamicUpdateSliceOptionsBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -10661,19 +11018,15 @@ flatbuffers::Offset CreateDynamicUpdateSliceOptions(f + + struct OperatorCodeT : public flatbuffers::NativeTable { + typedef OperatorCode TableType; +- int8_t deprecated_builtin_code; +- std::string custom_code; +- int32_t version; +- tflite::BuiltinOperator builtin_code; +- OperatorCodeT() +- : deprecated_builtin_code(0), +- version(1), +- builtin_code(tflite::BuiltinOperator_ADD) { +- } ++ int8_t deprecated_builtin_code = 0; ++ std::string custom_code{}; ++ int32_t version = 1; ++ tflite::BuiltinOperator builtin_code = tflite::BuiltinOperator_ADD; + }; + + struct OperatorCode FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef OperatorCodeT NativeTableType; ++ typedef OperatorCodeBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_DEPRECATED_BUILTIN_CODE = 4, + VT_CUSTOM_CODE = 6, +@@ -10707,6 +11060,7 @@ struct OperatorCode FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct OperatorCodeBuilder { ++ typedef OperatorCode Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_deprecated_builtin_code(int8_t deprecated_builtin_code) { +@@ -10725,7 +11079,6 @@ struct OperatorCodeBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- OperatorCodeBuilder &operator=(const OperatorCodeBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -10766,22 +11119,19 @@ flatbuffers::Offset CreateOperatorCode(flatbuffers::FlatBufferBuil + + struct OperatorT : public flatbuffers::NativeTable { + typedef Operator TableType; +- uint32_t opcode_index; +- std::vector inputs; +- std::vector outputs; +- tflite::BuiltinOptionsUnion builtin_options; +- std::vector custom_options; +- tflite::CustomOptionsFormat custom_options_format; +- std::vector mutating_variable_inputs; +- std::vector intermediates; +- OperatorT() +- : opcode_index(0), +- custom_options_format(tflite::CustomOptionsFormat_FLEXBUFFERS) { +- } ++ uint32_t opcode_index = 0; ++ std::vector inputs{}; ++ std::vector outputs{}; ++ tflite::BuiltinOptionsUnion builtin_options{}; ++ std::vector custom_options{}; ++ tflite::CustomOptionsFormat custom_options_format = tflite::CustomOptionsFormat_FLEXBUFFERS; ++ std::vector mutating_variable_inputs{}; ++ std::vector intermediates{}; + }; + + struct Operator FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef OperatorT NativeTableType; ++ typedef OperatorBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_OPCODE_INDEX = 4, + VT_INPUTS = 6, +@@ -11665,6 +12015,7 @@ template<> inline const tflite::DynamicUpdateSliceOptions *Operator::builtin_opt + } + + struct OperatorBuilder { ++ typedef Operator Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_opcode_index(uint32_t opcode_index) { +@@ -11698,7 +12049,6 @@ struct OperatorBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- OperatorBuilder &operator=(const OperatorBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -11763,17 +12113,16 @@ flatbuffers::Offset CreateOperator(flatbuffers::FlatBufferBuilder &_fb + + struct SubGraphT : public flatbuffers::NativeTable { + typedef SubGraph TableType; +- std::vector> tensors; +- std::vector inputs; +- std::vector outputs; +- std::vector> operators; +- std::string name; +- SubGraphT() { +- } ++ std::vector> tensors{}; ++ std::vector inputs{}; ++ std::vector outputs{}; ++ std::vector> operators{}; ++ std::string name{}; + }; + + struct SubGraph FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef SubGraphT NativeTableType; ++ typedef SubGraphBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_TENSORS = 4, + VT_INPUTS = 6, +@@ -11818,6 +12167,7 @@ struct SubGraph FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct SubGraphBuilder { ++ typedef SubGraph Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_tensors(flatbuffers::Offset>> tensors) { +@@ -11839,7 +12189,6 @@ struct SubGraphBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- SubGraphBuilder &operator=(const SubGraphBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -11888,13 +12237,12 @@ flatbuffers::Offset CreateSubGraph(flatbuffers::FlatBufferBuilder &_fb + + struct BufferT : public flatbuffers::NativeTable { + typedef Buffer TableType; +- std::vector data; +- BufferT() { +- } ++ std::vector data{}; + }; + + struct Buffer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef BufferT NativeTableType; ++ typedef BufferBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_DATA = 4 + }; +@@ -11913,6 +12261,7 @@ struct Buffer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct BufferBuilder { ++ typedef Buffer Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_data(flatbuffers::Offset> data) { +@@ -11922,7 +12271,6 @@ struct BufferBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- BufferBuilder &operator=(const BufferBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -11952,15 +12300,13 @@ flatbuffers::Offset CreateBuffer(flatbuffers::FlatBufferBuilder &_fbb, c + + struct MetadataT : public flatbuffers::NativeTable { + typedef Metadata TableType; +- std::string name; +- uint32_t buffer; +- MetadataT() +- : buffer(0) { +- } ++ std::string name{}; ++ uint32_t buffer = 0; + }; + + struct Metadata FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef MetadataT NativeTableType; ++ typedef MetadataBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_NAME = 4, + VT_BUFFER = 6 +@@ -11984,6 +12330,7 @@ struct Metadata FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct MetadataBuilder { ++ typedef Metadata Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_name(flatbuffers::Offset name) { +@@ -11996,7 +12343,6 @@ struct MetadataBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- MetadataBuilder &operator=(const MetadataBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -12029,15 +12375,13 @@ flatbuffers::Offset CreateMetadata(flatbuffers::FlatBufferBuilder &_fb + + struct TensorMapT : public flatbuffers::NativeTable { + typedef TensorMap TableType; +- std::string name; +- uint32_t tensor_index; +- TensorMapT() +- : tensor_index(0) { +- } ++ std::string name{}; ++ uint32_t tensor_index = 0; + }; + + struct TensorMap FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef TensorMapT NativeTableType; ++ typedef TensorMapBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_NAME = 4, + VT_TENSOR_INDEX = 6 +@@ -12061,6 +12405,7 @@ struct TensorMap FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct TensorMapBuilder { ++ typedef TensorMap Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_name(flatbuffers::Offset name) { +@@ -12073,7 +12418,6 @@ struct TensorMapBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- TensorMapBuilder &operator=(const TensorMapBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -12106,17 +12450,15 @@ flatbuffers::Offset CreateTensorMap(flatbuffers::FlatBufferBuilder &_ + + struct SignatureDefT : public flatbuffers::NativeTable { + typedef SignatureDef TableType; +- std::vector> inputs; +- std::vector> outputs; +- std::string signature_key; +- uint32_t subgraph_index; +- SignatureDefT() +- : subgraph_index(0) { +- } ++ std::vector> inputs{}; ++ std::vector> outputs{}; ++ std::string signature_key{}; ++ uint32_t subgraph_index = 0; + }; + + struct SignatureDef FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef SignatureDefT NativeTableType; ++ typedef SignatureDefBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_INPUTS = 4, + VT_OUTPUTS = 6, +@@ -12154,6 +12496,7 @@ struct SignatureDef FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct SignatureDefBuilder { ++ typedef SignatureDef Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_inputs(flatbuffers::Offset>> inputs) { +@@ -12172,7 +12515,6 @@ struct SignatureDefBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- SignatureDefBuilder &operator=(const SignatureDefBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -12215,21 +12557,19 @@ flatbuffers::Offset CreateSignatureDef(flatbuffers::FlatBufferBuil + + struct ModelT : public flatbuffers::NativeTable { + typedef Model TableType; +- uint32_t version; +- std::vector> operator_codes; +- std::vector> subgraphs; +- std::string description; +- std::vector> buffers; +- std::vector metadata_buffer; +- std::vector> metadata; +- std::vector> signature_defs; +- ModelT() +- : version(0) { +- } ++ uint32_t version = 0; ++ std::vector> operator_codes{}; ++ std::vector> subgraphs{}; ++ std::string description{}; ++ std::vector> buffers{}; ++ std::vector metadata_buffer{}; ++ std::vector> metadata{}; ++ std::vector> signature_defs{}; + }; + + struct Model FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + typedef ModelT NativeTableType; ++ typedef ModelBuilder Builder; + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_VERSION = 4, + VT_OPERATOR_CODES = 6, +@@ -12294,6 +12634,7 @@ struct Model FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { + }; + + struct ModelBuilder { ++ typedef Model Table; + flatbuffers::FlatBufferBuilder &fbb_; + flatbuffers::uoffset_t start_; + void add_version(uint32_t version) { +@@ -12324,7 +12665,6 @@ struct ModelBuilder { + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } +- ModelBuilder &operator=(const ModelBuilder &); + flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = flatbuffers::Offset(end); +@@ -12386,9 +12726,9 @@ inline flatbuffers::Offset CreateModelDirect( + flatbuffers::Offset CreateModel(flatbuffers::FlatBufferBuilder &_fbb, const ModelT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr); + + inline CustomQuantizationT *CustomQuantization::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new CustomQuantizationT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new CustomQuantizationT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void CustomQuantization::UnPackTo(CustomQuantizationT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -12413,9 +12753,9 @@ inline flatbuffers::Offset CreateCustomQuantization(flatbuff + } + + inline QuantizationParametersT *QuantizationParameters::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new QuantizationParametersT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new QuantizationParametersT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void QuantizationParameters::UnPackTo(QuantizationParametersT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -12457,9 +12797,9 @@ inline flatbuffers::Offset CreateQuantizationParameters( + } + + inline Int32VectorT *Int32Vector::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new Int32VectorT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new Int32VectorT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void Int32Vector::UnPackTo(Int32VectorT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -12483,9 +12823,9 @@ inline flatbuffers::Offset CreateInt32Vector(flatbuffers::FlatBuffe + } + + inline Uint16VectorT *Uint16Vector::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new Uint16VectorT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new Uint16VectorT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void Uint16Vector::UnPackTo(Uint16VectorT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -12510,9 +12850,9 @@ inline flatbuffers::Offset CreateUint16Vector(flatbuffers::FlatBuf + } + + inline Uint8VectorT *Uint8Vector::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new Uint8VectorT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new Uint8VectorT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void Uint8Vector::UnPackTo(Uint8VectorT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -12537,9 +12877,9 @@ inline flatbuffers::Offset CreateUint8Vector(flatbuffers::FlatBuffe + } + + inline DimensionMetadataT *DimensionMetadata::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new DimensionMetadataT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new DimensionMetadataT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void DimensionMetadata::UnPackTo(DimensionMetadataT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -12578,9 +12918,9 @@ inline flatbuffers::Offset CreateDimensionMetadata(flatbuffer + } + + inline SparsityParametersT *SparsityParameters::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new SparsityParametersT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new SparsityParametersT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void SparsityParameters::UnPackTo(SparsityParametersT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -12588,7 +12928,7 @@ inline void SparsityParameters::UnPackTo(SparsityParametersT *_o, const flatbuff + (void)_resolver; + { auto _e = traversal_order(); if (_e) { _o->traversal_order.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->traversal_order[_i] = _e->Get(_i); } } } + { auto _e = block_map(); if (_e) { _o->block_map.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->block_map[_i] = _e->Get(_i); } } } +- { auto _e = dim_metadata(); if (_e) { _o->dim_metadata.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->dim_metadata[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); } } } ++ { auto _e = dim_metadata(); if (_e) { _o->dim_metadata.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->dim_metadata[_i]) { _e->Get(_i)->UnPackTo(_o->dim_metadata[_i].get(), _resolver); } else { _o->dim_metadata[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } } + } + + inline flatbuffers::Offset SparsityParameters::Pack(flatbuffers::FlatBufferBuilder &_fbb, const SparsityParametersT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +@@ -12610,9 +12950,9 @@ inline flatbuffers::Offset CreateSparsityParameters(flatbuff + } + + inline TensorT *Tensor::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new TensorT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new TensorT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void Tensor::UnPackTo(TensorT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -12622,9 +12962,9 @@ inline void Tensor::UnPackTo(TensorT *_o, const flatbuffers::resolver_function_t + { auto _e = type(); _o->type = _e; } + { auto _e = buffer(); _o->buffer = _e; } + { auto _e = name(); if (_e) _o->name = _e->str(); } +- { auto _e = quantization(); if (_e) _o->quantization = std::unique_ptr(_e->UnPack(_resolver)); } ++ { auto _e = quantization(); if (_e) { if(_o->quantization) { _e->UnPackTo(_o->quantization.get(), _resolver); } else { _o->quantization = std::unique_ptr(_e->UnPack(_resolver)); } } } + { auto _e = is_variable(); _o->is_variable = _e; } +- { auto _e = sparsity(); if (_e) _o->sparsity = std::unique_ptr(_e->UnPack(_resolver)); } ++ { auto _e = sparsity(); if (_e) { if(_o->sparsity) { _e->UnPackTo(_o->sparsity.get(), _resolver); } else { _o->sparsity = std::unique_ptr(_e->UnPack(_resolver)); } } } + { auto _e = shape_signature(); if (_e) { _o->shape_signature.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->shape_signature[_i] = _e->Get(_i); } } } + } + +@@ -12657,9 +12997,9 @@ inline flatbuffers::Offset CreateTensor(flatbuffers::FlatBufferBuilder & + } + + inline Conv2DOptionsT *Conv2DOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new Conv2DOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new Conv2DOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void Conv2DOptions::UnPackTo(Conv2DOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -12698,9 +13038,9 @@ inline flatbuffers::Offset CreateConv2DOptions(flatbuffers::FlatB + } + + inline Conv3DOptionsT *Conv3DOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new Conv3DOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new Conv3DOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void Conv3DOptions::UnPackTo(Conv3DOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -12745,9 +13085,9 @@ inline flatbuffers::Offset CreateConv3DOptions(flatbuffers::FlatB + } + + inline Pool2DOptionsT *Pool2DOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new Pool2DOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new Pool2DOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void Pool2DOptions::UnPackTo(Pool2DOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -12786,9 +13126,9 @@ inline flatbuffers::Offset CreatePool2DOptions(flatbuffers::FlatB + } + + inline DepthwiseConv2DOptionsT *DepthwiseConv2DOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new DepthwiseConv2DOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new DepthwiseConv2DOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void DepthwiseConv2DOptions::UnPackTo(DepthwiseConv2DOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -12830,9 +13170,9 @@ inline flatbuffers::Offset CreateDepthwiseConv2DOptions( + } + + inline ConcatEmbeddingsOptionsT *ConcatEmbeddingsOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new ConcatEmbeddingsOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new ConcatEmbeddingsOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void ConcatEmbeddingsOptions::UnPackTo(ConcatEmbeddingsOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -12862,9 +13202,9 @@ inline flatbuffers::Offset CreateConcatEmbeddingsOption + } + + inline LSHProjectionOptionsT *LSHProjectionOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new LSHProjectionOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new LSHProjectionOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void LSHProjectionOptions::UnPackTo(LSHProjectionOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -12888,9 +13228,9 @@ inline flatbuffers::Offset CreateLSHProjectionOptions(flat + } + + inline SVDFOptionsT *SVDFOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new SVDFOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new SVDFOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void SVDFOptions::UnPackTo(SVDFOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -12920,9 +13260,9 @@ inline flatbuffers::Offset CreateSVDFOptions(flatbuffers::FlatBuffe + } + + inline RNNOptionsT *RNNOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new RNNOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new RNNOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void RNNOptions::UnPackTo(RNNOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -12949,9 +13289,9 @@ inline flatbuffers::Offset CreateRNNOptions(flatbuffers::FlatBufferB + } + + inline SequenceRNNOptionsT *SequenceRNNOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new SequenceRNNOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new SequenceRNNOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void SequenceRNNOptions::UnPackTo(SequenceRNNOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -12981,9 +13321,9 @@ inline flatbuffers::Offset CreateSequenceRNNOptions(flatbuff + } + + inline BidirectionalSequenceRNNOptionsT *BidirectionalSequenceRNNOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new BidirectionalSequenceRNNOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new BidirectionalSequenceRNNOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void BidirectionalSequenceRNNOptions::UnPackTo(BidirectionalSequenceRNNOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -13016,9 +13356,9 @@ inline flatbuffers::Offset CreateBidirectionalS + } + + inline FullyConnectedOptionsT *FullyConnectedOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new FullyConnectedOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new FullyConnectedOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void FullyConnectedOptions::UnPackTo(FullyConnectedOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -13051,9 +13391,9 @@ inline flatbuffers::Offset CreateFullyConnectedOptions(fl + } + + inline SoftmaxOptionsT *SoftmaxOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new SoftmaxOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new SoftmaxOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void SoftmaxOptions::UnPackTo(SoftmaxOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -13077,9 +13417,9 @@ inline flatbuffers::Offset CreateSoftmaxOptions(flatbuffers::Fla + } + + inline ConcatenationOptionsT *ConcatenationOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new ConcatenationOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new ConcatenationOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void ConcatenationOptions::UnPackTo(ConcatenationOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -13106,9 +13446,9 @@ inline flatbuffers::Offset CreateConcatenationOptions(flat + } + + inline AddOptionsT *AddOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new AddOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new AddOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void AddOptions::UnPackTo(AddOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -13135,9 +13475,9 @@ inline flatbuffers::Offset CreateAddOptions(flatbuffers::FlatBufferB + } + + inline MulOptionsT *MulOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new MulOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new MulOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void MulOptions::UnPackTo(MulOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -13161,9 +13501,9 @@ inline flatbuffers::Offset CreateMulOptions(flatbuffers::FlatBufferB + } + + inline L2NormOptionsT *L2NormOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new L2NormOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new L2NormOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void L2NormOptions::UnPackTo(L2NormOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -13187,9 +13527,9 @@ inline flatbuffers::Offset CreateL2NormOptions(flatbuffers::FlatB + } + + inline LocalResponseNormalizationOptionsT *LocalResponseNormalizationOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new LocalResponseNormalizationOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new LocalResponseNormalizationOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void LocalResponseNormalizationOptions::UnPackTo(LocalResponseNormalizationOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -13222,9 +13562,9 @@ inline flatbuffers::Offset CreateLocalRespons + } + + inline LSTMOptionsT *LSTMOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new LSTMOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new LSTMOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void LSTMOptions::UnPackTo(LSTMOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -13260,9 +13600,9 @@ inline flatbuffers::Offset CreateLSTMOptions(flatbuffers::FlatBuffe + } + + inline UnidirectionalSequenceLSTMOptionsT *UnidirectionalSequenceLSTMOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new UnidirectionalSequenceLSTMOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new UnidirectionalSequenceLSTMOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void UnidirectionalSequenceLSTMOptions::UnPackTo(UnidirectionalSequenceLSTMOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -13298,9 +13638,9 @@ inline flatbuffers::Offset CreateUnidirection + } + + inline BidirectionalSequenceLSTMOptionsT *BidirectionalSequenceLSTMOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new BidirectionalSequenceLSTMOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new BidirectionalSequenceLSTMOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void BidirectionalSequenceLSTMOptions::UnPackTo(BidirectionalSequenceLSTMOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -13339,9 +13679,9 @@ inline flatbuffers::Offset CreateBidirectional + } + + inline ResizeBilinearOptionsT *ResizeBilinearOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new ResizeBilinearOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new ResizeBilinearOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void ResizeBilinearOptions::UnPackTo(ResizeBilinearOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -13368,9 +13708,9 @@ inline flatbuffers::Offset CreateResizeBilinearOptions(fl + } + + inline ResizeNearestNeighborOptionsT *ResizeNearestNeighborOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new ResizeNearestNeighborOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new ResizeNearestNeighborOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void ResizeNearestNeighborOptions::UnPackTo(ResizeNearestNeighborOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -13397,9 +13737,9 @@ inline flatbuffers::Offset CreateResizeNearestNeig + } + + inline CallOptionsT *CallOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new CallOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new CallOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void CallOptions::UnPackTo(CallOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -13423,9 +13763,9 @@ inline flatbuffers::Offset CreateCallOptions(flatbuffers::FlatBuffe + } + + inline PadOptionsT *PadOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new PadOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new PadOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void PadOptions::UnPackTo(PadOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -13446,9 +13786,9 @@ inline flatbuffers::Offset CreatePadOptions(flatbuffers::FlatBufferB + } + + inline PadV2OptionsT *PadV2Options::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new PadV2OptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new PadV2OptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void PadV2Options::UnPackTo(PadV2OptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -13469,9 +13809,9 @@ inline flatbuffers::Offset CreatePadV2Options(flatbuffers::FlatBuf + } + + inline ReshapeOptionsT *ReshapeOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new ReshapeOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new ReshapeOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void ReshapeOptions::UnPackTo(ReshapeOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -13495,9 +13835,9 @@ inline flatbuffers::Offset CreateReshapeOptions(flatbuffers::Fla + } + + inline SpaceToBatchNDOptionsT *SpaceToBatchNDOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new SpaceToBatchNDOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new SpaceToBatchNDOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void SpaceToBatchNDOptions::UnPackTo(SpaceToBatchNDOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -13518,9 +13858,9 @@ inline flatbuffers::Offset CreateSpaceToBatchNDOptions(fl + } + + inline BatchToSpaceNDOptionsT *BatchToSpaceNDOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new BatchToSpaceNDOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new BatchToSpaceNDOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void BatchToSpaceNDOptions::UnPackTo(BatchToSpaceNDOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -13541,9 +13881,9 @@ inline flatbuffers::Offset CreateBatchToSpaceNDOptions(fl + } + + inline SkipGramOptionsT *SkipGramOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new SkipGramOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new SkipGramOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void SkipGramOptions::UnPackTo(SkipGramOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -13573,9 +13913,9 @@ inline flatbuffers::Offset CreateSkipGramOptions(flatbuffers::F + } + + inline SpaceToDepthOptionsT *SpaceToDepthOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new SpaceToDepthOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new SpaceToDepthOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void SpaceToDepthOptions::UnPackTo(SpaceToDepthOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -13599,9 +13939,9 @@ inline flatbuffers::Offset CreateSpaceToDepthOptions(flatbu + } + + inline DepthToSpaceOptionsT *DepthToSpaceOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new DepthToSpaceOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new DepthToSpaceOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void DepthToSpaceOptions::UnPackTo(DepthToSpaceOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -13625,9 +13965,9 @@ inline flatbuffers::Offset CreateDepthToSpaceOptions(flatbu + } + + inline SubOptionsT *SubOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new SubOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new SubOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void SubOptions::UnPackTo(SubOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -13654,9 +13994,9 @@ inline flatbuffers::Offset CreateSubOptions(flatbuffers::FlatBufferB + } + + inline DivOptionsT *DivOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new DivOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new DivOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void DivOptions::UnPackTo(DivOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -13680,9 +14020,9 @@ inline flatbuffers::Offset CreateDivOptions(flatbuffers::FlatBufferB + } + + inline TopKV2OptionsT *TopKV2Options::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new TopKV2OptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new TopKV2OptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void TopKV2Options::UnPackTo(TopKV2OptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -13703,9 +14043,9 @@ inline flatbuffers::Offset CreateTopKV2Options(flatbuffers::FlatB + } + + inline EmbeddingLookupSparseOptionsT *EmbeddingLookupSparseOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new EmbeddingLookupSparseOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new EmbeddingLookupSparseOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void EmbeddingLookupSparseOptions::UnPackTo(EmbeddingLookupSparseOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -13729,9 +14069,9 @@ inline flatbuffers::Offset CreateEmbeddingLookupSp + } + + inline GatherOptionsT *GatherOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new GatherOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new GatherOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void GatherOptions::UnPackTo(GatherOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -13758,9 +14098,9 @@ inline flatbuffers::Offset CreateGatherOptions(flatbuffers::FlatB + } + + inline TransposeOptionsT *TransposeOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new TransposeOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new TransposeOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void TransposeOptions::UnPackTo(TransposeOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -13781,9 +14121,9 @@ inline flatbuffers::Offset CreateTransposeOptions(flatbuffers: + } + + inline ExpOptionsT *ExpOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new ExpOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new ExpOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void ExpOptions::UnPackTo(ExpOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -13804,9 +14144,9 @@ inline flatbuffers::Offset CreateExpOptions(flatbuffers::FlatBufferB + } + + inline CosOptionsT *CosOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new CosOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new CosOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void CosOptions::UnPackTo(CosOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -13827,9 +14167,9 @@ inline flatbuffers::Offset CreateCosOptions(flatbuffers::FlatBufferB + } + + inline ReducerOptionsT *ReducerOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new ReducerOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new ReducerOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void ReducerOptions::UnPackTo(ReducerOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -13853,9 +14193,9 @@ inline flatbuffers::Offset CreateReducerOptions(flatbuffers::Fla + } + + inline SqueezeOptionsT *SqueezeOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new SqueezeOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new SqueezeOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void SqueezeOptions::UnPackTo(SqueezeOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -13879,9 +14219,9 @@ inline flatbuffers::Offset CreateSqueezeOptions(flatbuffers::Fla + } + + inline SplitOptionsT *SplitOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new SplitOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new SplitOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void SplitOptions::UnPackTo(SplitOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -13905,9 +14245,9 @@ inline flatbuffers::Offset CreateSplitOptions(flatbuffers::FlatBuf + } + + inline SplitVOptionsT *SplitVOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new SplitVOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new SplitVOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void SplitVOptions::UnPackTo(SplitVOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -13931,9 +14271,9 @@ inline flatbuffers::Offset CreateSplitVOptions(flatbuffers::FlatB + } + + inline StridedSliceOptionsT *StridedSliceOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new StridedSliceOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new StridedSliceOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void StridedSliceOptions::UnPackTo(StridedSliceOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -13969,9 +14309,9 @@ inline flatbuffers::Offset CreateStridedSliceOptions(flatbu + } + + inline LogSoftmaxOptionsT *LogSoftmaxOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new LogSoftmaxOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new LogSoftmaxOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void LogSoftmaxOptions::UnPackTo(LogSoftmaxOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -13992,9 +14332,9 @@ inline flatbuffers::Offset CreateLogSoftmaxOptions(flatbuffer + } + + inline CastOptionsT *CastOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new CastOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new CastOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void CastOptions::UnPackTo(CastOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -14021,9 +14361,9 @@ inline flatbuffers::Offset CreateCastOptions(flatbuffers::FlatBuffe + } + + inline DequantizeOptionsT *DequantizeOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new DequantizeOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new DequantizeOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void DequantizeOptions::UnPackTo(DequantizeOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -14044,9 +14384,9 @@ inline flatbuffers::Offset CreateDequantizeOptions(flatbuffer + } + + inline MaximumMinimumOptionsT *MaximumMinimumOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new MaximumMinimumOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new MaximumMinimumOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void MaximumMinimumOptions::UnPackTo(MaximumMinimumOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -14067,9 +14407,9 @@ inline flatbuffers::Offset CreateMaximumMinimumOptions(fl + } + + inline TileOptionsT *TileOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new TileOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new TileOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void TileOptions::UnPackTo(TileOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -14090,9 +14430,9 @@ inline flatbuffers::Offset CreateTileOptions(flatbuffers::FlatBuffe + } + + inline ArgMaxOptionsT *ArgMaxOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new ArgMaxOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new ArgMaxOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void ArgMaxOptions::UnPackTo(ArgMaxOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -14116,9 +14456,9 @@ inline flatbuffers::Offset CreateArgMaxOptions(flatbuffers::FlatB + } + + inline ArgMinOptionsT *ArgMinOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new ArgMinOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new ArgMinOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void ArgMinOptions::UnPackTo(ArgMinOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -14142,9 +14482,9 @@ inline flatbuffers::Offset CreateArgMinOptions(flatbuffers::FlatB + } + + inline GreaterOptionsT *GreaterOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new GreaterOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new GreaterOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void GreaterOptions::UnPackTo(GreaterOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -14165,9 +14505,9 @@ inline flatbuffers::Offset CreateGreaterOptions(flatbuffers::Fla + } + + inline GreaterEqualOptionsT *GreaterEqualOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new GreaterEqualOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new GreaterEqualOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void GreaterEqualOptions::UnPackTo(GreaterEqualOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -14188,9 +14528,9 @@ inline flatbuffers::Offset CreateGreaterEqualOptions(flatbu + } + + inline LessOptionsT *LessOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new LessOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new LessOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void LessOptions::UnPackTo(LessOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -14211,9 +14551,9 @@ inline flatbuffers::Offset CreateLessOptions(flatbuffers::FlatBuffe + } + + inline LessEqualOptionsT *LessEqualOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new LessEqualOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new LessEqualOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void LessEqualOptions::UnPackTo(LessEqualOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -14234,9 +14574,9 @@ inline flatbuffers::Offset CreateLessEqualOptions(flatbuffers: + } + + inline NegOptionsT *NegOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new NegOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new NegOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void NegOptions::UnPackTo(NegOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -14257,9 +14597,9 @@ inline flatbuffers::Offset CreateNegOptions(flatbuffers::FlatBufferB + } + + inline SelectOptionsT *SelectOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new SelectOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new SelectOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void SelectOptions::UnPackTo(SelectOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -14280,9 +14620,9 @@ inline flatbuffers::Offset CreateSelectOptions(flatbuffers::FlatB + } + + inline SliceOptionsT *SliceOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new SliceOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new SliceOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void SliceOptions::UnPackTo(SliceOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -14303,9 +14643,9 @@ inline flatbuffers::Offset CreateSliceOptions(flatbuffers::FlatBuf + } + + inline TransposeConvOptionsT *TransposeConvOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new TransposeConvOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new TransposeConvOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void TransposeConvOptions::UnPackTo(TransposeConvOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -14335,9 +14675,9 @@ inline flatbuffers::Offset CreateTransposeConvOptions(flat + } + + inline ExpandDimsOptionsT *ExpandDimsOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new ExpandDimsOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new ExpandDimsOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void ExpandDimsOptions::UnPackTo(ExpandDimsOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -14358,9 +14698,9 @@ inline flatbuffers::Offset CreateExpandDimsOptions(flatbuffer + } + + inline SparseToDenseOptionsT *SparseToDenseOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new SparseToDenseOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new SparseToDenseOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void SparseToDenseOptions::UnPackTo(SparseToDenseOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -14384,9 +14724,9 @@ inline flatbuffers::Offset CreateSparseToDenseOptions(flat + } + + inline EqualOptionsT *EqualOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new EqualOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new EqualOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void EqualOptions::UnPackTo(EqualOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -14407,9 +14747,9 @@ inline flatbuffers::Offset CreateEqualOptions(flatbuffers::FlatBuf + } + + inline NotEqualOptionsT *NotEqualOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new NotEqualOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new NotEqualOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void NotEqualOptions::UnPackTo(NotEqualOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -14430,9 +14770,9 @@ inline flatbuffers::Offset CreateNotEqualOptions(flatbuffers::F + } + + inline ShapeOptionsT *ShapeOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new ShapeOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new ShapeOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void ShapeOptions::UnPackTo(ShapeOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -14456,9 +14796,9 @@ inline flatbuffers::Offset CreateShapeOptions(flatbuffers::FlatBuf + } + + inline RankOptionsT *RankOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new RankOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new RankOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void RankOptions::UnPackTo(RankOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -14479,9 +14819,9 @@ inline flatbuffers::Offset CreateRankOptions(flatbuffers::FlatBuffe + } + + inline PowOptionsT *PowOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new PowOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new PowOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void PowOptions::UnPackTo(PowOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -14502,9 +14842,9 @@ inline flatbuffers::Offset CreatePowOptions(flatbuffers::FlatBufferB + } + + inline FakeQuantOptionsT *FakeQuantOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new FakeQuantOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new FakeQuantOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void FakeQuantOptions::UnPackTo(FakeQuantOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -14537,9 +14877,9 @@ inline flatbuffers::Offset CreateFakeQuantOptions(flatbuffers: + } + + inline PackOptionsT *PackOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new PackOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new PackOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void PackOptions::UnPackTo(PackOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -14566,9 +14906,9 @@ inline flatbuffers::Offset CreatePackOptions(flatbuffers::FlatBuffe + } + + inline LogicalOrOptionsT *LogicalOrOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new LogicalOrOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new LogicalOrOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void LogicalOrOptions::UnPackTo(LogicalOrOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -14589,9 +14929,9 @@ inline flatbuffers::Offset CreateLogicalOrOptions(flatbuffers: + } + + inline OneHotOptionsT *OneHotOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new OneHotOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new OneHotOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void OneHotOptions::UnPackTo(OneHotOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -14615,9 +14955,9 @@ inline flatbuffers::Offset CreateOneHotOptions(flatbuffers::FlatB + } + + inline AbsOptionsT *AbsOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new AbsOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new AbsOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void AbsOptions::UnPackTo(AbsOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -14638,9 +14978,9 @@ inline flatbuffers::Offset CreateAbsOptions(flatbuffers::FlatBufferB + } + + inline HardSwishOptionsT *HardSwishOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new HardSwishOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new HardSwishOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void HardSwishOptions::UnPackTo(HardSwishOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -14661,9 +15001,9 @@ inline flatbuffers::Offset CreateHardSwishOptions(flatbuffers: + } + + inline LogicalAndOptionsT *LogicalAndOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new LogicalAndOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new LogicalAndOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void LogicalAndOptions::UnPackTo(LogicalAndOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -14684,9 +15024,9 @@ inline flatbuffers::Offset CreateLogicalAndOptions(flatbuffer + } + + inline LogicalNotOptionsT *LogicalNotOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new LogicalNotOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new LogicalNotOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void LogicalNotOptions::UnPackTo(LogicalNotOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -14707,9 +15047,9 @@ inline flatbuffers::Offset CreateLogicalNotOptions(flatbuffer + } + + inline UnpackOptionsT *UnpackOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new UnpackOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new UnpackOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void UnpackOptions::UnPackTo(UnpackOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -14736,9 +15076,9 @@ inline flatbuffers::Offset CreateUnpackOptions(flatbuffers::FlatB + } + + inline FloorDivOptionsT *FloorDivOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new FloorDivOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new FloorDivOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void FloorDivOptions::UnPackTo(FloorDivOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -14759,9 +15099,9 @@ inline flatbuffers::Offset CreateFloorDivOptions(flatbuffers::F + } + + inline SquareOptionsT *SquareOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new SquareOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new SquareOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void SquareOptions::UnPackTo(SquareOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -14782,9 +15122,9 @@ inline flatbuffers::Offset CreateSquareOptions(flatbuffers::FlatB + } + + inline ZerosLikeOptionsT *ZerosLikeOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new ZerosLikeOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new ZerosLikeOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void ZerosLikeOptions::UnPackTo(ZerosLikeOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -14805,9 +15145,9 @@ inline flatbuffers::Offset CreateZerosLikeOptions(flatbuffers: + } + + inline FillOptionsT *FillOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new FillOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new FillOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void FillOptions::UnPackTo(FillOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -14828,9 +15168,9 @@ inline flatbuffers::Offset CreateFillOptions(flatbuffers::FlatBuffe + } + + inline FloorModOptionsT *FloorModOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new FloorModOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new FloorModOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void FloorModOptions::UnPackTo(FloorModOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -14851,9 +15191,9 @@ inline flatbuffers::Offset CreateFloorModOptions(flatbuffers::F + } + + inline RangeOptionsT *RangeOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new RangeOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new RangeOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void RangeOptions::UnPackTo(RangeOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -14874,9 +15214,9 @@ inline flatbuffers::Offset CreateRangeOptions(flatbuffers::FlatBuf + } + + inline LeakyReluOptionsT *LeakyReluOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new LeakyReluOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new LeakyReluOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void LeakyReluOptions::UnPackTo(LeakyReluOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -14900,9 +15240,9 @@ inline flatbuffers::Offset CreateLeakyReluOptions(flatbuffers: + } + + inline SquaredDifferenceOptionsT *SquaredDifferenceOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new SquaredDifferenceOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new SquaredDifferenceOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void SquaredDifferenceOptions::UnPackTo(SquaredDifferenceOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -14923,9 +15263,9 @@ inline flatbuffers::Offset CreateSquaredDifferenceOpti + } + + inline MirrorPadOptionsT *MirrorPadOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new MirrorPadOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new MirrorPadOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void MirrorPadOptions::UnPackTo(MirrorPadOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -14949,9 +15289,9 @@ inline flatbuffers::Offset CreateMirrorPadOptions(flatbuffers: + } + + inline UniqueOptionsT *UniqueOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new UniqueOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new UniqueOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void UniqueOptions::UnPackTo(UniqueOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -14975,9 +15315,9 @@ inline flatbuffers::Offset CreateUniqueOptions(flatbuffers::FlatB + } + + inline ReverseV2OptionsT *ReverseV2Options::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new ReverseV2OptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new ReverseV2OptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void ReverseV2Options::UnPackTo(ReverseV2OptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -14998,9 +15338,9 @@ inline flatbuffers::Offset CreateReverseV2Options(flatbuffers: + } + + inline AddNOptionsT *AddNOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new AddNOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new AddNOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void AddNOptions::UnPackTo(AddNOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -15021,9 +15361,9 @@ inline flatbuffers::Offset CreateAddNOptions(flatbuffers::FlatBuffe + } + + inline GatherNdOptionsT *GatherNdOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new GatherNdOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new GatherNdOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void GatherNdOptions::UnPackTo(GatherNdOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -15044,9 +15384,9 @@ inline flatbuffers::Offset CreateGatherNdOptions(flatbuffers::F + } + + inline WhereOptionsT *WhereOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new WhereOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new WhereOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void WhereOptions::UnPackTo(WhereOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -15067,9 +15407,9 @@ inline flatbuffers::Offset CreateWhereOptions(flatbuffers::FlatBuf + } + + inline ReverseSequenceOptionsT *ReverseSequenceOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new ReverseSequenceOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new ReverseSequenceOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void ReverseSequenceOptions::UnPackTo(ReverseSequenceOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -15096,9 +15436,9 @@ inline flatbuffers::Offset CreateReverseSequenceOptions( + } + + inline MatrixDiagOptionsT *MatrixDiagOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new MatrixDiagOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new MatrixDiagOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void MatrixDiagOptions::UnPackTo(MatrixDiagOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -15119,9 +15459,9 @@ inline flatbuffers::Offset CreateMatrixDiagOptions(flatbuffer + } + + inline QuantizeOptionsT *QuantizeOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new QuantizeOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new QuantizeOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void QuantizeOptions::UnPackTo(QuantizeOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -15142,9 +15482,9 @@ inline flatbuffers::Offset CreateQuantizeOptions(flatbuffers::F + } + + inline MatrixSetDiagOptionsT *MatrixSetDiagOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new MatrixSetDiagOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new MatrixSetDiagOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void MatrixSetDiagOptions::UnPackTo(MatrixSetDiagOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -15165,9 +15505,9 @@ inline flatbuffers::Offset CreateMatrixSetDiagOptions(flat + } + + inline IfOptionsT *IfOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new IfOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new IfOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void IfOptions::UnPackTo(IfOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -15194,9 +15534,9 @@ inline flatbuffers::Offset CreateIfOptions(flatbuffers::FlatBufferBui + } + + inline CallOnceOptionsT *CallOnceOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new CallOnceOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new CallOnceOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void CallOnceOptions::UnPackTo(CallOnceOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -15220,9 +15560,9 @@ inline flatbuffers::Offset CreateCallOnceOptions(flatbuffers::F + } + + inline WhileOptionsT *WhileOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new WhileOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new WhileOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void WhileOptions::UnPackTo(WhileOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -15249,9 +15589,9 @@ inline flatbuffers::Offset CreateWhileOptions(flatbuffers::FlatBuf + } + + inline NonMaxSuppressionV4OptionsT *NonMaxSuppressionV4Options::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new NonMaxSuppressionV4OptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new NonMaxSuppressionV4OptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void NonMaxSuppressionV4Options::UnPackTo(NonMaxSuppressionV4OptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -15272,9 +15612,9 @@ inline flatbuffers::Offset CreateNonMaxSuppressionV4 + } + + inline NonMaxSuppressionV5OptionsT *NonMaxSuppressionV5Options::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new NonMaxSuppressionV5OptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new NonMaxSuppressionV5OptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void NonMaxSuppressionV5Options::UnPackTo(NonMaxSuppressionV5OptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -15295,9 +15635,9 @@ inline flatbuffers::Offset CreateNonMaxSuppressionV5 + } + + inline ScatterNdOptionsT *ScatterNdOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new ScatterNdOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new ScatterNdOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void ScatterNdOptions::UnPackTo(ScatterNdOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -15318,9 +15658,9 @@ inline flatbuffers::Offset CreateScatterNdOptions(flatbuffers: + } + + inline SelectV2OptionsT *SelectV2Options::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new SelectV2OptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new SelectV2OptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void SelectV2Options::UnPackTo(SelectV2OptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -15341,9 +15681,9 @@ inline flatbuffers::Offset CreateSelectV2Options(flatbuffers::F + } + + inline DensifyOptionsT *DensifyOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new DensifyOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new DensifyOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void DensifyOptions::UnPackTo(DensifyOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -15364,9 +15704,9 @@ inline flatbuffers::Offset CreateDensifyOptions(flatbuffers::Fla + } + + inline SegmentSumOptionsT *SegmentSumOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new SegmentSumOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new SegmentSumOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void SegmentSumOptions::UnPackTo(SegmentSumOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -15387,9 +15727,9 @@ inline flatbuffers::Offset CreateSegmentSumOptions(flatbuffer + } + + inline BatchMatMulOptionsT *BatchMatMulOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new BatchMatMulOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new BatchMatMulOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void BatchMatMulOptions::UnPackTo(BatchMatMulOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -15419,9 +15759,9 @@ inline flatbuffers::Offset CreateBatchMatMulOptions(flatbuff + } + + inline CumsumOptionsT *CumsumOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new CumsumOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new CumsumOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void CumsumOptions::UnPackTo(CumsumOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -15448,9 +15788,9 @@ inline flatbuffers::Offset CreateCumsumOptions(flatbuffers::FlatB + } + + inline BroadcastToOptionsT *BroadcastToOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new BroadcastToOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new BroadcastToOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void BroadcastToOptions::UnPackTo(BroadcastToOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -15471,9 +15811,9 @@ inline flatbuffers::Offset CreateBroadcastToOptions(flatbuff + } + + inline Rfft2dOptionsT *Rfft2dOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new Rfft2dOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new Rfft2dOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void Rfft2dOptions::UnPackTo(Rfft2dOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -15494,9 +15834,9 @@ inline flatbuffers::Offset CreateRfft2dOptions(flatbuffers::FlatB + } + + inline HashtableOptionsT *HashtableOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new HashtableOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new HashtableOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void HashtableOptions::UnPackTo(HashtableOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -15526,9 +15866,9 @@ inline flatbuffers::Offset CreateHashtableOptions(flatbuffers: + } + + inline HashtableFindOptionsT *HashtableFindOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new HashtableFindOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new HashtableFindOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void HashtableFindOptions::UnPackTo(HashtableFindOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -15549,9 +15889,9 @@ inline flatbuffers::Offset CreateHashtableFindOptions(flat + } + + inline HashtableImportOptionsT *HashtableImportOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new HashtableImportOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new HashtableImportOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void HashtableImportOptions::UnPackTo(HashtableImportOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -15572,9 +15912,9 @@ inline flatbuffers::Offset CreateHashtableImportOptions( + } + + inline HashtableSizeOptionsT *HashtableSizeOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new HashtableSizeOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new HashtableSizeOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void HashtableSizeOptions::UnPackTo(HashtableSizeOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -15595,9 +15935,9 @@ inline flatbuffers::Offset CreateHashtableSizeOptions(flat + } + + inline VarHandleOptionsT *VarHandleOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new VarHandleOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new VarHandleOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void VarHandleOptions::UnPackTo(VarHandleOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -15624,9 +15964,9 @@ inline flatbuffers::Offset CreateVarHandleOptions(flatbuffers: + } + + inline ReadVariableOptionsT *ReadVariableOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new ReadVariableOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new ReadVariableOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void ReadVariableOptions::UnPackTo(ReadVariableOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -15647,9 +15987,9 @@ inline flatbuffers::Offset CreateReadVariableOptions(flatbu + } + + inline AssignVariableOptionsT *AssignVariableOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new AssignVariableOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new AssignVariableOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void AssignVariableOptions::UnPackTo(AssignVariableOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -15670,9 +16010,9 @@ inline flatbuffers::Offset CreateAssignVariableOptions(fl + } + + inline RandomOptionsT *RandomOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new RandomOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new RandomOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void RandomOptions::UnPackTo(RandomOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -15699,9 +16039,9 @@ inline flatbuffers::Offset CreateRandomOptions(flatbuffers::FlatB + } + + inline BucketizeOptionsT *BucketizeOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new BucketizeOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new BucketizeOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void BucketizeOptions::UnPackTo(BucketizeOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -15725,9 +16065,9 @@ inline flatbuffers::Offset CreateBucketizeOptions(flatbuffers: + } + + inline GeluOptionsT *GeluOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new GeluOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new GeluOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void GeluOptions::UnPackTo(GeluOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -15751,9 +16091,9 @@ inline flatbuffers::Offset CreateGeluOptions(flatbuffers::FlatBuffe + } + + inline DynamicUpdateSliceOptionsT *DynamicUpdateSliceOptions::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new DynamicUpdateSliceOptionsT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new DynamicUpdateSliceOptionsT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void DynamicUpdateSliceOptions::UnPackTo(DynamicUpdateSliceOptionsT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -15774,9 +16114,9 @@ inline flatbuffers::Offset CreateDynamicUpdateSliceOp + } + + inline OperatorCodeT *OperatorCode::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new OperatorCodeT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new OperatorCodeT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void OperatorCode::UnPackTo(OperatorCodeT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -15809,9 +16149,9 @@ inline flatbuffers::Offset CreateOperatorCode(flatbuffers::FlatBuf + } + + inline OperatorT *Operator::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new OperatorT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new OperatorT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void Operator::UnPackTo(OperatorT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -15859,18 +16199,18 @@ inline flatbuffers::Offset CreateOperator(flatbuffers::FlatBufferBuild + } + + inline SubGraphT *SubGraph::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new SubGraphT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new SubGraphT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void SubGraph::UnPackTo(SubGraphT *_o, const flatbuffers::resolver_function_t *_resolver) const { + (void)_o; + (void)_resolver; +- { auto _e = tensors(); if (_e) { _o->tensors.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->tensors[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); } } } ++ { auto _e = tensors(); if (_e) { _o->tensors.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->tensors[_i]) { _e->Get(_i)->UnPackTo(_o->tensors[_i].get(), _resolver); } else { _o->tensors[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } } + { auto _e = inputs(); if (_e) { _o->inputs.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->inputs[_i] = _e->Get(_i); } } } + { auto _e = outputs(); if (_e) { _o->outputs.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->outputs[_i] = _e->Get(_i); } } } +- { auto _e = operators(); if (_e) { _o->operators.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->operators[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); } } } ++ { auto _e = operators(); if (_e) { _o->operators.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->operators[_i]) { _e->Get(_i)->UnPackTo(_o->operators[_i].get(), _resolver); } else { _o->operators[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } } + { auto _e = name(); if (_e) _o->name = _e->str(); } + } + +@@ -15897,9 +16237,9 @@ inline flatbuffers::Offset CreateSubGraph(flatbuffers::FlatBufferBuild + } + + inline BufferT *Buffer::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new BufferT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new BufferT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void Buffer::UnPackTo(BufferT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -15924,9 +16264,9 @@ inline flatbuffers::Offset CreateBuffer(flatbuffers::FlatBufferBuilder & + } + + inline MetadataT *Metadata::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new MetadataT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new MetadataT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void Metadata::UnPackTo(MetadataT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -15953,9 +16293,9 @@ inline flatbuffers::Offset CreateMetadata(flatbuffers::FlatBufferBuild + } + + inline TensorMapT *TensorMap::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new TensorMapT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new TensorMapT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void TensorMap::UnPackTo(TensorMapT *_o, const flatbuffers::resolver_function_t *_resolver) const { +@@ -15982,16 +16322,16 @@ inline flatbuffers::Offset CreateTensorMap(flatbuffers::FlatBufferBui + } + + inline SignatureDefT *SignatureDef::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new SignatureDefT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new SignatureDefT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void SignatureDef::UnPackTo(SignatureDefT *_o, const flatbuffers::resolver_function_t *_resolver) const { + (void)_o; + (void)_resolver; +- { auto _e = inputs(); if (_e) { _o->inputs.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->inputs[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); } } } +- { auto _e = outputs(); if (_e) { _o->outputs.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->outputs[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); } } } ++ { auto _e = inputs(); if (_e) { _o->inputs.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->inputs[_i]) { _e->Get(_i)->UnPackTo(_o->inputs[_i].get(), _resolver); } else { _o->inputs[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } } ++ { auto _e = outputs(); if (_e) { _o->outputs.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->outputs[_i]) { _e->Get(_i)->UnPackTo(_o->outputs[_i].get(), _resolver); } else { _o->outputs[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } } + { auto _e = signature_key(); if (_e) _o->signature_key = _e->str(); } + { auto _e = subgraph_index(); _o->subgraph_index = _e; } + } +@@ -16017,22 +16357,22 @@ inline flatbuffers::Offset CreateSignatureDef(flatbuffers::FlatBuf + } + + inline ModelT *Model::UnPack(const flatbuffers::resolver_function_t *_resolver) const { +- auto _o = new ModelT(); +- UnPackTo(_o, _resolver); +- return _o; ++ auto _o = std::unique_ptr(new ModelT()); ++ UnPackTo(_o.get(), _resolver); ++ return _o.release(); + } + + inline void Model::UnPackTo(ModelT *_o, const flatbuffers::resolver_function_t *_resolver) const { + (void)_o; + (void)_resolver; + { auto _e = version(); _o->version = _e; } +- { auto _e = operator_codes(); if (_e) { _o->operator_codes.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->operator_codes[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); } } } +- { auto _e = subgraphs(); if (_e) { _o->subgraphs.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->subgraphs[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); } } } ++ { auto _e = operator_codes(); if (_e) { _o->operator_codes.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->operator_codes[_i]) { _e->Get(_i)->UnPackTo(_o->operator_codes[_i].get(), _resolver); } else { _o->operator_codes[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } } ++ { auto _e = subgraphs(); if (_e) { _o->subgraphs.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->subgraphs[_i]) { _e->Get(_i)->UnPackTo(_o->subgraphs[_i].get(), _resolver); } else { _o->subgraphs[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } } + { auto _e = description(); if (_e) _o->description = _e->str(); } +- { auto _e = buffers(); if (_e) { _o->buffers.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->buffers[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); } } } ++ { auto _e = buffers(); if (_e) { _o->buffers.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->buffers[_i]) { _e->Get(_i)->UnPackTo(_o->buffers[_i].get(), _resolver); } else { _o->buffers[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } } + { auto _e = metadata_buffer(); if (_e) { _o->metadata_buffer.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->metadata_buffer[_i] = _e->Get(_i); } } } +- { auto _e = metadata(); if (_e) { _o->metadata.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->metadata[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); } } } +- { auto _e = signature_defs(); if (_e) { _o->signature_defs.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->signature_defs[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); } } } ++ { auto _e = metadata(); if (_e) { _o->metadata.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->metadata[_i]) { _e->Get(_i)->UnPackTo(_o->metadata[_i].get(), _resolver); } else { _o->metadata[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } } ++ { auto _e = signature_defs(); if (_e) { _o->signature_defs.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->signature_defs[_i]) { _e->Get(_i)->UnPackTo(_o->signature_defs[_i].get(), _resolver); } else { _o->signature_defs[_i] = std::unique_ptr(_e->Get(_i)->UnPack(_resolver)); }; } } } + } + + inline flatbuffers::Offset Model::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ModelT* _o, const flatbuffers::rehasher_function_t *_rehasher) { +@@ -16089,6 +16429,7 @@ inline bool VerifyQuantizationDetailsVector(flatbuffers::Verifier &verifier, con + } + + inline void *QuantizationDetailsUnion::UnPack(const void *obj, QuantizationDetails type, const flatbuffers::resolver_function_t *resolver) { ++ (void)resolver; + switch (type) { + case QuantizationDetails_CustomQuantization: { + auto ptr = reinterpret_cast(obj); +@@ -16099,6 +16440,7 @@ inline void *QuantizationDetailsUnion::UnPack(const void *obj, QuantizationDetai + } + + inline flatbuffers::Offset QuantizationDetailsUnion::Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher) const { ++ (void)_rehasher; + switch (type) { + case QuantizationDetails_CustomQuantization: { + auto ptr = reinterpret_cast(value); +@@ -16108,7 +16450,7 @@ inline flatbuffers::Offset QuantizationDetailsUnion::Pack(flatbuffers::Fla + } + } + +-inline QuantizationDetailsUnion::QuantizationDetailsUnion(const QuantizationDetailsUnion &u) FLATBUFFERS_NOEXCEPT : type(u.type), value(nullptr) { ++inline QuantizationDetailsUnion::QuantizationDetailsUnion(const QuantizationDetailsUnion &u) : type(u.type), value(nullptr) { + switch (type) { + case QuantizationDetails_CustomQuantization: { + value = new tflite::CustomQuantizationT(*reinterpret_cast(u.value)); +@@ -16166,6 +16508,7 @@ inline bool VerifySparseIndexVectorVector(flatbuffers::Verifier &verifier, const + } + + inline void *SparseIndexVectorUnion::UnPack(const void *obj, SparseIndexVector type, const flatbuffers::resolver_function_t *resolver) { ++ (void)resolver; + switch (type) { + case SparseIndexVector_Int32Vector: { + auto ptr = reinterpret_cast(obj); +@@ -16184,6 +16527,7 @@ inline void *SparseIndexVectorUnion::UnPack(const void *obj, SparseIndexVector t + } + + inline flatbuffers::Offset SparseIndexVectorUnion::Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher) const { ++ (void)_rehasher; + switch (type) { + case SparseIndexVector_Int32Vector: { + auto ptr = reinterpret_cast(value); +@@ -16201,7 +16545,7 @@ inline flatbuffers::Offset SparseIndexVectorUnion::Pack(flatbuffers::FlatB + } + } + +-inline SparseIndexVectorUnion::SparseIndexVectorUnion(const SparseIndexVectorUnion &u) FLATBUFFERS_NOEXCEPT : type(u.type), value(nullptr) { ++inline SparseIndexVectorUnion::SparseIndexVectorUnion(const SparseIndexVectorUnion &u) : type(u.type), value(nullptr) { + switch (type) { + case SparseIndexVector_Int32Vector: { + value = new tflite::Int32VectorT(*reinterpret_cast(u.value)); +@@ -16733,6 +17077,7 @@ inline bool VerifyBuiltinOptionsVector(flatbuffers::Verifier &verifier, const fl + } + + inline void *BuiltinOptionsUnion::UnPack(const void *obj, BuiltinOptions type, const flatbuffers::resolver_function_t *resolver) { ++ (void)resolver; + switch (type) { + case BuiltinOptions_Conv2DOptions: { + auto ptr = reinterpret_cast(obj); +@@ -17207,6 +17552,7 @@ inline void *BuiltinOptionsUnion::UnPack(const void *obj, BuiltinOptions type, c + } + + inline flatbuffers::Offset BuiltinOptionsUnion::Pack(flatbuffers::FlatBufferBuilder &_fbb, const flatbuffers::rehasher_function_t *_rehasher) const { ++ (void)_rehasher; + switch (type) { + case BuiltinOptions_Conv2DOptions: { + auto ptr = reinterpret_cast(value); +@@ -17680,7 +18026,7 @@ inline flatbuffers::Offset BuiltinOptionsUnion::Pack(flatbuffers::FlatBuff + } + } + +-inline BuiltinOptionsUnion::BuiltinOptionsUnion(const BuiltinOptionsUnion &u) FLATBUFFERS_NOEXCEPT : type(u.type), value(nullptr) { ++inline BuiltinOptionsUnion::BuiltinOptionsUnion(const BuiltinOptionsUnion &u) : type(u.type), value(nullptr) { + switch (type) { + case BuiltinOptions_Conv2DOptions: { + value = new tflite::Conv2DOptionsT(*reinterpret_cast(u.value)); +diff --git a/tensorflow/lite/tools/cmake/modules/flatbuffers.cmake b/tensorflow/lite/tools/cmake/modules/flatbuffers.cmake +index a3d01fd962d..ac91a03a48a 100644 +--- a/tensorflow/lite/tools/cmake/modules/flatbuffers.cmake ++++ b/tensorflow/lite/tools/cmake/modules/flatbuffers.cmake +@@ -23,7 +23,7 @@ OverridableFetchContent_Declare( + flatbuffers + GIT_REPOSITORY https://github.com/google/flatbuffers + # Sync with tensorflow/third_party/flatbuffers/workspace.bzl +- GIT_TAG v1.12.0 ++ GIT_TAG v2.0.5 + GIT_SHALLOW TRUE + GIT_PROGRESS TRUE + SOURCE_DIR "${CMAKE_BINARY_DIR}/flatbuffers" +diff --git a/tensorflow/tools/ci_build/release/requirements_common.txt b/tensorflow/tools/ci_build/release/requirements_common.txt +index 7a9f3fe6ee9..ea6ccf0e912 100644 +--- a/tensorflow/tools/ci_build/release/requirements_common.txt ++++ b/tensorflow/tools/ci_build/release/requirements_common.txt +@@ -4,7 +4,7 @@ + + absl-py ~= 0.13.0 + astunparse ~= 1.6.3 +-flatbuffers < 2.0 # NOTE: We cannot support faltbuffers 2.0 until internal code updates ++flatbuffers ~= 2.0 + google_pasta ~= 0.2 + h5py ~= 3.6.0 # NOTE: Earliest version for Python 3.10 + keras_preprocessing ~= 1.1.2 +diff --git a/tensorflow/tools/pip_package/setup.py b/tensorflow/tools/pip_package/setup.py +index cdcc355f4a6..6ccdbc38bd3 100644 +--- a/tensorflow/tools/pip_package/setup.py ++++ b/tensorflow/tools/pip_package/setup.py +@@ -75,9 +75,7 @@ def standard_or_nightly(standard, nightly): + REQUIRED_PACKAGES = [ + 'absl-py >= 1.0.0', + 'astunparse >= 1.6.0', +- # TODO(b/187981032): remove the constraint for 2.0 once the incompatibile +- # issue is resolved. +- 'flatbuffers >= 1.12, <2', ++ 'flatbuffers >= 2.0', + # TODO(b/213222745) gast versions above 0.4.0 break TF's tests + 'gast >= 0.2.1, <= 0.4.0', + 'google_pasta >= 0.1.1', +diff --git a/third_party/flatbuffers/build_defs.bzl b/third_party/flatbuffers/build_defs.bzl +index 754db3f5d86..9fe15a3747f 100644 +--- a/third_party/flatbuffers/build_defs.bzl ++++ b/third_party/flatbuffers/build_defs.bzl +@@ -279,6 +279,11 @@ def _gen_flatbuffer_srcs_impl(ctx): + else: + no_includes_statement = [] + ++ if ctx.attr.language_flag == "--python": ++ onefile_statement = ["--gen-onefile"] ++ else: ++ onefile_statement = [] ++ + # Need to generate all files in a directory. + if not outputs: + outputs = [ctx.actions.declare_directory("{}_all".format(ctx.attr.name))] +@@ -314,6 +319,7 @@ def _gen_flatbuffer_srcs_impl(ctx): + "-I", + ctx.bin_dir.path, + ] + no_includes_statement + ++ onefile_statement + + include_paths_cmd_line + [ + "--no-union-value-namespacing", + "--gen-object-api", +@@ -433,6 +439,8 @@ def flatbuffer_py_library( + deps = deps, + include_paths = include_paths, + ) ++ ++ # TODO(b/235550563): Remove the concatnation rule with 2.0.6 update. + all_srcs_no_include = "{}_srcs_no_include".format(name) + _gen_flatbuffer_srcs( + name = all_srcs_no_include, +diff --git a/third_party/flatbuffers/flatbuffers.BUILD b/third_party/flatbuffers/flatbuffers.BUILD +index 108c0cd8e3b..f32f1a5f324 100644 +--- a/third_party/flatbuffers/flatbuffers.BUILD ++++ b/third_party/flatbuffers/flatbuffers.BUILD +@@ -10,10 +10,15 @@ exports_files(["LICENSE.txt"]) + licenses(["notice"]) + + config_setting( +- name = "freebsd", ++ name = "platform_freebsd", + values = {"cpu": "freebsd"}, + ) + ++config_setting( ++ name = "platform_openbsd", ++ values = {"cpu": "openbsd"}, ++) ++ + config_setting( + name = "windows", + values = {"cpu": "x64_windows"}, +@@ -35,8 +40,16 @@ cc_library( + filegroup( + name = "public_headers", + srcs = [ ++ "include/flatbuffers/allocator.h", ++ "include/flatbuffers/array.h", + "include/flatbuffers/base.h", ++ "include/flatbuffers/bfbs_generator.h", ++ "include/flatbuffers/buffer.h", ++ "include/flatbuffers/buffer_ref.h", + "include/flatbuffers/code_generators.h", ++ "include/flatbuffers/default_allocator.h", ++ "include/flatbuffers/detached_buffer.h", ++ "include/flatbuffers/flatbuffer_builder.h", + "include/flatbuffers/flatbuffers.h", + "include/flatbuffers/flexbuffers.h", + "include/flatbuffers/hash.h", +@@ -46,7 +59,13 @@ filegroup( + "include/flatbuffers/reflection_generated.h", + "include/flatbuffers/registry.h", + "include/flatbuffers/stl_emulation.h", ++ "include/flatbuffers/string.h", ++ "include/flatbuffers/struct.h", ++ "include/flatbuffers/table.h", + "include/flatbuffers/util.h", ++ "include/flatbuffers/vector.h", ++ "include/flatbuffers/vector_downward.h", ++ "include/flatbuffers/verifier.h", + ], + visibility = ["//:__subpackages__"], + ) +@@ -65,7 +84,7 @@ cc_library( + cc_binary( + name = "flatc", + linkopts = select({ +- ":freebsd": [ ++ ":platform_freebsd": [ + "-lm", + ], + ":windows": [], +@@ -92,11 +111,24 @@ filegroup( + cc_library( + name = "runtime_cc", + hdrs = [ ++ "include/flatbuffers/allocator.h", ++ "include/flatbuffers/array.h", + "include/flatbuffers/base.h", ++ "include/flatbuffers/buffer.h", ++ "include/flatbuffers/buffer_ref.h", ++ "include/flatbuffers/default_allocator.h", ++ "include/flatbuffers/detached_buffer.h", ++ "include/flatbuffers/flatbuffer_builder.h", + "include/flatbuffers/flatbuffers.h", + "include/flatbuffers/flexbuffers.h", + "include/flatbuffers/stl_emulation.h", ++ "include/flatbuffers/string.h", ++ "include/flatbuffers/struct.h", ++ "include/flatbuffers/table.h", + "include/flatbuffers/util.h", ++ "include/flatbuffers/vector.h", ++ "include/flatbuffers/vector_downward.h", ++ "include/flatbuffers/verifier.h", + ], + linkstatic = 1, + strip_include_prefix = "/include", +@@ -107,9 +139,11 @@ flatbuffer_py_strip_prefix_srcs( + name = "flatbuffer_py_strip_prefix", + srcs = [ + "python/flatbuffers/__init__.py", ++ "python/flatbuffers/_version.py", + "python/flatbuffers/builder.py", + "python/flatbuffers/compat.py", + "python/flatbuffers/encode.py", ++ "python/flatbuffers/flexbuffers.py", + "python/flatbuffers/number_types.py", + "python/flatbuffers/packer.py", + "python/flatbuffers/table.py", +@@ -122,9 +156,11 @@ filegroup( + name = "runtime_py_srcs", + srcs = [ + "__init__.py", ++ "_version.py", + "builder.py", + "compat.py", + "encode.py", ++ "flexbuffers.py", + "number_types.py", + "packer.py", + "table.py", +diff --git a/third_party/flatbuffers/workspace.bzl b/third_party/flatbuffers/workspace.bzl +index 59c1fd9ea43..84aae9dc51f 100644 +--- a/third_party/flatbuffers/workspace.bzl ++++ b/third_party/flatbuffers/workspace.bzl +@@ -5,9 +5,9 @@ load("//third_party:repo.bzl", "tf_http_archive", "tf_mirror_urls") + def repo(): + tf_http_archive( + name = "flatbuffers", +- strip_prefix = "flatbuffers-1.12.0", +- sha256 = "62f2223fb9181d1d6338451375628975775f7522185266cd5296571ac152bc45", +- urls = tf_mirror_urls("https://github.com/google/flatbuffers/archive/v1.12.0.tar.gz"), ++ strip_prefix = "flatbuffers-2.0.5", ++ sha256 = "b01e97c988c429e164c5c7df9e87c80007ca87f593c0d73733ba536ddcbc8f98", ++ urls = tf_mirror_urls("https://github.com/google/flatbuffers/archive/v2.0.5.tar.gz"), + build_file = "//third_party/flatbuffers:flatbuffers.BUILD", + system_build_file = "//third_party/flatbuffers:BUILD.system", + link_files = { diff --git a/easybuild/easyconfigs/t/TopHat/TopHat-2.1.2-gompi-2020a-Python-2.7.18.eb b/easybuild/easyconfigs/t/TopHat/TopHat-2.1.2-gompi-2020a-Python-2.7.18.eb new file mode 100644 index 00000000000..30ef5634264 --- /dev/null +++ b/easybuild/easyconfigs/t/TopHat/TopHat-2.1.2-gompi-2020a-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': 'gompi', 'version': '2020a'} +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', '20180311')] + +dependencies = [ + ('Boost', '1.72.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 --help 2>&1 | grep 'TopHat maps short sequences'"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/t/TopHat/TopHat-2.1.2-iimpi-2020a-Python-2.7.18.eb b/easybuild/easyconfigs/t/TopHat/TopHat-2.1.2-iimpi-2020a-Python-2.7.18.eb new file mode 100644 index 00000000000..35cf0264015 --- /dev/null +++ b/easybuild/easyconfigs/t/TopHat/TopHat-2.1.2-iimpi-2020a-Python-2.7.18.eb @@ -0,0 +1,51 @@ +# 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': 'iimpi', 'version': '2020a'} +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', '20180311')] + +dependencies = [ + ('Boost', '1.72.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 --help 2>&1 | grep 'TopHat maps short sequences'"] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/t/TransDecoder/TransDecoder-5.5.0-GCC-11.3.0.eb b/easybuild/easyconfigs/t/TransDecoder/TransDecoder-5.5.0-GCC-11.3.0.eb new file mode 100644 index 00000000000..582e9594fce --- /dev/null +++ b/easybuild/easyconfigs/t/TransDecoder/TransDecoder-5.5.0-GCC-11.3.0.eb @@ -0,0 +1,35 @@ +easyblock = 'Tarball' + +name = 'TransDecoder' +version = '5.5.0' + +homepage = 'https://github.com/TransDecoder/TransDecoder/wiki' +description = """TransDecoder identifies candidate coding regions within transcript sequences, + such as those generated by de novo RNA-Seq transcript assembly using Trinity, + or constructed based on RNA-Seq alignments to the genome using + Tophat and Cufflinks.""" + +toolchain = {'name': 'GCC', 'version': '11.3.0'} + +source_urls = ['https://github.com/TransDecoder/TransDecoder/archive/'] +sources = ['TransDecoder-v%(version)s.tar.gz'] +checksums = ['c800d9226350817471e9f51267c91f7cab99dbc9b26c980527fc1019e7d90a76'] + +dependencies = [ + ('Perl', '5.34.1'), + ('CD-HIT', '4.8.1'), +] + +sanity_check_paths = { + 'files': ['TransDecoder.LongOrfs', 'TransDecoder.Predict'], + 'dirs': ['PerlLib', 'sample_data', 'util'], +} + +sanity_check_commands = [] + +modextrapaths = { + 'PATH': '', + 'PERL5LIB': 'PerlLib', +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/t/Transformers/Transformers-4.29.2-foss-2022a.eb b/easybuild/easyconfigs/t/Transformers/Transformers-4.29.2-foss-2022a.eb new file mode 100644 index 00000000000..632079f4a9d --- /dev/null +++ b/easybuild/easyconfigs/t/Transformers/Transformers-4.29.2-foss-2022a.eb @@ -0,0 +1,43 @@ +easyblock = 'PythonBundle' + +name = 'Transformers' +version = '4.29.2' + +homepage = 'https://github.com/huggingface/transformers' +description = """ +State-of-the-art Natural Language Processing for PyTorch and TensorFlow 2.0""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +builddependencies = [ + ('pkgconf', '1.8.0'), + ('Rust', '1.60.0'), # required for setuptools-rust, which is needed for tokenizers +] +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), + ('PyYAML', '6.0'), + ('tqdm', '4.64.0'), +] + +use_pip = True + +exts_list = [ + ('regex', '2022.10.31', { + 'checksums': ['a3a98921da9a1bf8457aeee6a551948a83601689e5ecdd736894ea9bbec77e83'], + }), + ('tokenizers', '0.13.2', { + 'checksums': ['f9525375582fd1912ac3caa2f727d36c86ff8c0c6de45ae1aaff90f87f33b907'], + }), + ('huggingface-hub', '0.15.1', { + 'source_tmpl': 'huggingface_hub-%(version)s.tar.gz', + 'checksums': ['a61b7d1a7769fe10119e730277c72ab99d95c48d86a3d6da3e9f3d0f632a4081'], + }), + ('transformers', version, { + 'checksums': ['ed9467661f459f1ce49461d83f18f3b36b6a37f306182dc2ba272935f3b93ebb'], + }), +] + +sanity_pip_check = True + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/t/Transformers/Transformers-4.30.2-foss-2022b.eb b/easybuild/easyconfigs/t/Transformers/Transformers-4.30.2-foss-2022b.eb new file mode 100644 index 00000000000..43cd50eb927 --- /dev/null +++ b/easybuild/easyconfigs/t/Transformers/Transformers-4.30.2-foss-2022b.eb @@ -0,0 +1,47 @@ +easyblock = 'PythonBundle' + +name = 'Transformers' +version = '4.30.2' + +homepage = 'https://github.com/huggingface/transformers' +description = """State-of-the-art Natural Language Processing for PyTorch and TensorFlow 2.0""" + +toolchain = {'name': 'foss', 'version': '2022b'} + +builddependencies = [ + ('pkgconf', '1.9.3'), + ('Rust', '1.65.0'), +] + +dependencies = [ + ('Python', '3.10.8'), + ('SciPy-bundle', '2023.02'), + ('PyYAML', '6.0'), + ('tqdm', '4.64.1'), + ('tokenizers', '0.13.3'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('safetensors', '0.3.1', { + 'checksums': ['571da56ff8d0bec8ae54923b621cda98d36dcef10feb36fd492c4d0c2cd0e869'], + }), + ('regex', '2023.6.3', { + 'checksums': ['72d1a25bf36d2050ceb35b517afe13864865268dfb45910e2e17a84be6cbfeb0'], + }), + ('huggingface-hub', '0.15.1', { + 'source_tmpl': 'huggingface_hub-%(version)s.tar.gz', + 'checksums': ['a61b7d1a7769fe10119e730277c72ab99d95c48d86a3d6da3e9f3d0f632a4081'], + }), + ('%(namelower)s', version, { + 'checksums': ['f4a8aac4e1baffab4033f4a345b0d7dc7957d12a4f1ba969afea08205a513045'], + }), +] + +sanity_check_commands = [ + "python -c 'from transformers import AutoTokenizer'", +] + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/t/Triangle/Triangle-1.6-GCCcore-9.3.0.eb b/easybuild/easyconfigs/t/Triangle/Triangle-1.6-GCCcore-9.3.0.eb new file mode 100644 index 00000000000..a1773acd90b --- /dev/null +++ b/easybuild/easyconfigs/t/Triangle/Triangle-1.6-GCCcore-9.3.0.eb @@ -0,0 +1,39 @@ +easyblock = 'MakeCp' + +name = 'Triangle' +version = '1.6' + +homepage = 'https://www.cs.cmu.edu/~quake/triangle.html' +description = """Triangle generates exact Delaunay triangulations, constrained Delaunay triangulations, + conforming Delaunay triangulations, Voronoi diagrams, and high-quality triangular meshes. + The latter can be generated with no small or large angles, + and are thus suitable for finite element analysis.""" + +toolchain = {'name': 'GCCcore', 'version': '9.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://www.netlib.org/voronoi/'] +sources = ['%(namelower)s.zip'] +checksums = [ + '1766327add038495fa3499e9b7cc642179229750f7201b94f8e1b7bee76f8480', # triangle.zip + '38fc1395c2392f627068b669275c30da0c25b1a6db8ed8b80d6bf05a98971568', # Triangle-1.6_makefile.patch +] + +patches = ['%(name)s-%(version)s_makefile.patch'] + +builddependencies = [('binutils', '2.34')] + +buildopts = 'triangle trilibrary' + +files_to_copy = [ + (['triangle', 'tricall'], 'bin'), + (['triangle.h'], 'include'), + (['libtriangle.a'], 'lib'), +] + +sanity_check_paths = { + 'files': ['bin/triangle', 'bin/tricall', 'include/triangle.h', 'lib/libtriangle.a'], + 'dirs': [] +} + +moduleclass = 'numlib' diff --git a/easybuild/easyconfigs/t/Trinity/Trinity-2.15.1-foss-2021b.eb b/easybuild/easyconfigs/t/Trinity/Trinity-2.15.1-foss-2021b.eb new file mode 100644 index 00000000000..d904f619a21 --- /dev/null +++ b/easybuild/easyconfigs/t/Trinity/Trinity-2.15.1-foss-2021b.eb @@ -0,0 +1,63 @@ +## +# 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:: +## + +name = 'Trinity' +version = '2.15.1' + +homepage = 'https://trinityrnaseq.github.io' +description = """Trinity represents a novel method for the efficient and robust de novo reconstruction + of transcriptomes from RNA-Seq data. Trinity combines three independent software modules: Inchworm, + Chrysalis, and Butterfly, applied sequentially to process large volumes of RNA-Seq reads.""" + +toolchain = {'name': 'foss', 'version': '2021b'} + +source_urls = ['https://github.com/trinityrnaseq/trinityrnaseq/releases/download/%(name)s-v%(version)s'] +sources = ['trinityrnaseq-v%(version)s.FULL.tar.gz'] +patches = ['Trinity-%(version)s_fix-bamsifter.patch'] +checksums = [ + {'trinityrnaseq-v2.15.1.FULL.tar.gz': 'ba37e5f696d3d54e8749c4ba439901a3e97e14a4314a5229d7a069ad7b1ee580'}, + {'Trinity-2.15.1_fix-bamsifter.patch': 'f374d446f06b8059a3b7cc57c286fc20d79b43ac222f48244ab83fb410997d1d'}, +] + +builddependencies = [ + ('Autotools', '20210726'), + ('CMake', '3.22.1'), +] + +# for reference, list of dependencies in the container image used upstream: +# https://github.com/trinityrnaseq/trinityrnaseq/blob/master/Docker/Dockerfile +dependencies = [ + ('Java', '11', '', SYSTEM), + ('ant', '1.10.11', '-Java-%(javaver)s', SYSTEM), + ('picard', '2.25.1', '-Java-%(javaver)s', SYSTEM), + ('GATK', '4.2.3.0', '-Java-%(javaver)s'), + ('Perl', '5.34.0'), + ('Python', '3.9.6'), + ('SciPy-bundle', '2021.10'), + ('BLAST+', '2.12.0'), + ('BLAT', '3.7'), + ('Bowtie', '1.3.1'), + ('Bowtie2', '2.4.4'), + ('GMAP-GSNAP', '2021-12-17'), + ('HISAT2', '2.2.1'), + ('HTSlib', '1.14'), + ('Jellyfish', '2.3.0'), + ('kallisto', '0.48.0'), + ('ncurses', '6.2'), + ('RSEM', '1.3.3'), + ('Salmon', '1.4.0'), + ('SAMtools', '1.14'), + ('STAR', '2.7.9a'), + ('zlib', '1.2.11'), +] + +withsampledata = True + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/t/Trinotate/Trinotate-4.0.1-foss-2022a.eb b/easybuild/easyconfigs/t/Trinotate/Trinotate-4.0.1-foss-2022a.eb new file mode 100644 index 00000000000..676eb208471 --- /dev/null +++ b/easybuild/easyconfigs/t/Trinotate/Trinotate-4.0.1-foss-2022a.eb @@ -0,0 +1,55 @@ +easyblock = 'Tarball' +name = 'Trinotate' +version = '4.0.1' + +homepage = 'https://github.com/Trinotate/Trinotate/wiki' +description = """Trinotate is a comprehensive annotation suite designed for automatic functional +annotation of transcriptomes, particularly de novo assembled transcriptomes, +from model or non-model organisms. Trinotate makes use of a number of different +well referenced methods for functional annotation including homology search to +known sequence data (BLAST+/SwissProt), protein domain identification +(HMMER/PFAM), protein signal peptide and transmembrane domain prediction +(signalP/tmHMM), and leveraging various annotation databases (eggNOG/GO/Kegg +databases). All functional annotation data derived from the analysis of +transcripts is integrated into a SQLite database which allows fast efficient +searching for terms with specific qualities related to a desired scientific +hypothesis or a means to create a whole annotation report for a transcriptome.""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +github_account = '%(name)s' +source_urls = [GITHUB_SOURCE] +sources = ['%(name)s-v%(version)s.tar.gz'] +checksums = ['a07cedeb59a1c2b681696ecd878dfdf10e3bdf85185f5197e89a529837518a9b'] + +# for reference, list of dependencies in the container image used upstream: +# https://github.com/Trinotate/Trinotate/blob/master/Docker/Dockerfile +dependencies = [ + ('Perl', '5.34.1'), + ('Python', '3.10.4'), + ('Trinity', '2.15.1'), + ('BLAST+', '2.13.0'), + ('DIAMOND', '2.1.0'), + ('eggnog-mapper', '2.1.9'), + ('HMMER', '3.3.2'), + ('Infernal', '1.1.4'), + ('PyBioLib', '1.1.988'), + ('SAMtools', '1.16.1'), + ('TransDecoder', '5.5.0'), +] + +sanity_check_paths = { + 'files': ['Trinotate', 'run_TrinotateWebserver.pl'], + 'dirs': ['PerlLib', 'resources', 'testing', 'util'], +} + +sanity_check_commands = [ + 'Trinotate --help 2>&1 | grep -q "Trinotate --db "', +] + +modextrapaths = { + 'PATH': '', + 'PERL5LIB': 'PerlLib', +} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/t/tidymodels/tidymodels-1.1.0-foss-2022b.eb b/easybuild/easyconfigs/t/tidymodels/tidymodels-1.1.0-foss-2022b.eb new file mode 100644 index 00000000000..3658b2fc02b --- /dev/null +++ b/easybuild/easyconfigs/t/tidymodels/tidymodels-1.1.0-foss-2022b.eb @@ -0,0 +1,109 @@ +easyblock = 'Bundle' + +name = 'tidymodels' +version = '1.1.0' + +homepage = 'https://tidymodels.tidymodels.org' +description = """tidymodels is a 'meta-package' for modeling and statistical analysis that shares the underlying + design philosophy, grammar, and data structures of the tidyverse.""" + +toolchain = {'name': 'foss', 'version': '2022b'} + +dependencies = [ + ('R', '4.2.2'), +] + +exts_defaultclass = 'RPackage' +exts_default_options = { + 'sources': ['%(name)s_%(version)s.tar.gz'], + 'source_urls': [ + 'https://cran.r-project.org/src/contrib/Archive/%(name)s', # package archive + 'https://cran.r-project.org/src/contrib/', # current version of packages + 'https://cran.freestatistics.org/src/contrib', # mirror alternative for current packages + ], +} + +# included updated versions of extensions included with R, as required by tune or tidymodels +exts_list = [ + ('conflicted', '1.2.0', { + 'checksums': ['c99b86bb52da3e7d1f4d96d70c77304d0434db5bd906edd8d743e89ac9223088'], + }), + ('DiceDesign', '1.9', { + 'checksums': ['93c23730e02471e4225f0254f47d838b5e113162316e3640cccebf5e8cea11a9'], + }), + ('dials', '1.2.0', { + 'checksums': ['24660e7200cca6f2c63dc70dec3702a2bed027e02639c7c66d5ebd2f0f7148fe'], + }), + ('infer', '1.0.4', { + 'checksums': ['29e83d7150bccc37f24a474f0eeee6eadc3ba189d6c4c0c5ba804e4fb50598e8'], + }), + ('modeldata', version, { + 'checksums': ['9c5bc17a94026ffc49ed47899107381ddbf7392938d000dd72566dc836b25873'], + }), + ('parsnip', version, { + 'checksums': ['ecbdeb88d8347405b8b6ba2f684311ad3fd762076e46d9a08a3ea5882221778d'], + }), + ('warp', '0.2.0', { + 'checksums': ['0e0de344f3d711d58e6be2ab47ade1db3b703bf3ca85080b1124c0c25a630a68'], + }), + ('slider', '0.3.0', { + 'checksums': ['bc6a17ba5f0b27c8504a1d04992108470f24fd5662fbea14c300ac75fb02fca1'], + }), + ('rsample', '1.1.1', { + 'checksums': ['90d2ae86d27a397ba9d8d010e7dea5c7b86fecbec7e9af273db0c2e8c374b8ba'], + }), + ('GPfit', '1.0-8', { + 'checksums': ['7e4dfc28c49cad67afbd9c018255234c57a4baadc10a412ee660f72da28fb716'], + }), + ('modelenv', '0.1.1', { + 'checksums': ['b119754ab9b338e7e2be8849c634e715226dbc3f0a79b1e5c7567d27f41accde'], + }), + ('workflows', '1.1.3', { + 'checksums': ['baa26a876b56e61bd3339a44297e3c5b719a92c9316495fb17836dfa8caf4181'], + }), + ('yardstick', '1.2.0', { + 'checksums': ['ebf113ad1d6554dd5d17181148a8c9e51166d4fa579e9540756d01ef61b71d2b'], + }), + ('vctrs', '0.6.3', { + 'checksums': ['93dc220dcde8b440586b2260460ef354e827a17dfec1ea6a9815585a10cfa5c2'], + }), + ('tune', '1.1.1', { + 'checksums': ['af6e1a5cd4e80d684a42c11057348fe0cdb3368db914d03335399618da5d884e'], + }), + ('workflowsets', '1.0.1', { + 'checksums': ['11ae3a3d2122cd923b3ce14738b7ae66d5a3b4bbbbf85323c512d61d3a1568e7'], + }), + ('cli', '3.6.1', { + 'checksums': ['be3006cec7e67f9ae25e21b4658c4bec680038c2ef7467df5f14da3311a05e36'], + }), + ('pillar', '1.9.0', { + 'checksums': ['f23eb486c087f864c2b4072d5cba01d5bebf2f554118bcba6886d8dbceb87acc'], + }), + ('dplyr', '1.1.2', { + 'checksums': ['c220c38a3a44977c43eeae3d9aef90e8bb297150cad0993ea8d3cc13150096e3'], + }), + ('ggplot2', '3.4.2', { + 'checksums': ['70230aa70a2c6f844fc41dd93e5f62af6859dfed390026ae58f223637e5283ca'], + }), + ('tibble', '3.2.1', { + 'checksums': ['65a72d0c557fd6e7c510d150c935ed6ced5db7d05fc20236b370f11428372131'], + }), + ('hardhat', '1.3.0', { + 'checksums': ['fe9ff009e2ba6dd4d70cbb541430f88d85c0a28d6a1c2772e4910c79b81fe82e'], + }), + ('recipes', '1.0.6', { + 'checksums': ['105e97127cdd6aaeb9fb3348e51a9c46e21fb8bcb734cb3bbd6dbdf2b6b2fc8f'], + }), + (name, version, { + 'checksums': ['788e370a9a98c0504a529f1562596b799e6f9365e9b03e90d378f685b78e8ebd'], + }), +] + +sanity_check_paths = { + 'files': [], + 'dirs': [name], +} + +modextrapaths = {'R_LIBS_SITE': ''} + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/t/timm/timm-0.6.13-foss-2022a-CUDA-11.7.0.eb b/easybuild/easyconfigs/t/timm/timm-0.6.13-foss-2022a-CUDA-11.7.0.eb new file mode 100644 index 00000000000..7cc34b4454a --- /dev/null +++ b/easybuild/easyconfigs/t/timm/timm-0.6.13-foss-2022a-CUDA-11.7.0.eb @@ -0,0 +1,46 @@ +easyblock = 'PythonBundle' + +name = 'timm' +version = '0.6.13' +versionsuffix = '-CUDA-%(cudaver)s' + +homepage = 'https://huggingface.co/docs/timm' +description = """ +timm is a library containing SOTA computer vision models, layers, utilities, +optimizers, schedulers, data-loaders, augmentations, and training/evaluation +scripts. It comes packaged with >700 pretrained models, and is designed to be +flexible and easy to use. +""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +dependencies = [ + ('Python', '3.10.4'), + ('CUDA', '11.7.0', '', SYSTEM), + ('PyTorch', '1.12.0', versionsuffix), + ('PyYAML', '6.0'), + ('tqdm', '4.64.0'), + ('torchvision', '0.13.1', versionsuffix), +] + +builddependencies = [ + ('Rust', '1.65.0'), # for safetensors +] + +use_pip = True + +exts_list = [ + ('huggingface_hub', '0.13.4', { + 'checksums': ['db83d9c2f76aed8cf49893ffadd6be24e82074da2f64b1d36b8ba40eb255e115'], + }), + ('safetensors', '0.3.0', { + 'checksums': ['5be8b2fccdc6aec84c9d6732180575fe1ba3afc559cbe96e2301eacc45c5b9a6'], + }), + (name, version, { + 'checksums': ['745c54f7b7985a18e08bd66c997b018c1c3fef99bbb8c018879a6f85571782f5'], + }), +] + +sanity_pip_check = True + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/t/tmux/tmux-3.3a-GCCcore-12.2.0.eb b/easybuild/easyconfigs/t/tmux/tmux-3.3a-GCCcore-12.2.0.eb new file mode 100644 index 00000000000..9a8359f7887 --- /dev/null +++ b/easybuild/easyconfigs/t/tmux/tmux-3.3a-GCCcore-12.2.0.eb @@ -0,0 +1,36 @@ +easyblock = 'ConfigureMake' + +name = 'tmux' +version = '3.3a' + +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': '12.2.0'} +toolchainopts = {'optarch': True} + +source_urls = ['https://github.com/%(name)s/%(name)s/releases/download/%(version)s/'] +sources = [SOURCE_TAR_GZ] +checksums = ['e4fd347843bd0772c4f48d6dde625b0b109b7a380ff15db21e97c11a4dcdf93f'] + +builddependencies = [ + ('binutils', '2.39'), + ('Bison', '3.8.2'), + ('make', '4.4.1'), + ('pkgconf', '1.9.3'), +] + +dependencies = [ + ('libevent', '2.1.12'), + ('ncurses', '6.3'), +] + +sanity_check_paths = { + 'files': ['bin/tmux'], + 'dirs': [] +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/t/tmux/tmux-3.3a-GCCcore-12.3.0.eb b/easybuild/easyconfigs/t/tmux/tmux-3.3a-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..ac1145d1c84 --- /dev/null +++ b/easybuild/easyconfigs/t/tmux/tmux-3.3a-GCCcore-12.3.0.eb @@ -0,0 +1,36 @@ +easyblock = 'ConfigureMake' + +name = 'tmux' +version = '3.3a' + +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': '12.3.0'} +toolchainopts = {'optarch': True} + +source_urls = ['https://github.com/%(name)s/%(name)s/releases/download/%(version)s/'] +sources = [SOURCE_TAR_GZ] +checksums = ['e4fd347843bd0772c4f48d6dde625b0b109b7a380ff15db21e97c11a4dcdf93f'] + +builddependencies = [ + ('binutils', '2.40'), + ('Bison', '3.8.2'), + ('make', '4.4.1'), + ('pkgconf', '1.9.5'), +] + +dependencies = [ + ('libevent', '2.1.12'), + ('ncurses', '6.4'), +] + +sanity_check_paths = { + 'files': ['bin/tmux'], + 'dirs': [] +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/t/tmux/tmux-3.3a.eb b/easybuild/easyconfigs/t/tmux/tmux-3.3a.eb new file mode 100644 index 00000000000..0868cabd26d --- /dev/null +++ b/easybuild/easyconfigs/t/tmux/tmux-3.3a.eb @@ -0,0 +1,30 @@ +easyblock = 'ConfigureMake' + +name = 'tmux' +version = '3.3a' + +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 = SYSTEM + +source_urls = ['https://github.com/%(name)s/%(name)s/releases/download/%(version)s/'] +sources = [SOURCE_TAR_GZ] +checksums = ['e4fd347843bd0772c4f48d6dde625b0b109b7a380ff15db21e97c11a4dcdf93f'] + +dependencies = [ + ('libevent', '2.1.12'), + ('ncurses', '6.4'), +] + +sanity_check_paths = { + 'files': ['bin/tmux'], + 'dirs': [] +} + +sanity_check_commands = ["tmux --help 2>&1 | grep 'usage: tmux'"] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/t/tokenizers/tokenizers-0.13.3-GCCcore-12.2.0.eb b/easybuild/easyconfigs/t/tokenizers/tokenizers-0.13.3-GCCcore-12.2.0.eb new file mode 100644 index 00000000000..a1a6dc421fc --- /dev/null +++ b/easybuild/easyconfigs/t/tokenizers/tokenizers-0.13.3-GCCcore-12.2.0.eb @@ -0,0 +1,27 @@ +easyblock = 'PythonPackage' + +name = 'tokenizers' +version = '0.13.3' + +homepage = 'https://github.com/huggingface/tokenizers' +description = "Fast State-of-the-Art Tokenizers optimized for Research and Production" + +toolchain = {'name': 'GCCcore', 'version': '12.2.0'} + +sources = [SOURCE_TAR_GZ] +checksums = ['2e546dbb68b623008a5442353137fbb0123d311a6d7ba52f2667c8862a75af2e'] + +builddependencies = [ + ('binutils', '2.39'), + ('Rust', '1.65.0'), +] + +dependencies = [ + ('Python', '3.10.8'), +] + +use_pip = True +sanity_pip_check = True +download_dep_fail = True + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/t/torchaudio/torchaudio-0.12.0-foss-2022a-PyTorch-1.12.0-CUDA-11.7.0.eb b/easybuild/easyconfigs/t/torchaudio/torchaudio-0.12.0-foss-2022a-PyTorch-1.12.0-CUDA-11.7.0.eb new file mode 100644 index 00000000000..32638151e0a --- /dev/null +++ b/easybuild/easyconfigs/t/torchaudio/torchaudio-0.12.0-foss-2022a-PyTorch-1.12.0-CUDA-11.7.0.eb @@ -0,0 +1,49 @@ +easyblock = 'PythonPackage' + +name = 'torchaudio' +version = '0.12.0' +local_pytorch_version = '1.12.0' +versionsuffix = '-PyTorch-' + local_pytorch_version + '-CUDA-%(cudaver)s' + +homepage = 'https://github.com/pytorch/audio' +description = """ Data manipulation and transformation for audio signal +processing, powered by PyTorch """ + +toolchain = {'name': 'foss', 'version': '2022a'} + +sources = [{ + 'filename': '%(name)s-%(version)s.tar.gz', + 'git_config': { + 'url': 'https://github.com/pytorch', + 'repo_name': 'audio', + 'tag': 'v%(version)s', + 'recursive': True, + 'keep_git_dir': True, + } +}] + +checksums = [None] + +builddependencies = [ + ('binutils', '2.38'), + ('CMake', '3.23.1'), + ('Ninja', '1.10.2'), +] + +dependencies = [ + ('CUDA', '11.7.0', '', SYSTEM), + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), + ('PyTorch', local_pytorch_version, '-CUDA-%(cudaver)s'), + ('SoX', '14.4.2'), + ('FFmpeg', '4.4.2'), +] + +preinstallopts = 'USE_FFMPEG=1' +installopts = '--no-use-pep517' + +download_dep_fail = True +use_pip = True +sanity_pip_check = True + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/t/torchaudio/torchaudio-0.12.0-foss-2022a-PyTorch-1.12.0.eb b/easybuild/easyconfigs/t/torchaudio/torchaudio-0.12.0-foss-2022a-PyTorch-1.12.0.eb new file mode 100644 index 00000000000..07889b645b2 --- /dev/null +++ b/easybuild/easyconfigs/t/torchaudio/torchaudio-0.12.0-foss-2022a-PyTorch-1.12.0.eb @@ -0,0 +1,48 @@ +easyblock = 'PythonPackage' + +name = 'torchaudio' +version = '0.12.0' +local_pytorch_version = '1.12.0' +versionsuffix = '-PyTorch-%s' % local_pytorch_version + +homepage = 'https://github.com/pytorch/audio' +description = """ Data manipulation and transformation for audio signal +processing, powered by PyTorch """ + +toolchain = {'name': 'foss', 'version': '2022a'} + +sources = [{ + 'filename': '%(name)s-%(version)s.tar.gz', + 'git_config': { + 'url': 'https://github.com/pytorch', + 'repo_name': 'audio', + 'tag': 'v%(version)s', + 'recursive': True, + 'keep_git_dir': True, + } +}] + +checksums = [None] + +builddependencies = [ + ('binutils', '2.38'), + ('CMake', '3.23.1'), + ('Ninja', '1.10.2'), +] + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), + ('PyTorch', local_pytorch_version), + ('SoX', '14.4.2'), + ('FFmpeg', '4.4.2'), +] + +preinstallopts = 'USE_FFMPEG=1' +installopts = '--no-use-pep517' + +download_dep_fail = True +use_pip = True +sanity_pip_check = True + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/u/UCC-CUDA/UCC-CUDA-1.2.0-GCCcore-12.3.0-CUDA-12.1.1.eb b/easybuild/easyconfigs/u/UCC-CUDA/UCC-CUDA-1.2.0-GCCcore-12.3.0-CUDA-12.1.1.eb new file mode 100644 index 00000000000..8594d509844 --- /dev/null +++ b/easybuild/easyconfigs/u/UCC-CUDA/UCC-CUDA-1.2.0-GCCcore-12.3.0-CUDA-12.1.1.eb @@ -0,0 +1,55 @@ +easyblock = 'ConfigureMake' + +name = 'UCC-CUDA' +version = '1.2.0' +versionsuffix = '-CUDA-%(cudaver)s' + +homepage = 'https://www.openucx.org/' +description = """UCC (Unified Collective Communication) is a collective +communication operations API and library that is flexible, complete, and +feature-rich for current and emerging programming models and runtimes. + +This module adds the UCC CUDA support. +""" + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/openucx/ucc/archive/refs/tags'] +sources = ['v%(version)s.tar.gz'] +patches = [ + '%(name)s-%(version)s_link_against_existing_UCC_libs.patch', +] +checksums = [ + {'v1.2.0.tar.gz': 'c1552797600835c0cf401b82dc89c4d27d5717f4fb805d41daca8e19f65e509d'}, + {'UCC-CUDA-1.2.0_link_against_existing_UCC_libs.patch': + '84157be5eae96d2501df076bcf0598b104adf80abeca028a144c4fb098638207'}, +] + +builddependencies = [ + ('binutils', '2.40'), + ('Autotools', '20220317'), +] + +dependencies = [ + ('UCC', version), + ('CUDA', '12.1.1', '', SYSTEM), + ('UCX-CUDA', '1.14.1', '-CUDA-%(cudaver)s'), + ('NCCL', '2.18.3', '-CUDA-%(cudaver)s'), +] + +preconfigopts = "./autogen.sh && " + +buildopts = '-C src/components/mc/cuda V=1 && make -C src/components/tl/nccl V=1' +installopts = '-C src/components/mc/cuda && make -C src/components/tl/nccl install' + +sanity_check_paths = { + 'files': ['lib/ucc/libucc_mc_cuda.%s' % SHLIB_EXT, 'lib/ucc/libucc_tl_nccl.%s' % SHLIB_EXT], + 'dirs': ['lib'] +} + +sanity_check_commands = ["ucc_info -c"] + +modextrapaths = {'EB_UCC_EXTRA_COMPONENT_PATH': 'lib/ucc'} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/u/UCC-CUDA/UCC-CUDA-1.2.0_link_against_existing_UCC_libs.patch b/easybuild/easyconfigs/u/UCC-CUDA/UCC-CUDA-1.2.0_link_against_existing_UCC_libs.patch new file mode 100644 index 00000000000..86a17f30c90 --- /dev/null +++ b/easybuild/easyconfigs/u/UCC-CUDA/UCC-CUDA-1.2.0_link_against_existing_UCC_libs.patch @@ -0,0 +1,27 @@ +Make CUDA/NCCL plugins link against the existing ucc libraries. + +Bart Oldeman, 2022-08-02 +Mikael OEhman, 2023-06-16 +diff -ur ucc-1.2.0.orig/src/components/mc/cuda/Makefile.am ucc-1.2.0/src/components/ec/cuda/Makefile.am +--- ucc-1.2.0.orig/src/components/mc/cuda/Makefile.am.orig 2023-06-16 12:56:53.205939925 +0200 ++++ ucc-1.2.0/src/components/mc/cuda/Makefile.am 2023-06-16 13:02:21.716110609 +0200 +@@ -14,7 +14,7 @@ + libucc_mc_cuda_la_CFLAGS = $(BASE_CFLAGS) + libucc_mc_cuda_la_LDFLAGS = -version-info $(SOVERSION) --as-needed $(CUDA_LDFLAGS) + libucc_mc_cuda_la_LIBADD = $(CUDA_LIBS) \ +- $(UCC_TOP_BUILDDIR)/src/libucc.la ++ -lucc + + include $(top_srcdir)/config/module.am + endif +diff -ur ucc-1.0.0.orig/src/components/tl/nccl/Makefile.am ucc-1.0.0/src/components/tl/nccl/Makefile.am +--- ucc-1.0.0.orig/src/components/tl/nccl/Makefile.am 2022-04-15 12:43:33.000000000 +0000 ++++ ucc-1.0.0/src/components/tl/nccl/Makefile.am 2022-08-02 12:13:59.334795989 +0000 +@@ -21,6 +21,6 @@ + libucc_tl_nccl_la_CPPFLAGS = $(AM_CPPFLAGS) $(BASE_CPPFLAGS) $(CUDA_CPPFLAGS) $(NCCL_CPPFLAGS) + libucc_tl_nccl_la_CFLAGS = $(BASE_CFLAGS) + libucc_tl_nccl_la_LDFLAGS = -version-info $(SOVERSION) --as-needed $(CUDA_LDFLAGS) $(NCCL_LDFLAGS) +-libucc_tl_nccl_la_LIBADD = $(CUDA_LIBS) $(NCCL_LIBADD) $(UCC_TOP_BUILDDIR)/src/libucc.la ++libucc_tl_nccl_la_LIBADD = $(CUDA_LIBS) $(NCCL_LIBADD) -lucc + + include $(top_srcdir)/config/module.am diff --git a/easybuild/easyconfigs/u/UCC/UCC-1.2.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/u/UCC/UCC-1.2.0-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..7b466037821 --- /dev/null +++ b/easybuild/easyconfigs/u/UCC/UCC-1.2.0-GCCcore-12.3.0.eb @@ -0,0 +1,41 @@ +easyblock = 'ConfigureMake' + +name = 'UCC' +version = '1.2.0' + +homepage = 'https://www.openucx.org/' +description = """UCC (Unified Collective Communication) is a collective +communication operations API and library that is flexible, complete, and +feature-rich for current and emerging programming models and runtimes. +""" + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/openucx/ucc/archive/refs/tags'] +sources = ['v%(version)s.tar.gz'] +patches = ['UCC-1.1.0-multiple_component_paths.patch'] +checksums = [ + {'v1.2.0.tar.gz': 'c1552797600835c0cf401b82dc89c4d27d5717f4fb805d41daca8e19f65e509d'}, + {'UCC-1.1.0-multiple_component_paths.patch': '3081d0f694331daa4a88a0fa3fb54b9a918015248ae5eb7b3157b924abd31bee'}, +] + +builddependencies = [ + ('binutils', '2.40'), + ('Autotools', '20220317'), +] + +dependencies = [ + ('UCX', '1.14.1'), +] + +preconfigopts = "./autogen.sh && " + +sanity_check_paths = { + 'files': ['bin/ucc_info'], + 'dirs': ['include', 'lib'] +} + +sanity_check_commands = ["ucc_info -c"] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/u/UCX-CUDA/UCX-CUDA-1.14.1-GCCcore-12.3.0-CUDA-12.1.1.eb b/easybuild/easyconfigs/u/UCX-CUDA/UCX-CUDA-1.14.1-GCCcore-12.3.0-CUDA-12.1.1.eb new file mode 100755 index 00000000000..5c8d9eb9431 --- /dev/null +++ b/easybuild/easyconfigs/u/UCX-CUDA/UCX-CUDA-1.14.1-GCCcore-12.3.0-CUDA-12.1.1.eb @@ -0,0 +1,41 @@ +easyblock = 'EB_UCX_Plugins' + +name = 'UCX-CUDA' +version = '1.14.1' +versionsuffix = '-CUDA-%(cudaver)s' + +homepage = 'http://www.openucx.org/' +description = """Unified Communication X +An open-source production grade communication framework for data centric +and high-performance applications + +This module adds the UCX CUDA support. +""" + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/openucx/ucx/releases/download/v%(version)s'] +sources = [{'filename': 'ucx-%(version)s.tar.gz', 'alt_location': 'UCX'}] +patches = ['%(name)s-1.11.0_link_against_existing_UCX_libs.patch'] +checksums = [ + {'ucx-1.14.1.tar.gz': 'baa0634cafb269a3112f626eb226bcd2ca8c9fcf0fec3b8e2a3553baad5f77aa'}, + {'UCX-CUDA-1.11.0_link_against_existing_UCX_libs.patch': + '457187fa020e526609ba91e7750c9941d57bd57d60d6eed317b40ad8824aca93'}, +] + +builddependencies = [ + ('binutils', '2.40'), + ('Autotools', '20220317'), + ('pkgconf', '1.9.5'), +] + +dependencies = [ + ('zlib', '1.2.13'), + ('UCX', version), + ('CUDA', '12.1.1', '', SYSTEM), + ('GDRCopy', '2.3.1'), +] + + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/u/UCX/UCX-1.14.1-GCCcore-12.3.0.eb b/easybuild/easyconfigs/u/UCX/UCX-1.14.1-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..0d862216f7a --- /dev/null +++ b/easybuild/easyconfigs/u/UCX/UCX-1.14.1-GCCcore-12.3.0.eb @@ -0,0 +1,52 @@ +easyblock = 'ConfigureMake' + +name = 'UCX' +version = '1.14.1' + +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': '12.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-1.13.1-dynamic_modules.patch', +] +checksums = [ + {'ucx-1.14.1.tar.gz': 'baa0634cafb269a3112f626eb226bcd2ca8c9fcf0fec3b8e2a3553baad5f77aa'}, + {'UCX-1.13.1-dynamic_modules.patch': '00874687bd90b795fff61aaa183f6c6bea2210aa1003b28f23d9ebf7066f8782'}, +] + +builddependencies = [ + ('binutils', '2.40'), + ('Autotools', '20220317'), + ('pkgconf', '1.9.5'), +] + +osdependencies = [OS_PKG_IBVERBS_DEV] + +dependencies = [ + ('zlib', '1.2.13'), + ('numactl', '2.0.16'), +] + +configure_cmd = "contrib/configure-release" + +configopts = '--enable-optimizations --enable-cma --enable-mt --with-verbs ' +configopts += '--without-java --without-go --disable-doxygen-doc ' + +buildopts = 'V=1' + +sanity_check_paths = { + 'files': ['bin/ucx_info', 'bin/ucx_perftest', 'bin/ucx_read_profile'], + 'dirs': ['include', 'lib', 'share'] +} + +sanity_check_commands = ["ucx_info -d"] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/u/Ultralytics/Ultralytics-8.0.92-foss-2022a-CUDA-11.7.0.eb b/easybuild/easyconfigs/u/Ultralytics/Ultralytics-8.0.92-foss-2022a-CUDA-11.7.0.eb new file mode 100644 index 00000000000..8f0fe0bc655 --- /dev/null +++ b/easybuild/easyconfigs/u/Ultralytics/Ultralytics-8.0.92-foss-2022a-CUDA-11.7.0.eb @@ -0,0 +1,50 @@ +easyblock = 'PythonBundle' + +name = 'Ultralytics' +version = '8.0.92' +versionsuffix = '-CUDA-%(cudaver)s' + +homepage = 'https://github.com/ultralytics/ultralytics' +description = """Ultralytics YOLOv8 is a cutting-edge, state-of-the-art (SOTA) model that builds upon the success of +previous YOLO versions and introduces new features and improvements to further boost performance and flexibility. +YOLOv8 is designed to be fast, accurate, and easy to use, making it an excellent choice for a wide range of object +detection and tracking, instance segmentation, image classification and pose estimation tasks.""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +dependencies = [ + ('CUDA', '11.7.0', '', SYSTEM), + ('Python', '3.10.4'), + ('PyTorch', '1.12.1', versionsuffix), + ('PyTorch-bundle', '1.12.1', versionsuffix), # torchvision + ('Pillow-SIMD', '9.2.0'), + ('matplotlib', '3.5.2'), + ('OpenCV', '4.6.0', versionsuffix + '-contrib'), + ('SciPy-bundle', '2022.05'), + ('tqdm', '4.64.0'), + ('Seaborn', '0.12.1'), + ('psutil', '5.9.3'), +] + +use_pip = True + +exts_list = [ + ('thop', '0.1.1.post2209072238', { + 'source_tmpl': '%(name)s-%(version)s-py3-none-any.whl', + 'checksums': ['01473c225231927d2ad718351f78ebf7cffe6af3bed464c4f1ba1ef0f7cdda27'], + }), + ('urllib3', '1.26.11', { + 'checksums': ['ea6e8fb210b19d950fab93b60c9009226c63a28808bc8386e05301e25883ac0a'], + }), + ('sentry-sdk', '1.22.2', { + 'checksums': ['5932c092c6e6035584eb74d77064e4bce3b7935dfc4a331349719a40db265840'], + }), + ('ultralytics', version, { + 'preinstallopts': 'sed -i "s/opencv-python/opencv-contrib-python/" requirements.txt &&', + 'checksums': ['f4285476621e5fba40a78a117930ea1073e358e8dd410171a45c1a357b735109'], + }), +] + +sanity_pip_check = True + +moduleclass = 'ai' diff --git a/easybuild/easyconfigs/u/util-linux/util-linux-2.39-GCCcore-12.3.0.eb b/easybuild/easyconfigs/u/util-linux/util-linux-2.39-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..f3bc453a771 --- /dev/null +++ b/easybuild/easyconfigs/u/util-linux/util-linux-2.39-GCCcore-12.3.0.eb @@ -0,0 +1,49 @@ +easyblock = 'ConfigureMake' + +name = 'util-linux' +version = '2.39' + +homepage = 'https://www.kernel.org/pub/linux/utils/util-linux' + +description = "Set of Linux utilities" + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['%s/v%%(version_major_minor)s' % homepage] +sources = [SOURCELOWER_TAR_GZ] +patches = ['util-linux-%(version)s_fix_waitpid.patch'] +checksums = [ + {'util-linux-2.39.tar.gz': 'b1f597ad172a2ee17b0a7ae4be7ab7e1b1a6f9394ddbd3d8ec90ae4ed7333579'}, + {'util-linux-2.39_fix_waitpid.patch': '99cbd4ee8293f3ffad4467e9f245d0da4e10a98b6599f5e5f9d4cb99c7eebbd2'}, +] + +builddependencies = [ + ('binutils', '2.40'), + ('Autotools', '20220317'), # for fix_waitpid patch + ('pkgconf', '1.9.5'), # for fix_waitpid patch +] + +dependencies = [ + ('ncurses', '6.4'), + ('zlib', '1.2.13'), +] + +# disable account related utilities (they need OS dependent pam-devel files) +# disable wall and friends (requires group changing permissions for install user) +# install systemd service files in install dir +# install bash completion files in install dir +configopts = "--disable-chfn-chsh --disable-login --disable-su --disable-rfkill " +configopts += "--disable-wall --disable-use-tty-group " +configopts += "--disable-makeinstall-chown --disable-makeinstall-setuid " +configopts += "--with-systemdsystemunitdir='${prefix}/systemd' " +configopts += "--with-bashcompletiondir='${prefix}/share/bash-completion/completions' " +# disable building Python bindings (since we don't include Python as a dep) +configopts += "--without-python " + +sanity_check_paths = { + 'files': ['lib/lib%s.a' % x for x in ['blkid', 'mount', 'uuid']], + 'dirs': ['include', 'bin', 'share', 'sbin'], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/u/util-linux/util-linux-2.39_fix_waitpid.patch b/easybuild/easyconfigs/u/util-linux/util-linux-2.39_fix_waitpid.patch new file mode 100644 index 00000000000..8b423607226 --- /dev/null +++ b/easybuild/easyconfigs/u/util-linux/util-linux-2.39_fix_waitpid.patch @@ -0,0 +1,43 @@ +From ffdd75cceedafac3ba7a80b86e1b103c383b260e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= +Date: Mon, 22 May 2023 18:24:47 +0200 +Subject: [PATCH] waitpid: only build when pidfd_open is available +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Fixes #2256 + +[kzak@redhat.com: - fix UL_BUILD_INIT() use] + +Signed-off-by: Thomas Weißschuh +Signed-off-by: Karel Zak +--- + configure.ac | 1 + + meson.build | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/configure.ac b/configure.ac +index dfdcdbdce8..1f6158e7f7 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1856,6 +1856,7 @@ AC_ARG_ENABLE([waitpid], + ) + UL_BUILD_INIT([waitpid]) + UL_REQUIRES_LINUX([waitpid]) ++UL_REQUIRES_SYSCALL_CHECK([waitpid], [UL_CHECK_SYSCALL([pidfd_open])], [pidfd_open]) + AM_CONDITIONAL([BUILD_WAITPID], [test "x$build_waitpid" = xyes]) + + UL_BUILD_INIT([enosys], [check]) +diff --git a/meson.build b/meson.build +index 3783a5be98..029f93cf49 100644 +--- a/meson.build ++++ b/meson.build +@@ -2848,6 +2848,7 @@ if not is_disabler(exe) + bashcompletions += ['fadvise'] + endif + ++# XXX: HAVE_PIDFD_OPEN + exe = executable( + 'waitpid', + waitpid_sources, diff --git a/easybuild/easyconfigs/v/VASP/VASP-6.3.2-nvofbf-2022.07.eb b/easybuild/easyconfigs/v/VASP/VASP-6.3.2-nvofbf-2022.07.eb new file mode 100644 index 00000000000..ea2a9c6c20c --- /dev/null +++ b/easybuild/easyconfigs/v/VASP/VASP-6.3.2-nvofbf-2022.07.eb @@ -0,0 +1,63 @@ +easyblock = 'MakeCp' + +name = 'VASP' +version = '6.3.2' + +homepage = 'https://www.vasp.at' +description = """The Vienna Ab initio Simulation Package (VASP) is a computer program for atomic scale +materials modelling, e.g. electronic structure calculations and quantum-mechanical molecular dynamics, +from first principles.""" + +toolchain = {'name': 'nvofbf', 'version': '2022.07'} +toolchainopts = {'openmp': True} + +download_instructions = """Vasp is proprietary software, see http://www.vasp.at/index.php/faqs + on how to get access to the code.""" + +sources = ['%(namelower)s.%(version)s.tgz'] +checksums = ['f7595221b0f9236a324ea8afe170637a578cdd5a837cc7679e7f7812f6edf25a'] + +prebuildopts = 'cp arch/makefile.include.nvhpc_omp_acc ./makefile.include && ' + +# Makefile uses LIBS as a list of folders +prebuildopts += 'unset LIBS && ' + +local_targets = ['std', 'gam', 'ncl'] + +buildopts = '%s ' % ' '.join(local_targets) +buildopts += 'FFTW_ROOT="${EBROOTFFTW}" ' +buildopts += 'DEPS=1 ' # required for VASP parallel builds + +# https://www.vasp.at/wiki/index.php/Validation_tests + +# it is recommended to run the testsuite with 4 MPI processes, +# but it's also recommended to use only 1 MPI process per GPU, +# so running the test on GPUs requires 4 GPUs? +local_test_mpiprocs = 4 + +pretestopts = 'export MPIRUN="mpirun -np %s -x OMP_NUM_THREADS=4 -x OMP_STACKSIZE=512m" && ' % local_test_mpiprocs +pretestopts += 'export VASP_TESTSUITE_EXE_STD="$MPIRUN %(builddir)s/vasp.%(version)s/bin/vasp_std" && ' +pretestopts += 'export VASP_TESTSUITE_EXE_NCL="$MPIRUN %(builddir)s/vasp.%(version)s/bin/vasp_ncl" && ' +pretestopts += 'export VASP_TESTSUITE_EXE_GAM="$MPIRUN %(builddir)s/vasp.%(version)s/bin/vasp_gam" && ' + +# skip tests that are too long +local_test_skip = 'HEG_333_LW ' + +# these tests are failing when using 4 V100 GPUs (still leaves about 50 successul tests) +local_test_skip += "bulk_GaAs_scGW_ALGO=D_sym bulk_GaAs_scGW_ALGO=D_sym_RPR bulk_GaAs_scGW_sym bulk_GaAs_scGW_sym_RPR " +local_test_skip += "bulk_InP_SOC_DFT_ISYM=3 bulk_InP_SOC_DFT_ISYM=3_RPR bulk_InP_SOC_PBE0_nosym bulk_InP_SOC_PBE0_sym " +local_test_skip += "bulk_InP_SOC_PBE0_sym_RPR bulk_SiO2_HSE bulk_SiO2_HSE_RPR bulk_SiO2_LPEAD bulk_SiO2_LPEAD_RPR " +local_test_skip += "bulk_SiO2_PBE0 bulk_SiO2_PBE0_RPR GaAs_LEPSILON_LPEAD GaAs_LEPSILON_LPEAD_RPR SiC_HSE06_ALGO=A " +local_test_skip += "SiC_HSE06_ALGO=A_RPR SiC_HSE06_ALGO=D SiC_HSE06_ALGO=D_RPR" + +pretestopts += 'export VASP_TESTSUITE_SKIP_TESTS="%s" && ' % local_test_skip +runtest = 'test' + +files_to_copy = [(['bin/vasp_' + x for x in local_targets], 'bin')] + +sanity_check_paths = { + 'files': ['bin/vasp_' + x for x in local_targets], + 'dirs': [] +} + +moduleclass = 'phys' diff --git a/easybuild/easyconfigs/v/VTK/VTK-9.0.1-fosscuda-2020b.eb b/easybuild/easyconfigs/v/VTK/VTK-9.0.1-fosscuda-2020b.eb new file mode 100644 index 00000000000..3d7c9e19371 --- /dev/null +++ b/easybuild/easyconfigs/v/VTK/VTK-9.0.1-fosscuda-2020b.eb @@ -0,0 +1,92 @@ +## +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# +# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA +# Authors:: Fotis Georgatos +# License:: MIT/GPL +# +# This work implements a part of the HPCBIOS project and is a component of the policy: +# https://hpcbios.readthedocs.org/en/latest/HPCBIOS_2012-97.html +## + +easyblock = 'CMakeMake' + +name = 'VTK' +version = '9.0.1' + +homepage = 'https://www.vtk.org' +description = """The Visualization Toolkit (VTK) is an open-source, freely available software system for + 3D computer graphics, image processing and visualization. VTK consists of a C++ class library and several + interpreted interface layers including Tcl/Tk, Java, and Python. VTK supports a wide variety of visualization + algorithms including: scalar, vector, tensor, texture, and volumetric methods; and advanced modeling techniques + such as: implicit modeling, polygon reduction, mesh smoothing, cutting, contouring, and Delaunay triangulation.""" + +toolchain = {'name': 'fosscuda', 'version': '2020b'} +toolchainopts = {'usempi': True} + +source_urls = ['https://www.vtk.org/files/release/%(version_major_minor)s'] +sources = [ + SOURCE_TAR_GZ, + '%(name)sData-%(version)s.tar.gz', +] +patches = [('vtk-version.egg-info', '.')] +checksums = [ + '1b39a5e191c282861e7af4101eaa8585969a2de05f5646c9199a161213a622c7', # VTK-9.0.1.tar.gz + '3f8bfdadd66e0b541bc5580340481abf92bec100b09d787283632ab590b1ce1c', # VTKData-9.0.1.tar.gz + '787b82415ae7a4a1f815b4db0e25f7abc809a05fc85d7d219627f3a7e5d3867b', # vtk-version.egg-info +] + +builddependencies = [('CMake', '3.18.4')] + +dependencies = [ + ('Python', '3.8.6'), + ('SciPy-bundle', '2020.11'), + ('XZ', '5.2.5'), + ('libGLU', '9.0.1'), + ('X11', '20201008'), +] + +separate_build_dir = True + +# OpenGL +configopts = "-DOPENGL_glu_LIBRARY=$EBROOTLIBGLU/lib/libGLU.%s " % SHLIB_EXT +configopts += "-DOPENGL_gl_LIBRARY=$EBROOTMESA/lib/libGL.%s " % SHLIB_EXT +configopts += "-DOPENGL_INCLUDE_DIR=$EBROOTMESA/include " +# Python +configopts += "-DVTK_WRAP_PYTHON=ON -DVTK_PYTHON_VERSION=3 -DVTK_PYTHON_OPTIONAL_LINK=OFF " +# Other +configopts += "-DVTK_USE_MPI=ON " +configopts += "-DCMAKE_INSTALL_LIBDIR=lib" + +preinstallopts = "export PYTHONPATH=%(installdir)s/lib/python%(pyshortver)s/site-packages:$PYTHONPATH && " + +# Install a egg-info file so VTK is more python friendly, required for mayavi +local_egg_info_src = '%(builddir)s/VTK-%(version)s/vtk-version.egg-info' +local_egg_info_dest = '%(installdir)s/lib/python%(pyshortver)s/site-packages/vtk-%(version)s.egg-info' +postinstallcmds = [ + 'sed "s/#VTK_VERSION#/%%(version)s/" %s > %s' % (local_egg_info_src, local_egg_info_dest), +] + +modextrapaths = {'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages']} + +local_vtk_exec = ['vtk%s-%%(version_major_minor)s' % x + for x in ['WrapJava', 'ParseJava', 'WrapPythonInit', 'WrapPython', 'WrapHierarchy']] +local_vtk_exec += ['vtkpython'] +local_vtk_libs = ['CommonCore', 'IONetCDF', 'ParallelCore', 'RenderingOpenGL2'] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in local_vtk_exec] + ['include/vtk-%(version_major_minor)s/vtkMPI.h'] + + ['lib/libvtk%s-%%(version_major_minor)s.%s' % (l, SHLIB_EXT) for l in local_vtk_libs], + 'dirs': ['lib/python%(pyshortver)s/site-packages/', 'include/vtk-%(version_major_minor)s'], +} + +sanity_check_commands = [ + "python -c 'import %(namelower)s'", + "python -c 'import pkg_resources; pkg_resources.get_distribution(\"vtk\")'", + # make sure that VTK Python libraries link to libpython (controlled via DVTK_PYTHON_OPTIONAL_LINK=OFF), + # see https://gitlab.kitware.com/vtk/vtk/-/issues/17881 + "ldd $EBROOTVTK/lib/libvtkPythonContext2D-%%(version_major_minor)s.%s | grep /libpython" % SHLIB_EXT, +] + + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/v/VTK/VTK-9.2.6-foss-2022b.eb b/easybuild/easyconfigs/v/VTK/VTK-9.2.6-foss-2022b.eb new file mode 100644 index 00000000000..8182cdf8c40 --- /dev/null +++ b/easybuild/easyconfigs/v/VTK/VTK-9.2.6-foss-2022b.eb @@ -0,0 +1,90 @@ +## +# Authors:: +# * Fotis Georgatos +# * Robert Mijakovic +## + +easyblock = 'CMakeNinja' + +name = 'VTK' +version = '9.2.6' + +homepage = 'https://www.vtk.org' +description = """The Visualization Toolkit (VTK) is an open-source, freely available software system for + 3D computer graphics, image processing and visualization. VTK consists of a C++ class library and several + interpreted interface layers including Tcl/Tk, Java, and Python. VTK supports a wide variety of visualization + algorithms including: scalar, vector, tensor, texture, and volumetric methods; and advanced modeling techniques + such as: implicit modeling, polygon reduction, mesh smoothing, cutting, contouring, and Delaunay triangulation.""" + +toolchain = {'name': 'foss', 'version': '2022b'} +toolchainopts = {'usempi': True} + +source_urls = ['https://www.vtk.org/files/release/%(version_major_minor)s'] +sources = [ + SOURCE_TAR_GZ, + '%(name)sData-%(version)s.tar.gz', +] +patches = [('vtk-version.egg-info', '.')] +checksums = [ + {'VTK-9.2.6.tar.gz': '06fc8d49c4e56f498c40fcb38a563ed8d4ec31358d0101e8988f0bb4d539dd12'}, + {'VTKData-9.2.6.tar.gz': '032c4b827173f859c898403d25360dc99409a4674559ad58f48828f23a6258b8'}, + {'vtk-version.egg-info': '787b82415ae7a4a1f815b4db0e25f7abc809a05fc85d7d219627f3a7e5d3867b'}, +] + +builddependencies = [ + ('CMake', '3.24.3'), + ('Ninja', '1.11.1'), +] + +dependencies = [ + ('Python', '3.10.8'), + ('SciPy-bundle', '2023.02'), + ('XZ', '5.2.7'), + ('libGLU', '9.0.2'), + ('X11', '20221110'), +] + +separate_build_dir = True + +# OpenGL +configopts = "-DOPENGL_glu_LIBRARY=$EBROOTLIBGLU/lib/libGLU.%s " % SHLIB_EXT +configopts += "-DOPENGL_gl_LIBRARY=$EBROOTMESA/lib/libGL.%s " % SHLIB_EXT +configopts += "-DOPENGL_INCLUDE_DIR=$EBROOTMESA/include " +# Python +configopts += "-DVTK_WRAP_PYTHON=ON -DVTK_PYTHON_VERSION=3 -DVTK_PYTHON_OPTIONAL_LINK=OFF " +configopts += "-DPython3_ROOT_DIR=$EBROOTPYTHON " +# Other +configopts += "-DVTK_USE_MPI=ON " +configopts += "-DCMAKE_INSTALL_LIBDIR=lib" + +preinstallopts = "export PYTHONPATH=%(installdir)s/lib/python%(pyshortver)s/site-packages:$PYTHONPATH && " + +# Install a egg-info file so VTK is more python friendly, required for mayavi +local_egg_info_src = '%(builddir)s/VTK-%(version)s/vtk-version.egg-info' +local_egg_info_dest = '%(installdir)s/lib/python%(pyshortver)s/site-packages/vtk-%(version)s.egg-info' +postinstallcmds = [ + 'sed "s/#VTK_VERSION#/%%(version)s/" %s > %s' % (local_egg_info_src, local_egg_info_dest), +] + +modextrapaths = {'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages']} + +local_vtk_exec = ['vtk%s-%%(version_major_minor)s' % x + for x in ['WrapJava', 'ParseJava', 'WrapPythonInit', 'WrapPython', 'WrapHierarchy']] +local_vtk_exec += ['vtkpython'] +local_vtk_libs = ['CommonCore', 'IONetCDF', 'ParallelCore', 'RenderingOpenGL2'] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in local_vtk_exec] + ['include/vtk-%(version_major_minor)s/vtkMPI.h'] + + ['lib/libvtk%s-%%(version_major_minor)s.%s' % (l, SHLIB_EXT) for l in local_vtk_libs], + 'dirs': ['lib/python%(pyshortver)s/site-packages/', 'include/vtk-%(version_major_minor)s'], +} + +sanity_check_commands = [ + "python -c 'import %(namelower)s'", + "python -c 'import pkg_resources; pkg_resources.get_distribution(\"vtk\")'", + # make sure that VTK Python libraries link to libpython (controlled via DVTK_PYTHON_OPTIONAL_LINK=OFF), + # see https://gitlab.kitware.com/vtk/vtk/-/issues/17881 + "ldd $EBROOTVTK/lib/libvtkPythonContext2D-%%(version_major_minor)s.%s | grep /libpython" % SHLIB_EXT, +] + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/v/Velvet/Velvet-1.2.10-GCC-11.2.0-mt-kmer_191.eb b/easybuild/easyconfigs/v/Velvet/Velvet-1.2.10-GCC-11.2.0-mt-kmer_191.eb index e59516e0cbd..8fcd1cc53f8 100644 --- a/easybuild/easyconfigs/v/Velvet/Velvet-1.2.10-GCC-11.2.0-mt-kmer_191.eb +++ b/easybuild/easyconfigs/v/Velvet/Velvet-1.2.10-GCC-11.2.0-mt-kmer_191.eb @@ -15,15 +15,16 @@ name = 'Velvet' version = '1.2.10' versionsuffix = '-mt-kmer_191' -homepage = 'https://www.ebi.ac.uk/~zerbino/velvet/' +homepage = 'https://github.com/dzerbino/velvet/' description = """Sequence assembler for very short reads""" toolchain = {'name': 'GCC', 'version': '11.2.0'} toolchainopts = {'openmp': True, 'pic': True} -source_urls = ['https://www.ebi.ac.uk/~zerbino/velvet'] -sources = ['%(namelower)s_%(version)s.tgz'] -checksums = ['884dd488c2d12f1f89cdc530a266af5d3106965f21ab9149e8cb5c633c977640'] +github_account = 'dzerbino' +source_urls = [GITHUB_LOWER_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['4615e52dc2e8a05f1009daf2c0978c218860be364afa044f73677cd298f10c7b'] dependencies = [('zlib', '1.2.11')] diff --git a/easybuild/easyconfigs/v/Velvet/Velvet-1.2.10-GCC-8.3.0-mt-kmer_191.eb b/easybuild/easyconfigs/v/Velvet/Velvet-1.2.10-GCC-8.3.0-mt-kmer_191.eb index ea774fc7287..cb47999342a 100644 --- a/easybuild/easyconfigs/v/Velvet/Velvet-1.2.10-GCC-8.3.0-mt-kmer_191.eb +++ b/easybuild/easyconfigs/v/Velvet/Velvet-1.2.10-GCC-8.3.0-mt-kmer_191.eb @@ -15,15 +15,16 @@ name = 'Velvet' version = '1.2.10' versionsuffix = '-mt-kmer_191' -homepage = 'https://www.ebi.ac.uk/~zerbino/velvet/' +homepage = 'https://github.com/dzerbino/velvet/' description = """Sequence assembler for very short reads""" toolchain = {'name': 'GCC', 'version': '8.3.0'} toolchainopts = {'openmp': True, 'pic': True} -source_urls = ['https://www.ebi.ac.uk/~zerbino/velvet'] -sources = ['%(namelower)s_%(version)s.tgz'] -checksums = ['884dd488c2d12f1f89cdc530a266af5d3106965f21ab9149e8cb5c633c977640'] +github_account = 'dzerbino' +source_urls = [GITHUB_LOWER_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['4615e52dc2e8a05f1009daf2c0978c218860be364afa044f73677cd298f10c7b'] dependencies = [('zlib', '1.2.11')] diff --git a/easybuild/easyconfigs/v/Velvet/Velvet-1.2.10-foss-2018a-mt-kmer_191.eb b/easybuild/easyconfigs/v/Velvet/Velvet-1.2.10-foss-2018a-mt-kmer_191.eb index 34910dc01cd..ee42af90210 100644 --- a/easybuild/easyconfigs/v/Velvet/Velvet-1.2.10-foss-2018a-mt-kmer_191.eb +++ b/easybuild/easyconfigs/v/Velvet/Velvet-1.2.10-foss-2018a-mt-kmer_191.eb @@ -15,15 +15,16 @@ name = 'Velvet' version = '1.2.10' versionsuffix = '-mt-kmer_191' -homepage = 'http://www.ebi.ac.uk/~zerbino/velvet/' +homepage = 'https://github.com/dzerbino/velvet/' description = """Sequence assembler for very short reads""" toolchain = {'name': 'foss', 'version': '2018a'} toolchainopts = {'openmp': True, 'pic': True} -source_urls = ['http://www.ebi.ac.uk/~zerbino/%(namelower)s'] -sources = ['%(namelower)s_%(version)s.tgz'] -checksums = ['884dd488c2d12f1f89cdc530a266af5d3106965f21ab9149e8cb5c633c977640'] +github_account = 'dzerbino' +source_urls = [GITHUB_LOWER_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['4615e52dc2e8a05f1009daf2c0978c218860be364afa044f73677cd298f10c7b'] dependencies = [('zlib', '1.2.11')] diff --git a/easybuild/easyconfigs/v/Velvet/Velvet-1.2.10-foss-2018b-mt-kmer_191.eb b/easybuild/easyconfigs/v/Velvet/Velvet-1.2.10-foss-2018b-mt-kmer_191.eb index f5c9e5e44d7..4a23a439630 100644 --- a/easybuild/easyconfigs/v/Velvet/Velvet-1.2.10-foss-2018b-mt-kmer_191.eb +++ b/easybuild/easyconfigs/v/Velvet/Velvet-1.2.10-foss-2018b-mt-kmer_191.eb @@ -15,15 +15,16 @@ name = 'Velvet' version = '1.2.10' versionsuffix = '-mt-kmer_191' -homepage = 'http://www.ebi.ac.uk/~zerbino/velvet/' +homepage = 'https://github.com/dzerbino/velvet/' description = """Sequence assembler for very short reads""" toolchain = {'name': 'foss', 'version': '2018b'} toolchainopts = {'openmp': True, 'pic': True} -source_urls = ['http://www.ebi.ac.uk/~zerbino/%(namelower)s'] -sources = ['%(namelower)s_%(version)s.tgz'] -checksums = ['884dd488c2d12f1f89cdc530a266af5d3106965f21ab9149e8cb5c633c977640'] +github_account = 'dzerbino' +source_urls = [GITHUB_LOWER_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['4615e52dc2e8a05f1009daf2c0978c218860be364afa044f73677cd298f10c7b'] dependencies = [('zlib', '1.2.11')] diff --git a/easybuild/easyconfigs/v/Velvet/Velvet-1.2.10-intel-2017a-mt-kmer_37.eb b/easybuild/easyconfigs/v/Velvet/Velvet-1.2.10-intel-2017a-mt-kmer_37.eb index 8e2cfba9b55..7291b701408 100644 --- a/easybuild/easyconfigs/v/Velvet/Velvet-1.2.10-intel-2017a-mt-kmer_37.eb +++ b/easybuild/easyconfigs/v/Velvet/Velvet-1.2.10-intel-2017a-mt-kmer_37.eb @@ -15,14 +15,16 @@ name = 'Velvet' version = '1.2.10' versionsuffix = '-mt-kmer_37' -homepage = 'http://www.ebi.ac.uk/~zerbino/velvet/' +homepage = 'https://github.com/dzerbino/velvet/' description = """Sequence assembler for very short reads""" toolchain = {'name': 'intel', 'version': '2017a'} toolchainopts = {'openmp': True, 'pic': True} -sources = ['%(namelower)s_%(version)s.tgz'] -source_urls = ['http://www.ebi.ac.uk/~zerbino/%(namelower)s'] +github_account = 'dzerbino' +source_urls = [GITHUB_LOWER_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['4615e52dc2e8a05f1009daf2c0978c218860be364afa044f73677cd298f10c7b'] buildopts = "OPENMP=1 MAXKMERLENGTH=%s LONGSEQUENCES=1" % versionsuffix.split('_')[1] diff --git a/easybuild/easyconfigs/v/Voro++/Voro++-0.4.6-GCCcore-11.3.0.eb b/easybuild/easyconfigs/v/Voro++/Voro++-0.4.6-GCCcore-11.3.0.eb new file mode 100644 index 00000000000..dbf753f975a --- /dev/null +++ b/easybuild/easyconfigs/v/Voro++/Voro++-0.4.6-GCCcore-11.3.0.eb @@ -0,0 +1,43 @@ +## +# Author: Robert Mijakovic +## +easyblock = 'ConfigureMake' + +name = 'Voro++' +version = '0.4.6' + +homepage = 'http://math.lbl.gov/voro++/' +description = """Voro++ is a software library for carrying out three-dimensional computations of the Voronoi +tessellation. A distinguishing feature of the Voro++ library is that it carries out cell-based calculations, +computing the Voronoi cell for each particle individually. It is particularly well-suited for applications that +rely on cell-based statistics, where features of Voronoi cells (eg. volume, centroid, number of faces) can be used +to analyze a system of particles.""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} +toolchainopts = {'pic': True} + +source_urls = [ + 'http://math.lbl.gov/voro++/download/dir/', + 'https://download.lammps.org/thirdparty', +] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['ef7970071ee2ce3800daa8723649ca069dc4c71cc25f0f7d22552387f3ea437e'] + +builddependencies = [('binutils', '2.38')] + + +# No configure +skipsteps = ['configure'] + +# Override CXX and CFLAGS variables from Makefile +buildopts = 'CXX="$CXX" CFLAGS="$CXXFLAGS"' + +# Override PREFIX variable from Makefile +installopts = "PREFIX=%(installdir)s" + +sanity_check_paths = { + 'files': ['bin/voro++', 'lib/libvoro++.a', 'include/voro++/voro++.hh'], + 'dirs': [], +} + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/v/visdom/visdom-0.2.4-foss-2022a.eb b/easybuild/easyconfigs/v/visdom/visdom-0.2.4-foss-2022a.eb new file mode 100644 index 00000000000..213fb90e29a --- /dev/null +++ b/easybuild/easyconfigs/v/visdom/visdom-0.2.4-foss-2022a.eb @@ -0,0 +1,42 @@ +easyblock = 'PythonBundle' + +name = 'visdom' +version = '0.2.4' + +homepage = 'https://github.com/fossasia/visdom' +description = """ +A flexible tool for creating, organizing, and sharing visualizations of live, +rich data. Supports Torch and Numpy.""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), + ('networkx', '2.8.4'), + ('Pillow-SIMD', '9.2.0'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('tornado', '6.2', { + 'checksums': ['9b630419bde84ec666bfd7ea0a4cb2a8a651c2d5cccdbdd1972a0c859dfc3c13'], + }), + ('jsonpointer', '2.3', { + 'checksums': ['97cba51526c829282218feb99dab1b1e6bdf8efd1c43dc9d57be093c0d69c99a'], + }), + ('jsonpatch', '1.32', { + 'checksums': ['b6ddfe6c3db30d81a96aaeceb6baf916094ffa23d7dd5fa2c13e13f8b6e600c2'], + }), + ('websocket-client', '1.5.1', { + 'modulename': 'websocket', + 'checksums': ['3f09e6d8230892547132177f575a4e3e73cfdf06526e20cc02aa1c3b47184d40'], + }), + (name, version, { + 'checksums': ['84a911d3c8814a056d54812b381bd938cb44bcfc503a85fe0f701502bb720574'], + }), +] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/w/WhatsHap/WhatsHap-1.7-foss-2022a.eb b/easybuild/easyconfigs/w/WhatsHap/WhatsHap-1.7-foss-2022a.eb new file mode 100644 index 00000000000..f99182d699d --- /dev/null +++ b/easybuild/easyconfigs/w/WhatsHap/WhatsHap-1.7-foss-2022a.eb @@ -0,0 +1,50 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild + +easyblock = 'PythonBundle' + +name = 'WhatsHap' +version = '1.7' + +homepage = 'https://whatshap.readthedocs.io' +description = """WhatsHap is a software for phasing genomic variants using DNA +sequencing reads, also called read-based phasing or haplotype assembly. It is +especially suitable for long reads, but works also well with short reads.""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +dependencies = [ + ('Python', '3.10.4'), + ('Pysam', '0.19.1'), + ('networkx', '2.8.4'), + ('SciPy-bundle', '2022.05'), + ('Biopython', '1.79'), + ('Yasm', '1.3.0'), + ('pyfaidx', '0.7.1'), + ('python-isal', '1.1.0'), +] + +sanity_pip_check = True +use_pip = True + +exts_list = [ + ('xopen', '1.5.0', { + 'checksums': ['822b926afd39b6904e5d2fdee6e0944d342023f2a42339103c1507b0da48c693'], + }), + ('pulp', '2.7.0', { + 'source_tmpl': 'PuLP-%(version)s.tar.gz', + 'checksums': ['e73ee6b32d639c9b8cf4b4aded334ba158be5f8313544e056f796ace0a10ae63'], + }), + (name, version, { + 'source_tmpl': '%(namelower)s-%(version)s.tar.gz', + 'checksums': ['abd90551a4e19426ceb3a84ed1c8e23f609869956a7f16609f6950aedc930a2c'], + }), +] + +sanity_check_paths = { + 'files': ['bin/%(namelower)s'], + 'dirs': [], +} + +sanity_check_commands = ['%(namelower)s --help'] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/w/wrapt/wrapt-1.15.0-foss-2022a.eb b/easybuild/easyconfigs/w/wrapt/wrapt-1.15.0-foss-2022a.eb new file mode 100644 index 00000000000..90f96b45487 --- /dev/null +++ b/easybuild/easyconfigs/w/wrapt/wrapt-1.15.0-foss-2022a.eb @@ -0,0 +1,27 @@ +easyblock = 'PythonBundle' + +name = 'wrapt' +version = '1.15.0' + +homepage = 'https://pypi.org/project/wrapt/' +description = """The aim of the wrapt module is to provide a transparent object +proxy for Python, which can be used as the basis for the construction of +function wrappers and decorator functions.""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + (name, version, { + 'checksums': ['d06730c6aed78cee4126234cf2d071e01b44b915e725a6cb439a879ec9754a3a'], + }), +] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/w/wrapt/wrapt-1.15.0-intel-2022a.eb b/easybuild/easyconfigs/w/wrapt/wrapt-1.15.0-intel-2022a.eb new file mode 100644 index 00000000000..20a3d11960a --- /dev/null +++ b/easybuild/easyconfigs/w/wrapt/wrapt-1.15.0-intel-2022a.eb @@ -0,0 +1,27 @@ +easyblock = 'PythonBundle' + +name = 'wrapt' +version = '1.15.0' + +homepage = 'https://pypi.org/project/wrapt/' +description = """The aim of the wrapt module is to provide a transparent object +proxy for Python, which can be used as the basis for the construction of +function wrappers and decorator functions.""" + +toolchain = {'name': 'intel', 'version': '2022a'} + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + (name, version, { + 'checksums': ['d06730c6aed78cee4126234cf2d071e01b44b915e725a6cb439a879ec9754a3a'], + }), +] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/x/X11/X11-20230603-GCCcore-12.3.0.eb b/easybuild/easyconfigs/x/X11/X11-20230603-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..62b97f725fb --- /dev/null +++ b/easybuild/easyconfigs/x/X11/X11-20230603-GCCcore-12.3.0.eb @@ -0,0 +1,214 @@ +easyblock = 'Bundle' + +name = 'X11' +version = '20230603' + +homepage = 'https://www.x.org' +description = "The X Window System (X11) is a windowing system for bitmap displays" + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} + +builddependencies = [ + ('binutils', '2.40'), + ('Autotools', '20220317'), + ('Bison', '3.8.2'), + ('gettext', '0.21.1'), + ('pkgconf', '1.9.5'), + ('intltool', '0.51.0'), + ('Meson', '1.1.1'), + ('Ninja', '1.11.1'), + ('Doxygen', '1.9.7'), +] + +dependencies = [ + ('bzip2', '1.0.8'), + ('fontconfig', '2.14.2'), + ('freetype', '2.13.0'), + ('zlib', '1.2.13'), + ('xorg-macros', '1.20.0'), + ('libpciaccess', '0.17'), +] + +source_urls = [ + XORG_LIB_SOURCE, + XORG_PROTO_SOURCE, + 'https://xcb.freedesktop.org/dist/', + 'https://xkbcommon.org/download/', + XORG_DATA_SOURCE + '/xkeyboard-config', + XORG_DATA_SOURCE, +] + +default_easyblock = 'ConfigureMake' + +default_component_specs = { + 'sources': [SOURCE_TAR_GZ], + 'start_dir': '%(name)s-%(version)s', +} + +components = [ + ('libpthread-stubs', '0.4', { # 2017-03-14 + 'checksums': ['50d5686b79019ccea08bcbd7b02fe5a40634abcfd4146b6e75c6420cc170e9d9'], + }), + ('xorgproto', '2022.2', { # 2022-08-11 + 'checksums': ['da351a403d07a7006d7bdc8dcfc14ddc1b588b38fb81adab9989a8eef605757b'], + }), + ('libXau', '1.0.11', { # 2022-12-08 + 'checksums': ['3a321aaceb803577a4776a5efe78836eb095a9e44bbc7a465d29463e1a14f189'], + }), + ('libXdmcp', '1.1.4', { # 2022-11-19 + 'checksums': ['55041a8ff8992ab02777478c4b19c249c0f8399f05a752cb4a1a868a9a0ccb9a'], + }), + ('xcb-proto', '1.15.2', { # 2022-06-17 + 'checksums': ['6b1ed9cd7cf35e37913eeecca37e5b85b14903002942b3e332f321335c27a8eb'], + }), + ('libxcb', '1.15', { # 2022-05-03 + 'checksums': ['1cb65df8543a69ec0555ac696123ee386321dfac1964a3da39976c9a05ad724d'], + }), + ('xtrans', '1.5.0', { # 2023-06-03 + 'checksums': ['a806f8a92f879dcd0146f3f1153fdffe845f2fc0df9b1a26c19312b7b0a29c86'], + }), + ('libxkbcommon', '1.5.0', { # 2023-01-02 + 'easyblock': 'MesonNinja', + 'sources': [SOURCE_TAR_XZ], + 'checksums': ['560f11c4bbbca10f495f3ef7d3a6aa4ca62b4f8fb0b52e7d459d18a26e46e017'], + 'preconfigopts': '', + 'configopts': '-Denable-wayland=false -Denable-docs=false ', + }), + ('libX11', '1.8.5', { # 2023-06-01 + 'checksums': ['d84a35c324d5a1724692eafc1ed76f1689c833021e0062933773ec437f91a56b'], + }), + ('libXext', '1.3.5', { # 2022-10-29 + 'checksums': ['1a3dcda154f803be0285b46c9338515804b874b5ccc7a2b769ab7fd76f1035bd'], + }), + ('libFS', '1.0.9', { # 2022-08-26 + 'checksums': ['8bc2762f63178905228a28670539badcfa2c8793f7b6ce3f597b7741b932054a'], + }), + ('libICE', '1.1.1', { # 2022-12-08 + 'checksums': ['04fbd34a11ba08b9df2e3cdb2055c2e3c1c51b3257f683d7fcf42dabcf8e1210'], + }), + ('libSM', '1.2.4', { # 2022-12-20 + 'checksums': ['51464ce1abce323d5b6707ceecf8468617106e1a8a98522f8342db06fd024c15'], + }), + ('libXScrnSaver', '1.2.4', { # 2022-12-05 + 'checksums': ['0656b2630475104d6df75d91ebb8e0153e61d14e9871ef1f403bcda4a62a838a'], + }), + ('libXt', '1.3.0', { # 2023-05-09 + 'checksums': ['de4a80c4cc7785b9620e572de71026805f68e85a2bf16c386009ef0e50be3f77'], + }), + ('libXmu', '1.1.4', { # 2022-10-17 + 'checksums': ['3091d711cdc1d8ea0f545a13b90d1464c3c3ab64778fd121f0d789b277a80289'], + }), + ('libXpm', '3.5.16', { # 2023-04-17 + 'checksums': ['43a70e6f9b67215fb223ca270d83bdcb868c513948441d5b781ea0765df6bfb4'], + }), + ('libXaw', '1.0.15', { # 2023-03-16 + 'checksums': ['ca8a613884c922985202075b3cc8ee8821bfa83a5eb066189ae3cca131e63972'], + }), + ('libXfixes', '6.0.1', { # 2023-04-09 + 'checksums': ['e69eaa321173c748ba6e2f15c7cf8da87f911d3ea1b6af4b547974aef6366bec'], + }), + ('libXcomposite', '0.4.6', { # 2022-12-04 + 'checksums': ['3599dfcd96cd48d45e6aeb08578aa27636fa903f480f880c863622c2b352d076'], + }), + ('libXrender', '0.9.11', { # 2022-10-22 + 'checksums': ['6aec3ca02e4273a8cbabf811ff22106f641438eb194a12c0ae93c7e08474b667'], + }), + ('libXcursor', '1.2.1', { # 2022-04-03 + 'checksums': ['77f96b9ad0a3c422cfa826afabaf1e02b9bfbfc8908c5fa1a45094faad074b98'], + }), + ('libXdamage', '1.1.6', { # 2022-12-04 + 'checksums': ['2afcc139eb6eb926ffe344494b1fc023da25def42874496e6e6d3aa8acef8595'], + }), + ('libfontenc', '1.1.7', { # 2022-12-08 + 'checksums': ['5e5f210329823f08f97bfe9fd5b4105070c789bc5aef88ce01d86d8203d4aa9f'], + }), + ('libXfont', '1.5.4', { # 2017-11-28 + 'checksums': ['59be6eab53f7b0feb6b7933c11d67d076ae2c0fd8921229c703fc7a4e9a80d6e'], + }), + ('libXfont2', '2.0.6', { # 2022-08-26 + 'checksums': ['a944df7b6837c8fa2067f6a5fc25d89b0acc4011cd0bc085106a03557fb502fc'], + }), + ('libXft', '2.3.8', { # 2023-04-17 + 'checksums': ['32e48fe2d844422e64809e4e99b9d8aed26c1b541a5acf837c5037b8d9f278a8'], + }), + ('libXi', '1.8.1', { # 2023-05-04 + 'checksums': ['3b5f47c223e4b63d7f7fe758886b8bf665b20a7edb6962c423892fd150e326ea'], + }), + ('libXinerama', '1.1.5', { # 2022-10-29 + 'checksums': ['2efa855cb42dc620eff3b77700d8655695e09aaa318f791f201fa60afa72b95c'], + }), + ('libXrandr', '1.5.3', { # 2022-11-20 + 'checksums': ['3ad316c1781fe2fe22574b819e81f0eff087a8560377f521ba932238b41b251f'], + }), + ('libXres', '1.2.2', { # 2022-12-05 + 'checksums': ['8abce597ced4a7ab89032aee91f6f784d9960adc772b2b59f17e515cd4127950'], + }), + ('libXtst', '1.2.4', { # 2022-09-27 + 'checksums': ['01366506aeb033f6dffca5326af85f670746b0cabbfd092aabefb046cf48c445'], + }), + ('libXv', '1.0.12', { # 2022-12-05 + 'checksums': ['ce706619a970a580a0e35e9b5c98bdd2af243ac6494c65f44608a89a86100126'], + }), + ('libXvMC', '1.0.13', { # 2022-03-22 + 'checksums': ['e630b4373af8c67a7c8f07ebe626a1269a613d262d1f737b57231a06f7c34b4e'], + }), + ('libXxf86dga', '1.1.6', { # 2022-12-05 + 'checksums': ['87c7482b1e29b4eeb415815641c4f69c00545a8138e1b73ff1f361f7d9c22ac4'], + }), + ('libXxf86vm', '1.1.5', { # 2022-09-27 + 'checksums': ['f3f1c29fef8accb0adbd854900c03c6c42f1804f2bc1e4f3ad7b2e1f3b878128'], + }), + ('libdmx', '1.1.5', { # 2023-06-03 + 'checksums': ['070e82cc1daa1b21ee1339aef56a909eab04cbe7d430fabfbb01ecd21b2dd9f3'], + }), + ('libxkbfile', '1.1.2', { # 2022-12-08 + 'checksums': ['d1a7e659bc7ae1aa1fc1ecced261c734df5ad5d86af1ef7a946be0e2d841e51d'], + }), + ('libxshmfence', '1.3.2', { # 2022-12-08 + 'checksums': ['e93a85099604beb244ee756dcaf70e18b08701c1ca84c4de0126cd71bd6c8181'], + }), + ('xcb-util', '0.4.0', { # 2014-10-15 + 'checksums': ['0ed0934e2ef4ddff53fcc70fc64fb16fe766cd41ee00330312e20a985fd927a7'], + }), + ('xcb-util-image', '0.4.1', { # 2022-10-18 + 'checksums': ['0ebd4cf809043fdeb4f980d58cdcf2b527035018924f8c14da76d1c81001293b'], + }), + ('xcb-util-keysyms', '0.4.1', { # 2022-10-19 + 'checksums': ['1fa21c0cea3060caee7612b6577c1730da470b88cbdf846fa4e3e0ff78948e54'], + }), + ('xcb-util-renderutil', '0.3.10', { # 2022-10-19 + 'checksums': ['e04143c48e1644c5e074243fa293d88f99005b3c50d1d54358954404e635128a'], + }), + ('xcb-util-wm', '0.4.2', { # 2022-10-19 + 'checksums': ['dcecaaa535802fd57c84cceeff50c64efe7f2326bf752e16d2b77945649c8cd7'], + }), + ('xcb-util-cursor', '0.1.4', { # 2022-10-18 + 'checksums': ['cc8608ebb695742b6cf84712be29b2b66aa5f6768039528794fca0fa283022bf'], + }), + ('xkeyboard-config', '2.38', { # 2022-02-04 + 'easyblock': 'MesonNinja', + 'sources': [SOURCE_TAR_XZ], + 'checksums': ['0690a91bab86b18868f3eee6d41e9ec4ce6894f655443d490a2184bfac56c872'], + # required to overrule parent preconfigopts that runs autogen.sh if configure script is missing + 'preconfigopts': '', + }), + ('printproto', '1.0.5', { # 2011-01-06 + 'checksums': ['e8b6f405fd865f0ea7a3a2908dfbf06622f57f2f91359ec65d13b955e49843fc'], + }), + ('libXp', '1.0.4', { # 2022-09-12 + 'checksums': ['05e46af1ccb68f1752cca5879774a4fb9bf3b19fe088eb745034956e0c6fadba'], + }), + ('xbitmaps', '1.1.3', { # 2023-02-23 + 'checksums': ['93b433b7ff223c4685fdba583b4bd30f2706be2413a670021084422d85b0269d'], + }), +] + +preconfigopts = "if [ ! -f configure ]; then ./autogen.sh; fi && " + +sanity_check_paths = { + 'files': ['include/X11/Xlib.h', 'include/X11/Xutil.h'], + 'dirs': ['include/GL', 'include/X11', 'include/X11/extensions', 'lib/pkgconfig', + 'share/pkgconfig', 'share/X11/xkb'], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/x/XML-LibXML/XML-LibXML-2.0208-GCCcore-12.2.0.eb b/easybuild/easyconfigs/x/XML-LibXML/XML-LibXML-2.0208-GCCcore-12.2.0.eb new file mode 100644 index 00000000000..23fbad63969 --- /dev/null +++ b/easybuild/easyconfigs/x/XML-LibXML/XML-LibXML-2.0208-GCCcore-12.2.0.eb @@ -0,0 +1,64 @@ +# updated toolchain, version, and dependency versions +# Thomas Eylenbosch 5-Jun-23 + +easyblock = 'Bundle' + +name = 'XML-LibXML' +version = '2.0208' + +homepage = 'https://metacpan.org/pod/distribution/XML-LibXML/LibXML.pod' +description = "Perl binding for libxml2" + +toolchain = {'name': 'GCCcore', 'version': '12.2.0'} + +builddependencies = [ + ('binutils', '2.39'), + ('pkgconf', '1.9.3'), +] + +dependencies = [ + ('Perl', '5.36.0'), + ('libxml2', '2.10.3'), +] + +exts_defaultclass = 'PerlModule' +exts_filter = ("perldoc -lm %(ext_name)s ", "") + +exts_list = [ + ('File::chdir', '0.1011', { + 'source_tmpl': 'File-chdir-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN'], + 'checksums': ['31ebf912df48d5d681def74b9880d78b1f3aca4351a0ed1fe3570b8e03af6c79'], + }), + ('Alien::Base', '2.80', { + 'source_tmpl': 'Alien-Build-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PL/PLICEASE/'], + 'checksums': ['d9edc936b06705bb5cb5ee5a2ea8bcf6111a3e8815914f177e15e3c0fed301f3'], + }), + ('Alien::Build::Plugin::Download::GitLab', '0.01', { + 'source_tmpl': 'Alien-Build-Plugin-Download-GitLab-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PL/PLICEASE'], + 'checksums': ['c1f089c8ea152a789909d48a83dbfcf2626f773daf30431c8622582b26aba902'], + }), + ('Alien::Libxml2', '0.19', { + 'source_tmpl': 'Alien-Libxml2-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/P/PL/PLICEASE'], + 'checksums': ['f4a674099bbd5747c0c3b75ead841f3b244935d9ef42ba35368024bd611174c9'], + }), + ('XML::LibXML', version, { + 'source_tmpl': 'XML-LibXML-%(version)s.tar.gz', + 'source_urls': ['https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF/'], + 'checksums': ['0c006b03bf8d0eb531fb56bda3ae15754ca56d888dd7b9e805ab9eb19d5fd653'], + }), +] + +modextrapaths = { + 'PERL5LIB': 'lib/perl5/site_perl/%(perlver)s/', +} + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/perl5/site_perl/%(perlver)s/x86_64-linux-thread-multi/XML/LibXML'], +} + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/x/XZ/XZ-5.2.5-GCCcore-10.1.0.eb b/easybuild/easyconfigs/x/XZ/XZ-5.2.5-GCCcore-10.1.0.eb index c7d8e9fe1d7..29468c0afac 100644 --- a/easybuild/easyconfigs/x/XZ/XZ-5.2.5-GCCcore-10.1.0.eb +++ b/easybuild/easyconfigs/x/XZ/XZ-5.2.5-GCCcore-10.1.0.eb @@ -21,18 +21,20 @@ toolchain = {'name': 'GCCcore', 'version': '10.1.0'} source_urls = ['https://tukaani.org/xz/'] sources = [SOURCELOWER_TAR_BZ2] patches = [ - 'XZ-5.2.5_compat-libs.patch', + 'xz-5.2.5_fix-symbols.patch', 'xz-5.2.5-cve-2022-1271.patch', ] checksums = [ - '5117f930900b341493827d63aa910ff5e011e0b994197c3b71c08a20228a42df', # xz-5.2.5.tar.bz2 - '9747c8fdf0b3c9501ac5479a807151d75b99bea7816a59565edea267230da195', # XZ-5.2.5_compat-libs.patch - '98c6cb1042284fe704ec30083f3fc87364ce9ed2ea51f62bbb0ee9d3448717ec', # xz-5.2.5-cve-2022-1271.patch + {'xz-5.2.5.tar.bz2': '5117f930900b341493827d63aa910ff5e011e0b994197c3b71c08a20228a42df'}, + {'xz-5.2.5_fix-symbols.patch': 'ce80545e7bd88466fd9561a8abb9da87e62ebc71a1531c909a492fa2844da6d0'}, + {'xz-5.2.5-cve-2022-1271.patch': '98c6cb1042284fe704ec30083f3fc87364ce9ed2ea51f62bbb0ee9d3448717ec'}, ] builddependencies = [ # use gettext built with system toolchain as build dep to avoid cyclic dependency (XZ -> gettext -> libxml2 -> XZ) ('gettext', '0.20.1', '', SYSTEM), + # use Autotools built with system toolchain as build dep to avoid conflicting ncurses dependency + ('Autotools', '20220317', '', SYSTEM), ('binutils', '2.34'), ] diff --git a/easybuild/easyconfigs/x/XZ/XZ-5.2.5-GCCcore-10.2.0.eb b/easybuild/easyconfigs/x/XZ/XZ-5.2.5-GCCcore-10.2.0.eb index 2ba344e0acb..633fc22773e 100644 --- a/easybuild/easyconfigs/x/XZ/XZ-5.2.5-GCCcore-10.2.0.eb +++ b/easybuild/easyconfigs/x/XZ/XZ-5.2.5-GCCcore-10.2.0.eb @@ -21,18 +21,20 @@ toolchain = {'name': 'GCCcore', 'version': '10.2.0'} source_urls = ['https://tukaani.org/xz/'] sources = [SOURCELOWER_TAR_BZ2] patches = [ - 'XZ-5.2.5_compat-libs.patch', + 'xz-5.2.5_fix-symbols.patch', 'xz-5.2.5-cve-2022-1271.patch', ] checksums = [ - '5117f930900b341493827d63aa910ff5e011e0b994197c3b71c08a20228a42df', # xz-5.2.5.tar.bz2 - '9747c8fdf0b3c9501ac5479a807151d75b99bea7816a59565edea267230da195', # XZ-5.2.5_compat-libs.patch - '98c6cb1042284fe704ec30083f3fc87364ce9ed2ea51f62bbb0ee9d3448717ec', # xz-5.2.5-cve-2022-1271.patch + {'xz-5.2.5.tar.bz2': '5117f930900b341493827d63aa910ff5e011e0b994197c3b71c08a20228a42df'}, + {'xz-5.2.5_fix-symbols.patch': 'ce80545e7bd88466fd9561a8abb9da87e62ebc71a1531c909a492fa2844da6d0'}, + {'xz-5.2.5-cve-2022-1271.patch': '98c6cb1042284fe704ec30083f3fc87364ce9ed2ea51f62bbb0ee9d3448717ec'}, ] builddependencies = [ # use gettext built with system toolchain as build dep to avoid cyclic dependency (XZ -> gettext -> libxml2 -> XZ) ('gettext', '0.21', '', SYSTEM), + # use Autotools built with system toolchain as build dep to avoid conflicting ncurses dependency + ('Autotools', '20220317', '', SYSTEM), ('binutils', '2.35'), ] 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 index 2f9102b6d69..ed72f2ac7c8 100644 --- 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 @@ -14,18 +14,20 @@ toolchain = {'name': 'GCCcore', 'version': '10.3.0'} source_urls = ['https://tukaani.org/xz/'] sources = [SOURCELOWER_TAR_BZ2] patches = [ - 'XZ-5.2.5_compat-libs.patch', + 'xz-5.2.5_fix-symbols.patch', 'xz-5.2.5-cve-2022-1271.patch', ] checksums = [ - '5117f930900b341493827d63aa910ff5e011e0b994197c3b71c08a20228a42df', # xz-5.2.5.tar.bz2 - '9747c8fdf0b3c9501ac5479a807151d75b99bea7816a59565edea267230da195', # XZ-5.2.5_compat-libs.patch - '98c6cb1042284fe704ec30083f3fc87364ce9ed2ea51f62bbb0ee9d3448717ec', # xz-5.2.5-cve-2022-1271.patch + {'xz-5.2.5.tar.bz2': '5117f930900b341493827d63aa910ff5e011e0b994197c3b71c08a20228a42df'}, + {'xz-5.2.5_fix-symbols.patch': 'ce80545e7bd88466fd9561a8abb9da87e62ebc71a1531c909a492fa2844da6d0'}, + {'xz-5.2.5-cve-2022-1271.patch': '98c6cb1042284fe704ec30083f3fc87364ce9ed2ea51f62bbb0ee9d3448717ec'}, ] builddependencies = [ # use gettext built with system toolchain as build dep to avoid cyclic dependency (XZ -> gettext -> libxml2 -> XZ) ('gettext', '0.21', '', SYSTEM), + # use Autotools built with system toolchain as build dep to avoid conflicting ncurses dependency + ('Autotools', '20220317', '', SYSTEM), ('binutils', '2.36.1'), ] diff --git a/easybuild/easyconfigs/x/XZ/XZ-5.2.5-GCCcore-11.2.0.eb b/easybuild/easyconfigs/x/XZ/XZ-5.2.5-GCCcore-11.2.0.eb index a482f548042..56ff0db94f9 100644 --- a/easybuild/easyconfigs/x/XZ/XZ-5.2.5-GCCcore-11.2.0.eb +++ b/easybuild/easyconfigs/x/XZ/XZ-5.2.5-GCCcore-11.2.0.eb @@ -14,18 +14,20 @@ toolchain = {'name': 'GCCcore', 'version': '11.2.0'} source_urls = ['https://tukaani.org/xz/'] sources = [SOURCELOWER_TAR_BZ2] patches = [ - 'XZ-5.2.5_compat-libs.patch', + 'xz-5.2.5_fix-symbols.patch', 'xz-5.2.5-cve-2022-1271.patch', ] checksums = [ - '5117f930900b341493827d63aa910ff5e011e0b994197c3b71c08a20228a42df', # xz-5.2.5.tar.bz2 - '9747c8fdf0b3c9501ac5479a807151d75b99bea7816a59565edea267230da195', # XZ-5.2.5_compat-libs.patch - '98c6cb1042284fe704ec30083f3fc87364ce9ed2ea51f62bbb0ee9d3448717ec', # xz-5.2.5-cve-2022-1271.patch + {'xz-5.2.5.tar.bz2': '5117f930900b341493827d63aa910ff5e011e0b994197c3b71c08a20228a42df'}, + {'xz-5.2.5_fix-symbols.patch': 'ce80545e7bd88466fd9561a8abb9da87e62ebc71a1531c909a492fa2844da6d0'}, + {'xz-5.2.5-cve-2022-1271.patch': '98c6cb1042284fe704ec30083f3fc87364ce9ed2ea51f62bbb0ee9d3448717ec'}, ] builddependencies = [ # use gettext built with system toolchain as build dep to avoid cyclic dependency (XZ -> gettext -> libxml2 -> XZ) ('gettext', '0.21', '', SYSTEM), + # use Autotools built with system toolchain as build dep to avoid conflicting ncurses dependency + ('Autotools', '20220317', '', SYSTEM), ('binutils', '2.37'), ] diff --git a/easybuild/easyconfigs/x/XZ/XZ-5.2.5-GCCcore-11.3.0.eb b/easybuild/easyconfigs/x/XZ/XZ-5.2.5-GCCcore-11.3.0.eb index c965c1e1efa..c24a57a45c3 100644 --- a/easybuild/easyconfigs/x/XZ/XZ-5.2.5-GCCcore-11.3.0.eb +++ b/easybuild/easyconfigs/x/XZ/XZ-5.2.5-GCCcore-11.3.0.eb @@ -14,18 +14,20 @@ toolchain = {'name': 'GCCcore', 'version': '11.3.0'} source_urls = ['https://tukaani.org/xz/'] sources = [SOURCELOWER_TAR_BZ2] patches = [ - 'XZ-5.2.5_compat-libs.patch', + 'xz-5.2.5_fix-symbols.patch', 'xz-5.2.5-cve-2022-1271.patch', ] checksums = [ - '5117f930900b341493827d63aa910ff5e011e0b994197c3b71c08a20228a42df', # xz-5.2.5.tar.bz2 - '9747c8fdf0b3c9501ac5479a807151d75b99bea7816a59565edea267230da195', # XZ-5.2.5_compat-libs.patch - '98c6cb1042284fe704ec30083f3fc87364ce9ed2ea51f62bbb0ee9d3448717ec', # xz-5.2.5-cve-2022-1271.patch + {'xz-5.2.5.tar.bz2': '5117f930900b341493827d63aa910ff5e011e0b994197c3b71c08a20228a42df'}, + {'xz-5.2.5_fix-symbols.patch': 'ce80545e7bd88466fd9561a8abb9da87e62ebc71a1531c909a492fa2844da6d0'}, + {'xz-5.2.5-cve-2022-1271.patch': '98c6cb1042284fe704ec30083f3fc87364ce9ed2ea51f62bbb0ee9d3448717ec'}, ] builddependencies = [ # use gettext built with system toolchain as build dep to avoid cyclic dependency (XZ -> gettext -> libxml2 -> XZ) ('gettext', '0.21', '', SYSTEM), + # use Autotools built with system toolchain as build dep to avoid conflicting ncurses dependency + ('Autotools', '20220317', '', SYSTEM), ('binutils', '2.38'), ] diff --git a/easybuild/easyconfigs/x/XZ/XZ-5.2.5-GCCcore-9.3.0.eb b/easybuild/easyconfigs/x/XZ/XZ-5.2.5-GCCcore-9.3.0.eb index 73a74e9e92a..f797b8b490a 100644 --- a/easybuild/easyconfigs/x/XZ/XZ-5.2.5-GCCcore-9.3.0.eb +++ b/easybuild/easyconfigs/x/XZ/XZ-5.2.5-GCCcore-9.3.0.eb @@ -11,18 +11,20 @@ toolchain = {'name': 'GCCcore', 'version': '9.3.0'} source_urls = ['https://tukaani.org/xz/'] sources = [SOURCELOWER_TAR_BZ2] patches = [ - 'XZ-5.2.5_compat-libs.patch', + 'xz-5.2.5_fix-symbols.patch', 'xz-5.2.5-cve-2022-1271.patch', ] checksums = [ - '5117f930900b341493827d63aa910ff5e011e0b994197c3b71c08a20228a42df', # xz-5.2.5.tar.bz2 - '9747c8fdf0b3c9501ac5479a807151d75b99bea7816a59565edea267230da195', # XZ-5.2.5_compat-libs.patch - '98c6cb1042284fe704ec30083f3fc87364ce9ed2ea51f62bbb0ee9d3448717ec', # xz-5.2.5-cve-2022-1271.patch + {'xz-5.2.5.tar.bz2': '5117f930900b341493827d63aa910ff5e011e0b994197c3b71c08a20228a42df'}, + {'xz-5.2.5_fix-symbols.patch': 'ce80545e7bd88466fd9561a8abb9da87e62ebc71a1531c909a492fa2844da6d0'}, + {'xz-5.2.5-cve-2022-1271.patch': '98c6cb1042284fe704ec30083f3fc87364ce9ed2ea51f62bbb0ee9d3448717ec'}, ] builddependencies = [ # use gettext built with system toolchain as build dep to avoid cyclic dependency (XZ -> gettext -> libxml2 -> XZ) ('gettext', '0.20.1', '', SYSTEM), + # use Autotools built with system toolchain as build dep to avoid conflicting ncurses dependency + ('Autotools', '20220317', '', SYSTEM), ('binutils', '2.34'), ] diff --git a/easybuild/easyconfigs/x/XZ/XZ-5.2.5_compat-libs.patch b/easybuild/easyconfigs/x/XZ/XZ-5.2.5_compat-libs.patch deleted file mode 100644 index 275f9dbe01d..00000000000 --- a/easybuild/easyconfigs/x/XZ/XZ-5.2.5_compat-libs.patch +++ /dev/null @@ -1,35 +0,0 @@ -Based on https://git.centos.org/rpms/xz/blob/c7/f/SOURCES/xz-5.2.2-compat-libs.patch -(which is a CentOS7-only patch) -but includes the XZ_5.2 symbols as the lack of these is causing problems in -other scenarios -(see https://github.com/easybuilders/easybuild-easyconfigs/issues/14991) - -diff -rupN xz-5.2.5/src/liblzma/liblzma.map xz-5.2.5_updated/src/liblzma/liblzma.map ---- xz-5.2.5/src/liblzma/liblzma.map 2020-03-17 14:28:54.000000000 +0000 -+++ xz-5.2.5_updated/src/liblzma/liblzma.map 2022-07-13 18:54:15.280407061 +0000 -@@ -95,14 +95,21 @@ global: - lzma_vli_size; - }; - --XZ_5.2 { -+XZ_5.1.2alpha { -+global: -+ lzma_stream_encoder_mt; -+ lzma_stream_encoder_mt_memusage; -+} XZ_5.0; -+ -+XZ_5.2.2 { - global: - lzma_block_uncomp_encode; - lzma_cputhreads; - lzma_get_progress; -- lzma_stream_encoder_mt; -- lzma_stream_encoder_mt_memusage; - - local: - *; --} XZ_5.0; -+} XZ_5.1.2alpha; -+ -+XZ_5.2 { -+} XZ_5.2.2; diff --git a/easybuild/easyconfigs/x/XZ/xz-5.2.5_fix-symbols.patch b/easybuild/easyconfigs/x/XZ/xz-5.2.5_fix-symbols.patch new file mode 100755 index 00000000000..fb5ac8f063d --- /dev/null +++ b/easybuild/easyconfigs/x/XZ/xz-5.2.5_fix-symbols.patch @@ -0,0 +1,681 @@ +From 31d80c6b261b24220776dfaeb8a04f80f80e0a24 Mon Sep 17 00:00:00 2001 +From: Lasse Collin +Date: Sun, 4 Sep 2022 23:23:00 +0300 +Subject: [PATCH] liblzma: Vaccinate against an ill patch from RHEL/CentOS 7. + +RHEL/CentOS 7 shipped with 5.1.2alpha, including the threaded +encoder that is behind #ifdef LZMA_UNSTABLE in the API headers. +In 5.1.2alpha these symbols are under XZ_5.1.2alpha in liblzma.map. +API/ABI compatibility tracking isn't done between development +releases so newer releases didn't have XZ_5.1.2alpha anymore. + +Later RHEL/CentOS 7 updated xz to 5.2.2 but they wanted to keep +the exported symbols compatible with 5.1.2alpha. After checking +the ABI changes it turned out that >= 5.2.0 ABI is backward +compatible with the threaded encoder functions from 5.1.2alpha +(but not vice versa as fixes and extensions to these functions +were made between 5.1.2alpha and 5.2.0). + +In RHEL/CentOS 7, XZ Utils 5.2.2 was patched with +xz-5.2.2-compat-libs.patch to modify liblzma.map: + + - XZ_5.1.2alpha was added with lzma_stream_encoder_mt and + lzma_stream_encoder_mt_memusage. This matched XZ Utils 5.1.2alpha. + + - XZ_5.2 was replaced with XZ_5.2.2. It is clear that this was + an error; the intention was to keep using XZ_5.2 (XZ_5.2.2 + has never been used in XZ Utils). So XZ_5.2.2 lists all + symbols that were listed under XZ_5.2 before the patch. + lzma_stream_encoder_mt and _mt_memusage are included too so + they are listed both here and under XZ_5.1.2alpha. + +The patch didn't add any __asm__(".symver ...") lines to the .c +files. Thus the resulting liblzma.so exports the threaded encoder +functions under XZ_5.1.2alpha only. Listing the two functions +also under XZ_5.2.2 in liblzma.map has no effect without +matching .symver lines. + +The lack of XZ_5.2 in RHEL/CentOS 7 means that binaries linked +against unpatched XZ Utils 5.2.x won't run on RHEL/CentOS 7. +This is unfortunate but this alone isn't too bad as the problem +is contained within RHEL/CentOS 7 and doesn't affect users +of other distributions. It could also be fixed internally in +RHEL/CentOS 7. + +The second problem is more serious: In XZ Utils 5.2.2 the API +headers don't have #ifdef LZMA_UNSTABLE for obvious reasons. +This is true in RHEL/CentOS 7 version too. Thus now programs +using new APIs can be compiled without an extra #define. However, +the programs end up depending on symbol version XZ_5.1.2alpha +(and possibly also XZ_5.2.2) instead of XZ_5.2 as they would +with an unpatched XZ Utils 5.2.2. This means that such binaries +won't run on other distributions shipping XZ Utils >= 5.2.0 as +they don't provide XZ_5.1.2alpha or XZ_5.2.2; they only provide +XZ_5.2 (and XZ_5.0). (This includes RHEL/CentOS 8 as the patch +luckily isn't included there anymore with XZ Utils 5.2.4.) + +Binaries built by RHEL/CentOS 7 users get distributed and then +people wonder why they don't run on some other distribution. +Seems that people have found out about the patch and been copying +it to some build scripts, seemingly curing the symptoms but +actually spreading the illness further and outside RHEL/CentOS 7. + +The ill patch seems to be from late 2016 (RHEL 7.3) and in 2017 it +had spread at least to EasyBuild. I heard about the events only +recently. :-( + +This commit splits liblzma.map into two versions: one for +GNU/Linux and another for other OSes that can use symbol versioning +(FreeBSD, Solaris, maybe others). The Linux-specific file and the +matching additions to .c files add full compatibility with binaries +that have been built against a RHEL/CentOS-patched liblzma. Builds +for OSes other than GNU/Linux won't get the vaccine as they should +be immune to the problem (I really hope that no build script uses +the RHEL/CentOS 7 patch outside GNU/Linux). + +The RHEL/CentOS compatibility symbols XZ_5.1.2alpha and XZ_5.2.2 +are intentionally put *after* XZ_5.2 in liblzma_linux.map. This way +if one forgets to #define HAVE_SYMBOL_VERSIONS_LINUX when building, +the resulting liblzma.so.5 will have lzma_stream_encoder_mt@@XZ_5.2 +since XZ_5.2 {...} is the first one that lists that function. +Without HAVE_SYMBOL_VERSIONS_LINUX @XZ_5.1.2alpha and @XZ_5.2.2 +will be missing but that's still a minor problem compared to +only having lzma_stream_encoder_mt@@XZ_5.1.2alpha! + +The "local: *;" line was moved to XZ_5.0 so that it doesn't need +to be moved around. It doesn't matter where it is put. + +Having two similar liblzma_*.map files is a bit silly as it is, +at least for now, easily possible to generate the generic one +from the Linux-specific file. But that adds extra steps and +increases the risk of mistakes when supporting more than one +build system. So I rather maintain two files in parallel and let +validate_map.sh check that they are in sync when "make mydist" +is run. + +This adds .symver lines for lzma_stream_encoder_mt@XZ_5.2.2 and +lzma_stream_encoder_mt_memusage@XZ_5.2.2 even though these +weren't exported by RHEL/CentOS 7 (only @@XZ_5.1.2alpha was +for these two). I added these anyway because someone might +misunderstand the RHEL/CentOS 7 patch and think that @XZ_5.2.2 +(@@XZ_5.2.2) versions were exported too. + +At glance one could suggest using __typeof__ to copy the function +prototypes when making aliases. However, this doesn't work trivially +because __typeof__ won't copy attributes (lzma_nothrow, lzma_pure) +and it won't change symbol visibility from hidden to default (done +by LZMA_API()). Attributes could be copied with __copy__ attribute +but that needs GCC 9 and a fallback method would be needed anyway. + +This uses __symver__ attribute with GCC >= 10 and +__asm__(".symver ...") with everything else. The attribute method +is required for LTO (-flto) support with GCC. Using -flto with +GCC older than 10 is now broken on GNU/Linux and will not be fixed +(can silently result in a broken liblzma build that has dangerously +incorrect symbol versions). LTO builds with Clang seem to work +with the traditional __asm__(".symver ...") method. + +Thanks to Boud Roukema for reporting the problem and discussing +the details and testing the fix. +--- + configure.ac | 23 +++- + src/liblzma/Makefile.am | 10 +- + src/liblzma/common/block_buffer_encoder.c | 18 +++ + src/liblzma/common/common.c | 14 ++ + src/liblzma/common/common.h | 28 ++++ + src/liblzma/common/hardware_cputhreads.c | 12 ++ + src/liblzma/common/stream_encoder_mt.c | 42 ++++++ + .../{liblzma.map => liblzma_generic.map} | 6 +- + src/liblzma/liblzma_linux.map | 123 ++++++++++++++++++ + src/liblzma/validate_map.sh | 113 ++++++++++++++-- + 10 files changed, 374 insertions(+), 15 deletions(-) + rename src/liblzma/{liblzma.map => liblzma_generic.map} (100%) + create mode 100644 src/liblzma/liblzma_linux.map + +diff --git a/configure.ac b/configure.ac +index 7945934..0167c09 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -493,7 +493,28 @@ if test "x$enable_symbol_versions" = xauto; then + esac + fi + AC_MSG_RESULT([$enable_symbol_versions]) +-AM_CONDITIONAL([COND_SYMVERS], [test "x$enable_symbol_versions" = xyes]) ++ ++# There are two variants for symbol versioning. ++# See src/liblzma/validate_map.sh for details. ++if test "x$enable_symbol_versions" = xyes; then ++ case $host_os in ++ linux*) ++ enable_symbol_versions=linux ++ AC_DEFINE([HAVE_SYMBOL_VERSIONS_LINUX], [1], ++ [Define to 1 to if GNU/Linux-specific details ++ are wanted for symbol versioning. This must ++ be used together with liblzma_linux.map.]) ++ ;; ++ *) ++ enable_symbol_versions=generic ++ ;; ++ esac ++fi ++ ++AM_CONDITIONAL([COND_SYMVERS_LINUX], ++ [test "x$enable_symbol_versions" = xlinux]) ++AM_CONDITIONAL([COND_SYMVERS_GENERIC], ++ [test "x$enable_symbol_versions" = xgeneric]) + + + ############## +diff --git a/src/liblzma/Makefile.am b/src/liblzma/Makefile.am +index ae8967c..cf2144d 100644 +--- a/src/liblzma/Makefile.am ++++ b/src/liblzma/Makefile.am +@@ -26,10 +26,14 @@ liblzma_la_CPPFLAGS = \ + -DTUKLIB_SYMBOL_PREFIX=lzma_ + liblzma_la_LDFLAGS = -no-undefined -version-info 7:6:2 + +-EXTRA_DIST += liblzma.map validate_map.sh +-if COND_SYMVERS ++EXTRA_DIST += liblzma_generic.map liblzma_linux.map validate_map.sh ++if COND_SYMVERS_GENERIC + liblzma_la_LDFLAGS += \ +- -Wl,--version-script=$(top_srcdir)/src/liblzma/liblzma.map ++ -Wl,--version-script=$(top_srcdir)/src/liblzma/liblzma_generic.map ++endif ++if COND_SYMVERS_LINUX ++liblzma_la_LDFLAGS += \ ++ -Wl,--version-script=$(top_srcdir)/src/liblzma/liblzma_linux.map + endif + + liblzma_la_SOURCES += ../common/tuklib_physmem.c +diff --git a/src/liblzma/common/block_buffer_encoder.c b/src/liblzma/common/block_buffer_encoder.c +index 39e263a..a47342e 100644 +--- a/src/liblzma/common/block_buffer_encoder.c ++++ b/src/liblzma/common/block_buffer_encoder.c +@@ -325,6 +325,24 @@ lzma_block_buffer_encode(lzma_block *block, const lzma_allocator *allocator, + } + + ++#ifdef HAVE_SYMBOL_VERSIONS_LINUX ++// This is for compatibility with binaries linked against liblzma that ++// has been patched with xz-5.2.2-compat-libs.patch from RHEL/CentOS 7. ++LZMA_SYMVER_API("lzma_block_uncomp_encode@XZ_5.2.2", ++ lzma_ret, lzma_block_uncomp_encode_522)(lzma_block *block, ++ const uint8_t *in, size_t in_size, ++ uint8_t *out, size_t *out_pos, size_t out_size) ++ lzma_nothrow lzma_attr_warn_unused_result ++ __attribute__((__alias__("lzma_block_uncomp_encode_52"))); ++ ++LZMA_SYMVER_API("lzma_block_uncomp_encode@@XZ_5.2", ++ lzma_ret, lzma_block_uncomp_encode_52)(lzma_block *block, ++ const uint8_t *in, size_t in_size, ++ uint8_t *out, size_t *out_pos, size_t out_size) ++ lzma_nothrow lzma_attr_warn_unused_result; ++ ++#define lzma_block_uncomp_encode lzma_block_uncomp_encode_52 ++#endif + extern LZMA_API(lzma_ret) + lzma_block_uncomp_encode(lzma_block *block, + const uint8_t *in, size_t in_size, +diff --git a/src/liblzma/common/common.c b/src/liblzma/common/common.c +index cf714e5..10fc884 100644 +--- a/src/liblzma/common/common.c ++++ b/src/liblzma/common/common.c +@@ -366,6 +366,20 @@ lzma_end(lzma_stream *strm) + } + + ++#ifdef HAVE_SYMBOL_VERSIONS_LINUX ++// This is for compatibility with binaries linked against liblzma that ++// has been patched with xz-5.2.2-compat-libs.patch from RHEL/CentOS 7. ++LZMA_SYMVER_API("lzma_get_progress@XZ_5.2.2", ++ void, lzma_get_progress_522)(lzma_stream *strm, ++ uint64_t *progress_in, uint64_t *progress_out) lzma_nothrow ++ __attribute__((__alias__("lzma_get_progress_52"))); ++ ++LZMA_SYMVER_API("lzma_get_progress@@XZ_5.2", ++ void, lzma_get_progress_52)(lzma_stream *strm, ++ uint64_t *progress_in, uint64_t *progress_out) lzma_nothrow; ++ ++#define lzma_get_progress lzma_get_progress_52 ++#endif + extern LZMA_API(void) + lzma_get_progress(lzma_stream *strm, + uint64_t *progress_in, uint64_t *progress_out) +diff --git a/src/liblzma/common/common.h b/src/liblzma/common/common.h +index b3d3b7a..6b659c6 100644 +--- a/src/liblzma/common/common.h ++++ b/src/liblzma/common/common.h +@@ -34,6 +34,34 @@ + + #include "lzma.h" + ++#ifdef HAVE_SYMBOL_VERSIONS_LINUX ++// To keep link-time optimization (LTO, -flto) working with GCC, ++// the __symver__ attribute must be used instead of __asm__(".symver ..."). ++// Otherwise the symbol versions may be lost, resulting in broken liblzma ++// that has wrong default versions in the exported symbol list! ++// The attribute was added in GCC 10; LTO with older GCC is not supported. ++// ++// To keep -Wmissing-prototypes happy, use LZMA_SYMVER_API only with function ++// declarations (including those with __alias__ attribute) and LZMA_API with ++// the function definitions. This means a little bit of silly copy-and-paste ++// between declarations and definitions though. ++// ++// As of GCC 12.2, the __symver__ attribute supports only @ and @@ but the ++// very convenient @@@ isn't supported (it's supported by GNU assembler ++// since 2000). When using @@ instead of @@@, the internal name must not be ++// the same as the external name to avoid problems in some situations. This ++// is why "#define foo_52 foo" is needed for the default symbol versions. ++# if TUKLIB_GNUC_REQ(10, 0) ++# define LZMA_SYMVER_API(extnamever, type, intname) \ ++ extern __attribute__((__symver__(extnamever))) \ ++ LZMA_API(type) intname ++# else ++# define LZMA_SYMVER_API(extnamever, type, intname) \ ++ __asm__(".symver " #intname "," extnamever); \ ++ extern LZMA_API(type) intname ++# endif ++#endif ++ + // These allow helping the compiler in some often-executed branches, whose + // result is almost always the same. + #ifdef __GNUC__ +diff --git a/src/liblzma/common/hardware_cputhreads.c b/src/liblzma/common/hardware_cputhreads.c +index f468366..5d246d2 100644 +--- a/src/liblzma/common/hardware_cputhreads.c ++++ b/src/liblzma/common/hardware_cputhreads.c +@@ -15,6 +15,18 @@ + #include "tuklib_cpucores.h" + + ++#ifdef HAVE_SYMBOL_VERSIONS_LINUX ++// This is for compatibility with binaries linked against liblzma that ++// has been patched with xz-5.2.2-compat-libs.patch from RHEL/CentOS 7. ++LZMA_SYMVER_API("lzma_cputhreads@XZ_5.2.2", ++ uint32_t, lzma_cputhreads_522)(void) lzma_nothrow ++ __attribute__((__alias__("lzma_cputhreads_52"))); ++ ++LZMA_SYMVER_API("lzma_cputhreads@@XZ_5.2", ++ uint32_t, lzma_cputhreads_52)(void) lzma_nothrow; ++ ++#define lzma_cputhreads lzma_cputhreads_52 ++#endif + extern LZMA_API(uint32_t) + lzma_cputhreads(void) + { +diff --git a/src/liblzma/common/stream_encoder_mt.c b/src/liblzma/common/stream_encoder_mt.c +index 2ab4d04..819b227 100644 +--- a/src/liblzma/common/stream_encoder_mt.c ++++ b/src/liblzma/common/stream_encoder_mt.c +@@ -1078,6 +1078,31 @@ stream_encoder_mt_init(lzma_next_coder *next, const lzma_allocator *allocator, + } + + ++#ifdef HAVE_SYMBOL_VERSIONS_LINUX ++// These are for compatibility with binaries linked against liblzma that ++// has been patched with xz-5.2.2-compat-libs.patch from RHEL/CentOS 7. ++// Actually that patch didn't create lzma_stream_encoder_mt@XZ_5.2.2 ++// but it has been added here anyway since someone might misread the ++// RHEL patch and think both @XZ_5.1.2alpha and @XZ_5.2.2 exist. ++LZMA_SYMVER_API("lzma_stream_encoder_mt@XZ_5.1.2alpha", ++ lzma_ret, lzma_stream_encoder_mt_512a)( ++ lzma_stream *strm, const lzma_mt *options) ++ lzma_nothrow lzma_attr_warn_unused_result ++ __attribute__((__alias__("lzma_stream_encoder_mt_52"))); ++ ++LZMA_SYMVER_API("lzma_stream_encoder_mt@XZ_5.2.2", ++ lzma_ret, lzma_stream_encoder_mt_522)( ++ lzma_stream *strm, const lzma_mt *options) ++ lzma_nothrow lzma_attr_warn_unused_result ++ __attribute__((__alias__("lzma_stream_encoder_mt_52"))); ++ ++LZMA_SYMVER_API("lzma_stream_encoder_mt@@XZ_5.2", ++ lzma_ret, lzma_stream_encoder_mt_52)( ++ lzma_stream *strm, const lzma_mt *options) ++ lzma_nothrow lzma_attr_warn_unused_result; ++ ++#define lzma_stream_encoder_mt lzma_stream_encoder_mt_52 ++#endif + extern LZMA_API(lzma_ret) + lzma_stream_encoder_mt(lzma_stream *strm, const lzma_mt *options) + { +@@ -1093,6 +1118,23 @@ lzma_stream_encoder_mt(lzma_stream *strm, const lzma_mt *options) + } + + ++#ifdef HAVE_SYMBOL_VERSIONS_LINUX ++LZMA_SYMVER_API("lzma_stream_encoder_mt_memusage@XZ_5.1.2alpha", ++ uint64_t, lzma_stream_encoder_mt_memusage_512a)( ++ const lzma_mt *options) lzma_nothrow lzma_attr_pure ++ __attribute__((__alias__("lzma_stream_encoder_mt_memusage_52"))); ++ ++LZMA_SYMVER_API("lzma_stream_encoder_mt_memusage@XZ_5.2.2", ++ uint64_t, lzma_stream_encoder_mt_memusage_522)( ++ const lzma_mt *options) lzma_nothrow lzma_attr_pure ++ __attribute__((__alias__("lzma_stream_encoder_mt_memusage_52"))); ++ ++LZMA_SYMVER_API("lzma_stream_encoder_mt_memusage@@XZ_5.2", ++ uint64_t, lzma_stream_encoder_mt_memusage_52)( ++ const lzma_mt *options) lzma_nothrow lzma_attr_pure; ++ ++#define lzma_stream_encoder_mt_memusage lzma_stream_encoder_mt_memusage_52 ++#endif + // This function name is a monster but it's consistent with the older + // monster names. :-( 31 chars is the max that C99 requires so in that + // sense it's not too long. ;-) +diff --git a/src/liblzma/liblzma.map b/src/liblzma/liblzma_generic.map +similarity index 100% +rename from src/liblzma/liblzma.map +rename to src/liblzma/liblzma_generic.map +index f53a4ea..8cca05b 100644 +--- a/src/liblzma/liblzma.map ++++ b/src/liblzma/liblzma_generic.map +@@ -93,6 +93,9 @@ global: + lzma_vli_decode; + lzma_vli_encode; + lzma_vli_size; ++ ++local: ++ *; + }; + + XZ_5.2 { +@@ -102,7 +105,4 @@ global: + lzma_get_progress; + lzma_stream_encoder_mt; + lzma_stream_encoder_mt_memusage; +- +-local: +- *; + } XZ_5.0; +diff --git a/src/liblzma/liblzma_linux.map b/src/liblzma/liblzma_linux.map +new file mode 100644 +index 0000000..4be882c +--- /dev/null ++++ b/src/liblzma/liblzma_linux.map +@@ -0,0 +1,123 @@ ++XZ_5.0 { ++global: ++ lzma_alone_decoder; ++ lzma_alone_encoder; ++ lzma_auto_decoder; ++ lzma_block_buffer_bound; ++ lzma_block_buffer_decode; ++ lzma_block_buffer_encode; ++ lzma_block_compressed_size; ++ lzma_block_decoder; ++ lzma_block_encoder; ++ lzma_block_header_decode; ++ lzma_block_header_encode; ++ lzma_block_header_size; ++ lzma_block_total_size; ++ lzma_block_unpadded_size; ++ lzma_check_is_supported; ++ lzma_check_size; ++ lzma_code; ++ lzma_crc32; ++ lzma_crc64; ++ lzma_easy_buffer_encode; ++ lzma_easy_decoder_memusage; ++ lzma_easy_encoder; ++ lzma_easy_encoder_memusage; ++ lzma_end; ++ lzma_filter_decoder_is_supported; ++ lzma_filter_encoder_is_supported; ++ lzma_filter_flags_decode; ++ lzma_filter_flags_encode; ++ lzma_filter_flags_size; ++ lzma_filters_copy; ++ lzma_filters_update; ++ lzma_get_check; ++ lzma_index_append; ++ lzma_index_block_count; ++ lzma_index_buffer_decode; ++ lzma_index_buffer_encode; ++ lzma_index_cat; ++ lzma_index_checks; ++ lzma_index_decoder; ++ lzma_index_dup; ++ lzma_index_encoder; ++ lzma_index_end; ++ lzma_index_file_size; ++ lzma_index_hash_append; ++ lzma_index_hash_decode; ++ lzma_index_hash_end; ++ lzma_index_hash_init; ++ lzma_index_hash_size; ++ lzma_index_init; ++ lzma_index_iter_init; ++ lzma_index_iter_locate; ++ lzma_index_iter_next; ++ lzma_index_iter_rewind; ++ lzma_index_memusage; ++ lzma_index_memused; ++ lzma_index_size; ++ lzma_index_stream_count; ++ lzma_index_stream_flags; ++ lzma_index_stream_padding; ++ lzma_index_stream_size; ++ lzma_index_total_size; ++ lzma_index_uncompressed_size; ++ lzma_lzma_preset; ++ lzma_memlimit_get; ++ lzma_memlimit_set; ++ lzma_memusage; ++ lzma_mf_is_supported; ++ lzma_mode_is_supported; ++ lzma_physmem; ++ lzma_properties_decode; ++ lzma_properties_encode; ++ lzma_properties_size; ++ lzma_raw_buffer_decode; ++ lzma_raw_buffer_encode; ++ lzma_raw_decoder; ++ lzma_raw_decoder_memusage; ++ lzma_raw_encoder; ++ lzma_raw_encoder_memusage; ++ lzma_stream_buffer_bound; ++ lzma_stream_buffer_decode; ++ lzma_stream_buffer_encode; ++ lzma_stream_decoder; ++ lzma_stream_encoder; ++ lzma_stream_flags_compare; ++ lzma_stream_footer_decode; ++ lzma_stream_footer_encode; ++ lzma_stream_header_decode; ++ lzma_stream_header_encode; ++ lzma_version_number; ++ lzma_version_string; ++ lzma_vli_decode; ++ lzma_vli_encode; ++ lzma_vli_size; ++ ++local: ++ *; ++}; ++ ++XZ_5.2 { ++global: ++ lzma_block_uncomp_encode; ++ lzma_cputhreads; ++ lzma_get_progress; ++ lzma_stream_encoder_mt; ++ lzma_stream_encoder_mt_memusage; ++} XZ_5.0; ++ ++XZ_5.1.2alpha { ++global: ++ lzma_stream_encoder_mt; ++ lzma_stream_encoder_mt_memusage; ++} XZ_5.0; ++ ++XZ_5.2.2 { ++global: ++ lzma_block_uncomp_encode; ++ lzma_cputhreads; ++ lzma_get_progress; ++ lzma_stream_encoder_mt; ++ lzma_stream_encoder_mt_memusage; ++} XZ_5.1.2alpha; +diff --git a/src/liblzma/validate_map.sh b/src/liblzma/validate_map.sh +index 3aee466..2bf6f8b 100644 +--- a/src/liblzma/validate_map.sh ++++ b/src/liblzma/validate_map.sh +@@ -2,7 +2,79 @@ + + ############################################################################### + # +-# Check liblzma.map for certain types of errors ++# Check liblzma_*.map for certain types of errors. ++# ++# liblzma_generic.map is for FreeBSD and Solaris and possibly others ++# except GNU/Linux. ++# ++# liblzma_linux.map is for GNU/Linux only. This and the matching extra code ++# in the .c files make liblzma >= 5.2.7 compatible with binaries that were ++# linked against ill-patched liblzma in RHEL/CentOS 7. By providing the ++# compatibility in official XZ Utils release will hopefully prevent people ++# from further copying the broken patch to other places when they want ++# compatibility with binaries linked on RHEL/CentOS 7. The long version ++# of the story: ++# ++# RHEL/CentOS 7 shipped with 5.1.2alpha, including the threaded ++# encoder that is behind #ifdef LZMA_UNSTABLE in the API headers. ++# In 5.1.2alpha these symbols are under XZ_5.1.2alpha in liblzma.map. ++# API/ABI compatibility tracking isn't done between development ++# releases so newer releases didn't have XZ_5.1.2alpha anymore. ++# ++# Later RHEL/CentOS 7 updated xz to 5.2.2 but they wanted to keep ++# the exported symbols compatible with 5.1.2alpha. After checking ++# the ABI changes it turned out that >= 5.2.0 ABI is backward ++# compatible with the threaded encoder functions from 5.1.2alpha ++# (but not vice versa as fixes and extensions to these functions ++# were made between 5.1.2alpha and 5.2.0). ++# ++# In RHEL/CentOS 7, XZ Utils 5.2.2 was patched with ++# xz-5.2.2-compat-libs.patch to modify liblzma.map: ++# ++# - XZ_5.1.2alpha was added with lzma_stream_encoder_mt and ++# lzma_stream_encoder_mt_memusage. This matched XZ Utils 5.1.2alpha. ++# ++# - XZ_5.2 was replaced with XZ_5.2.2. It is clear that this was ++# an error; the intention was to keep using XZ_5.2 (XZ_5.2.2 ++# has never been used in XZ Utils). So XZ_5.2.2 lists all ++# symbols that were listed under XZ_5.2 before the patch. ++# lzma_stream_encoder_mt and _mt_memusage are included too so ++# they are listed both here and under XZ_5.1.2alpha. ++# ++# The patch didn't add any __asm__(".symver ...") lines to the .c ++# files. Thus the resulting liblzma.so exports the threaded encoder ++# functions under XZ_5.1.2alpha only. Listing the two functions ++# also under XZ_5.2.2 in liblzma.map has no effect without ++# matching .symver lines. ++# ++# The lack of XZ_5.2 in RHEL/CentOS 7 means that binaries linked ++# against unpatched XZ Utils 5.2.x won't run on RHEL/CentOS 7. ++# This is unfortunate but this alone isn't too bad as the problem ++# is contained within RHEL/CentOS 7 and doesn't affect users ++# of other distributions. It could also be fixed internally in ++# RHEL/CentOS 7. ++# ++# The second problem is more serious: In XZ Utils 5.2.2 the API ++# headers don't have #ifdef LZMA_UNSTABLE for obvious reasons. ++# This is true in RHEL/CentOS 7 version too. Thus now programs ++# using new APIs can be compiled without an extra #define. However, ++# the programs end up depending on symbol version XZ_5.1.2alpha ++# (and possibly also XZ_5.2.2) instead of XZ_5.2 as they would ++# with an unpatched XZ Utils 5.2.2. This means that such binaries ++# won't run on other distributions shipping XZ Utils >= 5.2.0 as ++# they don't provide XZ_5.1.2alpha or XZ_5.2.2; they only provide ++# XZ_5.2 (and XZ_5.0). (This includes RHEL/CentOS 8 as the patch ++# luckily isn't included there anymore with XZ Utils 5.2.4.) ++# ++# Binaries built by RHEL/CentOS 7 users get distributed and then ++# people wonder why they don't run on some other distribution. ++# Seems that people have found out about the patch and been copying ++# it to some build scripts, seemingly curing the symptoms but ++# actually spreading the illness further and outside RHEL/CentOS 7. ++# Adding compatibility in an official XZ Utils release should work ++# as a vaccine against this ill patch and stop it from spreading. ++# The vaccine is kept GNU/Linux-only as other OSes should be immune ++# (hopefully it hasn't spread via some build script to other OSes). + # + # Author: Lasse Collin + # +@@ -18,11 +90,11 @@ STATUS=0 + + cd "$(dirname "$0")" + +-# Get the list of symbols that aren't defined in liblzma.map. ++# Get the list of symbols that aren't defined in liblzma_generic.map. + SYMS=$(sed -n 's/^extern LZMA_API([^)]*) \([a-z0-9_]*\)(.*$/\1;/p' \ + api/lzma/*.h \ + | sort \ +- | grep -Fve "$(sed '/[{}:*]/d;/^$/d;s/^ //' liblzma.map)") ++ | grep -Fve "$(sed '/[{}:*]/d;/^$/d;s/^ //' liblzma_generic.map)") + + # Check that there are no old alpha or beta versions listed. + VER=$(cd ../.. && sh build-aux/version.sh) +@@ -30,21 +102,41 @@ NAMES= + case $VER in + *alpha | *beta) + NAMES=$(sed -n 's/^.*XZ_\([^ ]*\)\(alpha\|beta\) .*$/\1\2/p' \ +- liblzma.map | grep -Fv "$VER") ++ liblzma_generic.map | grep -Fv "$VER") + ;; + esac + + # Check for duplicate lines. It can catch missing dependencies. +-DUPS=$(sort liblzma.map | sed '/^$/d;/^global:$/d' | uniq -d) ++DUPS=$(sort liblzma_generic.map | sed '/^$/d;/^global:$/d' | uniq -d) ++ ++# Check that liblzma_linux.map is in sync with liblzma_generic.map. ++# The RHEL/CentOS 7 compatibility symbols are in a fixed location ++# so it makes it easy to remove them for comparison with liblzma_generic.map. ++# ++# NOTE: Putting XZ_5.2 before the compatibility symbols XZ_5.1.2alpha ++# and XZ_5.2.2 in liblzma_linux.map is important: If liblzma_linux.map is ++# incorrectly used without #define HAVE_SYMBOL_VERSIONS_LINUX, only the first ++# occurrence of each function name will be used from liblzma_linux.map; ++# the rest are ignored by the linker. Thus having XZ_5.2 before the ++# compatibility symbols means that @@XZ_5.2 will be used for the symbols ++# listed under XZ_5.2 {...} and the same function names later in ++# the file under XZ_5.1.2alpha {...} and XZ_5.2.2 {...} will be ++# ignored (@XZ_5.1.2alpha or @XZ_5.2.2 won't be added at all when ++# the #define HAVE_SYMBOL_VERSIONS_LINUX isn't used). ++IN_SYNC= ++if ! sed '109,123d' liblzma_linux.map \ ++ | cmp -s - liblzma_generic.map; then ++ IN_SYNC=no ++fi + + # Print error messages if needed. +-if test -n "$SYMS$NAMES$DUPS"; then ++if test -n "$SYMS$NAMES$DUPS$IN_SYNC"; then + echo +- echo 'validate_map.sh found problems from liblzma.map:' ++ echo 'validate_map.sh found problems from liblzma_*.map:' + echo + + if test -n "$SYMS"; then +- echo 'liblzma.map lacks the following symbols:' ++ echo 'liblzma_generic.map lacks the following symbols:' + echo "$SYMS" + echo + fi +@@ -61,6 +153,11 @@ if test -n "$SYMS$NAMES$DUPS"; then + echo + fi + ++ if test -n "$IN_SYNC"; then ++ echo "liblzma_generic.map and liblzma_linux.map aren't in sync" ++ echo ++ fi ++ + STATUS=1 + fi + +-- +2.20.1 + diff --git a/easybuild/easyconfigs/x/Xerces-C++/Xerces-C++-3.2.4-GCCcore-11.3.0.eb b/easybuild/easyconfigs/x/Xerces-C++/Xerces-C++-3.2.4-GCCcore-11.3.0.eb new file mode 100644 index 00000000000..a35a5c214fe --- /dev/null +++ b/easybuild/easyconfigs/x/Xerces-C++/Xerces-C++-3.2.4-GCCcore-11.3.0.eb @@ -0,0 +1,39 @@ +easyblock = 'CMakeMake' + +name = 'Xerces-C++' +version = '3.2.4' + +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': '11.3.0'} + +source_urls = ['https://archive.apache.org/dist/xerces/c/%(version_major)s/sources/'] +sources = ['xerces-c-%(version)s.tar.gz'] +checksums = ['3d8ec1c7f94e38fee0e4ca5ad1e1d9db23cbf3a10bba626f6b4afa2dedafe5ab'] + +builddependencies = [ + ('binutils', '2.38'), + ('pkgconf', '1.8.0'), + ('CMake', '3.23.1'), +] + +dependencies = [ + ('cURL', '7.83.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/Xerces-C++/Xerces-C++-3.2.4-GCCcore-12.3.0.eb b/easybuild/easyconfigs/x/Xerces-C++/Xerces-C++-3.2.4-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..8953e54f312 --- /dev/null +++ b/easybuild/easyconfigs/x/Xerces-C++/Xerces-C++-3.2.4-GCCcore-12.3.0.eb @@ -0,0 +1,39 @@ +easyblock = 'CMakeMake' + +name = 'Xerces-C++' +version = '3.2.4' + +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': '12.3.0'} + +source_urls = ['https://archive.apache.org/dist/xerces/c/%(version_major)s/sources/'] +sources = ['xerces-c-%(version)s.tar.gz'] +checksums = ['3d8ec1c7f94e38fee0e4ca5ad1e1d9db23cbf3a10bba626f6b4afa2dedafe5ab'] + +builddependencies = [ + ('pkgconf', '1.9.5'), + ('binutils', '2.40'), + ('CMake', '3.26.3'), +] + +dependencies = [ + ('cURL', '8.0.1'), +] + +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-3.1.2-GCCcore-12.2.0.eb b/easybuild/easyconfigs/x/XlsxWriter/XlsxWriter-3.1.2-GCCcore-12.2.0.eb new file mode 100644 index 00000000000..0a2285a563d --- /dev/null +++ b/easybuild/easyconfigs/x/XlsxWriter/XlsxWriter-3.1.2-GCCcore-12.2.0.eb @@ -0,0 +1,34 @@ +easyblock = 'PythonPackage' + +name = 'XlsxWriter' +version = '3.1.2' + +homepage = 'https://xlsxwriter.readthedocs.io/' +description = "A Python module for creating Excel XLSX files" + +toolchain = {'name': 'GCCcore', 'version': '12.2.0'} + +sources = [SOURCE_TAR_GZ] +checksums = ['78751099a770273f1c98b8d6643351f68f98ae8e6acf9d09d37dc6798f8cd3de'] + +builddependencies = [ + ('binutils', '2.39'), +] + +dependencies = [ + ('Python', '3.10.8'), +] + +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/xarray/xarray-2023.4.2-gfbf-2022b.eb b/easybuild/easyconfigs/x/xarray/xarray-2023.4.2-gfbf-2022b.eb new file mode 100644 index 00000000000..a8020c97ff4 --- /dev/null +++ b/easybuild/easyconfigs/x/xarray/xarray-2023.4.2-gfbf-2022b.eb @@ -0,0 +1,27 @@ +easyblock = 'PythonBundle' + +name = 'xarray' +version = '2023.4.2' + +homepage = 'https://github.com/pydata/xarray' +description = """xarray (formerly xray) is an open source project and Python package that aims to bring + the labeled data power of pandas to the physical sciences, by providing N-dimensional variants of the + core pandas data structures.""" + +toolchain = {'name': 'gfbf', 'version': '2022b'} + +dependencies = [ + ('Python', '3.10.8'), + ('SciPy-bundle', '2023.02'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + (name, version, { + 'checksums': ['958ec588220352343b910cbc05e54e7ab54d4e8c1c3a7783d6bfe7549d0bd0d2'], + }), +] + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/x/xclip/xclip-0.13-GCCcore-11.3.0.eb b/easybuild/easyconfigs/x/xclip/xclip-0.13-GCCcore-11.3.0.eb new file mode 100644 index 00000000000..39d331fbed4 --- /dev/null +++ b/easybuild/easyconfigs/x/xclip/xclip-0.13-GCCcore-11.3.0.eb @@ -0,0 +1,31 @@ +easyblock = 'ConfigureMake' + +name = 'xclip' +version = '0.13' + +homepage = 'https://github.com/astrand/xclip' +description = """xclip is a command line utility that is designed to run on any system with an X11 implementation.""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +source_urls = ['https://github.com/astrand/xclip/archive/refs/tags/'] +sources = ['%(version)s.tar.gz'] +checksums = ['ca5b8804e3c910a66423a882d79bf3c9450b875ac8528791fb60ec9de667f758'] + +builddependencies = [ + ('Autotools', '20220317'), + ('binutils', '2.38'), +] + +dependencies = [('X11', '20220504')] + +preconfigopts = "autoreconf -f -i && " + +sanity_check_paths = { + 'files': ['bin/xclip-%s' % local_util for local_util in ['copyfile', 'cutfile', 'pastefile']], + 'dirs': ['share'] +} + +sanity_check_commands = ['xclip -version'] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/x/xdotool/xdotool-3.20211022.1-GCCcore-11.3.0.eb b/easybuild/easyconfigs/x/xdotool/xdotool-3.20211022.1-GCCcore-11.3.0.eb new file mode 100644 index 00000000000..88997adfa1d --- /dev/null +++ b/easybuild/easyconfigs/x/xdotool/xdotool-3.20211022.1-GCCcore-11.3.0.eb @@ -0,0 +1,32 @@ +easyblock = 'ConfigureMake' + +name = 'xdotool' +version = '3.20211022.1' + +homepage = 'https://github.com/jordansissel/xdotool' +description = """xdotool lets you simulate keyboard input and mouse activity, move and resize windows, etc. + It does this using X11’s XTEST extension and other Xlib functions. +""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +source_urls = ['https://github.com/jordansissel/xdotool/archive/refs/tags/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['82b15a944a5e82fee15e0f6116bd9f642bc3d0bb6989fc0ca5ad9dfe35de0847'] + +skipsteps = ['configure'] + +installopts = 'PREFIX=%(installdir)s' + +builddependencies = [('binutils', '2.38')] + +dependencies = [('X11', '20220504')] + +sanity_check_paths = { + 'files': ['bin/xdotool', 'include/xdo.h', 'lib/libxdo.%s' % SHLIB_EXT], + 'dirs': ['man'] +} + +sanity_check_commands = ['xdotool --help'] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/x/xorg-macros/xorg-macros-1.20.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/x/xorg-macros/xorg-macros-1.20.0-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..0354254573f --- /dev/null +++ b/easybuild/easyconfigs/x/xorg-macros/xorg-macros-1.20.0-GCCcore-12.3.0.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'xorg-macros' +version = '1.20.0' + +homepage = 'https://gitlab.freedesktop.org/xorg/util/macros' +description = """X.org macros utilities.""" + +toolchain = {'name': 'GCCcore', 'version': '12.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 = ['efd8eefab568981e47dd64d3e9b5ee2b7165a30d4feca105770f249f9b59979c'] + +builddependencies = [ + ('binutils', '2.40'), + ('Autotools', '20220317'), +] + +preconfigopts = './autogen.sh && ' + +sanity_check_paths = { + 'files': ['share/pkgconfig/xorg-macros.pc'], + 'dirs': [], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/y/Yasm/Yasm-1.3.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/y/Yasm/Yasm-1.3.0-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..7dcaaf0ef67 --- /dev/null +++ b/easybuild/easyconfigs/y/Yasm/Yasm-1.3.0-GCCcore-12.3.0.eb @@ -0,0 +1,24 @@ +easyblock = 'ConfigureMake' + +name = 'Yasm' +version = '1.3.0' + +homepage = 'https://www.tortall.net/projects/yasm/' +description = "Yasm: Complete rewrite of the NASM assembler with BSD license" + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} + +source_urls = ['https://github.com/%(namelower)s/%(namelower)s/releases/download/v%(version)s/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['3dce6601b495f5b3d45b59f7d2492a340ee7e84b5beca17e48f862502bd5603f'] + +builddependencies = [ + ('binutils', '2.40'), +] + +sanity_check_paths = { + 'files': ['bin/%(namelower)s'], + 'dirs': [], +} + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/y/yaml-cpp/yaml-cpp-0.7.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/y/yaml-cpp/yaml-cpp-0.7.0-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..45bef4248fe --- /dev/null +++ b/easybuild/easyconfigs/y/yaml-cpp/yaml-cpp-0.7.0-GCCcore-12.3.0.eb @@ -0,0 +1,30 @@ +# This easyconfig was created by the BEAR Software team at the University of Birmingham. +easyblock = 'CMakeMake' +name = 'yaml-cpp' +version = '0.7.0' + +homepage = "https://github.com/jbeder/yaml-cpp" +description = """yaml-cpp is a YAML parser and emitter in C++ matching the YAML 1.2 spec""" + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/jbeder/%(name)s/archive/'] +sources = ['%(name)s-%(version)s.tar.gz'] +patches = ['%(name)s-%(version)s_fix-cmake-export.patch'] +checksums = [ + '43e6a9fcb146ad871515f0d0873947e5d497a1c9c60c58cb102a97b47208b7c3', + 'c562a575bbb161af478795e43bfd9073e3f874bea07134a321c1063cd7098c1c', # yaml-cpp-0.7.0_fix-cmake-export.patch +] + +builddependencies = [ + ('binutils', '2.40'), + ('CMake', '3.26.3') +] + +sanity_check_paths = { + 'files': ['lib/libyaml-cpp.a', 'include/yaml-cpp/yaml.h'], + 'dirs': ['lib', 'include'], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/z/ZeroMQ/ZeroMQ-4.3.4-GCCcore-12.2.0.eb b/easybuild/easyconfigs/z/ZeroMQ/ZeroMQ-4.3.4-GCCcore-12.2.0.eb new file mode 100644 index 00000000000..a2f6e126328 --- /dev/null +++ b/easybuild/easyconfigs/z/ZeroMQ/ZeroMQ-4.3.4-GCCcore-12.2.0.eb @@ -0,0 +1,40 @@ +easyblock = 'ConfigureMake' + +name = 'ZeroMQ' +version = '4.3.4' + +homepage = 'https://www.zeromq.org/' +description = """ZeroMQ looks like an embeddable networking library but acts like a concurrency framework. + It gives you sockets that carry atomic messages across various transports like in-process, + inter-process, TCP, and multicast. You can connect sockets N-to-N with patterns like fanout, + pub-sub, task distribution, and request-reply. It's fast enough to be the fabric for clustered + products. Its asynchronous I/O model gives you scalable multicore applications, built as asynchronous + message-processing tasks. It has a score of language APIs and runs on most operating systems.""" + +toolchain = {'name': 'GCCcore', 'version': '12.2.0'} + +source_urls = ['https://github.com/zeromq/libzmq/releases/download/v%(version)s/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['c593001a89f5a85dd2ddf564805deb860e02471171b3f204944857336295c3e5'] + +builddependencies = [ + ('binutils', '2.39'), + ('pkgconf', '1.9.3'), +] + +dependencies = [ + ('OpenPGM', '5.2.122'), + ('libsodium', '1.0.18'), + ('util-linux', '2.38.1'), +] + +# Compialtion warnings in GCC 11, cf. https://github.com/zeromq/libzmq/issues/4178 +# Needto disable warnings as errors. +configopts = '--with-pic --with-pgm --with-libsodium --disable-Werror' + +sanity_check_paths = { + 'files': ['lib/libzmq.%s' % SHLIB_EXT, 'lib/libzmq.a'], + 'dirs': ['include', 'lib'], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/z/Zopfli/Zopfli-1.0.3-GCCcore-11.3.0.eb b/easybuild/easyconfigs/z/Zopfli/Zopfli-1.0.3-GCCcore-11.3.0.eb new file mode 100644 index 00000000000..4892a6729ab --- /dev/null +++ b/easybuild/easyconfigs/z/Zopfli/Zopfli-1.0.3-GCCcore-11.3.0.eb @@ -0,0 +1,37 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# Updated: Denis Kristak +# Updated: Thomas Hoffmann (EMBL), Denis Kristak (Inuits) +easyblock = 'CMakeMake' + +name = 'Zopfli' +version = '1.0.3' + +homepage = 'https://github.com/google/zopfli' +description = """Zopfli Compression Algorithm is a compression library programmed in C to perform +very good, but slow, deflate or zlib compression.""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/google/zopfli/archive/refs/tags/'] +sources = ['%(namelower)s-%(version)s.tar.gz'] +checksums = ['e955a7739f71af37ef3349c4fa141c648e8775bceb2195be07e86f8e638814bd'] + +builddependencies = [ + ('CMake', '3.23.1'), + ('binutils', '2.38'), +] + +configopts = [ + '-DBUILD_SHARED_LIBS=ON', + '-DBUILD_SHARED_LIBS=OFF', +] + +sanity_check_paths = { + 'files': ['bin/zopfli', 'include/zopfli.h', 'lib/libzopfli.a', 'lib/libzopfli.%s' % SHLIB_EXT], + 'dirs': [], +} + +sanity_check_commands = ["zopfli --help"] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/z/zfp/zfp-1.0.0-GCCcore-11.3.0.eb b/easybuild/easyconfigs/z/zfp/zfp-1.0.0-GCCcore-11.3.0.eb new file mode 100644 index 00000000000..c08bb6e10da --- /dev/null +++ b/easybuild/easyconfigs/z/zfp/zfp-1.0.0-GCCcore-11.3.0.eb @@ -0,0 +1,40 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# Author: Denis Kristak +# Update: Thomas Hoffmann (EMBL) +easyblock = 'MakeCp' + +name = 'zfp' +version = '1.0.0' + +homepage = 'https://github.com/LLNL/zfp' +description = """zfp is a compressed format for representing multidimensional floating-point and integer arrays. +zfp provides compressed-array classes that support high throughput read and write random access to individual array +elements. zfp also supports serial and parallel (OpenMP and CUDA) compression of whole arrays, e.g., for applications +that read and write large data sets to and from disk.""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/LLNL/zfp/archive'] +sources = ['%(version)s.tar.gz'] +checksums = ['fe13b03141ee9b571692aed42ff76cf37c9dcda40f9a43a808870dca3558a57c'] + +builddependencies = [ + ('binutils', '2.38'), +] + +prebuildopts = "sed -i 's/FLAGS = -O3/FLAGS = $CFLAGS/g' Makefile && " +buildopts = 'ZFP_WITH_OPENMP=1' + +runtest = 'test' + +files_to_copy = ['bin', 'include', 'lib'] + +sanity_check_paths = { + 'files': ['bin/zfp', 'bin/testzfp', 'include/zfp.h', 'lib/libzfp.a'], + 'dirs': ['include/zfp'], +} + +sanity_check_commands = ["zfp --help 2>&1 | grep 'Usage: zfp'"] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/z/zlib-ng/zlib-ng-2.0.7-GCCcore-11.3.0.eb b/easybuild/easyconfigs/z/zlib-ng/zlib-ng-2.0.7-GCCcore-11.3.0.eb new file mode 100644 index 00000000000..2f4e46a256d --- /dev/null +++ b/easybuild/easyconfigs/z/zlib-ng/zlib-ng-2.0.7-GCCcore-11.3.0.eb @@ -0,0 +1,30 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# Updated: Denis Kristak (Inuits) +# Updated: Thomas Hoffmann (EMBL), Denis Kristak (Inuits) +easyblock = 'CMakeMake' + +name = 'zlib-ng' +version = '2.0.7' + +homepage = 'https://github.com/zlib-ng/zlib-ng' +description = """zlib data compression library for the next generation systems""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +source_urls = ['https://github.com/zlib-ng/zlib-ng/archive/'] +sources = ['%(version)s.tar.gz'] +checksums = ['6c0853bb27738b811f2b4d4af095323c3d5ce36ceed6b50e5f773204fb8f7200'] + +builddependencies = [ + ('CMake', '3.23.1'), + ('binutils', '2.38'), +] + +configopts = ' -DZLIB_ENABLE_TESTS=True ' + +sanity_check_paths = { + 'files': ['include/zconf-ng.h', 'include/zlib-ng.h', 'lib/libz-ng.a', 'lib/libz-ng.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/z/zlib/zlib-1.2.13-GCCcore-11.4.0.eb b/easybuild/easyconfigs/z/zlib/zlib-1.2.13-GCCcore-11.4.0.eb new file mode 100644 index 00000000000..6c16569826e --- /dev/null +++ b/easybuild/easyconfigs/z/zlib/zlib-1.2.13-GCCcore-11.4.0.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'zlib' +version = '1.2.13' + +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.4.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://zlib.net/fossils'] +sources = [SOURCELOWER_TAR_GZ] +# patches = ['zlib-%(version)s_fix-CC-logic-in-configure.patch'] +checksums = ['b3a24de97a8fdbc835b9833169501030b8977031bcb54b3b3ac13740f846ab30'] + +# use same binutils version that was used when building GCC toolchain +builddependencies = [('binutils', '2.40', '', SYSTEM)] + +sanity_check_paths = { + 'files': ['include/zconf.h', 'include/zlib.h', 'lib/libz.a', 'lib/libz.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/setup.py b/setup.py index 70004ce1b12..9a351bf2919 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.7.2' +VERSION = '4.8.0' MAJ_VER = VERSION.split('.')[0] MAJMIN_VER = '.'.join(VERSION.split('.')[0:2]) diff --git a/test/easyconfigs/easyconfigs.py b/test/easyconfigs/easyconfigs.py index 4e9b5508fd7..0025555b060 100644 --- a/test/easyconfigs/easyconfigs.py +++ b/test/easyconfigs/easyconfigs.py @@ -100,7 +100,7 @@ def skip_if_not_pr_to_non_main_branch(): return lambda func: func -def get_files_from_diff(diff_filter, ext, basename=True): +def get_files_from_diff(diff_filter, ext): """Return the files changed on HEAD relative to the current target branch""" target_branch = get_target_branch() @@ -124,10 +124,7 @@ def get_files_from_diff(diff_filter, ext, basename=True): # determine list of changed files using 'git diff' and merge base determined above cmd = "git diff --name-only --diff-filter=%s %s..HEAD --" % (diff_filter, merge_base) out, _ = run_cmd(cmd, simple=False) - if basename: - files = [os.path.basename(f) for f in out.strip().split('\n') if f.endswith(ext)] - else: - files = [f for f in out.strip().split('\n') if f.endswith(ext)] + files = [os.path.join(top_dir, f) for f in out.strip().split('\n') if f.endswith(ext)] change_dir(cwd) return files @@ -219,8 +216,10 @@ def resolve_all_dependencies(cls): def _get_changed_easyconfigs(self): """Gather all added or modified easyconfigs""" # get list of changed easyconfigs - changed_ecs_filenames = get_eb_files_from_diff(diff_filter='M') - added_ecs_filenames = get_eb_files_from_diff(diff_filter='A') + changed_ecs_files = get_eb_files_from_diff(diff_filter='M') + added_ecs_files = get_eb_files_from_diff(diff_filter='A') + changed_ecs_filenames = [os.path.basename(f) for f in changed_ecs_files] + added_ecs_filenames = [os.path.basename(f) for f in added_ecs_files] if changed_ecs_filenames: print("\nList of changed easyconfig files in this PR:\n\t%s" % '\n\t'.join(changed_ecs_filenames)) if added_ecs_filenames: @@ -230,41 +229,36 @@ def _get_changed_easyconfigs(self): # grab parsed easyconfigs for changed easyconfig files changed_ecs = [] - for ec_fn in changed_ecs_filenames + added_ecs_filenames: - match = None - for ec in self.parsed_easyconfigs: - if os.path.basename(ec['spec']) == ec_fn: - match = ec['ec'] - break + easyconfigs_path = get_paths_for("easyconfigs")[0] + for ec_file in changed_ecs_files + added_ecs_files: + # Search in already parsed ECs first + match = next((ec['ec'] for ec in EasyConfigTest._parsed_easyconfigs if ec['spec'] == ec_file), None) if match: changed_ecs.append(match) + elif ec_file.startswith(easyconfigs_path): + ec = process_easyconfig(ec_file) + # Cache non-archived files + if '__archive__' not in ec_file: + EasyConfigTest._parsed_easyconfigs.extend(ec) + changed_ecs.append(ec[0]['ec']) else: - # if no easyconfig is found, it's possible some archived easyconfigs were touched in the PR... - # so as a last resort, try to find the easyconfig file in __archive__ - easyconfigs_path = get_paths_for("easyconfigs")[0] - specs = glob.glob('%s/__archive__/*/*/%s' % (easyconfigs_path, ec_fn)) - if len(specs) == 1: - ec = process_easyconfig(specs[0])[0] - changed_ecs.append(ec['ec']) - else: - raise RuntimeError("Failed to find parsed easyconfig for %s" - " (and could not isolate it in easyconfigs archive either)" % ec_fn) + raise RuntimeError("Failed to find parsed easyconfig for %s" % os.path.basename(ec_file)) EasyConfigTest._changed_ecs = changed_ecs def _get_changed_patches(self): """Gather all added or modified patches""" # get list of changed/added patch files - changed_patches_filenames = get_files_from_diff(diff_filter='M', ext='.patch', basename=False) - added_patches_filenames = get_files_from_diff(diff_filter='A', ext='.patch', basename=False) + changed_patches = get_files_from_diff(diff_filter='M', ext='.patch') + added_patches = get_files_from_diff(diff_filter='A', ext='.patch') - if changed_patches_filenames: - print("\nList of changed patch files in this PR:\n\t%s" % '\n\t'.join(changed_patches_filenames)) - if added_patches_filenames: - print("\nList of added patch files in this PR:\n\t%s" % '\n\t'.join(added_patches_filenames)) + if changed_patches: + print("\nList of changed patch files in this PR:\n\t%s" % '\n\t'.join(changed_patches)) + if added_patches: + print("\nList of added patch files in this PR:\n\t%s" % '\n\t'.join(added_patches)) - EasyConfigTest._changed_patches = changed_patches_filenames + added_patches_filenames + EasyConfigTest._changed_patches = changed_patches + added_patches @property def parsed_easyconfigs(self): @@ -383,8 +377,12 @@ def check_dep_vars(self, gen, dep, dep_vars): dep_vars = dict((k, v) for (k, v) in dep_vars.items() if k != empty_vsuff_vars[0]) # multiple variants of HTSlib is OK as long as they are deps for a matching version of BCFtools; - # same goes for WRF and WPS; Gurobi and Rgurobi - for dep_name, parent_name in [('HTSlib', 'BCFtools'), ('WRF', 'WPS'), ('Gurobi', 'Rgurobi')]: + # same goes for WRF and WPS; Gurobi and Rgurobi; ncbi-vdb and SRA-Toolkit + multiple_allowed_variants = [('HTSlib', 'BCFtools'), + ('WRF', 'WPS'), + ('Gurobi', 'Rgurobi'), + ('ncbi-vdb', 'SRA-Toolkit')] + for dep_name, parent_name in multiple_allowed_variants: if dep == dep_name and len(dep_vars) > 1: for key in list(dep_vars): ecs = dep_vars[key] @@ -505,11 +503,6 @@ def check_dep_vars(self, gen, dep, dep_vars): r'QGIS-3\.28\.1']), ], 'Geant4': [('11.0.1;', [r'GATE-9\.2-foss-2021b'])], - # ncbi-vdb v2.x requires HDF5 v1.10.x (HISAT2, SKESA, shovill depend on ncbi-vdb) - 'HDF5': [ - (r'1\.10\.', [r'ncbi-vdb-2\.11\.', r'HISAT2-2\.2\.', r'SKESA-2\.4\.', - r'shovill-1\.1\.']), - ], # VMTK 1.4.x requires ITK 4.13.x 'ITK': [(r'4\.13\.', [r'VMTK-1\.4\.'])], # Kraken 1.x requires Jellyfish 1.x (Roary & metaWRAP depend on Kraken 1.x) @@ -1124,10 +1117,11 @@ def test_pr_sanity_check_paths(self): """Make sure a custom sanity_check_paths value is specified for easyconfigs that use a generic easyblock.""" # some generic easyblocks already have a decent customised sanity_check_paths, - # including CargoPythonPackage, CMakePythonPackage, GoPackage, JuliaBundle, PythonBundle & PythonPackage; + # including CargoPythonPackage, CMakePythonPackage, GoPackage, JuliaBundle, PerlBundle, + # PythonBundle & PythonPackage; # BuildEnv, ModuleRC and Toolchain easyblocks doesn't install anything so there is nothing to check. whitelist = ['BuildEnv', 'CargoPythonPackage', 'CMakePythonPackage', 'CrayToolchain', 'GoPackage', - 'JuliaBundle', 'ModuleRC', 'PythonBundle', 'PythonPackage', 'Toolchain'] + 'JuliaBundle', 'ModuleRC', 'PerlBundle', '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, FEniCS: DOLFIN and co, @@ -1218,6 +1212,23 @@ def check_https_url(http_url): if failing_checks: self.fail('\n'.join(failing_checks)) + @skip_if_not_pr_to_non_main_branch() + def test_pr_CMAKE_BUILD_TYPE(self): + """Make sure -DCMAKE_BUILD_TYPE is no longer used (replaced by build_type)""" + failing_checks = [] + for ec in self.changed_ecs: + ec_fn = os.path.basename(ec.path) + configopts = ec.get('configopts') + build_type = ec.get('build_type') + + if configopts and '-DCMAKE_BUILD_TYPE' in configopts: + failing_checks.append("Found -DCMAKE_BUILD_TYPE in configopts. Use build_type instead: %s" % ec_fn) + if build_type == 'Release': + failing_checks.append("build_type was set to the default of 'Release'. " + "Omit this to base it on toolchain_opts.debug: %s" % ec_fn) + if failing_checks: + self.fail('\n'.join(failing_checks)) + @skip_if_not_pr_to_non_main_branch() def test_pr_patch_descr(self): """