diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml
index 3f2ce53e58f..ac97a3f372f 100644
--- a/.github/workflows/linting.yml
+++ b/.github/workflows/linting.yml
@@ -28,4 +28,4 @@ jobs:
run: flake8
- name: Run flake8 to verify PEP8-compliance of Easyconfigs
- run: flake8 --select W605 --filename '*.eb'
+ run: flake8 --select F,W605 --filename '*.eb'
diff --git a/.github/workflows/tagbot.py b/.github/workflows/tagbot.py
new file mode 100644
index 00000000000..26472f8bcbd
--- /dev/null
+++ b/.github/workflows/tagbot.py
@@ -0,0 +1,182 @@
+# NOTE: In order to write comment and edit labels, this script requires workflows with write permissions.
+# It should not use any untrusted third party code, or any code checked into the repository itself
+# as that could indirectly grant PRs the ability to edit labels and comments on PRs.
+
+import os
+import git
+import requests
+import json
+from pathlib import Path
+
+
+def get_first_commit_date(repo, file_path):
+ commits = list(repo.iter_commits(paths=file_path))
+ if commits:
+ return commits[-1].committed_date
+ else:
+ raise ValueError(f'{file_path} has no commit info, this should not happen')
+
+
+def sort_by_added_date(repo, file_paths):
+ files_with_dates = [(get_first_commit_date(repo, file_path), file_path) for file_path in file_paths]
+ sorted_files = sorted(files_with_dates, reverse=True)
+ return [file for date, file in sorted_files]
+
+
+def similar_easyconfigs(repo, new_file):
+ possible_neighbours = [x for x in new_file.parent.glob('*.eb') if x != new_file]
+ return sort_by_added_date(repo, possible_neighbours)
+
+
+def pr_ecs(pr_diff):
+ new_ecs = []
+ changed_ecs = []
+ for item in pr_diff:
+ if item.a_path.endswith('.eb'):
+ if item.change_type == 'A':
+ new_ecs.append(Path(item.a_path))
+ else:
+ changed_ecs.append(Path(item.a_path))
+ return new_ecs, changed_ecs
+
+
+GITHUB_API_URL = 'https://api.github.com'
+event_path = os.getenv('GITHUB_EVENT_PATH')
+token = os.getenv('GH_TOKEN')
+repo = os.getenv('GITHUB_REPOSITORY')
+base_branch_name = os.getenv('GITHUB_BASE_REF')
+
+with open(event_path) as f:
+ data = json.load(f)
+
+pr_number = data['pull_request']['number']
+# Can't rely on merge_commit_sha for pull_request_target as it might be outdated
+# merge_commit_sha = data['pull_request']['merge_commit_sha']
+
+print("PR number:", pr_number)
+print("Base branch name:", base_branch_name)
+
+# Change into "pr" checkout directory to allow diffs and glob to work on the same content
+os.chdir('pr')
+gitrepo = git.Repo('.')
+
+target_commit = gitrepo.commit('origin/' + base_branch_name)
+print("Target commit ref:", target_commit)
+merge_commit = gitrepo.head.commit
+print("Merge commit:", merge_commit)
+pr_diff = target_commit.diff(merge_commit)
+
+new_ecs, changed_ecs = pr_ecs(pr_diff)
+modified_workflow = any(item.a_path.startswith('.github/workflows/') for item in pr_diff)
+
+
+print("Changed ECs:", ', '.join(str(p) for p in changed_ecs))
+print("Newly added ECs:", ', '.join(str(p) for p in new_ecs))
+print("Modified workflow:", modified_workflow)
+
+new_software = 0
+updated_software = 0
+to_diff = dict()
+for new_file in new_ecs:
+ neighbours = similar_easyconfigs(gitrepo, new_file)
+ print(f"Found {len(neighbours)} neighbours for {new_file}")
+ if neighbours:
+ updated_software += 1
+ to_diff[new_file] = neighbours
+ else:
+ new_software += 1
+
+print(f"Generating comment for {len(to_diff)} updates softwares")
+# Limit comment size for large PRs:
+if len(to_diff) > 20: # Too much, either bad PR or some broad change. Not diffing.
+ max_diffs_per_software = 0
+elif len(to_diff) > 10:
+ max_diffs_per_software = 1
+elif len(to_diff) > 5:
+ max_diffs_per_software = 2
+else:
+ max_diffs_per_software = 3
+
+comment = ''
+if max_diffs_per_software > 0:
+ for new_file, neighbours in to_diff.items():
+ compare_neighbours = neighbours[:max_diffs_per_software]
+ if compare_neighbours:
+ print(f"Diffs for {new_file}")
+ comment += f'#### Updated software `{new_file.name}`\n\n'
+
+ for neighbour in compare_neighbours:
+ print(f"against {neighbour}")
+ comment += '\n'
+ comment += f'Diff against {neighbour.name}
\n\n'
+ comment += f'[{neighbour}](https://github.com/{repo}/blob/{base_branch_name}/{neighbour})\n\n'
+ comment += '```diff\n'
+ comment += gitrepo.git.diff(f'HEAD:{neighbour}', f'HEAD:{new_file}')
+ comment += '\n```\n \n\n'
+
+print("Adjusting labels")
+current_labels = [label['name'] for label in data['pull_request']['labels']]
+
+label_checks = [(changed_ecs, 'change'),
+ (new_software, 'new'),
+ (updated_software, 'update'),
+ (modified_workflow, 'workflow')]
+
+labels_add = []
+labels_del = []
+for condition, label in label_checks:
+ if condition and label not in current_labels:
+ labels_add.append(label)
+ elif not condition and label in current_labels:
+ labels_del.append(label)
+
+url = f"{GITHUB_API_URL}/repos/{repo}/issues/{pr_number}/labels"
+
+headers = {
+ "Accept": "application/vnd.github+json",
+ "Authorization": f"Bearer {token}",
+ "X-GitHub-Api-Version": "2022-11-28",
+}
+
+if labels_add:
+ print(f"Setting labels: {labels_add} at {url}")
+ response = requests.post(url, headers=headers, json={"labels": labels_add})
+ if response.status_code == 200:
+ print(f"Labels {labels_add} added successfully.")
+ else:
+ print(f"Failed to add labels: {response.status_code}, {response.text}")
+
+for label in labels_del:
+ print(f"Removing label: {label} at {url}")
+ response = requests.delete(f'{url}/{label}', headers=headers)
+ if response.status_code == 200:
+ print(f"Label {label} removed successfully.")
+ else:
+ print(f"Failed to delete label: {response.status_code}, {response.text}")
+
+# Write comment with diff
+if updated_software:
+ # Search for comment by bot to potentially replace
+ url = f"{GITHUB_API_URL}/repos/{repo}/issues/{pr_number}/comments"
+ response = requests.get(url, headers=headers)
+ comment_id = None
+ for existing_comment in response.json():
+ if existing_comment["user"]["login"] == "github-actions[bot]": # Bot username in GitHub Actions
+ comment_id = existing_comment["id"]
+
+ if comment_id:
+ # Update existing comment
+ url = f"{GITHUB_API_URL}/repos/{repo}/issues/comments/{comment_id}"
+ response = requests.patch(url, headers=headers, json={"body": comment})
+ if response.status_code == 200:
+ print("Comment updated successfully.")
+ else:
+ print(f"Failed to update comment: {response.status_code}, {response.text}")
+ else:
+ # Post a new comment
+ url = f"{GITHUB_API_URL}/repos/{repo}/issues/{pr_number}/comments"
+ response = requests.post(url, headers=headers, json={"body": comment})
+ if response.status_code == 201:
+ print("Comment posted successfully.")
+ else:
+ print(f"Failed to post comment: {response.status_code}, {response.text}")
diff --git a/.github/workflows/tagbot.yml b/.github/workflows/tagbot.yml
new file mode 100644
index 00000000000..8c0fa06294b
--- /dev/null
+++ b/.github/workflows/tagbot.yml
@@ -0,0 +1,54 @@
+name: Tagbot
+on: [pull_request_target]
+
+concurrency:
+ group: "${{ github.workflow }}-${{ github.event.pull_request.number }}"
+ cancel-in-progress: true
+
+jobs:
+ tagbot:
+ # Note: can't rely on github.event.pull_request.merge_commit_sha because pull_request_target
+ # does not wait for github mergability check, and the value is outdated.
+ # Instead we merge manually in a temporary subdir "pr"
+ runs-on: ubuntu-24.04
+ permissions:
+ pull-requests: write
+ steps:
+ - name: Checkout base branch for workflow scripts
+ uses: actions/checkout@v4
+
+ - name: Checkout PR for computing diff into "pr" subdirectory
+ uses: actions/checkout@v4
+ with:
+ ref: "${{ github.event.pull_request.head.sha }}"
+ path: 'pr'
+ fetch-depth: 0
+
+ - name: Attempt test merge
+ id: merge
+ run: |
+ git config user.name "github-workflow"
+ git config user.email "github-workflow@github.com"
+ git merge --no-edit --no-ff origin/${{ github.event.pull_request.base.ref }}
+ continue-on-error: true
+ working-directory: pr
+
+ - name: Abort if merge failed
+ if: steps.merge.outcome == 'failure'
+ run: |
+ echo "Merge conflict detected, failing job."
+ exit 1
+
+ - name: set up Python
+ uses: actions/setup-python@v5
+ with:
+ python-version: 3.12
+
+ - name: Get packages
+ run: pip install gitpython requests
+
+ - name: Tag and comment
+ env:
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ run: python .github/workflows/tagbot.py
+
diff --git a/.gitignore b/.gitignore
index c667a41e000..c2974194435 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,12 +1,15 @@
.pydevproject
.project
LICENSE_HEADER
+*.eb.bak_*
*.pyc
*.pyo
*.nja
+*.out
build/
dist/
*egg-info/
+.venv/
*.swp
*.ropeproject/
eb-*.log
diff --git a/RELEASE_NOTES b/RELEASE_NOTES
index 3a655a1b5b3..af2e74ae887 100644
--- a/RELEASE_NOTES
+++ b/RELEASE_NOTES
@@ -3,8 +3,487 @@ For more detailed information, please see the git log.
These release notes can also be consulted at https://docs.easybuild.io/en/latest/Release_notes.html.
-The latest version of easybuild-easyconfig provides 18,752 easyconfig files, for 3,369 different software packages,
-incl. 40 different (compiler) toolchains.
+The latest version of easybuild-easyconfig provides 20,670 easyconfig files, for 3,670 different software packages,
+incl. 41 different (compiler) toolchains.
+
+
+v4.9.4 (22 September 2024)
+--------------------------
+
+update/bugfix release
+
+- added example easyconfig files for 14 new software packages:
+ - Biotite (#21026), chopper (#21418), CLUMPP (#21329), cramino (#21382), dub (#21378), ESM3 (#21026), GOMC (#21008),
+ MOKIT (#21352), nanoQC (#21371), phasius (#21389), PyBullet (#21356), rnamotif (#21336), versioningit (#21424),
+ xskillscore (#21351)
+- added additional easyconfigs for various supported software packages, including:
+ - awscli 2.17.54, BiG-SCAPE-1.1.9, ccache 4.10.2, CLHEP 2.4.7.1, CREST 3.0.2, decona 1.4-2024073, dftd4 3.7.0,
+ GATE 9.4, Gdk-Pixbuf 2.42.11, Geant4 11.2.2, Geant4-data 11.2, Ghostscript 10.03.1, GitPython 3.1.43,
+ GObject-Introspection 1.80.1, HarfBuzz 9.0.0, ImageMagick 7.1.1-38, JasPer 4.2.4, joypy 0.2.6, Julia 1.10.4,
+ LDC 1.39.0, Leptonica 1.84.1, Markdown 3.7, MPICH 4.2.2, NanoComp 1.24.0, nanoget 1.19.3, nanomath 1.4.0,
+ NanoPlot 1.43.0, Pango 1.54.0, PCAngsd 1.2, Pillow 10.4.0, python-isal 1.7.0, pocl 6.0, PROJ 9.4.1, protobuf 28.0,
+ protobuf-python 5.28.0, R-tesseract 5.2.1, RepeatMasker 4.1.7-p1, RHEIA 1.1.11, RMBlast 2.14.1,
+ scikit-build-core 0.10.6, sleuth 0.30.1, SNAP-ESA 10.0.0, tesseract 5.3.4, Triton 2.1.0, TurboVNC 3.1.2,
+ VirtualGL 3.1.1, zlib-ng 2.2.1
+- minor enhancements, including:
+ - enable support for Apache ORC to Arrow v14.0.1 and v16.1.0 (#21056)
+ - use proper dependency for tensorboard in easyconfigs for TensorFlow v2.15.1 (#21337)
+- various bug fixes, including:
+ - account for crates for easyconfigs using Cargo-based easyblock when determining checksums for patches in easyconfigs test suite (#21419)
+ - avoid missing symbol in mclust extension of R-4.0.3 w/ foss/2020b (#21429)
+ - fix build of librosa 0.10.1 in some environments by removing "python -m build" for soxr extension (#21434)
+ - fix repeated sanity check runs in manta easyconfigs (#21435)
+ - fix test_easyconfig_locations when easyconfigs index is present (#21394)
+ - use proper dependency for libnsl in git-annex (#21441)
+ - avoid writing into ~/.stack directory during build for git-annex (#21452)
+- other changes:
+ - remove exts_default_options from TensorFlow 2.3.1 (#21290)
+
+
+v4.9.3 (14 September 2024)
+--------------------------
+
+update/bugfix release
+
+- added easyconfigs for foss/2024a (#21100) and intel/2024a (#21101) common toolchains
+- new toolchain: gmpflf/2024.06 (#20882)
+- added example easyconfig files for 107 new software packages:
+ - absl-py (#21039), accelerate (#21107), affogato (#20636), APOST3D (#21133), bayesian-optimization (#21301),
+ BayesOpt (#21261), BGEN-enkre (#15752), bitsandbytes (#21248), bliss (#21206), cfgrib (#21113), CLANS (#21099),
+ colorize (#20964), CORSIKA (#20693), COSTA (#20989), coxeter (#21254), Critic2 (#20833), crypt4gh (#20870),
+ dblatex (#21207), dictys (#21166), DL_POLY_Classic_GUI (#20819), EGA-QuickView (#20870, #20888), EMMAX (#21174),
+ empanada-dl (#20454), empanada-napari (#20454), ESIpy (#21006), fastfilters (#21003), fish (#21345, #21381),
+ flash-attention (#21083), Flax (#21039), fonttools (#21363), fsm-lite (#20503), GDMA (#21171), GeoDict (#20650),
+ GPflow (#21172), gtk-doc (#21207), Gubbins (#20413), Gymnasium (#20420), HERRO (#21252), IEntropy (#20808),
+ ilastik-napari (#21003), IMAGE (#20994), junos-eznc (#21166), jupyter-collaboration (#20741),
+ jupyter-vscode-proxy (#20876), langchain-mistralai (#20759), langchain-openai (#20711), LRBinner (#21310),
+ lrcalc (#21339), MAGIC (#20900), mallard-ducktype (#21127), MATES (#21229), MBX (#21155), mcqd (#21283),
+ MeshLab (#20806), meteogrid (#20921), micro-sam (#20636), miniprot (#21157), napari-denoiseg (#20934),
+ NECAT (#21359), nellie (#21267), NextPolish (#21265), nifty (#20636), ome-types (#21256), openai-python (#20711),
+ OpenForceField-Toolkit (#20852), orjson (#20880), PEcAn (#21227), PretextMap (#20790), PyBEL (#20953),
+ pyMBE (#21034), pystencils (#20889), python-blosc (#20636), python-elf (#20636), rankwidth (#20788), Rasqal (#21207),
+ Redland (#21227), Regenie (#15752), rMATS-long (#20916), Sagemath (#21365), scCustomize (#20907), SCENICplus (#21085),
+ scFEA (#20777), sdsl-lite (#20503), SharedMeatAxe (#21303), Single-cell-python-bundle (#20116), SIRIUS (#20989),
+ sirocco (#21304), SKA2 (#20411), SpFFT (#20989), spla (#11607), Stable-Baselines3 (#20884), submitit (#21103),
+ SVDSS2 (#20855), tdlib (#21305), torch-em (#20636), Umpire (#20989), Uni-Core (#21182), vigra (#20636),
+ Visit (#20981), weblogo (#20800), wradlib (#21110), xtb-IFF (#20783), yell (#20964), yelp-tools (#21127),
+ yelp-xsl (#21127), z5py (#20636), Zoltan (#21324)
+- added additional easyconfigs for various supported software packages, including:
+ - AGAT 1.4.0, ASE 3.23.0, Abseil 20240722.0, Albumentations 1.4.0, AlphaPulldown 2.0.0b4, AlphaPulldown 2.0.0b4,
+ AmberTools 26.3, Arrow 16.1.0, alsa-lib 1.2.11, archspec 0.2.4, attr 2.5.2, BayesTraits 4.1.2, BeautifulSoup 4.12.3,
+ Biopython 1.84, Boost.MPI 1.83.0, bcl-convert 4.2.7-2, beagle-lib 4.0.1, biom-format 2.1.16, byacc 2.0.20240109,
+ CDO 2.3.0, CFITSIO 4.4.1, CUDA-Samples 12.2, CUDA 12.5.0 + 12.6.0, CUTLASS 3.4.0, Catch2 2.13.10, CellOracle 0.18.0,
+ Clang 18.1.8, Coreutils 9.5, chewBBACA 3.3.9, code-server 4.90.2, connected-components-3d 3.14.1, cooler 0.10.2,
+ cryptography 42.0.8, cutadapt 4.9, cyvcf2 0.31.1, dorado 0.7.3, dtcmp 1.1.5, ESMF 8.6.1, EvidentialGene 2023.07.15,
+ Extrae 4.2.0, ecBuild 3.8.5, elfutils 0.191, FFmpeg 7.0.2, FLAC 1.4.3, FUSE 3.16.2, Flask 3.0.3, Flye 2.9.4,
+ FriBidi 1.0.15, ffnvcodec 12.2.72.0, flatbuffers-python 24.3.25, flatbuffers 24.3.25, fmt 10.2.1, fpylll 0.6.1,
+ GCC 14.2.0, GDAL 3.9.0, GEOS 3.12.1, GHC 9.10.1, GLM 1.0.1, GLib 2.80.4, GLibmm 2.72.1 + 2.75.0 + 2.77.0 + 2.78.1,
+ GPAW 24.6.0, GetOrganelle 1.7.7.1, Guile 2.0.14 + 3.0.10, Gurobi 11.0.2, gap 4.13.0, genomepy 0.16.1, gensim 4.3.2,
+ gffutils 0.13, gh 2.52.0, git-annex 10.20240731, gmpy2 2.2.0, googletest 1.15.2, graph-tool 2.59, HDBSCAN 0.8.38.post1,
+ HOMER 4.11.1, HTSeq 2.0.7, HiCMatrix 17.2, Highway 1.2.0, Hypre 2.31.0, hatchling 1.24.2, histolab 0.7.0,
+ hypothesis 6.103.1, IQ-TREE 2.3.5, ImageMagick 7.1.1-34, Imath 3.1.11, IsoQuant 3.5.0, igraph 0.10.12, imageio 2.34.1,
+ imbalanced-learn 0.12.3, inferCNV 1.21.0, intervaltree 0.1, JsonCpp 1.9.5, Julia 1.10.4, jax 0.4.25, json-fortran 8.5.2,
+ Kent_tools 468, LLVM 18.1.8, LittleCMS 2.16, libdrm 2.4.122, libdwarf 0.10.1, libedit 20240517, libgeotiff 1.7.3,
+ libgit2 1.8.1, libopus 1.5.2, libsigc++ 3.6.0, libspatialindex 2.0.0, libunistring 1.2, libunwind 1.8.1, libwebp 1.4.0,
+ libxslt 1.1.42, libzip 1.10.1, lwgrp 1.0.6, lxml 5.3.0, MCR R2024a, MPICH 4.2.1, MUMPS 5.7.2, MariaDB 11.6.0,
+ Maven 3.9.7, Mercurial 6.8.1, Mesa 24.1.3, Miniconda3 23.10.0-1, MultiQC 1.22.3, makedepend 1.0.9, matplotlib 3.9.2,
+ maturin 1.6.0, medaka 1.12.1, meshio 5.3.5, meson-python 0.16.0, mm-common 1.0.6, NanoCaller 3.6.0, Normaliz 3.10.3,
+ n2v 0.3.3, nano 8.1, ncbi-vdb 3.1.1, nettle 3.10, nsync 1.29.2, numexpr 2.9.0, ORCA 6.0.0, OpenEXR 3.2.4, OpenFOAM 12,
+ OpenFOAM v2406, OpenJPEG 2.5.2, Optax 0.2.2, Optuna 3.6.1, PaStiX 6.3.2, Perl-bundle-CPAN 5.38.2, Pillow-SIMD 10.4.0,
+ Pint 0.24, Platypus-Opt 1.2.0, PostgreSQL 16.4, PyAEDT 0.9.9, PyCharm 2024.1.6, PyRosetta 4.release-384,
+ PyWavelets 1.7.0, PyYAML 6.0.2, Pygments 2.18.0, Pylint 3.2.5, Pyomo 6.7.3, Python-bundle-PyPI 2024.06, packmol 20.14.4,
+ pagmo 2.19.0, parallel 20240722, pixman 0.43.4, pod5-file-format 0.3.10, poetry 1.8.3, popt 1.19, pretty-yaml 24.7.0,
+ primecount 7.14, psycopg 3.2.1, pyGenomeTracks 3.9, pybind11 2.12.0, pycocotools 2.0.7, pydantic 2.7.4, pygmo 2.19.5,
+ pyperf 2.7.0, pyseer 1.3.12, pysteps 1.10.0, QuantumESPRESSO 7.3.1, Qwt 6.3.0, R-bundle-CRAN 2024.06, R 4.4.1,
+ RDKit 2024.03.3, RapidJSON 1.1.0-20240409, Ray-project 2.9.1, ReFrame 4.6.2, Rust 1.79.0, redis-py 5.0.9,
+ regionmask 0.12.1, rjags 4-15, rpmrebuild 2.18, SDL2 2.30.6, SHAP 0.43.0, SIP 6.8.3, SRA-Toolkit 3.1.1,
+ STAR 2.7.11b_alpha_2024-02-09, STRUMPACK 7.1.0, SVDSS2 2.0.0-alpha.3, Safetensors 0.4.3, Salmon 1.10.3,
+ SciPy-bundle 2024.05, SeqKit 2.8.2, SingleM 0.16.0, Sphinx-RTD-Theme 2.0.0, Stack 3.1.1, SuiteSparse 7.7.0,
+ SuperLU 6.0.1, SuperLU_DIST 8.2.1, scArches 0.6.1, scib-metrics 0.5.1, scvi-tools 1.1.2, sdsl-lite 2.0.3,
+ setuptools-rust 1.9.0, sirocco 2.1.0, slepc4py 3.20.2, smafa 0.8.0, snpEff 5.2c, spaCy 3.7.4, spektral 1.2.0,
+ spglib-python 2.5.0, spglib 2.5.0, TELEMAC-MASCARET 8p5r0, Tk 8.6.14, Tkinter 3.12.3, Trycycler 0.5.5, tiktoken 0.7.0,
+ timm 1.0.8, UCX-CUDA 1.16.0, unixODBC 2.3.12, utf8proc 2.9.0, VSEARCH 2.28.1, virtualenv 20.26.2, WRF 4.5.1,
+ Wayland 1.23.0, X11 20240607, XGBoost 2.1.1, XML-LibXML 2.0210, x264 20240513, x265 3.6, xarray 2024.5.0, xtb-IFF 1.1,
+ xtb 6.7.1, xtensor 0.24.7, yelp-xsl 42.1
+- minor enhancements, including:
+ - add internal CUDA header patch for PSM2 v12.0.1 (#20804)
+ - add patch for JupyterHub support to recent tensorboard easyconfigs (#20823)
+ - make sure that recent ImageMagick versions pick up the right pkgconf + improve sanity check for ImageMagick (#20900)
+ - also install utilities for recent versions of FUSE 3.x (#20918)
+ - add RISC-V support to x264 v20231019 (#20968)
+ - add RISC-v support to recent LAME easyconfigs by removing workaround for finding libncurses (#20970)
+ - enable PIC in recent x265 easyconfigs to solve compilation errors on RISC-V (#20971)
+ - add extensions to R-bundle-CRAN: missmDA (#21167, #21183). insight (#21260), performance + datwizard + bayestestR (#21272, #21285)
+ - add Qt support to VTK 9.3.0 (#21221)
+ - add `helper_scripts` to `$PATH` in easyconfig for ProteinMPNN v1.0.1-20230627 (#21289)
+ - also build & install the plugins with OpenFOAM v2406 (#21332)
+- various bug fixes, including:
+ - fix easyconfigs for recent versions of QuantumESPRESSO (#20070)
+ - add wrapper for Julia with linking safeguards and delegate environment setup to JuliaPackage (#20103)
+ - fix typo in description of SuiteSparse v7.7.0 (#20567)
+ - add 'pic' flag to IML (#20789)
+ - add patch to recent SciPy-bundle easyconfigs to fix build error with numpy with some Fortran compilers (#20817)
+ - rename unpacked sources for components of EasyBuild v4.9.2, to ensure that '`--install-latest-eb-release`' works with older EasyBuild versions (#20818)
+ - fix build of OpenBLAS 0.3.24 on A64FX (#20820)
+ - remove maturin build dependency from langchain-antropic (#20825)
+ - add GMP and MPFR as dependencies to OpenFOAM v2306 and v2312 (#20841)
+ - add patch to SciPy-bundle 2024.05 that fixes numpy test failures on RISC-V (#20847)
+ - skip unreliable memory leak test in PyTorch 2.1.2 (#20874)
+ - use PyYAML 6.0.1 instead of 6.0 for recent ReFrame versions to fix problem with Cython 3.x (#20879)
+ - use PyPI source tarball and gfbf/2023a toolchain for pyBigWig (#20881)
+ - add fix for failing test on zen4 to Highway 1.0.4 (#20942)
+ - add patch to fix implicit function declaration in OpenMPI 4.1.4 (#20949)
+ - only use libxsmm as dependency for CP2K 2023.1 w/ `foss/2023a` on x86_64 (#20951)
+ - copy missing `rsem_perl_utils.pm` in DETONATE, since it's required by `rsem-eval-calculate-score` command (#20956)
+ - set `$SATSUMA2_PATH` so Satsuma2 can locate executables (#20957)
+ - disable auto-vectorizer (`-ftree-vectorize`) for OpenFOAM v10 + v11 when using toolchain that with GCC >= 11 (#20958)
+ - disable test step for WIEN2k 23.2 because files required by it can no longer be downloaded (#20969)
+ - add patch to fix Qt6 issues with ParaView v5.12.0, e.g. representation selection (#21002)
+ - update homepage in phonopy easyconfigs (#21014)
+ - make libunwind dependency architecture specific in Extrae 4.2.0 easyconfig (#21017)
+ - add `OPENSSL_ENABLE_SHA1_SIGNATURES` for building `ansys-pythonnet` (#21028)
+ - fix download URLs for old Intel software (2018-2023) by using `IRC_NAS` instead of `irc_nas` (#21108)
+ - update source and homepage URLs in Szip easyconfigs (#21129)
+ - rename source URL in HDF v4.2.16-2 easyconfig (#21130)
+ - consistently fix homeage + source URL for `HDF` + `h4toh5` (#21134)
+ - ensure that recent BioPerl easyconfigs use `Bundle` easyblock (#21136)
+ - fix checksum checks for easyconfigs using a `Bundle`-like easyblock in easyconfigs test suite (#21143)
+ - add pkgconf build dependency to scikit-misc v0.3.1 (#21144)
+ - explicitly disable use of MySQL in recent GDAL easyconfigs (#21156)
+ - fix easyconfig tensorflow-probability v0.20.0 to pass `pip check` (#21172)
+ - stop RStudio-Server 2023.09 from installing R packages (+ move to `foss/2023a` toolchain) (#21175)
+ - remove `Time::HiRes` from `Perl-bundle-CPAN` since there's newer version in `Perl` (#21198)
+ - fix build of STAR 2.7.11a + 2.7.11b on non-x86 architectures by avoiding use of `-maxv2` + add missing `xxd` build dependency (#21200)
+ - add missing cairo dependency for python-igraph v0.10.6 (#21211)
+ - add patch for xtb 6.7.0 to fix build failure due to changes in tblite (#21255)
+ - add patch for HDF5 v1.14.3 to suppress fp exceptions (#21280)
+ - update easyconfig for dorado 0.7.3 to properly use provided OpenSSL dependency, and not install external libraries into its own lib directory (#21297)
+ - use proper Python dependency for OTF2 (#21325)
+ - use source tarballs from GitHub for recent libdap easyconfigs (#21334)
+ - remove Highway build dependency in Brunsli easyconfigs, since it's not actually required at all (#21366)
+ - add alternative checksum for bold 1.3.0 extension in R-bundle-CRAN (#21370)
+- other changes:
+ - archive outdated example easyconfigs for Fujitsu toolchain (#20781)
+ - upgrade rpmrebuild build dependency to version 2.18 in bcl-convert 4.2.7 easyconfig (#20861)
+ - use proper dependency for Safetensors in easyconfig for Transformers v4.39.3 (#20864)
+ - remove CMake Arrow flag as there is no Arrow dependency in recent GDAL easyconfigs (#20905)
+ - whitelist `ConfigureMakePythonPackage` for `sanity_check_paths` CI check (#20963)
+ - rename `gubbins-2.4.0.eb` to `Gubbins-2.4.0.eb` (#20995)
+ - make pytest v7.4.2 independent of Python-bundle-PyPI (#21004)
+ - reorganize Flax/JAX stack in 2023a: move `jax` + `Optax` to `gfbf/2023a` toolchain + use standalone `Flax` + `absl-py` as dependencies (#21038)
+ - use stand-alone absl-py as dependency for jax w/ `gfbf/2023a` (#21039)
+ - remove Cython dependency from Python-bundle-PyPI 2024.06 + add standalone easyconfig for Cython 3.0.10 (#21233)
+ - add Cython build dependency for SciPy-bundle v2024.05 (#21235)
+ - use top-level parameters for `use_pip` & co instead of `exts_default_options` for `PythonBundle` easyconfigs (#21292)
+
+
+v4.9.2 (12 June 2024)
+---------------------
+
+update/bugfix release
+
+- added easyconfigs for foss/2024.05 toolchain (candidate for foss/2024a) (#20646)
+- added example easyconfig files for 82 new software packages:
+ - AEDT (#20357), amdahl (#20346), AMGX (#20255), assembly-stats (#20281), Bio-FeatureIO (#20461),
+ bitshuffle (#20661), Cassiopeia (#20289), CCCL (#20255), charm-gems (#20327), CheckM2 (#20399),
+ chromVARmotifs (#20402), cmph (#20278), COMEBin (#20717), Compass (#20500), ctffind5 (#20669), currentNe (#20791),
+ CVX (#20231), deepfold (#20247), dotNET-Core (#20256), EasyMocap (#20446), ensmallen (#20485), EVcouplings (#20744),
+ Faiss (#19669), FDMNES (#20321), gnupg-bundle (#20406), grpcio (#20191), hatch-jupyter-builder (#20606),
+ hevea (#20597), HiGHS (#20186), hmmcopy_utils (#20472), HOMER (#20590), ICON (#20573), jiter (#20746),
+ LangChain (#20746), langchain-anthropic (#20746), libabigail (#20539), libbraiding (#20655), libhomfly (#20482),
+ libsupermesh (#20470), LIBSVM-MATLAB (#20752), Lightning (#19964), lil-aretomo (#20696), makefun (#20619),
+ MetalWalls (#20403), MICOM (#20186), ml-collections (#20247), ml_dtypes (#20707), mlpack (#20485), MOFA2 (#20538),
+ mumott (#20719), nvitop (#20512), ocamlbuild (#20552), optiSLang (#20320), orthAgogue (#20278), pdf2docx (#20416),
+ planarity (#20753), plantri (#20467), plmc (#20744), PortAudio (#20307), premailer (#20348), ProteinMPNN (#20705),
+ PRRTE (#20698), PSM2 (#20496), PyAEDT (#20357), pybind11-stubgen (#20518), PyEXR (#19983), pyGAM (#20385),
+ PyHMMER (#20544), pyseer (#20502), PyVista (#20649), qmflows (#20384), SciTools-Iris (#20767), SCReadCounts (#20455),
+ SDL2_gfx (#20466), subunit (#20412), TF-COMB (#20666), tiktoken (#20336), TorchIO (#20648), t-SNE-CUDA (#19669),
+ VAMPIRE-ASM (#20368), wfdb (#20521), WGDgc (#20367)
+- added additional easyconfigs for various supported software packages, including:
+ - 4ti2 1.6.10, AFNI 24.0.02, Autoconf 2.72, Autotools 20231222, adjustText 1.1.1, aiohttp 3.9.5, alevin-fry 0.9.0,
+ alsa-lib 1.2.9, atropos 1.1.32, autopep8 2.2.0, BCFtools 1.19, BLIS 1.0, BWA 0.7.18, Boost 1.85.0, bcrypt 4.1.3,
+ binutils 2.42, bokeh 3.4.1, CGAL 5.6.1, CREST 3.0.1, CellRanger-ARC 2.0.2, CellRanger 8.0.1, CellRank 2.0.2,
+ Clang 17.0.6, CoCoALib 0.99850, Cython 3.0.10, cURL 8.7.1, cffi 1.16.0, code-server 4.89.1,
+ configurable-http-proxy 4.6.1, coverage 7.4.4, cpio 2.15, cppyy 3.1.2, cysignals 1.11.4, Doxygen 1.11.0,
+ dask-labextension 7.0.0, dask 2024.5.1, deal.II 9.5.2, dorado 0.5.3, dotNET-Core 8.0.203, E-ANTIC 2.0.2,
+ ECL 24.5.10, ESPResSo 4.2.2, eclib 20240408, expat 2.6.2, FLTK 1.3.9, FMM3D 1.0.4, FlexiBLAS 3.4.4, f90wrap 0.2.13,
+ fgbio 2.2.1, fontconfig 2.15.0, freetype-py 2.4.0, GAMESS-US 20220930-R2 + 20230930-R2, GCC 13.3.0 + 14.1.0,
+ GDB 14.2, GDRCopy 2.4.1, GOATOOLS 1.4.5, GTDB-Tk 2.4.0, Giza 1.4.1, gc 8.2.6, gcloud 472.0.0, gemmi 0.6.5,
+ gettext 0.22.5, giac 1.9.0-99, git 2.45.1, gmsh 4.12.2, gsutil 5.29, HDDM 0.9.9, HTSlib 1.19.1, HyPhy 2.5.60,
+ h5py 3.11.0, hwloc 2.10.0, ICU 75.1, IOR 4.0.0, imagecodecs 2024.1.1, imgaug 0.4.1, ipympl 0.9.4,
+ Jupyter-bundle 20240522, JupyterHub 4.1.5, JupyterLab 4.2.0, JupyterNotebook 7.2.0, jupyter-matlab-proxy 0.12.2,
+ jupyter-resource-usage 1.0.2, jupyter-rsession-proxy 2.2.0, jupyter-server-proxy 4.1.2, jupyter-server 2.14.0,
+ Kalign 3.4.0, KrakenUniq 1.0.4, kallisto 0.50.1, LAPACK 3.12.0, libarchive 3.7.4, libde265 1.0.15, libdeflate 1.20,
+ libdwarf 0.9.2, libfabric 1.21.0, libffi 3.4.5, libgcrypt 1.10.3, libgpg-error 1.48, libheif 1.17.6, libidn2 2.3.7,
+ libnsl 2.0.1, libpciaccess 0.18.1, libpng 1.6.43, libuv 1.48.0, libxml2 2.12.7, line_profiler 4.1.2, MATSim 15.0,
+ MDTraj 1.9.9, Mako 1.3.5, Meson 1.4.0, MetaMorpheus 1.0.5, Molpro 2024.1.0, MuJoCo 3.1.4, matlab-proxy 0.18.1,
+ mold 2.31.0, mpmath 1.3.0, NASM 2.16.03, NanoPlot 1.42.0, Nextflow 24.04.2, Ninja 1.12.1, nanoget 1.19.1,
+ napari 0.4.19.post1, nauty 2.8.8, ncurses 6.5, nghttp2 1.58.0, nghttp3 1.3.0, nglview 3.1.2, ngtcp2 1.2.0,
+ nodejs 20.13.1, numactl 2.0.18, nvtop 3.1.0, OCaml 5.1.1, OSU-Micro-Benchmarks 7.4, OpenBLAS 0.3.27, OpenMPI 5.0.3,
+ PARI-GP 2.15.5, PCRE2 10.43, PMIx 5.0.2, Perl 5.38.2, PhyML 3.3.20220408, PnetCDF 1.13.0, PyAMG 5.1.0,
+ PyQtGraph 0.13.7, PyTorch-Geometric 2.5.0, PyTorch-bundle 2.1.2, PycURL 7.45.3, Pysam 0.22.0, Python 3.12.3,
+ p11-kit 0.25.3, p4est 2.8.6, parallel 20240322, pauvre 0.2.3, petsc4py 3.20.3, pkgconf 2.2.0, plc 3.10, polars 0.20.2,
+ poppler 24.04.0, psutil 5.9.8, py3Dmol 2.1.0, pybedtools 0.9.1, pygame 2.5.2, pyiron 0.5.1, pyro-ppl 1.9.0,
+ python-mujoco 3.1.4, ROOT 6.30.06, RPostgreSQL 0.7-6, RStudio-Server 2023.12.1+402, Rtree 1.2.0, Rust 1.78.0,
+ SAMtools 1.19.2, SCOTCH 7.0.4, SDL2_image 2.8.2, SDL2_mixer 2.8.0, SDL2_ttf 2.22.0, SQLite 3.45.3, SWIG 4.2.1,
+ SentencePiece 0.2.0, Seurat 5.1.0, SeuratDisk 20231104, SimNIBS 4.0.1, Singular 4.4.0, Spack 0.21.2, Squidpy 1.4.1,
+ SymEngine-python 0.11.0, SymEngine 0.11.2, sbt 1.6.2, scikit-build-core 0.9.3, scikit-learn 1.4.2, TOBIAS 0.16.1,
+ Tcl 8.6.14, TensorFlow 2.15.1, Transformers 4.39.3, texlive 20230313, tmux 3.4, tokenizers 0.15.2, 0.2.5.20231120,
+ tornado 6.4, UCC 1.3.0, UCX 1.16.0, util-linux 2.40, VSCode 1.88.1, Valgrind 3.23.0, VisPy 0.14.1, wget 1.24.5,
+ XZ 5.4.5, xorg-macros 1.20.1, xprop 1.2.7, xtb 6.7.0, xxd 9.1.0307, yaml-cpp 0.8.0, zarr 2.17.1, zfp 1.0.1,
+ zlib-ng 2.1.6, zlib 1.3.1, zstd 1.5.6
+- minor enhancements, including:
+ - add missing (optional) dependency pyproject-metadata to scikit-build-core (#20391)
+ - add hatch-requirements-txt extension to hatchling easyconfigs (#20389)
+ - install pkg-config files for ncurses 6.4 when using GCCcore toolchain (#20405)
+ - use regular 'configure' instead of wrapper script for recent UCX easyconfigs (#20428)
+ - add RISC-V support to UCX 1.15.0 (#20429), UCC 1.2.0 (#20432), BLIS 0.9.0 (#20468), PAPI 7.1.0 (20659)
+ - add extensions to R-bundle-CRAN v2023.12: cmna (#20445), rhandsontable (#20614), XBRL (#20506)
+ - add checksum for RISC-V version to easyconfig for Java 21.0.2 (#20495)
+ - remove 'TORCHVISION_INCLUDE' from PyTorch-bundle easyconfigs, now handled by custom easyblock for torchvision (#20504)
+ - add dependencies required for GUI in Cellpose 2.2.2 easyconfigs (#20620)
+ - add 'build_info_msg' about kernel modules to GDRCopy (#20641)
+ - build both static and shared libs for Brotli 1.1.0 (#20757)
+- various bug fixes, including:
+ - add missing dependencies for funannotate (#17690)
+ - fix path to SuiteSparse include/lib in easyconfig for CVXopt v1.3.1 (#20232)
+ - fix Highway 1.0.3 on some systems by disabling 'AVX3_DL' (#20298)
+ - replace incorrect scikit-bio 0.5.9 with scikit-bio 0.6.0 as dependency for scCODA (#20300)
+ - add alternate checksum to OpenMolcas v23.06 (#20301)
+ - change arrow-R dependency of Bioconductor v3.18 to v14.0.1 (which depends on required matching Arrow v14.0.1) (#20324)
+ - fix hardcoded '/bin/mv' path in Rhdf5lib extension included in R-bundle-Bioconductor v3.16 + v3.18 (#20378)
+ - remove dependency on HDF5 in recent Bioconductor easyconfigs (#20379)
+ - make sure that libjpeg-turbo libraries are installed in 'lib' subdirectory (#20386)
+ - add patch for Libint 2.7.2 to fix compiler error with glibc >= 2.34 (#20396)
+ - use 'bash' rather than 'sh' to run PLINK-2.00a3.7 tests (#20404)
+ - add patch to fix 'UNPACK-OPAL-VALUE: UNSUPPORTED TYPE 33 FOR KEY' error in OpenMPI 4.1.5 (#20422)
+ - add patch to increase compatibility with AVX512 platforms for bwa-mem2 v2.2.1 (#20434)
+ - add patch for GROMACS 2024.1 to fix filesystem race in tests (#20439)
+ - demote poetry to build dependency for nanocompore (#20453)
+ - add patch to fix CVE-2024-27322 in R v3.6.x (#20464), v4.0.x (#20463), and v4.1.x + v4.2.x + v4.3.x (#20462)
+ - disable test that fetches from the web for torchtext extension in PyTorch-bundle v2.1.2 (#20484)
+ - fix sanity check paths for JupyterLab 4.0.5 (#20514)
+ - fix detection of CC/CXX compilers for 'wmake' in OpenFOAM v2306 + v2312 (#20517)
+ - use the included gmxapi for GROMACS 2024.1 (#20522)
+ - add new checksum for signal_1.8-0 to R-bundle-CRAN-2023.12 (#20527)
+ - fix test in Cwd extension of Perl-bundle-CPAN 5.36.1 (#20536)
+ - fix patch name in easyconfig for Perl-bundle-CPAN 5.36.1 + add also use it for Perl-bundle-CPAN 5.38.0 (#20540)
+ - fix cwd_enoent test in Perl (#20541)
+ - move dependency on BeasutifulSoup in IPython v8.14.0 to jupyter-server (#20547)
+ - remove dependency on BeasutifulSoup from IPython v8.17.2 (#20548)
+ - add alternative checksum for source tarball of MONAI 1.3.0 (#20618)
+ - add cpio as build dependency to recent BLAST+ versions (#20674)
+ - add --disable-htmlpages to recent FFmpeg easyconfigs (#20686)
+ - remove duplicate crates from easyconfig for timm-0.9.7 (#20687)
+ - add missing HDF5 dependency in recent Armadillo easyconfigs (>= 11.4.3) (#20710)
+ - add patches for failing LAPACK tests and RISC-V test segfaults to OpenBLAS 0.3.27 (#20745)
+ - move all easyconfigs for libavif to GCCcore toolchain + fix dependencies (#20747)
+ - make sure mummerplot can use gnuplot if available for recent MUMmer (#20749)
+ - prevent configure script of recent BLAST+ versions from prepending system paths to $PATH (#20751)
+ - fix fastparquet v2023.4.0 using CargoPythonBundle easyblock (#20775)
+ - remove --with-64 from configopts for recent BLAST+ versions (#20784)
+ - add patch to fix build of pdsh 2.34 with Slurm 23.x (#20795)
+- other changes:
+ - move 'build' from extensions to dependencies in easyconfig for napari 0.4.18 (#20433)
+ - update version of fsspec extension in easyconfig for Squidpy 1.4.1 to be compatible with s3fs provided via PyTorch-bundle (#20477)
+ - add commented out PSM2 dependency, relevant for x86_64 systems with OmniPath, to recent libfabric easyconfigs (#20501, #20585, #20794)
+ - replace SQLAlchemy extension with regular dependency in easyconfig for Optuna v3.5.0 (#20510)
+ - replace SQLAlchemy extension in JupyterHub v4.0.2 easyconfig with regular dependency (#20511)
+ - bump Cython to v3.0.8 in Cartopy v0.22.0 easyconfig for foss/2023a toolchain, to avoid dependency version conflict with sckit-learn v1.4.2, which requires Cython >= v3.0.8 (#20525)
+ - change dependency on hatchling of BeautifulSoup v4.12.2 to a build dependency (#20546)
+ - bump async-timeout to 4.0.3 in aiohttp 3.8.5 (#20553)
+ - stick to gfbf/2023a as toolchain for ipympl v0.9.3 (#20586)
+ - rename tornado-timeouts.patch to tornado-6.1_increase-default-timeouts.patch + add missing authorship (#20587)
+ - remove easyconfigs for CellBender v0.3.1, since this version has been redacted due to a serious bug (#20722)
+
+
+v4.9.1 (5 April 2024)
+---------------------
+
+update/bugfix release
+
+- added example easyconfig files for 101 new software packages:
+ - AMICA (#19842), AreTomo2 (#19681), btllib (#19779), bwa-mem2 (#20217), CENSO (#19826), Circlator (#19847), Clarabel.rs (#20149),
+ code-cli (#19645), Concorde (#19768), contextily (#19807), CUTLASS (#19304), DeepLoc (#19514), Delft3D (#19869), DeltaLake (#19758),
+ denseweight (#20139), desktop-file-utils (#19701), devbio-napari (#19586), DjVuLibre (#19701), Elmer (#19448),
+ EnergyPlus (#19565), EpiSCORE (#18618), evince (#19701), ExpressBetaDiversity (#19938), ExtremeLy (#19870), f90nml (#19171),
+ FFAVES (#19822), fugue (#19694), gcsfs (#20042), GenomeComb (#19749), GI-DocGen (#19701), GKlib-METIS (#20096), GRASP-suite (#19665),
+ gspell (#19701), GUIDANCE (#20063), hdWGCNA (#20124), HF-Datasets (#20166), IDG (#18924), igvShiny (#19714), inflection (#20036),
+ InterOp (#19303), IonQuant (#19812), Lab-Streaming-Layer (#19945), Levenshtein (#19771), libfyaml (#19856), libgxps (#19701),
+ libhandy (#19701), libspectre (#19701), lit (#20252), lmoments3 (#19870), Markdown (#20239), MetaDecoder (#20123), mfqe (#19781),
+ Miniforge3 (#20227), MLflow (#19893), MODFLOW (#20142), morphosamplers (#20000), MotionCor3 (#19681), MSFragger (#19811),
+ multiprocess (#19986), nf-core (#19107), noise (#20048), OpenMEEG (#19853), OpenSlide-Java (#19962), PAGAN2 (#19618), PASA (#19570),
+ pblat (#19570), PBZIP2 (#19677), PDM (#20012), Philosopher (#19383), phyluce (#19779), poppunk (#17402), PSASS (#20160), psycopg (#19107),
+ PyInstaller (#19519), PyQt-builder (#16703), pytest-workflow (#19107), python-casacore (#20089), pytorch-3dunet (#19290), pyXDF (#19916),
+ q2-krona (#19633), QuPath (#19962), radian (#19484), remake (#19581), rethinking (#19755), RHEIA (#19496), s3fs (#19576),
+ safestringlib (#20217), scikit-extremes (#19870), SemiBin (#19767), semla (#19747), Sentence-Transformers (#19509), sinto (#13846),
+ sktime (#19692), SQLAlchemy (#20242), tiny-cuda-nn (#19304), tox (#16178), Vamb (#17457), xpdf (#20024), yt (#20263), Zeo++ (#19555),
+ zUMIs (#19949)
+- added additional easyconfigs for various supported software packages, including:
+ - Abseil 20240116.1, ABySS 2.3.7, AMS 2023.104, Anaconda3 2024.02, anndata 0.10.5.post1, anvio 8, ArchR 1.0.2,
+ archspec 0.2.2, Armadillo 12.8.0, arpack-ng 3.9.1, arrow-R 14.0.0.2, ASAP3 3.13.3, assimp 5.3.1, autopep8 2.0.4,
+ basemap 1.3.9, BerkeleyGW 3.1.0 + 4.0, BiG-SCAPE 1.1.5, Biopython 1.83, Blosc 1.21.5, Blosc2 2.13.2, Boost.MPI 1.82.0,
+ Boost.Python 1.83.0, Braindecode 0.8.1, Brotli-python 1.1.0, build 1.0.3, buildenv-default foss-2023b + intel-2023b,
+ bx-python 0.10.0, CapnProto 1.0.1.1, c-ares 1.27.0, Cartopy 0.22.0, casacore 3.5.0, Cbc 2.10.11, ccache 4.9, cclib 1.8,
+ CellBender 0.3.1, CellTypist 1.6.2, CFITSIO 4.3.1, Cgl 0.60.8, Clang-Python-bindings 16.0.6, Clp 1.17.9, CmdStanR 0.7.1,
+ COBRApy 0.29.0, code-server 4.22.1, CoinUtils 2.11.10, CoordgenLibs 3.0.2, CREST 2.12, cryoCARE 0.3.0, CSBLAST 2.2.4,
+ CUDA 12.3.2 + 12.4.0, cuDNN 8.9.7.29, CuPy 13.0.0, cuSPARSELt 0.6.0.6, cuTENSOR 2.0.1.2, CVXPY 1.4.2, Cython 3.0.8,
+ dask 2023.12.1, datalad 0.19.5, DB_File 1.859, deepdiff 6.7.1, DeepLabCut 2.3.6, DendroPy 4.6.1, Deprecated 1.2.14,
+ DFT-D4 3.6.0, DIAMOND 2.1.9, Dice 20240101, dlb 3.4, DLPack 0.8, dorado 0.5.1, EggLib 3.3.0, einops 0.7.0, ELPA 2023.11.001,
+ enchant-2 2.6.5, ESMF 8.4.2, eSpeak-NG 1.51, ETE 3.1.3, expecttest 0.2.1, fastjet 3.4.2, fastjet-contrib 1.053, FDS 6.8.0,
+ fineRADstructure 20210514, fio 3.36, Fiona 1.9.5, Flask 3.0.0, FLINT 3.1.1, Flye 2.9.3, fmt 10.2.0, freebayes 1.3.7,
+ GATK 4.5.0.0, gawk 5.3.0, geocube 0.4.3, geopandas 0.14.2, geopy 2.4.1, GHC 9.4.6, Ghostscript 10.02.1, GIMIC 2.2.1,
+ git-lfs 3.5.1, GitPython 3.1.42, GLFW 3.4, Go 1.22.1, GPAW 24.1.0, GPAW-setups 24.1.0, gperftools 2.14, Gradle 8.6,
+ graph-tool 2.55, Greenlet 3.0.3, GROMACS 2024.1, gRPC 1.62.1, GTK3 3.24.39, Gurobi 11.0.0, HDF5 1.14.3, HeFFTe 2.4.0,
+ HepMC3 3.2.6, hunspell 1.7.2, igraph 0.10.10, infercnvpy 0.4.3, iperf 3.16, IQ-TREE 2.2.2.7, ISA-L 2.31.0, Java/19 (19.0.2),
+ Java/21 (21.0.2), json-c 0.17, Julia 1.10.0, KaHIP 3.16, LAMMPS 2Aug2023_update2, LASTZ 1.04.22, LDC 1.36.0, leidenalg 0.10.2,
+ libcint 5.5.0, libgit2 1.7.2, librosa 0.10.1, librsvg 2.58.0, libSBML 5.19.7, libsigsegv 2.14, libtirpc 1.3.4,
+ libxml2-python 2.11.4, likwid 5.3.0, LLVM 14.0.6, MACS3 3.0.1, maeparser 1.3.1, Mamba 23.11.0-0, MATIO 1.5.26,
+ matplotlib 3.8.2, maturin 1.5.0, MCR R2023a, MDAnalysis 2.7.0, MDI 1.4.26, medaka 1.11.3, Meson 1.3.1, MiXCR 4.6.0,
+ MNE-Python-1.6., MOABB 1.0.0, molmod 1.4.8, MONAI 1.3.0, mpi4py 3.1.5, mrcfile 1.5.0, NCCL 2.20.5, NCO 5.1.9, NECI 20230620,
+ netcdf4-python-1.6.5, networkx 3.2.1, NGSpeciesID 0.3.0, NiBabel 5.2.0, nichenetr 2.0.4, Nilearn 0.10.3,
+ nlohmann_json 3.11.3, NLTK 3.8.1, ntCard 1.2.2, numba 0.58.1, NVHPC 24.1, OBITools3 3.0.1b26, OCaml 4.14.0, occt 7.8.0,
+ onedrive 2.4.25, ONNX 1.15.0, ONNX-Runtime 1.16.3, ont-fast5-api 4.1.2, OPARI2 2.0.8, OpenFOAM v2306 + v2312, OpenSSL/3,
+ Optuna 3.5.0, Osi 0.108.9, PAPI 7.1.0, Parallel-Hashmap 1.3.12, ParaView 5.12.0, PDT 3.25.2, PETSc 3.20.3, PGPLOT 5.2.2,
+ phonemizer 3.2.1, phono3py 2.7.0, Pillow 10.2.0, Pint 0.23, plotly.py 5.18.0, poetry 1.7.1, presto-1.0.0 20230501,
+ PROJ 9.3.1, prompt-toolkit 3.0.36, protobuf 25.3, protobuf-python 4.25.3, psmc 0.6.5_20221121, pstoedit 3.78,
+ psycopg2 2.9.9, PuLP 2.8.0, PyCheMPS2 1.8.12, pycodestyle 2.11.1, pydantic 1.10.13 + 2.5.3 2.6.4, pydicom 2.4.4, pydot 2.0.0,
+ pyfaidx 0.8.1.1, PyFrag 2023-dev.20240220, pymatgen 2023.12.18, PyOpenCL 2023.1.4, PyOpenGL 3.1.7, pyparsing 3.1.1,
+ PyQt5 5.15.10, Pysam 0.22.0, PySCF 2.4.0, pyspoa 0.2.1, PyTables 3.9.2, pytest-rerunfailures 14.0, python-igraph 0.11.4,
+ python-irodsclient 2.0.0, python-isal 1.6.1, python-libsbml 5.20.2, python-xxhash 3.4.1, PyTorch-Ignite 0.4.13,
+ PyTorch-Lightning 2.2.1, PyZMQ 25.1.2, QIIME2 2023.7.0, Qt5 5.15.13, Qt6 6.6.3, Qtconsole 5.5.1, QtPy 2.4.1,
+ QuantumESPRESSO 7.3, R 4.3.3, rasterio 1.3.9, R-bundle-Bioconductor 3.18, rclone 1.66.0, RE2 2024-03-01, Redis 7.2.4,
+ redis-py 5.0.1, rioxarray 0.15.0, Rivet 3.1.9, rMATS-turbo 4.2.0, RNA-Bloom 2.0.1, rocm-smi 5.6.0, rpy2 3.5.15,
+ ruamel.yaml 0.18.6, Ruby 3.3.0, Rust 1.75.0 + 1.76.0, Salmon 1.10.1, Sambamba 1.0.1, Saxon-HE 12.4, SBCL 2.4.1,
+ ScaFaCoS 1.0.4, Scalene 1.5.35, scanpy 1.9.8, scib 1.1.4, scikit-bio 0.5.9, scikit-learn 1.4.0, scikit-lego 0.7.4,
+ scikit-misc 0.3.1, SCons 4.6.0, Score-P 8.4, scVelo 0.3.1, Seaborn 0.13.2, SentencePiece 0.1.99, Seqmagick 0.8.6,
+ Seurat 5.0.1, SIP 6.8.1, siscone 3.0.6, skorch 0.15.0, SLEPc 3.20.1, snakemake 8.4.2, SNAPE-pooled 20150707,
+ SOAPdenovo-Trans 1.0.5, Spark 3.5.1, spdlog 1.12.0, spoa 4.1.0, SRA-Toolkit 3.0.10, Stack 2.13.1, STAR 2.7.11b,
+ statsmodels 0.14.1, tensorboard 2.15.1, tensorboardX 2.6.2.2, tensorflow-probability 0.20.0, texinfo 7.1, timm 0.9.7,
+ torchvision 0.16.0, tqdm 4.66.2, TRIQS 3.2.0, TRIQS-cthyb 3.2.1, TRIQS-dft_tools 3.2.0, TRIQS-tprf 3.2.1,
+ typing-extensions 4.9.0, UCX 1.16.0, UDUNITS 2.2.28, umap-learn 0.5.5, UMI-tools 1.1.4, Vala 0.56.14, VEP 111,
+ Vim 9.1.0004, vsc-mympirun 5.4.0, WFA2 2.3.4, wget 1.21.4, WhatsHap 2.2, WIEN2k 23.2, wrf-python 1.3.4.1,
+ Xerces-C++ 3.2.5, XlsxWriter 3.1.9, XML-LibXML v2.0209, xxHash 0.8.2, yaff 1.6.0, YAXT 0.10.0, Yices 2.6.4, YODA 1.9.9
+- minor enhancements, including:
+ - add build info message to easyconfig for NLTK 3.7 (#18550)
+ - enable KLU and CUDA solvers in SUNDIALS v6.6.0 (#19490)
+ - add extensions to R-bundle-CRAN v2023.12: tidybayes (#19712), spdep (#19729), fixest (#20055)
+ - add plyranges extension to R-bundle-Bioconductor (for zUMIs) (#19949)
+ - add PyOpenGL-accelerate extension to PyOpenGL v3.1.7 (#20007)
+ - use system architecture template in DB_File (#20014), GD (#20015), and GDGraph (#20016)
+ - add support for Vulkan software rendering in Mesa v23.1.9 by adding Wayland dependency (#20069)
+ - add MODIStsp extension (+ required dependencies) to R 4.2.2 (#20113)
+ - enable LittleCMS2 and WebP support in recent Pillow (#20195)
+ - improve test for validity of easyconfig files (#20205)
+ - add easyconfig test that checks if backdoored XZ versions are introduced (#20267)
+- various bug fixes, including:
+ - add patch for Bison 3.7.1 to fix build error on old OS versions (#12291)
+ - add missing pkg-config build dependency for recent p11-kit easyconfigs (#16318)
+ - fix dependencies and configure flags of GnuTLS 3.7.x (#19070)
+ - remove numa configure option from hwloc 2.5+ (#19085)
+ - add patches for OpenBLAS v0.3.21 to disable -ftree-vectorize for netlib LAPACK (#19280)
+ - add patch to fix flaky scipy build in SciPy-bundle v2023.11 (#19481)
+ - add missing SciPy-bundle dependency to TensorRT easyconfig (#19486)
+ - fix lapack test failures in OpenBLAS 0.3.23/24 (#19495)
+ - add patch for Arrow v8.0.0 - v11.0.0 to add missing `__arrow_ext_class__` method to `BaseExtensionType` class (#19532)
+ - change homepage for argtable (#19551)
+ - add patches for PyTorch v2.1.2 with `foss/2022a` (#19571), `foss/2022b` (#19572), and `foss/2023a` (#19573) to fix test failures on non-x86 platforms
+ - use pocl with CUDA support as dependency for PyOpenCL v2023.1.4 (#19584)
+ - remove `osdependencies` from ccache easyconfigs using GCCcore toolchain (#19600)
+ - use https source URL for alsa-lib (#19628)
+ - add missing dm-tree dependency for dm-reverb 0.2.0 (#19653)
+ - add libyaml import check to PyYAML and fix builds since split to minimal Python (#19662)
+ - demote meson-python to a build dependency in recent matplotlib easyconfigs (#19670)
+ - add patch to fix upb CopyFrom error in protobuf-python 4.24.0 (#19671)
+ - demote poetry to build dep in expecttest (#19675)
+ - add zlib dependency to YODA and Rivet (#19679)
+ - fix missing spaces in Graphviz configure options (#19687)
+ - strip iconv from pkgconfig file for libarchive v3.6.2 (#19698)
+ - use separate bcrypt easyconfig (using CargoPythonPackage) as dependency for JupyterHub v4.0.2 (#19703)
+ - use maturin easyconfig using CargoPythonPackage as a dependency for fastparquet v2023.4.0 (#19704)
+ - add patches for Perl-bundle-CPAN v5.36.1 to fix installation of `Sys::Info::Driver::Linux*` extensions on Debian Bookworm (#19727)
+ - explicitly specify Fortran compiler for recent CDO versions to fix issues on non-x86_64 architectures (#19735)
+ - add patch for `jupyter_core` extension in `jupyter-server` to set jupyter path by `$EB_ENV_JUPYTER_ROOT` (#19737)
+ - add Python build dependency to 1.9.x Doxygen (#19743)
+ - fix Arrow v14.0.1 to install pyarrow as an extension (#19758)
+ - fix homepage + source URL for Gblocks 0.91b (#19797)
+ - make sure that Brunsli libraries are installed into `lib` (#19805)
+ - fix dependency with `libidn.so.11` in tbl2asn v20220427 and v20230713 easyconfigs (#19821)
+ - add missing dependencies for fslpy in easyconfig for FSL v6.0.5.1 (#19829)
+ - remove numa configure option from hwloc 2+ (#19833)
+ - avoid spurious test failure when enabling RPATH for Perl (#19835)
+ - add missing Python deps and packages in PSI4 1.7 (#19836)
+ - add patch to fix `MS_RDONLY` error in OpenMPI 3.1.x and 4.0.0 (#20140), 4.0.3 (#19944), and 4.0.5 (#19837)
+ - demote meson-python to build dependency for matplotlib v3.7.2 w/ `iimkl/2023a` (#19892)
+ - demote hatchling to build dependency in easyconfig for einops 0.7.0 (#19915)
+ - add patch for adding a write memory barrier to all OpenMPI 4.1.x easyconfigs (#19940)
+ - stop using non-existent `--disable-libdeflate` option for LibTIFF 4.1.0 (#19951)
+ - add patch to remove git version check and fix test command for molmod 1.4.8 (#19952)
+ - replace SYSTEM-level GCC dependency in git-annex with binutils (#19956)
+ - stop using non-existing `--with-doc` configure option for groff 1.23 (#19969)
+ - fix test failures of Perl-bundle-CPAN-5.38 in non-English locales (#19971)
+ - add patch to fix tree-optimization bug in GCC 12.3.0 + 13.1.0 + 13.2.0 for ARM architectures with SVE support (#19974, #20218)
+ - drop checksum from easyconfig for VSCode 1.85.0 since tarball are not stable (#19995)
+ - respect `sysroot` in recent Pillow-SIMD easyconfigs, when in use (#19996)
+ - remove `--disable-docs` configure option from FriBidi 1.0.5+ (#19998)
+ - fix geotiff configure option in GDAL (#19999)
+ - unpack SCG database to 'db' subdirectory for DAS_Tool (#20008)
+ - remove Jasper dependency and configure option from GDAL 3.5+ (#20009)
+ - update homepage and source URLs for SPAdes (#20018)
+ - fix GDAL 3.5.0 install on high-core-count machines (#20027)
+ - remove disable-visibility configure flag from GTK3 (#20028)
+ - remove mpi configure option from libfdf 0.2.2 (#20034)
+ - add patch to fix multiarch support for RISC-V to all GCCcore 12.x and 13.x easyconfigs (#20035)
+ - fix invocation typo and unneeded folder change on invocation in fgbio 1.3.0 easyconfig (#20039)
+ - remove hdf5 configure option from MDSplus 7.96.12 (#20041)
+ - fix python configure option of MEME (#20043)
+ - fix configure options of FFLAS-FFPACK (#20052)
+ - find the correct Python in xtensor (#20056)
+ - fix geotiff configure option in GDAL 2.2.3 (#20057)
+ - fix configure option and remove gperftools dependency for MIRA 5.0 (#20061)
+ - fix confgure options in GRASS (#20062)
+ - fix configure of LinBox 1.7.0 (#20064)
+ - remove unknown configure option from GnuTLS 3.7.2 (#20065)
+ - use 32-bit indexing for SUNDIALS 6.6.0 (with foss/2023a) to enable sunmatrix-cusparse (#20075)
+ - find correct Python for MDI (#20083)
+ - add `pixman` and `FriBidi` dependencies to recent ImageMagick easyconfigs (#20086)
+ - add patch to fix failing tests with OpenSSL 3.x for Net-SSLeay v1.92 extension in Perl-bundle-CPAN v5.36.1 (#20090) and v5.38.0 (#20118)
+ - add patches for minimus2 in AMOS-3.1.0 (#20114)
+ - fix download url for cuSPARSELt 0.3.0.3 (#20129)
+ - add patches to fix test issues for PyTorch 2.1.2 with `foss/2023a` + CUDA 12.1.1 (#20156)
+ - remove easyconfig for UCX-CUDA 1.15.0 using incompatible combo of CUDA 12.3.0 + GCC 13.2.0 (#20158)
+ - remove flake8 suppressions for invalid escape sequences (#20161)
+ - fix post-install command for SuperLU_DIST in case library prefix is `lib` instead of `lib64` (#20162)
+ - switch to gitlab source URL for libxc + add alternative checksum (#20163)
+ - enable `download_dep_fail` in Pythonpackage easyconfigs where it was wrongly disabled (#20174)
+ - add patch to fix PyTorch 1.12.x and 1.13.x for Linux 6+ (#20176, #20177, #20178, #20179, #20180, #20181, #20182)
+ - disable tests for `Time::HiRes` extension in Perl-bundle-CPAN v5.36.1 (#20187)
+ - fix several typos in GlobalArrays 5.8 configure step (#20188)
+ - fix broken homepage from older SCOTCH easyconfigs (#20192)
+ - remove dead URL for ISL from `source_urls` in easyconfigs for GCCcore 10.3.0, 11.1.0, 11.2.0 (#20193)
+ - fix package installation in easyconfigs for Python 2.7.15 and 3.7.2 (using `GCCcore/8.2.0`) (#20194)
+ - add missing zlib + OpenSSL deps to Ruby easyconfigs + promote binutils to runtime dependency (#20214)
+ - fix cuSPARSELt easyconfigs for aarch64 (#20216)
+ - fix python shebang in napari easyconfigs (#20219)
+ - add patch to fix scipy test failure for SciPy-bundle 2023.02 with `gfbf/2022b` (#20235)
+ - fix `incompatible types` errors when building the R extension `dbarts` on Arm (#20238)
+ - add patch to fix for libarchive to fix error reporting in tar (#20254)
+ - add patch for GCCcore 13.2.0 to fix unguarded use of is_convertible builtin (#20260)
+ - fix download for python-parasail 1.3.4 by adding missing source URL (#20263)
+- other changes:
+ - update DualSPHysics easyconfig to use custom easyblock (#19400)
+ - fix name for DETONATE in existing easyconfig (was `detonate`) (#19569)
+ - rename `VSCode` to `code-cli` (to match with existing `code-server`) (#19585, #19645)
+ - remove urllib3 extension from wandb easyconfig, not neeed since Python-bundle-PyPI dependency already provides it (#19725)
+ - stop using custom easyblock for Doxygen (#19742)
+ - move `setuptools_scm` extension from hatchling to Python easyconfig (#19777, #20200)
+ - move xtb v6.6.1 to gfbf/2023a (#19826)
+ - unify Z3 4.12.2 easyconfigs into a single one with Python bindings (and fix Z3 dependency for PyTorch 2.1.2 accordingly) (#20050)
+ - use GPAW-setups v24.1.0 in existing GPAW easyconfigs (#20117)
+ - fix duplicate dict entries and enable fatal error checking for easyconfigs via `flake8` (#20173)
+ - move Greenlet 2.0.2 to GCCcore toolchain (#20241)
+ - update Java/8 wrapper to Java 8.402 (#20261)
+ - update copyright lines to 2024 (#20276)
v4.9.0 (30 December 2023)
diff --git a/easybuild/easyconfigs/0/4ti2/4ti2-1.6.10-GCC-13.2.0.eb b/easybuild/easyconfigs/0/4ti2/4ti2-1.6.10-GCC-13.2.0.eb
new file mode 100644
index 00000000000..5bfd73b4635
--- /dev/null
+++ b/easybuild/easyconfigs/0/4ti2/4ti2-1.6.10-GCC-13.2.0.eb
@@ -0,0 +1,30 @@
+easyblock = 'ConfigureMake'
+
+name = '4ti2'
+version = '1.6.10'
+
+homepage = 'https://4ti2.github.io/'
+description = """A software package for algebraic, geometric and combinatorial problems on linear spaces"""
+
+toolchain = {'name': 'GCC', 'version': '13.2.0'}
+
+github_account = '4ti2'
+source_urls = [GITHUB_SOURCE]
+sources = ['Release_%s.tar.gz' % '_'.join(version.split('.'))]
+checksums = ['2f1bce3203da65b651d68cbd0ace0f89a16d1f436cf5f24e22bc15ec22df936a']
+
+dependencies = [
+ ('GMP', '6.3.0'),
+ ('GLPK', '5.0'),
+]
+
+builddependencies = [('Autotools', '20220317')]
+
+preconfigopts = './autogen.sh && '
+
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in ['4ti2gmp', '4ti2int32', '4ti2int64']],
+ 'dirs': ['include/4ti2', 'lib', 'share']
+}
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/a/Autoconf/Autoconf-2.71-FCC-4.5.0.eb b/easybuild/easyconfigs/__archive__/a/Autoconf/Autoconf-2.71-FCC-4.5.0.eb
similarity index 100%
rename from easybuild/easyconfigs/a/Autoconf/Autoconf-2.71-FCC-4.5.0.eb
rename to easybuild/easyconfigs/__archive__/a/Autoconf/Autoconf-2.71-FCC-4.5.0.eb
diff --git a/easybuild/easyconfigs/a/Automake/Automake-1.16.3-FCC-4.5.0.eb b/easybuild/easyconfigs/__archive__/a/Automake/Automake-1.16.3-FCC-4.5.0.eb
similarity index 100%
rename from easybuild/easyconfigs/a/Automake/Automake-1.16.3-FCC-4.5.0.eb
rename to easybuild/easyconfigs/__archive__/a/Automake/Automake-1.16.3-FCC-4.5.0.eb
diff --git a/easybuild/easyconfigs/a/Autotools/Autotools-20210128-FCC-4.5.0.eb b/easybuild/easyconfigs/__archive__/a/Autotools/Autotools-20210128-FCC-4.5.0.eb
similarity index 100%
rename from easybuild/easyconfigs/a/Autotools/Autotools-20210128-FCC-4.5.0.eb
rename to easybuild/easyconfigs/__archive__/a/Autotools/Autotools-20210128-FCC-4.5.0.eb
diff --git a/easybuild/easyconfigs/b/Bison/Bison-3.7.6-FCC-4.5.0.eb b/easybuild/easyconfigs/__archive__/b/Bison/Bison-3.7.6-FCC-4.5.0.eb
similarity index 100%
rename from easybuild/easyconfigs/b/Bison/Bison-3.7.6-FCC-4.5.0.eb
rename to easybuild/easyconfigs/__archive__/b/Bison/Bison-3.7.6-FCC-4.5.0.eb
diff --git a/easybuild/easyconfigs/b/binutils/binutils-2.36.1-FCC-4.5.0.eb b/easybuild/easyconfigs/__archive__/b/binutils/binutils-2.36.1-FCC-4.5.0.eb
similarity index 100%
rename from easybuild/easyconfigs/b/binutils/binutils-2.36.1-FCC-4.5.0.eb
rename to easybuild/easyconfigs/__archive__/b/binutils/binutils-2.36.1-FCC-4.5.0.eb
diff --git a/easybuild/easyconfigs/b/buildenv/buildenv-default-FCC-4.5.0.eb b/easybuild/easyconfigs/__archive__/b/buildenv/buildenv-default-FCC-4.5.0.eb
similarity index 100%
rename from easybuild/easyconfigs/b/buildenv/buildenv-default-FCC-4.5.0.eb
rename to easybuild/easyconfigs/__archive__/b/buildenv/buildenv-default-FCC-4.5.0.eb
diff --git a/easybuild/easyconfigs/b/buildenv/buildenv-default-Fujitsu-21.05.eb b/easybuild/easyconfigs/__archive__/b/buildenv/buildenv-default-Fujitsu-21.05.eb
similarity index 100%
rename from easybuild/easyconfigs/b/buildenv/buildenv-default-Fujitsu-21.05.eb
rename to easybuild/easyconfigs/__archive__/b/buildenv/buildenv-default-Fujitsu-21.05.eb
diff --git a/easybuild/easyconfigs/d/DB/DB-18.1.40-FCC-4.5.0.eb b/easybuild/easyconfigs/__archive__/d/DB/DB-18.1.40-FCC-4.5.0.eb
similarity index 100%
rename from easybuild/easyconfigs/d/DB/DB-18.1.40-FCC-4.5.0.eb
rename to easybuild/easyconfigs/__archive__/d/DB/DB-18.1.40-FCC-4.5.0.eb
diff --git a/easybuild/easyconfigs/e/expat/expat-2.2.9-FCC-4.5.0.eb b/easybuild/easyconfigs/__archive__/e/expat/expat-2.2.9-FCC-4.5.0.eb
similarity index 100%
rename from easybuild/easyconfigs/e/expat/expat-2.2.9-FCC-4.5.0.eb
rename to easybuild/easyconfigs/__archive__/e/expat/expat-2.2.9-FCC-4.5.0.eb
diff --git a/easybuild/easyconfigs/f/FCC/FCC-4.5.0.eb b/easybuild/easyconfigs/__archive__/f/FCC/FCC-4.5.0.eb
similarity index 100%
rename from easybuild/easyconfigs/f/FCC/FCC-4.5.0.eb
rename to easybuild/easyconfigs/__archive__/f/FCC/FCC-4.5.0.eb
diff --git a/easybuild/easyconfigs/f/FFTW/FFTW-1.0.0-FCC-4.5.0-fujitsu.eb b/easybuild/easyconfigs/__archive__/f/FFTW/FFTW-1.0.0-FCC-4.5.0-fujitsu.eb
similarity index 100%
rename from easybuild/easyconfigs/f/FFTW/FFTW-1.0.0-FCC-4.5.0-fujitsu.eb
rename to easybuild/easyconfigs/__archive__/f/FFTW/FFTW-1.0.0-FCC-4.5.0-fujitsu.eb
diff --git a/easybuild/easyconfigs/f/Fujitsu/Fujitsu-21.05.eb b/easybuild/easyconfigs/__archive__/f/Fujitsu/Fujitsu-21.05.eb
similarity index 100%
rename from easybuild/easyconfigs/f/Fujitsu/Fujitsu-21.05.eb
rename to easybuild/easyconfigs/__archive__/f/Fujitsu/Fujitsu-21.05.eb
diff --git a/easybuild/easyconfigs/f/ffmpi/ffmpi-4.5.0.eb b/easybuild/easyconfigs/__archive__/f/ffmpi/ffmpi-4.5.0.eb
similarity index 100%
rename from easybuild/easyconfigs/f/ffmpi/ffmpi-4.5.0.eb
rename to easybuild/easyconfigs/__archive__/f/ffmpi/ffmpi-4.5.0.eb
diff --git a/easybuild/easyconfigs/f/flex/flex-2.6.4-FCC-4.5.0.eb b/easybuild/easyconfigs/__archive__/f/flex/flex-2.6.4-FCC-4.5.0.eb
similarity index 100%
rename from easybuild/easyconfigs/f/flex/flex-2.6.4-FCC-4.5.0.eb
rename to easybuild/easyconfigs/__archive__/f/flex/flex-2.6.4-FCC-4.5.0.eb
diff --git a/easybuild/easyconfigs/g/groff/groff-1.22.4-FCC-4.5.0.eb b/easybuild/easyconfigs/__archive__/g/groff/groff-1.22.4-FCC-4.5.0.eb
similarity index 100%
rename from easybuild/easyconfigs/g/groff/groff-1.22.4-FCC-4.5.0.eb
rename to easybuild/easyconfigs/__archive__/g/groff/groff-1.22.4-FCC-4.5.0.eb
diff --git a/easybuild/easyconfigs/h/HPL/HPL-2.3-Fujitsu-21.05.eb b/easybuild/easyconfigs/__archive__/h/HPL/HPL-2.3-Fujitsu-21.05.eb
similarity index 100%
rename from easybuild/easyconfigs/h/HPL/HPL-2.3-Fujitsu-21.05.eb
rename to easybuild/easyconfigs/__archive__/h/HPL/HPL-2.3-Fujitsu-21.05.eb
diff --git a/easybuild/easyconfigs/h/help2man/help2man-1.48.3-FCC-4.5.0.eb b/easybuild/easyconfigs/__archive__/h/help2man/help2man-1.48.3-FCC-4.5.0.eb
similarity index 100%
rename from easybuild/easyconfigs/h/help2man/help2man-1.48.3-FCC-4.5.0.eb
rename to easybuild/easyconfigs/__archive__/h/help2man/help2man-1.48.3-FCC-4.5.0.eb
diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-8.1-FCC-4.5.0.eb b/easybuild/easyconfigs/__archive__/l/libreadline/libreadline-8.1-FCC-4.5.0.eb
similarity index 100%
rename from easybuild/easyconfigs/l/libreadline/libreadline-8.1-FCC-4.5.0.eb
rename to easybuild/easyconfigs/__archive__/l/libreadline/libreadline-8.1-FCC-4.5.0.eb
diff --git a/easybuild/easyconfigs/l/libtool/libtool-2.4.6-FCC-4.5.0.eb b/easybuild/easyconfigs/__archive__/l/libtool/libtool-2.4.6-FCC-4.5.0.eb
similarity index 100%
rename from easybuild/easyconfigs/l/libtool/libtool-2.4.6-FCC-4.5.0.eb
rename to easybuild/easyconfigs/__archive__/l/libtool/libtool-2.4.6-FCC-4.5.0.eb
diff --git a/easybuild/easyconfigs/__archive__/l/libunwind/libunwind-1.1-foss-2015a.eb b/easybuild/easyconfigs/__archive__/l/libunwind/libunwind-1.1-foss-2015a.eb
index 19a10c83627..aba9b147133 100644
--- a/easybuild/easyconfigs/__archive__/l/libunwind/libunwind-1.1-foss-2015a.eb
+++ b/easybuild/easyconfigs/__archive__/l/libunwind/libunwind-1.1-foss-2015a.eb
@@ -15,7 +15,7 @@ toolchain = {'version': '2015a', 'name': 'foss'}
sources = [SOURCE_TAR_GZ]
source_urls = [GNU_SAVANNAH_SOURCE]
-checksums = ['fb4ea2f6fbbe45bf032cd36e586883ce']
+checksums = ['9dfe0fcae2a866de9d3942c66995e4b460230446887dbdab302d41a8aee8d09a']
dependencies = [
('XZ', '5.2.2'),
diff --git a/easybuild/easyconfigs/__archive__/l/libunwind/libunwind-1.1-goolf-1.4.10.eb b/easybuild/easyconfigs/__archive__/l/libunwind/libunwind-1.1-goolf-1.4.10.eb
index 97bdf439062..636165fe4bb 100644
--- a/easybuild/easyconfigs/__archive__/l/libunwind/libunwind-1.1-goolf-1.4.10.eb
+++ b/easybuild/easyconfigs/__archive__/l/libunwind/libunwind-1.1-goolf-1.4.10.eb
@@ -15,7 +15,7 @@ toolchain = {'version': '1.4.10', 'name': 'goolf'}
sources = [SOURCE_TAR_GZ]
source_urls = [GNU_SAVANNAH_SOURCE]
-checksums = ['fb4ea2f6fbbe45bf032cd36e586883ce']
+checksums = ['9dfe0fcae2a866de9d3942c66995e4b460230446887dbdab302d41a8aee8d09a']
dependencies = [
('XZ', '5.2.2'),
@@ -24,7 +24,6 @@ dependencies = [
preconfigopts = 'export LIBS="$LIBS -llzma" && '
sanity_check_paths = {
- 'files': ["include/libunwind.h", "lib/libunwind.%s" % SHLIB_EXT],
'files': ['include/libunwind.h', ('lib/libunwind.%s' % SHLIB_EXT, 'lib64/libunwind.%s' % SHLIB_EXT)],
'dirs': []
}
diff --git a/easybuild/easyconfigs/__archive__/l/libunwind/libunwind-1.1-ictce-5.3.0.eb b/easybuild/easyconfigs/__archive__/l/libunwind/libunwind-1.1-ictce-5.3.0.eb
index 5b2faed5579..8f3780386e6 100644
--- a/easybuild/easyconfigs/__archive__/l/libunwind/libunwind-1.1-ictce-5.3.0.eb
+++ b/easybuild/easyconfigs/__archive__/l/libunwind/libunwind-1.1-ictce-5.3.0.eb
@@ -15,7 +15,7 @@ toolchain = {'name': 'ictce', 'version': '5.3.0'}
sources = [SOURCE_TAR_GZ]
source_urls = [GNU_SAVANNAH_SOURCE]
-checksums = ['fb4ea2f6fbbe45bf032cd36e586883ce']
+checksums = ['9dfe0fcae2a866de9d3942c66995e4b460230446887dbdab302d41a8aee8d09a']
dependencies = [
('XZ', '5.2.2'),
@@ -24,7 +24,6 @@ dependencies = [
preconfigopts = 'export LIBS="$LIBS -llzma" && '
sanity_check_paths = {
- 'files': ["include/libunwind.h", "lib/libunwind.%s" % SHLIB_EXT],
'files': ['include/libunwind.h', ('lib/libunwind.%s' % SHLIB_EXT, 'lib64/libunwind.%s' % SHLIB_EXT)],
'dirs': []
}
diff --git a/easybuild/easyconfigs/m/M4/M4-1.4.18-FCC-4.5.0.eb b/easybuild/easyconfigs/__archive__/m/M4/M4-1.4.18-FCC-4.5.0.eb
similarity index 100%
rename from easybuild/easyconfigs/m/M4/M4-1.4.18-FCC-4.5.0.eb
rename to easybuild/easyconfigs/__archive__/m/M4/M4-1.4.18-FCC-4.5.0.eb
diff --git a/easybuild/easyconfigs/m/makeinfo/makeinfo-6.7-FCC-4.5.0.eb b/easybuild/easyconfigs/__archive__/m/makeinfo/makeinfo-6.7-FCC-4.5.0.eb
similarity index 100%
rename from easybuild/easyconfigs/m/makeinfo/makeinfo-6.7-FCC-4.5.0.eb
rename to easybuild/easyconfigs/__archive__/m/makeinfo/makeinfo-6.7-FCC-4.5.0.eb
diff --git a/easybuild/easyconfigs/n/ncurses/ncurses-6.2-FCC-4.5.0.eb b/easybuild/easyconfigs/__archive__/n/ncurses/ncurses-6.2-FCC-4.5.0.eb
similarity index 100%
rename from easybuild/easyconfigs/n/ncurses/ncurses-6.2-FCC-4.5.0.eb
rename to easybuild/easyconfigs/__archive__/n/ncurses/ncurses-6.2-FCC-4.5.0.eb
diff --git a/easybuild/easyconfigs/o/OSU-Micro-Benchmarks/OSU-Micro-Benchmarks-5.7.1-ffmpi-4.5.0.eb b/easybuild/easyconfigs/__archive__/o/OSU-Micro-Benchmarks/OSU-Micro-Benchmarks-5.7.1-ffmpi-4.5.0.eb
similarity index 100%
rename from easybuild/easyconfigs/o/OSU-Micro-Benchmarks/OSU-Micro-Benchmarks-5.7.1-ffmpi-4.5.0.eb
rename to easybuild/easyconfigs/__archive__/o/OSU-Micro-Benchmarks/OSU-Micro-Benchmarks-5.7.1-ffmpi-4.5.0.eb
diff --git a/easybuild/easyconfigs/p/Perl/Perl-5.32.1-FCC-4.5.0.eb b/easybuild/easyconfigs/__archive__/p/Perl/Perl-5.32.1-FCC-4.5.0.eb
similarity index 98%
rename from easybuild/easyconfigs/p/Perl/Perl-5.32.1-FCC-4.5.0.eb
rename to easybuild/easyconfigs/__archive__/p/Perl/Perl-5.32.1-FCC-4.5.0.eb
index 6b718496c02..d70fd1c84b2 100644
--- a/easybuild/easyconfigs/p/Perl/Perl-5.32.1-FCC-4.5.0.eb
+++ b/easybuild/easyconfigs/__archive__/p/Perl/Perl-5.32.1-FCC-4.5.0.eb
@@ -12,7 +12,12 @@ toolchainopts = {'pic': True}
source_urls = ['https://www.cpan.org/src/%(version_major)s.0']
sources = [SOURCELOWER_TAR_GZ]
-checksums = ['03b693901cd8ae807231b1787798cf1f2e0b8a56218d07b7da44f784a7caeb2c']
+patches = ['%(name)s-5.36.1_Avoid-spurious-test-failure-due-to-PATH-line-1000-ch.patch']
+checksums = [
+ {'perl-5.32.1.tar.gz': '03b693901cd8ae807231b1787798cf1f2e0b8a56218d07b7da44f784a7caeb2c'},
+ {'Perl-5.36.1_Avoid-spurious-test-failure-due-to-PATH-line-1000-ch.patch':
+ '8bc55f85eeacf35175f8e4f053ba7858f62974bcc073b265c2f0cd93a5f1307a'},
+]
builddependencies = [
('binutils', '2.36.1'),
@@ -231,7 +236,12 @@ exts_list = [
('File::Spec', '3.75', {
'source_tmpl': 'PathTools-%(version)s.tar.gz',
'source_urls': ['https://cpan.metacpan.org/authors/id/X/XS/XSAWYERX'],
- 'checksums': ['a558503aa6b1f8c727c0073339081a77888606aa701ada1ad62dd9d8c3f945a2'],
+ 'patches': ['PathTools-3.75_fix-cwd_enoent-test.patch'],
+ 'checksums': [
+ 'a558503aa6b1f8c727c0073339081a77888606aa701ada1ad62dd9d8c3f945a2',
+ {'PathTools-3.75_fix-cwd_enoent-test.patch':
+ '7a456a99d9b04a36359f3623f0deef8fe7f472c742f99cdcf0215c50afbbe7b1'},
+ ],
}),
('Test::Simple', '1.302183', {
'source_tmpl': 'Test-Simple-%(version)s.tar.gz',
@@ -1662,7 +1672,12 @@ exts_list = [
('Cwd', '3.75', {
'source_tmpl': 'PathTools-%(version)s.tar.gz',
'source_urls': ['https://cpan.metacpan.org/authors/id/X/XS/XSAWYERX'],
- 'checksums': ['a558503aa6b1f8c727c0073339081a77888606aa701ada1ad62dd9d8c3f945a2'],
+ 'patches': ['PathTools-3.75_fix-cwd_enoent-test.patch'],
+ 'checksums': [
+ 'a558503aa6b1f8c727c0073339081a77888606aa701ada1ad62dd9d8c3f945a2',
+ {'PathTools-3.75_fix-cwd_enoent-test.patch':
+ '7a456a99d9b04a36359f3623f0deef8fe7f472c742f99cdcf0215c50afbbe7b1'},
+ ],
}),
('MIME::Base64', '3.16', {
'source_tmpl': 'MIME-Base64-%(version)s.tar.gz',
diff --git a/easybuild/easyconfigs/z/zlib/zlib-1.2.11-FCC-4.5.0.eb b/easybuild/easyconfigs/__archive__/z/zlib/zlib-1.2.11-FCC-4.5.0.eb
similarity index 100%
rename from easybuild/easyconfigs/z/zlib/zlib-1.2.11-FCC-4.5.0.eb
rename to easybuild/easyconfigs/__archive__/z/zlib/zlib-1.2.11-FCC-4.5.0.eb
diff --git a/easybuild/easyconfigs/a/ABRicate/ABRicate-1.0.0-gompi-2023a.eb b/easybuild/easyconfigs/a/ABRicate/ABRicate-1.0.0-gompi-2023a.eb
new file mode 100644
index 00000000000..b21e8fda565
--- /dev/null
+++ b/easybuild/easyconfigs/a/ABRicate/ABRicate-1.0.0-gompi-2023a.eb
@@ -0,0 +1,41 @@
+# Author: Pavel Grochal (INUITS)
+# License: GPLv2
+
+easyblock = 'Tarball'
+
+name = 'ABRicate'
+version = '1.0.0'
+
+homepage = 'https://github.com/tseemann/abricate'
+description = "Mass screening of contigs for antimicrobial and virulence genes"
+
+toolchain = {'name': 'gompi', 'version': '2023a'}
+
+# https://github.com/tseemann/abricate
+github_account = 'tseemann'
+source_urls = [GITHUB_LOWER_SOURCE]
+sources = ['v%(version)s.zip']
+checksums = ['e7e2af45e47b887c4dba754af87a24014dcb5552eb3fe2a3fd66bb5359a0daf9']
+
+dependencies = [
+ ('Perl', '5.36.1'),
+ ('any2fasta', '0.4.2'),
+ ('BioPerl', '1.7.8'),
+ ('BLAST+', '2.14.1'),
+]
+
+postinstallcmds = ['%(installdir)s/bin/abricate --setupdb']
+
+sanity_check_paths = {
+ 'files': ['bin/abricate', 'bin/abricate-get_db'],
+ 'dirs': ['db'],
+}
+
+sanity_check_commands = [
+ "abricate --help",
+ "abricate --list",
+]
+
+modloadmsg = "abricate databases are located in $EBROOTABRICATE/db\n"
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/a/ABySS/ABySS-2.3.7-foss-2023a.eb b/easybuild/easyconfigs/a/ABySS/ABySS-2.3.7-foss-2023a.eb
new file mode 100644
index 00000000000..b7ed9556e62
--- /dev/null
+++ b/easybuild/easyconfigs/a/ABySS/ABySS-2.3.7-foss-2023a.eb
@@ -0,0 +1,34 @@
+easyblock = 'ConfigureMake'
+
+name = 'ABySS'
+version = '2.3.7'
+
+homepage = 'https://www.bcgsc.ca/platform/bioinfo/software/abyss'
+description = """Assembly By Short Sequences - a de novo, parallel, paired-end sequence assembler"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'usempi': True, 'cstd': 'c++17'}
+
+source_urls = ['http://github.com/bcgsc/abyss/releases/download/%(version)s/']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['ba37780e79ec3aa359b6003e383caef13479a87f4d0022af01b86398f9ffca1f']
+
+dependencies = [
+ ('Autoconf', '2.71'),
+ ('Automake', '1.16.5'),
+ ('Boost', '1.82.0'),
+ ('sparsehash', '2.0.4'),
+ ('btllib', '1.7.0'),
+]
+
+preconfigopts = "./autogen.sh && "
+configopts = 'CXXFLAGS="$CXXFLAGS -Wno-error"'
+
+sanity_check_paths = {
+ 'files': ["bin/ABYSS", "bin/ABYSS-P"],
+ 'dirs': []
+}
+
+sanity_check_commands = ['ABYSS --help']
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/a/AEDT/AEDT-2024R1.eb b/easybuild/easyconfigs/a/AEDT/AEDT-2024R1.eb
new file mode 100644
index 00000000000..e6c25eaf32a
--- /dev/null
+++ b/easybuild/easyconfigs/a/AEDT/AEDT-2024R1.eb
@@ -0,0 +1,16 @@
+name = 'AEDT'
+version = '2024R1'
+
+homepage = 'https://www.ansys.com/products/electronics'
+description = """The Ansys Electronics Desktop (AEDT) is a platform that enables
+true electronics system design. AEDT provides access to the Ansys gold-standard
+electromagnetics simulation solutions such as Ansys HFSS, Ansys Maxwell, Ansys Q3D
+Extractor, Ansys SIwave, and Ansys Icepak using electrical CAD (ECAD) and mechanical
+CAD (MCAD) workflows."""
+
+toolchain = SYSTEM
+
+sources = ['ELECTRONICS_%(version)s_LINX64.tgz']
+checksums = ['7b131adf981ebca1e2f4fe8e607e50323167b69e77180a0ab61b2759d57abca5']
+
+moduleclass = 'phys'
diff --git a/easybuild/easyconfigs/a/AFNI/AFNI-24.0.02-foss-2023a.eb b/easybuild/easyconfigs/a/AFNI/AFNI-24.0.02-foss-2023a.eb
new file mode 100644
index 00000000000..a1b2860e3fa
--- /dev/null
+++ b/easybuild/easyconfigs/a/AFNI/AFNI-24.0.02-foss-2023a.eb
@@ -0,0 +1,67 @@
+# Updated to version 24.0.02
+# Author: J. Sassmannshausen (Imperial College London/UK)
+
+easyblock = 'CMakeMake'
+
+name = 'AFNI'
+version = '24.0.02'
+
+homepage = 'http://afni.nimh.nih.gov/'
+description = """AFNI is a set of C programs for processing, analyzing, and displaying functional MRI (FMRI) data -
+ a technique for mapping human brain activity."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'openmp': True, 'pic': True}
+
+source_urls = ['https://github.com/afni/afni/archive/']
+sources = ['AFNI_%(version)s.tar.gz']
+checksums = ['2915ed5bf98712abe3373bfc285f946fdee6cf1367e23ba80575dd6eedb3529a']
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+]
+
+dependencies = [
+ ('tcsh', '6.24.10'),
+ ('Python', '3.11.3'),
+ ('X11', '20230603'),
+ ('motif', '2.3.8'),
+ ('R', '4.3.2'),
+ ('PyQt5', '5.15.10'),
+ ('expat', '2.5.0'),
+ ('libpng', '1.6.39'),
+ ('libjpeg-turbo', '2.1.5.1'),
+ ('GSL', '2.7'),
+ ('GLib', '2.77.1'),
+ ('zlib', '1.2.13'),
+ ('freeglut', '3.4.0'),
+ ('Pillow', '10.0.0'),
+ ('matplotlib', '3.7.2'),
+ ('SciPy-bundle', '2023.07'),
+ ('Xvfb', '21.1.8'),
+ ('FFmpeg', '6.0'), # required for running the program
+]
+
+# Make sure stuff does not get installed in .local
+configopts = '-DSTANDARD_PYTHON_INSTALL=OFF '
+
+# Changing permissions of some files
+postinstallcmds = ['chmod a+x %(installdir)s/bin/afni_system_check.py ;']
+postinstallcmds += ['chmod a+x %(installdir)s/bin/uber_subject.py ; ']
+postinstallcmds += ['chmod a+x %(installdir)s/bin/init_user_dotfiles.py ; ']
+# Copying apparently missing files over
+postinstallcmds += ['cp -f %(start_dir)s/src/discoraj/ClusterExplorer/ClustExp_HistTable.py %(installdir)s/bin ; ']
+postinstallcmds += ['cp -f %(start_dir)s/src/discoraj/ClusterExplorer/ClustExp_StatParse.py %(installdir)s/bin ; ']
+postinstallcmds += ['cp -rf %(start_dir)s/src/scripts_for_r %(installdir)s/bin ; ']
+postinstallcmds += ['cp -rf %(start_dir)s/src/R_scripts %(installdir)s/bin/scripts_for_r ; ']
+
+sanity_check_commands = ["afni -help"]
+
+sanity_check_paths = {
+ 'files': ['bin/afni', 'lib/libgts.%s' % SHLIB_EXT, 'lib/libnifti2.%s' % SHLIB_EXT],
+ 'dirs': ['include', 'share'],
+}
+
+modextrapaths = {'PATH': ['bin/scripts_for_r']}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/a/AGAT/AGAT-1.4.0-GCC-12.3.0.eb b/easybuild/easyconfigs/a/AGAT/AGAT-1.4.0-GCC-12.3.0.eb
new file mode 100644
index 00000000000..2677e62fda1
--- /dev/null
+++ b/easybuild/easyconfigs/a/AGAT/AGAT-1.4.0-GCC-12.3.0.eb
@@ -0,0 +1,70 @@
+# easybuild easyconfig
+#
+# John Dey Fred Hutchinson Cancer Center
+# Thomas Eylenbosch - Gluo NV
+# Update: Petr Král (INUITS)
+#
+easyblock = 'Bundle'
+
+name = 'AGAT'
+version = '1.4.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.3.0'}
+
+builddependencies = [('binutils', '2.40')]
+
+dependencies = [
+ ('Perl', '5.36.1'),
+ ('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': ['d5e30db44b5d05ed51c606a823894c01c85c1ed85580148ad5473cb2f2b2ac77'],
+ }),
+]
+
+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/ALL/ALL-0.9.2-foss-2023b.eb b/easybuild/easyconfigs/a/ALL/ALL-0.9.2-foss-2023b.eb
new file mode 100644
index 00000000000..eb1a53ff8da
--- /dev/null
+++ b/easybuild/easyconfigs/a/ALL/ALL-0.9.2-foss-2023b.eb
@@ -0,0 +1,41 @@
+easyblock = 'CMakeMake'
+
+name = 'ALL'
+version = '0.9.2'
+
+homepage = 'https://gitlab.jsc.fz-juelich.de/SLMS/loadbalancing'
+description = """A Load Balancing Library (ALL) aims to provide an easy way to include dynamic
+domain-based load balancing into particle based simulation codes. The library
+is developed in the Simulation Laboratory Molecular Systems of the Jülich
+Supercomputing Centre at Forschungszentrum Jülich."""
+
+toolchain = {'name': 'foss', 'version': '2023b'}
+toolchainopts = {'usempi': True}
+
+source_urls = ["https://gitlab.jsc.fz-juelich.de/SLMS/loadbalancing/-/archive/v%(version)s/"]
+sources = ['loadbalancing-v%(version)s.tar.gz']
+checksums = ['2b4ef52c604c3c0c467712d0912a33c82177610b67edc14df1e034779c6ddb71']
+
+builddependencies = [
+ ('CMake', '3.27.6'),
+ ('Boost', '1.83.0'), # only needed for tests
+]
+
+dependencies = [
+ ('VTK', '9.3.0'),
+]
+
+configopts = '-DCM_ALL_FORTRAN=ON -DCM_ALL_USE_F08=ON -DCM_ALL_VORONOI=ON -DCM_ALL_VTK_OUTPUT=ON '
+configopts += '-DCM_ALL_TESTS=ON -DCM_ALL_AUTO_DOC=OFF -DVTK_DIR=$EBROOTVTK '
+
+runtest = 'test'
+
+sanity_check_paths = {
+ 'files': [
+ 'include/ALL.hpp', 'include/ALL_Voronoi.hpp', 'lib/all_module.mod',
+ 'lib/libALL.a', 'lib/libALL_fortran.a'
+ ],
+ 'dirs': ['lib/cmake'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/a/AMGX/AMGX-2.4.0-foss-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/a/AMGX/AMGX-2.4.0-foss-2023a-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..e4549fab545
--- /dev/null
+++ b/easybuild/easyconfigs/a/AMGX/AMGX-2.4.0-foss-2023a-CUDA-12.1.1.eb
@@ -0,0 +1,114 @@
+easyblock = 'CMakeMake'
+
+name = 'AMGX'
+version = '2.4.0'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://github.com/NVIDIA/AMGX'
+
+description = """Distributed multigrid linear solver library on GPU"""
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'openmp': True}
+
+github_account = 'NVIDIA'
+source_urls = [GITHUB_SOURCE]
+sources = ['v%(version)s.tar.gz']
+patches = [
+ 'AMGX-%(version)s_external-thrust.patch',
+ 'AMGX-%(version)s_fix-openmp-linking.patch',
+]
+checksums = [
+ {'v2.4.0.tar.gz': 'b030b8c2e58c4c9987444e5d28fd61e1c5dcd65d484a290d6a18ae0bc5c0e9db'},
+ {'AMGX-2.4.0_external-thrust.patch': '90e4be09615a26bd7ebce68ced63d9d3b52141f7b480e8cedb17b05003656e16'},
+ {'AMGX-2.4.0_fix-openmp-linking.patch': '10046d5d9fff48cb4902797525d43963855c4834f262bdc3c341bbc2cb1f6f76'},
+]
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+]
+
+dependencies = [
+ ('CUDA', '12.1.1', '', SYSTEM),
+ ('UCX-CUDA', '1.14.1', versionsuffix),
+ ('magma', '2.7.2', versionsuffix),
+ ('CCCL', '2.3.0', versionsuffix),
+]
+
+cuda_compute_capabilities = ['7.0', '8.0', '9.0'] # AMGX defaults for CUDA 12
+
+configopts = '-DCUDA_ARCH="%(cuda_cc_cmake)s" '
+
+# Can't run all tests (55 failing); many fail due to mixed precision not being supported
+# some fail due to missing external data files, many unknown issues
+# All tests can be attempted with "amgx_tests_launcher --all"
+local_tests = [
+ 'AggregatesCoarseGeneratorTest',
+ 'AggregatesCoarseningFactor',
+ 'AggregatesDeterminism',
+ 'AggregatesDiagonalOutside',
+ 'AmgLevelsReuse',
+ 'CAPIFailure',
+ 'CAPIVersionCheck',
+ 'ClassicalStrengthAffinityTest',
+ 'ClassicalStrengthTest',
+ 'ConfigStringParsing',
+ 'CsrMultiplyTests_Poisson27_100_100',
+ 'CsrMultiplyTests_Poisson27_10_10',
+ 'CsrMultiplyTests_Poisson5_100_100',
+ 'CsrMultiplyTests_Poisson5_10_1',
+ 'CsrMultiplyTests_Poisson7_100_100',
+ 'CsrMultiplyTests_Poisson7_10_10',
+ 'CsrMultiplyTests_Poisson9_100_100',
+ 'CsrMultiplyTests_Poisson9_10_10',
+ 'CsrSparsityILU1Tests_Poisson27_100_100',
+ 'CsrSparsityILU1Tests_Poisson27_10_10',
+ 'CsrSparsityILU1Tests_Poisson5_100_100',
+ 'CsrSparsityILU1Tests_Poisson5_10_10',
+ 'CsrSparsityILU1Tests_Poisson7_100_100',
+ 'CsrSparsityILU1Tests_Poisson7_10_10',
+ 'CsrSparsityILU1Tests_Poisson9_100_100',
+ 'CsrSparsityILU1Tests_Poisson9_10_10',
+ 'CsrSparsityTests_Poisson27_100_100',
+ 'CsrSparsityTests_Poisson27_10_10',
+ 'CsrSparsityTests_Poisson5_100_100',
+ 'CsrSparsityTests_Poisson5_10_10',
+ 'CsrSparsityTests_Poisson7_100_100',
+ 'CsrSparsityTests_Poisson7_10_10',
+ 'CsrSparsityTests_Poisson9_100_100',
+ 'CsrSparsityTests_Poisson9_10_10',
+ 'DenseLUSolverTest_Factorization_Id_256',
+ 'DenseLUSolverTest_Factorization_Id_32',
+ 'DenseLUSolverTest_Solve_Id_256',
+ 'DenseLUSolverTest_Solve_Id_32',
+ 'DenseLUSolverTest_Solve_Poisson3D',
+ 'FactoriesTest',
+ 'FGMRESConvergencePoisson',
+ 'GenericSpMVTest',
+ 'IDRConvergencePoisson',
+ 'IDRmsyncConvergencePoisson',
+ 'LargeMatricesSupport',
+ 'LowDegDeterminism',
+ 'MatrixTests',
+ 'MatrixVectorMultiplyTests',
+ 'MinMaxColoringTest',
+ 'Nested_AMG_equivalence',
+ 'NestedSolvers',
+ 'NormTests',
+ 'ObjectDestructionSequence',
+ 'PermuteTests',
+ 'RandomMatrix',
+ 'SmootherBlockPoissonTest',
+ 'TemplateConfigTest',
+ 'TemplateTest',
+ 'truncateCountTest',
+ 'VectorTests',
+]
+
+runtest = "amgx_tests_launcher && src/amgx_tests_launcher " + ' '.join(local_tests)
+
+sanity_check_paths = {
+ 'files': ['include/amgx_c.h', 'lib/libamgx.a', 'lib/libamgxsh.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/a/AMGX/AMGX-2.4.0_external-thrust.patch b/easybuild/easyconfigs/a/AMGX/AMGX-2.4.0_external-thrust.patch
new file mode 100644
index 00000000000..6d734ab63d0
--- /dev/null
+++ b/easybuild/easyconfigs/a/AMGX/AMGX-2.4.0_external-thrust.patch
@@ -0,0 +1,13 @@
+Forces AMGX to use external dependencies, avoiding needing the git submodule
+the entire (deprecated) thrust library and all its dependencies.
+author: micketeer@gmail.com
+--- CMakeLists.txt.orig 2024-03-30 01:54:34.469780980 +0100
++++ CMakeLists.txt 2024-03-30 01:54:46.491884432 +0100
+@@ -251,7 +251,6 @@
+ ENDIF()
+
+ # We depend on a specific version of thrust now so include the submodule
+-add_subdirectory("thrust")
+ find_package(Thrust REQUIRED CONFIG)
+ thrust_create_target(Thrust)
+
diff --git a/easybuild/easyconfigs/a/AMGX/AMGX-2.4.0_fix-openmp-linking.patch b/easybuild/easyconfigs/a/AMGX/AMGX-2.4.0_fix-openmp-linking.patch
new file mode 100644
index 00000000000..eab0e44e2b1
--- /dev/null
+++ b/easybuild/easyconfigs/a/AMGX/AMGX-2.4.0_fix-openmp-linking.patch
@@ -0,0 +1,15 @@
+Adds missing link option necessary for openmp linking.
+The target_link_libraries used for amgx are not sufficient as CMake haven't
+sorted this out yet, thus manually adding the flag for GCC.
+author: micketeer@gmail.com
+--- CMakeLists.txt.orig 2024-03-30 03:27:22.354168764 +0100
++++ CMakeLists.txt 2024-03-30 03:28:00.397486779 +0100
+@@ -291,6 +291,8 @@
+ ELSE (WIN32)
+ target_link_libraries(amgx CUDA::cublas CUDA::cusparse CUDA::cusolver CUDA::nvToolsExt m pthread)
+ target_link_libraries(amgxsh CUDA::cublas CUDA::cusparse CUDA::cusolver CUDA::nvToolsExt m pthread)
++ target_link_options(amgx INTERFACE "-fopenmp")
++ target_link_options(amgxsh INTERFACE "-fopenmp")
+ ENDIF(WIN32)
+
+ if(MPI_FOUND)
diff --git a/easybuild/easyconfigs/a/AMICA/AMICA-2024.1.19-intel-2023a.eb b/easybuild/easyconfigs/a/AMICA/AMICA-2024.1.19-intel-2023a.eb
new file mode 100644
index 00000000000..22c95a70721
--- /dev/null
+++ b/easybuild/easyconfigs/a/AMICA/AMICA-2024.1.19-intel-2023a.eb
@@ -0,0 +1,30 @@
+easyblock = 'CmdCp'
+
+name = 'AMICA'
+version = '2024.1.19'
+local_commit = 'e0db55f07c8c410641cd5b0df5498a5a53129ce6'
+
+homepage = 'https://github.com/sccn/amica'
+description = """Code for AMICA: Adaptive Mixture ICA with shared components"""
+
+toolchain = {'name': 'intel', 'version': '2023a'}
+toolchainopts = {'openmp': True}
+
+source_urls = ['https://github.com/sccn/amica/archive/']
+sources = [{'download_filename': '%s.zip' % local_commit, 'filename': '%(name)s-%(version)s.zip'}]
+checksums = ['d856ef1bf4bd09b2aacf5da6832b9af5d7fb70976786f43585c72acd1a52443b']
+
+# original command:
+# $ mpif90 -static-intel -fpp -O3 -march=core-avx2 -heap-arrays -qopenmp -mkl -DMKL -o amica17 funmod2.f90 amica17.f90
+cmds_map = [('.*', "$MPIF90 $F90FLAGS -static-intel -fpp -heap-arrays -mkl -DMKL -o amica17 funmod2.f90 amica17.f90")]
+
+test_cmd = "./amica17 ./amicadefs.param"
+
+files_to_copy = [(['amica17', 'amicadefs.param'], 'bin')]
+
+sanity_check_paths = {
+ 'files': ["bin/amica17", "bin/amicadefs.param"],
+ 'dirs': [],
+}
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/a/AMOS/AMOS-3.1.0-foss-2023a.eb b/easybuild/easyconfigs/a/AMOS/AMOS-3.1.0-foss-2023a.eb
new file mode 100644
index 00000000000..1f2620e9f2c
--- /dev/null
+++ b/easybuild/easyconfigs/a/AMOS/AMOS-3.1.0-foss-2023a.eb
@@ -0,0 +1,52 @@
+##
+# 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 = 'AMOS'
+version = '3.1.0'
+
+homepage = 'http://amos.sourceforge.net'
+description = """The AMOS consortium is committed to the development of open-source whole genome assembly software"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'pic': True, 'cstd': 'c++98'}
+
+source_urls = [SOURCEFORGE_SOURCE]
+sources = [SOURCELOWER_TAR_GZ]
+patches = [
+ 'AMOS-%(version)s_GCC-4.7.patch',
+ 'AMOS-3.1.0_fix_deprecated_maxmatch-flag.patch',
+ 'AMOS-3.1.0_link_correctly_to_DELTAFILER_SHOWCOORDS.patch',
+]
+checksums = [
+ {'amos-3.1.0.tar.gz': '2d9f50e39186ad3dde3d3b28cc265e8d632430657f40fc3978ce34ab1b3db43b'},
+ {'AMOS-3.1.0_GCC-4.7.patch': '8633ff196568e208cc12932f25f46fa35f7e9a9e80e0bbf4288ae070dd7b8844'},
+ {'AMOS-3.1.0_fix_deprecated_maxmatch-flag.patch':
+ '80379cee8e8c8228590af89d37ea3fdb734c7e0ebe5bb357eaf2af71d1399fc6'},
+ {'AMOS-3.1.0_link_correctly_to_DELTAFILER_SHOWCOORDS.patch':
+ 'e291d87b8cd27752474ee0e1f3acb44f9657cac50d5d6dcceca0efc6436f1fe1'},
+]
+
+dependencies = [
+ ('expat', '2.5.0'),
+ ('MUMmer', '4.0.0rc1'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/AMOScmp', 'bin/AMOScmp-shortReads', 'bin/AMOScmp-shortReads-alignmentTrimmed'],
+ 'dirs': []
+}
+
+parallel = 1 # make crashes otherwise
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/a/AMOS/AMOS-3.1.0_fix_deprecated_maxmatch-flag.patch b/easybuild/easyconfigs/a/AMOS/AMOS-3.1.0_fix_deprecated_maxmatch-flag.patch
new file mode 100644
index 00000000000..1c31a0a98a0
--- /dev/null
+++ b/easybuild/easyconfigs/a/AMOS/AMOS-3.1.0_fix_deprecated_maxmatch-flag.patch
@@ -0,0 +1,14 @@
+Replace deprecate NUCMER flag -maxmatch with --maxmatch (from MUMmer 4.0.0rc)
+see https://github.com/sanger-pathogens/circlator/issues/121 and https://github.com/mummer4/mummer/issues/49
+diff -ru amos-3.1.0.orig/src/Pipeline/minimus2.acf amos-3.1.0/src/Pipeline/minimus2.acf
+--- amos-3.1.0.orig/src/Pipeline/minimus2.acf 2011-07-25 01:27:26.000000000 +0200
++++ amos-3.1.0/src/Pipeline/minimus2.acf 2024-03-13 17:03:35.981707768 +0100
+@@ -54,7 +54,7 @@
+ 13: $(BINDIR)/dumpreads $(BANK) -m $(REFCOUNT) > $(QRYSEQ)
+
+ ## Getting overlaps
+-20: $(NUCMER) -maxmatch -c $(OVERLAP) $(REFSEQ) $(QRYSEQ) -p $(PREFIX)
++20: $(NUCMER) --maxmatch -c $(OVERLAP) $(REFSEQ) $(QRYSEQ) -p $(PREFIX)
+ 21: $(SHOWCOORDS) -H -c -l -o -r -I $(MINID) $(ALIGN) | $(BINDIR)/nucmerAnnotate | egrep 'BEGIN|END|CONTAIN|IDENTITY' > $(COORDS)
+ 22: $(BINDIR)/nucmer2ovl -ignore $(MAXTRIM) -tab $(COORDS) | $(BINDIR)/sort2 > $(OVLTAB)
+
diff --git a/easybuild/easyconfigs/a/AMOS/AMOS-3.1.0_link_correctly_to_DELTAFILER_SHOWCOORDS.patch b/easybuild/easyconfigs/a/AMOS/AMOS-3.1.0_link_correctly_to_DELTAFILER_SHOWCOORDS.patch
new file mode 100644
index 00000000000..82238b9a089
--- /dev/null
+++ b/easybuild/easyconfigs/a/AMOS/AMOS-3.1.0_link_correctly_to_DELTAFILER_SHOWCOORDS.patch
@@ -0,0 +1,15 @@
+minimus2 needs delta-filter and show-coords but these were not set correctly like NUCMER
+author: Lara Peeters (HPC-UGent)
+diff -ru amos-3.1.0.orig/src/Pipeline/Makefile.in amos-3.1.0/src/Pipeline/Makefile.in
+--- amos-3.1.0.orig/src/Pipeline/Makefile.in 2011-08-05 05:08:07.000000000 +0200
++++ amos-3.1.0/src/Pipeline/Makefile.in 2024-03-14 12:31:16.218067000 +0100
+@@ -477,7 +477,8 @@
+ echo '#!$(bindir)/runAmos -C' > "$(DESTDIR)$(bindir)/$$b"; \
+ sed -e 's|^BINDIR[ ]*=.*$$|BINDIR=$(bindir)|' \
+ -e 's|^NUCMER[ ]*=.*$$|NUCMER=$(NUCMER)|' \
+- -e 's|^DELTAFILTER[ ]*=.*$$|DELTAFILTER=$(DELTAFILTER)|' \
++ -e 's|^DELTAFILTER[ ]*=.*$$|DELTAFILTER=$(DELTAFILTER)|' \
++ -e 's|^SHOWCOORDS[ ]*=.*$$|SHOWCOORDS=$(SHOWCOORDS)|' \
+ "$(DESTDIR)$(bindir)/$$f" >> "$(DESTDIR)$(bindir)/$$b" \
+ || exit 1; \
+ ;; \
diff --git a/easybuild/easyconfigs/a/AMRFinderPlus/AMRFinderPlus-3.12.8-gompi-2023a.eb b/easybuild/easyconfigs/a/AMRFinderPlus/AMRFinderPlus-3.12.8-gompi-2023a.eb
new file mode 100644
index 00000000000..cc4de6c8fb0
--- /dev/null
+++ b/easybuild/easyconfigs/a/AMRFinderPlus/AMRFinderPlus-3.12.8-gompi-2023a.eb
@@ -0,0 +1,41 @@
+easyblock = 'MakeCp'
+
+name = 'AMRFinderPlus'
+version = '3.12.8'
+
+homepage = 'https://github.com/ncbi/amr'
+description = """This software and the accompanying database are designed to find acquired antimicrobial
+ resistance genes and some point mutations in protein or assembled nucleotide sequences."""
+
+toolchain = {'name': 'gompi', 'version': '2023a'}
+
+github_account = 'ncbi'
+source_urls = ['https://github.com/ncbi/amr/archive/']
+sources = ['amrfinder_v%(version)s.tar.gz']
+checksums = ['a199bc332877bad9033a7620bc5e8e849db1f19a9ba8b7357ec5451a6a283aa0']
+
+dependencies = [
+ ('BLAST+', '2.14.1'),
+ ('HMMER', '3.4'),
+ ('cURL', '8.0.1')
+]
+
+# Binaries are installed to the root of the installation, so add that root to the PATH:
+modextrapaths = {'PATH': ''}
+
+# a list of binary files that will be produced
+local_binaries = ['amr_report', 'amrfinder', 'amrfinder_update', 'dna_mutation', 'fasta2parts', 'fasta_check',
+ 'fasta_extract', 'gff_check']
+
+files_to_copy = local_binaries
+
+sanity_check_paths = {
+ 'files': local_binaries,
+ 'dirs': [],
+}
+
+sanity_check_commands = [
+ ('amrfinder', '-h')
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/a/ANTLR/ANTLR-2.7.7-GCCcore-12.3.0-Java-11.eb b/easybuild/easyconfigs/a/ANTLR/ANTLR-2.7.7-GCCcore-12.3.0-Java-11.eb
new file mode 100644
index 00000000000..4f76242d899
--- /dev/null
+++ b/easybuild/easyconfigs/a/ANTLR/ANTLR-2.7.7-GCCcore-12.3.0-Java-11.eb
@@ -0,0 +1,36 @@
+easyblock = 'ConfigureMake'
+
+name = 'ANTLR'
+version = '2.7.7'
+versionsuffix = '-Java-%(javaver)s'
+
+homepage = 'https://www.antlr2.org/'
+description = """ANTLR, ANother Tool for Language Recognition, (formerly PCCTS)
+ is a language tool that provides a framework for constructing recognizers,
+ compilers, and translators from grammatical descriptions containing
+ Java, C#, C++, or Python actions."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = ['https://www.antlr2.org/download/']
+sources = [SOURCELOWER_TAR_GZ]
+patches = ['%(name)s-%(version)s_includes.patch']
+checksums = [
+ '853aeb021aef7586bda29e74a6b03006bcb565a755c86b66032d8ec31b67dbb9', # antlr-2.7.7.tar.gz
+ 'd167d3248a03301bc93efcb37d5df959aae6794968e42231af0b0dd26d6a2e66', # ANTLR-2.7.7_includes.patch
+]
+
+builddependencies = [('binutils', '2.40')]
+
+dependencies = [('Java', '11', '', SYSTEM)]
+
+configopts = '--disable-examples --disable-csharp --disable-python'
+
+sanity_check_paths = {
+ 'files': ['bin/antlr', 'bin/antlr-config'],
+ 'dirs': ['include'],
+}
+
+sanity_check_commands = ["antlr --help"]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/a/AOCC/AOCC-4.2.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/a/AOCC/AOCC-4.2.0-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..b88337b09b4
--- /dev/null
+++ b/easybuild/easyconfigs/a/AOCC/AOCC-4.2.0-GCCcore-13.3.0.eb
@@ -0,0 +1,29 @@
+name = 'AOCC'
+version = '4.2.0'
+
+homepage = 'https://developer.amd.com/amd-aocc/'
+description = """AOCC is a high-performance x86 CPU compiler for C, C++, and Fortran programming languages.
+ It supports target-dependent and target-independent optimizations. It is highly optimized for x86 targets,
+ especially for AMD “Zen”-based processors giving a performance edge for time critical HPC and other
+ applications over other compilers."""
+
+# Clang also depends on libstdc++ during runtime, but this dependency is
+# already specified as the toolchain.
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = [
+ 'https://download.amd.com/developer/eula/%(namelower)s/%(namelower)s-%(version_major)s-%(version_minor)s'
+]
+sources = ['%(namelower)s-compiler-%(version)s.tar']
+checksums = ['ed5a560ec745b24dc0685ccdcbde914843fb2f2dfbfce1ba592de4ffbce1ccab']
+
+dependencies = [
+ ('binutils', '2.42'),
+ ('ncurses', '6.5'),
+ ('zlib', '1.3.1'),
+ ('libxml2', '2.12.7'),
+]
+
+clangversion = '16.0.3'
+
+moduleclass = 'compiler'
diff --git a/easybuild/easyconfigs/a/AOCC/AOCC-5.0.0-GCCcore-14.2.0.eb b/easybuild/easyconfigs/a/AOCC/AOCC-5.0.0-GCCcore-14.2.0.eb
new file mode 100644
index 00000000000..36d359a6469
--- /dev/null
+++ b/easybuild/easyconfigs/a/AOCC/AOCC-5.0.0-GCCcore-14.2.0.eb
@@ -0,0 +1,24 @@
+name = 'AOCC'
+version = '5.0.0'
+
+homepage = 'https://developer.amd.com/amd-aocc/'
+description = "AMD Optimized C/C++ & Fortran compilers (AOCC) based on LLVM 13.0"
+
+# Clang also depends on libstdc++ during runtime, but this dependency is
+# already specified as the toolchain.
+toolchain = {'name': 'GCCcore', 'version': '14.2.0'}
+
+source_urls = ['https://download.amd.com/developer/eula/aocc/aocc-5-0/']
+sources = ['aocc-compiler-%(version)s.tar']
+checksums = ['966fac2d2c759e9de6e969c10ada7a7b306c113f7f1e07ea376829ec86380daa']
+
+clangversion = '17.0.6'
+
+dependencies = [
+ ('binutils', '2.42'),
+ ('ncurses', '6.5'),
+ ('zlib', '1.3.1'),
+ ('libxml2', '2.13.4'),
+]
+
+moduleclass = 'compiler'
diff --git a/easybuild/easyconfigs/a/AOFlagger/AOFlagger-3.4.0-foss-2023b.eb b/easybuild/easyconfigs/a/AOFlagger/AOFlagger-3.4.0-foss-2023b.eb
new file mode 100644
index 00000000000..d1fe2a3f7dd
--- /dev/null
+++ b/easybuild/easyconfigs/a/AOFlagger/AOFlagger-3.4.0-foss-2023b.eb
@@ -0,0 +1,46 @@
+easyblock = 'CMakeMake'
+
+name = 'AOFlagger'
+version = '3.4.0'
+
+homepage = 'https://aoflagger.readthedocs.io/'
+description = """The AOFlagger is a tool that can find and remove radio-frequency interference (RFI)
+in radio astronomical observations. It can make use of Lua scripts to make flagging strategies flexible,
+and the tools are applicable to a wide set of telescopes."""
+
+toolchain = {'name': 'foss', 'version': '2023b'}
+
+sources = [
+ {
+ 'source_urls': [
+ 'https://gitlab.com/aroffringa/%(namelower)s/-/package_files/96704214/'
+ ],
+ 'filename': '%(namelower)s-v%(version)s.tar.bz2',
+ 'download_filename': 'download'
+ },
+]
+checksums = ['9560b7381b68f37d842599f222a8aa2a5d3d3d501d1277471e1a0ba3d7b2aeba']
+
+builddependencies = [
+ ('CMake', '3.27.6'),
+]
+dependencies = [
+ ('casacore', '3.5.0'),
+ ('Boost', '1.83.0'),
+ ('CFITSIO', '4.3.1'),
+ ('GSL', '2.7'),
+ ('HDF5', '1.14.3'),
+ ('Python', '3.11.5'),
+ ('Lua', '5.4.6'),
+ ('libpng', '1.6.40'),
+ ('libxml2', '2.11.5'),
+]
+
+sanity_check_paths = {
+ 'files': ['include/%(namelower)s.h', 'bin/%(namelower)s'],
+ 'dirs': ['bin'],
+}
+
+sanity_check_commands = [('%(namelower)s', '-v')]
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/a/APOST3D/APOST3D-20240527-intel-compilers-2023.1.0.eb b/easybuild/easyconfigs/a/APOST3D/APOST3D-20240527-intel-compilers-2023.1.0.eb
new file mode 100644
index 00000000000..c5c4c40ac5b
--- /dev/null
+++ b/easybuild/easyconfigs/a/APOST3D/APOST3D-20240527-intel-compilers-2023.1.0.eb
@@ -0,0 +1,51 @@
+easyblock = 'CmdCp'
+
+name = 'APOST3D'
+version = '20240527'
+local_commit = 'e06c8b0'
+
+description = """
+Open-source APOST-3D software features a large number of wavefunction analysis tools developed
+over the past 20 years, aiming at connecting classical chemical concepts with the electronic
+structure of molecules. APOST-3D relies on the identification of the atom in the molecule
+(AIM), and several analysis tools are implemented in the most general way so that they can be
+used in combination with any chosen AIM.
+A Fortran-based code developed at the Universitat de Girona (UdG) by P. Salvador and collaborators.
+"""
+homepage = 'https://github.com/mgimferrer/APOST3D'
+
+toolchain = {'name': 'intel-compilers', 'version': '2023.1.0'}
+
+builddependencies = [
+ ('make', '4.4.1'),
+]
+
+source_urls = ['https://github.com/mgimferrer/APOST3D/archive']
+sources = [{'download_filename': '%s.tar.gz' % local_commit, 'filename': SOURCE_TAR_GZ}]
+checksums = ['1eb9a0f97b4dd135b782b96cadc37b3acfc27c69521cf3aab6cc10d4fc9292af']
+
+local_cmds = ' export APOST3D_PATH=%(start_dir)s && '
+# Compile provided Libxc version 4.2.3
+# (it is not possible to couple APOST-3D with newer Libxc libraries):
+local_cmds += 'bash compile_libxc.sh && '
+# Compile
+local_cmds += 'make -f Makefile_profgen && '
+# Run test calculations on single-processor:
+local_cmds += 'bash compiler-runtest && '
+# Recompile using info geneated in previous step
+local_cmds += 'make -f Makefile_profuse && '
+# Run test calculations in parallel:
+local_cmds += 'bash compiler-runtest2'
+
+cmds_map = [('.*', local_cmds)]
+
+local_bin_files = ['apost3d', 'apost3d-eos', 'eos_aom']
+
+files_to_copy = [(local_bin_files, 'bin')]
+
+sanity_check_paths = {
+ 'files': ['bin/%s' % f for f in local_bin_files],
+ 'dirs': [''],
+}
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/a/APR-util/APR-util-1.6.3-GCCcore-13.3.0.eb b/easybuild/easyconfigs/a/APR-util/APR-util-1.6.3-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..fc5f92c2b70
--- /dev/null
+++ b/easybuild/easyconfigs/a/APR-util/APR-util-1.6.3-GCCcore-13.3.0.eb
@@ -0,0 +1,32 @@
+easyblock = 'ConfigureMake'
+
+name = 'APR-util'
+version = '1.6.3'
+
+homepage = 'https://apr.apache.org/'
+description = "Apache Portable Runtime (APR) util libraries."
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://archive.apache.org/dist/apr/']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['2b74d8932703826862ca305b094eef2983c27b39d5c9414442e9976a9acf1983']
+
+builddependencies = [('binutils', '2.42')]
+
+dependencies = [
+ ('APR', '1.7.4'),
+ ('SQLite', '3.45.3'),
+ ('expat', '2.6.2'),
+]
+
+configopts = "--with-apr=$EBROOTAPR/bin/apr-1-config --with-sqlite3=$EBROOTSQLITE --with-expat=$EBROOTEXPAT "
+
+sanity_check_paths = {
+ 'files': ["bin/apu-1-config", "lib/libaprutil-1.%s" % SHLIB_EXT, "lib/libaprutil-1.a"],
+ 'dirs': ["include/apr-1"],
+}
+
+parallel = 1
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/a/APR/APR-1.7.4-GCCcore-13.3.0.eb b/easybuild/easyconfigs/a/APR/APR-1.7.4-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..8ac5ed02a98
--- /dev/null
+++ b/easybuild/easyconfigs/a/APR/APR-1.7.4-GCCcore-13.3.0.eb
@@ -0,0 +1,22 @@
+easyblock = 'ConfigureMake'
+
+name = 'APR'
+version = '1.7.4'
+
+homepage = 'https://apr.apache.org/'
+description = "Apache Portable Runtime (APR) libraries."
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://archive.apache.org/dist/apr/']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['a4137dd82a185076fa50ba54232d920a17c6469c30b0876569e1c2a05ff311d9']
+
+builddependencies = [('binutils', '2.42')]
+
+sanity_check_paths = {
+ 'files': ["bin/apr-1-config", "lib/libapr-1.%s" % SHLIB_EXT, "lib/libapr-1.a"],
+ 'dirs': ["include/apr-1"],
+}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/a/ASAP3/ASAP3-3.13.3-foss-2023a.eb b/easybuild/easyconfigs/a/ASAP3/ASAP3-3.13.3-foss-2023a.eb
new file mode 100644
index 00000000000..4315122d3cb
--- /dev/null
+++ b/easybuild/easyconfigs/a/ASAP3/ASAP3-3.13.3-foss-2023a.eb
@@ -0,0 +1,36 @@
+easyblock = "PythonPackage"
+
+name = 'ASAP3'
+version = '3.13.3'
+
+homepage = 'https://wiki.fysik.dtu.dk/asap/'
+description = """ASAP is a calculator for doing large-scale classical molecular
+dynamics within the Campos Atomic Simulation Environment (ASE)."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'pic': True, 'usempi': True, 'openmp': False}
+
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['78aa4c9ee11315b6e7f8cd9b1fda6ab9a240cc4f4ff418972ea079612e26d369']
+
+builddependencies = [
+ ('pkgconf', '1.9.5'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('ASE', '3.22.1'),
+ ('kim-api', '2.3.0'),
+]
+
+use_pip = True
+download_dep_fail = True
+sanity_pip_check = True
+
+sanity_check_paths = {
+ 'files': [],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages/%(namelower)s']
+}
+
+moduleclass = 'phys'
diff --git a/easybuild/easyconfigs/a/ASAP3/ASAP3-3.13.3-intel-2023a.eb b/easybuild/easyconfigs/a/ASAP3/ASAP3-3.13.3-intel-2023a.eb
new file mode 100644
index 00000000000..0fc1bd1708f
--- /dev/null
+++ b/easybuild/easyconfigs/a/ASAP3/ASAP3-3.13.3-intel-2023a.eb
@@ -0,0 +1,42 @@
+easyblock = "PythonPackage"
+
+name = 'ASAP3'
+version = '3.13.3'
+
+homepage = 'https://wiki.fysik.dtu.dk/asap/'
+description = """ASAP is a calculator for doing large-scale classical molecular
+dynamics within the Campos Atomic Simulation Environment (ASE)."""
+
+toolchain = {'name': 'intel', 'version': '2023a'}
+toolchainopts = {
+ 'pic': True,
+ 'usempi': True,
+ 'openmp': False,
+ 'extra_cflags': '-fp-speculation=fast -fp-model fast'
+}
+
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['78aa4c9ee11315b6e7f8cd9b1fda6ab9a240cc4f4ff418972ea079612e26d369']
+
+builddependencies = [
+ ('pkgconf', '1.9.5'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('ASE', '3.22.1'),
+ ('kim-api', '2.3.0'),
+]
+
+installopts = '--verbose'
+use_pip = True
+download_dep_fail = True
+sanity_pip_check = True
+
+sanity_check_paths = {
+ 'files': [],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages/%(namelower)s']
+}
+
+moduleclass = 'phys'
diff --git a/easybuild/easyconfigs/a/ASE/ASE-3.22.1-iimkl-2023a.eb b/easybuild/easyconfigs/a/ASE/ASE-3.22.1-iimkl-2023a.eb
new file mode 100644
index 00000000000..e5ade107d5c
--- /dev/null
+++ b/easybuild/easyconfigs/a/ASE/ASE-3.22.1-iimkl-2023a.eb
@@ -0,0 +1,64 @@
+easyblock = 'PythonBundle'
+
+name = 'ASE'
+version = '3.22.1'
+
+homepage = 'https://wiki.fysik.dtu.dk/ase'
+description = """ASE is a python package providing an open source Atomic Simulation Environment
+ in the Python scripting language.
+
+From version 3.20.1 we also include the ase-ext package, it contains optional reimplementations
+in C of functions in ASE. ASE uses it automatically when installed."""
+
+toolchain = {'name': 'iimkl', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('SciPy-bundle', '2023.07'),
+ ('Flask', '2.3.3'),
+ ('matplotlib', '3.7.2'),
+ ('Tkinter', '%(pyver)s'), # Needed by GUI of ASE
+ ('spglib-python', '2.1.0'), # optional
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('pytest-mock', '3.11.1', {
+ 'checksums': ['7f6b125602ac6d743e523ae0bfa71e1a697a2f5534064528c6ff84c2f7c2fc7f'],
+ }),
+ ('ase', version, {
+ 'patches': [
+ 'ASE-3.22.1-Compatibility-with-pytest-from-Python-3-10.patch',
+ 'ASE-3.22.1-Compatibility-with-pytest-part-2.patch',
+ 'ASE-3.22.1-Compatibility-with-Scipy-2022-05.patch',
+ 'ASE-3.22.1-Compatibility-with-Flask-2-2-2.patch',
+ ],
+ 'checksums': [
+ {'ase-3.22.1.tar.gz': '004df6b0ea04b1114c790fadfe45d4125eb0e53125c66a93425af853d82ab432'},
+ {'ASE-3.22.1-Compatibility-with-pytest-from-Python-3-10.patch':
+ '8184765ecc9e14081b183fee5c4470da716d77caa67c25164018ac1fdd225eac'},
+ {'ASE-3.22.1-Compatibility-with-pytest-part-2.patch':
+ '3a3473912f5f96ffc625119d87227781ba4ea581de15d4af6a58ba960cdf4601'},
+ {'ASE-3.22.1-Compatibility-with-Scipy-2022-05.patch':
+ 'c1cb07160b063d432f098efd40dd4b3c9f015b7966572c838a908613a482e0c8'},
+ {'ASE-3.22.1-Compatibility-with-Flask-2-2-2.patch':
+ '2a05f98291dc970cb759904988783d1ecc3512ba6a0da852af1d3205667b398d'},
+ ],
+ }),
+ ('ase-ext', '20.9.0', {
+ 'checksums': ['a348b0e42cf9fdd11f04b3df002b0bf150002c8df2698ff08d3c8fc7a1223aed'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/ase'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+# make sure Tkinter is available, otherwise 'ase gui' will not work
+sanity_check_commands = ["python -c 'import tkinter' "]
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/a/ASE/ASE-3.23.0-gfbf-2023a.eb b/easybuild/easyconfigs/a/ASE/ASE-3.23.0-gfbf-2023a.eb
new file mode 100644
index 00000000000..554779e99cc
--- /dev/null
+++ b/easybuild/easyconfigs/a/ASE/ASE-3.23.0-gfbf-2023a.eb
@@ -0,0 +1,48 @@
+easyblock = 'PythonBundle'
+
+name = 'ASE'
+version = '3.23.0'
+
+homepage = 'https://wiki.fysik.dtu.dk/ase'
+description = """ASE is a python package providing an open source Atomic Simulation Environment
+ in the Python scripting language.
+
+From version 3.20.1 we also include the ase-ext package, it contains optional reimplementations
+in C of functions in ASE. ASE uses it automatically when installed."""
+
+toolchain = {'name': 'gfbf', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('SciPy-bundle', '2023.07'),
+ ('Flask', '2.3.3'),
+ ('matplotlib', '3.7.2'),
+ ('Tkinter', '%(pyver)s'), # Needed by GUI of ASE
+ ('spglib-python', '2.1.0'), # optional
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('pytest-mock', '3.11.1', {
+ 'checksums': ['7f6b125602ac6d743e523ae0bfa71e1a697a2f5534064528c6ff84c2f7c2fc7f'],
+ }),
+ ('ase', version, {
+ 'checksums': ['91a2aa31d89bd90b0efdfe4a7e84264f32828b2abfc9f38e65e041ad76fec8ae'],
+ }),
+ ('ase-ext', '20.9.0', {
+ 'checksums': ['a348b0e42cf9fdd11f04b3df002b0bf150002c8df2698ff08d3c8fc7a1223aed'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/ase'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+# make sure Tkinter is available, otherwise 'ase gui' will not work
+sanity_check_commands = ["python -c 'import tkinter' "]
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/a/ASE/ASE-3.23.0-gfbf-2023b.eb b/easybuild/easyconfigs/a/ASE/ASE-3.23.0-gfbf-2023b.eb
new file mode 100644
index 00000000000..07ad1ecc555
--- /dev/null
+++ b/easybuild/easyconfigs/a/ASE/ASE-3.23.0-gfbf-2023b.eb
@@ -0,0 +1,48 @@
+easyblock = 'PythonBundle'
+
+name = 'ASE'
+version = '3.23.0'
+
+homepage = 'https://wiki.fysik.dtu.dk/ase'
+description = """ASE is a python package providing an open source Atomic Simulation Environment
+ in the Python scripting language.
+
+From version 3.20.1 we also include the ase-ext package, it contains optional reimplementations
+in C of functions in ASE. ASE uses it automatically when installed."""
+
+toolchain = {'name': 'gfbf', 'version': '2023b'}
+
+dependencies = [
+ ('Python', '3.11.5'),
+ ('Python-bundle-PyPI', '2023.10'),
+ ('SciPy-bundle', '2023.11'),
+ ('Flask', '3.0.0'),
+ ('matplotlib', '3.8.2'),
+ ('Tkinter', '%(pyver)s'), # Needed by GUI of ASE
+ ('spglib-python', '2.5.0'), # optional
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('pytest-mock', '3.14.0', {
+ 'checksums': ['2719255a1efeceadbc056d6bf3df3d1c5015530fb40cf347c0f9afac88410bd0'],
+ }),
+ ('ase', version, {
+ 'checksums': ['91a2aa31d89bd90b0efdfe4a7e84264f32828b2abfc9f38e65e041ad76fec8ae'],
+ }),
+ ('ase-ext', '20.9.0', {
+ 'checksums': ['a348b0e42cf9fdd11f04b3df002b0bf150002c8df2698ff08d3c8fc7a1223aed'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/ase'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+# make sure Tkinter is available, otherwise 'ase gui' will not work
+sanity_check_commands = ["python -c 'import tkinter' "]
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/a/ASE/ASE-3.23.0-gfbf-2024a.eb b/easybuild/easyconfigs/a/ASE/ASE-3.23.0-gfbf-2024a.eb
new file mode 100644
index 00000000000..472ebbb24b2
--- /dev/null
+++ b/easybuild/easyconfigs/a/ASE/ASE-3.23.0-gfbf-2024a.eb
@@ -0,0 +1,48 @@
+easyblock = 'PythonBundle'
+
+name = 'ASE'
+version = '3.23.0'
+
+homepage = 'https://wiki.fysik.dtu.dk/ase'
+description = """ASE is a python package providing an open source Atomic Simulation Environment
+ in the Python scripting language.
+
+From version 3.20.1 we also include the ase-ext package, it contains optional reimplementations
+in C of functions in ASE. ASE uses it automatically when installed."""
+
+toolchain = {'name': 'gfbf', 'version': '2024a'}
+
+dependencies = [
+ ('Python', '3.12.3'),
+ ('Python-bundle-PyPI', '2024.06'),
+ ('SciPy-bundle', '2024.05'),
+ ('Flask', '3.0.3'),
+ ('matplotlib', '3.9.2'),
+ ('Tkinter', '%(pyver)s'), # Needed by GUI of ASE
+ ('spglib-python', '2.5.0'), # optional
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('pytest-mock', '3.14.0', {
+ 'checksums': ['2719255a1efeceadbc056d6bf3df3d1c5015530fb40cf347c0f9afac88410bd0'],
+ }),
+ ('ase', version, {
+ 'checksums': ['91a2aa31d89bd90b0efdfe4a7e84264f32828b2abfc9f38e65e041ad76fec8ae'],
+ }),
+ ('ase-ext', '20.9.0', {
+ 'checksums': ['a348b0e42cf9fdd11f04b3df002b0bf150002c8df2698ff08d3c8fc7a1223aed'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/ase'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+# make sure Tkinter is available, otherwise 'ase gui' will not work
+sanity_check_commands = ["python -c 'import tkinter' "]
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/a/ASE/ASE-3.23.0-iimkl-2023a.eb b/easybuild/easyconfigs/a/ASE/ASE-3.23.0-iimkl-2023a.eb
new file mode 100644
index 00000000000..f8bbed9f583
--- /dev/null
+++ b/easybuild/easyconfigs/a/ASE/ASE-3.23.0-iimkl-2023a.eb
@@ -0,0 +1,48 @@
+easyblock = 'PythonBundle'
+
+name = 'ASE'
+version = '3.23.0'
+
+homepage = 'https://wiki.fysik.dtu.dk/ase'
+description = """ASE is a python package providing an open source Atomic Simulation Environment
+ in the Python scripting language.
+
+From version 3.20.1 we also include the ase-ext package, it contains optional reimplementations
+in C of functions in ASE. ASE uses it automatically when installed."""
+
+toolchain = {'name': 'iimkl', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('SciPy-bundle', '2023.07'),
+ ('Flask', '2.3.3'),
+ ('matplotlib', '3.7.2'),
+ ('Tkinter', '%(pyver)s'), # Needed by GUI of ASE
+ ('spglib-python', '2.1.0'), # optional
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('pytest-mock', '3.11.1', {
+ 'checksums': ['7f6b125602ac6d743e523ae0bfa71e1a697a2f5534064528c6ff84c2f7c2fc7f'],
+ }),
+ ('ase', version, {
+ 'checksums': ['91a2aa31d89bd90b0efdfe4a7e84264f32828b2abfc9f38e65e041ad76fec8ae'],
+ }),
+ ('ase-ext', '20.9.0', {
+ 'checksums': ['a348b0e42cf9fdd11f04b3df002b0bf150002c8df2698ff08d3c8fc7a1223aed'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/ase'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+# make sure Tkinter is available, otherwise 'ase gui' will not work
+sanity_check_commands = ["python -c 'import tkinter' "]
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/a/ATK/ATK-2.38.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/a/ATK/ATK-2.38.0-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..506079ce98c
--- /dev/null
+++ b/easybuild/easyconfigs/a/ATK/ATK-2.38.0-GCCcore-13.3.0.eb
@@ -0,0 +1,39 @@
+easyblock = 'MesonNinja'
+
+name = 'ATK'
+version = '2.38.0'
+
+homepage = 'https://developer.gnome.org/atk/'
+description = """
+ ATK provides the set of accessibility interfaces that are implemented by other
+ toolkits and applications. Using the ATK interfaces, accessibility tools have
+ full access to view and control running applications.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = [FTPGNOME_SOURCE]
+sources = [SOURCELOWER_TAR_XZ]
+checksums = ['ac4de2a4ef4bd5665052952fe169657e65e895c5057dffb3c2a810f6191a0c36']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('Meson', '1.4.0'),
+ ('Ninja', '1.12.1'),
+ ('pkgconf', '2.2.0'),
+ ('GObject-Introspection', '1.80.1'),
+]
+
+dependencies = [
+ ('GLib', '2.80.4'),
+]
+
+configopts = "--buildtype=release --default-library=both "
+configopts += "-Dintrospection=true "
+
+sanity_check_paths = {
+ 'files': ['lib/libatk-1.0.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/a/AUGUSTUS/AUGUSTUS-3.5.0-foss-2023a.eb b/easybuild/easyconfigs/a/AUGUSTUS/AUGUSTUS-3.5.0-foss-2023a.eb
new file mode 100644
index 00000000000..2c31ade2eb0
--- /dev/null
+++ b/easybuild/easyconfigs/a/AUGUSTUS/AUGUSTUS-3.5.0-foss-2023a.eb
@@ -0,0 +1,74 @@
+# Updated by: Pavel Grochal (INUITS)
+# License: GPLv2
+# Update: Petr Král (INUITS)
+
+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': '2023a'}
+
+github_account = 'Gaius-Augustus'
+source_urls = [GITHUB_SOURCE]
+sources = ['v%(version)s.tar.gz']
+checksums = ['5ed6ce6106303b800c5e91d37a250baff43b20824657b853ae04d11ad8bdd686']
+
+builddependencies = [
+ ('Python', '3.11.3'),
+]
+
+dependencies = [
+ ('zlib', '1.2.13'),
+ ('Boost', '1.82.0'),
+ ('GSL', '2.7'),
+ ('SAMtools', '1.18'),
+ ('HTSlib', '1.18'), # also provides tabix
+ ('BCFtools', '1.18'),
+ ('lpsolve', '5.5.2.11'),
+ ('SuiteSparse', '7.1.0'),
+ ('BamTools', '2.5.2'),
+ ('SQLite', '3.42.0'),
+]
+
+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-20240116.1-GCCcore-13.2.0.eb b/easybuild/easyconfigs/a/Abseil/Abseil-20240116.1-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..81a2f9766dc
--- /dev/null
+++ b/easybuild/easyconfigs/a/Abseil/Abseil-20240116.1-GCCcore-13.2.0.eb
@@ -0,0 +1,33 @@
+easyblock = 'CMakeMake'
+
+name = 'Abseil'
+version = '20240116.1'
+
+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': '13.2.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/%(namelower)s/%(namelower)s-cpp/archive/refs/tags']
+sources = ['%(version)s.tar.gz']
+checksums = ['3c743204df78366ad2eaf236d6631d83f6bc928d1705dd0000b872e53b73dc6a']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('CMake', '3.27.6'),
+]
+
+configopts = "-DABSL_PROPAGATE_CXX_STD=ON "
+
+build_shared_libs = True
+
+sanity_check_paths = {
+ 'files': ['lib/libabsl_base.' + SHLIB_EXT],
+ 'dirs': ['include/absl'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/a/Abseil/Abseil-20240722.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/a/Abseil/Abseil-20240722.0-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..24951c68814
--- /dev/null
+++ b/easybuild/easyconfigs/a/Abseil/Abseil-20240722.0-GCCcore-13.3.0.eb
@@ -0,0 +1,34 @@
+easyblock = 'CMakeMake'
+
+name = 'Abseil'
+version = '20240722.0'
+
+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': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = [
+ 'https://github.com/%(namelower)s/%(namelower)s-cpp/archive/refs/tags']
+sources = ['%(version)s.tar.gz']
+checksums = ['f50e5ac311a81382da7fa75b97310e4b9006474f9560ac46f54a9967f07d4ae3']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('CMake', '3.29.3'),
+]
+
+configopts = "-DABSL_PROPAGATE_CXX_STD=ON "
+
+build_shared_libs = True
+
+sanity_check_paths = {
+ 'files': ['lib/libabsl_base.' + SHLIB_EXT],
+ 'dirs': ['include/absl'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/a/Advisor/Advisor-2019_update2.eb b/easybuild/easyconfigs/a/Advisor/Advisor-2019_update2.eb
index 24ce3fe1c31..2e121781a46 100644
--- a/easybuild/easyconfigs/a/Advisor/Advisor-2019_update2.eb
+++ b/easybuild/easyconfigs/a/Advisor/Advisor-2019_update2.eb
@@ -10,7 +10,7 @@ description = """Vectorization Optimization and Thread Prototyping
toolchain = SYSTEM
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15084/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15084/']
sources = ['advisor_%(version)s.tar.gz']
checksums = ['b63e11b0601013ad21789869ad76be5a836da566ee47c125dcda19ff8277de77']
diff --git a/easybuild/easyconfigs/a/Advisor/Advisor-2019_update3.eb b/easybuild/easyconfigs/a/Advisor/Advisor-2019_update3.eb
index a9f9a888154..7b025287362 100644
--- a/easybuild/easyconfigs/a/Advisor/Advisor-2019_update3.eb
+++ b/easybuild/easyconfigs/a/Advisor/Advisor-2019_update3.eb
@@ -10,7 +10,7 @@ description = """Vectorization Optimization and Thread Prototyping
toolchain = SYSTEM
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15206/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15206/']
sources = ['advisor_%(version)s.tar.gz']
checksums = ['6597f165dee3c6444eb0f38a9069327d10584b09555f5d2c4ed86b8f84d980bb']
diff --git a/easybuild/easyconfigs/a/Advisor/Advisor-2019_update5.eb b/easybuild/easyconfigs/a/Advisor/Advisor-2019_update5.eb
index 6a0d2fa4ece..cbcdab88d6e 100644
--- a/easybuild/easyconfigs/a/Advisor/Advisor-2019_update5.eb
+++ b/easybuild/easyconfigs/a/Advisor/Advisor-2019_update5.eb
@@ -10,7 +10,7 @@ description = """Vectorization Optimization and Thread Prototyping
toolchain = SYSTEM
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15825/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15825/']
sources = ['advisor_%(version)s.tar.gz']
checksums = ['3f203ee63df37e87423fdd4cbeb5ec027b3d11e50c9121935f8b323dd635e866']
diff --git a/easybuild/easyconfigs/a/Advisor/Advisor-2021.2.0.eb b/easybuild/easyconfigs/a/Advisor/Advisor-2021.2.0.eb
index 2a7de357e47..144362e2eb7 100644
--- a/easybuild/easyconfigs/a/Advisor/Advisor-2021.2.0.eb
+++ b/easybuild/easyconfigs/a/Advisor/Advisor-2021.2.0.eb
@@ -13,7 +13,7 @@ description = """Vectorization Optimization and Thread Prototyping
toolchain = SYSTEM
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/17730/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/17730/']
sources = ['l_oneapi_advisor_p_%(version)s.189_offline.sh']
checksums = ['9d9e9aa11819e6422f732de0e29e70a164e576254504857713cfec90b6b78664']
diff --git a/easybuild/easyconfigs/a/Advisor/Advisor-2021.4.0.eb b/easybuild/easyconfigs/a/Advisor/Advisor-2021.4.0.eb
index 55354cc6e25..ec07e00e07e 100644
--- a/easybuild/easyconfigs/a/Advisor/Advisor-2021.4.0.eb
+++ b/easybuild/easyconfigs/a/Advisor/Advisor-2021.4.0.eb
@@ -13,7 +13,7 @@ description = """Vectorization Optimization and Thread Prototyping
toolchain = SYSTEM
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/18220/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/18220/']
sources = ['l_oneapi_advisor_p_%(version)s.389_offline.sh']
checksums = ['dd948f7312629d9975e12a57664f736b8e011de948771b4c05ad444438532be8']
diff --git a/easybuild/easyconfigs/a/Advisor/Advisor-2022.1.0.eb b/easybuild/easyconfigs/a/Advisor/Advisor-2022.1.0.eb
index 58235ccff90..34a2115a37c 100644
--- a/easybuild/easyconfigs/a/Advisor/Advisor-2022.1.0.eb
+++ b/easybuild/easyconfigs/a/Advisor/Advisor-2022.1.0.eb
@@ -13,7 +13,7 @@ description = """Vectorization Optimization and Thread Prototyping
toolchain = SYSTEM
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/18730/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/18730/']
sources = ['l_oneapi_advisor_p_%(version)s.171_offline.sh']
checksums = ['b627dbfefa779b44e7ab40dfa37614e56caa6e245feaed402d51826e6a7cb73b']
diff --git a/easybuild/easyconfigs/a/Advisor/Advisor-2023.0.0.eb b/easybuild/easyconfigs/a/Advisor/Advisor-2023.0.0.eb
index 187fcafa180..e6d811a03a0 100644
--- a/easybuild/easyconfigs/a/Advisor/Advisor-2023.0.0.eb
+++ b/easybuild/easyconfigs/a/Advisor/Advisor-2023.0.0.eb
@@ -11,7 +11,7 @@ description = """Vectorization Optimization and Thread Prototyping
toolchain = SYSTEM
source_urls = [
- 'https://registrationcenter-download.intel.com/akdlm/irc_nas/19094/']
+ 'https://registrationcenter-download.intel.com/akdlm/IRC_NAS/19094/']
sources = ['l_oneapi_advisor_p_%(version)s.25338_offline.sh']
checksums = ['5d8ef163f70ee3dc42b13642f321d974f49915d55914ba1ca9177ed29b100b9d']
diff --git a/easybuild/easyconfigs/a/Albumentations/Albumentations-1.4.0-foss-2023a.eb b/easybuild/easyconfigs/a/Albumentations/Albumentations-1.4.0-foss-2023a.eb
new file mode 100644
index 00000000000..36b765ffdc8
--- /dev/null
+++ b/easybuild/easyconfigs/a/Albumentations/Albumentations-1.4.0-foss-2023a.eb
@@ -0,0 +1,36 @@
+easyblock = 'PythonBundle'
+
+name = 'Albumentations'
+version = '1.4.0'
+
+homepage = 'https://albumentations.ai'
+description = "Albumentations is a Python library for fast and flexible image augmentations"
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('SciPy-bundle', '2023.07'),
+ ('PyYAML', '6.0'),
+ ('scikit-image', '0.22.0'),
+ ('scikit-learn', '1.3.1'),
+ ('OpenCV', '4.8.1', '-contrib'),
+]
+
+preinstallopts = "sed -i 's|CHOOSE_INSTALL_REQUIRES),|[]),|g' setup.py && "
+
+use_pip = True
+
+exts_list = [
+ ('qudida', '0.0.4', {
+ 'checksums': ['db198e2887ab0c9aa0023e565afbff41dfb76b361f85fd5e13f780d75ba18cc8'],
+ }),
+ ('albumentations', version, {
+ 'checksums': ['649f8a14896f788b356ecc70083c4fb91bedab4ff4e2b39ad217a824e189ded0'],
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/a/AlphaFold/AlphaFold-2.3.2-foss-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/a/AlphaFold/AlphaFold-2.3.2-foss-2023a-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..3fe9e6719f6
--- /dev/null
+++ b/easybuild/easyconfigs/a/AlphaFold/AlphaFold-2.3.2-foss-2023a-CUDA-12.1.1.eb
@@ -0,0 +1,167 @@
+easyblock = 'PythonBundle'
+
+name = 'AlphaFold'
+version = '2.3.2'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://deepmind.com/research/case-studies/alphafold'
+description = "AlphaFold can predict protein structures with atomic accuracy even where no similar structure is known"
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+builddependencies = [
+ ('poetry', '1.5.1')
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('CUDA', '12.1.1', '', SYSTEM),
+ ('SciPy-bundle', '2023.07'),
+ ('PyYAML', '6.0'),
+ ('TensorFlow', '2.13.0'), # doesn't require TF-gpu
+ ('Biopython', '1.83'),
+ ('HH-suite', '3.3.0'),
+ ('HMMER', '3.4'),
+ ('Kalign', '3.4.0'),
+ ('jax', '0.4.25', versionsuffix), # also provides absl-py # requirement is ==0.3.25!
+ ('UCX-CUDA', '1.14.1', versionsuffix),
+ ('cuDNN', '8.9.2.26', versionsuffix, SYSTEM),
+ ('NCCL', '2.18.3', versionsuffix),
+ ('OpenMM', '8.0.0', versionsuffix),
+ ('dm-tree', '0.1.8'),
+ ('dm-haiku', '0.0.12', versionsuffix),
+]
+
+# commit to use for downloading stereo_chemical_props.txt and copy to alphafold/common,
+# see docker/Dockerfile in AlphaFold repository
+local_scp_commit = '7102c6'
+
+components = [
+ ('stereo_chemical_props.txt', local_scp_commit, {
+ 'easyblock': 'Binary',
+ 'source_urls': [
+ 'https://git.scicore.unibas.ch/schwede/openstructure/-/raw/%s/modules/mol/alg/src/' % local_scp_commit,
+ ],
+ 'sources': [
+ {
+ 'download_filename': 'stereo_chemical_props.txt',
+ 'filename': 'stereo_chemical_props-%s.txt' % local_scp_commit,
+ 'extract_cmd': "cp %s ./stereo_chemical_props.txt",
+ }
+ ],
+ 'checksums': [
+ '24510899eeb49167cffedec8fa45363a4d08279c0c637a403b452f7d0ac09451', # stereo_chemical_props-7102c6.txt
+ ]
+ })
+]
+
+use_pip = True
+
+exts_list = [
+ ('PDBFixer', '1.9', {
+ 'source_urls': ['https://github.com/openmm/pdbfixer/archive/refs/tags/'],
+ 'sources': [{'download_filename': '%(version)s.tar.gz', 'filename': SOURCE_TAR_GZ}],
+ 'checksums': ['88b9a77e50655f89d0eb2075093773e82c27a4cef842cb7d735c877b20cd39fb'],
+ }),
+ ('tabulate', '0.9.0', {
+ 'checksums': ['0095b12bf5966de529c0feb1fa08671671b3368eec77d7ef7ab114be2c068b3c'],
+ }),
+ ('websocket-client', '1.5.1', {
+ 'modulename': 'websocket',
+ 'checksums': ['3f09e6d8230892547132177f575a4e3e73cfdf06526e20cc02aa1c3b47184d40'],
+ }),
+ ('docker', '7.0.0', {
+ 'checksums': ['323736fb92cd9418fc5e7133bc953e11a9da04f4483f828b527db553f1e7e5a3'],
+ }),
+ ('immutabledict', '4.1.0', {
+ 'checksums': ['93d100ccd2cd09a1fd3f136b9328c6e59529ba341de8bb499437f6819159fe8a'],
+ }),
+ ('contextlib2', '21.6.0', {
+ 'checksums': ['ab1e2bfe1d01d968e1b7e8d9023bc51ef3509bba217bb730cee3827e1ee82869'],
+ }),
+ ('ml_collections', '0.1.1', {
+ 'preinstallopts': "touch requirements.txt && touch requirements-test.txt && ",
+ 'checksums': ['3fefcc72ec433aa1e5d32307a3e474bbb67f405be814ea52a2166bfc9dbe68cc'],
+ }),
+ (name, version, {
+ 'patches': [
+ 'AlphaFold-2.0.0_fix-packages.patch',
+ 'AlphaFold-2.3.2_data-dep-paths-shebang-UniRef30.patch',
+ 'AlphaFold-2.0.0_n-cpu.patch',
+ 'AlphaFold-2.0.1_setup_rm_tfcpu.patch',
+ 'AlphaFold-2.3.2_use_openmm_8.0.0.patch',
+ 'AlphaFold-2.3.2_BioPythonPDBData.patch',
+ ],
+ 'source_urls': ['https://github.com/deepmind/alphafold/archive/refs/tags/'],
+ 'sources': [{'download_filename': 'v%(version)s.tar.gz', 'filename': SOURCE_TAR_GZ}],
+ 'checksums': [
+ {'AlphaFold-2.3.2.tar.gz': '4ea8005ba1b573fa1585e4c29b7d188c5cbfa59b4e4761c9f0c15c9db9584a8e'},
+ {'AlphaFold-2.0.0_fix-packages.patch': '826d2d1a5d6ac52c51a60ba210e1947d5631a1e2d76f8815305b5d23f74458db'},
+ {'AlphaFold-2.3.2_data-dep-paths-shebang-UniRef30.patch':
+ '58cd0ce4094afe76909649abe68034c4fbdb500967f5c818f49b530356dc012b'},
+ {'AlphaFold-2.0.0_n-cpu.patch': 'dfda4dd5f9aba19fe2b6eb9a0ec583d12dcefdfee8ab8803fc57ad48d582db04'},
+ {'AlphaFold-2.0.1_setup_rm_tfcpu.patch':
+ '1a2e4e843bd9a4d15ee39e6c37cc63ba281311cc7a0a5610f0e43b52ef93faac'},
+ {'AlphaFold-2.3.2_use_openmm_8.0.0.patch':
+ 'bbef940c0c959040aaf3984ec47777a229c164517b54616a2688d58fae636d84'},
+ {'AlphaFold-2.3.2_BioPythonPDBData.patch':
+ 'e4483a525ae5c4dc5a5f633bed8cf5337c329e64b603ab7b684a9d18cd26a22f'},
+ ],
+ }),
+]
+
+local_pylibdir = '%(installdir)s/lib/python%(pyshortver)s/site-packages'
+local_link_scp = 'ln -s %%(installdir)s/stereo_chemical_props.txt %s/alphafold/common' % local_pylibdir
+
+postinstallcmds = [
+ 'cp %(builddir)s/AlphaFold/alphafold-%(version)s/run_alphafold*.py %(installdir)s/bin',
+ 'cp -rpP %(builddir)s/AlphaFold/alphafold-%(version)s/scripts %(installdir)s',
+ 'cd %(installdir)s/bin && ln -s run_alphafold.py alphafold',
+ 'chmod a+x %(installdir)s/bin/run_alphafold.py',
+ local_link_scp,
+]
+
+sanity_check_paths = {
+ 'files': ['bin/alphafold', 'bin/pdbfixer', 'bin/run_alphafold.py', 'stereo_chemical_props.txt'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages', 'scripts'],
+}
+
+sanity_check_commands = [
+ "pdbfixer --help",
+ "python -m openmm.testInstallation",
+ "python -c 'import alphafold'",
+ "alphafold --help 2>&1 | grep 'Full AlphaFold protein structure prediction script'",
+ "python %(installdir)s/bin/run_alphafold_test.py",
+]
+
+sanity_pip_check = True
+
+# these allow to make predictions on proteins that would typically be too long to fit into GPU memory;
+# see https://github.com/deepmind/alphafold/blob/main/docker/run_docker.py
+modextravars = {
+ # these allow to make predictions on proteins that would typically be too long to fit into GPU memory;
+ # see https://github.com/deepmind/alphafold/blob/main/docker/run_docker.py
+ 'TF_FORCE_UNIFIED_MEMORY': '1',
+ # jaxlib 0.4.1: https://jax.readthedocs.io/en/latest/changelog.html#jaxlib-0-4-1-dec-13-2022
+ # "The behavior of XLA_PYTHON_CLIENT_MEM_FRACTION=.XX has been changed to allocate XX% of the total GPU memory
+ # instead of the previous behavior of using currently available GPU memory to calculate preallocation. Please refer
+ # to GPU memory allocation for more details."
+ # https://jax.readthedocs.io/en/latest/gpu_memory_allocation.html
+ 'XLA_PYTHON_CLIENT_MEM_FRACTION': '2.5',
+ #
+ # Download with $EBROOTALPHAFOLD/scripts/download_all_data.sh /path/to/AlphaFold_DBs/$EBVERSIONALPHAFOLD
+ 'ALPHAFOLD_DATA_DIR': '/path/to/AlphaFold_DBs/%(versions)s', # please adapt
+ # Adapt in order to use a different version of UniRef30 by default,
+ # e.g., v2023_02 from https://wwwuser.gwdg.de/~compbiol/uniclust/2023_02/UniRef30_2023_02_hhsuite.tar.gz:
+ 'ALPHAFOLD_UNIREF30_VER': '2021_03',
+ 'OPENMM_RELAX': 'CUDA' # unset or set to 'CPU' in order not to run the energy minimization on GPU; PR#189
+}
+
+postinstallmsgs = [
+ "A newer version of UniRef30 (2023_02) is available at: "
+ "https://wwwuser.gwdg.de/~compbiol/uniclust/2023_02/UniRef30_2023_02_hhsuite.tar.gz. "
+ "Untar to $ALPHAFOLD_DATA_DIR/uniref30/ and set the default version accordingly by changing "
+ "modextravars:ALPHAFOLD_UNIREF30_VER."
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/a/AlphaFold/AlphaFold-2.3.2_BioPythonPDBData.patch b/easybuild/easyconfigs/a/AlphaFold/AlphaFold-2.3.2_BioPythonPDBData.patch
new file mode 100644
index 00000000000..df73873cb1c
--- /dev/null
+++ b/easybuild/easyconfigs/a/AlphaFold/AlphaFold-2.3.2_BioPythonPDBData.patch
@@ -0,0 +1,14 @@
+# Thomas Hoffmann, EMBL Heidelberg, structures-it@embl.de, 2024/10
+# BioPython 1.83 does not provide protein_letters_3to1 in Bio.Data.SCOPdata but in Bio.Data.PDBData (and Bio.Data.IUPACData)
+diff -ru -ru alphafold-2.3.2/alphafold/data/mmcif_parsing.py alphafold-2.3.2_BioPythonSCOPData/alphafold/data/mmcif_parsing.py
+--- alphafold-2.3.2/alphafold/data/mmcif_parsing.py 2024-02-19 09:55:16.359778490 +0100
++++ alphafold-2.3.2_BioPythonSCOPData/alphafold/data/mmcif_parsing.py 2023-03-27 13:50:49.000000000 +0200
+@@ -21,7 +21,7 @@
+
+ from absl import logging
+ from Bio import PDB
+-from Bio.Data import SCOPData
++from Bio.Data import PDBData as SCOPData
+
+ # Type aliases:
+ ChainId = str
diff --git a/easybuild/easyconfigs/a/AlphaFold/AlphaFold-2.3.2_data-dep-paths-shebang-UniRef30.patch b/easybuild/easyconfigs/a/AlphaFold/AlphaFold-2.3.2_data-dep-paths-shebang-UniRef30.patch
new file mode 100644
index 00000000000..c7bbd59ac0c
--- /dev/null
+++ b/easybuild/easyconfigs/a/AlphaFold/AlphaFold-2.3.2_data-dep-paths-shebang-UniRef30.patch
@@ -0,0 +1,164 @@
+pick up on $ALPHAFOLD_DATA_DIR to specify location to downloaded data
+(see https://github.com/deepmind/alphafold/blob/main/docker/run_docker.py);
+pick up on HH-suite, HHMER, Kalign dependencies provided via EasyBuild
+author: Kenneth Hoste (HPC-UGent)
+update 2.0.1 -> 2.1.0/2.1.2/2.3.0/2.3.2: Thomas Hoffmann (EMBL);
+uniref30 version env. variable (THEMBL)
+
+diff -ru alphafold-2.3.2/run_alphafold.py alphafold-2.3.2_data-dep-paths-shebang-UniRef30/run_alphafold.py
+--- alphafold-2.3.2/run_alphafold.py 2023-03-27 13:50:49.000000000 +0200
++++ alphafold-2.3.2_data-dep-paths-shebang-UniRef30/run_alphafold.py 2024-10-11 11:34:06.330278962 +0200
+@@ -1,3 +1,4 @@
++#!/usr/bin/env python
+ # Copyright 2021 DeepMind Technologies Limited
+ #
+ # Licensed under the Apache License, Version 2.0 (the "License");
+@@ -42,6 +43,48 @@
+ import numpy as np
+
+ # Internal import (7716).
++use_reduced_dbs = any("--db_preset=reduced_dbs" in s for s in sys.argv[1:])
++use_monomer_preset = not any("--model_preset=multimer" in s for s in sys.argv[1:])
++
++data_dir = os.getenv('ALPHAFOLD_DATA_DIR')
++use_gpu_relax = os.getenv('OPENMM_RELAX')=='CUDA'
++uniref30_ver = os.getenv('ALPHAFOLD_UNIREF30_VER')
++if not uniref30_ver: uniref30_ver = '2021_03'
++
++if data_dir:
++ mgnify_database_path = os.path.join(data_dir, 'mgnify', 'mgy_clusters_2022_05.fa')
++ uniref90_database_path = os.path.join(data_dir, 'uniref90', 'uniref90.fasta')
++ template_mmcif_dir = os.path.join(data_dir, 'pdb_mmcif', 'mmcif_files')
++ obsolete_pdbs_path = os.path.join(data_dir, 'pdb_mmcif', 'obsolete.dat')
++ if use_monomer_preset:
++ pdb_seqres_database_path = None
++ uniprot_database_path = None
++ pdb70_database_path = os.path.join(data_dir, 'pdb70', 'pdb70')
++ else:
++ pdb_seqres_database_path = os.path.join(data_dir, 'pdb_seqres', 'pdb_seqres.txt')
++ uniprot_database_path = os.path.join(data_dir, 'uniprot', 'uniprot.fasta')
++ pdb70_database_path = None
++ if use_reduced_dbs:
++ small_bfd_database_path = os.path.join(data_dir, 'small_bfd','bfd-first_non_consensus_sequences.fasta')
++ uniref30_database_path = None
++ bfd_database_path = None
++ else:
++ small_bfd_database_path = None
++ bfd_database_path = os.path.join(data_dir, 'bfd', 'bfd_metaclust_clu_complete_id30_c90_final_seq.sorted_opt')
++ uniref30_database_path = os.path.join(data_dir, 'uniref30', 'UniRef30_%s' % uniref30_ver)
++else:
++ sys.stderr.write("$ALPHAFOLD_DATA_DIR is not defined!")
++ uniref90_database_path = None
++ mgnify_database_path = None
++ bfd_database_path = None
++ uniref30_database_path = None
++ pdb70_database_path = None
++ template_mmcif_dir = None
++ obsolete_pdbs_path = None
++ small_bfd_database_path = None
++ uniprot_database_path = None
++ pdb_seqres_database_path = None
++ use_gpu_relax = None
+
+ logging.set_verbosity(logging.INFO)
+
+@@ -59,7 +102,7 @@
+ 'separated by commas. All FASTA paths must have a unique basename as the '
+ 'basename is used to name the output directories for each prediction.')
+
+-flags.DEFINE_string('data_dir', None, 'Path to directory of supporting data.')
++flags.DEFINE_string('data_dir', data_dir, 'Path to directory of supporting data.')
+ flags.DEFINE_string('output_dir', None, 'Path to a directory that will '
+ 'store the results.')
+ flags.DEFINE_string('jackhmmer_binary_path', shutil.which('jackhmmer'),
+@@ -71,32 +114,32 @@
+ flags.DEFINE_string('hmmsearch_binary_path', shutil.which('hmmsearch'),
+ 'Path to the hmmsearch executable.')
+ flags.DEFINE_string('hmmbuild_binary_path', shutil.which('hmmbuild'),
+- 'Path to the hmmbuild executable.')
++ 'Path to the hmmbuild executable.')
+ flags.DEFINE_string('kalign_binary_path', shutil.which('kalign'),
+- 'Path to the Kalign executable.')
+-flags.DEFINE_string('uniref90_database_path', None, 'Path to the Uniref90 '
+- 'database for use by JackHMMER.')
+-flags.DEFINE_string('mgnify_database_path', None, 'Path to the MGnify '
+- 'database for use by JackHMMER.')
+-flags.DEFINE_string('bfd_database_path', None, 'Path to the BFD '
+- 'database for use by HHblits.')
+-flags.DEFINE_string('small_bfd_database_path', None, 'Path to the small '
+- 'version of BFD used with the "reduced_dbs" preset.')
+-flags.DEFINE_string('uniref30_database_path', None, 'Path to the UniRef30 '
+- 'database for use by HHblits.')
+-flags.DEFINE_string('uniprot_database_path', None, 'Path to the Uniprot '
+- 'database for use by JackHMMer.')
+-flags.DEFINE_string('pdb70_database_path', None, 'Path to the PDB70 '
+- 'database for use by HHsearch.')
+-flags.DEFINE_string('pdb_seqres_database_path', None, 'Path to the PDB '
+- 'seqres database for use by hmmsearch.')
+-flags.DEFINE_string('template_mmcif_dir', None, 'Path to a directory with '
+- 'template mmCIF structures, each named .cif')
++ 'Path to the Kalign executable.')
++flags.DEFINE_string('uniref90_database_path', uniref90_database_path, 'Path to the Uniref90 '
++ 'database for use by JackHMMER.')
++flags.DEFINE_string('mgnify_database_path', mgnify_database_path, 'Path to the MGnify '
++ 'database for use by JackHMMER.')
++flags.DEFINE_string('bfd_database_path', bfd_database_path, 'Path to the BFD '
++ 'database for use by HHblits.')
++flags.DEFINE_string('small_bfd_database_path', small_bfd_database_path, 'Path to the small '
++ 'version of BFD used with the "reduced_dbs" preset.')
++flags.DEFINE_string('uniref30_database_path', uniref30_database_path, 'Path to the UniRef30 '
++ 'database for use by HHblits.')
++flags.DEFINE_string('uniprot_database_path', uniprot_database_path, 'Path to the Uniprot '
++ 'database for use by JackHMMer.')
++flags.DEFINE_string('pdb70_database_path', pdb70_database_path, 'Path to the PDB70 '
++ 'database for use by HHsearch.')
++flags.DEFINE_string('pdb_seqres_database_path', pdb_seqres_database_path, 'Path to the PDB '
++ 'seqres database for use by hmmsearch.')
++flags.DEFINE_string('template_mmcif_dir', template_mmcif_dir, 'Path to a directory with '
++ 'template mmCIF structures, each named .cif')
+ flags.DEFINE_string('max_template_date', None, 'Maximum template release date '
+- 'to consider. Important if folding historical test sets.')
+-flags.DEFINE_string('obsolete_pdbs_path', None, 'Path to file containing a '
+- 'mapping from obsolete PDB IDs to the PDB IDs of their '
+- 'replacements.')
++ 'to consider. Important if folding historical test sets.')
++flags.DEFINE_string('obsolete_pdbs_path', obsolete_pdbs_path, 'Path to file containing a '
++ 'mapping from obsolete PDB IDs to the PDB IDs of their '
++ 'replacements.')
+ flags.DEFINE_enum('db_preset', 'full_dbs',
+ ['full_dbs', 'reduced_dbs'],
+ 'Choose preset MSA database configuration - '
+@@ -137,7 +180,7 @@
+ 'distracting stereochemical violations but might help '
+ 'in case you are having issues with the relaxation '
+ 'stage.')
+-flags.DEFINE_boolean('use_gpu_relax', None, 'Whether to relax on GPU. '
++flags.DEFINE_boolean('use_gpu_relax', use_gpu_relax, 'Whether to relax on GPU. '
+ 'Relax on GPU can be much faster than CPU, so it is '
+ 'recommended to enable if possible. GPUs must be available'
+ ' if this setting is enabled.')
+@@ -334,6 +377,10 @@
+ 'sure it is installed on your system.')
+
+ use_small_bfd = FLAGS.db_preset == 'reduced_dbs'
++ if use_small_bfd and data_dir:
++ bfd_database_path = None
++ uniref30_database_path = None
++
+ _check_flag('small_bfd_database_path', 'db_preset',
+ should_be_set=use_small_bfd)
+ _check_flag('bfd_database_path', 'db_preset',
+@@ -456,13 +503,7 @@
+ flags.mark_flags_as_required([
+ 'fasta_paths',
+ 'output_dir',
+- 'data_dir',
+- 'uniref90_database_path',
+- 'mgnify_database_path',
+- 'template_mmcif_dir',
+ 'max_template_date',
+- 'obsolete_pdbs_path',
+- 'use_gpu_relax',
+ ])
+
+ app.run(main)
diff --git a/easybuild/easyconfigs/a/AlphaFold/AlphaFold-2.3.2_use_openmm_8.0.0.patch b/easybuild/easyconfigs/a/AlphaFold/AlphaFold-2.3.2_use_openmm_8.0.0.patch
new file mode 100644
index 00000000000..765fdb3c4d6
--- /dev/null
+++ b/easybuild/easyconfigs/a/AlphaFold/AlphaFold-2.3.2_use_openmm_8.0.0.patch
@@ -0,0 +1,243 @@
+# Add compatibility with OpenMM-8.0.0
+# The patch is based on the recipe from https://github.com/deepmind/alphafold/issues/404
+# Author: maxim-masterov (SURF) (7.7.0)
+# update 8.0.0: THEMBL
+diff -ru alphafold-2.3.2/alphafold/relax/amber_minimize.py alphafold-2.3.2_use_openmm_7.7.0/alphafold/relax/amber_minimize.py
+--- alphafold-2.3.2/alphafold/relax/amber_minimize.py 2023-03-27 13:50:49.000000000 +0200
++++ alphafold-2.3.2_use_openmm_7.7.0/alphafold/relax/amber_minimize.py 2023-04-06 10:38:33.512754033 +0200
+@@ -27,10 +27,10 @@
+ import ml_collections
+ import numpy as np
+ import jax
+-from simtk import openmm
+-from simtk import unit
+-from simtk.openmm import app as openmm_app
+-from simtk.openmm.app.internal.pdbstructure import PdbStructure
++from openmm import *
++from openmm import unit
++from openmm import app as openmm_app
++from openmm.app.internal.pdbstructure import PdbStructure
+
+
+ ENERGY = unit.kilocalories_per_mole
+@@ -47,7 +47,7 @@
+
+
+ def _add_restraints(
+- system: openmm.System,
++ system: System,
+ reference_pdb: openmm_app.PDBFile,
+ stiffness: unit.Unit,
+ rset: str,
+diff -ru alphafold-2.3.2/alphafold/relax/cleanup.py alphafold-2.3.2_use_openmm_7.7.0/alphafold/relax/cleanup.py
+--- alphafold-2.3.2/alphafold/relax/cleanup.py 2023-03-27 13:50:49.000000000 +0200
++++ alphafold-2.3.2_use_openmm_7.7.0/alphafold/relax/cleanup.py 2023-04-06 10:39:25.224888763 +0200
+@@ -20,8 +20,8 @@
+ import io
+
+ import pdbfixer
+-from simtk.openmm import app
+-from simtk.openmm.app import element
++from openmm import app
++from openmm.app import element
+
+
+ def fix_pdb(pdbfile, alterations_info):
+diff -ru alphafold-2.3.2/alphafold/relax/cleanup_test.py alphafold-2.3.2_use_openmm_7.7.0/alphafold/relax/cleanup_test.py
+--- alphafold-2.3.2/alphafold/relax/cleanup_test.py 2023-03-27 13:50:49.000000000 +0200
++++ alphafold-2.3.2_use_openmm_7.7.0/alphafold/relax/cleanup_test.py 2023-04-06 10:39:58.409616942 +0200
+@@ -17,7 +17,7 @@
+
+ from absl.testing import absltest
+ from alphafold.relax import cleanup
+-from simtk.openmm.app.internal import pdbstructure
++from openmm.app.internal import pdbstructure
+
+
+ def _pdb_to_structure(pdb_str):
+diff -ru alphafold-2.3.2/docker/Dockerfile alphafold-2.3.2_use_openmm_7.7.0/docker/Dockerfile
+--- alphafold-2.3.2/docker/Dockerfile 2023-03-27 13:50:49.000000000 +0200
++++ alphafold-2.3.2_use_openmm_7.7.0/docker/Dockerfile 2023-04-06 10:41:10.315194781 +0200
+@@ -76,7 +76,6 @@
+
+ # Apply OpenMM patch.
+ WORKDIR /opt/conda/lib/python3.8/site-packages
+-RUN patch -p0 < /app/alphafold/docker/openmm.patch
+
+ # Add SETUID bit to the ldconfig binary so that non-root users can run it.
+ RUN chmod u+s /sbin/ldconfig.real
+diff -ru alphafold-2.3.2/notebooks/AlphaFold.ipynb alphafold-2.3.2_use_openmm_7.7.0/notebooks/AlphaFold.ipynb
+--- alphafold-2.3.2/notebooks/AlphaFold.ipynb 2023-03-27 13:50:49.000000000 +0200
++++ alphafold-2.3.2_use_openmm_7.7.0/notebooks/AlphaFold.ipynb 2023-04-06 10:50:41.351746867 +0200
+@@ -103,16 +103,17 @@
+ " %shell rm -rf /opt/conda\n",
+ " %shell wget -q -P /tmp \\\n",
+ " https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh \\\n",
+- " \u0026\u0026 bash /tmp/Miniconda3-latest-Linux-x86_64.sh -b -p /opt/conda \\\n",
+- " \u0026\u0026 rm /tmp/Miniconda3-latest-Linux-x86_64.sh\n",
++ " && bash /tmp/Miniconda3-latest-Linux-x86_64.sh -b -p /opt/conda \\\n",
++ " && rm /tmp/Miniconda3-latest-Linux-x86_64.sh\n",
++
+ " pbar.update(9)\n",
+ "\n",
+ " PATH=%env PATH\n",
+ " %env PATH=/opt/conda/bin:{PATH}\n",
+ " %shell conda install -qy conda==4.13.0 \\\n",
+- " \u0026\u0026 conda install -qy -c conda-forge \\\n",
++ " && conda install -qy -c conda-forge \\\n",
+ " python=3.9 \\\n",
+- " openmm=7.5.1 \\\n",
++ " openmm=8.0.0 \\\n",
+ " pdbfixer\n",
+ " pbar.update(80)\n",
+ "\n",
+@@ -164,8 +165,8 @@
+ " pbar.update(10)\n",
+ "\n",
+ " # Apply OpenMM patch.\n",
+- " %shell pushd /opt/conda/lib/python3.9/site-packages/ \u0026\u0026 \\\n",
+- " patch -p0 \u003c /content/alphafold/docker/openmm.patch \u0026\u0026 \\\n",
++ " %shell pushd /opt/conda/lib/python3.8/site-packages/ && \\\n",
++
+ " popd\n",
+ "\n",
+ " # Make sure stereo_chemical_props.txt is in all locations where it could be searched for.\n",
+@@ -189,9 +190,10 @@
+ "\n",
+ "import jax\n",
+ "if jax.local_devices()[0].platform == 'tpu':\n",
+- " raise RuntimeError('Colab TPU runtime not supported. Change it to GPU via Runtime -\u003e Change Runtime Type -\u003e Hardware accelerator -\u003e GPU.')\n",
++ " raise RuntimeError('Colab TPU runtime not supported. Change it to GPU via Runtime -> Change Runtime Type -> Hardware accelerator -> GPU.')\n",
+ "elif jax.local_devices()[0].platform == 'cpu':\n",
+- " raise RuntimeError('Colab CPU runtime not supported. Change it to GPU via Runtime -\u003e Change Runtime Type -\u003e Hardware accelerator -\u003e GPU.')\n",
++ " raise RuntimeError('Colab CPU runtime not supported. Change it to GPU via Runtime -> Change Runtime Type -> Hardware accelerator -> GPU.')\n",
++
+ "else:\n",
+ " print(f'Running with {jax.local_devices()[0].device_kind} GPU')\n",
+ "\n",
+@@ -211,7 +213,7 @@
+ "source": [
+ "## Making a prediction\n",
+ "\n",
+- "Please paste the sequence of your protein in the text box below, then run the remaining cells via _Runtime_ \u003e _Run after_. You can also run the cells individually by pressing the _Play_ button on the left.\n",
++ "Please paste the sequence of your protein in the text box below, then run the remaining cells via _Runtime_ > _Run after_. You can also run the cells individually by pressing the _Play_ button on the left.\n",
+ "\n",
+ "Note that the search against databases and the actual prediction can take some time, from minutes to hours, depending on the length of the protein and what type of GPU you are allocated by Colab (see FAQ below)."
+ ]
+@@ -306,21 +308,21 @@
+ "\n",
+ "# Check whether total length exceeds limit.\n",
+ "total_sequence_length = sum([len(seq) for seq in sequences])\n",
+- "if total_sequence_length \u003e MAX_LENGTH:\n",
++ "if total_sequence_length > MAX_LENGTH:\n",
+ " raise ValueError('The total sequence length is too long: '\n",
+ " f'{total_sequence_length}, while the maximum is '\n",
+ " f'{MAX_LENGTH}.')\n",
+ "\n",
+ "# Check whether we exceed the monomer limit.\n",
+ "if model_type_to_use == ModelType.MONOMER:\n",
+- " if len(sequences[0]) \u003e MAX_MONOMER_MODEL_LENGTH:\n",
++ " if len(sequences[0]) > MAX_MONOMER_MODEL_LENGTH:\n",
+ " raise ValueError(\n",
+ " f'Input sequence is too long: {len(sequences[0])} amino acids, while '\n",
+ " f'the maximum for the monomer model is {MAX_MONOMER_MODEL_LENGTH}. You may '\n",
+ " 'be able to run this sequence with the multimer model by selecting the '\n",
+ " 'use_multimer_model_for_monomers checkbox above.')\n",
+ " \n",
+- "if total_sequence_length \u003e MAX_VALIDATED_LENGTH:\n",
++ "if total_sequence_length > MAX_VALIDATED_LENGTH:\n",
+ " print('WARNING: The accuracy of the system has not been fully validated '\n",
+ " 'above 3000 residues, and you may experience long running times or '\n",
+ " f'run out of memory. Total sequence length is {total_sequence_length} '\n",
+@@ -421,7 +423,7 @@
+ "]\n",
+ "\n",
+ "# Search UniProt and construct the all_seq features only for heteromers, not homomers.\n",
+- "if model_type_to_use == ModelType.MULTIMER and len(set(sequences)) \u003e 1:\n",
++ "if model_type_to_use == ModelType.MULTIMER and len(set(sequences)) > 1:\n",
+ " MSA_DATABASES.extend([\n",
+ " # Swiss-Prot and TrEMBL are concatenated together as UniProt.\n",
+ " {'db_name': 'uniprot',\n",
+@@ -455,7 +457,7 @@
+ " for sequence_index, sequence in enumerate(sorted(set(sequences)), 1):\n",
+ " fasta_path = f'target_{sequence_index:02d}.fasta'\n",
+ " with open(fasta_path, 'wt') as f:\n",
+- " f.write(f'\u003equery\\n{sequence}')\n",
++ " f.write(f'>query\\n{sequence}')\n",
+ " sequence_to_fasta_path[sequence] = fasta_path\n",
+ "\n",
+ " # Run the search against chunks of genetic databases (since the genetic\n",
+@@ -516,7 +518,7 @@
+ " num_templates=0, num_res=len(sequence)))\n",
+ "\n",
+ " # Construct the all_seq features only for heteromers, not homomers.\n",
+- " if model_type_to_use == ModelType.MULTIMER and len(set(sequences)) \u003e 1:\n",
++ " if model_type_to_use == ModelType.MULTIMER and len(set(sequences)) > 1:\n",
+ " valid_feats = msa_pairing.MSA_FEATURES + (\n",
+ " 'msa_species_identifiers',\n",
+ " )\n",
+@@ -680,7 +682,7 @@
+ "banded_b_factors = []\n",
+ "for plddt in plddts[best_model_name]:\n",
+ " for idx, (min_val, max_val, _) in enumerate(PLDDT_BANDS):\n",
+- " if plddt \u003e= min_val and plddt \u003c= max_val:\n",
++ " if plddt >= min_val and plddt <= max_val:\n",
+ " banded_b_factors.append(idx)\n",
+ " break\n",
+ "banded_b_factors = np.array(banded_b_factors)[:, None] * final_atom_mask\n",
+@@ -693,14 +695,14 @@
+ " f.write(relaxed_pdb)\n",
+ "\n",
+ "\n",
+- "# --- Visualise the prediction \u0026 confidence ---\n",
++ "# --- Visualise the prediction & confidence ---\n",
+ "show_sidechains = True\n",
+ "def plot_plddt_legend():\n",
+ " \"\"\"Plots the legend for pLDDT.\"\"\"\n",
+- " thresh = ['Very low (pLDDT \u003c 50)',\n",
+- " 'Low (70 \u003e pLDDT \u003e 50)',\n",
+- " 'Confident (90 \u003e pLDDT \u003e 70)',\n",
+- " 'Very high (pLDDT \u003e 90)']\n",
++ " thresh = ['Very low (pLDDT < 50)',\n",
++ " 'Low (70 > pLDDT > 50)',\n",
++ " 'Confident (90 > pLDDT > 70)',\n",
++ " 'Very high (pLDDT > 90)']\n",
+ "\n",
+ " colors = [x[2] for x in PLDDT_BANDS]\n",
+ "\n",
+@@ -816,13 +818,13 @@
+ "id": "jeb2z8DIA4om"
+ },
+ "source": [
+- "## FAQ \u0026 Troubleshooting\n",
++ "## FAQ & Troubleshooting\n",
+ "\n",
+ "\n",
+ "* How do I get a predicted protein structure for my protein?\n",
+ " * Click on the _Connect_ button on the top right to get started.\n",
+ " * Paste the amino acid sequence of your protein (without any headers) into the “Enter the amino acid sequence to fold”.\n",
+- " * Run all cells in the Colab, either by running them individually (with the play button on the left side) or via _Runtime_ \u003e _Run all._ Make sure you run all 5 cells in order.\n",
++ " * Run all cells in the Colab, either by running them individually (with the play button on the left side) or via _Runtime_ > _Run all._ Make sure you run all 5 cells in order.\n",
+ " * The predicted protein structure will be downloaded once all cells have been executed. Note: This can take minutes to hours - see below.\n",
+ "* How long will this take?\n",
+ " * Downloading the AlphaFold source code can take up to a few minutes.\n",
+@@ -831,8 +833,8 @@
+ " * Running AlphaFold and generating the prediction can take minutes to hours, depending on the length of your protein and on which GPU-type Colab has assigned you.\n",
+ "* My Colab no longer seems to be doing anything, what should I do?\n",
+ " * Some steps may take minutes to hours to complete.\n",
+- " * If nothing happens or if you receive an error message, try restarting your Colab runtime via _Runtime_ \u003e _Restart runtime_.\n",
+- " * If this doesn’t help, try resetting your Colab runtime via _Runtime_ \u003e _Factory reset runtime_.\n",
++ " * If nothing happens or if you receive an error message, try restarting your Colab runtime via _Runtime_ > _Restart runtime_.\n",
++ " * If this doesn’t help, try resetting your Colab runtime via _Runtime_ > _Factory reset runtime_.\n",
+ "* How does this compare to the open-source version of AlphaFold?\n",
+ " * This Colab version of AlphaFold searches a selected portion of the BFD dataset and currently doesn’t use templates, so its accuracy is reduced in comparison to the full version of AlphaFold that is described in the [AlphaFold paper](https://doi.org/10.1038/s41586-021-03819-2) and [Github repo](https://github.com/deepmind/alphafold/) (the full version is available via the inference script).\n",
+ "* What is a Colab?\n",
+@@ -841,7 +843,7 @@
+ " * The resources allocated to your Colab vary. See the [Colab FAQ](https://research.google.com/colaboratory/faq.html) for more details.\n",
+ " * You can execute the Colab nonetheless.\n",
+ "* I received an error “Colab CPU runtime not supported” or “No GPU/TPU found”, what do I do?\n",
+- " * Colab CPU runtime is not supported. Try changing your runtime via _Runtime_ \u003e _Change runtime type_ \u003e _Hardware accelerator_ \u003e _GPU_.\n",
++ " * Colab CPU runtime is not supported. Try changing your runtime via _Runtime_ > _Change runtime type_ > _Hardware accelerator_ > _GPU_.\n",
+ " * The type of GPU allocated to your Colab varies. See the [Colab FAQ](https://research.google.com/colaboratory/faq.html) for more details.\n",
+ " * If you receive “Cannot connect to GPU backend”, you can try again later to see if Colab allocates you a GPU.\n",
+ " * [Colab Pro](https://colab.research.google.com/signup) offers priority access to GPUs.\n",
diff --git a/easybuild/easyconfigs/a/AlphaPulldown/AlphaPulldown-2.0.0b2_fix-import-protein_letters_3to1.patch b/easybuild/easyconfigs/a/AlphaPulldown/AlphaPulldown-2.0.0b2_fix-import-protein_letters_3to1.patch
new file mode 100644
index 00000000000..34994664f80
--- /dev/null
+++ b/easybuild/easyconfigs/a/AlphaPulldown/AlphaPulldown-2.0.0b2_fix-import-protein_letters_3to1.patch
@@ -0,0 +1,13 @@
+fix import of protein_letters_3to1 from Biopython
+author: Kenneth Hoste (HPC-UGent)
+--- AlphaPulldown/alphapulldown/utils/remove_clashes_low_plddt.py.orig 2024-06-05 09:30:16.114746286 +0200
++++ AlphaPulldown/alphapulldown/utils/remove_clashes_low_plddt.py 2024-06-05 09:30:35.242665615 +0200
+@@ -4,7 +4,7 @@
+ from alphafold.data.mmcif_parsing import parse
+ from alphafold.common.residue_constants import residue_atoms, atom_types
+ from Bio.PDB import NeighborSearch, PDBIO, MMCIFIO
+-from Bio.PDB.Polypeptide import protein_letters_3to1
++from Bio.Data.SCOPData import protein_letters_3to1
+ from Bio import SeqIO
+ from colabfold.batch import convert_pdb_to_mmcif
+ from Bio.PDB import Structure, Model, Chain, Residue
diff --git a/easybuild/easyconfigs/a/AlphaPulldown/AlphaPulldown-2.0.0b4-foss-2022a-CUDA-11.7.0.eb b/easybuild/easyconfigs/a/AlphaPulldown/AlphaPulldown-2.0.0b4-foss-2022a-CUDA-11.7.0.eb
new file mode 100644
index 00000000000..492a787c919
--- /dev/null
+++ b/easybuild/easyconfigs/a/AlphaPulldown/AlphaPulldown-2.0.0b4-foss-2022a-CUDA-11.7.0.eb
@@ -0,0 +1,106 @@
+# created by Denis Kristak (Inuits)
+easyblock = 'PythonBundle'
+
+name = 'AlphaPulldown'
+version = '2.0.0b4'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+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': '2022a'}
+
+dependencies = [
+ ('CUDA', '11.7.0', '', SYSTEM),
+ ('Python', '3.10.4'),
+ ('OpenMM', '8.0.0'),
+ ('Kalign', '3.3.5'),
+ ('PyYAML', '6.0'),
+ ('jax', '0.3.25', versionsuffix), # also provides absl-py
+ ('Biopython', '1.79'),
+ ('h5py', '3.7.0'),
+ ('IPython', '8.5.0'),
+ ('JupyterLab', '3.5.0'),
+ ('matplotlib', '3.5.2'),
+ ('TensorFlow', '2.11.0', versionsuffix),
+ ('PyTorch', '1.12.0', versionsuffix),
+ ('tqdm', '4.64.0'),
+ ('dm-tree', '0.1.8'),
+ ('py3Dmol', '2.0.1.post1'),
+ ('HMMER', '3.3.2'),
+ ('HH-suite', '3.3.0'),
+ ('Uni-Core', '0.0.3', versionsuffix),
+]
+
+use_pip = True
+
+exts_list = [
+ ('importlib-resources', '5.13.0', {
+ 'modulename': 'importlib_resources',
+ 'source_tmpl': 'importlib_resources-%(version)s.tar.gz',
+ 'checksums': ['82d5c6cca930697dbbd86c93333bb2c2e72861d4789a11c2662b933e5ad2b528'],
+ }),
+ ('jmp', '0.0.4', {
+ 'checksums': ['5dfeb0fd7c7a9f72a70fff0aab9d0cbfae32a809c02f4037ff3485ceb33e1730'],
+ }),
+ ('dm-haiku', '0.0.9', {
+ 'modulename': 'haiku',
+ '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': ['d550f07f5891ede30ada5faafde98f549ed1b8ceadb7a601cca3d81db7d82414'],
+ }),
+ ('contextlib2', '21.6.0', {
+ 'checksums': ['ab1e2bfe1d01d968e1b7e8d9023bc51ef3509bba217bb730cee3827e1ee82869'],
+ }),
+ ('ml-collections', '0.1.1', {
+ 'preinstallopts': "touch requirements.txt && touch requirements-test.txt && ",
+ 'sources': ['ml_collections-%(version)s.tar.gz'],
+ 'checksums': ['3fefcc72ec433aa1e5d32307a3e474bbb67f405be814ea52a2166bfc9dbe68cc'],
+ }),
+ ('PDBFixer', '1.9', {
+ 'source_urls': ['https://github.com/openmm/pdbfixer/archive/'],
+ 'sources': [{'download_filename': '%(version)s.tar.gz', 'filename': '%(name)s-%(version)s.tar.gz'}],
+ 'checksums': ['88b9a77e50655f89d0eb2075093773e82c27a4cef842cb7d735c877b20cd39fb'],
+ }),
+ ('ihm', '1.3', {
+ 'checksums': ['09f69809fd81509cc26b60253c55b02ce79fc01fc8f4a068bca2953a7dfd33be'],
+ }),
+ ('modelcif', '1.0', {
+ 'checksums': ['e8375bc502a73dcfab0b7fbdd454d67d393bbb8969981eb52199d77192a3de56'],
+ }),
+ (name, version, {
+ 'sources': [{
+ 'filename': SOURCE_TAR_GZ,
+ 'git_config': {
+ 'url': 'https://github.com/KosinskiLab',
+ 'repo_name': 'AlphaPulldown',
+ 'tag': version,
+ 'recursive': True,
+ },
+ }],
+ 'patches': ['AlphaPulldown-2.0.0b2_fix-import-protein_letters_3to1.patch'],
+ 'checksums': [
+ None,
+ 'd41247cd12f6ef8579adbc893f6c1af5fba051167ee838449974365f4bdccf06',
+ ],
+ # remove strict version requirements for Python dependencies
+ 'preinstallopts': "sed -i 's/[>=]=.*//g' setup.cfg && ",
+ }),
+]
+
+fix_python_shebang_for = ['bin/*.py']
+
+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'],
+}
+
+sanity_check_commands = [
+ "run_multimer_jobs.py --help | grep 'A script to perform structure prediction'",
+ "convert_to_modelcif.py --help | grep 'turn it into a ModelCIF'",
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/a/AlphaPulldown/AlphaPulldown-2.0.0b4-foss-2022a.eb b/easybuild/easyconfigs/a/AlphaPulldown/AlphaPulldown-2.0.0b4-foss-2022a.eb
new file mode 100644
index 00000000000..f410c438e23
--- /dev/null
+++ b/easybuild/easyconfigs/a/AlphaPulldown/AlphaPulldown-2.0.0b4-foss-2022a.eb
@@ -0,0 +1,104 @@
+# created by Denis Kristak (Inuits)
+easyblock = 'PythonBundle'
+
+name = 'AlphaPulldown'
+version = '2.0.0b4'
+
+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': '2022a'}
+
+dependencies = [
+ ('Python', '3.10.4'),
+ ('OpenMM', '8.0.0'),
+ ('Kalign', '3.3.5'),
+ ('PyYAML', '6.0'),
+ ('jax', '0.3.25'), # also provides absl-py
+ ('Biopython', '1.79'),
+ ('h5py', '3.7.0'),
+ ('IPython', '8.5.0'),
+ ('JupyterLab', '3.5.0'),
+ ('matplotlib', '3.5.2'),
+ ('TensorFlow', '2.11.0'),
+ ('PyTorch', '1.12.0'),
+ ('tqdm', '4.64.0'),
+ ('dm-tree', '0.1.8'),
+ ('py3Dmol', '2.0.1.post1'),
+ ('HMMER', '3.3.2'),
+ ('HH-suite', '3.3.0'),
+ ('Uni-Core', '0.0.3'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('importlib-resources', '5.13.0', {
+ 'modulename': 'importlib_resources',
+ 'source_tmpl': 'importlib_resources-%(version)s.tar.gz',
+ 'checksums': ['82d5c6cca930697dbbd86c93333bb2c2e72861d4789a11c2662b933e5ad2b528'],
+ }),
+ ('jmp', '0.0.4', {
+ 'checksums': ['5dfeb0fd7c7a9f72a70fff0aab9d0cbfae32a809c02f4037ff3485ceb33e1730'],
+ }),
+ ('dm-haiku', '0.0.9', {
+ 'modulename': 'haiku',
+ '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': ['d550f07f5891ede30ada5faafde98f549ed1b8ceadb7a601cca3d81db7d82414'],
+ }),
+ ('contextlib2', '21.6.0', {
+ 'checksums': ['ab1e2bfe1d01d968e1b7e8d9023bc51ef3509bba217bb730cee3827e1ee82869'],
+ }),
+ ('ml-collections', '0.1.1', {
+ 'preinstallopts': "touch requirements.txt && touch requirements-test.txt && ",
+ 'sources': ['ml_collections-%(version)s.tar.gz'],
+ 'checksums': ['3fefcc72ec433aa1e5d32307a3e474bbb67f405be814ea52a2166bfc9dbe68cc'],
+ }),
+ ('PDBFixer', '1.9', {
+ 'source_urls': ['https://github.com/openmm/pdbfixer/archive/'],
+ 'sources': [{'download_filename': '%(version)s.tar.gz', 'filename': '%(name)s-%(version)s.tar.gz'}],
+ 'checksums': ['88b9a77e50655f89d0eb2075093773e82c27a4cef842cb7d735c877b20cd39fb'],
+ }),
+ ('ihm', '1.3', {
+ 'checksums': ['09f69809fd81509cc26b60253c55b02ce79fc01fc8f4a068bca2953a7dfd33be'],
+ }),
+ ('modelcif', '1.0', {
+ 'checksums': ['e8375bc502a73dcfab0b7fbdd454d67d393bbb8969981eb52199d77192a3de56'],
+ }),
+ (name, version, {
+ 'sources': [{
+ 'filename': SOURCE_TAR_GZ,
+ 'git_config': {
+ 'url': 'https://github.com/KosinskiLab',
+ 'repo_name': 'AlphaPulldown',
+ 'tag': version,
+ 'recursive': True,
+ },
+ }],
+ 'patches': ['AlphaPulldown-2.0.0b2_fix-import-protein_letters_3to1.patch'],
+ 'checksums': [
+ None,
+ 'd41247cd12f6ef8579adbc893f6c1af5fba051167ee838449974365f4bdccf06',
+ ],
+ # remove strict version requirements for Python dependencies
+ 'preinstallopts': "sed -i 's/[>=]=.*//g' setup.cfg && ",
+ }),
+]
+
+fix_python_shebang_for = ['bin/*.py']
+
+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'],
+}
+
+sanity_check_commands = [
+ "run_multimer_jobs.py --help | grep 'A script to perform structure prediction'",
+ "convert_to_modelcif.py --help | grep 'turn it into a ModelCIF'",
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/a/AmberTools/AmberTools-23.6-foss-2023a.eb b/easybuild/easyconfigs/a/AmberTools/AmberTools-23.6-foss-2023a.eb
new file mode 100644
index 00000000000..ca7d8074aab
--- /dev/null
+++ b/easybuild/easyconfigs/a/AmberTools/AmberTools-23.6-foss-2023a.eb
@@ -0,0 +1,86 @@
+easyblock = 'EB_Amber'
+
+name = 'AmberTools'
+local_ambertools_ver = 23
+# Patch levels from http://ambermd.org/AmberPatches.php and http://ambermd.org/ATPatches.php
+patchlevels = (6, 0) # (AmberTools, Amber)
+version = '%s.%s' % (local_ambertools_ver, patchlevels[0])
+
+homepage = 'https://ambermd.org/'
+description = """AmberTools consists of several independently developed packages that work well by themselves,
+ and with Amber itself. The suite can also be used to carry out complete molecular dynamics simulations,
+ with either explicit water or generalized Born solvent models."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'usempi': True}
+
+# download requires registration
+local_download_credentials = '?Name=Easybuild&Institution=Easybuild&City=Internet&State=Other&Country=Belgium'
+source_urls = ['https://ambermd.org/cgi-bin/AmberTools%s-get.pl' % local_ambertools_ver]
+sources = [{
+ 'download_filename': local_download_credentials,
+ 'filename': 'AmberTools%s.tar.bz2' % local_ambertools_ver,
+}]
+patches = [
+ 'AmberTools-20_cmake-locate-netcdf.patch',
+ 'AmberTools-20_fix_missing_MPI_LIBRARY_error.patch',
+ 'AmberTools-20_fix_xblas_missing_make_dependency.patch',
+ 'AmberTools-21_CMake-FlexiBLAS.patch',
+ 'AmberTools-21_fix_incorrect_dvout_call.patch',
+ 'AmberTools-21_fix_more_blas_argument_problems.patch',
+ 'AmberTools-21_fix_potential_use_before_init.patch',
+ 'AmberTools-21_fix_rism_argument_mismatch.patch',
+ 'AmberTools-21_fix_xray_fftpack_arg_mismatch.patch',
+ 'AmberTools-22_fix_test_missing_cuda_dir.patch',
+]
+checksums = [
+ {'AmberTools23.tar.bz2': 'debb52e6ef2e1b4eaa917a8b4d4934bd2388659c660501a81ea044903bf9ee9d'},
+ {'AmberTools-20_cmake-locate-netcdf.patch': '473e07c53b6f641d96d333974a6af2e03413fecef79f879d3fdecf7fecaab4d0'},
+ {'AmberTools-20_fix_missing_MPI_LIBRARY_error.patch':
+ '0b89a0624167bc23876bcdefcb1055f591e38e3bd559a71d5749e342bd311acc'},
+ {'AmberTools-20_fix_xblas_missing_make_dependency.patch':
+ 'ff25e91fdc72347a778c3837b581e174d6a8c71efa5b46e11391b18bca84fd65'},
+ {'AmberTools-21_CMake-FlexiBLAS.patch': '9543812c24c4b7842f64f1f8abaf2c92b5c4c0fadcdbd9811e76b81a778f0d36'},
+ {'AmberTools-21_fix_incorrect_dvout_call.patch':
+ '1054d4007f5c79126a41582e1e80514267cf406416ed6c471574cd708b16319b'},
+ {'AmberTools-21_fix_more_blas_argument_problems.patch':
+ 'c6279b57752239184b942d37f760749494ae0eff95236f3368c76ac0d2726a7c'},
+ {'AmberTools-21_fix_potential_use_before_init.patch':
+ '377e645b5bd2c91ebb4d0b6fbca0407a94289e5ddc5b1e7ed0cb0b0724ad2139'},
+ {'AmberTools-21_fix_rism_argument_mismatch.patch':
+ '14255e5739cec39303df570f06820c7532f7395e1b73b1e4104377984e2c9fc1'},
+ {'AmberTools-21_fix_xray_fftpack_arg_mismatch.patch':
+ '99c954e693659efc2a1d121f91510f56408006f0751d91595f45a34b03364e2f'},
+ {'AmberTools-22_fix_test_missing_cuda_dir.patch':
+ 'fb1ab74314d7816169bb9f3f527b78085654aae2825c52cebf50a5760401b737'},
+]
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+ ('pkgconf', '1.9.5'),
+ ('Bison', '3.8.2'),
+ ('flex', '2.6.4'),
+ ('make', '4.4.1'),
+]
+
+dependencies = [
+ ('zlib', '1.2.13'),
+ ('bzip2', '1.0.8'),
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('Perl', '5.36.1'),
+ ('Perl-bundle-CPAN', '5.36.1'),
+ ('Boost', '1.82.0'),
+ ('libreadline', '8.2'),
+ ('matplotlib', '3.7.2'),
+ ('netCDF', '4.9.2'),
+ ('netCDF-Fortran', '4.6.1'),
+ ('PnetCDF', '1.12.3'),
+ ('Tkinter', '%(pyver)s'),
+ ('X11', '20230603'),
+ ('mpi4py', '3.1.4'),
+]
+
+runtest = True
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/a/Anaconda3/Anaconda3-2024.02-1.eb b/easybuild/easyconfigs/a/Anaconda3/Anaconda3-2024.02-1.eb
new file mode 100644
index 00000000000..ff866c9193d
--- /dev/null
+++ b/easybuild/easyconfigs/a/Anaconda3/Anaconda3-2024.02-1.eb
@@ -0,0 +1,33 @@
+# 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, 2024.2-1 by J. Hein
+# config upgrade to 2019.03 by Davide Vanzo
+# config upgrade to 2023.09 by Sarah Walters
+
+# no support for power architecture in 2024.02-1 on https://repo.anaconda.com/archive/, as off 13 Feb 2024
+easyblock = 'EB_Anaconda'
+
+name = 'Anaconda3'
+version = '2024.02-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': 'c536ddb7b4ba738bddbd4e581b29308cb332fa12ae3fa2cd66814bd735dff231',
+ '%(name)s-%(version)s-Linux-aarch64.sh': '28c5bed6fba84f418516e41640c7937514aabd55e929a8f66937c737303c7bba',
+ }
+]
+
+moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/a/Arcade-Learning-Environment/Arcade-Learning-Environment-0.8.1-foss-2023a.eb b/easybuild/easyconfigs/a/Arcade-Learning-Environment/Arcade-Learning-Environment-0.8.1-foss-2023a.eb
new file mode 100644
index 00000000000..aca8f2dca72
--- /dev/null
+++ b/easybuild/easyconfigs/a/Arcade-Learning-Environment/Arcade-Learning-Environment-0.8.1-foss-2023a.eb
@@ -0,0 +1,63 @@
+easyblock = 'CMakeMake'
+
+name = 'Arcade-Learning-Environment'
+version = '0.8.1'
+
+homepage = 'https://github.com/mgbellemare/Arcade-Learning-Environment'
+description = """The Arcade Learning Environment (ALE) is a simple framework that allows
+researchers and hobbyists to develop AI agents for Atari 2600 games. It is
+built on top of the Atari 2600 emulator Stella and separates the details of
+emulation from agent design. This video depicts over 50 games currently
+supported in the ALE."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+github_account = 'mgbellemare'
+source_urls = [GITHUB_SOURCE]
+sources = ['v%(version)s.tar.gz']
+checksums = ['28960616cd89c18925ced7bbdeec01ab0b2ebd2d8ce5b7c88930e97381b4c3b5']
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('pybind11', '2.11.1'),
+ ('SciPy-bundle', '2023.07'),
+ ('SDL2', '2.28.2'),
+ ('zlib', '1.2.13'),
+]
+
+# main build of C++ libraries
+configopts = "-DBUILD_PYTHON_LIB=OFF"
+
+# install Python bindings and its dependencies
+exts_defaultclass = 'PythonPackage'
+exts_default_options = {
+ 'download_dep_fail': True,
+ 'use_pip': True,
+ 'sanity_pip_check': True,
+}
+exts_list = [
+ ('ale-py', version, {
+ 'patches': ['%(name)s-%(version)s_fix_version.patch'],
+ 'preinstallopts': 'ALE_BUILD_VERSION=%(version)s',
+ 'source_tmpl': 'v%(version)s.tar.gz',
+ 'checksums': [
+ {'v0.8.1.tar.gz': '28960616cd89c18925ced7bbdeec01ab0b2ebd2d8ce5b7c88930e97381b4c3b5'},
+ {'ale-py-0.8.1_fix_version.patch': '3ad39a05eb82c3aacf34a6de562ad2d76c254a906963bdef6a810f0b5ce0d22f'},
+ ],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/ale-import-roms', 'lib64/libale.a'],
+ 'dirs': ['include/ale', 'lib/python%(pyshortver)s/site-packages/'],
+}
+
+sanity_check_commands = ["ale-import-roms --help"]
+
+modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/a/ArchR/ArchR-1.0.2-foss-2022b-R-4.2.2.eb b/easybuild/easyconfigs/a/ArchR/ArchR-1.0.2-foss-2022b-R-4.2.2.eb
new file mode 100644
index 00000000000..98e3a1c19f3
--- /dev/null
+++ b/easybuild/easyconfigs/a/ArchR/ArchR-1.0.2-foss-2022b-R-4.2.2.eb
@@ -0,0 +1,27 @@
+easyblock = 'RPackage'
+
+name = 'ArchR'
+version = '1.0.2'
+versionsuffix = '-R-%(rver)s'
+
+homepage = 'https://www.archrproject.com'
+description = "ArchR is a full-featured R package for processing and analyzing single-cell ATAC-seq data."
+
+toolchain = {'name': 'foss', 'version': '2022b'}
+
+source_urls = ['https://github.com/GreenleafLab/ArchR/archive/refs/tags/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['afe4d82975e9d75018e9ec9fda3d116f34f99ad1d45990cbc5a2be7dea8df352']
+
+dependencies = [
+ ('R', '4.2.2'),
+ ('R-bundle-Bioconductor', '3.16', versionsuffix),
+ ('presto', '1.0.0-20230501', versionsuffix),
+]
+
+sanity_check_paths = {
+ 'files': [],
+ 'dirs': ['%(name)s'],
+}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/a/ArchR/ArchR-1.0.2-foss-2023a-R-4.3.2.eb b/easybuild/easyconfigs/a/ArchR/ArchR-1.0.2-foss-2023a-R-4.3.2.eb
new file mode 100644
index 00000000000..c28181e314a
--- /dev/null
+++ b/easybuild/easyconfigs/a/ArchR/ArchR-1.0.2-foss-2023a-R-4.3.2.eb
@@ -0,0 +1,27 @@
+easyblock = 'RPackage'
+
+name = 'ArchR'
+version = '1.0.2'
+versionsuffix = '-R-%(rver)s'
+
+homepage = 'https://www.archrproject.com'
+description = "ArchR is a full-featured R package for processing and analyzing single-cell ATAC-seq data."
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+source_urls = ['https://github.com/GreenleafLab/ArchR/archive/refs/tags/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['afe4d82975e9d75018e9ec9fda3d116f34f99ad1d45990cbc5a2be7dea8df352']
+
+dependencies = [
+ ('R', '4.3.2'),
+ ('R-bundle-Bioconductor', '3.18', versionsuffix),
+ ('presto', '1.0.0-20230501', versionsuffix),
+]
+
+sanity_check_paths = {
+ 'files': [],
+ 'dirs': ['%(name)s'],
+}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/a/Archive-Zip/Archive-Zip-1.68-GCCcore-12.2.0.eb b/easybuild/easyconfigs/a/Archive-Zip/Archive-Zip-1.68-GCCcore-12.2.0.eb
new file mode 100644
index 00000000000..088d0a56de6
--- /dev/null
+++ b/easybuild/easyconfigs/a/Archive-Zip/Archive-Zip-1.68-GCCcore-12.2.0.eb
@@ -0,0 +1,32 @@
+easyblock = 'PerlModule'
+
+name = 'Archive-Zip'
+version = '1.68'
+
+homepage = 'https://metacpan.org/pod/Archive::Zip'
+description = "Provide an interface to ZIP archive files."
+
+toolchain = {'name': 'GCCcore', 'version': '12.2.0'}
+
+source_urls = ['https://cpan.metacpan.org/authors/id/P/PH/PHRED/']
+sources = ['%(name)s-%(version)s.tar.gz']
+checksums = ['984e185d785baf6129c6e75f8eb44411745ac00bf6122fb1c8e822a3861ec650']
+
+builddependencies = [
+ ('binutils', '2.39'),
+]
+
+dependencies = [
+ ('Perl', '5.36.0'),
+ ('UnZip', '6.0'),
+ ('Zip', '3.0'),
+]
+
+options = {'modulename': 'Archive::Zip'}
+
+sanity_check_paths = {
+ 'files': ['bin/crc32'],
+ 'dirs': ['lib/perl5/site_perl/%(perlver)s/Archive/Zip'],
+}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/a/AreTomo2/AreTomo2-1.0.0-GCCcore-12.3.0-CUDA-12.1.1.eb b/easybuild/easyconfigs/a/AreTomo2/AreTomo2-1.0.0-GCCcore-12.3.0-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..4864dbcbee3
--- /dev/null
+++ b/easybuild/easyconfigs/a/AreTomo2/AreTomo2-1.0.0-GCCcore-12.3.0-CUDA-12.1.1.eb
@@ -0,0 +1,55 @@
+# Thomas Hoffmann, EMBL Heidelberg, structures-it@embl.de, 2024/1
+easyblock = 'MakeCp'
+
+name = 'AreTomo2'
+version = '1.0.0'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://github.com/czimaginginstitute/AreTomo2'
+
+description = """AreTomo2, a multi-GPU accelerated software package that fully automates motion-
+corrected marker-free tomographic alignment and reconstruction, now includes
+robust GPU-accelerated CTF (Contrast Transfer Function) estimation in a single
+package. AreTomo2 is part of our endeavor to build a fully-automated high-
+throughput processing pipeline that enables real-time reconstruction of
+tomograms in parallel with tomographic data collection. It strives to be fast
+and accurate, as well as provides for easy integration into subtomogram
+processing workflows by generating IMod compatible files containing alignment
+and CTF parameters needed to bootstrap subtomogram averaging. AreTomo2 can also
+be used for on-the-fly reconstruction of tomograms and CTF estimation in
+parallel with tilt series collection, enabling real-time assessment of sample
+quality and adjustment of collection parameters"""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+toolchainopts = {'cstd': 'c++11'}
+
+source_urls = [GITHUB_SOURCE]
+sources = ['v%(version)s.tar.gz']
+patches = ['%(name)s-%(version)s_makefile.patch']
+checksums = [
+ {'v1.0.0.tar.gz': '5518cd5d7bc13a6dbb6d9310b22c301e73a0c91dc059da403445d79ca0ff8892'},
+ {'AreTomo2-1.0.0_makefile.patch': '8595b2fc55e0b5e1bf7c077c93c09503b4e8f95123c6aaf0a5fbe44dda871c73'},
+]
+
+github_account = 'czimaginginstitute'
+
+build_cmd = 'make exe -f makefile11 CUDAHOME=$CUDA_HOME CUDACC="%(cuda_cc_cmake)s"'
+
+builddependencies = [
+ ('binutils', '2.40')
+]
+
+dependencies = [
+ ('CUDA', '12.1.1', '', SYSTEM),
+]
+
+files_to_copy = [(['%(name)s'], 'bin')]
+
+sanity_check_paths = {
+ 'files': ['bin/%(name)s'],
+ 'dirs': ['bin'],
+}
+
+sanity_check_commands = ['%(name)s -h']
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/a/AreTomo2/AreTomo2-1.0.0_makefile.patch b/easybuild/easyconfigs/a/AreTomo2/AreTomo2-1.0.0_makefile.patch
new file mode 100644
index 00000000000..ebef90dd5d2
--- /dev/null
+++ b/easybuild/easyconfigs/a/AreTomo2/AreTomo2-1.0.0_makefile.patch
@@ -0,0 +1,46 @@
+# Thomas Hoffmann, EBML Heidelberg, structures-it@embl.de, 2023/10
+# allow to inject cuda compute capabilities and cfalgs
+diff -ru AreTomo2-1.0.0/makefile11 AreTomo2-1.0.0_makefile/makefile11
+--- AreTomo2-1.0.0/makefile11 2023-10-26 19:49:07.000000000 +0200
++++ AreTomo2-1.0.0_makefile/makefile11 2023-10-30 19:00:07.212270395 +0100
+@@ -156,18 +156,21 @@
+ $(CUCPPS)
+ OBJS = $(patsubst %.cpp, %.o, $(SRCS))
+ #-------------------------------------
+-CC = g++ -std=c++11
+-CFLAG = -c -g -pthread -m64
++#CC = g++ -std=c++11
++CFLAG = -c -g -pthread -m64 $(CFLAGS)
+ NVCC = $(CUDAHOME)/bin/nvcc -std=c++11
+-CUFLAG = -Xptxas -dlcm=ca -O2 \
+- -gencode arch=compute_80,code=sm_80 \
+- -gencode arch=compute_75,code=sm_75 \
+- -gencode arch=compute_70,code=sm_70 \
+- -gencode arch=compute_61,code=sm_61 \
+- -gencode arch=compute_60,code=sm_60 \
+- -gencode arch=compute_53,code=sm_53 \
+- -gencode arch=compute_52,code=sm_52 \
+- -gencode arch=compute_86,code=sm_86
++SPACE= ' '
++SEMI= ;
++GENCODES = $(foreach x,$(subst $(SEMI),$(SPACE),$(CUDACC)),-gencode arch=compute_$x,code=sm_$x)
++CUFLAG = -Xptxas -dlcm=ca -O2 $(GENCODES)
++# -gencode arch=compute_80,code=sm_80 \
++# -gencode arch=compute_75,code=sm_75 \
++# -gencode arch=compute_70,code=sm_70 \
++# -gencode arch=compute_61,code=sm_61 \
++# -gencode arch=compute_60,code=sm_60 \
++# -gencode arch=compute_53,code=sm_53 \
++# -gencode arch=compute_52,code=sm_52 \
++# -gencode arch=compute_86,code=sm_86
+ #------------------------------------------
+ cuda: $(CUCPPS)
+
+@@ -183,6 +186,7 @@
+ -lcufft -lcudart -lcuda -lc -lm -lpthread \
+ -o AreTomo2
+ @echo AreTomo2 has been generated.
++ @echo used cuda gencodes: $(GENCODES)
+
+ %.o: %.cu
+ @$(NVCC) -c $(CUFLAG) -I$(PRJINC) -I$(CUPRJINC) $< -o $@
diff --git a/easybuild/easyconfigs/a/Armadillo/Armadillo-11.4.3-foss-2022a.eb b/easybuild/easyconfigs/a/Armadillo/Armadillo-11.4.3-foss-2022a.eb
index 261ecca60bb..c8c874dba00 100644
--- a/easybuild/easyconfigs/a/Armadillo/Armadillo-11.4.3-foss-2022a.eb
+++ b/easybuild/easyconfigs/a/Armadillo/Armadillo-11.4.3-foss-2022a.eb
@@ -12,10 +12,13 @@ source_urls = ['https://sourceforge.net/projects/arma/files']
sources = [SOURCELOWER_TAR_XZ]
checksums = ['87603263664988af41da2ca4f36205e36ea47a9281fa6cfd463115f3797a1da2']
-builddependencies = [('CMake', '3.24.3')]
+builddependencies = [
+ ('CMake', '3.24.3'),
+]
dependencies = [
('Boost', '1.79.0'),
+ ('HDF5', '1.12.2'),
('arpack-ng', '3.8.0'),
]
diff --git a/easybuild/easyconfigs/a/Armadillo/Armadillo-11.4.3-foss-2022b.eb b/easybuild/easyconfigs/a/Armadillo/Armadillo-11.4.3-foss-2022b.eb
index f5eb6f67b05..1be96397544 100644
--- a/easybuild/easyconfigs/a/Armadillo/Armadillo-11.4.3-foss-2022b.eb
+++ b/easybuild/easyconfigs/a/Armadillo/Armadillo-11.4.3-foss-2022b.eb
@@ -12,10 +12,13 @@ source_urls = ['https://sourceforge.net/projects/arma/files']
sources = [SOURCELOWER_TAR_XZ]
checksums = ['87603263664988af41da2ca4f36205e36ea47a9281fa6cfd463115f3797a1da2']
-builddependencies = [('CMake', '3.24.3')]
+builddependencies = [
+ ('CMake', '3.24.3'),
+]
dependencies = [
('Boost', '1.81.0'),
+ ('HDF5', '1.14.0'),
('arpack-ng', '3.8.0'),
]
diff --git a/easybuild/easyconfigs/a/Armadillo/Armadillo-12.6.2-foss-2023a.eb b/easybuild/easyconfigs/a/Armadillo/Armadillo-12.6.2-foss-2023a.eb
index 2ca4adac034..9b6d74fe58b 100644
--- a/easybuild/easyconfigs/a/Armadillo/Armadillo-12.6.2-foss-2023a.eb
+++ b/easybuild/easyconfigs/a/Armadillo/Armadillo-12.6.2-foss-2023a.eb
@@ -18,6 +18,7 @@ builddependencies = [
dependencies = [
('Boost', '1.82.0'),
+ ('HDF5', '1.14.0'),
('arpack-ng', '3.9.0'),
]
diff --git a/easybuild/easyconfigs/a/Armadillo/Armadillo-12.8.0-foss-2023b.eb b/easybuild/easyconfigs/a/Armadillo/Armadillo-12.8.0-foss-2023b.eb
new file mode 100644
index 00000000000..2ca0b7de51d
--- /dev/null
+++ b/easybuild/easyconfigs/a/Armadillo/Armadillo-12.8.0-foss-2023b.eb
@@ -0,0 +1,25 @@
+name = 'Armadillo'
+version = '12.8.0'
+
+homepage = 'https://arma.sourceforge.net/'
+description = """Armadillo is an open-source C++ linear algebra library (matrix maths) aiming towards
+ a good balance between speed and ease of use. Integer, floating point and complex numbers are supported,
+ as well as a subset of trigonometric and statistics functions."""
+
+toolchain = {'name': 'foss', 'version': '2023b'}
+
+source_urls = ['https://sourceforge.net/projects/arma/files']
+sources = [SOURCELOWER_TAR_XZ]
+checksums = ['a89bb6fece5ce9fdd1d01a4bc145cf7cc0b939c5777cca46de69c2f5e3412cf0']
+
+builddependencies = [
+ ('CMake', '3.27.6'),
+]
+dependencies = [
+ ('Boost', '1.83.0'),
+ ('HDF5', '1.14.3'),
+ ('arpack-ng', '3.9.0'),
+]
+
+
+moduleclass = 'numlib'
diff --git a/easybuild/easyconfigs/a/Arrow/Arrow-14.0.1-gfbf-2023a.eb b/easybuild/easyconfigs/a/Arrow/Arrow-14.0.1-gfbf-2023a.eb
index 40327535b8b..0c588b9f16b 100644
--- a/easybuild/easyconfigs/a/Arrow/Arrow-14.0.1-gfbf-2023a.eb
+++ b/easybuild/easyconfigs/a/Arrow/Arrow-14.0.1-gfbf-2023a.eb
@@ -39,23 +39,35 @@ dependencies = [
start_dir = 'cpp'
# see https://arrow.apache.org/docs/developers/python.html
-configopts = "-DARROW_DATASET=on -DARROW_PYTHON=on -DARROW_PARQUET=ON -DARROW_WITH_SNAPPY=ON "
+configopts = "-DARROW_DATASET=on -DARROW_PYTHON=on -DARROW_PARQUET=ON -DARROW_ORC=ON "
configopts += "-DCMAKE_INSTALL_LIBDIR=lib -DPython3_ROOT_DIR=$EBROOTPYTHON "
-configopts += "-DARROW_WITH_ZLIB=ON -DARROW_WITH_BZ2=ON -DARROW_WITH_ZSTD=ON -DARROW_WITH_LZ4=ON "
-configopts += "-DZSTD_ROOT=$EBROOTZSTD "
+configopts += "-DARROW_WITH_ZLIB=ON -DARROW_WITH_BZ2=ON -DARROW_WITH_LZ4=ON -DARROW_WITH_SNAPPY=ON "
+configopts += "-DARROW_WITH_ZSTD=ON -DZSTD_ROOT=$EBROOTZSTD "
-# also install Python bindings
-local_install_pyarrow_cmds = "export PKG_CONFIG_PATH=%(installdir)s/lib/pkgconfig:$PKG_CONFIG_PATH && "
-local_install_pyarrow_cmds += "export Arrow_DIR=%(installdir)s && export ArrowDataset_DIR=%(installdir)s && "
-local_install_pyarrow_cmds += "export ArrowAcero_DIR=%(installdir)s && export Parquet_DIR=%(installdir)s && "
-local_install_pyarrow_cmds += "export PYTHONPATH=%(installdir)s/lib/python%(pyshortver)s/site-packages:$PYTHONPATH && "
-local_install_pyarrow_cmds += "cd %(builddir)s/*arrow-%(version)s/python && export XDG_CACHE_HOME=$TMPDIR && "
-local_install_pyarrow_cmds += "sed -i 's/numpy==[0-9.]*/numpy/g' pyproject.toml && "
-local_install_pyarrow_cmds += "Python3_ROOT_DIR=$EBROOTPYTHON "
-local_install_pyarrow_cmds += "PYARROW_CMAKE_OPTIONS='-DZSTD_LIB=$EBROOTZSTD/lib/libzstd.%s ' " % SHLIB_EXT
-local_install_pyarrow_cmds += "PYARROW_WITH_DATASET=1 PYARROW_WITH_PARQUET=1 "
-local_install_pyarrow_cmds += "python -m pip install --prefix %(installdir)s --no-build-isolation ."
-postinstallcmds = [local_install_pyarrow_cmds]
+# install Python bindings
+_pyarrow_preinstall_opts = "export PKG_CONFIG_PATH=%(installdir)s/lib/pkgconfig:$PKG_CONFIG_PATH && "
+_pyarrow_preinstall_opts += "export Arrow_DIR=%(installdir)s && export ArrowDataset_DIR=%(installdir)s && "
+_pyarrow_preinstall_opts += "export ArrowAcero_DIR=%(installdir)s && export Parquet_DIR=%(installdir)s && "
+_pyarrow_preinstall_opts += "export XDG_CACHE_HOME=$TMPDIR && "
+_pyarrow_preinstall_opts += "sed -i 's/numpy==[0-9.]*/numpy/g' pyproject.toml && "
+_pyarrow_preinstall_opts += "Python3_ROOT_DIR=$EBROOTPYTHON "
+_pyarrow_preinstall_opts += "PYARROW_CMAKE_OPTIONS='-DZSTD_LIB=$EBROOTZSTD/lib/libzstd.%s ' " % SHLIB_EXT
+_pyarrow_preinstall_opts += "PYARROW_WITH_DATASET=1 PYARROW_WITH_PARQUET=1 PYARROW_WITH_ORC=1 "
+
+exts_defaultclass = 'PythonPackage'
+exts_default_options = {
+ 'download_dep_fail': True,
+ 'use_pip': True,
+ 'sanity_pip_check': True,
+}
+exts_list = [
+ ('pyarrow', version, {
+ 'sources': ['apache-arrow-%(version)s.tar.gz'],
+ 'checksums': ['5c70eafb1011f9d124bafb328afe54f62cc5b9280b7080e1e3d668f78c0e407e'],
+ 'start_dir': '%(builddir)s/apache-arrow-%(version)s/python',
+ 'preinstallopts': _pyarrow_preinstall_opts,
+ }),
+]
modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'}
@@ -69,6 +81,7 @@ sanity_check_commands = [
"python -c 'import pyarrow'",
"python -c 'import pyarrow.dataset'",
"python -c 'import pyarrow.parquet'",
+ "python -c 'import pyarrow.orc'",
]
moduleclass = 'data'
diff --git a/easybuild/easyconfigs/a/Arrow/Arrow-16.1.0-gfbf-2023b.eb b/easybuild/easyconfigs/a/Arrow/Arrow-16.1.0-gfbf-2023b.eb
new file mode 100644
index 00000000000..5219bd9c54f
--- /dev/null
+++ b/easybuild/easyconfigs/a/Arrow/Arrow-16.1.0-gfbf-2023b.eb
@@ -0,0 +1,87 @@
+easyblock = 'CMakeMake'
+
+name = 'Arrow'
+version = '16.1.0'
+
+homepage = 'https://arrow.apache.org'
+description = """Apache Arrow (incl. PyArrow Python bindings), a cross-language development platform
+ for in-memory data."""
+
+toolchain = {'name': 'gfbf', 'version': '2023b'}
+
+source_urls = ['https://archive.apache.org/dist/%(namelower)s/%(namelower)s-%(version)s']
+sources = ['apache-arrow-%(version)s.tar.gz']
+checksums = ['c9e60c7e87e59383d21b20dc874b17153729ee153264af6d21654b7dff2c60d7']
+
+builddependencies = [
+ ('CMake', '3.27.6'),
+ ('Autotools', '20220317'),
+ ('flex', '2.6.4'),
+ ('Bison', '3.8.2'),
+ ('pkgconf', '2.0.3'),
+]
+
+# Arrow strongly prefers included jemalloc, so not including it as a dependency
+dependencies = [
+ ('Python', '3.11.5'),
+ ('SciPy-bundle', '2023.11'), # for numpy
+ ('Boost', '1.83.0'),
+ ('lz4', '1.9.4'),
+ ('zlib', '1.2.13'),
+ ('bzip2', '1.0.8'),
+ ('zstd', '1.5.5'),
+ ('snappy', '1.1.10'),
+ ('RapidJSON', '1.1.0-20240409'),
+ ('RE2', '2024-03-01'),
+ ('utf8proc', '2.9.0'),
+]
+
+start_dir = 'cpp'
+
+# see https://arrow.apache.org/docs/developers/python.html
+configopts = "-DARROW_DATASET=on -DARROW_PYTHON=on -DARROW_PARQUET=ON -DARROW_ORC=ON "
+configopts += "-DCMAKE_INSTALL_LIBDIR=lib -DPython3_ROOT_DIR=$EBROOTPYTHON "
+configopts += "-DARROW_WITH_ZLIB=ON -DARROW_WITH_BZ2=ON -DARROW_WITH_LZ4=ON -DARROW_WITH_SNAPPY=ON "
+configopts += "-DARROW_WITH_ZSTD=ON -DZSTD_ROOT=$EBROOTZSTD "
+
+# install Python bindings
+_pyarrow_preinstall_opts = "export PKG_CONFIG_PATH=%(installdir)s/lib/pkgconfig:$PKG_CONFIG_PATH && "
+_pyarrow_preinstall_opts += "export Arrow_DIR=%(installdir)s && export ArrowDataset_DIR=%(installdir)s && "
+_pyarrow_preinstall_opts += "export ArrowAcero_DIR=%(installdir)s && export Parquet_DIR=%(installdir)s && "
+_pyarrow_preinstall_opts += "export XDG_CACHE_HOME=$TMPDIR && "
+_pyarrow_preinstall_opts += "sed -i 's/numpy==[0-9.]*/numpy/g' pyproject.toml && "
+_pyarrow_preinstall_opts += "Python3_ROOT_DIR=$EBROOTPYTHON "
+_pyarrow_preinstall_opts += "PYARROW_CMAKE_OPTIONS='-DZSTD_LIB=$EBROOTZSTD/lib/libzstd.%s ' " % SHLIB_EXT
+_pyarrow_preinstall_opts += "PYARROW_WITH_DATASET=1 PYARROW_WITH_PARQUET=1 PYARROW_WITH_ORC=1 "
+
+exts_defaultclass = 'PythonPackage'
+exts_default_options = {
+ 'download_dep_fail': True,
+ 'use_pip': True,
+ 'sanity_pip_check': True,
+}
+exts_list = [
+ ('pyarrow', version, {
+ 'sources': ['apache-arrow-%(version)s.tar.gz'],
+ 'checksums': ['c9e60c7e87e59383d21b20dc874b17153729ee153264af6d21654b7dff2c60d7'],
+ 'start_dir': '%(builddir)s/apache-arrow-%(version)s/python',
+ 'preinstallopts': _pyarrow_preinstall_opts,
+ }),
+]
+
+modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'}
+
+sanity_check_paths = {
+ 'files': ['lib/libarrow.a', 'lib/libarrow.%s' % SHLIB_EXT,
+ 'lib/python%%(pyshortver)s/site-packages/pyarrow/libarrow_python.%s' % SHLIB_EXT],
+ 'dirs': ['include/arrow', 'lib/cmake/Arrow', 'lib/pkgconfig', 'lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = [
+ "python -c 'import pyarrow'",
+ "python -c 'import pyarrow.dataset'",
+ "python -c 'import pyarrow.parquet'",
+ "python -c 'import pyarrow.orc'",
+]
+
+moduleclass = 'data'
diff --git a/easybuild/easyconfigs/a/Arrow/Arrow-17.0.0-gfbf-2024a.eb b/easybuild/easyconfigs/a/Arrow/Arrow-17.0.0-gfbf-2024a.eb
new file mode 100644
index 00000000000..76dcfd2cc40
--- /dev/null
+++ b/easybuild/easyconfigs/a/Arrow/Arrow-17.0.0-gfbf-2024a.eb
@@ -0,0 +1,96 @@
+easyblock = 'CMakeMake'
+
+name = 'Arrow'
+version = '17.0.0'
+
+homepage = 'https://arrow.apache.org'
+description = """Apache Arrow (incl. PyArrow Python bindings), a cross-language development platform
+ for in-memory data."""
+
+toolchain = {'name': 'gfbf', 'version': '2024a'}
+
+source_urls = ['https://archive.apache.org/dist/%(namelower)s/%(namelower)s-%(version)s']
+sources = ['apache-arrow-%(version)s.tar.gz']
+checksums = ['9d280d8042e7cf526f8c28d170d93bfab65e50f94569f6a790982a878d8d898d']
+
+builddependencies = [
+ ('CMake', '3.29.3'),
+ ('Cython', '3.0.10'),
+ ('Autotools', '20231222'),
+ ('flex', '2.6.4'),
+ ('Bison', '3.8.2'),
+ ('pkgconf', '2.2.0'),
+]
+
+# Arrow strongly prefers included jemalloc, so not including it as a dependency
+dependencies = [
+ ('Python', '3.12.3'),
+ ('Python-bundle-PyPI', '2024.06'),
+ ('SciPy-bundle', '2024.05'), # for numpy
+ ('Boost', '1.85.0'),
+ ('lz4', '1.9.4'),
+ ('zlib', '1.3.1'),
+ ('bzip2', '1.0.8'),
+ ('zstd', '1.5.6'),
+ ('snappy', '1.1.10'),
+ ('RapidJSON', '1.1.0-20240815'),
+ ('RE2', '2024-07-02'),
+ ('utf8proc', '2.9.0'),
+]
+
+start_dir = 'cpp'
+
+# see https://arrow.apache.org/docs/developers/python.html
+configopts = "-DARROW_DATASET=on -DARROW_PYTHON=on -DARROW_PARQUET=ON -DARROW_ORC=ON "
+configopts += "-DCMAKE_INSTALL_LIBDIR=lib -DPython3_ROOT_DIR=$EBROOTPYTHON "
+configopts += "-DARROW_WITH_ZLIB=ON -DARROW_WITH_BZ2=ON -DARROW_WITH_LZ4=ON -DARROW_WITH_SNAPPY=ON "
+configopts += "-DARROW_WITH_ZSTD=ON -DZSTD_ROOT=$EBROOTZSTD "
+
+# install Python bindings
+_pyarrow_preinstall_opts = "export PKG_CONFIG_PATH=%(installdir)s/lib/pkgconfig:$PKG_CONFIG_PATH && "
+_pyarrow_preinstall_opts += "export Arrow_DIR=%(installdir)s && export ArrowDataset_DIR=%(installdir)s && "
+_pyarrow_preinstall_opts += "export ArrowAcero_DIR=%(installdir)s && export Parquet_DIR=%(installdir)s && "
+_pyarrow_preinstall_opts += "export XDG_CACHE_HOME=$TMPDIR && "
+_pyarrow_preinstall_opts += "sed -i 's/numpy==[0-9.]*/numpy/g' pyproject.toml && "
+_pyarrow_preinstall_opts += "Python3_ROOT_DIR=$EBROOTPYTHON "
+_pyarrow_preinstall_opts += "PYARROW_CMAKE_OPTIONS='-DZSTD_LIB=$EBROOTZSTD/lib/libzstd.%s ' " % SHLIB_EXT
+_pyarrow_preinstall_opts += "PYARROW_WITH_DATASET=1 PYARROW_WITH_PARQUET=1 PYARROW_WITH_ORC=1 "
+
+exts_defaultclass = 'PythonPackage'
+exts_default_options = {
+ 'download_dep_fail': True,
+ 'use_pip': True,
+ 'sanity_pip_check': True,
+}
+exts_list = [
+ ('pyarrow', version, {
+ 'preinstallopts': (
+ "export PKG_CONFIG_PATH=%(installdir)s/lib/pkgconfig:$PKG_CONFIG_PATH"
+ " && export Arrow_DIR=%(installdir)s && export ArrowDataset_DIR=%(installdir)s"
+ " && export ArrowAcero_DIR=%(installdir)s && export Parquet_DIR=%(installdir)s"
+ " && export XDG_CACHE_HOME=$TMPDIR && sed -i 's/numpy==[0-9.]*/numpy/g' pyproject.toml"
+ " && Python3_ROOT_DIR=$EBROOTPYTHON PYARROW_CMAKE_OPTIONS='-DZSTD_LIB=$EBROOTZSTD/lib/libzstd.so"
+ " ' PYARROW_WITH_DATASET=1 PYARROW_WITH_PARQUET=1 PYARROW_WITH_ORC=1 "
+ ),
+ 'sources': ['apache-arrow-%(version)s.tar.gz'],
+ 'start_dir': '%(builddir)s/apache-arrow-%(version)s/python',
+ 'checksums': ['9d280d8042e7cf526f8c28d170d93bfab65e50f94569f6a790982a878d8d898d'],
+ }),
+]
+
+modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'}
+
+sanity_check_paths = {
+ 'files': ['lib/libarrow.a', 'lib/libarrow.%s' % SHLIB_EXT,
+ 'lib/python%%(pyshortver)s/site-packages/pyarrow/libarrow_python.%s' % SHLIB_EXT],
+ 'dirs': ['include/arrow', 'lib/cmake/Arrow', 'lib/pkgconfig', 'lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = [
+ "python -c 'import pyarrow'",
+ "python -c 'import pyarrow.dataset'",
+ "python -c 'import pyarrow.parquet'",
+ "python -c 'import pyarrow.orc'",
+]
+
+moduleclass = 'data'
diff --git a/easybuild/easyconfigs/a/Arrow/Arrow-8.0.0-foss-2021b.eb b/easybuild/easyconfigs/a/Arrow/Arrow-8.0.0-foss-2021b.eb
new file mode 100644
index 00000000000..043215854ce
--- /dev/null
+++ b/easybuild/easyconfigs/a/Arrow/Arrow-8.0.0-foss-2021b.eb
@@ -0,0 +1,77 @@
+easyblock = 'CMakeMake'
+
+name = 'Arrow'
+version = '8.0.0'
+
+homepage = 'https://arrow.apache.org'
+description = """Apache Arrow (incl. PyArrow Python bindings), a cross-language development platform
+ for in-memory data."""
+
+toolchain = {'name': 'foss', 'version': '2021b'}
+
+source_urls = ['https://archive.apache.org/dist/%(namelower)s/%(namelower)s-%(version)s']
+sources = ['apache-arrow-%(version)s.tar.gz']
+patches = ['Arrow-8.0.0_fix-BaseExtensionType-arrow-ext-methods.patch']
+checksums = [
+ {'apache-arrow-8.0.0.tar.gz': 'ad9a05705117c989c116bae9ac70492fe015050e1b80fb0e38fde4b5d863aaa3'},
+ {'Arrow-8.0.0_fix-BaseExtensionType-arrow-ext-methods.patch':
+ '2db8a4c655e2a3f0ec7dac05e13bda6c2843203568873e736d2f1b8321b0dfc7'},
+]
+
+builddependencies = [
+ ('CMake', '3.21.1'),
+ ('Autotools', '20210726'),
+ ('flex', '2.6.4'),
+ ('Bison', '3.7.6'),
+ ('pkgconf', '1.8.0'),
+]
+
+# Arrow strongly prefers included jemalloc, so not including it as a dependency
+dependencies = [
+ ('Python', '3.9.6'),
+ ('SciPy-bundle', '2021.10'), # for numpy
+ ('Boost', '1.77.0'),
+ ('lz4', '1.9.3'),
+ ('zlib', '1.2.11'),
+ ('bzip2', '1.0.8'),
+ ('zstd', '1.5.0'),
+ ('snappy', '1.1.9'),
+ ('RapidJSON', '1.1.0'),
+ ('RE2', '2022-02-01'),
+ ('utf8proc', '2.6.1'),
+]
+
+start_dir = 'cpp'
+
+# see https://arrow.apache.org/docs/developers/python.html
+configopts = "-DARROW_DATASET=on -DARROW_PYTHON=on -DARROW_PARQUET=ON -DARROW_WITH_SNAPPY=ON "
+configopts += "-DCMAKE_INSTALL_LIBDIR=lib -DPython3_ROOT_DIR=$EBROOTPYTHON "
+configopts += "-DARROW_WITH_ZLIB=ON -DARROW_WITH_BZ2=ON -DARROW_WITH_ZSTD=ON -DARROW_WITH_LZ4=ON "
+configopts += "-DZSTD_ROOT=$EBROOTZSTD "
+
+# also install Python bindings
+local_install_pyarrow_cmds = "export PKG_CONFIG_PATH=%(installdir)s/lib/pkgconfig:$PKG_CONFIG_PATH && "
+local_install_pyarrow_cmds += "export PYTHONPATH=%(installdir)s/lib/python%(pyshortver)s/site-packages:$PYTHONPATH && "
+local_install_pyarrow_cmds += "cd %(builddir)s/*arrow-%(version)s/python && export XDG_CACHE_HOME=$TMPDIR && "
+local_install_pyarrow_cmds += "sed -i 's/numpy==[0-9.]*/numpy/g' pyproject.toml && "
+local_install_pyarrow_cmds += "Python3_ROOT_DIR=$EBROOTPYTHON "
+local_install_pyarrow_cmds += "PYARROW_WITH_DATASET=1 PYARROW_WITH_PARQUET=1 "
+local_install_pyarrow_cmds += "python -m pip install --prefix %(installdir)s --no-build-isolation ."
+postinstallcmds = [local_install_pyarrow_cmds]
+
+modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'}
+
+sanity_check_paths = {
+ 'files': ['lib/libarrow.a', 'lib/libarrow.%s' % SHLIB_EXT,
+ 'lib/libarrow_python.a', 'lib/libarrow_python.%s' % SHLIB_EXT],
+ 'dirs': ['include/arrow', 'lib/cmake/arrow', 'lib/pkgconfig', 'lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = [
+ "python -c 'import pyarrow'",
+ "python -c 'import pyarrow.dataset'",
+ "python -c 'import pyarrow.parquet'",
+ "python -c 'from pyarrow.lib import BaseExtensionType; print(BaseExtensionType.__arrow_ext_class__)'",
+]
+
+moduleclass = 'data'
diff --git a/easybuild/easyconfigs/a/Austin/Austin-3.2.0-GCCcore-11.2.0.eb b/easybuild/easyconfigs/a/Austin/Austin-3.2.0-GCCcore-11.2.0.eb
index d4f3285a8fd..b2d0fe9046a 100644
--- a/easybuild/easyconfigs/a/Austin/Austin-3.2.0-GCCcore-11.2.0.eb
+++ b/easybuild/easyconfigs/a/Austin/Austin-3.2.0-GCCcore-11.2.0.eb
@@ -53,7 +53,7 @@ sanity_check_paths = {
sanity_check_commands = [
"austin --help",
"austin-tui --help",
- "pip check",
+ "PIP_DISABLE_PIP_VERSION_CHECK=true python -s -m pip check",
]
modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'}
diff --git a/easybuild/easyconfigs/a/Auto-WEKA/Auto-WEKA-2.6-WEKA-3.8.5-Java-11.eb b/easybuild/easyconfigs/a/Auto-WEKA/Auto-WEKA-2.6-WEKA-3.8.5-Java-11.eb
new file mode 100644
index 00000000000..165bfe50d5a
--- /dev/null
+++ b/easybuild/easyconfigs/a/Auto-WEKA/Auto-WEKA-2.6-WEKA-3.8.5-Java-11.eb
@@ -0,0 +1,42 @@
+easyblock = "Tarball"
+
+name = 'Auto-WEKA'
+version = '2.6'
+local_weka_version = '3.8.5'
+versionsuffix = '-WEKA-%s-Java-%%(javaver)s' % local_weka_version
+
+homepage = 'http://www.cs.ubc.ca/labs/beta/Projects/autoweka/'
+description = """
+Auto-WEKA considers the problem of simultaneously selecting a learning
+algorithm and setting its hyperparameters, going beyond previous methods that
+address these issues in isolation. Auto-WEKA does this using a fully automated
+approach, leveraging recent innovations in Bayesian optimization. Our hope is
+that Auto-WEKA will help non-expert users to more effectively identify machine
+learning algorithms and hyperparameter settings appropriate to their
+applications, and hence to achieve improved performance."""
+
+toolchain = SYSTEM
+
+source_urls = ['http://www.cs.ubc.ca/labs/beta/Projects/autoweka/']
+sources = ['autoweka-%(version)s.zip']
+checksums = ['8fba8835f6326a9fd621ffe9f119921adae00dcef97ffad5357362b155374840']
+
+dependencies = [
+ ('Java', '11'),
+ ('WEKA', local_weka_version, '-Java-%(javaver)s'),
+]
+
+sanity_check_paths = {
+ 'files': ['autoweka.jar'],
+ 'dirs': []
+}
+
+sanity_check_commands = [
+ "java weka.Run -no-scan weka.classifiers.meta.AutoWEKAClassifier -h"
+]
+
+modloadmsg = """Run %(name)s classifiers with:
+java weka.Run -no-scan weka.classifiers.meta.AutoWEKAClassifier -h
+"""
+
+moduleclass = 'data'
diff --git a/easybuild/easyconfigs/a/Autoconf-archive/Autoconf-archive-2023.02.20-GCCcore-12.2.0.eb b/easybuild/easyconfigs/a/Autoconf-archive/Autoconf-archive-2023.02.20-GCCcore-12.2.0.eb
new file mode 100644
index 00000000000..73e0608725b
--- /dev/null
+++ b/easybuild/easyconfigs/a/Autoconf-archive/Autoconf-archive-2023.02.20-GCCcore-12.2.0.eb
@@ -0,0 +1,53 @@
+##
+# 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:: GNU Free Documentation License
+#
+# Notes::
+##
+
+easyblock = 'ConfigureMake'
+
+name = 'Autoconf-archive'
+version = '2023.02.20'
+
+homepage = "https://www.gnu.org/software/autoconf-archive"
+
+description = """
+The GNU Autoconf Archive is a collection of more than 500 macros for GNU Autoconf
+that have been contributed as free software by friendly supporters of the cause from
+all over the Internet. Every single one of those macros can be re-used without
+imposing any restrictions whatsoever on the licensing of the generated configure script.
+In particular, it is possible to use all those macros in configure scripts that
+are meant for non-free software. This policy is unusual for a Free Software Foundation
+project. The FSF firmly believes that software ought to be free, and software licenses
+like the GPL are specifically designed to ensure that derivative work based on free
+software must be free as well. In case of Autoconf, however, an exception has been made,
+because Autoconf is at such a pivotal position in the software development tool chain
+that the benefits from having this tool available as widely as possible outweigh the
+disadvantage that some authors may choose to use it, too, for proprietary software.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '12.2.0'}
+
+source_urls = [GNU_SOURCE]
+sources = [SOURCELOWER_TAR_XZ]
+checksums = ['71d4048479ae28f1f5794619c3d72df9c01df49b1c628ef85fde37596dc31a33']
+
+builddependencies = [
+ ('binutils', '2.39'),
+ ('Autotools', '20220317'),
+ ('makeinfo', '7.0.3'),
+]
+
+preconfigopts = 'autoreconf -i -f &&'
+
+sanity_check_paths = {
+ 'files': [],
+ 'dirs': ['share/%s' % x for x in
+ ['aclocal', 'doc', 'info']],
+}
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/a/Autoconf/Autoconf-2.72-GCCcore-13.3.0.eb b/easybuild/easyconfigs/a/Autoconf/Autoconf-2.72-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..8cbff6d13b2
--- /dev/null
+++ b/easybuild/easyconfigs/a/Autoconf/Autoconf-2.72-GCCcore-13.3.0.eb
@@ -0,0 +1,48 @@
+easyblock = 'ConfigureMake'
+
+name = 'Autoconf'
+version = '2.72'
+
+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.3.0'}
+
+source_urls = [GNU_SOURCE]
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['afb181a76e1ee72832f6581c0eddf8df032b83e2e0239ef79ebedc4467d92d6e']
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+
+dependencies = [
+ ('M4', '1.4.19'),
+ # non-standard Perl modules are required,
+ # see https://github.com/easybuilders/easybuild-easyconfigs/issues/1822
+ ('Perl', '5.38.2'),
+]
+
+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-13.3.0.eb b/easybuild/easyconfigs/a/Automake/Automake-1.16.5-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..f22a104b063
--- /dev/null
+++ b/easybuild/easyconfigs/a/Automake/Automake-1.16.5-GCCcore-13.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': '13.3.0'}
+
+source_urls = [GNU_SOURCE]
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['07bd24ad08a64bc17250ce09ec56e921d6343903943e99ccf63bbf0705e34605']
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+
+dependencies = [
+ ('Autoconf', '2.72'),
+ # non-standard Perl modules are required,
+ # see https://github.com/easybuilders/easybuild-easyconfigs/issues/1822
+ ('Perl', '5.38.2'),
+]
+
+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-20231222-GCCcore-13.3.0.eb b/easybuild/easyconfigs/a/Autotools/Autotools-20231222-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..4c0c23dd0b1
--- /dev/null
+++ b/easybuild/easyconfigs/a/Autotools/Autotools-20231222-GCCcore-13.3.0.eb
@@ -0,0 +1,24 @@
+easyblock = 'Bundle'
+
+name = 'Autotools'
+version = '20231222' # 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.3.0'}
+
+dependencies = [
+ ('Autoconf', '2.72'), # 20231222
+ ('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/absl-py/absl-py-2.1.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/a/absl-py/absl-py-2.1.0-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..faadde2a51d
--- /dev/null
+++ b/easybuild/easyconfigs/a/absl-py/absl-py-2.1.0-GCCcore-12.3.0.eb
@@ -0,0 +1,28 @@
+easyblock = 'PythonBundle'
+
+name = 'absl-py'
+version = '2.1.0'
+
+homepage = 'https://github.com/abseil/abseil-py'
+description = """absl-py is a collection of Python library code for building Python
+applications. The code is collected from Google's own Python code base, and has
+been extensively tested and used in production."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+builddependencies = [('binutils', '2.40')]
+
+dependencies = [('Python', '3.11.3')]
+
+use_pip = True
+
+exts_list = [
+ ('absl-py', version, {
+ 'modulename': 'absl',
+ 'checksums': ['7820790efbb316739cde8b4e19357243fc3608a152024288513dd968d7d959ff'],
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/a/accelerate/accelerate-0.33.0-foss-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/a/accelerate/accelerate-0.33.0-foss-2023a-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..7f6d595a7c5
--- /dev/null
+++ b/easybuild/easyconfigs/a/accelerate/accelerate-0.33.0-foss-2023a-CUDA-12.1.1.eb
@@ -0,0 +1,39 @@
+easyblock = 'PythonBundle'
+
+name = 'accelerate'
+version = '0.33.0'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://github.com/huggingface/accelerate'
+description = """A simple way to launch, train, and use PyTorch models on almost any device and
+distributed configuration, automatic mixed precision (including fp8),
+and easy-to-configure FSDP and DeepSpeed support."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('SciPy-bundle', '2023.07'),
+ ('CUDA', '12.1.1', '', SYSTEM),
+ ('PyTorch-bundle', '2.1.2', versionsuffix),
+ ('PyYAML', '6.0'),
+ ('Safetensors', '0.4.3'),
+]
+
+sanity_pip_check = True
+use_pip = True
+
+exts_list = [
+ ('huggingface-hub', '0.24.5', {
+ 'sources': ['huggingface_hub-%(version)s.tar.gz'],
+ 'checksums': ['7b45d6744dd53ce9cbf9880957de00e9d10a9ae837f1c9b7255fc8fa4e8264f3'],
+ }),
+ (name, version, {
+ 'checksums': ['11ba481ed6ea09191775df55ce464aeeba67a024bd0261a44b77b30fb439e26a'],
+ }),
+]
+
+sanity_check_commands = ['accelerate test']
+
+moduleclass = 'ai'
diff --git a/easybuild/easyconfigs/a/adjustText/adjustText-0.7.3-foss-2022b.eb b/easybuild/easyconfigs/a/adjustText/adjustText-0.7.3-foss-2022b.eb
new file mode 100644
index 00000000000..4c13c121047
--- /dev/null
+++ b/easybuild/easyconfigs/a/adjustText/adjustText-0.7.3-foss-2022b.eb
@@ -0,0 +1,27 @@
+easyblock = 'PythonPackage'
+
+name = 'adjustText'
+version = '0.7.3'
+
+homepage = 'https://github.com/Phlya/adjustText'
+description = "A small library for automatically adjustment of text position in matplotlib plots to minimize overlaps."
+
+toolchain = {'name': 'foss', 'version': '2022b'}
+
+sources = [SOURCE_TAR_GZ]
+checksums = ['b90e275a95b4d980cbbac7967914b8d66477c09bc346a0b3c9e2125bba664b06']
+
+dependencies = [
+ ('Python', '3.10.8'),
+ ('matplotlib', '3.7.0'),
+ ('SciPy-bundle', '2023.02'),
+]
+
+download_dep_fail = True
+use_pip = True
+
+sanity_pip_check = True
+
+options = {'modulename': 'adjustText'}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/a/adjustText/adjustText-0.7.3-foss-2023a.eb b/easybuild/easyconfigs/a/adjustText/adjustText-0.7.3-foss-2023a.eb
new file mode 100644
index 00000000000..70ad0961c47
--- /dev/null
+++ b/easybuild/easyconfigs/a/adjustText/adjustText-0.7.3-foss-2023a.eb
@@ -0,0 +1,27 @@
+easyblock = 'PythonPackage'
+
+name = 'adjustText'
+version = '0.7.3'
+
+homepage = 'https://github.com/Phlya/adjustText'
+description = "A small library for automatically adjustment of text position in matplotlib plots to minimize overlaps."
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+sources = [SOURCE_TAR_GZ]
+checksums = ['b90e275a95b4d980cbbac7967914b8d66477c09bc346a0b3c9e2125bba664b06']
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('matplotlib', '3.7.2'),
+ ('SciPy-bundle', '2023.07'),
+]
+
+download_dep_fail = True
+use_pip = True
+
+sanity_pip_check = True
+
+options = {'modulename': 'adjustText'}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/a/adjustText/adjustText-1.1.1-foss-2023a.eb b/easybuild/easyconfigs/a/adjustText/adjustText-1.1.1-foss-2023a.eb
new file mode 100644
index 00000000000..f109d19d3aa
--- /dev/null
+++ b/easybuild/easyconfigs/a/adjustText/adjustText-1.1.1-foss-2023a.eb
@@ -0,0 +1,27 @@
+easyblock = 'PythonBundle'
+
+name = 'adjustText'
+version = '1.1.1'
+
+homepage = 'https://github.com/Phlya/adjustText'
+description = "A small library for automatically adjustment of text position in matplotlib plots to minimize overlaps."
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('matplotlib', '3.7.2'),
+ ('SciPy-bundle', '2023.07'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ (name, version, {
+ 'modulename': 'adjustText',
+ 'checksums': ['e2c0975ef2c642478e60f4c03c5e9afbdeda7764336907ef69a9205bfa2d9896'],
+ }),
+]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/a/affogato/affogato-0.3.3-foss-2023a.eb b/easybuild/easyconfigs/a/affogato/affogato-0.3.3-foss-2023a.eb
new file mode 100644
index 00000000000..391f9d95eda
--- /dev/null
+++ b/easybuild/easyconfigs/a/affogato/affogato-0.3.3-foss-2023a.eb
@@ -0,0 +1,40 @@
+easyblock = 'CMakeMakeCp'
+
+name = 'affogato'
+version = '0.3.3'
+
+homepage = 'https://github.com/constantinpape/affogato/'
+description = """Affinity based segmentation algorithms and tools."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+source_urls = ['https://github.com/constantinpape/affogato/archive/']
+sources = ['%(version)s.tar.gz']
+checksums = ['ad3bb1aca50ce9311d4e88e97e701237bce94faa6e79460f0bc2d2061f1484d2']
+
+builddependencies = [('CMake', '3.26.3')]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Boost', '1.82.0'),
+ ('SciPy-bundle', '2023.07'),
+ ('vigra', '1.11.2'),
+ ('xtensor', '0.24.7'),
+ ('h5py', '3.9.0'),
+]
+
+configopts = '-DBUILD_PYTHON=ON '
+# Fix path to python executable - it finds v3.6.8 from /usr/bin/ without this fix
+configopts += '-DPYTHON_EXECUTABLE="$EBROOTPYTHON/bin/python" '
+
+files_to_copy = [(['python/affogato'], 'lib/python%(pyshortver)s/site-packages')]
+
+sanity_check_paths = {
+ 'files': [],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages/affogato'],
+}
+sanity_check_commands = ["python -c 'import affogato'"]
+
+modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'}
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/a/aiohttp/aiohttp-3.10.10-GCCcore-13.3.0.eb b/easybuild/easyconfigs/a/aiohttp/aiohttp-3.10.10-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..c6b30e2d82e
--- /dev/null
+++ b/easybuild/easyconfigs/a/aiohttp/aiohttp-3.10.10-GCCcore-13.3.0.eb
@@ -0,0 +1,72 @@
+easyblock = 'PythonBundle'
+
+name = 'aiohttp'
+version = '3.10.10'
+
+homepage = 'https://github.com/aio-libs/aiohttp'
+description = "Asynchronous HTTP client/server framework for asyncio and Python."
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('poetry', '1.8.3'),
+ ('Cython', '3.0.10'),
+]
+
+dependencies = [
+ ('Python', '3.12.3'),
+ ('Python-bundle-PyPI', '2024.06'),
+]
+
+use_pip = True
+
+# aioredis and aiosignal do not depend on aiohttp, but are commonly used together and share dependencies
+exts_list = [
+ ('botocore', '1.35.36', {
+ 'checksums': ['354ec1b766f0029b5d6ff0c45d1a0f9e5007b7d2f3ec89bcdd755b208c5bc797'],
+ }),
+ ('jmespath', '1.0.1', {
+ 'checksums': ['90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe'],
+ }),
+ ('multidict', '6.1.0', {
+ 'checksums': ['22ae2ebf9b0c69d206c003e2f6a914ea33f0a932d4aa16f236afc049d9958f4a'],
+ }),
+ ('expandvars', '0.12.0', {
+ 'checksums': ['7d1adfa55728cf4b5d812ece3d087703faea953e0c0a1a78415de9df5024d844'],
+ }),
+ ('propcache', '0.2.0', {
+ 'checksums': ['df81779732feb9d01e5d513fad0122efb3d53bbc75f61b2a4f29a020bc985e70'],
+ }),
+ ('yarl', '1.15.4', {
+ 'checksums': ['a0c5e271058d148d730219ca4f33c5d841c6bd46e05b0da60fea7b516906ccd3'],
+ }),
+ ('frozenlist', '1.4.1', {
+ 'checksums': ['c037a86e8513059a2613aaba4d817bb90b9d9b6b69aace3ce9c877e8c8ed402b'],
+ }),
+ ('async-timeout', '4.0.3', {
+ 'checksums': ['4640d96be84d82d02ed59ea2b7105a0f7b33abe8703703cd0ab0bf87c427522f'],
+ }),
+ ('aiosignal', '1.3.1', {
+ 'checksums': ['54cd96e15e1649b75d6c87526a6ff0b6c1b0dd3459f43d9ca11d48c339b68cfc'],
+ }),
+ ('aiohappyeyeballs', '2.4.3', {
+ 'checksums': ['75cf88a15106a5002a8eb1dab212525c00d1f4c0fa96e551c9fbe6f09a621586'],
+ }),
+ (name, version, {
+ 'checksums': ['0631dd7c9f0822cc61c88586ca76d5b5ada26538097d0f1df510b082bad3411a'],
+ }),
+ ('aioitertools', '0.12.0', {
+ 'checksums': ['c2a9055b4fbb7705f561b9d86053e8af5d10cc845d22c32008c43490b2d8dd6b'],
+ }),
+ ('wrapt', '1.16.0', {
+ 'checksums': ['5f370f952971e7d17c7d1ead40e49f32345a7f7a5373571ef44d800d06b1899d'],
+ }),
+ ('aiobotocore', '2.15.2', {
+ 'checksums': ['9ac1cfcaccccc80602968174aa032bf978abe36bd4e55e6781d6500909af1375'],
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/a/aiohttp/aiohttp-3.8.5-GCCcore-12.3.0.eb b/easybuild/easyconfigs/a/aiohttp/aiohttp-3.8.5-GCCcore-12.3.0.eb
index 3c96a3e7458..d5eec66b4ab 100644
--- a/easybuild/easyconfigs/a/aiohttp/aiohttp-3.8.5-GCCcore-12.3.0.eb
+++ b/easybuild/easyconfigs/a/aiohttp/aiohttp-3.8.5-GCCcore-12.3.0.eb
@@ -30,8 +30,8 @@ exts_list = [
('frozenlist', '1.4.0', {
'checksums': ['09163bdf0b2907454042edb19f887c6d33806adc71fbd54afc14908bfdc22251'],
}),
- ('async-timeout', '4.0.2', {
- 'checksums': ['2163e1640ddb52b7a8c80d0a67a08587e5d245cc9c553a74a847056bc2976b15'],
+ ('async-timeout', '4.0.3', {
+ 'checksums': ['4640d96be84d82d02ed59ea2b7105a0f7b33abe8703703cd0ab0bf87c427522f'],
}),
(name, version, {
'checksums': ['b9552ec52cc147dbf1944ac7ac98af7602e51ea2dcd076ed194ca3c0d1c7d0bc'],
diff --git a/easybuild/easyconfigs/a/aiohttp/aiohttp-3.9.5-GCCcore-13.2.0.eb b/easybuild/easyconfigs/a/aiohttp/aiohttp-3.9.5-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..550b4aebf60
--- /dev/null
+++ b/easybuild/easyconfigs/a/aiohttp/aiohttp-3.9.5-GCCcore-13.2.0.eb
@@ -0,0 +1,53 @@
+easyblock = 'PythonBundle'
+
+name = 'aiohttp'
+version = '3.9.5'
+
+homepage = 'https://github.com/aio-libs/aiohttp'
+description = "Asynchronous HTTP client/server framework for asyncio and Python."
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('poetry', '1.6.1'),
+]
+
+dependencies = [
+ ('Python', '3.11.5'),
+ ('Python-bundle-PyPI', '2023.10'),
+]
+
+use_pip = True
+
+# aioredis and aiosignal do not depend on aiohttp, but are commonly used together and share dependencies
+exts_list = [
+ ('multidict', '6.0.5', {
+ 'checksums': ['f7e301075edaf50500f0b341543c41194d8df3ae5caf4702f2095f3ca73dd8da'],
+ }),
+ ('expandvars', '0.12.0', {
+ 'checksums': ['7d1adfa55728cf4b5d812ece3d087703faea953e0c0a1a78415de9df5024d844'],
+ }),
+ ('yarl', '1.9.4', {
+ 'checksums': ['566db86717cf8080b99b58b083b773a908ae40f06681e87e589a976faf8246bf'],
+ }),
+ ('frozenlist', '1.4.1', {
+ 'checksums': ['c037a86e8513059a2613aaba4d817bb90b9d9b6b69aace3ce9c877e8c8ed402b'],
+ }),
+ ('async-timeout', '4.0.3', {
+ 'checksums': ['4640d96be84d82d02ed59ea2b7105a0f7b33abe8703703cd0ab0bf87c427522f'],
+ }),
+ ('aiosignal', '1.3.1', {
+ 'checksums': ['54cd96e15e1649b75d6c87526a6ff0b6c1b0dd3459f43d9ca11d48c339b68cfc'],
+ }),
+ ('aiohappyeyeballs', '2.3.2', {
+ 'checksums': ['77e15a733090547a1f5369a1287ddfc944bd30df0eb8993f585259c34b405f4e'],
+ }),
+ (name, version, {
+ 'checksums': ['edea7d15772ceeb29db4aff55e482d4bcfb6ae160ce144f2682de02f6d693551'],
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/a/alevin-fry/alevin-fry-0.9.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/a/alevin-fry/alevin-fry-0.9.0-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..50f776e14a3
--- /dev/null
+++ b/easybuild/easyconfigs/a/alevin-fry/alevin-fry-0.9.0-GCCcore-13.2.0.eb
@@ -0,0 +1,470 @@
+easyblock = 'Cargo'
+
+name = 'alevin-fry'
+version = '0.9.0'
+
+homepage = 'https://github.com/COMBINE-lab/alevin-fry'
+description = """alevin-fry is an efficient and flexible tool for processing single-cell sequencing data,
+ currently focused on single-cell transcriptomics and feature barcoding."""
+# software_license = 'LicenseBSD3'
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+crates = [
+ (name, version),
+ ('adler', '1.0.2'),
+ ('ahash', '0.8.11'),
+ ('aho-corasick', '1.1.2'),
+ ('alga', '0.9.3'),
+ ('android-tzdata', '0.1.1'),
+ ('android_system_properties', '0.1.5'),
+ ('anstream', '0.6.13'),
+ ('anstyle', '1.0.6'),
+ ('anstyle-parse', '0.2.3'),
+ ('anstyle-query', '1.0.2'),
+ ('anstyle-wincon', '3.0.2'),
+ ('anyhow', '1.0.80'),
+ ('approx', '0.3.2'),
+ ('approx', '0.5.1'),
+ ('arrayvec', '0.7.4'),
+ ('autocfg', '1.1.0'),
+ ('bincode', '1.3.3'),
+ ('bio-types', '1.0.1'),
+ ('bit-vec', '0.6.3'),
+ ('bitflags', '1.3.2'),
+ ('bitflags', '2.4.2'),
+ ('block-buffer', '0.10.4'),
+ ('bstr', '1.9.1'),
+ ('buffer-redux', '1.0.1'),
+ ('bumpalo', '3.15.4'),
+ ('bytecount', '0.6.7'),
+ ('bytemuck', '1.14.3'),
+ ('byteorder', '1.5.0'),
+ ('bytes', '1.5.0'),
+ ('bzip2', '0.4.4'),
+ ('bzip2-sys', '0.1.11+1.0.8'),
+ ('cc', '1.0.90'),
+ ('cfg-if', '1.0.0'),
+ ('chrono', '0.4.35'),
+ ('clap', '4.5.2'),
+ ('clap_builder', '4.5.2'),
+ ('clap_derive', '4.5.0'),
+ ('clap_lex', '0.7.0'),
+ ('colorchoice', '1.0.0'),
+ ('console', '0.15.8'),
+ ('core-foundation-sys', '0.8.6'),
+ ('crc32fast', '1.4.0'),
+ ('crossbeam-channel', '0.5.12'),
+ ('crossbeam-deque', '0.8.5'),
+ ('crossbeam-epoch', '0.9.18'),
+ ('crossbeam-queue', '0.3.11'),
+ ('crossbeam-utils', '0.8.19'),
+ ('crypto-common', '0.1.6'),
+ ('csv', '1.3.0'),
+ ('csv-core', '0.1.11'),
+ ('dashmap', '5.5.3'),
+ ('deranged', '0.3.11'),
+ ('derive-new', '0.5.9'),
+ ('digest', '0.10.7'),
+ ('dirs-next', '2.0.0'),
+ ('dirs-sys-next', '0.1.2'),
+ ('either', '1.10.0'),
+ ('encode_unicode', '0.3.6'),
+ ('equivalent', '1.0.1'),
+ ('errno', '0.3.8'),
+ ('fixedbitset', '0.4.2'),
+ ('flate2', '1.0.28'),
+ ('generic-array', '0.14.7'),
+ ('getrandom', '0.2.12'),
+ ('hashbrown', '0.14.3'),
+ ('heck', '0.4.1'),
+ ('hermit-abi', '0.3.9'),
+ ('iana-time-zone', '0.1.60'),
+ ('iana-time-zone-haiku', '0.1.2'),
+ ('indexmap', '2.2.5'),
+ ('indicatif', '0.17.8'),
+ ('instant', '0.1.12'),
+ ('is-terminal', '0.4.12'),
+ ('itertools', '0.12.1'),
+ ('itoa', '1.0.10'),
+ ('js-sys', '0.3.69'),
+ ('lazy_static', '1.4.0'),
+ ('lexical-core', '0.8.5'),
+ ('lexical-parse-float', '0.8.5'),
+ ('lexical-parse-integer', '0.8.6'),
+ ('lexical-util', '0.8.5'),
+ ('lexical-write-float', '0.8.5'),
+ ('lexical-write-integer', '0.8.5'),
+ ('libc', '0.2.153'),
+ ('libm', '0.2.8'),
+ ('libmimalloc-sys', '0.1.35'),
+ ('libradicl', '0.8.2'),
+ ('libredox', '0.0.1'),
+ ('linux-raw-sys', '0.4.13'),
+ ('lock_api', '0.4.11'),
+ ('log', '0.4.21'),
+ ('lzma-sys', '0.1.20'),
+ ('matrixmultiply', '0.3.8'),
+ ('md-5', '0.10.6'),
+ ('memchr', '2.7.1'),
+ ('mimalloc', '0.1.39'),
+ ('miniz_oxide', '0.7.2'),
+ ('nalgebra', '0.29.0'),
+ ('nalgebra-macros', '0.1.0'),
+ ('ndarray', '0.15.6'),
+ ('needletail', '0.5.1'),
+ ('noodles', '0.65.0'),
+ ('noodles-bam', '0.56.0'),
+ ('noodles-bgzf', '0.26.0'),
+ ('noodles-core', '0.14.0'),
+ ('noodles-cram', '0.56.0'),
+ ('noodles-csi', '0.30.0'),
+ ('noodles-fasta', '0.33.0'),
+ ('noodles-sam', '0.53.0'),
+ ('noodles-util', '0.37.0'),
+ ('num', '0.4.1'),
+ ('num-bigint', '0.4.4'),
+ ('num-complex', '0.2.4'),
+ ('num-complex', '0.4.5'),
+ ('num-conv', '0.1.0'),
+ ('num-format', '0.4.4'),
+ ('num-integer', '0.1.46'),
+ ('num-iter', '0.1.44'),
+ ('num-rational', '0.4.1'),
+ ('num-traits', '0.2.18'),
+ ('num_cpus', '1.16.0'),
+ ('number_prefix', '0.4.0'),
+ ('once_cell', '1.19.0'),
+ ('parking_lot_core', '0.9.9'),
+ ('paste', '1.0.14'),
+ ('petgraph', '0.6.4'),
+ ('pkg-config', '0.3.30'),
+ ('portable-atomic', '1.6.0'),
+ ('powerfmt', '0.2.0'),
+ ('ppv-lite86', '0.2.17'),
+ ('proc-macro2', '1.0.78'),
+ ('quote', '1.0.35'),
+ ('rand', '0.8.5'),
+ ('rand_chacha', '0.3.1'),
+ ('rand_core', '0.6.4'),
+ ('rand_distr', '0.4.3'),
+ ('rawpointer', '0.2.1'),
+ ('rayon', '1.9.0'),
+ ('rayon-core', '1.12.1'),
+ ('redox_syscall', '0.4.1'),
+ ('redox_users', '0.4.4'),
+ ('regex', '1.10.3'),
+ ('regex-automata', '0.4.6'),
+ ('regex-syntax', '0.8.2'),
+ ('rustix', '0.38.31'),
+ ('rustversion', '1.0.14'),
+ ('ryu', '1.0.17'),
+ ('safe_arch', '0.7.1'),
+ ('sce', '0.2.0'),
+ ('scopeguard', '1.2.0'),
+ ('scroll', '0.12.0'),
+ ('serde', '1.0.197'),
+ ('serde_derive', '1.0.197'),
+ ('serde_json', '1.0.114'),
+ ('simba', '0.6.0'),
+ ('slog', '2.7.0'),
+ ('slog-async', '2.8.0'),
+ ('slog-term', '2.9.1'),
+ ('smallvec', '1.13.1'),
+ ('snap', '1.1.1'),
+ ('sprs', '0.11.1'),
+ ('static_assertions', '1.1.0'),
+ ('statrs', '0.16.0'),
+ ('strsim', '0.11.0'),
+ ('strum_macros', '0.25.3'),
+ ('syn', '1.0.109'),
+ ('syn', '2.0.52'),
+ ('take_mut', '0.2.2'),
+ ('term', '0.7.0'),
+ ('terminal_size', '0.3.0'),
+ ('thiserror', '1.0.57'),
+ ('thiserror-impl', '1.0.57'),
+ ('thread_local', '1.1.8'),
+ ('time', '0.3.34'),
+ ('time-core', '0.1.2'),
+ ('time-macros', '0.2.17'),
+ ('trait-set', '0.3.0'),
+ ('typed-builder', '0.18.1'),
+ ('typed-builder-macro', '0.18.1'),
+ ('typenum', '1.17.0'),
+ ('unicode-ident', '1.0.12'),
+ ('unicode-width', '0.1.11'),
+ ('utf8parse', '0.2.1'),
+ ('version_check', '0.9.4'),
+ ('wasi', '0.11.0+wasi-snapshot-preview1'),
+ ('wasm-bindgen', '0.2.92'),
+ ('wasm-bindgen-backend', '0.2.92'),
+ ('wasm-bindgen-macro', '0.2.92'),
+ ('wasm-bindgen-macro-support', '0.2.92'),
+ ('wasm-bindgen-shared', '0.2.92'),
+ ('wide', '0.7.15'),
+ ('winapi', '0.3.9'),
+ ('winapi-i686-pc-windows-gnu', '0.4.0'),
+ ('winapi-x86_64-pc-windows-gnu', '0.4.0'),
+ ('windows-core', '0.52.0'),
+ ('windows-sys', '0.48.0'),
+ ('windows-sys', '0.52.0'),
+ ('windows-targets', '0.48.5'),
+ ('windows-targets', '0.52.4'),
+ ('windows_aarch64_gnullvm', '0.48.5'),
+ ('windows_aarch64_gnullvm', '0.52.4'),
+ ('windows_aarch64_msvc', '0.48.5'),
+ ('windows_aarch64_msvc', '0.52.4'),
+ ('windows_i686_gnu', '0.48.5'),
+ ('windows_i686_gnu', '0.52.4'),
+ ('windows_i686_msvc', '0.48.5'),
+ ('windows_i686_msvc', '0.52.4'),
+ ('windows_x86_64_gnu', '0.48.5'),
+ ('windows_x86_64_gnu', '0.52.4'),
+ ('windows_x86_64_gnullvm', '0.48.5'),
+ ('windows_x86_64_gnullvm', '0.52.4'),
+ ('windows_x86_64_msvc', '0.48.5'),
+ ('windows_x86_64_msvc', '0.52.4'),
+ ('xz2', '0.1.7'),
+ ('zerocopy', '0.7.32'),
+ ('zerocopy-derive', '0.7.32'),
+]
+
+checksums = [
+ {'alevin-fry-0.9.0.tar.gz': 'ea6d245d83a00d59b977e130f142b2a0c3075b26cd214d6c54251f225b46748a'},
+ {'adler-1.0.2.tar.gz': 'f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe'},
+ {'ahash-0.8.11.tar.gz': 'e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011'},
+ {'aho-corasick-1.1.2.tar.gz': 'b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0'},
+ {'alga-0.9.3.tar.gz': '4f823d037a7ec6ea2197046bafd4ae150e6bc36f9ca347404f46a46823fa84f2'},
+ {'android-tzdata-0.1.1.tar.gz': 'e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0'},
+ {'android_system_properties-0.1.5.tar.gz': '819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311'},
+ {'anstream-0.6.13.tar.gz': 'd96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb'},
+ {'anstyle-1.0.6.tar.gz': '8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc'},
+ {'anstyle-parse-0.2.3.tar.gz': 'c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c'},
+ {'anstyle-query-1.0.2.tar.gz': 'e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648'},
+ {'anstyle-wincon-3.0.2.tar.gz': '1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7'},
+ {'anyhow-1.0.80.tar.gz': '5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1'},
+ {'approx-0.3.2.tar.gz': 'f0e60b75072ecd4168020818c0107f2857bb6c4e64252d8d3983f6263b40a5c3'},
+ {'approx-0.5.1.tar.gz': 'cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6'},
+ {'arrayvec-0.7.4.tar.gz': '96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711'},
+ {'autocfg-1.1.0.tar.gz': 'd468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa'},
+ {'bincode-1.3.3.tar.gz': 'b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad'},
+ {'bio-types-1.0.1.tar.gz': '9d45749b87f21808051025e9bf714d14ff4627f9d8ca967eade6946ea769aa4a'},
+ {'bit-vec-0.6.3.tar.gz': '349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb'},
+ {'bitflags-1.3.2.tar.gz': 'bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a'},
+ {'bitflags-2.4.2.tar.gz': 'ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf'},
+ {'block-buffer-0.10.4.tar.gz': '3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71'},
+ {'bstr-1.9.1.tar.gz': '05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706'},
+ {'buffer-redux-1.0.1.tar.gz': '4c9f8ddd22e0a12391d1e7ada69ec3b0da1914f1cec39c5cf977143c5b2854f5'},
+ {'bumpalo-3.15.4.tar.gz': '7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa'},
+ {'bytecount-0.6.7.tar.gz': 'e1e5f035d16fc623ae5f74981db80a439803888314e3a555fd6f04acd51a3205'},
+ {'bytemuck-1.14.3.tar.gz': 'a2ef034f05691a48569bd920a96c81b9d91bbad1ab5ac7c4616c1f6ef36cb79f'},
+ {'byteorder-1.5.0.tar.gz': '1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b'},
+ {'bytes-1.5.0.tar.gz': 'a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223'},
+ {'bzip2-0.4.4.tar.gz': 'bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8'},
+ {'bzip2-sys-0.1.11+1.0.8.tar.gz': '736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc'},
+ {'cc-1.0.90.tar.gz': '8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5'},
+ {'cfg-if-1.0.0.tar.gz': 'baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd'},
+ {'chrono-0.4.35.tar.gz': '8eaf5903dcbc0a39312feb77df2ff4c76387d591b9fc7b04a238dcf8bb62639a'},
+ {'clap-4.5.2.tar.gz': 'b230ab84b0ffdf890d5a10abdbc8b83ae1c4918275daea1ab8801f71536b2651'},
+ {'clap_builder-4.5.2.tar.gz': 'ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4'},
+ {'clap_derive-4.5.0.tar.gz': '307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47'},
+ {'clap_lex-0.7.0.tar.gz': '98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce'},
+ {'colorchoice-1.0.0.tar.gz': 'acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7'},
+ {'console-0.15.8.tar.gz': '0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb'},
+ {'core-foundation-sys-0.8.6.tar.gz': '06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f'},
+ {'crc32fast-1.4.0.tar.gz': 'b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa'},
+ {'crossbeam-channel-0.5.12.tar.gz': 'ab3db02a9c5b5121e1e42fbdb1aeb65f5e02624cc58c43f2884c6ccac0b82f95'},
+ {'crossbeam-deque-0.8.5.tar.gz': '613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d'},
+ {'crossbeam-epoch-0.9.18.tar.gz': '5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e'},
+ {'crossbeam-queue-0.3.11.tar.gz': 'df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35'},
+ {'crossbeam-utils-0.8.19.tar.gz': '248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345'},
+ {'crypto-common-0.1.6.tar.gz': '1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3'},
+ {'csv-1.3.0.tar.gz': 'ac574ff4d437a7b5ad237ef331c17ccca63c46479e5b5453eb8e10bb99a759fe'},
+ {'csv-core-0.1.11.tar.gz': '5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70'},
+ {'dashmap-5.5.3.tar.gz': '978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856'},
+ {'deranged-0.3.11.tar.gz': 'b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4'},
+ {'derive-new-0.5.9.tar.gz': '3418329ca0ad70234b9735dc4ceed10af4df60eff9c8e7b06cb5e520d92c3535'},
+ {'digest-0.10.7.tar.gz': '9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292'},
+ {'dirs-next-2.0.0.tar.gz': 'b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1'},
+ {'dirs-sys-next-0.1.2.tar.gz': '4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d'},
+ {'either-1.10.0.tar.gz': '11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a'},
+ {'encode_unicode-0.3.6.tar.gz': 'a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f'},
+ {'equivalent-1.0.1.tar.gz': '5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5'},
+ {'errno-0.3.8.tar.gz': 'a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245'},
+ {'fixedbitset-0.4.2.tar.gz': '0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80'},
+ {'flate2-1.0.28.tar.gz': '46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e'},
+ {'generic-array-0.14.7.tar.gz': '85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a'},
+ {'getrandom-0.2.12.tar.gz': '190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5'},
+ {'hashbrown-0.14.3.tar.gz': '290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604'},
+ {'heck-0.4.1.tar.gz': '95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8'},
+ {'hermit-abi-0.3.9.tar.gz': 'd231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024'},
+ {'iana-time-zone-0.1.60.tar.gz': 'e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141'},
+ {'iana-time-zone-haiku-0.1.2.tar.gz': 'f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f'},
+ {'indexmap-2.2.5.tar.gz': '7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4'},
+ {'indicatif-0.17.8.tar.gz': '763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3'},
+ {'instant-0.1.12.tar.gz': '7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c'},
+ {'is-terminal-0.4.12.tar.gz': 'f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b'},
+ {'itertools-0.12.1.tar.gz': 'ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569'},
+ {'itoa-1.0.10.tar.gz': 'b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c'},
+ {'js-sys-0.3.69.tar.gz': '29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d'},
+ {'lazy_static-1.4.0.tar.gz': 'e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646'},
+ {'lexical-core-0.8.5.tar.gz': '2cde5de06e8d4c2faabc400238f9ae1c74d5412d03a7bd067645ccbc47070e46'},
+ {'lexical-parse-float-0.8.5.tar.gz': '683b3a5ebd0130b8fb52ba0bdc718cc56815b6a097e28ae5a6997d0ad17dc05f'},
+ {'lexical-parse-integer-0.8.6.tar.gz': '6d0994485ed0c312f6d965766754ea177d07f9c00c9b82a5ee62ed5b47945ee9'},
+ {'lexical-util-0.8.5.tar.gz': '5255b9ff16ff898710eb9eb63cb39248ea8a5bb036bea8085b1a767ff6c4e3fc'},
+ {'lexical-write-float-0.8.5.tar.gz': 'accabaa1c4581f05a3923d1b4cfd124c329352288b7b9da09e766b0668116862'},
+ {'lexical-write-integer-0.8.5.tar.gz': 'e1b6f3d1f4422866b68192d62f77bc5c700bee84f3069f2469d7bc8c77852446'},
+ {'libc-0.2.153.tar.gz': '9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd'},
+ {'libm-0.2.8.tar.gz': '4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058'},
+ {'libmimalloc-sys-0.1.35.tar.gz': '3979b5c37ece694f1f5e51e7ecc871fdb0f517ed04ee45f88d15d6d553cb9664'},
+ {'libradicl-0.8.2.tar.gz': '79c875897ad68c771ac1cbe1794642f1f49bdb3852e0475be2abb754ba59fe92'},
+ {'libredox-0.0.1.tar.gz': '85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8'},
+ {'linux-raw-sys-0.4.13.tar.gz': '01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c'},
+ {'lock_api-0.4.11.tar.gz': '3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45'},
+ {'log-0.4.21.tar.gz': '90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c'},
+ {'lzma-sys-0.1.20.tar.gz': '5fda04ab3764e6cde78b9974eec4f779acaba7c4e84b36eca3cf77c581b85d27'},
+ {'matrixmultiply-0.3.8.tar.gz': '7574c1cf36da4798ab73da5b215bbf444f50718207754cb522201d78d1cd0ff2'},
+ {'md-5-0.10.6.tar.gz': 'd89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf'},
+ {'memchr-2.7.1.tar.gz': '523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149'},
+ {'mimalloc-0.1.39.tar.gz': 'fa01922b5ea280a911e323e4d2fd24b7fe5cc4042e0d2cda3c40775cdc4bdc9c'},
+ {'miniz_oxide-0.7.2.tar.gz': '9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7'},
+ {'nalgebra-0.29.0.tar.gz': 'd506eb7e08d6329505faa8a3a00a5dcc6de9f76e0c77e4b75763ae3c770831ff'},
+ {'nalgebra-macros-0.1.0.tar.gz': '01fcc0b8149b4632adc89ac3b7b31a12fb6099a0317a4eb2ebff574ef7de7218'},
+ {'ndarray-0.15.6.tar.gz': 'adb12d4e967ec485a5f71c6311fe28158e9d6f4bc4a447b474184d0f91a8fa32'},
+ {'needletail-0.5.1.tar.gz': 'db05a5ab397f64070d8c998fa0fbb84e484b81f95752af317dac183a82d9295d'},
+ {'noodles-0.65.0.tar.gz': '38db1833ba39368f7a855c5b9a8412729a61dd86b2563e1a3bdb02aecbe92a3c'},
+ {'noodles-bam-0.56.0.tar.gz': 'd3189e8ecee801ab5c3f4ea9908c4196b429137d8d35d733f00f6681f9188be7'},
+ {'noodles-bgzf-0.26.0.tar.gz': '8970db2e84adb1007377dd3988258d7a64e3fc4c05602ebf94e1f8cba207c030'},
+ {'noodles-core-0.14.0.tar.gz': '7336c3be652de4e05444c9b12a32331beb5ba3316e8872d92bfdd8ef3b06c282'},
+ {'noodles-cram-0.56.0.tar.gz': '34a70ebb5bc7ff2d07ce96c0568691e57be421c121103ebef10cf02a63d7d400'},
+ {'noodles-csi-0.30.0.tar.gz': 'a60dfe0919f7ecbd081a82eb1d32e8f89f9041932d035fe8309073c8c01277bf'},
+ {'noodles-fasta-0.33.0.tar.gz': '5e9e953e4e90e6c96e6a384598ebf2ab6d2f5add259ff05a194cf635e892c980'},
+ {'noodles-sam-0.53.0.tar.gz': '1f0d8e441368374f6e144989f823fd7c05e58cdaa3f97d22bb4d75b534327b87'},
+ {'noodles-util-0.37.0.tar.gz': 'e800d2619f75de004aef8beb29f604e667f5bf5f714ff05cce3730f5c8cc4958'},
+ {'num-0.4.1.tar.gz': 'b05180d69e3da0e530ba2a1dae5110317e49e3b7f3d41be227dc5f92e49ee7af'},
+ {'num-bigint-0.4.4.tar.gz': '608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0'},
+ {'num-complex-0.2.4.tar.gz': 'b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95'},
+ {'num-complex-0.4.5.tar.gz': '23c6602fda94a57c990fe0df199a035d83576b496aa29f4e634a8ac6004e68a6'},
+ {'num-conv-0.1.0.tar.gz': '51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9'},
+ {'num-format-0.4.4.tar.gz': 'a652d9771a63711fd3c3deb670acfbe5c30a4072e664d7a3bf5a9e1056ac72c3'},
+ {'num-integer-0.1.46.tar.gz': '7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f'},
+ {'num-iter-0.1.44.tar.gz': 'd869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9'},
+ {'num-rational-0.4.1.tar.gz': '0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0'},
+ {'num-traits-0.2.18.tar.gz': 'da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a'},
+ {'num_cpus-1.16.0.tar.gz': '4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43'},
+ {'number_prefix-0.4.0.tar.gz': '830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3'},
+ {'once_cell-1.19.0.tar.gz': '3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92'},
+ {'parking_lot_core-0.9.9.tar.gz': '4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e'},
+ {'paste-1.0.14.tar.gz': 'de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c'},
+ {'petgraph-0.6.4.tar.gz': 'e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9'},
+ {'pkg-config-0.3.30.tar.gz': 'd231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec'},
+ {'portable-atomic-1.6.0.tar.gz': '7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0'},
+ {'powerfmt-0.2.0.tar.gz': '439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391'},
+ {'ppv-lite86-0.2.17.tar.gz': '5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de'},
+ {'proc-macro2-1.0.78.tar.gz': 'e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae'},
+ {'quote-1.0.35.tar.gz': '291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef'},
+ {'rand-0.8.5.tar.gz': '34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404'},
+ {'rand_chacha-0.3.1.tar.gz': 'e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88'},
+ {'rand_core-0.6.4.tar.gz': 'ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c'},
+ {'rand_distr-0.4.3.tar.gz': '32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31'},
+ {'rawpointer-0.2.1.tar.gz': '60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3'},
+ {'rayon-1.9.0.tar.gz': 'e4963ed1bc86e4f3ee217022bd855b297cef07fb9eac5dfa1f788b220b49b3bd'},
+ {'rayon-core-1.12.1.tar.gz': '1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2'},
+ {'redox_syscall-0.4.1.tar.gz': '4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa'},
+ {'redox_users-0.4.4.tar.gz': 'a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4'},
+ {'regex-1.10.3.tar.gz': 'b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15'},
+ {'regex-automata-0.4.6.tar.gz': '86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea'},
+ {'regex-syntax-0.8.2.tar.gz': 'c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f'},
+ {'rustix-0.38.31.tar.gz': '6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949'},
+ {'rustversion-1.0.14.tar.gz': '7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4'},
+ {'ryu-1.0.17.tar.gz': 'e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1'},
+ {'safe_arch-0.7.1.tar.gz': 'f398075ce1e6a179b46f51bd88d0598b92b00d3551f1a2d4ac49e771b56ac354'},
+ {'sce-0.2.0.tar.gz': '3e86ac42a268d4f4644e38887b5dad29002dcbcdeddb40057195beeb61105df6'},
+ {'scopeguard-1.2.0.tar.gz': '94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49'},
+ {'scroll-0.12.0.tar.gz': '6ab8598aa408498679922eff7fa985c25d58a90771bd6be794434c5277eab1a6'},
+ {'serde-1.0.197.tar.gz': '3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2'},
+ {'serde_derive-1.0.197.tar.gz': '7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b'},
+ {'serde_json-1.0.114.tar.gz': 'c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0'},
+ {'simba-0.6.0.tar.gz': 'f0b7840f121a46d63066ee7a99fc81dcabbc6105e437cae43528cea199b5a05f'},
+ {'slog-2.7.0.tar.gz': '8347046d4ebd943127157b94d63abb990fcf729dc4e9978927fdf4ac3c998d06'},
+ {'slog-async-2.8.0.tar.gz': '72c8038f898a2c79507940990f05386455b3a317d8f18d4caea7cbc3d5096b84'},
+ {'slog-term-2.9.1.tar.gz': 'b6e022d0b998abfe5c3782c1f03551a596269450ccd677ea51c56f8b214610e8'},
+ {'smallvec-1.13.1.tar.gz': 'e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7'},
+ {'snap-1.1.1.tar.gz': '1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b'},
+ {'sprs-0.11.1.tar.gz': '88bab60b0a18fb9b3e0c26e92796b3c3a278bf5fa4880f5ad5cc3bdfb843d0b1'},
+ {'static_assertions-1.1.0.tar.gz': 'a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f'},
+ {'statrs-0.16.0.tar.gz': '2d08e5e1748192713cc281da8b16924fb46be7b0c2431854eadc785823e5696e'},
+ {'strsim-0.11.0.tar.gz': '5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01'},
+ {'strum_macros-0.25.3.tar.gz': '23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0'},
+ {'syn-1.0.109.tar.gz': '72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237'},
+ {'syn-2.0.52.tar.gz': 'b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07'},
+ {'take_mut-0.2.2.tar.gz': 'f764005d11ee5f36500a149ace24e00e3da98b0158b3e2d53a7495660d3f4d60'},
+ {'term-0.7.0.tar.gz': 'c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f'},
+ {'terminal_size-0.3.0.tar.gz': '21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7'},
+ {'thiserror-1.0.57.tar.gz': '1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b'},
+ {'thiserror-impl-1.0.57.tar.gz': 'a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81'},
+ {'thread_local-1.1.8.tar.gz': '8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c'},
+ {'time-0.3.34.tar.gz': 'c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749'},
+ {'time-core-0.1.2.tar.gz': 'ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3'},
+ {'time-macros-0.2.17.tar.gz': '7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774'},
+ {'trait-set-0.3.0.tar.gz': 'b79e2e9c9ab44c6d7c20d5976961b47e8f49ac199154daa514b77cd1ab536625'},
+ {'typed-builder-0.18.1.tar.gz': '444d8748011b93cb168770e8092458cb0f8854f931ff82fdf6ddfbd72a9c933e'},
+ {'typed-builder-macro-0.18.1.tar.gz': '563b3b88238ec95680aef36bdece66896eaa7ce3c0f1b4f39d38fb2435261352'},
+ {'typenum-1.17.0.tar.gz': '42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825'},
+ {'unicode-ident-1.0.12.tar.gz': '3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b'},
+ {'unicode-width-0.1.11.tar.gz': 'e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85'},
+ {'utf8parse-0.2.1.tar.gz': '711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a'},
+ {'version_check-0.9.4.tar.gz': '49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f'},
+ {'wasi-0.11.0+wasi-snapshot-preview1.tar.gz': '9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423'},
+ {'wasm-bindgen-0.2.92.tar.gz': '4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8'},
+ {'wasm-bindgen-backend-0.2.92.tar.gz': '614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da'},
+ {'wasm-bindgen-macro-0.2.92.tar.gz': 'a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726'},
+ {'wasm-bindgen-macro-support-0.2.92.tar.gz': 'e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7'},
+ {'wasm-bindgen-shared-0.2.92.tar.gz': 'af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96'},
+ {'wide-0.7.15.tar.gz': '89beec544f246e679fc25490e3f8e08003bc4bf612068f325120dad4cea02c1c'},
+ {'winapi-0.3.9.tar.gz': '5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419'},
+ {'winapi-i686-pc-windows-gnu-0.4.0.tar.gz': 'ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6'},
+ {'winapi-x86_64-pc-windows-gnu-0.4.0.tar.gz': '712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f'},
+ {'windows-core-0.52.0.tar.gz': '33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9'},
+ {'windows-sys-0.48.0.tar.gz': '677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9'},
+ {'windows-sys-0.52.0.tar.gz': '282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d'},
+ {'windows-targets-0.48.5.tar.gz': '9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c'},
+ {'windows-targets-0.52.4.tar.gz': '7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b'},
+ {'windows_aarch64_gnullvm-0.48.5.tar.gz': '2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8'},
+ {'windows_aarch64_gnullvm-0.52.4.tar.gz': 'bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9'},
+ {'windows_aarch64_msvc-0.48.5.tar.gz': 'dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc'},
+ {'windows_aarch64_msvc-0.52.4.tar.gz': 'da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675'},
+ {'windows_i686_gnu-0.48.5.tar.gz': 'a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e'},
+ {'windows_i686_gnu-0.52.4.tar.gz': 'b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3'},
+ {'windows_i686_msvc-0.48.5.tar.gz': '8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406'},
+ {'windows_i686_msvc-0.52.4.tar.gz': '1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02'},
+ {'windows_x86_64_gnu-0.48.5.tar.gz': '53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e'},
+ {'windows_x86_64_gnu-0.52.4.tar.gz': '5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03'},
+ {'windows_x86_64_gnullvm-0.48.5.tar.gz': '0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc'},
+ {'windows_x86_64_gnullvm-0.52.4.tar.gz': '77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177'},
+ {'windows_x86_64_msvc-0.48.5.tar.gz': 'ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538'},
+ {'windows_x86_64_msvc-0.52.4.tar.gz': '32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8'},
+ {'xz2-0.1.7.tar.gz': '388c44dc09d76f1536602ead6d325eb532f5c122f17782bd57fb47baeeb767e2'},
+ {'zerocopy-0.7.32.tar.gz': '74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be'},
+ {'zerocopy-derive-0.7.32.tar.gz': '9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6'},
+]
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('Rust', '1.76.0'),
+ ('CMake', '3.27.6'),
+]
+
+dependencies = [
+ ('bzip2', '1.0.8'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/%(namelower)s'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["%(namelower)s --help"]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/a/alsa-lib/alsa-lib-1.2.11-GCCcore-13.2.0.eb b/easybuild/easyconfigs/a/alsa-lib/alsa-lib-1.2.11-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..fd05a43146f
--- /dev/null
+++ b/easybuild/easyconfigs/a/alsa-lib/alsa-lib-1.2.11-GCCcore-13.2.0.eb
@@ -0,0 +1,26 @@
+easyblock = 'ConfigureMake'
+
+name = 'alsa-lib'
+version = '1.2.11'
+
+homepage = 'https://www.alsa-project.org'
+description = """The Advanced Linux Sound Architecture (ALSA) provides audio and MIDI functionality
+ to the Linux operating system."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+source_urls = ['https://www.alsa-project.org/files/pub/lib/']
+sources = [SOURCE_TAR_BZ2]
+checksums = ['9f3f2f69b995f9ad37359072fbc69a3a88bfba081fc83e9be30e14662795bb4d']
+
+dependencies = [('binutils', '2.40')]
+
+configopts = ['--disable-shared --enable-static', '--enable-shared']
+
+sanity_check_paths = {
+ 'files': ['bin/aserver', 'include/asoundlib.h',
+ 'lib64/libatopology.%s' % SHLIB_EXT, 'lib64/libasound.%s' % SHLIB_EXT, 'lib64/libasound.a'],
+ 'dirs': ['include/alsa', 'lib/pkgconfig', 'share'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/a/alsa-lib/alsa-lib-1.2.11-GCCcore-13.3.0.eb b/easybuild/easyconfigs/a/alsa-lib/alsa-lib-1.2.11-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..4333348a741
--- /dev/null
+++ b/easybuild/easyconfigs/a/alsa-lib/alsa-lib-1.2.11-GCCcore-13.3.0.eb
@@ -0,0 +1,26 @@
+easyblock = 'ConfigureMake'
+
+name = 'alsa-lib'
+version = '1.2.11'
+
+homepage = 'https://www.alsa-project.org'
+description = """The Advanced Linux Sound Architecture (ALSA) provides audio and MIDI functionality
+ to the Linux operating system."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://www.alsa-project.org/files/pub/lib/']
+sources = [SOURCE_TAR_BZ2]
+checksums = ['9f3f2f69b995f9ad37359072fbc69a3a88bfba081fc83e9be30e14662795bb4d']
+
+dependencies = [('binutils', '2.42')]
+
+configopts = ['--disable-shared --enable-static', '--enable-shared']
+
+sanity_check_paths = {
+ 'files': ['bin/aserver', 'include/asoundlib.h',
+ 'lib64/libatopology.%s' % SHLIB_EXT, 'lib64/libasound.%s' % SHLIB_EXT, 'lib64/libasound.a'],
+ 'dirs': ['include/alsa', 'lib/pkgconfig', 'share'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/a/alsa-lib/alsa-lib-1.2.9-GCCcore-12.3.0.eb b/easybuild/easyconfigs/a/alsa-lib/alsa-lib-1.2.9-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..8e0eb5e0dbf
--- /dev/null
+++ b/easybuild/easyconfigs/a/alsa-lib/alsa-lib-1.2.9-GCCcore-12.3.0.eb
@@ -0,0 +1,24 @@
+easyblock = 'ConfigureMake'
+
+name = 'alsa-lib'
+version = '1.2.9'
+
+homepage = 'https://www.alsa-project.org'
+description = """The Advanced Linux Sound Architecture (ALSA) provides audio and MIDI functionality
+ to the Linux operating system."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = ['https://www.alsa-project.org/files/pub/lib/']
+sources = [SOURCE_TAR_BZ2]
+checksums = ['dc9c643fdc4ccfd0572cc685858dd41e08afb583f30460b317e4188275f615b2']
+
+dependencies = [('binutils', '2.40')]
+
+sanity_check_paths = {
+ 'files': ['bin/aserver', 'include/asoundlib.h',
+ 'lib64/libatopology.%s' % SHLIB_EXT, 'lib64/libasound.%s' % SHLIB_EXT],
+ 'dirs': ['include/alsa', 'lib/pkgconfig', 'share'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/a/amdahl/amdahl-0.3.1-gompi-2023a.eb b/easybuild/easyconfigs/a/amdahl/amdahl-0.3.1-gompi-2023a.eb
new file mode 100644
index 00000000000..03df4c86664
--- /dev/null
+++ b/easybuild/easyconfigs/a/amdahl/amdahl-0.3.1-gompi-2023a.eb
@@ -0,0 +1,35 @@
+easyblock = 'PythonPackage'
+
+name = 'amdahl'
+version = '0.3.1'
+
+homepage = "https://github.com/hpc-carpentry/amdahl"
+description = """This Python module contains a pseudo-application that can be used as a black
+box to reproduce Amdahl's Law. It does not do real calculations, nor any real
+communication, so can easily be overloaded.
+"""
+
+toolchain = {'name': 'gompi', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('mpi4py', '3.1.4'),
+]
+
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['b2e0f13fbfc082c83871583d6254ba6c1abc0033ee9cf8a5d018c5541c32ff74']
+
+download_dep_fail = True
+sanity_pip_check = True
+use_pip = True
+
+sanity_check_paths = {
+ 'files': ['bin/amdahl'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = [
+ "amdahl --help",
+]
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/a/anndata/anndata-0.10.5.post1-foss-2023a.eb b/easybuild/easyconfigs/a/anndata/anndata-0.10.5.post1-foss-2023a.eb
new file mode 100644
index 00000000000..8c520bf7d04
--- /dev/null
+++ b/easybuild/easyconfigs/a/anndata/anndata-0.10.5.post1-foss-2023a.eb
@@ -0,0 +1,47 @@
+easyblock = 'PythonBundle'
+
+name = 'anndata'
+version = '0.10.5.post1'
+
+homepage = 'https://github.com/scverse/anndata'
+description = """anndata is a Python package for handling annotated data matrices in memory and on disk,
+ positioned between pandas and xarray"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+builddependencies = [
+ ('hatchling', '1.18.0'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('h5py', '3.9.0'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('packaging', '23.2', {
+ 'checksums': ['048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5'],
+ }),
+ ('array_api_compat', '1.4.1', {
+ 'checksums': ['053103b7c0ba73626bff7380abf27a29dc80de144394137bc7455b7eba23d8c0'],
+ }),
+ ('natsort', '8.4.0', {
+ 'checksums': ['45312c4a0e5507593da193dedd04abb1469253b601ecaf63445ad80f0a1ea581'],
+ }),
+ (name, version, {
+ 'checksums': ['9a17c6eda9fc40759b3f5f81742f5d18c1a0a1acdf02f13e1646700ec082c155'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/natsort'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = ["natsort --help"]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/a/anndata/anndata-0.9.2-foss-2021b.eb b/easybuild/easyconfigs/a/anndata/anndata-0.9.2-foss-2021b.eb
new file mode 100644
index 00000000000..f5f7d79dadf
--- /dev/null
+++ b/easybuild/easyconfigs/a/anndata/anndata-0.9.2-foss-2021b.eb
@@ -0,0 +1,37 @@
+easyblock = 'PythonBundle'
+
+name = 'anndata'
+version = '0.9.2'
+
+homepage = 'https://github.com/scverse/anndata'
+description = """anndata is a Python package for handling annotated data matrices in memory and on disk,
+ positioned between pandas and xarray"""
+
+toolchain = {'name': 'foss', 'version': '2021b'}
+
+dependencies = [
+ ('Python', '3.9.6'),
+ ('SciPy-bundle', '2021.10'),
+ ('h5py', '3.6.0'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('natsort', '8.4.0', {
+ 'checksums': ['45312c4a0e5507593da193dedd04abb1469253b601ecaf63445ad80f0a1ea581'],
+ }),
+ (name, version, {
+ 'checksums': ['e5b8383d09723af674cae7ad0c2ef53eb1f8c73949b7f4c182a6e30f42196327'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/natsort'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = ["natsort --help"]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/a/ant/ant-1.10.14-Java-21.eb b/easybuild/easyconfigs/a/ant/ant-1.10.14-Java-21.eb
new file mode 100644
index 00000000000..815383ca5c0
--- /dev/null
+++ b/easybuild/easyconfigs/a/ant/ant-1.10.14-Java-21.eb
@@ -0,0 +1,27 @@
+easyblock = 'PackedBinary'
+
+name = 'ant'
+version = '1.10.14'
+versionsuffix = '-Java-%(javaver)s'
+
+homepage = 'https://ant.apache.org/'
+description = """Apache Ant is a Java library and command-line tool whose mission is to drive processes described in
+ build files as targets and extension points dependent upon each other. The main known usage of Ant is the build of
+ Java applications."""
+
+toolchain = SYSTEM
+
+source_urls = ['https://archive.apache.org/dist/ant/binaries/']
+sources = ['apache-%(name)s-%(version)s-bin.tar.gz']
+checksums = ['e2852fddaaddc1ab76a099ca0d7b2ee47a907b8a91a64f70f6aa9e6a3d0dd504']
+
+dependencies = [('Java', '21')]
+
+sanity_check_paths = {
+ 'files': ['bin/ant', 'lib/ant.jar'],
+ 'dirs': [],
+}
+
+modextravars = {'ANT_HOME': '%(installdir)s'}
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/a/anvio/anvio-8-foss-2022b.eb b/easybuild/easyconfigs/a/anvio/anvio-8-foss-2022b.eb
new file mode 100644
index 00000000000..c13c2a6a213
--- /dev/null
+++ b/easybuild/easyconfigs/a/anvio/anvio-8-foss-2022b.eb
@@ -0,0 +1,111 @@
+# Author: Pavel Grochal (INUITS)
+# License: GPLv2
+
+easyblock = 'PythonBundle'
+
+name = 'anvio'
+version = '8'
+
+homepage = 'https://merenlab.org/software/anvio/'
+description = """An analysis and visualization platform for 'omics data."""
+
+toolchain = {'name': 'foss', 'version': '2022b'}
+
+github_account = 'merenlab'
+
+dependencies = [
+ ('Python', '3.10.8'),
+ ('SciPy-bundle', '2023.02'),
+ ('Pysam', '0.21.0'),
+ ('matplotlib', '3.7.0'),
+ ('scikit-learn', '1.2.1'),
+ ('prodigal', '2.6.3'),
+ ('Biopython', '1.81'),
+ ('h5py', '3.8.0'),
+ ('HMMER', '3.3.2'),
+ ('networkx', '3.0'),
+ ('numba', '0.58.1'),
+ ('statsmodels', '0.14.0'),
+ ('snakemake', '7.32.3'),
+ ('ETE', '3.1.3'),
+ ('dill', '0.3.7'),
+ ('Seaborn', '0.12.2'),
+ ('Levenshtein', '0.24.0'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('bottle', '0.12.25', {
+ 'checksums': ['e1a9c94970ae6d710b3fb4526294dfeb86f2cb4a81eff3a4b98dc40fb0e5e021'],
+ }),
+ ('colored', '2.2.4', {
+ 'checksums': ['595e1dd7f3b472ea5f12af21d2fec8a2ea2cf8f9d93e67180197330b26df9b61'],
+ }),
+ ('asgiref', '3.7.2', {
+ 'checksums': ['9e0ce3aa93a819ba5b45120216b23878cf6e8525eb3848653452b4192b92afed'],
+ }),
+ ('sqlparse', '0.4.4', {
+ 'checksums': ['d446183e84b8349fa3061f0fe7f06ca94ba65b426946ffebe6e3e8295332420c'],
+ }),
+ ('Django', '5.0.1', {
+ 'checksums': ['8c8659665bc6e3a44fefe1ab0a291e5a3fb3979f9a8230be29de975e57e8f854'],
+ }),
+ ('illumina-utils', '2.13', {
+ 'checksums': ['e688ca221ea6178614073b72205fce7b4a54695237c7aa96713492ecd99bd56e'],
+ # python-Levenshtein was renamed to Levenshtein
+ 'preinstallopts': "sed -i 's/python-Levenshtein/Levenshtein/g' requirements.txt && ",
+ 'modulename': 'IlluminaUtils',
+ }),
+ ('mistune', '3.0.2', {
+ 'checksums': ['fc7f93ded930c92394ef2cb6f04a8aabab4117a91449e72dcc8dfa646a508be8'],
+ }),
+ ('multiprocess', '0.70.15', {
+ 'checksums': ['f20eed3036c0ef477b07a4177cf7c1ba520d9a2677870a4f47fe026f0cd6787e'],
+ }),
+ ('Paste', '3.7.1', {
+ 'checksums': ['6d07a8e1c7fa72b8cf403762a002f80d12c0384056956dd0a87cb9a3be64749a'],
+ }),
+ ('plotext', '5.2.8', {
+ 'checksums': ['319a287baabeb8576a711995f973a2eba631c887aa6b0f33ab016f12c50ffebe'],
+ }),
+ ('pyani', '0.2.12', {
+ 'checksums': ['4f56b217656f53416b333b69495a4ba8cde782e64e475e1481cb2213ce6b9388'],
+ }),
+ ('rich_argparse', '1.4.0', {
+ 'checksums': ['c275f34ea3afe36aec6342c2a2298893104b5650528941fb53c21067276dba19'],
+ }),
+ (name, version, {
+ 'source_urls': ['https://github.com/merenlab/anvio/releases/download/v%(version)s/'],
+ 'patches': ['anvio-8_fix-rU.patch'],
+ 'checksums': [
+ {'anvio-8.tar.gz': '13da84d48d7266a8986815efb024772fa26ad1c8a951d42897c3a51e3d924feb'},
+ {'anvio-8_fix-rU.patch': '5eafa5962f59b563cfc3913fb688963b5fe052714c7d7c66b013af065e7a2fea'},
+ ],
+ # remove too strict requirements for Python packages anvio depends on
+ 'preinstallopts': "sed -i -e 's/==.*//g' -e 's/<=.*//g' requirements.txt && ",
+ }),
+]
+
+local_binaries_list = [
+ 'anvi-pan-genome',
+ 'anvi-script-reformat-fasta',
+ 'anvi-profile',
+ 'anvi-help',
+]
+
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in local_binaries_list],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = [
+ "anvi-self-test --suite mini --no-interactive",
+ "anvi-pan-genome --help",
+ "anvi-script-reformat-fasta --help",
+ "anvi-profile --version",
+ "anvi-help --help",
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/a/anvio/anvio-8_fix-rU.patch b/easybuild/easyconfigs/a/anvio/anvio-8_fix-rU.patch
new file mode 100644
index 00000000000..e34f180be1f
--- /dev/null
+++ b/easybuild/easyconfigs/a/anvio/anvio-8_fix-rU.patch
@@ -0,0 +1,484 @@
+fix for: ValueError: invalid mode: 'rU'
+see also https://github.com/merenlab/anvio/commit/a974118fc6f1b53c846892fc6dee0a86e6658963
+and https://github.com/merenlab/anvio/commit/ac5908eac71809b31f3bd0ff92bbb573cc17f730
+
+From a974118fc6f1b53c846892fc6dee0a86e6658963 Mon Sep 17 00:00:00 2001
+From: "A. Murat Eren"
+Date: Wed, 25 Oct 2023 16:09:42 +0200
+Subject: [PATCH] rU -> r.
+
+we will see tonight if things explode and we will blame meren for that.
+---
+ anvio/cogs.py | 6 +++---
+ anvio/dbops.py | 4 ++--
+ anvio/drivers/emapper.py | 2 +-
+ anvio/fastalib.py | 2 +-
+ anvio/filesnpaths.py | 8 ++++----
+ anvio/interactive.py | 2 +-
+ anvio/kegg.py | 14 +++++++-------
+ anvio/mcgclassifier.py | 4 ++--
+ anvio/merger.py | 2 +-
+ anvio/panops.py | 2 +-
+ anvio/parsers/kaiju.py | 2 +-
+ anvio/profiler.py | 2 +-
+ anvio/programs.py | 2 +-
+ anvio/samplesops.py | 4 ++--
+ anvio/structureops.py | 2 +-
+ anvio/variabilityops.py | 2 +-
+ anvio/workflows/__init__.py | 2 +-
+ bin/anvi-export-structures | 2 +-
+ bin/anvi-get-sequences-for-hmm-hits | 2 +-
+ 19 files changed, 33 insertions(+), 33 deletions(-)
+
+diff --git a/anvio/cogs.py b/anvio/cogs.py
+index c14041a710..1700af254d 100644
+--- a/anvio/cogs.py
++++ b/anvio/cogs.py
+@@ -702,7 +702,7 @@ def raise_error(line_num, line_content, fields, e):
+ p_id_without_cog_id = set([])
+
+ line_counter = 0
+- for line in open(input_file_path, 'rU').readlines():
++ for line in open(input_file_path, 'r').readlines():
+ line_counter += 1
+
+ if line_counter % 500 == 0:
+@@ -823,7 +823,7 @@ def format_categories(self, input_file_path, output_file_path):
+ progress.update('...')
+
+ output = open(output_file_path, 'w')
+- for line in open(input_file_path, 'rU').readlines():
++ for line in open(input_file_path, 'r').readlines():
+ if line.startswith('#'):
+ continue
+
+@@ -951,7 +951,7 @@ def check_raw_data_hash_and_existence(self, input_file_path, output_file_path):
+
+ # Get a dictionnary of checksums, the file is formatted as "checksum filename" per line
+ checksums = {}
+- for line in open(input_file_path, 'rU').readlines():
++ for line in open(input_file_path, 'r').readlines():
+ stripped = line.strip('\n').split(' ')
+ file_name = stripped[-1].strip('*')
+ checksums[file_name] = stripped[0]
+diff --git a/anvio/dbops.py b/anvio/dbops.py
+index 34e3198a8a..ce700b784d 100644
+--- a/anvio/dbops.py
++++ b/anvio/dbops.py
+@@ -4335,7 +4335,7 @@ def create(self, args):
+
+ if description_file_path:
+ filesnpaths.is_file_plain_text(description_file_path)
+- description = open(os.path.abspath(description_file_path), 'rU').read()
++ description = open(os.path.abspath(description_file_path), 'r').read()
+ else:
+ description = ''
+
+@@ -4957,7 +4957,7 @@ def get_description_in_db(anvio_db_path, run=run):
+
+ def update_description_in_db_from_file(anvio_db_path, description_file_path, run=run):
+ filesnpaths.is_file_plain_text(description_file_path)
+- description = open(os.path.abspath(description_file_path), 'rU').read()
++ description = open(os.path.abspath(description_file_path), 'r').read()
+
+ update_description_in_db(anvio_db_path, description, run=run)
+
+diff --git a/anvio/drivers/emapper.py b/anvio/drivers/emapper.py
+index 7ea2d8fa53..dd94e9baa8 100644
+--- a/anvio/drivers/emapper.py
++++ b/anvio/drivers/emapper.py
+@@ -357,7 +357,7 @@ def populate_annotations_dict(self, annotations_file_path):
+
+ num_entries_processed = 0
+ self.progress.new('Parsing the annotations file')
+- for line in open(annotations_file_path, 'rU').readlines():
++ for line in open(annotations_file_path, 'r').readlines():
+ if line.startswith('#') or line == '\n':
+ continue
+
+diff --git a/anvio/fastalib.py b/anvio/fastalib.py
+index 2da45c16f0..0980098ae7 100644
+--- a/anvio/fastalib.py
++++ b/anvio/fastalib.py
+@@ -97,7 +97,7 @@ def __init__(self, fasta_file_path, lazy_init=True, unique=False, allow_mixed_ca
+ if self.compressed:
+ self.file_pointer = gzip.open(self.fasta_file_path, mode="rt")
+ else:
+- self.file_pointer = io.open(self.fasta_file_path, 'rU', newline='')
++ self.file_pointer = io.open(self.fasta_file_path, 'r', newline='')
+
+ if not self.file_pointer.read(1) == '>':
+ self.file_pointer.close()
+diff --git a/anvio/filesnpaths.py b/anvio/filesnpaths.py
+index 93327207de..a9d7939cbc 100644
+--- a/anvio/filesnpaths.py
++++ b/anvio/filesnpaths.py
+@@ -73,7 +73,7 @@ def is_proper_external_gene_calls_file(file_path):
+ headers_proper = ['gene_callers_id', 'contig', 'start', 'stop', 'direction', 'partial', 'call_type', 'source', 'version', 'aa_sequence']
+ call_types_allowed = set(list(constants.gene_call_types.values()))
+
+- with open(file_path, 'rU') as input_file:
++ with open(file_path, 'r') as input_file:
+ headers = input_file.readline().strip().split('\t')
+
+ if len(headers) == 10:
+@@ -196,7 +196,7 @@ def is_file_empty(file_path):
+
+ def is_file_tab_delimited(file_path, separator='\t', expected_number_of_fields=None, dont_raise=False):
+ is_file_exists(file_path)
+- f = open(file_path, 'rU')
++ f = open(file_path, 'r')
+
+ try:
+ while True:
+@@ -246,7 +246,7 @@ def is_file_json_formatted(file_path):
+ is_file_exists(file_path)
+
+ try:
+- json.load(open(file_path, 'rU'))
++ json.load(open(file_path, 'r'))
+ except ValueError as e:
+ raise FilesNPathsError("File '%s' does not seem to be a properly formatted JSON "
+ "file ('%s', cries the library)." % (file_path, e))
+@@ -272,7 +272,7 @@ def is_file_plain_text(file_path, dont_raise=False):
+ is_file_exists(file_path)
+
+ try:
+- open(os.path.abspath(file_path), 'rU').read(512)
++ open(os.path.abspath(file_path), 'r').read(512)
+ except IsADirectoryError:
+ if dont_raise:
+ return False
+diff --git a/anvio/interactive.py b/anvio/interactive.py
+index f397c0e56d..1564353064 100644
+--- a/anvio/interactive.py
++++ b/anvio/interactive.py
+@@ -546,7 +546,7 @@ def process_external_item_order(self):
+
+ filesnpaths.is_file_exists(self.item_order_path)
+
+- item_order = [l.strip() for l in open(self.item_order_path, 'rU').readlines()]
++ item_order = [l.strip() for l in open(self.item_order_path, 'r').readlines()]
+ self.run.info('Items order', 'An items order with %d items is found at %s.' % (len(item_order), self.item_order_path), mc='cyan')
+
+ self.progress.new('External items order')
+diff --git a/anvio/kegg.py b/anvio/kegg.py
+index 13fbaf57b1..4f25761453 100644
+--- a/anvio/kegg.py
++++ b/anvio/kegg.py
+@@ -924,7 +924,7 @@ def process_pathway_file(self):
+ filesnpaths.is_file_exists(self.kegg_pathway_file)
+ filesnpaths.is_file_plain_text(self.kegg_pathway_file)
+
+- f = open(self.kegg_pathway_file, 'rU')
++ f = open(self.kegg_pathway_file, 'r')
+ self.progress.new("Parsing KEGG Pathway file")
+
+ current_category = None
+@@ -998,7 +998,7 @@ def get_accessions_from_htext_file(self, htext_file):
+ filesnpaths.is_file_exists(htext_file)
+ filesnpaths.is_file_plain_text(htext_file)
+
+- f = open(htext_file, 'rU')
++ f = open(htext_file, 'r')
+ self.progress.new(f"Parsing KEGG htext file: {htext_file}")
+
+ target_level = None
+@@ -1077,7 +1077,7 @@ def download_generic_flat_file(self, accession, download_dir="./"):
+ utils.download_file(self.kegg_rest_api_get + '/' + accession,
+ file_path, progress=self.progress, run=self.run)
+ # verify entire file has been downloaded
+- f = open(file_path, 'rU')
++ f = open(file_path, 'r')
+ f.seek(0, os.SEEK_END)
+ f.seek(f.tell() - 4, os.SEEK_SET)
+ last_line = f.readline().strip('\n')
+@@ -1146,7 +1146,7 @@ def download_pathways(self):
+ utils.download_file(self.kegg_rest_api_get + '/' + konum,
+ file_path, progress=self.progress, run=self.run)
+ # verify entire file has been downloaded
+- f = open(file_path, 'rU')
++ f = open(file_path, 'r')
+ f.seek(0, os.SEEK_END)
+ f.seek(f.tell() - 4, os.SEEK_SET)
+ last_line = f.readline().strip('\n')
+@@ -1528,7 +1528,7 @@ def process_module_file(self):
+ filesnpaths.is_file_exists(self.kegg_module_file)
+ filesnpaths.is_file_plain_text(self.kegg_module_file)
+
+- f = open(self.kegg_module_file, 'rU')
++ f = open(self.kegg_module_file, 'r')
+ self.progress.new("Parsing KEGG Module file")
+
+ current_module_type = None
+@@ -1641,7 +1641,7 @@ def confirm_downloaded_modules(self):
+ f"on your computer. Very sorry to tell you this, but you need to re-download the KEGG "
+ f"data. We recommend the --reset flag.")
+ # verify entire file has been downloaded
+- f = open(file_path, 'rU')
++ f = open(file_path, 'r')
+ f.seek(0, os.SEEK_END)
+ f.seek(f.tell() - 4, os.SEEK_SET)
+ last_line = f.readline().strip('\n')
+@@ -6677,7 +6677,7 @@ def create(self):
+ for mnum in self.module_dict.keys():
+ self.progress.update("Parsing Module %s" % mnum)
+ mod_file_path = os.path.join(self.module_data_directory, mnum)
+- f = open(mod_file_path, 'rU')
++ f = open(mod_file_path, 'r')
+
+ prev_data_name_field = None
+ module_has_annotation_source = False
+diff --git a/anvio/mcgclassifier.py b/anvio/mcgclassifier.py
+index 2d9f0b0bb3..bd38770778 100644
+--- a/anvio/mcgclassifier.py
++++ b/anvio/mcgclassifier.py
+@@ -92,7 +92,7 @@ def __init__(self, args, run=run, progress=progress):
+ if self.exclude_samples:
+ # check that there is a file like this
+ filesnpaths.is_file_exists(self.exclude_samples)
+- self.samples_to_exclude = set([l.split('\t')[0].strip() for l in open(self.exclude_samples, 'rU').readlines()])
++ self.samples_to_exclude = set([l.split('\t')[0].strip() for l in open(self.exclude_samples, 'r').readlines()])
+
+ if not self.samples_to_exclude:
+ raise ConfigError("You asked to exclude samples, but provided an empty list.")
+@@ -102,7 +102,7 @@ def __init__(self, args, run=run, progress=progress):
+ if self.include_samples:
+ # check that there is a file like this
+ filesnpaths.is_file_exists(self.include_samples)
+- self.samples_to_include = set([l.split('\t')[0].strip() for l in open(self.include_samples, 'rU').readlines()])
++ self.samples_to_include = set([l.split('\t')[0].strip() for l in open(self.include_samples, 'r').readlines()])
+
+ if not self.samples_to_include:
+ raise ConfigError("You provided an empty list of samples to include.")
+diff --git a/anvio/merger.py b/anvio/merger.py
+index 0e2aa44480..440f07a592 100644
+--- a/anvio/merger.py
++++ b/anvio/merger.py
+@@ -334,7 +334,7 @@ def sanity_check(self):
+ # do we have a description file?
+ if self.description_file_path:
+ filesnpaths.is_file_plain_text(self.description_file_path)
+- self.description = open(os.path.abspath(self.description_file_path), 'rU').read()
++ self.description = open(os.path.abspath(self.description_file_path), 'r').read()
+
+
+ def set_sample_id(self):
+diff --git a/anvio/panops.py b/anvio/panops.py
+index 5cf700d29a..824c2d5ac8 100644
+--- a/anvio/panops.py
++++ b/anvio/panops.py
+@@ -234,7 +234,7 @@ def check_params(self):
+
+ if self.description_file_path:
+ filesnpaths.is_file_plain_text(self.description_file_path)
+- self.description = open(os.path.abspath(self.description_file_path), 'rU').read()
++ self.description = open(os.path.abspath(self.description_file_path), 'r').read()
+
+ self.pan_db_path = self.get_output_file_path(self.project_name + '-PAN.db')
+
+diff --git a/anvio/parsers/kaiju.py b/anvio/parsers/kaiju.py
+index 4d8f60e60b..057320a42a 100644
+--- a/anvio/parsers/kaiju.py
++++ b/anvio/parsers/kaiju.py
+@@ -62,7 +62,7 @@ def fix_input_file(self, input_file_path):
+
+ corrected_temp_file_path = filesnpaths.get_temp_file_path()
+ corrected_temp_file = open(corrected_temp_file_path, 'w')
+- input_file = open(input_file_path, 'rU')
++ input_file = open(input_file_path, 'r')
+
+ num_correct_lines = 0
+ for line in input_file.readlines():
+diff --git a/anvio/profiler.py b/anvio/profiler.py
+index 2a25ec3592..d2facf2a25 100644
+--- a/anvio/profiler.py
++++ b/anvio/profiler.py
+@@ -450,7 +450,7 @@ def init_dirs_and_dbs(self):
+
+ if self.description_file_path:
+ filesnpaths.is_file_plain_text(self.description_file_path)
+- self.description = open(os.path.abspath(self.description_file_path), 'rU').read()
++ self.description = open(os.path.abspath(self.description_file_path), 'r').read()
+
+ if self.output_directory:
+ self.output_directory = filesnpaths.check_output_directory(self.output_directory, ok_if_exists=self.overwrite_output_destinations)
+diff --git a/anvio/programs.py b/anvio/programs.py
+index b404d470a9..230f4c248d 100644
+--- a/anvio/programs.py
++++ b/anvio/programs.py
+@@ -55,7 +55,7 @@ def get_until_blank(output):
+
+
+ def get_meta_information_from_file(file_path, meta_tag):
+- all_lines = [l.strip() for l in open(file_path, 'rU').readlines()]
++ all_lines = [l.strip() for l in open(file_path, 'r').readlines()]
+
+ meta_tag_content = ''
+
+diff --git a/anvio/samplesops.py b/anvio/samplesops.py
+index f603df9779..814b0d96f4 100644
+--- a/anvio/samplesops.py
++++ b/anvio/samplesops.py
+@@ -50,7 +50,7 @@ def process_samples_information_file(self, samples_information_path):
+ self.sample_names_in_samples_information_file = filesnpaths.is_proper_samples_information_file(samples_information_path)
+
+ self.samples_information_dict, self.aliases_to_attributes_dict = self.convert_samples_information_dict(utils.get_TAB_delimited_file_as_dictionary(samples_information_path))
+- self.samples_information_default_layer_order = open(samples_information_path, 'rU').readline().strip().split('\t')[1:]
++ self.samples_information_default_layer_order = open(samples_information_path, 'r').readline().strip().split('\t')[1:]
+
+ self.run.info('Samples information', 'Loaded for %d samples' % len(self.samples_information_dict), quiet=self.quiet)
+
+@@ -122,7 +122,7 @@ def process_single_order_data(self, single_order_path, single_order_name):
+
+ filesnpaths.is_file_plain_text(single_order_path)
+
+- single_order_file_content = [l.strip('\n') for l in open(single_order_path, 'rU').readlines()]
++ single_order_file_content = [l.strip('\n') for l in open(single_order_path, 'r').readlines()]
+
+ if len(single_order_file_content) != 1:
+ raise SamplesError("The single order file should contain a single line of information. It can't have nothing,\
+diff --git a/anvio/structureops.py b/anvio/structureops.py
+index aa47125fe2..d9a41fcaca 100755
+--- a/anvio/structureops.py
++++ b/anvio/structureops.py
+@@ -1968,7 +1968,7 @@ def get_path(self, gene_callers_id):
+
+ def is_header_ok(self):
+ headers_proper = ['gene_callers_id', 'path']
+- with open(self.path, 'rU') as input_file:
++ with open(self.path, 'r') as input_file:
+ headers = input_file.readline().strip().split('\t')
+ missing_headers = [h for h in headers_proper if h not in headers]
+
+diff --git a/anvio/variabilityops.py b/anvio/variabilityops.py
+index c116469a15..deb19b14e3 100644
+--- a/anvio/variabilityops.py
++++ b/anvio/variabilityops.py
+@@ -764,7 +764,7 @@ def sanity_check(self):
+ filesnpaths.is_file_tab_delimited(self.genes_of_interest_path, expected_number_of_fields=1)
+
+ try:
+- self.gene_caller_ids = [int(g.strip()) for g in open(self.genes_of_interest_path, 'rU').readlines()]
++ self.gene_caller_ids = [int(g.strip()) for g in open(self.genes_of_interest_path, 'r').readlines()]
+ except:
+ raise ConfigError("The gene caller ids anvi'o found in that file does not seem like gene caller "
+ "ids anvi'o would use. There is something wrong here :(")
+diff --git a/anvio/workflows/__init__.py b/anvio/workflows/__init__.py
+index ffae6b78dd..828dab9af0 100644
+--- a/anvio/workflows/__init__.py
++++ b/anvio/workflows/__init__.py
+@@ -333,7 +333,7 @@ def dry_run(self, workflow_graph_output_file_path_prefix='workflow'):
+ # we are (it still may be better to do it elsewhere more appropriate .. so
+ # we can look more decent or whatever):
+ if self.save_workflow_graph:
+- lines = open(log_file_path, 'rU').readlines()
++ lines = open(log_file_path, 'r').readlines()
+
+ try:
+ line_of_interest = [line_no for line_no in range(0, len(lines)) if lines[line_no].startswith('digraph')][0]
+diff --git a/bin/anvi-export-structures b/bin/anvi-export-structures
+index 147f82c346..0f059b74ed 100755
+--- a/bin/anvi-export-structures
++++ b/bin/anvi-export-structures
+@@ -38,7 +38,7 @@ def main(args):
+ raise ConfigError("Pick one of --gene-caller-ids and --genes-of-interest")
+ elif genes_of_interest_path:
+ filesnpaths.is_file_exists(args.genes_of_interest)
+- genes_of_interest = set(int(g.strip()) for g in open(args.genes_of_interest, 'rU').readlines())
++ genes_of_interest = set(int(g.strip()) for g in open(args.genes_of_interest, 'r').readlines())
+ elif gene_caller_ids:
+ genes_of_interest = set(int(g) for g in gene_caller_ids.split(','))
+ else:
+diff --git a/bin/anvi-get-sequences-for-hmm-hits b/bin/anvi-get-sequences-for-hmm-hits
+index b18183737d..f2fec99652 100755
+--- a/bin/anvi-get-sequences-for-hmm-hits
++++ b/bin/anvi-get-sequences-for-hmm-hits
+@@ -166,7 +166,7 @@ def main(args):
+
+ # figure out gene names.. if the user provided a file, use that, otherwhise parse gene names out of the comma-separated text
+ if args.gene_names and filesnpaths.is_file_exists(args.gene_names, dont_raise=True):
+- gene_names = [g.strip() for g in open(args.gene_names, 'rU').readlines()] if args.gene_names else []
++ gene_names = [g.strip() for g in open(args.gene_names, 'r').readlines()] if args.gene_names else []
+ else:
+ gene_names = [g.strip() for g in args.gene_names.split(',')] if args.gene_names else []
+
+From ac5908eac71809b31f3bd0ff92bbb573cc17f730 Mon Sep 17 00:00:00 2001
+From: "A. Murat Eren"
+Date: Wed, 25 Oct 2023 16:06:15 +0200
+Subject: [PATCH] rU is deprecated for a long time
+
+---
+ anvio/utils.py | 16 ++++++++--------
+ 1 file changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/anvio/utils.py b/anvio/utils.py
+index 4e599aaa3..c52888934 100644
+--- a/anvio/utils.py
++++ b/anvio/utils.py
+@@ -850,7 +850,7 @@ def transpose_tab_delimited_file(input_file_path, output_file_path, remove_after
+ filesnpaths.is_file_tab_delimited(input_file_path)
+ filesnpaths.is_output_file_writable(output_file_path)
+
+- file_content = [line.strip('\n').split('\t') for line in open(input_file_path, 'rU').readlines()]
++ file_content = [line.strip('\n').split('\t') for line in open(input_file_path, 'r').readlines()]
+
+ output_file = open(output_file_path, 'w')
+ for entry in zip(*file_content):
+@@ -1048,7 +1048,7 @@ def get_column_data_from_TAB_delim_file(input_file_path, column_indices=[], expe
+ for index in column_indices:
+ d[index] = []
+
+- with open(input_file_path, "rU") as input_file:
++ with open(input_file_path, "r") as input_file:
+ for line in input_file.readlines():
+ fields = line.strip('\n').split(separator)
+
+@@ -1066,9 +1066,9 @@ def get_columns_of_TAB_delim_file(file_path, include_first_column=False):
+ filesnpaths.is_file_exists(file_path)
+
+ if include_first_column:
+- return open(file_path, 'rU').readline().strip('\n').split('\t')
++ return open(file_path, 'r').readline().strip('\n').split('\t')
+ else:
+- return open(file_path, 'rU').readline().strip('\n').split('\t')[1:]
++ return open(file_path, 'r').readline().strip('\n').split('\t')[1:]
+
+
+ def get_names_order_from_newick_tree(newick_tree, newick_format=1, reverse=False, names_with_only_digits_ok=False):
+@@ -1095,7 +1095,7 @@ def get_vectors_from_TAB_delim_matrix(file_path, cols_to_return=None, rows_to_re
+ id_to_sample_dict = {}
+ sample_to_id_dict = {}
+
+- input_matrix = open(file_path, 'rU')
++ input_matrix = open(file_path, 'r')
+ columns = input_matrix.readline().strip('\n').split('\t')[1:]
+
+ fields_of_interest = []
+@@ -1489,7 +1489,7 @@ def get_gene_caller_ids_from_args(gene_caller_ids, delimiter=','):
+ gene_caller_ids_set = set([])
+ if gene_caller_ids:
+ if os.path.exists(gene_caller_ids):
+- gene_caller_ids_set = set([g.strip() for g in open(gene_caller_ids, 'rU').readlines()])
++ gene_caller_ids_set = set([g.strip() for g in open(gene_caller_ids, 'r').readlines()])
+ else:
+ gene_caller_ids_set = set([g.strip() for g in gene_caller_ids.split(delimiter)])
+
+@@ -1764,7 +1764,7 @@ def concatenate_files(dest_file, file_list, remove_concatenated_files=False):
+
+ dest_file_obj = open(dest_file, 'w')
+ for chunk_path in file_list:
+- for line in open(chunk_path, 'rU'):
++ for line in open(chunk_path, 'r'):
+ dest_file_obj.write(line)
+
+ dest_file_obj.close()
+@@ -3547,7 +3547,7 @@ def get_TAB_delimited_file_as_dictionary(file_path, expected_fields=None, dict_t
+ failed_lines = []
+ column_mapping_for_line_failed = None
+
+- f = open(file_path, 'rU')
++ f = open(file_path, 'r')
+
+ # learn the number of fields and reset the file:
+ num_fields = len(f.readline().strip('\n').split(separator))
diff --git a/easybuild/easyconfigs/a/any2fasta/any2fasta-0.4.2-GCCcore-12.3.0.eb b/easybuild/easyconfigs/a/any2fasta/any2fasta-0.4.2-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..3f96b328b6a
--- /dev/null
+++ b/easybuild/easyconfigs/a/any2fasta/any2fasta-0.4.2-GCCcore-12.3.0.eb
@@ -0,0 +1,35 @@
+# Author: Pavel Grochal (INUITS)
+# Updated by: Denis Kristak (INUITS)
+# License: GPLv2
+
+easyblock = 'Tarball'
+
+name = 'any2fasta'
+version = '0.4.2'
+
+homepage = 'https://github.com/tseemann/any2fasta'
+description = "Convert various sequence formats to FASTA"
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+# https://github.com/tseemann/any2fasta
+github_account = 'tseemann'
+source_urls = [GITHUB_SOURCE]
+sources = ['v%(version)s.zip']
+checksums = ['3faa738ab409c7073afe3769e9d32dd5b28a2c12e72c2e4ac6f4e9946ee9a22f']
+
+dependencies = [('Perl', '5.36.1')]
+
+modextrapaths = {'PATH': ''}
+
+sanity_check_paths = {
+ 'files': ['any2fasta'],
+ 'dirs': [],
+}
+
+sanity_check_commands = [
+ 'any2fasta -h',
+ 'any2fasta -q %(builddir)s/%(name)s-%(version)s/test.fq',
+]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/a/archspec/archspec-0.2.4-GCCcore-13.3.0.eb b/easybuild/easyconfigs/a/archspec/archspec-0.2.4-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..5a4f3a288e9
--- /dev/null
+++ b/easybuild/easyconfigs/a/archspec/archspec-0.2.4-GCCcore-13.3.0.eb
@@ -0,0 +1,27 @@
+easyblock = 'PythonPackage'
+
+name = 'archspec'
+version = '0.2.4'
+
+homepage = 'https://github.com/archspec/archspec'
+description = "A library for detecting, labeling, and reasoning about microarchitectures"
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+sources = [SOURCE_TAR_GZ]
+checksums = ['eabbae22f315d24cc2ce786a092478ec8e245208c9877fb213c2172a6ecb9302']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('poetry', '1.8.3'),
+]
+
+dependencies = [('Python', '3.12.3')]
+
+download_dep_fail = True
+use_pip = True
+sanity_pip_check = True
+
+sanity_check_commands = ["python -c 'from archspec.cpu import host; print(host())'"]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/a/argtable/argtable-2.13-GCCcore-11.2.0.eb b/easybuild/easyconfigs/a/argtable/argtable-2.13-GCCcore-11.2.0.eb
new file mode 100644
index 00000000000..0eb9df1a37a
--- /dev/null
+++ b/easybuild/easyconfigs/a/argtable/argtable-2.13-GCCcore-11.2.0.eb
@@ -0,0 +1,30 @@
+# 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 = 'argtable'
+version = '2.13'
+
+homepage = 'https://argtable.sourceforge.io/'
+description = """ Argtable is an ANSI C library for parsing GNU style
+ command line options with a minimum of fuss. """
+
+toolchain = {'name': 'GCCcore', 'version': '11.2.0'}
+
+source_urls = [SOURCEFORGE_SOURCE]
+sources = ['%s%s.tar.gz' % (name, version.replace('.', '-'))]
+checksums = ['8f77e8a7ced5301af6e22f47302fdbc3b1ff41f2b83c43c77ae5ca041771ddbf']
+
+builddependencies = [('binutils', '2.37')]
+
+sanity_check_paths = {
+ 'files': ['include/argtable2.h', 'lib/libargtable2.%s' % SHLIB_EXT, 'lib/libargtable2.a'],
+ 'dirs': ['share'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/a/argtable/argtable-2.13-GCCcore-12.3.0.eb b/easybuild/easyconfigs/a/argtable/argtable-2.13-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..8a411de3fd2
--- /dev/null
+++ b/easybuild/easyconfigs/a/argtable/argtable-2.13-GCCcore-12.3.0.eb
@@ -0,0 +1,30 @@
+# 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 = 'argtable'
+version = '2.13'
+
+homepage = 'https://argtable.sourceforge.io/'
+description = """ Argtable is an ANSI C library for parsing GNU style
+ command line options with a minimum of fuss. """
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = [SOURCEFORGE_SOURCE]
+sources = ['%s%s.tar.gz' % (name, version.replace('.', '-'))]
+checksums = ['8f77e8a7ced5301af6e22f47302fdbc3b1ff41f2b83c43c77ae5ca041771ddbf']
+
+builddependencies = [('binutils', '2.40')]
+
+sanity_check_paths = {
+ 'files': ['include/argtable2.h', 'lib/libargtable2.%s' % SHLIB_EXT, 'lib/libargtable2.a'],
+ 'dirs': ['share'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/a/arpack-ng/arpack-ng-3.9.0-foss-2023b.eb b/easybuild/easyconfigs/a/arpack-ng/arpack-ng-3.9.0-foss-2023b.eb
new file mode 100644
index 00000000000..10d825ca22f
--- /dev/null
+++ b/easybuild/easyconfigs/a/arpack-ng/arpack-ng-3.9.0-foss-2023b.eb
@@ -0,0 +1,37 @@
+# Author: Robert Mijakovic
+
+easyblock = 'ConfigureMake'
+
+name = 'arpack-ng'
+version = '3.9.0'
+
+homepage = 'https://github.com/opencollab/arpack-ng'
+description = "ARPACK is a collection of Fortran77 subroutines designed to solve large scale eigenvalue problems."
+
+toolchain = {'name': 'foss', 'version': '2023b'}
+toolchainopts = {'pic': True, 'usempi': True}
+
+github_account = 'opencollab'
+
+source_urls = [GITHUB_SOURCE]
+sources = ['%(version)s.tar.gz']
+checksums = ['24f2a2b259992d3c797d80f626878aa8e2ed5009d549dad57854bbcfb95e1ed0']
+
+builddependencies = [
+ ('Autotools', '20220317'),
+ ('pkgconf', '2.0.3'),
+]
+dependencies = [
+ ('Eigen', '3.4.0'),
+]
+
+preconfigopts = "sh bootstrap && "
+configopts = '--enable-mpi --with-pic --with-blas="$LIBBLAS" --with-lapack="$LIBLAPACK"'
+
+sanity_check_paths = {
+ 'files': ['lib64/libarpack.la', 'lib64/libarpack.%s' % SHLIB_EXT,
+ 'lib64/libparpack.la', 'lib64/libparpack.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+
+moduleclass = 'numlib'
diff --git a/easybuild/easyconfigs/a/arpack-ng/arpack-ng-3.9.1-foss-2023b.eb b/easybuild/easyconfigs/a/arpack-ng/arpack-ng-3.9.1-foss-2023b.eb
new file mode 100644
index 00000000000..4f029ffc4f8
--- /dev/null
+++ b/easybuild/easyconfigs/a/arpack-ng/arpack-ng-3.9.1-foss-2023b.eb
@@ -0,0 +1,32 @@
+easyblock = 'ConfigureMake'
+
+name = 'arpack-ng'
+version = '3.9.1'
+
+homepage = 'https://github.com/opencollab/arpack-ng'
+description = """ARPACK is a collection of Fortran77 subroutines designed to solve large scale eigenvalue problems."""
+
+toolchain = {'name': 'foss', 'version': '2023b'}
+toolchainopts = {'pic': True, 'usempi': True}
+
+github_account = 'opencollab'
+source_urls = [GITHUB_SOURCE]
+sources = ['%(version)s.tar.gz']
+checksums = ['f6641deb07fa69165b7815de9008af3ea47eb39b2bb97521fbf74c97aba6e844']
+
+builddependencies = [
+ ('Autotools', '20220317'),
+ ('pkgconf', '2.0.3'),
+ ('Eigen', '3.4.0')
+]
+
+preconfigopts = "sh bootstrap && "
+configopts = '--enable-mpi --with-pic --with-blas="$LIBBLAS" --with-lapack="$LIBLAPACK"'
+
+sanity_check_paths = {
+ 'files': ['lib64/libarpack.la', 'lib64/libarpack.%s' % SHLIB_EXT,
+ 'lib64/libparpack.la', 'lib64/libparpack.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+
+moduleclass = 'numlib'
diff --git a/easybuild/easyconfigs/a/arrow-R/arrow-R-11.0.0.3-foss-2022b-R-4.2.2.eb b/easybuild/easyconfigs/a/arrow-R/arrow-R-11.0.0.3-foss-2022b-R-4.2.2.eb
index dfe97712e3b..e0cb197688d 100644
--- a/easybuild/easyconfigs/a/arrow-R/arrow-R-11.0.0.3-foss-2022b-R-4.2.2.eb
+++ b/easybuild/easyconfigs/a/arrow-R/arrow-R-11.0.0.3-foss-2022b-R-4.2.2.eb
@@ -19,7 +19,7 @@ checksums = ['eb939471f5f4218e6cfd62f58ccd2a0a5283d4a19a2902741c7fb25e2f016eaf']
dependencies = [
('R', '4.2.2'),
- ('Arrow', '11.0.0'),
+ ('Arrow', '11.0.0'), # arrow-R x.y.z[.N] only works with Arrow x.y.z
]
preinstallopts = "export LIBARROW_BINARY=true && "
diff --git a/easybuild/easyconfigs/a/arrow-R/arrow-R-14.0.1-foss-2023a-R-4.3.2.eb b/easybuild/easyconfigs/a/arrow-R/arrow-R-14.0.1-foss-2023a-R-4.3.2.eb
new file mode 100644
index 00000000000..1a6720e1a3c
--- /dev/null
+++ b/easybuild/easyconfigs/a/arrow-R/arrow-R-14.0.1-foss-2023a-R-4.3.2.eb
@@ -0,0 +1,37 @@
+easyblock = 'RPackage'
+
+name = 'arrow-R'
+version = '14.0.1'
+versionsuffix = '-R-%(rver)s'
+
+homepage = 'https://cran.r-project.org/web/packages/arrow'
+description = "R interface to the Apache Arrow C++ library"
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+source_urls = [
+ 'https://cran.r-project.org/src/contrib/Archive/arrow', # package archive
+ 'https://cran.r-project.org/src/contrib/', # current version of packages
+ 'https://cran.freestatistics.org/src/contrib', # mirror alternative for current packages
+ 'https://archive.apache.org/dist/arrow/arrow-%(version)s', # full Arrow source tarballs
+]
+sources = ['apache-arrow-%(version)s.tar.gz']
+checksums = ['5c70eafb1011f9d124bafb328afe54f62cc5b9280b7080e1e3d668f78c0e407e']
+
+dependencies = [
+ ('R', '4.3.2'),
+ ('R-bundle-CRAN', '2023.12'),
+ ('Arrow', '14.0.1'), # arrow-R x.y.z[.N] only works with Arrow x.y.z
+]
+
+start_dir = 'r'
+preinstallopts = "export LIBARROW_BINARY=true && "
+
+sanity_check_paths = {
+ 'files': [],
+ 'dirs': ['arrow'],
+}
+
+options = {'modulename': 'arrow'}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/a/arrow-R/arrow-R-16.1.0-foss-2023b-R-4.4.1.eb b/easybuild/easyconfigs/a/arrow-R/arrow-R-16.1.0-foss-2023b-R-4.4.1.eb
new file mode 100644
index 00000000000..dd2e4260145
--- /dev/null
+++ b/easybuild/easyconfigs/a/arrow-R/arrow-R-16.1.0-foss-2023b-R-4.4.1.eb
@@ -0,0 +1,35 @@
+easyblock = 'RPackage'
+
+name = 'arrow-R'
+version = '16.1.0'
+versionsuffix = '-R-%(rver)s'
+
+homepage = 'https://cran.r-project.org/web/packages/arrow'
+description = "R interface to the Apache Arrow C++ library"
+
+toolchain = {'name': 'foss', 'version': '2023b'}
+
+source_urls = [
+ 'https://cran.r-project.org/src/contrib/Archive/arrow', # package archive
+ 'https://cran.r-project.org/src/contrib/', # current version of packages
+ 'https://cran.freestatistics.org/src/contrib', # mirror alternative for current packages
+]
+sources = ['arrow_%(version)s.tar.gz']
+checksums = ['66c1586ee7becd65b4d21b11ffcd157dc19f75c3c10ff5c5b3610689aadce7ef']
+
+dependencies = [
+ ('R', '4.4.1'),
+ ('R-bundle-CRAN', '2024.06'),
+ ('Arrow', '16.1.0'), # arrow-R x.y.z[.N] only works with Arrow x.y.z
+]
+
+preinstallopts = "export LIBARROW_BINARY=true && "
+
+sanity_check_paths = {
+ 'files': [],
+ 'dirs': ['arrow'],
+}
+
+options = {'modulename': 'arrow'}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/a/assembly-stats/assembly-stats-1.0.1-GCCcore-11.3.0.eb b/easybuild/easyconfigs/a/assembly-stats/assembly-stats-1.0.1-GCCcore-11.3.0.eb
new file mode 100644
index 00000000000..7f13dbce7c6
--- /dev/null
+++ b/easybuild/easyconfigs/a/assembly-stats/assembly-stats-1.0.1-GCCcore-11.3.0.eb
@@ -0,0 +1,43 @@
+# Author: Ehsan Moravveji (VSCentrum, KU Leuven)
+
+easyblock = 'CMakeMake'
+
+name = 'assembly-stats'
+version = '1.0.1'
+
+homepage = 'https://github.com/sanger-pathogens/assembly-stats'
+description = 'Get assembly statistics from FASTA and FASTQ files.'
+
+toolchain = {'name': 'GCCcore', 'version': '11.3.0'}
+
+github_account = 'sanger-pathogens'
+source_urls = [GITHUB_SOURCE]
+sources = ['v%(version)s.tar.gz']
+patches = ['%(name)s-1.0.1_fix_str_cast.patch']
+checksums = [
+ {'v1.0.1.tar.gz': '02be614da4d244673bcd0adc6917749681d52a58cb0a039c092d01cdeabd8575'},
+ {'assembly-stats-1.0.1_fix_str_cast.patch': '2c1d63e7b1246b290ddfeea2604076ae892dfe337e5092e83575c2c3cbcfd7fd'},
+]
+
+builddependencies = [
+ ('binutils', '2.38'),
+ ('CMake', '3.24.3'),
+ ('pkgconf', '1.8.0'),
+]
+
+dependencies = [
+ ('zlib', '1.2.12'),
+]
+
+configopts = '-DINSTALL_DIR=%(installdir)s/bin'
+
+runtest = 'test'
+
+sanity_check_paths = {
+ 'files': ['bin/assembly-stats'],
+ 'dirs': []
+}
+
+sanity_check_commands = ['assembly-stats -v']
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/a/assembly-stats/assembly-stats-1.0.1_fix_str_cast.patch b/easybuild/easyconfigs/a/assembly-stats/assembly-stats-1.0.1_fix_str_cast.patch
new file mode 100644
index 00000000000..48fe1b7fef1
--- /dev/null
+++ b/easybuild/easyconfigs/a/assembly-stats/assembly-stats-1.0.1_fix_str_cast.patch
@@ -0,0 +1,43 @@
+# Author: Ehsan Moravveji (VSCentrum, KU Leuven)
+# Purpose: This patch prevents the compile-time error "taking address of rvalue [-fpermissive]"
+# by redefining a simple casting from integer to string. Consequently, the additional
+# "-fpermissive" compiler flag need not be included to supress the error.
+diff -ruN assembly-stats-original/fasta_unittest.cpp assembly-stats/fasta_unittest.cpp
+--- assembly-stats-original/fasta_unittest.cpp 2024-04-03 11:45:32.230992000 +0200
++++ assembly-stats/fasta_unittest.cpp 2024-04-03 11:50:08.868140000 +0200
+@@ -1,4 +1,5 @@
+ #include
++#include
+ #include "fasta.h"
+ #include "gtest/gtest.h"
+
+@@ -94,8 +95,7 @@
+ while (fa.fillFromFile(inStream))
+ {
+ counter++;
+- string expectedName = static_cast( &(ostringstream() << counter) )->str();
+- EXPECT_EQ(0, fa.name().compare(expectedName));
++ EXPECT_EQ(0, fa.name().compare(std::to_string(counter)));
+ EXPECT_EQ(0, fa.seq().compare("ACGT"));
+ }
+
+diff -ruN assembly-stats-original/fastq_unittest.cpp assembly-stats/fastq_unittest.cpp
+--- assembly-stats-original/fastq_unittest.cpp 2024-04-03 11:45:32.226036000 +0200
++++ assembly-stats/fastq_unittest.cpp 2024-04-03 12:29:04.830873000 +0200
+@@ -1,5 +1,6 @@
+ #include
+ #include
++#include
+ #include
+ #include "fastq.h"
+ #include "gtest/gtest.h"
+@@ -50,8 +51,7 @@
+ while (fq.fillFromFile(inStream))
+ {
+ counter++;
+- string expectedName = static_cast( &(ostringstream() << counter) )->str();
+- EXPECT_EQ(0, fq.name().compare(expectedName));
++ EXPECT_EQ(0, fq.name().compare(std::to_string(counter)));
+ EXPECT_EQ(0, fq.seq().compare("ACGT"));
+ }
+ }
diff --git a/easybuild/easyconfigs/a/assimp/assimp-5.3.1-GCCcore-13.2.0.eb b/easybuild/easyconfigs/a/assimp/assimp-5.3.1-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..6d89f82e89f
--- /dev/null
+++ b/easybuild/easyconfigs/a/assimp/assimp-5.3.1-GCCcore-13.2.0.eb
@@ -0,0 +1,36 @@
+# Authors:: Richard Lawrence - TAMU HPRC - https://hprc.tamu.edu
+
+easyblock = 'CMakeMake'
+
+name = 'assimp'
+version = '5.3.1'
+
+homepage = 'https://github.com/assimp/assimp'
+
+description = """
+ Open Asset Import Library (assimp) is a library to import and export various
+ 3d-model-formats including scene-post-processing to generate missing render data.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+source_urls = ['https://github.com/%(name)s/%(name)s/archive']
+sources = ['v%(version)s.tar.gz']
+checksums = ['a07666be71afe1ad4bc008c2336b7c688aca391271188eb9108d0c6db1be53f1']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('pkgconf', '2.0.3'),
+ ('CMake', '3.27.6'),
+ ('zlib', '1.2.13'),
+]
+
+# workaround bug with GCC13 https://github.com/assimp/assimp/issues/5315
+configopts = '-DASSIMP_WARNINGS_AS_ERRORS=OFF '
+
+sanity_check_paths = {
+ 'files': ['include/assimp/types.h', 'lib/libassimp.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/a/assimp/assimp-5.4.3-GCCcore-13.3.0.eb b/easybuild/easyconfigs/a/assimp/assimp-5.4.3-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..3f0dfef4b64
--- /dev/null
+++ b/easybuild/easyconfigs/a/assimp/assimp-5.4.3-GCCcore-13.3.0.eb
@@ -0,0 +1,36 @@
+# Authors:: Richard Lawrence - TAMU HPRC - https://hprc.tamu.edu
+
+easyblock = 'CMakeMake'
+
+name = 'assimp'
+version = '5.4.3'
+
+homepage = 'https://github.com/assimp/assimp'
+description = """
+ Open Asset Import Library (assimp) is a library to import and export various
+ 3d-model-formats including scene-post-processing to generate missing render data.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://github.com/%(name)s/%(name)s/archive']
+sources = ['v%(version)s.tar.gz']
+checksums = ['66dfbaee288f2bc43172440a55d0235dfc7bf885dda6435c038e8000e79582cb']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('pkgconf', '2.2.0'),
+ ('CMake', '3.29.3'),
+ ('zlib', '1.3.1'),
+]
+
+# workaround bug with GCC13 https://github.com/assimp/assimp/issues/5315
+configopts = "-DASSIMP_WARNINGS_AS_ERRORS=OFF "
+
+
+sanity_check_paths = {
+ 'files': ['include/%(name)s/types.h', 'lib/libassimp.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/a/astropy/astropy-5.1.1-intel-2022a.eb b/easybuild/easyconfigs/a/astropy/astropy-5.1.1-intel-2022a.eb
new file mode 100644
index 00000000000..187ca13b362
--- /dev/null
+++ b/easybuild/easyconfigs/a/astropy/astropy-5.1.1-intel-2022a.eb
@@ -0,0 +1,37 @@
+easyblock = "PythonBundle"
+
+name = 'astropy'
+version = '5.1.1'
+
+homepage = 'https://www.astropy.org/'
+description = """The Astropy Project is a community effort to develop a common
+core package for Astronomy in Python and foster an ecosystem of interoperable
+astronomy packages."""
+
+docurls = 'https://docs.astropy.org'
+
+toolchain = {'name': 'intel', 'version': '2022a'}
+
+dependencies = [
+ ('Python', '3.10.4'),
+ ('SciPy-bundle', '2022.05'),
+ ('PyYAML', '6.0'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('pyerfa', '2.0.0.1', {
+ 'modulename': 'erfa',
+ 'checksums': ['2fd4637ffe2c1e6ede7482c13f583ba7c73119d78bef90175448ce506a0ede30'],
+ }),
+ ('extension-helpers', '1.0.0', {
+ 'checksums': ['ca1bfac67c79cf4a7a0c09286ce2a24eec31bf17715818d0726318dd0e5050e6'],
+ }),
+ (name, version, {
+ 'checksums': ['ba4bd696af7090fd399b464c704bf27b5633121e461785edc70432606a94bd81'],
+ }),
+]
+
+moduleclass = 'astro'
diff --git a/easybuild/easyconfigs/a/at-spi2-atk/at-spi2-atk-2.38.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/a/at-spi2-atk/at-spi2-atk-2.38.0-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..6efc7996fd0
--- /dev/null
+++ b/easybuild/easyconfigs/a/at-spi2-atk/at-spi2-atk-2.38.0-GCCcore-13.3.0.eb
@@ -0,0 +1,37 @@
+easyblock = 'MesonNinja'
+
+name = 'at-spi2-atk'
+version = '2.38.0'
+
+homepage = 'https://wiki.gnome.org/Accessibility'
+description = "AT-SPI 2 toolkit bridge"
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = [FTPGNOME_SOURCE]
+sources = [SOURCELOWER_TAR_XZ]
+checksums = ['cfa008a5af822b36ae6287f18182c40c91dd699c55faa38605881ed175ca464f']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('Meson', '1.4.0'),
+ ('Ninja', '1.12.1'),
+ ('pkgconf', '2.2.0'),
+]
+
+dependencies = [
+ ('GLib', '2.80.4'),
+ ('DBus', '1.15.8'),
+ ('at-spi2-core', '2.54.0'),
+ ('libxml2', '2.12.7'),
+ ('ATK', '2.38.0'),
+]
+
+configopts = "--libdir lib "
+
+sanity_check_paths = {
+ 'files': ['lib/libatk-bridge-2.0.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/a/at-spi2-core/at-spi2-core-2.54.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/a/at-spi2-core/at-spi2-core-2.54.0-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..b1a1a4c863f
--- /dev/null
+++ b/easybuild/easyconfigs/a/at-spi2-core/at-spi2-core-2.54.0-GCCcore-13.3.0.eb
@@ -0,0 +1,40 @@
+easyblock = 'MesonNinja'
+
+name = 'at-spi2-core'
+version = '2.54.0'
+
+homepage = 'https://wiki.gnome.org/Accessibility'
+description = """
+ Assistive Technology Service Provider Interface.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = [FTPGNOME_SOURCE]
+sources = [SOURCELOWER_TAR_XZ]
+checksums = ['d7eee7e75beddcc272cedc2b60535600f3aae6e481589ebc667afc437c0a6079']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('Meson', '1.4.0'),
+ ('Ninja', '1.12.1'),
+ ('GObject-Introspection', '1.80.1'),
+ ('gettext', '0.22.5'),
+ ('pkgconf', '2.2.0'),
+]
+
+dependencies = [
+ ('GLib', '2.80.4'),
+ ('DBus', '1.15.8'),
+ ('X11', '20240607'),
+]
+
+# Hard disable Dbus broker detection and (potential) use of systemd
+configopts = "--libdir lib -Duse_systemd=false -Ddefault_bus=dbus-daemon"
+
+sanity_check_paths = {
+ 'files': ['lib/libatspi.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/a/atools/atools-1.5.1-GCCcore-12.3.0.eb b/easybuild/easyconfigs/a/atools/atools-1.5.1-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..1124e45ce7b
--- /dev/null
+++ b/easybuild/easyconfigs/a/atools/atools-1.5.1-GCCcore-12.3.0.eb
@@ -0,0 +1,36 @@
+easyblock = 'ConfigureMake'
+
+name = 'atools'
+version = '1.5.1'
+
+homepage = 'https://github.com/gjbex/atools'
+description = """Tools to make using job arrays a lot more convenient."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = ['https://github.com/gjbex/atools/archive']
+sources = [SOURCE_TAR_GZ]
+checksums = ['540714c39aa83dd5f1a7367d76f8d6f491336fa5fc00077591a22151ef5d31f4']
+
+builddependencies = [('binutils', '2.40')]
+
+dependencies = [('Python', '3.11.3')]
+
+# to enable SLURM integration (site-specific) (options are torque, moab, sge, slurm)
+configopts = '--with-batchsystem=slurm'
+
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in ['acreate', 'aenv', 'aload', 'alog', 'arange', 'areduce']],
+ 'dirs': ['lib/vsc/atools']
+}
+
+sanity_check_commands = [
+ 'acreate -h',
+ 'aenv -h',
+ 'aload -h',
+ 'alog -h',
+ 'arange -h',
+ 'areduce -h',
+]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/a/atools/atools-1.5.1-GCCcore-13.2.0.eb b/easybuild/easyconfigs/a/atools/atools-1.5.1-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..3916c8f605b
--- /dev/null
+++ b/easybuild/easyconfigs/a/atools/atools-1.5.1-GCCcore-13.2.0.eb
@@ -0,0 +1,36 @@
+easyblock = 'ConfigureMake'
+
+name = 'atools'
+version = '1.5.1'
+
+homepage = 'https://github.com/gjbex/atools'
+description = """Tools to make using job arrays a lot more convenient."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+source_urls = ['https://github.com/gjbex/atools/archive']
+sources = [SOURCE_TAR_GZ]
+checksums = ['540714c39aa83dd5f1a7367d76f8d6f491336fa5fc00077591a22151ef5d31f4']
+
+builddependencies = [('binutils', '2.40')]
+
+dependencies = [('Python', '3.11.5')]
+
+# to enable SLURM integration (site-specific) (options are torque, moab, sge, slurm)
+configopts = '--with-batchsystem=slurm'
+
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in ['acreate', 'aenv', 'aload', 'alog', 'arange', 'areduce']],
+ 'dirs': ['lib/vsc/atools']
+}
+
+sanity_check_commands = [
+ 'acreate -h',
+ 'aenv -h',
+ 'aload -h',
+ 'alog -h',
+ 'arange -h',
+ 'areduce -h',
+]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/a/atropos/atropos-1.1.32-gompi-2023a.eb b/easybuild/easyconfigs/a/atropos/atropos-1.1.32-gompi-2023a.eb
new file mode 100644
index 00000000000..dddac86e727
--- /dev/null
+++ b/easybuild/easyconfigs/a/atropos/atropos-1.1.32-gompi-2023a.eb
@@ -0,0 +1,57 @@
+easyblock = 'PythonBundle'
+
+name = 'atropos'
+version = '1.1.32'
+
+homepage = 'https://atropos.readthedocs.io'
+description = "Atropos is tool for specific, sensitive, and speedy trimming of NGS reads."
+
+toolchain = {'name': 'gompi', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('tqdm', '4.66.1'),
+ ('Pysam', '0.22.0'),
+ ('pytest', '7.4.2'),
+ ('SRA-Toolkit', '3.0.10'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('versioneer', '0.29', {
+ 'checksums': ['5ab283b9857211d61b53318b7c792cf68e798e765ee17c27ade9f6c924235731'],
+ }),
+ ('screed', '1.1.3', {
+ 'checksums': ['37e81697c7dba95a053554e5b5a86aff329705e1cf5dfc5e7b8da586dee072b8'],
+ }),
+ ('bz2file', '0.98', {
+ 'checksums': ['64c1f811e31556ba9931953c8ec7b397488726c63e09a4c67004f43bdd28da88'],
+ }),
+ ('khmer', '2.1.1', {
+ 'checksums': ['a709606910bb8679bd8525e9d2bf6d1421996272e343b54cc18090feb2fdbe24'],
+ }),
+ ('pokrok', '0.2.0', {
+ 'checksums': ['cfe7956602d8bbc142a07bcb259e0d1d939f96d7b074e00dceea3cb5e39244e8'],
+ }),
+ ('xphyle', '4.0.5', {
+ 'checksums': ['b744723a3c88d81318c7291c32682b8715a046f70d0a1db729bda783fd5e08bd'],
+ }),
+ ('srastream', '0.1.3', {
+ 'checksums': ['7f2cfd76ae988349ad5407a952cd4c133ae5dff7cf12c76072c53d82b50c2634'],
+ }),
+ (name, version, {
+ 'checksums': ['17e9dc3d76d7a2ca607a12da191a6d7ba1cfbd1a8c924215870417f85858fd83'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/atropos'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = ["atropos detect --help"]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/a/attr/attr-2.5.2-GCCcore-13.3.0.eb b/easybuild/easyconfigs/a/attr/attr-2.5.2-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..fcd6d723f16
--- /dev/null
+++ b/easybuild/easyconfigs/a/attr/attr-2.5.2-GCCcore-13.3.0.eb
@@ -0,0 +1,28 @@
+easyblock = 'ConfigureMake'
+
+name = 'attr'
+version = '2.5.2'
+
+homepage = 'https://savannah.nongnu.org/projects/attr'
+
+description = """Commands for Manipulating Filesystem Extended Attributes"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = [GNU_SAVANNAH_SOURCE]
+sources = [SOURCE_TAR_GZ]
+checksums = ['39bf67452fa41d0948c2197601053f48b3d78a029389734332a6309a680c6c87']
+
+builddependencies = [('binutils', '2.42')]
+
+sanity_check_paths = {
+ 'files': ['bin/attr', 'bin/getfattr', 'bin/setfattr',
+ 'include/%(name)s/attributes.h', 'include/%(name)s/error_context.h',
+ 'include/%(name)s/libattr.h', 'lib/libattr.a',
+ 'lib/libattr.%s' % SHLIB_EXT],
+ 'dirs': ['share'],
+}
+
+sanity_check_commands = ["getfattr --help"]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/a/attrdict3/attrdict3-2.0.2-GCCcore-12.3.0.eb b/easybuild/easyconfigs/a/attrdict3/attrdict3-2.0.2-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..67ab5e0fbda
--- /dev/null
+++ b/easybuild/easyconfigs/a/attrdict3/attrdict3-2.0.2-GCCcore-12.3.0.eb
@@ -0,0 +1,29 @@
+easyblock = 'PythonBundle'
+
+name = 'attrdict3'
+version = '2.0.2'
+
+homepage = 'https://github.com/pirofti/AttrDict3'
+description = """AttrDict is a Python library that provides mapping objects that allow their elements
+ to be accessed both as keys and as attributes."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+builddependencies = [('binutils', '2.40')]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'),
+]
+
+sanity_pip_check = True
+use_pip = True
+
+exts_list = [
+ (name, version, {
+ 'modulename': 'attrdict',
+ 'checksums': ['004c171ca1120cc1755701db99d7fa4944afb1e68950434efdaa542513335fe8'],
+ }),
+]
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/a/autopep8/autopep8-2.2.0-foss-2023a.eb b/easybuild/easyconfigs/a/autopep8/autopep8-2.2.0-foss-2023a.eb
new file mode 100644
index 00000000000..63f57b621be
--- /dev/null
+++ b/easybuild/easyconfigs/a/autopep8/autopep8-2.2.0-foss-2023a.eb
@@ -0,0 +1,23 @@
+easyblock = 'PythonPackage'
+
+name = 'autopep8'
+version = '2.2.0'
+
+homepage = "https://github.com/hhatto/autopep8"
+description = """A tool that automatically formats Python code to conform to the PEP 8 style guide."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+sources = [SOURCE_WHL]
+checksums = ['05418a981f038969d8bdcd5636bf15948db7555ae944b9f79b5a34b35f1370d4']
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('pycodestyle', '2.11.1'),
+]
+
+download_dep_fail = True
+use_pip = True
+sanity_pip_check = True
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/a/awscli/awscli-2.17.54-GCCcore-13.2.0.eb b/easybuild/easyconfigs/a/awscli/awscli-2.17.54-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..9b70b1a9008
--- /dev/null
+++ b/easybuild/easyconfigs/a/awscli/awscli-2.17.54-GCCcore-13.2.0.eb
@@ -0,0 +1,73 @@
+easyblock = 'PythonBundle'
+
+name = 'awscli'
+version = '2.17.54'
+
+homepage = 'https://pypi.python.org/pypi/awscli'
+description = 'Universal Command Line Environment for AWS'
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('CMake', '3.27.6'), # required for awscrt
+]
+
+dependencies = [
+ ('Python', '3.11.5'),
+ ('PyYAML', '6.0.1'),
+ ('ruamel.yaml', '0.18.6'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('jmespath', '1.0.1', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980'],
+ }),
+ ('botocore', '1.35.22', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['d9bc656e7dde0b3e3f3080fc54bacff6a97fd7806b98acbcc21c7f9d4d0102b9'],
+ }),
+ ('s3transfer', '0.10.2', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['eca1c20de70a39daee580aef4986996620f365c4e0fda6a86100231d62f1bf69'],
+ }),
+ ('prompt_toolkit', '3.0.47', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['0d7bfa67001d5e39d02c224b663abc33687405033a8c422d0d675a5a13361d10'],
+ }),
+ ('distro', '1.9.0', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2'],
+ }),
+ ('awscrt', '0.21.5', {
+ 'preinstallopts': "export AWS_CRT_BUILD_USE_SYSTEM_LIBCRYPTO=1 && ",
+ 'checksums': ['7ec2a67af30fbf386494df00bbdf996f7024000df6b01ab160014afef2b91005'],
+ }),
+ # older version of `urllib3` to avoid `ImportError: cannot import name 'DEFAULT_CIPHERS' from 'urllib3.util.ssl_'`
+ # see https://github.com/aws/aws-cli/issues/7905#issuecomment-1559817550
+ ('urllib3', '1.26.20', {
+ 'source_tmpl': SOURCE_WHL,
+ 'checksums': ['0ed14ccfbf1c30a9072c7ca157e4319b70d65f623e91e7b32fadb2853431016e'],
+ }),
+ (name, version, {
+ # version requirements are too strict
+ 'preinstallopts': """sed -i 's/>[^"]*//g' pyproject.toml && """,
+ 'source_tmpl': '%(version)s.tar.gz',
+ 'source_urls': ['https://github.com/aws/aws-cli/archive/'],
+ 'checksums': ['c0a37eeb52b7df336e117667b67a275929701e9f6dad0ddb7de59a6f834e5b48'],
+ }),
+]
+
+sanity_pip_check = True
+
+sanity_check_paths = {
+ 'files': ['bin/aws'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages/'],
+}
+
+sanity_check_commands = ["aws help"]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/b/BCFtools/BCFtools-1.19-GCC-13.2.0.eb b/easybuild/easyconfigs/b/BCFtools/BCFtools-1.19-GCC-13.2.0.eb
new file mode 100644
index 00000000000..916756784a7
--- /dev/null
+++ b/easybuild/easyconfigs/b/BCFtools/BCFtools-1.19-GCC-13.2.0.eb
@@ -0,0 +1,39 @@
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+#
+# Author: Jonas Demeulemeester
+# The Francis Crick Insitute, London, UK
+
+easyblock = 'ConfigureMake'
+
+name = 'BCFtools'
+version = '1.19'
+
+homepage = 'https://www.htslib.org/'
+description = """Samtools is a suite of programs for interacting with high-throughput sequencing data.
+ BCFtools - Reading/writing BCF2/VCF/gVCF files and calling/filtering/summarising SNP and short indel sequence
+ variants"""
+
+toolchain = {'name': 'GCC', 'version': '13.2.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/samtools/%(namelower)s/releases/download/%(version)s']
+sources = [SOURCELOWER_TAR_BZ2]
+checksums = ['782b5f1bc690415192231e82213b3493b047f45e630dc8ef6f154d6126ab3e68']
+
+dependencies = [
+ ('zlib', '1.2.13'),
+ ('HTSlib', '1.19.1'),
+ ('bzip2', '1.0.8'),
+ ('XZ', '5.4.4'),
+ ('GSL', '2.7'),
+]
+
+configopts = "--with-htslib=$EBROOTHTSLIB --enable-libgsl"
+
+
+sanity_check_paths = {
+ 'files': ['bin/%(namelower)s', 'bin/plot-vcfstats', 'bin/vcfutils.pl'],
+ 'dirs': ['libexec/%(namelower)s'],
+}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/b/BCFtools/BCFtools-1.21-GCC-13.3.0.eb b/easybuild/easyconfigs/b/BCFtools/BCFtools-1.21-GCC-13.3.0.eb
new file mode 100644
index 00000000000..ad508758ba5
--- /dev/null
+++ b/easybuild/easyconfigs/b/BCFtools/BCFtools-1.21-GCC-13.3.0.eb
@@ -0,0 +1,40 @@
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+#
+# Author: Jonas Demeulemeester
+# The Francis Crick Insitute, London, UK
+# Updated to 1.21 jpecar / EMBL
+
+easyblock = 'ConfigureMake'
+
+name = 'BCFtools'
+version = '1.21'
+
+homepage = 'https://www.htslib.org/'
+description = """Samtools is a suite of programs for interacting with high-throughput sequencing data.
+ BCFtools - Reading/writing BCF2/VCF/gVCF files and calling/filtering/summarising SNP and short indel sequence
+ variants"""
+
+toolchain = {'name': 'GCC', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/samtools/%(namelower)s/releases/download/%(version)s']
+sources = [SOURCELOWER_TAR_BZ2]
+checksums = ['528a4cc1d3555368db75a700b22a3c95da893fd1827f6d304716dfd45ea4e282']
+
+dependencies = [
+ ('zlib', '1.3.1'),
+ ('HTSlib', '1.21'),
+ ('bzip2', '1.0.8'),
+ ('XZ', '5.4.5'),
+ ('GSL', '2.8'),
+]
+
+configopts = "--with-htslib=$EBROOTHTSLIB --enable-libgsl"
+
+
+sanity_check_paths = {
+ 'files': ['bin/%(namelower)s', 'bin/plot-vcfstats', 'bin/vcfutils.pl'],
+ 'dirs': ['libexec/%(namelower)s'],
+}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/b/BEDTools/BEDTools-2.31.1-GCC-13.3.0.eb b/easybuild/easyconfigs/b/BEDTools/BEDTools-2.31.1-GCC-13.3.0.eb
new file mode 100644
index 00000000000..8503277b570
--- /dev/null
+++ b/easybuild/easyconfigs/b/BEDTools/BEDTools-2.31.1-GCC-13.3.0.eb
@@ -0,0 +1,53 @@
+# Author: Maxime Schmitt, University of Luxembourg
+# Author: Adam Huffman, The Francis Crick Institute
+#
+# Based on the work of: Pablo Escobar Lopez
+# Swiss Institute of Bioinformatics (SIB)
+# Biozentrum - University of Basel
+
+easyblock = 'MakeCp'
+
+name = 'BEDTools'
+version = '2.31.1'
+
+homepage = 'https://bedtools.readthedocs.io/'
+description = """BEDTools: a powerful toolset for genome arithmetic.
+The BEDTools utilities allow one to address common genomics tasks such as finding feature overlaps and
+computing coverage.
+The utilities are largely based on four widely-used file formats: BED, GFF/GTF, VCF, and SAM/BAM."""
+
+toolchain = {'name': 'GCC', 'version': '13.3.0'}
+
+source_urls = ['https://github.com/arq5x/bedtools2/archive/refs/tags/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['79a1ba318d309f4e74bfa74258b73ef578dccb1045e270998d7fe9da9f43a50e']
+
+builddependencies = [
+ ('Python', '3.12.3'),
+]
+dependencies = [
+ ('XZ', '5.4.5'),
+ ('zlib', '1.3.1'),
+ ('bzip2', '1.0.8'),
+ ('BamTools', '2.5.2'),
+]
+
+buildopts = 'CXX="$CXX"'
+
+files_to_copy = [
+ 'bin',
+ 'docs',
+ 'data',
+ 'genomes',
+ 'scripts',
+ 'test',
+]
+
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in ['bedtools', 'pairToBed', 'mergeBed', 'bedToBam', 'fastaFromBed']],
+ 'dirs': files_to_copy,
+}
+
+sanity_check_commands = ['%(namelower)s --help']
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/b/BGEN-enkre/3rd-party-removal.patch b/easybuild/easyconfigs/b/BGEN-enkre/3rd-party-removal.patch
new file mode 100644
index 00000000000..83f35651997
--- /dev/null
+++ b/easybuild/easyconfigs/b/BGEN-enkre/3rd-party-removal.patch
@@ -0,0 +1,176 @@
+Removal of sqlite3, boost and zstd from 3-party modules
+Author: J. Sassmannshausen
+diff --git a/bgen.tgz.orig/3rd_party/wscript b/bgen.tgz/3rd_party/wscript
+index 220728a..e69de29 100644
+--- a/bgen.tgz.orig/3rd_party/wscript
++++ b/bgen.tgz/3rd_party/wscript
+@@ -1,2 +0,0 @@
+-def build( bld ):
+- bld.recurse( [ 'boost_1_55_0', 'sqlite3', 'zstd-1.1.0' ] )
+diff --git a/bgen.tgz.orig/Makefile b/bgen.tgz/Makefile
+index a7b0ac8..c62ac16 100644
+--- a/bgen.tgz.orig/Makefile
++++ b/bgen.tgz/Makefile
+@@ -1,14 +1,9 @@
+ FLAGS = -g -std=c++11 -lz \
+ -I genfile/include \
+ -I db/include \
+--I 3rd_party/boost_1_55_0 \
+--I 3rd_party/zstd-1.1.0 \
+--I 3rd_party/zstd-1.1.0/lib \
+--I 3rd_party/zstd-1.1.0/lib/common \
+--I 3rd_party/zstd-1.1.0/lib/compress \
+--I 3rd_party/zstd-1.1.0/lib/decompress \
+--I 3rd_party/sqlite3 \
+--I include/3rd_party/sqlite3 \
++-I ${EBBOST}/include \
++-I ${EBDEVELZSTD}/include \
++-I ${EBSQLITE3}/include \
+ -D SQLITE_ENABLE_COLUMN_METADATA \
+ -D SQLITE_ENABLE_STAT4 \
+ -D SQLITE_MAX_EXPR_DEPTH=10000 \
+diff --git a/bgen.tgz.orig/db/include/db/SQLStatement.hpp b/bgen.tgz/db/include/db/SQLStatement.hpp
+index e107bd2..fca5957 100644
+--- a/bgen.tgz.orig/db/include/db/SQLStatement.hpp
++++ b/bgen.tgz/db/include/db/SQLStatement.hpp
+@@ -12,7 +12,7 @@
+ #include
+ #include
+ #include
+-#include "sqlite3/sqlite3.h"
++#include "sqlite3.h"
+ #include "db/SQLite3Connection.hpp"
+
+ namespace db {
+diff --git a/bgen.tgz.orig/db/include/db/SQLite3Connection.hpp b/bgen.tgz/db/include/db/SQLite3Connection.hpp
+index b4bd219..cfbbd3a 100644
+--- a/bgen.tgz.orig/db/include/db/SQLite3Connection.hpp
++++ b/bgen.tgz/db/include/db/SQLite3Connection.hpp
+@@ -10,7 +10,7 @@
+ #include
+ #include
+ #include
+-#include "sqlite3/sqlite3.h"
++#include "sqlite3.h"
+ #include "db/Connection.hpp"
+ #include "db/Transaction.hpp"
+ #include "db/Error.hpp"
+diff --git a/bgen.tgz.orig/db/include/db/SQLite3Statement.hpp b/bgen.tgz/db/include/db/SQLite3Statement.hpp
+index d41a710..76dbfb6 100644
+--- a/bgen.tgz.orig/db/include/db/SQLite3Statement.hpp
++++ b/bgen.tgz/db/include/db/SQLite3Statement.hpp
+@@ -11,7 +11,7 @@
+ #include
+ #include
+
+-#include "sqlite3/sqlite3.h"
++#include "sqlite3.h"
+ #include "db/SQLite3Connection.hpp"
+ #include "db/SQLStatement.hpp"
+
+diff --git a/bgen.tgz.orig/db/src/SQLStatement.cpp b/bgen.tgz/db/src/SQLStatement.cpp
+index 60168c6..32576ca 100644
+--- a/bgen.tgz.orig/db/src/SQLStatement.cpp
++++ b/bgen.tgz/db/src/SQLStatement.cpp
+@@ -7,7 +7,7 @@
+ #include
+ #include
+ #include
+-#include "sqlite3/sqlite3.h"
++#include "sqlite3.h"
+ #include "db/SQLStatement.hpp"
+
+ namespace db {
+diff --git a/bgen.tgz.orig/db/src/SQLite3Statement.cpp b/bgen.tgz/db/src/SQLite3Statement.cpp
+index 84e0658..03b3d5e 100644
+--- a/bgen.tgz.orig/db/src/SQLite3Statement.cpp
++++ b/bgen.tgz/db/src/SQLite3Statement.cpp
+@@ -9,7 +9,7 @@
+ #include
+ #include
+ #include
+-#include "sqlite3/sqlite3.h"
++#include "sqlite3.h"
+ #include "db/SQLite3Connection.hpp"
+ #include "db/SQLStatement.hpp"
+ #include "db/SQLite3Statement.hpp"
+diff --git a/bgen.tgz.orig/db/wscript b/bgen.tgz/db/wscript
+index 7b0b617..a3861f0 100644
+--- a/bgen.tgz.orig/db/wscript
++++ b/bgen.tgz/db/wscript
+@@ -5,8 +5,8 @@ def build( bld ):
+ bld.stlib(
+ target = 'db',
+ source = sources,
+- includes='./include',
++ includes='${EBSQLITE}/include ./include',
+ cxxflags = [],
+ use = 'boost sqlite3',
+- export_includes = './include'
++ export_includes = '${EBSQLITE}/include ./include'
+ )
+diff --git a/bgen.tgz.orig/wscript b/bgen.tgz/wscript
+index a6385d9..47b9fc9 100644
+--- a/bgen.tgz.orig/wscript
++++ b/bgen.tgz/wscript
+@@ -63,7 +63,7 @@ def build( bld ):
+ use = 'zlib zstd sqlite3 db',
+ export_includes = 'genfile/include'
+ )
+- bld.recurse( [ '3rd_party', 'appcontext', 'genfile', 'db', 'apps', 'example', 'test', 'R' ] )
++ bld.recurse( [ 'appcontext', 'genfile', 'db', 'apps', 'example', 'test', 'R' ] )
+ # Copy files into rbgen package directory
+ for source in bgen_sources:
+ bld( rule = 'cp ${SRC} ${TGT}', source = source, target = 'R/rbgen/src/bgen/' + os.path.basename( source.abspath() ), always = True )
+@@ -126,12 +126,12 @@ class ReleaseBuilder:
+ shutil.copytree( 'R/package/', rbgen_dir )
+ os.makedirs( os.path.join( rbgen_dir, "src", "include" ))
+ os.makedirs( os.path.join( rbgen_dir, "src", "include", "boost" ))
+- os.makedirs( os.path.join( rbgen_dir, "src", "include", "zstd-1.1.0" ))
++ os.makedirs( os.path.join( rbgen_dir, "src", "include", "zstd" ))
+ os.makedirs( os.path.join( rbgen_dir, "src", "db" ))
+ os.makedirs( os.path.join( rbgen_dir, "src", "bgen" ))
+ os.makedirs( os.path.join( rbgen_dir, "src", "boost" ))
+ os.makedirs( os.path.join( rbgen_dir, "src", "sqlite3" ))
+- os.makedirs( os.path.join( rbgen_dir, "src", "zstd-1.1.0" ))
++ os.makedirs( os.path.join( rbgen_dir, "src", "zstd" ))
+
+ # Copy source files in
+ from glob import glob
+@@ -141,11 +141,11 @@ class ReleaseBuilder:
+ for filename in glob( 'db/src/*.cpp' ):
+ shutil.copy( filename, os.path.join( rbgen_dir, "src", "db", os.path.basename( filename ) ) )
+
+- for filename in glob( '3rd_party/sqlite3/sqlite3/sqlite3.c' ):
+- shutil.copy( filename, os.path.join( rbgen_dir, "src", "sqlite3", os.path.basename( filename ) ) )
++# for filename in glob( '3rd_party/sqlite3/sqlite3/sqlite3.c' ):
++# shutil.copy( filename, os.path.join( rbgen_dir, "src", "sqlite3", os.path.basename( filename ) ) )
+
+- for filename in glob( '3rd_party/zstd-1.1.0/lib/common/*.c' ) + glob( '3rd_party/zstd-1.1.0/lib/compress/*.c' ) + glob( '3rd_party/zstd-1.1.0/lib/decompress/*.c' ):
+- shutil.copy( filename, os.path.join( rbgen_dir, "src", "zstd-1.1.0", os.path.basename( filename ) ) )
++# for filename in glob( '3rd_party/zstd-1.1.0/lib/common/*.c' ) + glob( '3rd_party/zstd-1.1.0/lib/compress/*.c' ) + glob( '3rd_party/zstd-1.1.0/lib/decompress/*.c' ):
++# shutil.copy( filename, os.path.join( rbgen_dir, "src", "zstd-1.1.0", os.path.basename( filename ) ) )
+
+ boostGlobs = [
+ 'libs/system/src/*.cpp',
+@@ -160,14 +160,14 @@ class ReleaseBuilder:
+ 'libs/chrono/src/*.cpp',
+ ]
+
+- for pattern in boostGlobs:
+- for filename in glob( '3rd_party/boost_1_55_0/%s' % pattern ):
+- shutil.copy( filename, os.path.join( rbgen_dir, "src", "boost", os.path.basename( filename ) ) )
++# for pattern in boostGlobs:
++# for filename in glob( '3rd_party/boost_1_55_0/%s' % pattern ):
++# shutil.copy( filename, os.path.join( rbgen_dir, "src", "boost", os.path.basename( filename ) ) )
+
+ include_paths = [
+- "3rd_party/boost_1_55_0/boost/",
+- "3rd_party/zstd-1.1.0/",
+- "3rd_party/sqlite3/",
++ "${EBBOOST}",
++ "${EBROOTZSTD}",
++ "${EBROOTSQLITE}",
+ "genfile/include/genfile",
+ "db/include/db"
+ ]
diff --git a/easybuild/easyconfigs/b/BGEN-enkre/BGEN-enkre-1.1.7-GCC-11.2.0.eb b/easybuild/easyconfigs/b/BGEN-enkre/BGEN-enkre-1.1.7-GCC-11.2.0.eb
new file mode 100644
index 00000000000..b0c0bc1be02
--- /dev/null
+++ b/easybuild/easyconfigs/b/BGEN-enkre/BGEN-enkre-1.1.7-GCC-11.2.0.eb
@@ -0,0 +1,74 @@
+# Contribution from the NIHR Biomedical Research Centre
+# Guy's and St Thomas' NHS Foundation Trust and King's College London
+# uploaded by J. Sassmannshausen
+# we recommend to use --download-timeout=1000 when fetching the files
+
+easyblock = 'CmdCp'
+
+name = 'BGEN-enkre'
+version = '1.1.7'
+
+homepage = 'https://enkre.net/cgi-bin/code/bgen/dir?ci=trunk'
+description = """This repository contains a reference implementation
+of the BGEN format, written in C++. The library can be used as the
+basis for BGEN support in other software, or as a reference for
+developers writing their own implementations of the BGEN format.
+Please cite:
+Band, G. and Marchini, J., "BGEN: a binary file format for imputed genotype and haplotype data",
+bioArxiv 308296; doi: https://doi.org/10.1101/308296
+"""
+
+toolchain = {'name': 'GCC', 'version': '11.2.0'}
+
+source_urls = ['https://code.enkre.net/bgen/tarball/v%(version)s/']
+sources = ['v%(version)s.tgz']
+patches = [
+ '3rd-party-removal.patch',
+ 'BGEN-enkre_streampos.patch',
+]
+
+checksums = [
+ ('6476b077af6c8e98e85fd7e09f58cb3fdf143ff91850c984248fd4dc2d74a8c3', # v1.1.7.tgz
+ 'b922ac22c1c0e365d0de6054f6ce2ad911bc81db5bcd8ca915bae750f57bd0a7'),
+ '0269b91d21976f38a9cf9bf7811375d16bf35be587d903ab1d846b2001b7d767', # 3rd-party-removal.patch
+ '61c05ae5f7363d5b7b6015f0a015b93f149dbda4b23b9f48f9517a6ce93d5869', # BGEN-enkre_streampos.patch
+]
+
+builddependencies = [
+ ('binutils', '2.37'),
+ ('Python', '3.9.6'),
+]
+
+dependencies = [
+ ('SQLite', '3.36'),
+ ('zstd', '1.5.0'),
+ ('Boost', '1.55.0'),
+]
+
+cmds_map = [
+ ('.*', "./waf configure && echo LIB_zstd = [\\'zstd\\'] >> build/c4che/_cache.py &&"
+ " echo LIB_sqlite3 = [\\'sqlite3\\'] >> build/c4che/_cache.py &&"
+ "echo LIB_boost = [\\'boost_system\\', \\'boost_filesystem\\', \\'boost_thread\\', \\'boost_timer\\'] "
+ " >> build/c4che/_cache.py && ./waf"),
+]
+
+files_to_copy = [
+ (['build/apps/edit-bgen', 'build/apps/bgenix', 'build/apps/cat-bgen'], 'bin'),
+ (['build/db/libdb.a', 'build/libbgen.a'], 'lib'),
+ (['genfile/include/*', 'db/include/*'], 'include'),
+]
+
+postinstallcmds = ['./build/test/unit/test_bgen']
+
+sanity_check_paths = {
+ 'files': ['bin/edit-bgen', 'bin/bgenix', 'bin/cat-bgen'],
+ 'dirs': ['bin', 'lib', 'include'],
+}
+
+sanity_check_commands = [
+ 'bgenix -help',
+ 'cat-bgen -help',
+ 'edit-bgen -help',
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/b/BGEN-enkre/BGEN-enkre_streampos.patch b/easybuild/easyconfigs/b/BGEN-enkre/BGEN-enkre_streampos.patch
new file mode 100644
index 00000000000..5d7c0e471c3
--- /dev/null
+++ b/easybuild/easyconfigs/b/BGEN-enkre/BGEN-enkre_streampos.patch
@@ -0,0 +1,12 @@
+diff -ruN 1.1.7.tgz.orig/src/View.cpp 1.1.7.tgz/src/View.cpp
+--- 1.1.7.tgz.orig/src/View.cpp 2020-06-29 01:19:43.000000000 -0700
++++ 1.1.7.tgz/src/View.cpp 2022-06-06 18:05:10.650577000 -0700
+@@ -177,7 +177,7 @@
+
+ // get file size
+ {
+- std::ios::streampos origin = m_stream->tellg() ;
++ std::streampos origin = m_stream->tellg() ;
+ m_stream->seekg( 0, std::ios::end ) ;
+ m_file_metadata.size = m_stream->tellg() - origin ;
+ m_stream->seekg( 0, std::ios::beg ) ;
diff --git a/easybuild/easyconfigs/b/BLAST+/BLAST+-2.13.0-gompi-2022a.eb b/easybuild/easyconfigs/b/BLAST+/BLAST+-2.13.0-gompi-2022a.eb
index fb96f2a9897..4e9e9d4d83e 100644
--- a/easybuild/easyconfigs/b/BLAST+/BLAST+-2.13.0-gompi-2022a.eb
+++ b/easybuild/easyconfigs/b/BLAST+/BLAST+-2.13.0-gompi-2022a.eb
@@ -27,6 +27,8 @@ source_urls = ['https://ftp.ncbi.nlm.nih.gov/blast/executables/%(namelower)s/%(v
sources = ['ncbi-blast-%(version)s+-src.tar.gz']
checksums = ['89553714d133daf28c477f83d333794b3c62e4148408c072a1b4620e5ec4feb2']
+builddependencies = [('cpio', '2.14')]
+
dependencies = [
('zlib', '1.2.12'),
('bzip2', '1.0.8'),
@@ -38,7 +40,10 @@ dependencies = [
('LMDB', '0.9.29'),
]
-configopts = "--with-64 --with-z=$EBROOTZLIB --with-bz2=$EBROOTBZIP2 "
+# remove line that prepends system paths to $PATH from configure script
+preconfigopts = r'sed -i "s|^PATH=\(.*\)$|#PATH=\1 |" %(start_dir)s/src/build-system/configure && '
+
+configopts = "--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"
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
index 142ad4eb6aa..a4033efcdde 100644
--- a/easybuild/easyconfigs/b/BLAST+/BLAST+-2.14.0-gompi-2022b.eb
+++ b/easybuild/easyconfigs/b/BLAST+/BLAST+-2.14.0-gompi-2022b.eb
@@ -27,6 +27,8 @@ source_urls = ['https://ftp.ncbi.nlm.nih.gov/blast/executables/%(namelower)s/%(v
sources = ['ncbi-blast-%(version)s+-src.tar.gz']
checksums = ['bf477f1b0c3b82f0b7a7094bf003a9a83e37e3b0716c1df799060c4feab17500']
+builddependencies = [('cpio', '2.15')]
+
dependencies = [
('zlib', '1.2.12'),
('bzip2', '1.0.8'),
@@ -38,7 +40,10 @@ dependencies = [
('LMDB', '0.9.29'),
]
-configopts = "--with-64 --with-z=$EBROOTZLIB --with-bz2=$EBROOTBZIP2 "
+# remove line that prepends system paths to $PATH from configure script
+preconfigopts = r'sed -i "s|^PATH=\(.*\)$|#PATH=\1 |" %(start_dir)s/src/build-system/configure && '
+
+configopts = "--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"
diff --git a/easybuild/easyconfigs/b/BLAST+/BLAST+-2.14.1-gompi-2023a.eb b/easybuild/easyconfigs/b/BLAST+/BLAST+-2.14.1-gompi-2023a.eb
index 47c8e2d2ef6..844a9854825 100644
--- a/easybuild/easyconfigs/b/BLAST+/BLAST+-2.14.1-gompi-2023a.eb
+++ b/easybuild/easyconfigs/b/BLAST+/BLAST+-2.14.1-gompi-2023a.eb
@@ -27,6 +27,8 @@ source_urls = ['https://ftp.ncbi.nlm.nih.gov/blast/executables/%(namelower)s/%(v
sources = ['ncbi-blast-%(version)s+-src.tar.gz']
checksums = ['712c2dbdf0fb13cc1c2d4f4ef5dd1ce4b06c3b57e96dfea8f23e6e99f5b1650e']
+builddependencies = [('cpio', '2.15')]
+
dependencies = [
('zlib', '1.2.13'),
('bzip2', '1.0.8'),
@@ -38,7 +40,10 @@ dependencies = [
('LMDB', '0.9.31'),
]
-configopts = "--with-64 --with-z=$EBROOTZLIB --with-bz2=$EBROOTBZIP2 "
+# remove line that prepends system paths to $PATH from configure script
+preconfigopts = r'sed -i "s|^PATH=\(.*\)$|#PATH=\1 |" %(start_dir)s/src/build-system/configure && '
+
+configopts = "--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"
diff --git a/easybuild/easyconfigs/b/BLAT/BLAT-3.7-GCC-12.3.0.eb b/easybuild/easyconfigs/b/BLAT/BLAT-3.7-GCC-12.3.0.eb
new file mode 100644
index 00000000000..ba6cac7d238
--- /dev/null
+++ b/easybuild/easyconfigs/b/BLAT/BLAT-3.7-GCC-12.3.0.eb
@@ -0,0 +1,55 @@
+##
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+#
+# Copyright:: Copyright 2012-2013 The Cyprus Institute
+# Authors:: Andreas Panteli , Thekla Loizou
+# Contributors:: Alex Domingo (Vrije Universiteit Brussel)
+# License:: MIT/GPL
+#
+##
+
+name = 'BLAT'
+version = '3.7'
+
+homepage = 'https://genome.ucsc.edu/goldenPath/help/blatSpec.html'
+description = """BLAT on DNA is designed to quickly find sequences of 95% and
+greater similarity of length 25 bases or more."""
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://genome-test.gi.ucsc.edu/~kent/src/']
+sources = ['%%(namelower)sSrc%s.zip' % ''.join(version.split('.'))]
+patches = ['BLAT-%(version)s_mend-tests.patch']
+checksums = [
+ {'blatSrc37.zip': '88ee2b272d42ab77687c61d200b11f1d58443951069feb7e10226a2509f84cf2'},
+ {'BLAT-3.7_mend-tests.patch': '1f42c7fadf7676a5cc3a2016f70089c3541aa1d53816cf86072682c44cf311a6'},
+]
+
+# BLAT relies on a bundled old version of HTSlib. We use the bundled library
+# because it is statically linked and the newer HTSlib in this toolchain is not
+# API compatible with it.
+dependencies = [
+ ('freetype', '2.13.0'),
+ ('libiconv', '1.17'),
+ ('libpng', '1.6.39'),
+ ('MariaDB', '11.6.0'),
+ ('OpenSSL', '1.1', '', SYSTEM),
+ ('util-linux', '2.39'),
+ ('zlib', '1.2.13'),
+]
+
+pretestopts = 'PATH="%(builddir)s/blatSrc/bin:$PATH"'
+runtest = 'test'
+
+_blat_bins = ["blat", "faToNib", "faToTwoBit", "gfClient", "gfServer", "nibFrag", "pslPretty",
+ "pslReps", "pslSort", "twoBitInfo", "twoBitToFa"]
+
+files_to_copy = [(["bin/%s" % x for x in _blat_bins] + ["webBlat/webBlat"], 'bin')]
+
+sanity_check_paths = {
+ 'files': ["bin/%s" % x for x in _blat_bins + ["webBlat"]],
+ 'dirs': [],
+}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/b/BLIS/BLIS-0.9.0-GCC-13.2.0.eb b/easybuild/easyconfigs/b/BLIS/BLIS-0.9.0-GCC-13.2.0.eb
index 17fa98dc916..0b0e5bb7de7 100644
--- a/easybuild/easyconfigs/b/BLIS/BLIS-0.9.0-GCC-13.2.0.eb
+++ b/easybuild/easyconfigs/b/BLIS/BLIS-0.9.0-GCC-13.2.0.eb
@@ -16,12 +16,16 @@ patches = [
'%(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',
+ {'0.9.0.tar.gz': '1135f664be7355427b91025075562805cdc6cc730d3173f83533b2c5dcc2f308'},
+ {'BLIS-0.9.0_disable_power9_kernels.patch': 'ed7a326bc5c5c21c42faefbec2fd7be609d1c7236981b466475edace39307279'},
+ {'BLIS-0.9.0_enable_ppc_autodetect.patch': 'f373fb252c0d14036fb631f048091976cceb02abb3e570a97fbaeac2fbb12328'},
]
+
+if ARCH == "riscv64":
+ patches += ['BLIS-0.9.0_add-riscv-support.patch']
+ checksums += [{'BLIS-0.9.0_add-riscv-support.patch':
+ '3610fa2e9f0e10c9e921865eb65966748392acb9cd8b17e43775c5a92f8d9f39'}]
+
builddependencies = [
('Python', '3.11.5'),
('Perl', '5.38.0'),
diff --git a/easybuild/easyconfigs/b/BLIS/BLIS-0.9.0_add-riscv-support.patch b/easybuild/easyconfigs/b/BLIS/BLIS-0.9.0_add-riscv-support.patch
new file mode 100644
index 00000000000..83cdd2b3b0d
--- /dev/null
+++ b/easybuild/easyconfigs/b/BLIS/BLIS-0.9.0_add-riscv-support.patch
@@ -0,0 +1,3999 @@
+Backport RISC-V support to version 0.9.0 by using a combination of
+(slightly modified) versions of the following pull requests:
+https://github.com/flame/blis/pull/693
+https://github.com/flame/blis/pull/750
+
+Bob Dröge (University of Groningen)
+
+diff --git a/CREDITS b/CREDITS
+index 9cc846d5c..d53c406e7 100644
+--- a/CREDITS
++++ b/CREDITS
+@@ -98,6 +98,7 @@ but many others have contributed code, ideas, and feedback, including
+ Karl Rupp @karlrupp
+ Martin Schatz (The University of Texas at Austin)
+ Nico Schlömer @nschloe
++ Angelika Schwarz @angsch
+ Rene Sitt
+ Tony Skjellum @tonyskjellum (The University of Tennessee at Chattanooga)
+ Mikhail Smelyanskiy (Intel, Parallel Computing Lab)
+diff --git a/config/rv32i/bli_cntx_init_rv32i.c b/config/rv32i/bli_cntx_init_rv32i.c
+new file mode 100644
+index 000000000..84fd2dca6
+--- /dev/null
++++ b/config/rv32i/bli_cntx_init_rv32i.c
+@@ -0,0 +1,44 @@
++/*
++
++ BLIS
++ An object-based framework for developing high-performance BLAS-like
++ libraries.
++
++ Copyright (C) 2014, The University of Texas at Austin
++
++ Redistribution and use in source and binary forms, with or without
++ modification, are permitted provided that the following conditions are
++ met:
++ - Redistributions of source code must retain the above copyright
++ notice, this list of conditions and the following disclaimer.
++ - Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in the
++ documentation and/or other materials provided with the distribution.
++ - Neither the name(s) of the copyright holder(s) nor the names of its
++ contributors may be used to endorse or promote products derived
++ from this software without specific prior written permission.
++
++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
++ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
++ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
++ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++
++*/
++
++#include "blis.h"
++
++
++void bli_cntx_init_rv32i( cntx_t* cntx )
++{
++ // Set default kernel blocksizes and functions.
++ bli_cntx_init_rv32i_ref( cntx );
++
++ // -------------------------------------------------------------------------
++}
+diff --git a/config/rv32i/bli_kernel_defs_rv32i.h b/config/rv32i/bli_kernel_defs_rv32i.h
+new file mode 100644
+index 000000000..fe51f998d
+--- /dev/null
++++ b/config/rv32i/bli_kernel_defs_rv32i.h
+@@ -0,0 +1,43 @@
++/*
++
++ BLIS
++ An object-based framework for developing high-performance BLAS-like
++ libraries.
++
++ Copyright (C) 2022, The University of Texas at Austin
++
++ Redistribution and use in source and binary forms, with or without
++ modification, are permitted provided that the following conditions are
++ met:
++ - Redistributions of source code must retain the above copyright
++ notice, this list of conditions and the following disclaimer.
++ - Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in the
++ documentation and/or other materials provided with the distribution.
++ - Neither the name(s) of the copyright holder(s) nor the names of its
++ contributors may be used to endorse or promote products derived
++ from this software without specific prior written permission.
++
++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
++ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
++ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
++ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++
++*/
++
++//#ifndef BLIS_KERNEL_DEFS_H
++//#define BLIS_KERNEL_DEFS_H
++
++
++// -- REGISTER BLOCK SIZES (FOR REFERENCE KERNELS) ----------------------------
++
++// Fall through to generic sizes
++
++//#endif
+diff --git a/config/rv32i/make_defs.mk b/config/rv32i/make_defs.mk
+new file mode 100644
+index 000000000..40849ce66
+--- /dev/null
++++ b/config/rv32i/make_defs.mk
+@@ -0,0 +1,94 @@
++#
++#
++# BLIS
++# An object-based framework for developing high-performance BLAS-like
++# libraries.
++#
++# Copyright (C) 2014, The University of Texas at Austin
++#
++# Redistribution and use in source and binary forms, with or without
++# modification, are permitted provided that the following conditions are
++# met:
++# - Redistributions of source code must retain the above copyright
++# notice, this list of conditions and the following disclaimer.
++# - Redistributions in binary form must reproduce the above copyright
++# notice, this list of conditions and the following disclaimer in the
++# documentation and/or other materials provided with the distribution.
++# - Neither the name(s) of the copyright holder(s) nor the names of its
++# contributors may be used to endorse or promote products derived
++# from this software without specific prior written permission.
++#
++# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
++# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
++# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
++# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++#
++#
++
++
++# Declare the name of the current configuration and add it to the
++# running list of configurations included by common.mk.
++THIS_CONFIG := rv32i
++#CONFIGS_INCL += $(THIS_CONFIG)
++
++#
++# --- Determine the C compiler and related flags ---
++#
++
++# NOTE: The build system will append these variables with various
++# general-purpose/configuration-agnostic flags in common.mk. You
++# may specify additional flags here as needed.
++CPPROCFLAGS := -DRISCV_SIZE=32
++# Atomic instructions must be enabled either via hardware
++# (-march=rv32ia) or by linking against libatomic
++CMISCFLAGS := -march=$(shell $(CC) -E frame/base/bli_riscv_detect_arch.h | grep '^[^\#]') -mabi=ilp32
++CPICFLAGS :=
++CWARNFLAGS := -Wall -Wno-unused-function -Wfatal-errors
++
++# In case the A extension is not available
++LDFLAGS += -latomic
++
++ifneq ($(DEBUG_TYPE),off)
++CDBGFLAGS := -g
++endif
++
++ifeq ($(DEBUG_TYPE),noopt)
++COPTFLAGS := -O0
++else
++COPTFLAGS := -O2
++endif
++
++# Flags specific to optimized kernels.
++CKOPTFLAGS := $(COPTFLAGS) -O3
++ifeq ($(CC_VENDOR),gcc)
++CKVECFLAGS :=
++else
++ifeq ($(CC_VENDOR),clang)
++CKVECFLAGS :=
++else
++$(error gcc or clang is required for this configuration.)
++endif
++endif
++
++# Flags specific to reference kernels.
++CROPTFLAGS := $(CKOPTFLAGS)
++ifeq ($(CC_VENDOR),gcc)
++CRVECFLAGS := $(CKVECFLAGS) -funsafe-math-optimizations -ffp-contract=fast
++else
++ifeq ($(CC_VENDOR),clang)
++CRVECFLAGS := $(CKVECFLAGS) -funsafe-math-optimizations -ffp-contract=fast
++else
++CRVECFLAGS := $(CKVECFLAGS)
++endif
++endif
++
++# Store all of the variables here to new variables containing the
++# configuration name.
++$(eval $(call store-make-defs,$(THIS_CONFIG)))
+diff --git a/config/rv32iv/bli_cntx_init_rv32iv.c b/config/rv32iv/bli_cntx_init_rv32iv.c
+new file mode 100644
+index 000000000..dd10a3655
+--- /dev/null
++++ b/config/rv32iv/bli_cntx_init_rv32iv.c
+@@ -0,0 +1,109 @@
++/*
++
++ BLIS
++ An object-based framework for developing high-performance BLAS-like
++ libraries.
++
++ Copyright (C) 2014, The University of Texas at Austin
++
++ Redistribution and use in source and binary forms, with or without
++ modification, are permitted provided that the following conditions are
++ met:
++ - Redistributions of source code must retain the above copyright
++ notice, this list of conditions and the following disclaimer.
++ - Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in the
++ documentation and/or other materials provided with the distribution.
++ - Neither the name(s) of the copyright holder(s) nor the names of its
++ contributors may be used to endorse or promote products derived
++ from this software without specific prior written permission.
++
++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
++ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
++ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
++ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++
++*/
++
++#include "../../kernels/rviv/3/bli_rviv_utils.h"
++
++void bli_cntx_init_rv32iv( cntx_t* cntx )
++{
++ blksz_t blkszs[ BLIS_NUM_BLKSZS ];
++
++ // Set default kernel blocksizes and functions.
++ bli_cntx_init_rv32iv_ref( cntx );
++
++ // -------------------------------------------------------------------------
++
++ // A reasonable assumptions for application cores is VLEN >= 128 bits, i.e.,
++ // v >= 4. Embedded cores, however, may implement the minimal configuration,
++ // which allows VLEN = 32 bits. Here, we assume VLEN >= 128 and otherwise
++ // fall back to the reference kernels.
++ const uint32_t v = get_vlenb() / sizeof(float);
++
++ if ( v >= 4 )
++ {
++ const uint32_t mr_s = 4 * v;
++ const uint32_t mr_d = 2 * v;
++ const uint32_t mr_c = 2 * v;
++ const uint32_t mr_z = v;
++
++ // Update the context with optimized native gemm micro-kernels.
++ bli_cntx_set_ukrs
++ (
++ cntx,
++
++ // level-3
++ BLIS_GEMM_UKR, BLIS_FLOAT, bli_sgemm_rviv_4vx4,
++ BLIS_GEMM_UKR, BLIS_DOUBLE, bli_dgemm_rviv_4vx4,
++ BLIS_GEMM_UKR, BLIS_SCOMPLEX, bli_cgemm_rviv_4vx4,
++ BLIS_GEMM_UKR, BLIS_DCOMPLEX, bli_zgemm_rviv_4vx4,
++
++ BLIS_VA_END
++ );
++
++ // Update the context with storage preferences.
++ bli_cntx_set_ukr_prefs
++ (
++ cntx,
++
++ // level-3
++ BLIS_GEMM_UKR_ROW_PREF, BLIS_FLOAT, FALSE,
++ BLIS_GEMM_UKR_ROW_PREF, BLIS_DOUBLE, FALSE,
++ BLIS_GEMM_UKR_ROW_PREF, BLIS_SCOMPLEX, FALSE,
++ BLIS_GEMM_UKR_ROW_PREF, BLIS_DCOMPLEX, FALSE,
++
++ BLIS_VA_END
++ );
++
++ // Initialize level-3 blocksize objects with architecture-specific values.
++ // s d c z
++ bli_blksz_init_easy( &blkszs[ BLIS_MR ], mr_s, mr_d, mr_c, mr_z );
++ bli_blksz_init_easy( &blkszs[ BLIS_NR ], 4, 4, 4, 4 );
++ bli_blksz_init_easy( &blkszs[ BLIS_MC ], 20*mr_s, 20*mr_d, 60*mr_c, 30*mr_z );
++ bli_blksz_init_easy( &blkszs[ BLIS_KC ], 640, 320, 320, 160 );
++ bli_blksz_init_easy( &blkszs[ BLIS_NC ], 3072, 3072, 3072, 3072 );
++
++ bli_cntx_set_blkszs
++ (
++ cntx,
++
++ // level-3
++ BLIS_NC, &blkszs[ BLIS_NC ], BLIS_NR,
++ BLIS_KC, &blkszs[ BLIS_KC ], BLIS_KR,
++ BLIS_MC, &blkszs[ BLIS_MC ], BLIS_MR,
++ BLIS_NR, &blkszs[ BLIS_NR ], BLIS_NR,
++ BLIS_MR, &blkszs[ BLIS_MR ], BLIS_MR,
++
++ BLIS_VA_END
++ );
++ }
++}
+diff --git a/config/rv32iv/bli_kernel_defs_rv32iv.h b/config/rv32iv/bli_kernel_defs_rv32iv.h
+new file mode 100644
+index 000000000..b17989208
+--- /dev/null
++++ b/config/rv32iv/bli_kernel_defs_rv32iv.h
+@@ -0,0 +1,43 @@
++/*
++
++ BLIS
++ An object-based framework for developing high-performance BLAS-like
++ libraries.
++
++ Copyright (C) 2022, The University of Texas at Austin
++
++ Redistribution and use in source and binary forms, with or without
++ modification, are permitted provided that the following conditions are
++ met:
++ - Redistributions of source code must retain the above copyright
++ notice, this list of conditions and the following disclaimer.
++ - Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in the
++ documentation and/or other materials provided with the distribution.
++ - Neither the name(s) of the copyright holder(s) nor the names of its
++ contributors may be used to endorse or promote products derived
++ from this software without specific prior written permission.
++
++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
++ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
++ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
++ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++
++*/
++
++//#ifndef BLIS_KERNEL_DEFS_H
++//#define BLIS_KERNEL_DEFS_H
++
++
++// -- REGISTER BLOCK SIZES (FOR REFERENCE KERNELS) ----------------------------
++
++
++
++//#endif
+diff --git a/config/rv32iv/make_defs.mk b/config/rv32iv/make_defs.mk
+new file mode 100644
+index 000000000..3cef697ac
+--- /dev/null
++++ b/config/rv32iv/make_defs.mk
+@@ -0,0 +1,96 @@
++#
++#
++# BLIS
++# An object-based framework for developing high-performance BLAS-like
++# libraries.
++#
++# Copyright (C) 2014, The University of Texas at Austin
++#
++# Redistribution and use in source and binary forms, with or without
++# modification, are permitted provided that the following conditions are
++# met:
++# - Redistributions of source code must retain the above copyright
++# notice, this list of conditions and the following disclaimer.
++# - Redistributions in binary form must reproduce the above copyright
++# notice, this list of conditions and the following disclaimer in the
++# documentation and/or other materials provided with the distribution.
++# - Neither the name(s) of the copyright holder(s) nor the names of its
++# contributors may be used to endorse or promote products derived
++# from this software without specific prior written permission.
++#
++# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
++# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
++# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
++# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++#
++#
++
++
++# Declare the name of the current configuration and add it to the
++# running list of configurations included by common.mk.
++THIS_CONFIG := rv32iv
++#CONFIGS_INCL += $(THIS_CONFIG)
++
++#
++# --- Determine the C compiler and related flags ---
++#
++
++# NOTE: The build system will append these variables with various
++# general-purpose/configuration-agnostic flags in common.mk. You
++# may specify additional flags here as needed.
++CPPROCFLAGS := -DRISCV_SIZE=32
++# Atomic instructions must be enabled either via hardware
++# (-march=rv32iav) or by linking against libatomic
++CMISCFLAGS := -march=$(shell $(CC) -DFORCE_RISCV_VECTOR -E frame/base/bli_riscv_detect_arch.h | grep '^[^\#]') -mabi=ilp32d
++CPICFLAGS :=
++CWARNFLAGS := -Wall -Wno-unused-function -Wfatal-errors
++
++# In case the A extension is not available
++LDFLAGS += -latomic
++
++ifneq ($(DEBUG_TYPE),off)
++CDBGFLAGS := -g
++endif
++
++ifeq ($(DEBUG_TYPE),noopt)
++COPTFLAGS := -O0
++else
++COPTFLAGS := -O0
++endif
++
++# Flags specific to optimized kernels.
++CKOPTFLAGS := $(COPTFLAGS) -O3
++ifeq ($(CC_VENDOR),gcc)
++CKVECFLAGS :=
++else
++ifeq ($(CC_VENDOR),clang)
++CKVECFLAGS :=
++else
++$(error gcc or clang is required for this configuration.)
++endif
++endif
++
++# Flags specific to reference kernels.
++CROPTFLAGS := $(CKOPTFLAGS)
++ifeq ($(CC_VENDOR),gcc)
++# Lower compiler optimization to -O1. At -O3, gcc version 12.0.1 20220505
++# computes offsets for the matrix ab in the ref gemm kernel incorrectly.
++CRVECFLAGS := $(CKVECFLAGS) -O1
++else
++ifeq ($(CC_VENDOR),clang)
++CRVECFLAGS := $(CKVECFLAGS) -funsafe-math-optimizations -ffp-contract=fast
++else
++CRVECFLAGS := $(CKVECFLAGS)
++endif
++endif
++
++# Store all of the variables here to new variables containing the
++# configuration name.
++$(eval $(call store-make-defs,$(THIS_CONFIG)))
+diff --git a/config/rv64i/bli_cntx_init_rv64i.c b/config/rv64i/bli_cntx_init_rv64i.c
+new file mode 100644
+index 000000000..f670e4a57
+--- /dev/null
++++ b/config/rv64i/bli_cntx_init_rv64i.c
+@@ -0,0 +1,44 @@
++/*
++
++ BLIS
++ An object-based framework for developing high-performance BLAS-like
++ libraries.
++
++ Copyright (C) 2014, The University of Texas at Austin
++
++ Redistribution and use in source and binary forms, with or without
++ modification, are permitted provided that the following conditions are
++ met:
++ - Redistributions of source code must retain the above copyright
++ notice, this list of conditions and the following disclaimer.
++ - Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in the
++ documentation and/or other materials provided with the distribution.
++ - Neither the name(s) of the copyright holder(s) nor the names of its
++ contributors may be used to endorse or promote products derived
++ from this software without specific prior written permission.
++
++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
++ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
++ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
++ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++
++*/
++
++#include "blis.h"
++
++
++void bli_cntx_init_rv64i( cntx_t* cntx )
++{
++ // Set default kernel blocksizes and functions.
++ bli_cntx_init_rv64i_ref( cntx );
++
++ // -------------------------------------------------------------------------
++}
+diff --git a/config/rv64i/bli_kernel_defs_rv64i.h b/config/rv64i/bli_kernel_defs_rv64i.h
+new file mode 100644
+index 000000000..fe51f998d
+--- /dev/null
++++ b/config/rv64i/bli_kernel_defs_rv64i.h
+@@ -0,0 +1,43 @@
++/*
++
++ BLIS
++ An object-based framework for developing high-performance BLAS-like
++ libraries.
++
++ Copyright (C) 2022, The University of Texas at Austin
++
++ Redistribution and use in source and binary forms, with or without
++ modification, are permitted provided that the following conditions are
++ met:
++ - Redistributions of source code must retain the above copyright
++ notice, this list of conditions and the following disclaimer.
++ - Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in the
++ documentation and/or other materials provided with the distribution.
++ - Neither the name(s) of the copyright holder(s) nor the names of its
++ contributors may be used to endorse or promote products derived
++ from this software without specific prior written permission.
++
++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
++ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
++ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
++ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++
++*/
++
++//#ifndef BLIS_KERNEL_DEFS_H
++//#define BLIS_KERNEL_DEFS_H
++
++
++// -- REGISTER BLOCK SIZES (FOR REFERENCE KERNELS) ----------------------------
++
++// Fall through to generic sizes
++
++//#endif
+diff --git a/config/rv64i/make_defs.mk b/config/rv64i/make_defs.mk
+new file mode 100644
+index 000000000..6c69dd84e
+--- /dev/null
++++ b/config/rv64i/make_defs.mk
+@@ -0,0 +1,92 @@
++#
++#
++# BLIS
++# An object-based framework for developing high-performance BLAS-like
++# libraries.
++#
++# Copyright (C) 2014, The University of Texas at Austin
++#
++# Redistribution and use in source and binary forms, with or without
++# modification, are permitted provided that the following conditions are
++# met:
++# - Redistributions of source code must retain the above copyright
++# notice, this list of conditions and the following disclaimer.
++# - Redistributions in binary form must reproduce the above copyright
++# notice, this list of conditions and the following disclaimer in the
++# documentation and/or other materials provided with the distribution.
++# - Neither the name(s) of the copyright holder(s) nor the names of its
++# contributors may be used to endorse or promote products derived
++# from this software without specific prior written permission.
++#
++# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
++# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
++# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
++# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++#
++#
++
++
++# Declare the name of the current configuration and add it to the
++# running list of configurations included by common.mk.
++THIS_CONFIG := rv64i
++#CONFIGS_INCL += $(THIS_CONFIG)
++
++#
++# --- Determine the C compiler and related flags ---
++#
++
++# NOTE: The build system will append these variables with various
++# general-purpose/configuration-agnostic flags in common.mk. You
++# may specify additional flags here as needed.
++CPPROCFLAGS := -DRISCV_SIZE=64
++CMISCFLAGS := -march=$(shell $(CC) -E frame/base/bli_riscv_detect_arch.h | grep '^[^\#]') -mabi=lp64
++CPICFLAGS :=
++CWARNFLAGS := -Wall -Wno-unused-function -Wfatal-errors
++
++# In case the A extension is not available
++LDFLAGS += -latomic
++
++ifneq ($(DEBUG_TYPE),off)
++CDBGFLAGS := -g
++endif
++
++ifeq ($(DEBUG_TYPE),noopt)
++COPTFLAGS := -O0
++else
++COPTFLAGS := -O2
++endif
++
++# Flags specific to optimized kernels.
++CKOPTFLAGS := $(COPTFLAGS) -O3
++ifeq ($(CC_VENDOR),gcc)
++CKVECFLAGS :=
++else
++ifeq ($(CC_VENDOR),clang)
++CKVECFLAGS :=
++else
++$(error gcc or clang is required for this configuration.)
++endif
++endif
++
++# Flags specific to reference kernels.
++CROPTFLAGS := $(CKOPTFLAGS)
++ifeq ($(CC_VENDOR),gcc)
++CRVECFLAGS := $(CKVECFLAGS) -funsafe-math-optimizations -ffp-contract=fast
++else
++ifeq ($(CC_VENDOR),clang)
++CRVECFLAGS := $(CKVECFLAGS) -funsafe-math-optimizations -ffp-contract=fast
++else
++CRVECFLAGS := $(CKVECFLAGS)
++endif
++endif
++
++# Store all of the variables here to new variables containing the
++# configuration name.
++$(eval $(call store-make-defs,$(THIS_CONFIG)))
+diff --git a/config/rv64iv/bli_cntx_init_rv64iv.c b/config/rv64iv/bli_cntx_init_rv64iv.c
+new file mode 100644
+index 000000000..eb1f79ebc
+--- /dev/null
++++ b/config/rv64iv/bli_cntx_init_rv64iv.c
+@@ -0,0 +1,114 @@
++/*
++
++ BLIS
++ An object-based framework for developing high-performance BLAS-like
++ libraries.
++
++ Copyright (C) 2014, The University of Texas at Austin
++
++ Redistribution and use in source and binary forms, with or without
++ modification, are permitted provided that the following conditions are
++ met:
++ - Redistributions of source code must retain the above copyright
++ notice, this list of conditions and the following disclaimer.
++ - Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in the
++ documentation and/or other materials provided with the distribution.
++ - Neither the name(s) of the copyright holder(s) nor the names of its
++ contributors may be used to endorse or promote products derived
++ from this software without specific prior written permission.
++
++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
++ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
++ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
++ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++
++*/
++
++#include "../../kernels/rviv/3/bli_rviv_utils.h"
++
++void bli_cntx_init_rv64iv( cntx_t* cntx )
++{
++ blksz_t blkszs[ BLIS_NUM_BLKSZS ];
++
++ // Set default kernel blocksizes and functions.
++ bli_cntx_init_rv64iv_ref( cntx );
++
++ // -------------------------------------------------------------------------
++
++ // A reasonable assumptions for application cores is VLEN >= 128 bits, i.e.,
++ // v >= 4. Embedded cores, however, may implement the minimal configuration,
++ // which allows VLEN = 32 bits. Here, we assume VLEN >= 128 and otherwise
++ // fall back to the reference kernels.
++ const uint32_t v = get_vlenb() / sizeof(float);
++
++ if ( v >= 4 )
++ {
++ const uint32_t mr_s = 4 * v;
++ const uint32_t mr_d = 2 * v;
++ const uint32_t mr_c = 2 * v;
++ const uint32_t mr_z = v;
++
++ // TODO: Register different kernels based on the value
++ // of v to avoid MC becoming too big. (e.g. 2vx8)
++
++ // Update the context with optimized native gemm micro-kernels.
++ bli_cntx_set_ukrs
++ (
++ cntx,
++
++ // level-3
++ BLIS_GEMM_UKR, BLIS_FLOAT, bli_sgemm_rviv_4vx4,
++ BLIS_GEMM_UKR, BLIS_DOUBLE, bli_dgemm_rviv_4vx4,
++ BLIS_GEMM_UKR, BLIS_SCOMPLEX, bli_cgemm_rviv_4vx4,
++ BLIS_GEMM_UKR, BLIS_DCOMPLEX, bli_zgemm_rviv_4vx4,
++
++ BLIS_VA_END
++ );
++
++ // Update the context with storage preferences.
++ bli_cntx_set_ukr_prefs
++ (
++ cntx,
++
++ // level-3
++ BLIS_GEMM_UKR_ROW_PREF, BLIS_FLOAT, FALSE,
++ BLIS_GEMM_UKR_ROW_PREF, BLIS_DOUBLE, FALSE,
++ BLIS_GEMM_UKR_ROW_PREF, BLIS_SCOMPLEX, FALSE,
++ BLIS_GEMM_UKR_ROW_PREF, BLIS_DCOMPLEX, FALSE,
++
++ BLIS_VA_END
++ );
++
++ // Initialize level-3 blocksize objects with architecture-specific values.
++ // s d c z
++ bli_blksz_init_easy( &blkszs[ BLIS_MR ], mr_s, mr_d, mr_c, mr_z );
++ bli_blksz_init_easy( &blkszs[ BLIS_NR ], 4, 4, 4, 4 );
++ bli_blksz_init_easy( &blkszs[ BLIS_MC ], 20*mr_s, 20*mr_d, 60*mr_c, 30*mr_z );
++ bli_blksz_init_easy( &blkszs[ BLIS_KC ], 640, 320, 320, 160 );
++ bli_blksz_init_easy( &blkszs[ BLIS_NC ], 3072, 3072, 3072, 3072 );
++
++ // Update the context with the current architecture's register and cache
++ // blocksizes (and multiples) for native execution.
++ bli_cntx_set_blkszs
++ (
++ cntx,
++
++ // level-3
++ BLIS_NC, &blkszs[ BLIS_NC ], BLIS_NR,
++ BLIS_KC, &blkszs[ BLIS_KC ], BLIS_KR,
++ BLIS_MC, &blkszs[ BLIS_MC ], BLIS_MR,
++ BLIS_NR, &blkszs[ BLIS_NR ], BLIS_NR,
++ BLIS_MR, &blkszs[ BLIS_MR ], BLIS_MR,
++
++ BLIS_VA_END
++ );
++ }
++}
+diff --git a/config/rv64iv/bli_kernel_defs_rv64iv.h b/config/rv64iv/bli_kernel_defs_rv64iv.h
+new file mode 100644
+index 000000000..18ca4030e
+--- /dev/null
++++ b/config/rv64iv/bli_kernel_defs_rv64iv.h
+@@ -0,0 +1,42 @@
++/*
++
++ BLIS
++ An object-based framework for developing high-performance BLAS-like
++ libraries.
++
++ Copyright (C) 2022, The University of Texas at Austin
++
++ Redistribution and use in source and binary forms, with or without
++ modification, are permitted provided that the following conditions are
++ met:
++ - Redistributions of source code must retain the above copyright
++ notice, this list of conditions and the following disclaimer.
++ - Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in the
++ documentation and/or other materials provided with the distribution.
++ - Neither the name(s) of the copyright holder(s) nor the names of its
++ contributors may be used to endorse or promote products derived
++ from this software without specific prior written permission.
++
++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
++ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
++ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
++ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++
++*/
++
++//#ifndef BLIS_KERNEL_DEFS_H
++//#define BLIS_KERNEL_DEFS_H
++
++
++// -- REGISTER BLOCK SIZES (FOR REFERENCE KERNELS) ----------------------------
++
++
++//#endif
+diff --git a/config/rv64iv/make_defs.mk b/config/rv64iv/make_defs.mk
+new file mode 100644
+index 000000000..06545d461
+--- /dev/null
++++ b/config/rv64iv/make_defs.mk
+@@ -0,0 +1,93 @@
++#
++#
++# BLIS
++# An object-based framework for developing high-performance BLAS-like
++# libraries.
++#
++# Copyright (C) 2014, The University of Texas at Austin
++#
++# Redistribution and use in source and binary forms, with or without
++# modification, are permitted provided that the following conditions are
++# met:
++# - Redistributions of source code must retain the above copyright
++# notice, this list of conditions and the following disclaimer.
++# - Redistributions in binary form must reproduce the above copyright
++# notice, this list of conditions and the following disclaimer in the
++# documentation and/or other materials provided with the distribution.
++# - Neither the name(s) of the copyright holder(s) nor the names of its
++# contributors may be used to endorse or promote products derived
++# from this software without specific prior written permission.
++#
++# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
++# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
++# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
++# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++#
++#
++
++
++# Declare the name of the current configuration and add it to the
++# running list of configurations included by common.mk.
++THIS_CONFIG := rv64iv
++#CONFIGS_INCL += $(THIS_CONFIG)
++
++#
++# --- Determine the C compiler and related flags ---
++#
++
++# NOTE: The build system will append these variables with various
++# general-purpose/configuration-agnostic flags in common.mk. You
++# may specify additional flags here as needed.
++CPPROCFLAGS := -DRISCV_SIZE=64
++CMISCFLAGS := -march=$(shell $(CC) -DFORCE_RISCV_VECTOR -E frame/base/bli_riscv_detect_arch.h | grep '^[^\#]') -mabi=lp64d
++CPICFLAGS :=
++CWARNFLAGS := -Wall -Wno-unused-function -Wfatal-errors
++
++# In case the A extension is not available
++LDFLAGS += -latomic
++
++ifneq ($(DEBUG_TYPE),off)
++CDBGFLAGS := -g
++endif
++
++ifeq ($(DEBUG_TYPE),noopt)
++COPTFLAGS := -O0
++else
++COPTFLAGS := -O2 -ftree-vectorize
++endif
++
++# Flags specific to optimized kernels.
++CKOPTFLAGS := $(COPTFLAGS) -O3
++ifeq ($(CC_VENDOR),gcc)
++CKVECFLAGS :=
++else
++ifeq ($(CC_VENDOR),clang)
++CKVECFLAGS :=
++else
++$(error gcc or clang is required for this configuration.)
++endif
++endif
++
++# Flags specific to reference kernels.
++CROPTFLAGS := $(CKOPTFLAGS)
++ifeq ($(CC_VENDOR),gcc)
++# Lower compiler optimization. cinvscalv fails at -O1
++CRVECFLAGS := $(CKVECFLAGS) -O0
++else
++ifeq ($(CC_VENDOR),clang)
++CRVECFLAGS := $(CKVECFLAGS) -funsafe-math-optimizations -ffp-contract=fast
++else
++CRVECFLAGS := $(CKVECFLAGS)
++endif
++endif
++
++# Store all of the variables here to new variables containing the
++# configuration name.
++$(eval $(call store-make-defs,$(THIS_CONFIG)))
+diff --git a/config_registry b/config_registry
+index f25d66e7f..2138ba515 100644
+--- a/config_registry
++++ b/config_registry
+@@ -46,5 +46,11 @@
+ power9: power9
+ bgq: bgq
+
++# RISC-V architectures.
++rv32i: rv32i/rvi
++rv64i: rv64i/rvi
++rv32iv: rv32iv/rviv
++rv64iv: rv64iv/rviv
++
+ # Generic architectures.
+ generic: generic
+diff --git a/configure b/configure
+index a953c25c5..9a8dc8b7f 100755
+--- a/configure
++++ b/configure
+@@ -1230,14 +1230,25 @@ auto_detect()
+ # NOTE: -D_GNU_SOURCE is needed to enable POSIX extensions to
+ # pthreads (i.e., barriers).
+
+- cmd="${cc} ${config_defines} \
++ cmd="${cc} \
+ -DBLIS_CONFIGURETIME_CPUID \
+ ${c_hdr_paths} \
+ -std=c99 -D_GNU_SOURCE \
+- ${cflags} \
+- ${c_src_filepaths} \
+- ${ldflags} \
+- -o ${autodetect_x}"
++ ${cflags}"
++
++ # Special case for RISC-V, whose architecture can be detected with
++ # preprocessor macros alone. This avoids having to run RISC-V binaries
++ # on a cross-compiler host. Returns "generic" if RISC-V not detected.
++ riscv_config=$(${cmd} -E "${dist_path}/frame/base/bli_riscv_cpuid.h" |
++ grep '^[^#]')
++ if [[ $riscv_config != *generic* ]]; then
++ echo "${riscv_config}"
++ return
++ fi
++
++ # Finish command for building executable
++ cmd="${cmd} ${config_defines} ${c_src_filepaths} ${ldflags} \
++ -o ${autodetect_x}"
+
+ if [ "${debug_auto_detect}" == "no" ]; then
+
+diff --git a/frame/base/bli_arch.c b/frame/base/bli_arch.c
+index b697e35f9..5fef62ce1 100644
+--- a/frame/base/bli_arch.c
++++ b/frame/base/bli_arch.c
+@@ -233,6 +233,20 @@
+ id = BLIS_ARCH_BGQ;
+ #endif
+
++ // RISC-V microarchitectures
++ #ifdef BLIS_FAMILY_RV32I
++ id = BLIS_ARCH_RV32I;
++ #endif
++ #ifdef BLIS_FAMILY_RV64I
++ id = BLIS_ARCH_RV64I;
++ #endif
++ #ifdef BLIS_FAMILY_RV32IV
++ id = BLIS_ARCH_RV32IV;
++ #endif
++ #ifdef BLIS_FAMILY_RV64IV
++ id = BLIS_ARCH_RV64IV;
++ #endif
++
+ // Generic microarchitecture.
+ #ifdef BLIS_FAMILY_GENERIC
+ id = BLIS_ARCH_GENERIC;
+@@ -283,6 +297,11 @@
+ "power9",
+ "power7",
+ "bgq",
++
++ "rv32i",
++ "rv64i",
++ "rv32iv",
++ "rv64iv",
+
+ "generic"
+ };
+diff --git a/frame/base/bli_gks.c b/frame/base/bli_gks.c
+index df0abc8ed..c1fd4c866 100644
+--- a/frame/base/bli_gks.c
++++ b/frame/base/bli_gks.c
+@@ -202,6 +202,32 @@
+ bli_cntx_init_bgq_ind );
+ #endif
+
++ // -- RISC-V architectures --------------------------------------------
++
++#ifdef BLIS_CONFIG_RV32I
++ bli_gks_register_cntx( BLIS_ARCH_RV32I, bli_cntx_init_rv32i,
++ bli_cntx_init_rv32i_ref,
++ bli_cntx_init_rv32i_ind );
++#endif
++
++#ifdef BLIS_CONFIG_RV64I
++ bli_gks_register_cntx( BLIS_ARCH_RV64I, bli_cntx_init_rv64i,
++ bli_cntx_init_rv64i_ref,
++ bli_cntx_init_rv64i_ind );
++#endif
++
++#ifdef BLIS_CONFIG_RV32IV
++ bli_gks_register_cntx( BLIS_ARCH_RV32IV, bli_cntx_init_rv32iv,
++ bli_cntx_init_rv32iv_ref,
++ bli_cntx_init_rv32iv_ind );
++#endif
++
++#ifdef BLIS_CONFIG_RV64IV
++ bli_gks_register_cntx( BLIS_ARCH_RV64IV, bli_cntx_init_rv64iv,
++ bli_cntx_init_rv64iv_ref,
++ bli_cntx_init_rv64iv_ind );
++#endif
++
+ // Generic architectures
+ #ifdef BLIS_CONFIG_GENERIC
+ bli_gks_register_cntx( BLIS_ARCH_GENERIC, bli_cntx_init_generic,
+diff --git a/frame/base/bli_riscv_cpuid.h b/frame/base/bli_riscv_cpuid.h
+new file mode 100644
+index 000000000..4f0c25a33
+--- /dev/null
++++ b/frame/base/bli_riscv_cpuid.h
+@@ -0,0 +1,67 @@
++/*
++
++ BLIS
++ An object-based framework for developing high-performance BLAS-like
++ libraries.
++
++ Copyright (C) 2023, The University of Texas at Austin
++
++ Redistribution and use in source and binary forms, with or without
++ modification, are permitted provided that the following conditions are
++ met:
++ - Redistributions of source code must retain the above copyright
++ notice, this list of conditions and the following disclaimer.
++ - Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in the
++ documentation and/or other materials provided with the distribution.
++ - Neither the name(s) of the copyright holder(s) nor the names of its
++ contributors may be used to endorse or promote products derived
++ from this software without specific prior written permission.
++
++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
++ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
++ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
++ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++
++
++*/
++
++/* RISC-V autodetection code which works with native or cross-compilers.
++ Compile with $CC -E and ignore all output lines starting with #. On RISC-V
++ it may return rv32i (base 32-bit integer RISC-V), rv32iv (rv32i plus vector
++ extensions), rv64i (base 64-bit integer RISC-V), or rv64iv (rv64i plus
++ vector extensions). On 128-bit integer RISC-V, it falls back to generic
++ for now. For toolchains which do not yet support RISC-V feature-detection
++ macros, it will fall back on generic, so the BLIS configure script may need
++ the RISC-V configuration to be explicitly specified. */
++
++// false if !defined(__riscv) || !defined(__riscv_xlen)
++#if __riscv && __riscv_xlen == 64
++
++#if __riscv_vector // false if !defined(__riscv_vector)
++rv64iv
++#else
++rv64i
++#endif
++
++// false if !defined(__riscv) || !defined(__riscv_xlen) || __riscv_e32 != 0
++#elif __riscv && __riscv_xlen == 32 && !__riscv_e32
++
++#if __riscv_vector // false if !defined(__riscv_vector)
++rv32iv
++#else
++rv32i
++#endif
++
++#else
++
++generic // fall back on BLIS runtime CPUID autodetection algorithm
++
++#endif
+diff --git a/frame/base/bli_riscv_detect_arch.h b/frame/base/bli_riscv_detect_arch.h
+new file mode 100644
+index 000000000..448b0f39d
+--- /dev/null
++++ b/frame/base/bli_riscv_detect_arch.h
+@@ -0,0 +1,155 @@
++/*
++
++ BLIS
++ An object-based framework for developing high-performance BLAS-like
++ libraries.
++
++ Copyright (C) 2023, The University of Texas at Austin
++
++ Redistribution and use in source and binary forms, with or without
++ modification, are permitted provided that the following conditions are
++ met:
++ - Redistributions of source code must retain the above copyright
++ notice, this list of conditions and the following disclaimer.
++ - Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in the
++ documentation and/or other materials provided with the distribution.
++ - Neither the name(s) of the copyright holder(s) nor the names of its
++ contributors may be used to endorse or promote products derived
++ from this software without specific prior written permission.
++
++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
++ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
++ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
++ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++
++
++*/
++
++/* Construct a RISC-V architecture string based on available features. */
++
++#if __riscv
++
++#if __riscv_arch_test
++
++#if __riscv_i
++#define RISCV_I i
++#else
++#define RISCV_I
++#endif
++
++#if __riscv_e
++#define RISCV_E e
++#else
++#define RISCV_E
++#endif
++
++#if __riscv_m
++#define RISCV_M m
++#else
++#define RISCV_M
++#endif
++
++#if __riscv_a
++#define RISCV_A a
++#else
++#define RISCV_A
++#endif
++
++#if __riscv_f
++#define RISCV_F f
++#else
++#define RISCV_F
++#endif
++
++#if __riscv_d
++#define RISCV_D d
++#else
++#define RISCV_D
++#endif
++
++#if __riscv_c
++#define RISCV_C c
++#else
++#define RISCV_C
++#endif
++
++#if __riscv_p
++#define RISCV_P p
++#else
++#define RISCV_P
++#endif
++
++/* FORCE_RISCV_VECTOR is a Clang workaround */
++#if __riscv_v || FORCE_RISCV_VECTOR
++#define RISCV_V v
++#else
++#define RISCV_V
++#endif
++
++#else /* __riscv_arch_test */
++
++/* We assume I and E are exclusive when __riscv_arch_test isn't defined */
++#if __riscv_32e
++#define RISCV_I
++#define RISCV_E e
++#else
++#define RISCV_I i
++#define RISCV_E
++#endif
++
++#if __riscv_mul
++#define RISCV_M m
++#else
++#define RISCV_M
++#endif
++
++#if __riscv_atomic
++#define RISCV_A a
++#else
++#define RISCV_A
++#endif
++
++#if __riscv_flen >= 32
++#define RISCV_F f
++#else
++#define RISCV_F
++#endif
++
++#if __riscv_flen >= 64
++#define RISCV_D d
++#else
++#define RISCV_D
++#endif
++
++#if __riscv_compressed
++#define RISCV_C c
++#else
++#define RISCV_C
++#endif
++
++#define RISCV_P
++
++/* FORCE_RISCV_VECTOR is a Clang workaround */
++#if __riscv_vector || FORCE_RISCV_VECTOR
++#define RISCV_V v
++#else
++#define RISCV_V
++#endif
++
++#endif /* __riscv_arch_test */
++
++#define CAT2(a,b) a##b
++#define CAT(a,b) CAT2(a,b)
++
++CAT(rv, CAT(__riscv_xlen, CAT(RISCV_I, CAT(RISCV_E, CAT(RISCV_M, CAT(RISCV_A,
++CAT(RISCV_F, CAT(RISCV_D, CAT(RISCV_C, CAT(RISCV_P, RISCV_V))))))))))
++
++#endif /* __riscv */
+diff --git a/frame/include/bli_arch_config.h b/frame/include/bli_arch_config.h
+index 0485295df..c80e8e922 100644
+--- a/frame/include/bli_arch_config.h
++++ b/frame/include/bli_arch_config.h
+@@ -131,6 +131,22 @@ CNTX_INIT_PROTS( power7 )
+ CNTX_INIT_PROTS( bgq )
+ #endif
+
++// -- RISC-V --
++
++#ifdef BLIS_CONFIG_RV32I
++CNTX_INIT_PROTS( rv32i )
++#endif
++#ifdef BLIS_CONFIG_RV64I
++CNTX_INIT_PROTS( rv64i )
++#endif
++#ifdef BLIS_CONFIG_RV32IV
++CNTX_INIT_PROTS( rv32iv )
++#endif
++#ifdef BLIS_CONFIG_RV64IV
++CNTX_INIT_PROTS( rv64iv )
++#endif
++
++
+ // -- Generic --
+
+ #ifdef BLIS_CONFIG_GENERIC
+@@ -343,6 +359,12 @@ CNTX_INIT_PROTS( generic )
+ #endif
+
+
++#ifdef BLIS_KERNELS_RVI
++#include "bli_kernels_rvi.h"
++#endif
++#ifdef BLIS_KERNELS_RVIV
++#include "bli_kernels_rviv.h"
++#endif
+
+ #endif
+
+diff --git a/frame/include/bli_misc_macro_defs.h b/frame/include/bli_misc_macro_defs.h
+index 903b4ece6..31e0150f6 100644
+--- a/frame/include/bli_misc_macro_defs.h
++++ b/frame/include/bli_misc_macro_defs.h
+@@ -170,5 +170,7 @@ BLIS_INLINE void bli_toggle_bool( bool* b )
+ #define BLIS_VA_END (-1)
+
+
+-#endif
++// Static assertion compatible with any version of C/C++
++#define bli_static_assert(cond) while(0){struct s {int STATIC_ASSERT_FAILED : !!(cond);};}
+
++#endif
+diff --git a/frame/include/bli_type_defs.h b/frame/include/bli_type_defs.h
+index cb933bfa4..b246fda05 100644
+--- a/frame/include/bli_type_defs.h
++++ b/frame/include/bli_type_defs.h
+@@ -965,6 +965,12 @@ typedef enum
+ BLIS_ARCH_POWER7,
+ BLIS_ARCH_BGQ,
+
++ // RISC-V
++ BLIS_ARCH_RV32I,
++ BLIS_ARCH_RV64I,
++ BLIS_ARCH_RV32IV,
++ BLIS_ARCH_RV64IV,
++
+ // Generic architecture/configuration
+ BLIS_ARCH_GENERIC,
+
+diff --git a/kernels/rvi/bli_kernels_rvi.h b/kernels/rvi/bli_kernels_rvi.h
+new file mode 100644
+index 000000000..d06afae62
+--- /dev/null
++++ b/kernels/rvi/bli_kernels_rvi.h
+@@ -0,0 +1,33 @@
++/*
++
++ BLIS
++ An object-based framework for developing high-performance BLAS-like
++ libraries.
++
++ Copyright (C) 2023, The University of Texas at Austin
++
++ Redistribution and use in source and binary forms, with or without
++ modification, are permitted provided that the following conditions are
++ met:
++ - Redistributions of source code must retain the above copyright
++ notice, this list of conditions and the following disclaimer.
++ - Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in the
++ documentation and/or other materials provided with the distribution.
++ - Neither the name(s) of the copyright holder(s) nor the names of its
++ contributors may be used to endorse or promote products derived
++ from this software without specific prior written permission.
++
++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
++ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
++ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
++ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++
++*/
+diff --git a/kernels/rviv/3/bli_cgemm_rviv_4vx4.c b/kernels/rviv/3/bli_cgemm_rviv_4vx4.c
+new file mode 100644
+index 000000000..9ef333a78
+--- /dev/null
++++ b/kernels/rviv/3/bli_cgemm_rviv_4vx4.c
+@@ -0,0 +1,79 @@
++/*
++
++ BLIS
++ An object-based framework for developing high-performance BLAS-like
++ libraries.
++
++ Copyright (C) 2023, The University of Texas at Austin
++
++ Redistribution and use in source and binary forms, with or without
++ modification, are permitted provided that the following conditions are
++ met:
++ - Redistributions of source code must retain the above copyright
++ notice, this list of conditions and the following disclaimer.
++ - Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in the
++ documentation and/or other materials provided with the distribution.
++ - Neither the name(s) of the copyright holder(s) nor the names of its
++ contributors may be used to endorse or promote products derived
++ from this software without specific prior written permission.
++
++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
++ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
++ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
++ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++
++*/
++
++#include "bli_rviv_utils.h"
++
++void bli_cgemm_rviv_asm_4vx4
++ (
++ intptr_t k,
++ const void* alpha,
++ const void* a,
++ const void* b,
++ const void* beta,
++ void* c, intptr_t rs_c, intptr_t cs_c
++ );
++
++void bli_cgemm_rviv_4vx4
++ (
++ dim_t m,
++ dim_t n,
++ dim_t k,
++ const void* alpha,
++ const void* a,
++ const void* b,
++ const void* beta,
++ void* c, inc_t rs_c, inc_t cs_c,
++ auxinfo_t* data,
++ const cntx_t* cntx
++ )
++{
++ // The assembly kernels always take native machine-sized integer arguments.
++ // dim_t and inc_t are normally defined as being machine-sized. If larger, assert.
++ bli_static_assert( sizeof(dim_t) <= sizeof(intptr_t) &&
++ sizeof(inc_t) <= sizeof(intptr_t) );
++
++ // Extract vector-length dependent mr, nr that are fixed at configure time.
++ const inc_t mr = bli_cntx_get_blksz_def_dt( BLIS_SCOMPLEX, BLIS_MR, cntx );
++ const inc_t nr = 4;
++
++ GEMM_UKR_SETUP_CT( c, mr, nr, false );
++
++ // The kernel assumes rs_c == 1, and the context should not deviate from it.
++ assert( rs_c == 1 );
++
++ bli_cgemm_rviv_asm_4vx4( k, alpha, a, b, beta, c,
++ get_vlenb() * 2, cs_c * sizeof(scomplex) );
++
++ GEMM_UKR_FLUSH_CT( c );
++}
+diff --git a/kernels/rviv/3/bli_cgemm_rviv_asm_4vx4.S b/kernels/rviv/3/bli_cgemm_rviv_asm_4vx4.S
+new file mode 100644
+index 000000000..98c73d23d
+--- /dev/null
++++ b/kernels/rviv/3/bli_cgemm_rviv_asm_4vx4.S
+@@ -0,0 +1,45 @@
++/*
++
++ BLIS
++ An object-based framework for developing high-performance BLAS-like
++ libraries.
++
++ Copyright (C) 2023, The University of Texas at Austin
++
++ Redistribution and use in source and binary forms, with or without
++ modification, are permitted provided that the following conditions are
++ met:
++ - Redistributions of source code must retain the above copyright
++ notice, this list of conditions and the following disclaimer.
++ - Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in the
++ documentation and/or other materials provided with the distribution.
++ - Neither the name(s) of the copyright holder(s) nor the names of its
++ contributors may be used to endorse or promote products derived
++ from this software without specific prior written permission.
++
++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
++ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
++ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
++ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++
++
++*/
++
++#define REALNAME bli_cgemm_rviv_asm_4vx4
++#define DATASIZE 8
++#define VTYPE e32
++#define FLOAD flw
++#define FZERO(fr) fcvt.s.w fr, x0
++#define FEQ feq.s
++#define VLE vlseg2e32.v
++#define VSE vsseg2e32.v
++
++#include "bli_czgemm_rviv_asm_4vx4.h"
+diff --git a/kernels/rviv/3/bli_czgemm_rviv_asm_4vx4.h b/kernels/rviv/3/bli_czgemm_rviv_asm_4vx4.h
+new file mode 100644
+index 000000000..8f7727c8d
+--- /dev/null
++++ b/kernels/rviv/3/bli_czgemm_rviv_asm_4vx4.h
+@@ -0,0 +1,801 @@
++/*
++
++ BLIS
++ An object-based framework for developing high-performance BLAS-like
++ libraries.
++
++ Copyright (C) 2023, The University of Texas at Austin
++
++ Redistribution and use in source and binary forms, with or without
++ modification, are permitted provided that the following conditions are
++ met:
++ - Redistributions of source code must retain the above copyright
++ notice, this list of conditions and the following disclaimer.
++ - Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in the
++ documentation and/or other materials provided with the distribution.
++ - Neither the name(s) of the copyright holder(s) nor the names of its
++ contributors may be used to endorse or promote products derived
++ from this software without specific prior written permission.
++
++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
++ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
++ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
++ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++
++
++*/
++
++ .text
++ .align 2
++ .global REALNAME
++
++// void REALNAME(intptr_t k, void* alpha, void* a, void* b,
++// void* beta, void* c, intptr_t rs_c, intptr_t cs_c)
++//
++// register arguments:
++// a0 k
++// a1 alpha
++// a2 a
++// a3 b
++// a4 beta
++// a5 c
++// a6 rs_c
++// a7 cs_c
++//
++
++#define REALSIZE (DATASIZE/2)
++
++#define loop_counter a0
++
++#define A00_ptr a2
++#define A10_ptr t0
++#define A01_ptr t1
++#define A11_ptr t2
++
++#define B_row_ptr a3
++
++#define C00_ptr a5
++#define C01_ptr t3
++#define C02_ptr t4
++#define C03_ptr t5
++#define C10_ptr s1
++#define C11_ptr s2
++#define C12_ptr s3
++#define C13_ptr s4
++
++#define tmp t6
++
++#define ALPHA_re fa0
++#define ALPHA_im fa1
++#define BETA_re fa2
++#define BETA_im fa3
++
++#define B00_re fa4
++#define B00_im fa5
++#define B01_re fa6
++#define B01_im fa7
++#define B02_re fa0
++#define B02_im fa1
++#define B03_re fa2
++#define B03_im fa3
++
++#define B10_re ft0
++#define B10_im ft1
++#define B11_re ft2
++#define B11_im ft3
++#define B12_re ft4
++#define B12_im ft5
++#define B13_re ft6
++#define B13_im ft7
++
++#define fzero ft8
++
++#define A00_re v24
++#define A00_im v25
++#define A10_re v26
++#define A10_im v27
++#define A01_re v28
++#define A01_im v29
++#define A11_re v30
++#define A11_im v31
++
++#define C0_re v24
++#define C0_im v25
++#define C1_re v26
++#define C1_im v27
++#define C2_re v28
++#define C2_im v29
++#define C3_re v30
++#define C3_im v31
++
++#define AB00_re v0
++#define AB00_im v1
++#define AB01_re v2
++#define AB01_im v3
++#define AB02_re v4
++#define AB02_im v5
++#define AB03_re v6
++#define AB03_im v7
++#define AB10_re v8
++#define AB10_im v9
++#define AB11_re v10
++#define AB11_im v11
++#define AB12_re v12
++#define AB12_im v13
++#define AB13_re v14
++#define AB13_im v15
++
++#define tmp0_re v16
++#define tmp0_im v17
++#define tmp1_re v18
++#define tmp1_im v19
++#define tmp2_re v20
++#define tmp2_im v21
++#define tmp3_re v22
++#define tmp3_im v23
++
++#define rs_c a6
++#define cs_c a7
++
++REALNAME:
++ #include "rviv_save_registers.h"
++
++ vsetvli s0, zero, VTYPE, m1, ta, ma
++ csrr s0, vlenb
++ slli s0, s0, 1
++ FZERO(fzero)
++
++ // Set up pointers
++ add C01_ptr, C00_ptr, cs_c
++ add C02_ptr, C01_ptr, cs_c
++ add C03_ptr, C02_ptr, cs_c
++ add C10_ptr, C00_ptr, rs_c
++ add C11_ptr, C01_ptr, rs_c
++ add C12_ptr, C02_ptr, rs_c
++ add C13_ptr, C03_ptr, rs_c
++
++ // Zero-initialize accumulators
++ vxor.vv AB00_re, AB00_re, AB00_re
++ vxor.vv AB00_im, AB00_im, AB00_im
++ vxor.vv AB01_re, AB01_re, AB01_re
++ vxor.vv AB01_im, AB01_im, AB01_im
++ vxor.vv AB02_re, AB02_re, AB02_re
++ vxor.vv AB02_im, AB02_im, AB02_im
++ vxor.vv AB03_re, AB03_re, AB03_re
++ vxor.vv AB03_im, AB03_im, AB03_im
++ vxor.vv AB10_re, AB10_re, AB10_re
++ vxor.vv AB10_im, AB10_im, AB10_im
++ vxor.vv AB11_re, AB11_re, AB11_re
++ vxor.vv AB11_im, AB11_im, AB11_im
++ vxor.vv AB12_re, AB12_re, AB12_re
++ vxor.vv AB12_im, AB12_im, AB12_im
++ vxor.vv AB13_re, AB13_re, AB13_re
++ vxor.vv AB13_im, AB13_im, AB13_im
++
++ // Handle k == 0
++ beqz loop_counter, MULTIPLYBETA
++
++ add A10_ptr, A00_ptr, s0
++ slli s0, s0, 1 // length of a column of A in bytes
++ add A01_ptr, A00_ptr, s0
++ add A11_ptr, A10_ptr, s0
++
++ li tmp, 3
++ ble loop_counter, tmp, TAIL_UNROLL_2
++
++ // Preload A and B
++ // Load and deinterleave A(:,l)
++ VLE A00_re, (A00_ptr)
++ VLE A10_re, (A10_ptr)
++
++ // Load B(l,0:3)
++ FLOAD B00_re, 0*REALSIZE(B_row_ptr)
++ FLOAD B00_im, 1*REALSIZE(B_row_ptr)
++ FLOAD B01_re, 2*REALSIZE(B_row_ptr)
++ FLOAD B01_im, 3*REALSIZE(B_row_ptr)
++ FLOAD B02_re, 4*REALSIZE(B_row_ptr)
++ FLOAD B02_im, 5*REALSIZE(B_row_ptr)
++ FLOAD B03_re, 6*REALSIZE(B_row_ptr)
++ FLOAD B03_im, 7*REALSIZE(B_row_ptr)
++
++ // Load and deinterleave A(:,l+1)
++ VLE A01_re, (A01_ptr)
++ VLE A11_re, (A11_ptr)
++
++LOOP_UNROLL_4: // loop_counter >= 4
++ addi loop_counter, loop_counter, -4
++
++ vfmacc.vf AB00_re, B00_re, A00_re // AB(:,0) += A(:,l) * B(l,0)
++ vfnmsac.vf AB00_re, B00_im, A00_im
++ vfmacc.vf AB00_im, B00_re, A00_im
++ vfmacc.vf AB00_im, B00_im, A00_re
++ vfmacc.vf AB10_re, B00_re, A10_re
++ vfnmsac.vf AB10_re, B00_im, A10_im
++ vfmacc.vf AB10_im, B00_re, A10_im
++ vfmacc.vf AB10_im, B00_im, A10_re
++
++ vfmacc.vf AB01_re, B01_re, A00_re // AB(:,1) += A(:,l) * B(l,1)
++ vfnmsac.vf AB01_re, B01_im, A00_im
++ vfmacc.vf AB01_im, B01_re, A00_im
++ vfmacc.vf AB01_im, B01_im, A00_re
++ vfmacc.vf AB11_re, B01_re, A10_re
++ vfnmsac.vf AB11_re, B01_im, A10_im
++ vfmacc.vf AB11_im, B01_re, A10_im
++ vfmacc.vf AB11_im, B01_im, A10_re
++
++ // Point to A(:,l+2), A(:,l+3)
++ add A00_ptr, A01_ptr, s0
++ add A10_ptr, A11_ptr, s0
++ add A01_ptr, A00_ptr, s0
++ add A11_ptr, A10_ptr, s0
++
++ // Load B(l+1,0:3)
++ FLOAD B10_re, 8*REALSIZE(B_row_ptr)
++ FLOAD B10_im, 9*REALSIZE(B_row_ptr)
++ FLOAD B11_re, 10*REALSIZE(B_row_ptr)
++ FLOAD B11_im, 11*REALSIZE(B_row_ptr)
++ FLOAD B12_re, 12*REALSIZE(B_row_ptr)
++ FLOAD B12_im, 13*REALSIZE(B_row_ptr)
++ FLOAD B13_re, 14*REALSIZE(B_row_ptr)
++ FLOAD B13_im, 15*REALSIZE(B_row_ptr)
++ addi B_row_ptr, B_row_ptr, 16*REALSIZE
++
++ vfmacc.vf AB00_re, B10_re, A01_re // AB(:,0) += A(:,l+1) * B(l+1,0)
++ vfnmsac.vf AB00_re, B10_im, A01_im
++ vfmacc.vf AB00_im, B10_re, A01_im
++ vfmacc.vf AB00_im, B10_im, A01_re
++ vfmacc.vf AB10_re, B10_re, A11_re
++ vfnmsac.vf AB10_re, B10_im, A11_im
++ vfmacc.vf AB10_im, B10_re, A11_im
++ vfmacc.vf AB10_im, B10_im, A11_re
++
++ vfmacc.vf AB02_re, B02_re, A00_re // AB(:,2) += A(:,l) * B(l,2)
++ vfnmsac.vf AB02_re, B02_im, A00_im
++ vfmacc.vf AB02_im, B02_re, A00_im
++ vfmacc.vf AB02_im, B02_im, A00_re
++ vfmacc.vf AB12_re, B02_re, A10_re
++ vfnmsac.vf AB12_re, B02_im, A10_im
++ vfmacc.vf AB12_im, B02_re, A10_im
++ vfmacc.vf AB12_im, B02_im, A10_re
++
++ vfmacc.vf AB03_re, B03_re, A00_re // AB(:,3) += A(:,l) * B(l,3)
++ vfnmsac.vf AB03_re, B03_im, A00_im
++ vfmacc.vf AB03_im, B03_re, A00_im
++ vfmacc.vf AB03_im, B03_im, A00_re
++ vfmacc.vf AB13_re, B03_re, A10_re
++ vfnmsac.vf AB13_re, B03_im, A10_im
++ vfmacc.vf AB13_im, B03_re, A10_im
++ vfmacc.vf AB13_im, B03_im, A10_re
++
++ // Load and deinterleave A(:,l+2)
++ VLE A00_re, (A00_ptr)
++ VLE A10_re, (A10_ptr)
++
++ // Load B(l+2, 0:3)
++ FLOAD B00_re, 0*REALSIZE(B_row_ptr)
++ FLOAD B00_im, 1*REALSIZE(B_row_ptr)
++ FLOAD B01_re, 2*REALSIZE(B_row_ptr)
++ FLOAD B01_im, 3*REALSIZE(B_row_ptr)
++ FLOAD B02_re, 4*REALSIZE(B_row_ptr)
++ FLOAD B02_im, 5*REALSIZE(B_row_ptr)
++ FLOAD B03_re, 6*REALSIZE(B_row_ptr)
++ FLOAD B03_im, 7*REALSIZE(B_row_ptr)
++
++ vfmacc.vf AB01_re, B11_re, A01_re // AB(:,1) += A(:,l+1) * B(l+1,1)
++ vfnmsac.vf AB01_re, B11_im, A01_im
++ vfmacc.vf AB01_im, B11_re, A01_im
++ vfmacc.vf AB01_im, B11_im, A01_re
++ vfmacc.vf AB11_re, B11_re, A11_re
++ vfnmsac.vf AB11_re, B11_im, A11_im
++ vfmacc.vf AB11_im, B11_re, A11_im
++ vfmacc.vf AB11_im, B11_im, A11_re
++
++ vfmacc.vf AB02_re, B12_re, A01_re // AB(:,2) += A(:,l+1) * B(l+1,2)
++ vfnmsac.vf AB02_re, B12_im, A01_im
++ vfmacc.vf AB02_im, B12_re, A01_im
++ vfmacc.vf AB02_im, B12_im, A01_re
++ vfmacc.vf AB12_re, B12_re, A11_re
++ vfnmsac.vf AB12_re, B12_im, A11_im
++ vfmacc.vf AB12_im, B12_re, A11_im
++ vfmacc.vf AB12_im, B12_im, A11_re
++
++ vfmacc.vf AB03_re, B13_re, A01_re // AB(:,3) += A(:,l+1) * B(l+1,3)
++ vfnmsac.vf AB03_re, B13_im, A01_im
++ vfmacc.vf AB03_im, B13_re, A01_im
++ vfmacc.vf AB03_im, B13_im, A01_re
++ vfmacc.vf AB13_re, B13_re, A11_re
++ vfnmsac.vf AB13_re, B13_im, A11_im
++ vfmacc.vf AB13_im, B13_re, A11_im
++ vfmacc.vf AB13_im, B13_im, A11_re
++
++ // Load and deinterleave A(:,l+3)
++ VLE A01_re, (A01_ptr)
++ VLE A11_re, (A11_ptr)
++
++ // Point to A(:,l+2), A(:,l+3)
++ add A00_ptr, A01_ptr, s0
++ add A10_ptr, A11_ptr, s0
++ add A01_ptr, A00_ptr, s0
++ add A11_ptr, A10_ptr, s0
++
++ // Load B(l+3, 0:3)
++ FLOAD B10_re, 8*REALSIZE(B_row_ptr)
++ FLOAD B10_im, 9*REALSIZE(B_row_ptr)
++ FLOAD B11_re, 10*REALSIZE(B_row_ptr)
++ FLOAD B11_im, 11*REALSIZE(B_row_ptr)
++ FLOAD B12_re, 12*REALSIZE(B_row_ptr)
++ FLOAD B12_im, 13*REALSIZE(B_row_ptr)
++ FLOAD B13_re, 14*REALSIZE(B_row_ptr)
++ FLOAD B13_im, 15*REALSIZE(B_row_ptr)
++ addi B_row_ptr, B_row_ptr, 16*REALSIZE
++
++ vfmacc.vf AB00_re, B00_re, A00_re // AB(:,0) += A(:,l+2) * B(l+2,0)
++ vfnmsac.vf AB00_re, B00_im, A00_im
++ vfmacc.vf AB00_im, B00_re, A00_im
++ vfmacc.vf AB00_im, B00_im, A00_re
++ vfmacc.vf AB10_re, B00_re, A10_re
++ vfnmsac.vf AB10_re, B00_im, A10_im
++ vfmacc.vf AB10_im, B00_re, A10_im
++ vfmacc.vf AB10_im, B00_im, A10_re
++
++ vfmacc.vf AB00_re, B10_re, A01_re // AB(:,0) += A(:,l+3) * B(l+3,0)
++ vfnmsac.vf AB00_re, B10_im, A01_im
++ vfmacc.vf AB00_im, B10_re, A01_im
++ vfmacc.vf AB00_im, B10_im, A01_re
++ vfmacc.vf AB10_re, B10_re, A11_re
++ vfnmsac.vf AB10_re, B10_im, A11_im
++ vfmacc.vf AB10_im, B10_re, A11_im
++ vfmacc.vf AB10_im, B10_im, A11_re
++
++ vfmacc.vf AB01_re, B01_re, A00_re // AB(:,1) += A(:,l+2) * B(l+2,1)
++ vfnmsac.vf AB01_re, B01_im, A00_im
++ vfmacc.vf AB01_im, B01_re, A00_im
++ vfmacc.vf AB01_im, B01_im, A00_re
++ vfmacc.vf AB11_re, B01_re, A10_re
++ vfnmsac.vf AB11_re, B01_im, A10_im
++ vfmacc.vf AB11_im, B01_re, A10_im
++ vfmacc.vf AB11_im, B01_im, A10_re
++
++ vfmacc.vf AB01_re, B11_re, A01_re // AB(:,1) += A(:,l+3) * B(l+3,1)
++ vfnmsac.vf AB01_re, B11_im, A01_im
++ vfmacc.vf AB01_im, B11_re, A01_im
++ vfmacc.vf AB01_im, B11_im, A01_re
++ vfmacc.vf AB11_re, B11_re, A11_re
++ vfnmsac.vf AB11_re, B11_im, A11_im
++ vfmacc.vf AB11_im, B11_re, A11_im
++ vfmacc.vf AB11_im, B11_im, A11_re
++
++ vfmacc.vf AB02_re, B02_re, A00_re // AB(:,2) += A(:,l+2) * B(l+2,2)
++ vfnmsac.vf AB02_re, B02_im, A00_im
++ vfmacc.vf AB02_im, B02_re, A00_im
++ vfmacc.vf AB02_im, B02_im, A00_re
++ vfmacc.vf AB12_re, B02_re, A10_re
++ vfnmsac.vf AB12_re, B02_im, A10_im
++ vfmacc.vf AB12_im, B02_re, A10_im
++ vfmacc.vf AB12_im, B02_im, A10_re
++
++ vfmacc.vf AB02_re, B12_re, A01_re // AB(:,2) += A(:,l+3) * B(l+3,2)
++ vfnmsac.vf AB02_re, B12_im, A01_im
++ vfmacc.vf AB02_im, B12_re, A01_im
++ vfmacc.vf AB02_im, B12_im, A01_re
++ vfmacc.vf AB12_re, B12_re, A11_re
++ vfnmsac.vf AB12_re, B12_im, A11_im
++ vfmacc.vf AB12_im, B12_re, A11_im
++ vfmacc.vf AB12_im, B12_im, A11_re
++
++ vfmacc.vf AB03_re, B03_re, A00_re // AB(:,3) += A(:,l+2) * B(l+2,3)
++ vfnmsac.vf AB03_re, B03_im, A00_im
++ vfmacc.vf AB03_im, B03_re, A00_im
++ vfmacc.vf AB03_im, B03_im, A00_re
++ vfmacc.vf AB13_re, B03_re, A10_re
++ vfnmsac.vf AB13_re, B03_im, A10_im
++ vfmacc.vf AB13_im, B03_re, A10_im
++ vfmacc.vf AB13_im, B03_im, A10_re
++
++ vfmacc.vf AB03_re, B13_re, A01_re // AB(:,3) += A(:,l+3) * B(l+3,3)
++ vfnmsac.vf AB03_re, B13_im, A01_im
++ vfmacc.vf AB03_im, B13_re, A01_im
++ vfmacc.vf AB03_im, B13_im, A01_re
++ vfmacc.vf AB13_re, B13_re, A11_re
++ vfnmsac.vf AB13_re, B13_im, A11_im
++ vfmacc.vf AB13_im, B13_re, A11_im
++ vfmacc.vf AB13_im, B13_im, A11_re
++
++ li tmp, 3
++ ble loop_counter, tmp, TAIL_UNROLL_2
++
++ // Load A and B for the next iteration
++ VLE A00_re, (A00_ptr)
++ VLE A10_re, (A10_ptr)
++ VLE A01_re, (A01_ptr)
++ VLE A11_re, (A11_ptr)
++
++ FLOAD B00_re, 0*REALSIZE(B_row_ptr)
++ FLOAD B00_im, 1*REALSIZE(B_row_ptr)
++ FLOAD B01_re, 2*REALSIZE(B_row_ptr)
++ FLOAD B01_im, 3*REALSIZE(B_row_ptr)
++ FLOAD B02_re, 4*REALSIZE(B_row_ptr)
++ FLOAD B02_im, 5*REALSIZE(B_row_ptr)
++ FLOAD B03_re, 6*REALSIZE(B_row_ptr)
++ FLOAD B03_im, 7*REALSIZE(B_row_ptr)
++
++ j LOOP_UNROLL_4
++
++TAIL_UNROLL_2: // loop_counter <= 3
++ li tmp, 1
++ ble loop_counter, tmp, TAIL_UNROLL_1
++
++ addi loop_counter, loop_counter, -2
++
++ // Load and deinterleave A(:,l)
++ VLE A00_re, (A00_ptr)
++ VLE A10_re, (A10_ptr)
++
++ // Load B(l, 0:3)
++ FLOAD B00_re, 0*REALSIZE(B_row_ptr)
++ FLOAD B00_im, 1*REALSIZE(B_row_ptr)
++ FLOAD B01_re, 2*REALSIZE(B_row_ptr)
++ FLOAD B01_im, 3*REALSIZE(B_row_ptr)
++ FLOAD B02_re, 4*REALSIZE(B_row_ptr)
++ FLOAD B02_im, 5*REALSIZE(B_row_ptr)
++ FLOAD B03_re, 6*REALSIZE(B_row_ptr)
++ FLOAD B03_im, 7*REALSIZE(B_row_ptr)
++
++ vfmacc.vf AB00_re, B00_re, A00_re // AB(:,0) += A(:,l) * B(l,0)
++ vfnmsac.vf AB00_re, B00_im, A00_im
++ vfmacc.vf AB00_im, B00_re, A00_im
++ vfmacc.vf AB00_im, B00_im, A00_re
++ vfmacc.vf AB10_re, B00_re, A10_re
++ vfnmsac.vf AB10_re, B00_im, A10_im
++ vfmacc.vf AB10_im, B00_re, A10_im
++ vfmacc.vf AB10_im, B00_im, A10_re
++
++ vfmacc.vf AB01_re, B01_re, A00_re // AB(:,1) += A(:,l) * B(l,1)
++ vfnmsac.vf AB01_re, B01_im, A00_im
++ vfmacc.vf AB01_im, B01_re, A00_im
++ vfmacc.vf AB01_im, B01_im, A00_re
++ vfmacc.vf AB11_re, B01_re, A10_re
++ vfnmsac.vf AB11_re, B01_im, A10_im
++ vfmacc.vf AB11_im, B01_re, A10_im
++ vfmacc.vf AB11_im, B01_im, A10_re
++
++ // Load and deinterleave A(:,l+1)
++ VLE A01_re, (A01_ptr)
++ VLE A11_re, (A11_ptr)
++
++ // Load B(l+1, 0:3)
++ FLOAD B10_re, 8*REALSIZE(B_row_ptr)
++ FLOAD B10_im, 9*REALSIZE(B_row_ptr)
++ FLOAD B11_re, 10*REALSIZE(B_row_ptr)
++ FLOAD B11_im, 11*REALSIZE(B_row_ptr)
++ FLOAD B12_re, 12*REALSIZE(B_row_ptr)
++ FLOAD B12_im, 13*REALSIZE(B_row_ptr)
++ FLOAD B13_re, 14*REALSIZE(B_row_ptr)
++ FLOAD B13_im, 15*REALSIZE(B_row_ptr)
++
++ vfmacc.vf AB00_re, B10_re, A01_re // AB(:,0) += A(:,l+1) * B(l+1,0)
++ vfnmsac.vf AB00_re, B10_im, A01_im
++ vfmacc.vf AB00_im, B10_re, A01_im
++ vfmacc.vf AB00_im, B10_im, A01_re
++ vfmacc.vf AB10_re, B10_re, A11_re
++ vfnmsac.vf AB10_re, B10_im, A11_im
++ vfmacc.vf AB10_im, B10_re, A11_im
++ vfmacc.vf AB10_im, B10_im, A11_re
++
++ vfmacc.vf AB01_re, B11_re, A01_re // AB(:,1) += A(:,l+1) * B(l+1,1)
++ vfnmsac.vf AB01_re, B11_im, A01_im
++ vfmacc.vf AB01_im, B11_re, A01_im
++ vfmacc.vf AB01_im, B11_im, A01_re
++ vfmacc.vf AB11_re, B11_re, A11_re
++ vfnmsac.vf AB11_re, B11_im, A11_im
++ vfmacc.vf AB11_im, B11_re, A11_im
++ vfmacc.vf AB11_im, B11_im, A11_re
++
++ vfmacc.vf AB02_re, B02_re, A00_re // AB(:,2) += A(:,l) * B(l,2)
++ vfnmsac.vf AB02_re, B02_im, A00_im
++ vfmacc.vf AB02_im, B02_re, A00_im
++ vfmacc.vf AB02_im, B02_im, A00_re
++ vfmacc.vf AB12_re, B02_re, A10_re
++ vfnmsac.vf AB12_re, B02_im, A10_im
++ vfmacc.vf AB12_im, B02_re, A10_im
++ vfmacc.vf AB12_im, B02_im, A10_re
++
++ vfmacc.vf AB03_re, B03_re, A00_re // AB(:,3) += A(:,l) * B(l,3)
++ vfnmsac.vf AB03_re, B03_im, A00_im
++ vfmacc.vf AB03_im, B03_re, A00_im
++ vfmacc.vf AB03_im, B03_im, A00_re
++ vfmacc.vf AB13_re, B03_re, A10_re
++ vfnmsac.vf AB13_re, B03_im, A10_im
++ vfmacc.vf AB13_im, B03_re, A10_im
++ vfmacc.vf AB13_im, B03_im, A10_re
++
++ vfmacc.vf AB02_re, B12_re, A01_re // AB(:,2) += A(:,l+1) * B(l+1,2)
++ vfnmsac.vf AB02_re, B12_im, A01_im
++ vfmacc.vf AB02_im, B12_re, A01_im
++ vfmacc.vf AB02_im, B12_im, A01_re
++ vfmacc.vf AB12_re, B12_re, A11_re
++ vfnmsac.vf AB12_re, B12_im, A11_im
++ vfmacc.vf AB12_im, B12_re, A11_im
++ vfmacc.vf AB12_im, B12_im, A11_re
++
++ vfmacc.vf AB03_re, B13_re, A01_re // AB(:,3) += A(:,l+1) * B(l+1,3)
++ vfnmsac.vf AB03_re, B13_im, A01_im
++ vfmacc.vf AB03_im, B13_re, A01_im
++ vfmacc.vf AB03_im, B13_im, A01_re
++ vfmacc.vf AB13_re, B13_re, A11_re
++ vfnmsac.vf AB13_re, B13_im, A11_im
++ vfmacc.vf AB13_im, B13_re, A11_im
++ vfmacc.vf AB13_im, B13_im, A11_re
++
++ beqz loop_counter, MULTIPLYALPHA
++
++ // Advance pointers
++ add A00_ptr, A01_ptr, s0
++ add A10_ptr, A11_ptr, s0
++ addi B_row_ptr, B_row_ptr, 16*REALSIZE
++
++TAIL_UNROLL_1: // loop_counter <= 1
++ beqz loop_counter, MULTIPLYALPHA
++
++ // Load and deinterleave A(:,l)
++ VLE A00_re, (A00_ptr)
++ VLE A10_re, (A10_ptr)
++
++ // Load B(l,0:3)
++ FLOAD B00_re, 0*REALSIZE(B_row_ptr)
++ FLOAD B00_im, 1*REALSIZE(B_row_ptr)
++ FLOAD B01_re, 2*REALSIZE(B_row_ptr)
++ FLOAD B01_im, 3*REALSIZE(B_row_ptr)
++ FLOAD B02_re, 4*REALSIZE(B_row_ptr)
++ FLOAD B02_im, 5*REALSIZE(B_row_ptr)
++ FLOAD B03_re, 6*REALSIZE(B_row_ptr)
++ FLOAD B03_im, 7*REALSIZE(B_row_ptr)
++
++ vfmacc.vf AB00_re, B00_re, A00_re // AB(:,0) += A(:,l) * B(l,0)
++ vfnmsac.vf AB00_re, B00_im, A00_im
++ vfmacc.vf AB00_im, B00_re, A00_im
++ vfmacc.vf AB00_im, B00_im, A00_re
++ vfmacc.vf AB10_re, B00_re, A10_re
++ vfnmsac.vf AB10_re, B00_im, A10_im
++ vfmacc.vf AB10_im, B00_re, A10_im
++ vfmacc.vf AB10_im, B00_im, A10_re
++
++ vfmacc.vf AB01_re, B01_re, A00_re // AB(:,1) += A(:,l) * B(l,1)
++ vfnmsac.vf AB01_re, B01_im, A00_im
++ vfmacc.vf AB01_im, B01_re, A00_im
++ vfmacc.vf AB01_im, B01_im, A00_re
++ vfmacc.vf AB11_re, B01_re, A10_re
++ vfnmsac.vf AB11_re, B01_im, A10_im
++ vfmacc.vf AB11_im, B01_re, A10_im
++ vfmacc.vf AB11_im, B01_im, A10_re
++
++ vfmacc.vf AB02_re, B02_re, A00_re // AB(:,2) += A(:,l) * B(l,2)
++ vfnmsac.vf AB02_re, B02_im, A00_im
++ vfmacc.vf AB02_im, B02_re, A00_im
++ vfmacc.vf AB02_im, B02_im, A00_re
++ vfmacc.vf AB12_re, B02_re, A10_re
++ vfnmsac.vf AB12_re, B02_im, A10_im
++ vfmacc.vf AB12_im, B02_re, A10_im
++ vfmacc.vf AB12_im, B02_im, A10_re
++
++ vfmacc.vf AB03_re, B03_re, A00_re // AB(:,3) += A(:,l) * B(l,3)
++ vfnmsac.vf AB03_re, B03_im, A00_im
++ vfmacc.vf AB03_im, B03_re, A00_im
++ vfmacc.vf AB03_im, B03_im, A00_re
++ vfmacc.vf AB13_re, B03_re, A10_re
++ vfnmsac.vf AB13_re, B03_im, A10_im
++ vfmacc.vf AB13_im, B03_re, A10_im
++ vfmacc.vf AB13_im, B03_im, A10_re
++
++MULTIPLYALPHA:
++ FLOAD ALPHA_re, 0*REALSIZE(a1)
++ FLOAD ALPHA_im, 1*REALSIZE(a1)
++
++ FEQ tmp, ALPHA_im, fzero
++ bne tmp, zero, ALPHAREAL
++
++ // [AB00, ..., AB03] * alpha
++ vfmul.vf tmp0_re, AB00_im, ALPHA_im
++ vfmul.vf tmp0_im, AB00_re, ALPHA_im
++ vfmul.vf tmp1_re, AB01_im, ALPHA_im
++ vfmul.vf tmp1_im, AB01_re, ALPHA_im
++ vfmul.vf tmp2_re, AB02_im, ALPHA_im
++ vfmul.vf tmp2_im, AB02_re, ALPHA_im
++ vfmul.vf tmp3_re, AB03_im, ALPHA_im
++ vfmul.vf tmp3_im, AB03_re, ALPHA_im
++ vfmsub.vf AB00_re, ALPHA_re, tmp0_re
++ vfmsub.vf AB01_re, ALPHA_re, tmp1_re
++ vfmsub.vf AB02_re, ALPHA_re, tmp2_re
++ vfmsub.vf AB03_re, ALPHA_re, tmp3_re
++ vfmadd.vf AB00_im, ALPHA_re, tmp0_im
++ vfmadd.vf AB01_im, ALPHA_re, tmp1_im
++ vfmadd.vf AB02_im, ALPHA_re, tmp2_im
++ vfmadd.vf AB03_im, ALPHA_re, tmp3_im
++
++ // [AB10, ..., AB13] * alpha
++ vfmul.vf tmp0_re, AB10_im, ALPHA_im
++ vfmul.vf tmp0_im, AB10_re, ALPHA_im
++ vfmul.vf tmp1_re, AB11_im, ALPHA_im
++ vfmul.vf tmp1_im, AB11_re, ALPHA_im
++ vfmul.vf tmp2_re, AB12_im, ALPHA_im
++ vfmul.vf tmp2_im, AB12_re, ALPHA_im
++ vfmul.vf tmp3_re, AB13_im, ALPHA_im
++ vfmul.vf tmp3_im, AB13_re, ALPHA_im
++ vfmsub.vf AB10_re, ALPHA_re, tmp0_re
++ vfmsub.vf AB11_re, ALPHA_re, tmp1_re
++ vfmsub.vf AB12_re, ALPHA_re, tmp2_re
++ vfmsub.vf AB13_re, ALPHA_re, tmp3_re
++ vfmadd.vf AB10_im, ALPHA_re, tmp0_im
++ vfmadd.vf AB11_im, ALPHA_re, tmp1_im
++ vfmadd.vf AB12_im, ALPHA_re, tmp2_im
++ vfmadd.vf AB13_im, ALPHA_re, tmp3_im
++
++ j MULTIPLYBETA
++
++ALPHAREAL:
++ vfmul.vf AB00_re, AB00_re, ALPHA_re
++ vfmul.vf AB00_im, AB00_im, ALPHA_re
++ vfmul.vf AB01_re, AB01_re, ALPHA_re
++ vfmul.vf AB01_im, AB01_im, ALPHA_re
++ vfmul.vf AB02_re, AB02_re, ALPHA_re
++ vfmul.vf AB02_im, AB02_im, ALPHA_re
++ vfmul.vf AB03_re, AB03_re, ALPHA_re
++ vfmul.vf AB03_im, AB03_im, ALPHA_re
++
++ vfmul.vf AB10_re, AB10_re, ALPHA_re
++ vfmul.vf AB10_im, AB10_im, ALPHA_re
++ vfmul.vf AB11_re, AB11_re, ALPHA_re
++ vfmul.vf AB11_im, AB11_im, ALPHA_re
++ vfmul.vf AB12_re, AB12_re, ALPHA_re
++ vfmul.vf AB12_im, AB12_im, ALPHA_re
++ vfmul.vf AB13_re, AB13_re, ALPHA_re
++ vfmul.vf AB13_im, AB13_im, ALPHA_re
++
++MULTIPLYBETA:
++ FLOAD BETA_re, 0*REALSIZE(a4)
++ FLOAD BETA_im, 1*REALSIZE(a4)
++ FEQ tmp, BETA_im, fzero
++ bne tmp, zero, BETAREAL
++
++ // Load and deinterleave C(0:VLEN-1, 0:1)
++ VLE C0_re, (C00_ptr)
++ VLE C1_re, (C01_ptr)
++
++ // Load and deinterleave C(0:VLEN-1, 2:3)
++ VLE C2_re, (C02_ptr)
++ VLE C3_re, (C03_ptr)
++
++ // C(0:VLEN-1,0:1) * beta + AB(0:VLEN-1,0:1)
++ vfmacc.vf AB00_re, BETA_re, C0_re
++ vfnmsac.vf AB00_re, BETA_im, C0_im
++ vfmacc.vf AB00_im, BETA_re, C0_im
++ vfmacc.vf AB00_im, BETA_im, C0_re
++ VSE AB00_re, (C00_ptr)
++
++ vfmacc.vf AB01_re, BETA_re, C1_re
++ vfnmsac.vf AB01_re, BETA_im, C1_im
++ vfmacc.vf AB01_im, BETA_re, C1_im
++ vfmacc.vf AB01_im, BETA_im, C1_re
++ VSE AB01_re, (C01_ptr)
++
++ // C(0:VLEN-1,2:3) * beta + AB(0:VLEN-1,2:3)
++ vfmacc.vf AB02_re, BETA_re, C2_re
++ vfnmsac.vf AB02_re, BETA_im, C2_im
++ vfmacc.vf AB02_im, BETA_re, C2_im
++ vfmacc.vf AB02_im, BETA_im, C2_re
++ VSE AB02_re, (C02_ptr)
++
++ vfmacc.vf AB03_re, BETA_re, C3_re
++ vfnmsac.vf AB03_re, BETA_im, C3_im
++ vfmacc.vf AB03_im, BETA_re, C3_im
++ vfmacc.vf AB03_im, BETA_im, C3_re
++ VSE AB03_re, (C03_ptr)
++
++ // Load and deinterleave C(VLEN:2*VLEN-1, 0:1)
++ VLE C0_re, (C10_ptr)
++ VLE C1_re, (C11_ptr)
++
++ // Load and deinterleave C(VLEN:2*VLEN-1, 2:3)
++ VLE C2_re, (C12_ptr)
++ VLE C3_re, (C13_ptr)
++
++ // C(VLEN:2*VLEN-1,0:1) * beta + AB(VLEN:2*VLEN-1,0:1)
++ vfmacc.vf AB10_re, BETA_re, C0_re
++ vfnmsac.vf AB10_re, BETA_im, C0_im
++ vfmacc.vf AB10_im, BETA_re, C0_im
++ vfmacc.vf AB10_im, BETA_im, C0_re
++ VSE AB10_re, (C10_ptr)
++
++ vfmacc.vf AB11_re, BETA_re, C1_re
++ vfnmsac.vf AB11_re, BETA_im, C1_im
++ vfmacc.vf AB11_im, BETA_re, C1_im
++ vfmacc.vf AB11_im, BETA_im, C1_re
++ VSE AB11_re, (C11_ptr)
++
++ // C(VLEN:2*VLEN-1,2:3) * beta + AB(VLEN:2*VLEN-1,2:3)
++ vfmacc.vf AB12_re, BETA_re, C2_re
++ vfnmsac.vf AB12_re, BETA_im, C2_im
++ vfmacc.vf AB12_im, BETA_re, C2_im
++ vfmacc.vf AB12_im, BETA_im, C2_re
++ VSE AB12_re, (C12_ptr)
++
++ vfmacc.vf AB13_re, BETA_re, C3_re
++ vfnmsac.vf AB13_re, BETA_im, C3_im
++ vfmacc.vf AB13_im, BETA_re, C3_im
++ vfmacc.vf AB13_im, BETA_im, C3_re
++ VSE AB13_re, (C13_ptr)
++
++ j END
++
++BETAREAL:
++ FEQ tmp, BETA_re, fzero
++ bne tmp, zero, BETAZERO
++
++ // Load and deinterleave C(0:VLEN-1, 0:3)
++ VLE C0_re, (C00_ptr)
++ VLE C1_re, (C01_ptr)
++ VLE C2_re, (C02_ptr)
++ VLE C3_re, (C03_ptr)
++
++ // C(0:VLEN-1,0:3) * beta + AB(0:VLEN-1,0:3)
++ vfmacc.vf AB00_re, BETA_re, C0_re
++ vfmacc.vf AB00_im, BETA_re, C0_im
++ vfmacc.vf AB01_re, BETA_re, C1_re
++ vfmacc.vf AB01_im, BETA_re, C1_im
++
++ vfmacc.vf AB02_re, BETA_re, C2_re
++ vfmacc.vf AB02_im, BETA_re, C2_im
++ vfmacc.vf AB03_re, BETA_re, C3_re
++ vfmacc.vf AB03_im, BETA_re, C3_im
++
++ VSE AB00_re, (C00_ptr)
++ VSE AB01_re, (C01_ptr)
++ VSE AB02_re, (C02_ptr)
++ VSE AB03_re, (C03_ptr)
++
++ // Load and deinterleave C(VLEN:2*VLEN-1, 0:3)
++ VLE C0_re, (C10_ptr)
++ VLE C1_re, (C11_ptr)
++ VLE C2_re, (C12_ptr)
++ VLE C3_re, (C13_ptr)
++
++ // C(VLEN:2*VLEN-1,0:3) * beta + AB(VLEN:2*VLEN-1,0:3)
++ vfmacc.vf AB10_re, BETA_re, C0_re
++ vfmacc.vf AB10_im, BETA_re, C0_im
++ vfmacc.vf AB11_re, BETA_re, C1_re
++ vfmacc.vf AB11_im, BETA_re, C1_im
++
++ vfmacc.vf AB12_re, BETA_re, C2_re
++ vfmacc.vf AB12_im, BETA_re, C2_im
++ vfmacc.vf AB13_re, BETA_re, C3_re
++ vfmacc.vf AB13_im, BETA_re, C3_im
++
++ VSE AB10_re, (C10_ptr)
++ VSE AB11_re, (C11_ptr)
++ VSE AB12_re, (C12_ptr)
++ VSE AB13_re, (C13_ptr)
++
++ j END
++
++BETAZERO:
++ VSE AB00_re, (C00_ptr)
++ VSE AB01_re, (C01_ptr)
++ VSE AB02_re, (C02_ptr)
++ VSE AB03_re, (C03_ptr)
++
++ VSE AB10_re, (C10_ptr)
++ VSE AB11_re, (C11_ptr)
++ VSE AB12_re, (C12_ptr)
++ VSE AB13_re, (C13_ptr)
++
++END:
++ #include "rviv_restore_registers.h"
++ ret
+diff --git a/kernels/rviv/3/bli_dgemm_rviv_4vx4.c b/kernels/rviv/3/bli_dgemm_rviv_4vx4.c
+new file mode 100644
+index 000000000..e03716a5a
+--- /dev/null
++++ b/kernels/rviv/3/bli_dgemm_rviv_4vx4.c
+@@ -0,0 +1,79 @@
++/*
++
++ BLIS
++ An object-based framework for developing high-performance BLAS-like
++ libraries.
++
++ Copyright (C) 2023, The University of Texas at Austin
++
++ Redistribution and use in source and binary forms, with or without
++ modification, are permitted provided that the following conditions are
++ met:
++ - Redistributions of source code must retain the above copyright
++ notice, this list of conditions and the following disclaimer.
++ - Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in the
++ documentation and/or other materials provided with the distribution.
++ - Neither the name(s) of the copyright holder(s) nor the names of its
++ contributors may be used to endorse or promote products derived
++ from this software without specific prior written permission.
++
++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
++ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
++ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
++ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++
++
++*/
++#include "bli_rviv_utils.h"
++
++void bli_dgemm_rviv_asm_4vx4
++ (
++ intptr_t k,
++ const void* alpha,
++ const void* a,
++ const void* b,
++ const void* beta,
++ void* c, intptr_t rs_c, intptr_t cs_c
++ );
++
++void bli_dgemm_rviv_4vx4
++ (
++ dim_t m,
++ dim_t n,
++ dim_t k,
++ const void* alpha,
++ const void* a,
++ const void* b,
++ const void* beta,
++ void* c, inc_t rs_c, inc_t cs_c,
++ auxinfo_t* data,
++ const cntx_t* cntx
++ )
++{
++ // The assembly kernels always take native machine-sized integer arguments.
++ // dim_t and inc_t are normally defined as being machine-sized. If larger, assert.
++ bli_static_assert( sizeof(dim_t) <= sizeof(intptr_t) &&
++ sizeof(inc_t) <= sizeof(intptr_t) );
++
++ // Extract vector-length dependent mr, nr that are fixed at configure time.
++ const inc_t mr = bli_cntx_get_blksz_def_dt( BLIS_DOUBLE, BLIS_MR, cntx );
++ const inc_t nr = 4;
++
++ GEMM_UKR_SETUP_CT( d, mr, nr, false );
++
++ // The kernel assumes rs_c == 1, and the context should not deviate from it.
++ assert( rs_c == 1 );
++
++ bli_dgemm_rviv_asm_4vx4( k, alpha, a, b, beta, c,
++ get_vlenb(), cs_c * sizeof(double) );
++
++ GEMM_UKR_FLUSH_CT( d );
++}
+diff --git a/kernels/rviv/3/bli_dgemm_rviv_asm_4vx4.S b/kernels/rviv/3/bli_dgemm_rviv_asm_4vx4.S
+new file mode 100644
+index 000000000..b29c6da5e
+--- /dev/null
++++ b/kernels/rviv/3/bli_dgemm_rviv_asm_4vx4.S
+@@ -0,0 +1,45 @@
++/*
++
++ BLIS
++ An object-based framework for developing high-performance BLAS-like
++ libraries.
++
++ Copyright (C) 2023, The University of Texas at Austin
++
++ Redistribution and use in source and binary forms, with or without
++ modification, are permitted provided that the following conditions are
++ met:
++ - Redistributions of source code must retain the above copyright
++ notice, this list of conditions and the following disclaimer.
++ - Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in the
++ documentation and/or other materials provided with the distribution.
++ - Neither the name(s) of the copyright holder(s) nor the names of its
++ contributors may be used to endorse or promote products derived
++ from this software without specific prior written permission.
++
++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
++ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
++ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
++ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++
++
++*/
++
++#define REALNAME bli_dgemm_rviv_asm_4vx4
++#define DATASIZE 8
++#define VTYPE e64
++#define FLOAD fld
++#define FZERO(fr) fcvt.d.w fr, x0
++#define FEQ feq.d
++#define VLE vle64.v
++#define VSE vse64.v
++
++#include "bli_sdgemm_rviv_asm_4vx4.h"
+diff --git a/kernels/rviv/3/bli_rviv_utils.h b/kernels/rviv/3/bli_rviv_utils.h
+new file mode 100644
+index 000000000..e4570321d
+--- /dev/null
++++ b/kernels/rviv/3/bli_rviv_utils.h
+@@ -0,0 +1,46 @@
++/*
++
++ BLIS
++ An object-based framework for developing high-performance BLAS-like
++ libraries.
++
++ Copyright (C) 2023, The University of Texas at Austin
++
++ Redistribution and use in source and binary forms, with or without
++ modification, are permitted provided that the following conditions are
++ met:
++ - Redistributions of source code must retain the above copyright
++ notice, this list of conditions and the following disclaimer.
++ - Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in the
++ documentation and/or other materials provided with the distribution.
++ - Neither the name(s) of the copyright holder(s) nor the names of its
++ contributors may be used to endorse or promote products derived
++ from this software without specific prior written permission.
++
++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
++ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
++ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
++ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++
++*/
++
++#include "blis.h"
++#include
++
++static inline uintptr_t get_vlenb(void)
++{
++ uintptr_t vlenb = 0;
++ __asm__ volatile (
++ " csrr %0, vlenb" // vector length in bytes
++ : "=r" (vlenb)
++ );
++ return vlenb;
++}
+diff --git a/kernels/rviv/3/bli_sdgemm_rviv_asm_4vx4.h b/kernels/rviv/3/bli_sdgemm_rviv_asm_4vx4.h
+new file mode 100644
+index 000000000..998a4e27d
+--- /dev/null
++++ b/kernels/rviv/3/bli_sdgemm_rviv_asm_4vx4.h
+@@ -0,0 +1,627 @@
++/*
++
++ BLIS
++ An object-based framework for developing high-performance BLAS-like
++ libraries.
++
++ Copyright (C) 2023, The University of Texas at Austin
++
++ Redistribution and use in source and binary forms, with or without
++ modification, are permitted provided that the following conditions are
++ met:
++ - Redistributions of source code must retain the above copyright
++ notice, this list of conditions and the following disclaimer.
++ - Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in the
++ documentation and/or other materials provided with the distribution.
++ - Neither the name(s) of the copyright holder(s) nor the names of its
++ contributors may be used to endorse or promote products derived
++ from this software without specific prior written permission.
++
++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
++ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
++ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
++ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++
++
++*/
++
++ .text
++ .align 2
++ .global REALNAME
++
++// void REALNAME(intptr_t k, void* alpha, void* a, void* b,
++// void* beta, void* c, intptr_t rs_c, intptr_t cs_c)
++//
++// register arguments:
++// a0 k
++// a1 alpha
++// a2 a
++// a3 b
++// a4 beta
++// a5 c
++// a6 rs_c
++// a7 cs_c
++//
++
++#define loop_counter a0
++
++#define A00_ptr a2
++#define A10_ptr t0
++#define A20_ptr t1
++#define A30_ptr t2
++#define A01_ptr s5
++#define A11_ptr s6
++#define A21_ptr s7
++#define A31_ptr t6
++
++#define B_row_ptr a3
++
++#define C00_ptr a5
++#define C01_ptr t3
++#define C02_ptr t4
++#define C03_ptr t5
++#define C10_ptr s1
++#define C11_ptr s2
++#define C12_ptr s3
++#define C13_ptr s4
++
++#define tmp t6
++
++#define ALPHA fa1
++#define BETA fa2
++
++#define B00 fa4
++#define B01 fa5
++#define B02 fa6
++#define B03 fa7
++
++#define B10 fa0
++#define B11 fa1
++#define B12 fa2
++#define B13 fa3
++
++#define fzero ft8
++
++#define A00 v24
++#define A10 v25
++#define A20 v26
++#define A30 v27
++
++#define A01 v28
++#define A11 v29
++#define A21 v30
++#define A31 v31
++
++#define C00 v16
++#define C01 v17
++#define C02 v18
++#define C03 v19
++#define C10 v20
++#define C11 v21
++#define C12 v22
++#define C13 v23
++#define C20 v0
++#define C21 v1
++#define C22 v2
++#define C23 v3
++#define C30 v4
++#define C31 v5
++#define C32 v6
++#define C33 v7
++
++#define AB00 v0
++#define AB01 v1
++#define AB02 v2
++#define AB03 v3
++#define AB10 v4
++#define AB11 v5
++#define AB12 v6
++#define AB13 v7
++#define AB20 v8
++#define AB21 v9
++#define AB22 v10
++#define AB23 v11
++#define AB30 v12
++#define AB31 v13
++#define AB32 v14
++#define AB33 v15
++
++#define rs_c a6
++#define cs_c a7
++
++REALNAME:
++ #include "rviv_save_registers.h"
++
++ vsetvli s0, zero, VTYPE, m1, ta, ma
++ csrr s0, vlenb
++ FZERO(fzero)
++
++ // Set up pointers
++ add C01_ptr, C00_ptr, cs_c
++ add C02_ptr, C01_ptr, cs_c
++ add C03_ptr, C02_ptr, cs_c
++ add C10_ptr, C00_ptr, rs_c
++ add C11_ptr, C01_ptr, rs_c
++ add C12_ptr, C02_ptr, rs_c
++ add C13_ptr, C03_ptr, rs_c
++
++ // Zero-initialize accumulators
++ vxor.vv AB00, AB00, AB00
++ vxor.vv AB01, AB01, AB01
++ vxor.vv AB02, AB02, AB02
++ vxor.vv AB03, AB03, AB03
++ vxor.vv AB10, AB10, AB10
++ vxor.vv AB11, AB11, AB11
++ vxor.vv AB12, AB12, AB12
++ vxor.vv AB13, AB13, AB13
++ vxor.vv AB20, AB20, AB20
++ vxor.vv AB21, AB21, AB21
++ vxor.vv AB22, AB22, AB22
++ vxor.vv AB23, AB23, AB23
++ vxor.vv AB30, AB30, AB30
++ vxor.vv AB31, AB31, AB31
++ vxor.vv AB32, AB32, AB32
++ vxor.vv AB33, AB33, AB33
++
++ // Handle k == 0
++ beqz loop_counter, MULTIPLYBETA
++
++ // Set up pointers to rows of A
++ add A10_ptr, A00_ptr, s0
++ add A20_ptr, A10_ptr, s0
++ add A30_ptr, A20_ptr, s0
++
++ slli s0, s0, 2 // length of a column of A in bytes
++
++ li tmp, 3
++ ble loop_counter, tmp, TAIL_UNROLL_2
++
++ // Preload A and B
++ // Load A(:,l)
++ VLE A00, (A00_ptr)
++ VLE A10, (A10_ptr)
++ VLE A20, (A20_ptr)
++ VLE A30, (A30_ptr)
++
++ // Load B(l,0:3)
++ FLOAD B00, 0*DATASIZE(B_row_ptr)
++ FLOAD B01, 1*DATASIZE(B_row_ptr)
++ FLOAD B02, 2*DATASIZE(B_row_ptr)
++ FLOAD B03, 3*DATASIZE(B_row_ptr)
++
++ // Set up pointers to A(:,l+1)
++ add A01_ptr, A00_ptr, s0
++ add A11_ptr, A10_ptr, s0
++ add A21_ptr, A20_ptr, s0
++ add A31_ptr, A30_ptr, s0
++
++LOOP_UNROLL_4:
++ addi loop_counter, loop_counter, -4
++
++ vfmacc.vf AB00, B00, A00 // AB(0,:) += A(0,0) * B(0,:)
++ vfmacc.vf AB01, B01, A00
++ vfmacc.vf AB02, B02, A00
++ vfmacc.vf AB03, B03, A00
++
++ vfmacc.vf AB10, B00, A10 // AB(1,:) += A(1,0) * B(0,:)
++ vfmacc.vf AB11, B01, A10
++ vfmacc.vf AB12, B02, A10
++ vfmacc.vf AB13, B03, A10
++
++ // Load B(l+1,0:3)
++ FLOAD B10, 4*DATASIZE(B_row_ptr)
++ FLOAD B11, 5*DATASIZE(B_row_ptr)
++ FLOAD B12, 6*DATASIZE(B_row_ptr)
++ FLOAD B13, 7*DATASIZE(B_row_ptr)
++ addi B_row_ptr, B_row_ptr, 8*DATASIZE
++
++ vfmacc.vf AB20, B00, A20 // AB(2,:) += A(2,0) * B(0,:)
++ vfmacc.vf AB21, B01, A20
++ vfmacc.vf AB22, B02, A20
++ vfmacc.vf AB23, B03, A20
++
++ // Load A(:,l+1)
++ VLE A01, (A01_ptr)
++ VLE A11, (A11_ptr)
++ VLE A21, (A21_ptr)
++ VLE A31, (A31_ptr)
++
++ // Point to A(:,l+2)
++ add A00_ptr, A01_ptr, s0
++ add A10_ptr, A11_ptr, s0
++ add A20_ptr, A21_ptr, s0
++ add A30_ptr, A31_ptr, s0
++
++ vfmacc.vf AB30, B00, A30 // AB(3,:) += A(3,0) * B(0,:)
++ vfmacc.vf AB31, B01, A30
++ vfmacc.vf AB32, B02, A30
++ vfmacc.vf AB33, B03, A30
++
++ vfmacc.vf AB00, B10, A01 // AB(0,:) += A(0,1) * B(1,:)
++ vfmacc.vf AB01, B11, A01
++ vfmacc.vf AB02, B12, A01
++ vfmacc.vf AB03, B13, A01
++
++ // Load B(l+2,0:3)
++ FLOAD B00, 0*DATASIZE(B_row_ptr)
++ FLOAD B01, 1*DATASIZE(B_row_ptr)
++ FLOAD B02, 2*DATASIZE(B_row_ptr)
++ FLOAD B03, 3*DATASIZE(B_row_ptr)
++
++ vfmacc.vf AB10, B10, A11 // AB(1,:) += A(1,1) * B(1,:)
++ vfmacc.vf AB11, B11, A11
++ vfmacc.vf AB12, B12, A11
++ vfmacc.vf AB13, B13, A11
++
++ // Load A(:,l+2)
++ VLE A00, (A00_ptr)
++ VLE A10, (A10_ptr)
++ VLE A20, (A20_ptr)
++ VLE A30, (A30_ptr)
++
++ // Point to A(:,l+3)
++ add A01_ptr, A00_ptr, s0
++ add A11_ptr, A10_ptr, s0
++ add A21_ptr, A20_ptr, s0
++ add A31_ptr, A30_ptr, s0
++
++ vfmacc.vf AB20, B10, A21 // AB(2,:) += A(2,1) * B(1,:)
++ vfmacc.vf AB21, B11, A21
++ vfmacc.vf AB22, B12, A21
++ vfmacc.vf AB23, B13, A21
++
++ vfmacc.vf AB30, B10, A31 // AB(3,:) += A(3,1) * B(1,:)
++ vfmacc.vf AB31, B11, A31
++ vfmacc.vf AB32, B12, A31
++ vfmacc.vf AB33, B13, A31
++
++ // Load A(:,l+3)
++ VLE A01, (A01_ptr)
++ VLE A11, (A11_ptr)
++ VLE A21, (A21_ptr)
++ VLE A31, (A31_ptr)
++
++ // Point to A(:,l+4)
++ add A00_ptr, A01_ptr, s0
++ add A10_ptr, A11_ptr, s0
++ add A20_ptr, A21_ptr, s0
++ add A30_ptr, A31_ptr, s0
++
++ vfmacc.vf AB00, B00, A00 // AB(0,:) += A(0,2) * B(2,:)
++ vfmacc.vf AB01, B01, A00
++ vfmacc.vf AB02, B02, A00
++ vfmacc.vf AB03, B03, A00
++
++ // Load B(l+3,0:3)
++ FLOAD B10, 4*DATASIZE(B_row_ptr)
++ FLOAD B11, 5*DATASIZE(B_row_ptr)
++ FLOAD B12, 6*DATASIZE(B_row_ptr)
++ FLOAD B13, 7*DATASIZE(B_row_ptr)
++ addi B_row_ptr, B_row_ptr, 8*DATASIZE
++
++ vfmacc.vf AB10, B00, A10 // AB(1,:) += A(1,2) * B(2,:)
++ vfmacc.vf AB11, B01, A10
++ vfmacc.vf AB12, B02, A10
++ vfmacc.vf AB13, B03, A10
++
++ vfmacc.vf AB20, B00, A20 // AB(2,:) += A(2,2) * B(2,:)
++ vfmacc.vf AB21, B01, A20
++ vfmacc.vf AB22, B02, A20
++ vfmacc.vf AB23, B03, A20
++
++ vfmacc.vf AB30, B00, A30 // AB(3,:) += A(3,2) * B(3,:)
++ vfmacc.vf AB31, B01, A30
++ vfmacc.vf AB32, B02, A30
++ vfmacc.vf AB33, B03, A30
++
++ vfmacc.vf AB00, B10, A01 // AB(0,:) += A(0,3) * B(3,:)
++ vfmacc.vf AB01, B11, A01
++ vfmacc.vf AB02, B12, A01
++ vfmacc.vf AB03, B13, A01
++
++ vfmacc.vf AB10, B10, A11 // AB(1,:) += A(1,3) * B(3,:)
++ vfmacc.vf AB11, B11, A11
++ vfmacc.vf AB12, B12, A11
++ vfmacc.vf AB13, B13, A11
++
++ vfmacc.vf AB20, B10, A21 // AB(2,:) += A(2,3) * B(3,:)
++ vfmacc.vf AB21, B11, A21
++ vfmacc.vf AB22, B12, A21
++ vfmacc.vf AB23, B13, A21
++
++ vfmacc.vf AB30, B10, A31 // AB(3,:) += A(3,3) * B(3,:)
++ vfmacc.vf AB31, B11, A31
++ vfmacc.vf AB32, B12, A31
++ vfmacc.vf AB33, B13, A31
++
++ li tmp, 3
++ ble loop_counter, tmp, TAIL_UNROLL_2
++
++ // Load A and B for the next iteration
++ // Load B(l,0:3)
++ FLOAD B00, 0*DATASIZE(B_row_ptr)
++ FLOAD B01, 1*DATASIZE(B_row_ptr)
++ FLOAD B02, 2*DATASIZE(B_row_ptr)
++ FLOAD B03, 3*DATASIZE(B_row_ptr)
++
++ // Load A(:,l)
++ VLE A00, (A00_ptr)
++ VLE A10, (A10_ptr)
++ VLE A20, (A20_ptr)
++ VLE A30, (A30_ptr)
++
++ // Set up pointers to A(:,l+1)
++ add A01_ptr, A00_ptr, s0
++ add A11_ptr, A10_ptr, s0
++ add A21_ptr, A20_ptr, s0
++ add A31_ptr, A30_ptr, s0
++
++ j LOOP_UNROLL_4
++
++TAIL_UNROLL_2: // loop_counter <= 3
++ li tmp, 1
++ ble loop_counter, tmp, TAIL_UNROLL_1
++
++ addi loop_counter, loop_counter, -2
++
++ // Load B(l,0:3)
++ FLOAD B00, 0*DATASIZE(B_row_ptr)
++ FLOAD B01, 1*DATASIZE(B_row_ptr)
++ FLOAD B02, 2*DATASIZE(B_row_ptr)
++ FLOAD B03, 3*DATASIZE(B_row_ptr)
++
++ // Load A(0:1,l)
++ VLE A00, (A00_ptr)
++ VLE A10, (A10_ptr)
++
++ // Point to A(:,l+1)
++ add A01_ptr, A00_ptr, s0
++ add A11_ptr, A10_ptr, s0
++ add A21_ptr, A20_ptr, s0
++ add A31_ptr, A30_ptr, s0
++
++ vfmacc.vf AB00, B00, A00 // AB(0,:) += A(0,0) * B(0,:)
++ vfmacc.vf AB01, B01, A00
++ vfmacc.vf AB02, B02, A00
++ vfmacc.vf AB03, B03, A00
++
++ // Load A(2:3,l)
++ VLE A20, (A20_ptr)
++ VLE A30, (A30_ptr)
++
++ vfmacc.vf AB10, B00, A10 // AB(1,:) += A(1,0) * B(0,:)
++ vfmacc.vf AB11, B01, A10
++ vfmacc.vf AB12, B02, A10
++ vfmacc.vf AB13, B03, A10
++
++ // Load B(l+1,0:3)
++ FLOAD B10, 4*DATASIZE(B_row_ptr)
++ FLOAD B11, 5*DATASIZE(B_row_ptr)
++ FLOAD B12, 6*DATASIZE(B_row_ptr)
++ FLOAD B13, 7*DATASIZE(B_row_ptr)
++ addi B_row_ptr, B_row_ptr, 8*DATASIZE
++
++ // Load A(:,l+1)
++ VLE A01, (A01_ptr)
++ VLE A11, (A11_ptr)
++ VLE A21, (A21_ptr)
++ VLE A31, (A31_ptr)
++
++ vfmacc.vf AB20, B00, A20 // AB(2,:) += A(2,0) * B(0,:)
++ vfmacc.vf AB21, B01, A20
++ vfmacc.vf AB22, B02, A20
++ vfmacc.vf AB23, B03, A20
++
++ vfmacc.vf AB30, B00, A30 // AB(3,:) += A(3,0) * B(0,:)
++ vfmacc.vf AB31, B01, A30
++ vfmacc.vf AB32, B02, A30
++ vfmacc.vf AB33, B03, A30
++
++ // Point to A(:,l+2)
++ add A00_ptr, A01_ptr, s0
++ add A10_ptr, A11_ptr, s0
++ add A20_ptr, A21_ptr, s0
++ add A30_ptr, A31_ptr, s0
++
++ vfmacc.vf AB00, B10, A01 // AB(0,:) += A(0,1) * B(1,:)
++ vfmacc.vf AB01, B11, A01
++ vfmacc.vf AB02, B12, A01
++ vfmacc.vf AB03, B13, A01
++
++ vfmacc.vf AB10, B10, A11 // AB(1,:) += A(1,1) * B(1,:)
++ vfmacc.vf AB11, B11, A11
++ vfmacc.vf AB12, B12, A11
++ vfmacc.vf AB13, B13, A11
++
++ vfmacc.vf AB20, B10, A21 // AB(2,:) += A(2,1) * B(1,:)
++ vfmacc.vf AB21, B11, A21
++ vfmacc.vf AB22, B12, A21
++ vfmacc.vf AB23, B13, A21
++
++ vfmacc.vf AB30, B10, A31 // AB(3,:) += A(3,1) * B(1,:)
++ vfmacc.vf AB31, B11, A31
++ vfmacc.vf AB32, B12, A31
++ vfmacc.vf AB33, B13, A31
++
++ li tmp, 1
++ ble loop_counter, tmp, TAIL_UNROLL_1
++
++TAIL_UNROLL_1: // loop_counter <= 1
++ beqz loop_counter, MULTIPLYALPHA
++
++ // Load row of B
++ FLOAD B00, 0*DATASIZE(B_row_ptr)
++ FLOAD B01, 1*DATASIZE(B_row_ptr)
++ FLOAD B02, 2*DATASIZE(B_row_ptr)
++ FLOAD B03, 3*DATASIZE(B_row_ptr)
++
++ // Load A(:,l)
++ VLE A00, (A00_ptr)
++ VLE A10, (A10_ptr)
++ VLE A20, (A20_ptr)
++ VLE A30, (A30_ptr)
++
++ vfmacc.vf AB00, B00, A00 // AB(0,:) += A(0,0) * B(0,:)
++ vfmacc.vf AB01, B01, A00
++ vfmacc.vf AB02, B02, A00
++ vfmacc.vf AB03, B03, A00
++
++ vfmacc.vf AB10, B00, A10 // AB(1,:) += A(1,0) * B(0,:)
++ vfmacc.vf AB11, B01, A10
++ vfmacc.vf AB12, B02, A10
++ vfmacc.vf AB13, B03, A10
++
++ vfmacc.vf AB20, B00, A20 // AB(2,:) += A(2,0) * B(0,:)
++ vfmacc.vf AB21, B01, A20
++ vfmacc.vf AB22, B02, A20
++ vfmacc.vf AB23, B03, A20
++
++ vfmacc.vf AB30, B00, A30 // AB(3,:) += A(3,0) * B(0,:)
++ vfmacc.vf AB31, B01, A30
++ vfmacc.vf AB32, B02, A30
++ vfmacc.vf AB33, B03, A30
++
++MULTIPLYALPHA:
++ FLOAD ALPHA, (a1)
++
++ // Multiply with alpha
++ vfmul.vf AB00, AB00, ALPHA
++ vfmul.vf AB01, AB01, ALPHA
++ vfmul.vf AB02, AB02, ALPHA
++ vfmul.vf AB03, AB03, ALPHA
++
++ vfmul.vf AB10, AB10, ALPHA
++ vfmul.vf AB11, AB11, ALPHA
++ vfmul.vf AB12, AB12, ALPHA
++ vfmul.vf AB13, AB13, ALPHA
++
++ vfmul.vf AB20, AB20, ALPHA
++ vfmul.vf AB21, AB21, ALPHA
++ vfmul.vf AB22, AB22, ALPHA
++ vfmul.vf AB23, AB23, ALPHA
++
++ vfmul.vf AB30, AB30, ALPHA
++ vfmul.vf AB31, AB31, ALPHA
++ vfmul.vf AB32, AB32, ALPHA
++ vfmul.vf AB33, AB33, ALPHA
++
++MULTIPLYBETA:
++ FLOAD BETA, (a4)
++ FEQ tmp, BETA, fzero
++ beq tmp, zero, BETANOTZERO
++
++BETAZERO:
++ VSE AB00, (C00_ptr)
++ VSE AB01, (C01_ptr)
++ VSE AB02, (C02_ptr)
++ VSE AB03, (C03_ptr)
++
++ add C00_ptr, C10_ptr, rs_c // advance pointers to row 2*VLEN
++ add C01_ptr, C11_ptr, rs_c
++ add C02_ptr, C12_ptr, rs_c
++ add C03_ptr, C13_ptr, rs_c
++
++ VSE AB10, (C10_ptr)
++ VSE AB11, (C11_ptr)
++ VSE AB12, (C12_ptr)
++ VSE AB13, (C13_ptr)
++
++ add C10_ptr, C00_ptr, rs_c // advance pointers to row 3*VLEN
++ add C11_ptr, C01_ptr, rs_c
++ add C12_ptr, C02_ptr, rs_c
++ add C13_ptr, C03_ptr, rs_c
++
++ VSE AB20, (C00_ptr)
++ VSE AB21, (C01_ptr)
++ VSE AB22, (C02_ptr)
++ VSE AB23, (C03_ptr)
++
++ VSE AB30, (C10_ptr)
++ VSE AB31, (C11_ptr)
++ VSE AB32, (C12_ptr)
++ VSE AB33, (C13_ptr)
++
++ j END
++
++BETANOTZERO:
++ VLE C00, (C00_ptr) // Load C(0:VLEN-1, 0:3)
++ VLE C01, (C01_ptr)
++ VLE C02, (C02_ptr)
++ VLE C03, (C03_ptr)
++
++ vfmacc.vf AB00, BETA, C00
++ vfmacc.vf AB01, BETA, C01
++ vfmacc.vf AB02, BETA, C02
++ vfmacc.vf AB03, BETA, C03
++
++ VSE AB00, (C00_ptr) // Store C(0:VLEN-1, 0:3)
++ VSE AB01, (C01_ptr)
++ VSE AB02, (C02_ptr)
++ VSE AB03, (C03_ptr)
++
++ add C00_ptr, C10_ptr, rs_c // advance pointers to row 2*VLEN
++ add C01_ptr, C11_ptr, rs_c
++ add C02_ptr, C12_ptr, rs_c
++ add C03_ptr, C13_ptr, rs_c
++
++ VLE C10, (C10_ptr) // Load C(VLEN:2*VLEN-1, 0:3)
++ VLE C11, (C11_ptr)
++ VLE C12, (C12_ptr)
++ VLE C13, (C13_ptr)
++
++ vfmacc.vf AB10, BETA, C10
++ vfmacc.vf AB11, BETA, C11
++ vfmacc.vf AB12, BETA, C12
++ vfmacc.vf AB13, BETA, C13
++
++ VSE AB10, (C10_ptr) // Store C(VLEN:2*VLEN-1, 0:3)
++ VSE AB11, (C11_ptr)
++ VSE AB12, (C12_ptr)
++ VSE AB13, (C13_ptr)
++
++ add C10_ptr, C00_ptr, rs_c // advance pointers to row 3*VLEN
++ add C11_ptr, C01_ptr, rs_c
++ add C12_ptr, C02_ptr, rs_c
++ add C13_ptr, C03_ptr, rs_c
++
++ VLE C20, (C00_ptr) // Load C(2*VLEN:3*VLEN-1, 0:3)
++ VLE C21, (C01_ptr)
++ VLE C22, (C02_ptr)
++ VLE C23, (C03_ptr)
++
++ vfmacc.vf AB20, BETA, C20
++ vfmacc.vf AB21, BETA, C21
++ vfmacc.vf AB22, BETA, C22
++ vfmacc.vf AB23, BETA, C23
++
++ VSE AB20, (C00_ptr) // Store C(2*VLEN:3*VLEN-1, 0:3)
++ VSE AB21, (C01_ptr)
++ VSE AB22, (C02_ptr)
++ VSE AB23, (C03_ptr)
++
++ VLE C30, (C10_ptr) // Load C(3*VLEN:4*VLEN-1, 0:3)
++ VLE C31, (C11_ptr)
++ VLE C32, (C12_ptr)
++ VLE C33, (C13_ptr)
++
++ vfmacc.vf AB30, BETA, C30
++ vfmacc.vf AB31, BETA, C31
++ vfmacc.vf AB32, BETA, C32
++ vfmacc.vf AB33, BETA, C33
++
++ VSE AB30, (C10_ptr) // Store C(3*VLEN:4*VLEN-1, 0:3)
++ VSE AB31, (C11_ptr)
++ VSE AB32, (C12_ptr)
++ VSE AB33, (C13_ptr)
++
++END:
++ #include "rviv_restore_registers.h"
++ ret
+diff --git a/kernels/rviv/3/bli_sgemm_rviv_4vx4.c b/kernels/rviv/3/bli_sgemm_rviv_4vx4.c
+new file mode 100644
+index 000000000..c240d0391
+--- /dev/null
++++ b/kernels/rviv/3/bli_sgemm_rviv_4vx4.c
+@@ -0,0 +1,80 @@
++/*
++
++ BLIS
++ An object-based framework for developing high-performance BLAS-like
++ libraries.
++
++ Copyright (C) 2023, The University of Texas at Austin
++
++ Redistribution and use in source and binary forms, with or without
++ modification, are permitted provided that the following conditions are
++ met:
++ - Redistributions of source code must retain the above copyright
++ notice, this list of conditions and the following disclaimer.
++ - Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in the
++ documentation and/or other materials provided with the distribution.
++ - Neither the name(s) of the copyright holder(s) nor the names of its
++ contributors may be used to endorse or promote products derived
++ from this software without specific prior written permission.
++
++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
++ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
++ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
++ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++
++
++*/
++
++#include "bli_rviv_utils.h"
++
++void bli_sgemm_rviv_asm_4vx4
++ (
++ intptr_t k,
++ const void* alpha,
++ const void* a,
++ const void* b,
++ const void* beta,
++ void* c, inc_t rs_c, inc_t cs_c
++ );
++
++void bli_sgemm_rviv_4vx4
++ (
++ dim_t m,
++ dim_t n,
++ dim_t k,
++ const void* alpha,
++ const void* a,
++ const void* b,
++ const void* beta,
++ void* c, inc_t rs_c, inc_t cs_c,
++ auxinfo_t* data,
++ const cntx_t* cntx
++ )
++{
++ // The assembly kernels always take native machine-sized integer arguments.
++ // dim_t and inc_t are normally defined as being machine-sized. If larger, assert.
++ bli_static_assert( sizeof(dim_t) <= sizeof(intptr_t) &&
++ sizeof(inc_t) <= sizeof(intptr_t) );
++
++ // Extract vector-length dependent mr, nr that are fixed at configure time.
++ const inc_t mr = bli_cntx_get_blksz_def_dt( BLIS_FLOAT, BLIS_MR, cntx );
++ const inc_t nr = 4;
++
++ GEMM_UKR_SETUP_CT( s, mr, nr, false );
++
++ // The kernel assumes rs_c == 1, and the context should not deviate from it.
++ assert( rs_c == 1 );
++
++ bli_sgemm_rviv_asm_4vx4( k, alpha, a, b, beta, c,
++ get_vlenb(), cs_c * sizeof(float) );
++
++ GEMM_UKR_FLUSH_CT( s );
++}
+diff --git a/kernels/rviv/3/bli_sgemm_rviv_asm_4vx4.S b/kernels/rviv/3/bli_sgemm_rviv_asm_4vx4.S
+new file mode 100644
+index 000000000..2a917fc8e
+--- /dev/null
++++ b/kernels/rviv/3/bli_sgemm_rviv_asm_4vx4.S
+@@ -0,0 +1,45 @@
++/*
++
++ BLIS
++ An object-based framework for developing high-performance BLAS-like
++ libraries.
++
++ Copyright (C) 2023, The University of Texas at Austin
++
++ Redistribution and use in source and binary forms, with or without
++ modification, are permitted provided that the following conditions are
++ met:
++ - Redistributions of source code must retain the above copyright
++ notice, this list of conditions and the following disclaimer.
++ - Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in the
++ documentation and/or other materials provided with the distribution.
++ - Neither the name(s) of the copyright holder(s) nor the names of its
++ contributors may be used to endorse or promote products derived
++ from this software without specific prior written permission.
++
++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
++ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
++ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
++ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++
++
++*/
++
++#define REALNAME bli_sgemm_rviv_asm_4vx4
++#define DATASIZE 4
++#define VTYPE e32
++#define FLOAD flw
++#define FZERO(fr) fcvt.s.w fr, x0
++#define FEQ feq.s
++#define VLE vle32.v
++#define VSE vse32.v
++
++#include "bli_sdgemm_rviv_asm_4vx4.h"
+diff --git a/kernels/rviv/3/bli_zgemm_rviv_4vx4.c b/kernels/rviv/3/bli_zgemm_rviv_4vx4.c
+new file mode 100644
+index 000000000..3d9940f9b
+--- /dev/null
++++ b/kernels/rviv/3/bli_zgemm_rviv_4vx4.c
+@@ -0,0 +1,80 @@
++/*
++
++ BLIS
++ An object-based framework for developing high-performance BLAS-like
++ libraries.
++
++ Copyright (C) 2023, The University of Texas at Austin
++
++ Redistribution and use in source and binary forms, with or without
++ modification, are permitted provided that the following conditions are
++ met:
++ - Redistributions of source code must retain the above copyright
++ notice, this list of conditions and the following disclaimer.
++ - Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in the
++ documentation and/or other materials provided with the distribution.
++ - Neither the name(s) of the copyright holder(s) nor the names of its
++ contributors may be used to endorse or promote products derived
++ from this software without specific prior written permission.
++
++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
++ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
++ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
++ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++
++*/
++
++#include "bli_rviv_utils.h"
++
++void bli_zgemm_rviv_asm_4vx4
++ (
++ intptr_t k,
++ const void* alpha,
++ const void* a,
++ const void* b,
++ const void* beta,
++ void* c, intptr_t rs_c, intptr_t cs_c
++ );
++
++
++void bli_zgemm_rviv_4vx4
++ (
++ dim_t m,
++ dim_t n,
++ dim_t k,
++ const void* alpha,
++ const void* a,
++ const void* b,
++ const void* beta,
++ void* c, inc_t rs_c, inc_t cs_c,
++ auxinfo_t* data,
++ const cntx_t* cntx
++ )
++{
++ // The assembly kernels always take native machine-sized integer arguments.
++ // dim_t and inc_t are normally defined as being machine-sized. If larger, assert.
++ bli_static_assert( sizeof(dim_t) <= sizeof(intptr_t) &&
++ sizeof(inc_t) <= sizeof(intptr_t) );
++
++ // Extract vector-length dependent mr, nr that are fixed at configure time.
++ const inc_t mr = bli_cntx_get_blksz_def_dt( BLIS_DCOMPLEX, BLIS_MR, cntx );
++ const inc_t nr = 4;
++
++ GEMM_UKR_SETUP_CT( z, mr, nr, false );
++
++ // The kernel assumes rs_c == 1, and the context should not deviate from it.
++ assert( rs_c == 1 );
++
++ bli_zgemm_rviv_asm_4vx4( k, alpha, a, b, beta, c,
++ get_vlenb() * 2, cs_c * sizeof(dcomplex) );
++
++ GEMM_UKR_FLUSH_CT( z );
++}
+diff --git a/kernels/rviv/3/bli_zgemm_rviv_asm_4vx4.S b/kernels/rviv/3/bli_zgemm_rviv_asm_4vx4.S
+new file mode 100644
+index 000000000..ae61a415d
+--- /dev/null
++++ b/kernels/rviv/3/bli_zgemm_rviv_asm_4vx4.S
+@@ -0,0 +1,44 @@
++/*
++
++ BLIS
++ An object-based framework for developing high-performance BLAS-like
++ libraries.
++
++ Copyright (C) 2023, The University of Texas at Austin
++
++ Redistribution and use in source and binary forms, with or without
++ modification, are permitted provided that the following conditions are
++ met:
++ - Redistributions of source code must retain the above copyright
++ notice, this list of conditions and the following disclaimer.
++ - Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in the
++ documentation and/or other materials provided with the distribution.
++ - Neither the name(s) of the copyright holder(s) nor the names of its
++ contributors may be used to endorse or promote products derived
++ from this software without specific prior written permission.
++
++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
++ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
++ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
++ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++
++*/
++
++#define REALNAME bli_zgemm_rviv_asm_4vx4
++#define DATASIZE 16
++#define VTYPE e64
++#define FLOAD fld
++#define FZERO(fr) fcvt.d.w fr, x0
++#define FEQ feq.d
++#define VLE vlseg2e64.v
++#define VSE vsseg2e64.v
++
++#include "bli_czgemm_rviv_asm_4vx4.h"
+diff --git a/kernels/rviv/3/rviv_restore_registers.h b/kernels/rviv/3/rviv_restore_registers.h
+new file mode 100644
+index 000000000..bcf7d17c8
+--- /dev/null
++++ b/kernels/rviv/3/rviv_restore_registers.h
+@@ -0,0 +1,77 @@
++/*
++
++ BLIS
++ An object-based framework for developing high-performance BLAS-like
++ libraries.
++
++ Copyright (C) 2023, The University of Texas at Austin
++
++ Redistribution and use in source and binary forms, with or without
++ modification, are permitted provided that the following conditions are
++ met:
++ - Redistributions of source code must retain the above copyright
++ notice, this list of conditions and the following disclaimer.
++ - Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in the
++ documentation and/or other materials provided with the distribution.
++ - Neither the name(s) of the copyright holder(s) nor the names of its
++ contributors may be used to endorse or promote products derived
++ from this software without specific prior written permission.
++
++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
++ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
++ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
++ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++
++*/
++
++
++// 128-bit RISC-V is assumed to support the __riscv_xlen test macro
++#if __riscv_xlen == 128 // false if !defined(__riscv_xlen)
++
++ lq s7, 112(sp)
++ lq s6, 96(sp)
++ lq s5, 80(sp)
++ lq s4, 64(sp)
++ lq s3, 48(sp)
++ lq s2, 32(sp)
++ lq s1, 16(sp)
++ lq s0, 0(sp)
++ addi sp, sp, 128
++
++// 64-bit RISC-V can be indicated by either __riscv_xlen == 64 or
++// RISCV_SIZE == 64, to support toolchains which do not currently
++// support __riscv_xlen. If a macro is undefined, it is considered 0.
++#elif __riscv_xlen == 64 || RISCV_SIZE == 64
++
++ ld s7, 56(sp)
++ ld s6, 48(sp)
++ ld s5, 40(sp)
++ ld s4, 32(sp)
++ ld s3, 24(sp)
++ ld s2, 16(sp)
++ ld s1, 8(sp)
++ ld s0, 0(sp)
++ addi sp, sp, 64
++
++#else
++// else 32-bit RISC-V is assumed
++
++ lw s7, 28(sp)
++ lw s6, 24(sp)
++ lw s5, 20(sp)
++ lw s4, 16(sp)
++ lw s3, 12(sp)
++ lw s2, 8(sp)
++ lw s1, 4(sp)
++ lw s0, 0(sp)
++ addi sp, sp, 32
++
++#endif
+diff --git a/kernels/rviv/3/rviv_save_registers.h b/kernels/rviv/3/rviv_save_registers.h
+new file mode 100644
+index 000000000..537c76ca6
+--- /dev/null
++++ b/kernels/rviv/3/rviv_save_registers.h
+@@ -0,0 +1,77 @@
++/*
++
++ BLIS
++ An object-based framework for developing high-performance BLAS-like
++ libraries.
++
++ Copyright (C) 2023, The University of Texas at Austin
++
++ Redistribution and use in source and binary forms, with or without
++ modification, are permitted provided that the following conditions are
++ met:
++ - Redistributions of source code must retain the above copyright
++ notice, this list of conditions and the following disclaimer.
++ - Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in the
++ documentation and/or other materials provided with the distribution.
++ - Neither the name(s) of the copyright holder(s) nor the names of its
++ contributors may be used to endorse or promote products derived
++ from this software without specific prior written permission.
++
++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
++ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
++ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
++ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++
++
++*/
++
++// 128-bit RISC-V is assumed to support the __riscv_xlen test macro
++#if __riscv_xlen == 128 // false if !defined(__riscv_xlen)
++
++ addi sp, sp, -128
++ sq s7, 112(sp)
++ sq s6, 96(sp)
++ sq s5, 80(sp)
++ sq s4, 64(sp)
++ sq s3, 48(sp)
++ sq s2, 32(sp)
++ sq s1, 16(sp)
++ sq s0, 0(sp)
++
++// 64-bit RISC-V can be indicated by either __riscv_xlen == 64 or
++// RISCV_SIZE == 64, to support toolchains which do not currently
++// support __riscv_xlen. If a macro is undefined, it is considered 0.
++#elif __riscv_xlen == 64 || RISCV_SIZE == 64
++
++ addi sp, sp, -64
++ sd s7, 56(sp)
++ sd s6, 48(sp)
++ sd s5, 40(sp)
++ sd s4, 32(sp)
++ sd s3, 24(sp)
++ sd s2, 16(sp)
++ sd s1, 8(sp)
++ sd s0, 0(sp)
++
++#else
++// else 32-bit RISC-V is assumed
++
++ addi sp, sp, -32
++ sw s7, 28(sp)
++ sw s6, 24(sp)
++ sw s5, 20(sp)
++ sw s4, 16(sp)
++ sw s3, 12(sp)
++ sw s2, 8(sp)
++ sw s1, 4(sp)
++ sw s0, 0(sp)
++
++#endif
+diff --git a/kernels/rviv/bli_kernels_rviv.h b/kernels/rviv/bli_kernels_rviv.h
+new file mode 100644
+index 000000000..82a652396
+--- /dev/null
++++ b/kernels/rviv/bli_kernels_rviv.h
+@@ -0,0 +1,38 @@
++/*
++
++ BLIS
++ An object-based framework for developing high-performance BLAS-like
++ libraries.
++
++ Copyright (C) 2023, The University of Texas at Austin
++
++ Redistribution and use in source and binary forms, with or without
++ modification, are permitted provided that the following conditions are
++ met:
++ - Redistributions of source code must retain the above copyright
++ notice, this list of conditions and the following disclaimer.
++ - Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in the
++ documentation and/or other materials provided with the distribution.
++ - Neither the name(s) of the copyright holder(s) nor the names of its
++ contributors may be used to endorse or promote products derived
++ from this software without specific prior written permission.
++
++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
++ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
++ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
++ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++
++*/
++
++GEMM_UKR_PROT( float, s, gemm_rviv_4vx4 )
++GEMM_UKR_PROT( double, d, gemm_rviv_4vx4 )
++GEMM_UKR_PROT( scomplex, c, gemm_rviv_4vx4 )
++GEMM_UKR_PROT( dcomplex, z, gemm_rviv_4vx4 )
+diff --git a/travis/do_riscv.sh b/travis/do_riscv.sh
+new file mode 100755
+index 000000000..a51d33061
+--- /dev/null
++++ b/travis/do_riscv.sh
+@@ -0,0 +1,36 @@
++#!/bin/bash
++
++set -e
++set -x
++
++TAG=2023.02.25
++
++# The prebuilt toolchains only support hardfloat, so we only
++# test these for now.
++case $1 in
++ "rv32iv")
++ TARBALL=riscv32-glibc-ubuntu-20.04-nightly-${TAG}-nightly.tar.gz
++ ;;
++ "rv64iv")
++ TARBALL=riscv64-glibc-ubuntu-20.04-nightly-${TAG}-nightly.tar.gz
++ ;;
++ *)
++ exit 1
++ ;;
++esac
++
++TOOLCHAIN_PATH=$DIST_PATH/../toolchain
++TOOLCHAIN_URL=https://github.com/riscv-collab/riscv-gnu-toolchain/releases/download/${TAG}/${TARBALL}
++
++mkdir -p $TOOLCHAIN_PATH
++cd $TOOLCHAIN_PATH
++
++wget $TOOLCHAIN_URL
++tar -xf $TARBALL
++
++# Once CI upgrades to jammy, the next three lines can be removed.
++# The qemu version installed via packages (qemu-user qemu-user-binfmt)
++# is sufficient.
++TARBALL_QEMU=qemu-riscv-2023.02.25-ubuntu-20.04.tar.gz
++wget https://github.com/flame/ci-utils/raw/master/riscv/${TARBALL_QEMU}
++tar -xf $TARBALL_QEMU
+diff --git a/frame/base/bli_riscv_cpuid.h b/build/detect/riscv/bli_riscv_cpuid.h
+similarity index 100%
+rename from frame/base/bli_riscv_cpuid.h
+rename to build/detect/riscv/bli_riscv_cpuid.h
+diff --git a/build/detect/riscv/bli_riscv_detect_abi.h b/build/detect/riscv/bli_riscv_detect_abi.h
+new file mode 100644
+index 000000000..a5a373926
+--- /dev/null
++++ b/build/detect/riscv/bli_riscv_detect_abi.h
+@@ -0,0 +1,63 @@
++/*
++
++ BLIS
++ An object-based framework for developing high-performance BLAS-like
++ libraries.
++
++ Copyright (C) 2023, The University of Texas at Austin
++
++ Redistribution and use in source and binary forms, with or without
++ modification, are permitted provided that the following conditions are
++ met:
++ - Redistributions of source code must retain the above copyright
++ notice, this list of conditions and the following disclaimer.
++ - Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in the
++ documentation and/or other materials provided with the distribution.
++ - Neither the name(s) of the copyright holder(s) nor the names of its
++ contributors may be used to endorse or promote products derived
++ from this software without specific prior written permission.
++
++ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
++ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
++ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
++ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
++ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
++ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
++ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++
++
++*/
++
++/* Construct a RISC-V ABI string based on available features. */
++
++#if __riscv
++
++#define CAT2(a,b) a##b
++#define CAT(a,b) CAT2(a,b)
++
++#if __riscv_xlen == 32
++#define RISCV_INT_ABI ilp32
++#else
++#define RISCV_INT_ABI lp64
++#endif
++
++#if __riscv_abi_rve
++CAT(RISCV_INT_ABI, e)
++#elif __riscv_float_abi_soft
++RISCV_INT_ABI
++#elif __riscv_float_abi_single
++CAT(RISCV_INT_ABI, f)
++#elif __riscv_float_abi_double
++CAT(RISCV_INT_ABI, d)
++#elif __riscv_float_abi_quad
++CAT(RISCV_INT_ABI, q)
++#else
++#error "Unknown RISC-V ABI"
++#endif
++
++#endif /* __riscv */
+diff --git a/frame/base/bli_riscv_detect_arch.h b/build/detect/riscv/bli_riscv_detect_arch.h
+similarity index 72%
+rename from frame/base/bli_riscv_detect_arch.h
+rename to build/detect/riscv/bli_riscv_detect_arch.h
+index 448b0f39d..55542f508 100644
+--- a/frame/base/bli_riscv_detect_arch.h
++++ b/build/detect/riscv/bli_riscv_detect_arch.h
+@@ -75,6 +75,12 @@
+ #define RISCV_D
+ #endif
+
++#if __riscv_flen >= 128
++#define RISCV_Q q
++#else
++#define RISCV_Q
++#endif
++
+ #if __riscv_c
+ #define RISCV_C c
+ #else
+@@ -94,6 +100,47 @@
+ #define RISCV_V
+ #endif
+
++/* No test currently for Zicsr, which was removed from the base ISA,
++ but F implies Zicsr */
++#if __riscv_f
++#define RISCV_ZICSR _zicsr
++#else
++#define RISCV_ZICSR
++#endif
++
++/* No test currently for Zifencei, which was removed from the base ISA */
++#define RISCV_ZIFENCEI
++
++#if __riscv_zba
++#define RISCV_ZBA _zba
++#else
++#define RISCV_ZBA
++#endif
++
++#if __riscv_zbb
++#define RISCV_ZBB _zbb
++#else
++#define RISCV_ZBB
++#endif
++
++#if __riscv_zbc
++#define RISCV_ZBC _zbc
++#else
++#define RISCV_ZBC
++#endif
++
++#if __riscv_zbs
++#define RISCV_ZBS _zbs
++#else
++#define RISCV_ZBS
++#endif
++
++#if __riscv_zfh
++#define RISCV_ZFH _zfh
++#else
++#define RISCV_ZFH
++#endif
++
+ #else /* __riscv_arch_test */
+
+ /* We assume I and E are exclusive when __riscv_arch_test isn't defined */
+@@ -129,6 +176,12 @@
+ #define RISCV_D
+ #endif
+
++#if __riscv_flen >= 128
++#define RISCV_Q q
++#else
++#define RISCV_Q
++#endif
++
+ #if __riscv_compressed
+ #define RISCV_C c
+ #else
+@@ -144,12 +197,29 @@
+ #define RISCV_V
+ #endif
+
++/* No test currently for Zicsr, which was removed from the base ISA, but
++ F implies Zicsr */
++#if __riscv_flen >= 32
++#define RISCV_ZICSR _zicsr
++#else
++#define RISCV_ZICSR
++#endif
++
++#define RISCV_ZIFENCEI
++#define RISCV_ZBA
++#define RISCV_ZBB
++#define RISCV_ZBC
++#define RISCV_ZBS
++#define RISCV_ZFH
++
+ #endif /* __riscv_arch_test */
+
+ #define CAT2(a,b) a##b
+ #define CAT(a,b) CAT2(a,b)
+
+ CAT(rv, CAT(__riscv_xlen, CAT(RISCV_I, CAT(RISCV_E, CAT(RISCV_M, CAT(RISCV_A,
+-CAT(RISCV_F, CAT(RISCV_D, CAT(RISCV_C, CAT(RISCV_P, RISCV_V))))))))))
++CAT(RISCV_F, CAT(RISCV_D, CAT(RISCV_Q, CAT(RISCV_C, CAT(RISCV_P, CAT(RISCV_V,
++CAT(RISCV_ZICSR, CAT(RISCV_ZIFENCEI, CAT(RISCV_ZBA, CAT(RISCV_ZBB,
++CAT(RISCV_ZBC, CAT(RISCV_ZBS, RISCV_ZFH))))))))))))))))))
+
+ #endif /* __riscv */
+diff --git a/config/rv32i/make_defs.mk b/config/rv32i/make_defs.mk
+index 86b7143dd..21128717f 100644
+--- a/config/rv32i/make_defs.mk
++++ b/config/rv32i/make_defs.mk
+@@ -46,9 +46,17 @@ THIS_CONFIG := rv32i
+ # general-purpose/configuration-agnostic flags in common.mk. You
+ # may specify additional flags here as needed.
+ CPPROCFLAGS := -DRISCV_SIZE=32
+-# Atomic instructions must be enabled either via hardware
+-# (-march=rv32ia) or by linking against libatomic
+-CMISCFLAGS := -march=$(shell $(CC) -E frame/base/bli_riscv_detect_arch.h | grep '^[^\#]') -mabi=ilp32
++
++RISCV_ARCH := $(shell $(CC) -E build/detect/riscv/bli_riscv_detect_arch.h | grep '^[^\#]')
++RISCV_ABI := $(shell $(CC) -E build/detect/riscv/bli_riscv_detect_abi.h | grep '^[^\#]')
++
++ifeq (,$(findstring 32,$(RISCV_ARCH)))
++$(error The RISC-V compiler architecture $(RISCV_ARCH) is not compatible with $(THIS_CONFIG))
++else ifeq (,$(findstring 32,$(RISCV_ABI)))
++$(error The RISC-V compiler ABI $(RISCV_ABI) is not compatible with $(THIS_CONFIG))
++endif
++
++CMISCFLAGS := -march=$(RISCV_ARCH) -mabi=$(RISCV_ABI)
+ CPICFLAGS :=
+ CWARNFLAGS := -Wall -Wno-unused-function -Wfatal-errors
+
+diff --git a/config/rv32iv/make_defs.mk b/config/rv32iv/make_defs.mk
+index e8d9cca57..9daaee3d6 100644
+--- a/config/rv32iv/make_defs.mk
++++ b/config/rv32iv/make_defs.mk
+@@ -46,9 +46,17 @@ THIS_CONFIG := rv32iv
+ # general-purpose/configuration-agnostic flags in common.mk. You
+ # may specify additional flags here as needed.
+ CPPROCFLAGS := -DRISCV_SIZE=32
+-# Atomic instructions must be enabled either via hardware
+-# (-march=rv32iav) or by linking against libatomic
+-CMISCFLAGS := -march=$(shell $(CC) -DFORCE_RISCV_VECTOR -E frame/base/bli_riscv_detect_arch.h | grep '^[^\#]') -mabi=ilp32d
++
++RISCV_ARCH := $(shell $(CC) -DFORCE_RISCV_VECTOR -E build/detect/riscv/bli_riscv_detect_arch.h | grep '^[^\#]')
++RISCV_ABI := $(shell $(CC) -DFORCE_RISCV_VECTOR -E build/detect/riscv/bli_riscv_detect_abi.h | grep '^[^\#]')
++
++ifeq (,$(findstring 32,$(RISCV_ARCH)))
++$(error The RISC-V compiler architecture $(RISCV_ARCH) is not compatible with $(THIS_CONFIG))
++else ifeq (,$(findstring 32,$(RISCV_ABI)))
++$(error The RISC-V compiler ABI $(RISCV_ABI) is not compatible with $(THIS_CONFIG))
++endif
++
++CMISCFLAGS := -march=$(RISCV_ARCH) -mabi=$(RISCV_ABI)
+ CPICFLAGS :=
+ CWARNFLAGS := -Wall -Wno-unused-function -Wfatal-errors
+
+diff --git a/config/rv64i/make_defs.mk b/config/rv64i/make_defs.mk
+index bee21ed0d..7c055f012 100644
+--- a/config/rv64i/make_defs.mk
++++ b/config/rv64i/make_defs.mk
+@@ -46,7 +46,17 @@ THIS_CONFIG := rv64i
+ # general-purpose/configuration-agnostic flags in common.mk. You
+ # may specify additional flags here as needed.
+ CPPROCFLAGS := -DRISCV_SIZE=64
+-CMISCFLAGS := -march=$(shell $(CC) -E frame/base/bli_riscv_detect_arch.h | grep '^[^\#]') -mabi=lp64
++
++RISCV_ARCH := $(shell $(CC) -E build/detect/riscv/bli_riscv_detect_arch.h | grep '^[^\#]')
++RISCV_ABI := $(shell $(CC) -E build/detect/riscv/bli_riscv_detect_abi.h | grep '^[^\#]')
++
++ifeq (,$(findstring 64,$(RISCV_ARCH)))
++$(error The RISC-V compiler architecture $(RISCV_ARCH) is not compatible with $(THIS_CONFIG))
++else ifeq (,$(findstring 64,$(RISCV_ABI)))
++$(error The RISC-V compiler ABI $(RISCV_ABI) is not compatible with $(THIS_CONFIG))
++endif
++
++CMISCFLAGS := -march=$(RISCV_ARCH) -mabi=$(RISCV_ABI)
+ CPICFLAGS :=
+ CWARNFLAGS := -Wall -Wno-unused-function -Wfatal-errors
+
+diff --git a/config/rv64iv/make_defs.mk b/config/rv64iv/make_defs.mk
+index 1c9849fbe..9ec5a889a 100644
+--- a/config/rv64iv/make_defs.mk
++++ b/config/rv64iv/make_defs.mk
+@@ -46,7 +46,17 @@ THIS_CONFIG := rv64iv
+ # general-purpose/configuration-agnostic flags in common.mk. You
+ # may specify additional flags here as needed.
+ CPPROCFLAGS := -DRISCV_SIZE=64
+-CMISCFLAGS := -march=$(shell $(CC) -DFORCE_RISCV_VECTOR -E frame/base/bli_riscv_detect_arch.h | grep '^[^\#]') -mabi=lp64d
++
++RISCV_ARCH := $(shell $(CC) -DFORCE_RISCV_VECTOR -E build/detect/riscv/bli_riscv_detect_arch.h | grep '^[^\#]')
++RISCV_ABI := $(shell $(CC) -DFORCE_RISCV_VECTOR -E build/detect/riscv/bli_riscv_detect_abi.h | grep '^[^\#]')
++
++ifeq (,$(findstring 64,$(RISCV_ARCH)))
++$(error The RISC-V compiler architecture $(RISCV_ARCH) is not compatible with $(THIS_CONFIG))
++else ifeq (,$(findstring 64,$(RISCV_ABI)))
++$(error The RISC-V compiler ABI $(RISCV_ABI) is not compatible with $(THIS_CONFIG))
++endif
++
++CMISCFLAGS := -march=$(RISCV_ARCH) -mabi=$(RISCV_ABI)
+ CPICFLAGS :=
+ CWARNFLAGS := -Wall -Wno-unused-function -Wfatal-errors
+
+diff --git a/configure b/configure
+index 6938d47cd..f87093cad 100755
+--- a/configure
++++ b/configure
+@@ -1252,7 +1252,7 @@ auto_detect()
+ # Special case for RISC-V, whose architecture can be detected with
+ # preprocessor macros alone. This avoids having to run RISC-V binaries
+ # on a cross-compiler host. Returns "generic" if RISC-V not detected.
+- riscv_config=$(${cmd} -E "${dist_path}/frame/base/bli_riscv_cpuid.h" |
++ riscv_config=$(${cmd} -E "${dist_path}/build/detect/riscv/bli_riscv_cpuid.h" |
+ grep '^[^#]')
+ if [[ $riscv_config != *generic* ]]; then
+ echo "${riscv_config}"
diff --git a/easybuild/easyconfigs/b/BLIS/BLIS-1.0-GCC-13.2.0.eb b/easybuild/easyconfigs/b/BLIS/BLIS-1.0-GCC-13.2.0.eb
new file mode 100644
index 00000000000..4ebb0543a39
--- /dev/null
+++ b/easybuild/easyconfigs/b/BLIS/BLIS-1.0-GCC-13.2.0.eb
@@ -0,0 +1,33 @@
+easyblock = 'ConfigureMake'
+
+name = 'BLIS'
+version = '1.0'
+
+homepage = 'https://github.com/flame/blis/'
+description = """BLIS is a portable software framework for instantiating high-performance
+BLAS-like dense linear algebra libraries."""
+
+toolchain = {'name': 'GCC', 'version': '13.2.0'}
+
+source_urls = ['https://github.com/flame/blis/archive/']
+sources = ['%(version)s.tar.gz']
+checksums = ['9c12972aa1e50f64ca61684eba6828f2f3dd509384b1e41a1e8a9aedea4b16a6']
+
+builddependencies = [
+ ('Python', '3.11.5'),
+ ('Perl', '5.38.0'),
+]
+
+configopts = '--enable-cblas --enable-threading=openmp --enable-shared CC="$CC" auto'
+
+runtest = 'check'
+
+sanity_check_paths = {
+ 'files': ['include/blis/cblas.h', 'include/blis/blis.h',
+ 'lib/libblis.a', 'lib/libblis.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+
+modextrapaths = {'CPATH': 'include/blis'}
+
+moduleclass = 'numlib'
diff --git a/easybuild/easyconfigs/b/BLIS/BLIS-1.0-GCC-13.3.0.eb b/easybuild/easyconfigs/b/BLIS/BLIS-1.0-GCC-13.3.0.eb
new file mode 100644
index 00000000000..18d8ec6c887
--- /dev/null
+++ b/easybuild/easyconfigs/b/BLIS/BLIS-1.0-GCC-13.3.0.eb
@@ -0,0 +1,33 @@
+easyblock = 'ConfigureMake'
+
+name = 'BLIS'
+version = '1.0'
+
+homepage = 'https://github.com/flame/blis/'
+description = """BLIS is a portable software framework for instantiating high-performance
+BLAS-like dense linear algebra libraries."""
+
+toolchain = {'name': 'GCC', 'version': '13.3.0'}
+
+source_urls = ['https://github.com/flame/blis/archive/']
+sources = ['%(version)s.tar.gz']
+checksums = ['9c12972aa1e50f64ca61684eba6828f2f3dd509384b1e41a1e8a9aedea4b16a6']
+
+builddependencies = [
+ ('Python', '3.12.3'),
+ ('Perl', '5.38.2'),
+]
+
+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/BRAKER/BRAKER-3.0.8-foss-2023a.eb b/easybuild/easyconfigs/b/BRAKER/BRAKER-3.0.8-foss-2023a.eb
new file mode 100644
index 00000000000..7a87a70ddb1
--- /dev/null
+++ b/easybuild/easyconfigs/b/BRAKER/BRAKER-3.0.8-foss-2023a.eb
@@ -0,0 +1,55 @@
+# updated: Denis Kristak (INUITS)
+# Update: Petr Král (INUITS)
+easyblock = 'Tarball'
+
+name = 'BRAKER'
+version = '3.0.8'
+
+homepage = 'https://github.com/Gaius-Augustus/BRAKER'
+description = """BRAKER is a pipeline for fully automated prediction of protein coding genes with GeneMark-ES/ET
+ and AUGUSTUS in novel eukaryotic genomes."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+source_urls = ['https://github.com/Gaius-Augustus/BRAKER/archive/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['f2623290c3007a3e42719a0bb2713bec7226db222bfef742895a9d5d0b4ee526']
+
+dependencies = [
+ ('Perl', '5.36.1'),
+ ('Python', '3.11.3'),
+ ('AUGUSTUS', '3.5.0'),
+ ('GeneMark-ET', '4.72'),
+ ('BamTools', '2.5.2'),
+ ('SAMtools', '1.18'),
+ ('GenomeThreader', '1.7.3', '-Linux_x86_64-64bit', SYSTEM),
+ ('spaln', '3.0.6b'),
+ ('Exonerate', '2.4.0'),
+ ('BLAST+', '2.14.1'),
+ ('Biopython', '1.83'),
+ ('DIAMOND', '2.1.8'),
+ ('CDBtools', '0.99'),
+]
+
+fix_perl_shebang_for = ['scripts/*.pl']
+fix_python_shebang_for = ['scripts/*.py']
+
+sanity_check_paths = {
+ 'files': [
+ 'scripts/braker.pl',
+ 'scripts/compare_intervals_exact.pl',
+ 'scripts/compute_accuracies.sh',
+ 'scripts/compute_accuracies.sh',
+ 'scripts/filterGenemark.pl',
+ 'scripts/findGenesInIntrons.pl',
+ 'scripts/gatech_pmp2hints.pl',
+ 'scripts/sortGeneMark.py',
+ ],
+ 'dirs': ['docs', 'example'],
+}
+
+sanity_check_commands = ["braker.pl --help"]
+
+modextrapaths = {'PATH': 'scripts'}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/b/BRiAl/BRiAl-1.2.12-GCC-13.2.0.eb b/easybuild/easyconfigs/b/BRiAl/BRiAl-1.2.12-GCC-13.2.0.eb
new file mode 100644
index 00000000000..50bbeea16ee
--- /dev/null
+++ b/easybuild/easyconfigs/b/BRiAl/BRiAl-1.2.12-GCC-13.2.0.eb
@@ -0,0 +1,31 @@
+easyblock = 'ConfigureMake'
+
+name = 'BRiAl'
+version = '1.2.12'
+
+homepage = 'https://github.com/BRiAl/BRiAl'
+description = """BRiAl is the legacy version of PolyBoRi maintained by sagemath developers."""
+
+toolchain = {'name': 'GCC', 'version': '13.2.0'}
+
+source_urls = ['https://github.com/BRiAl/BRiAl/releases/download/%(version)s']
+sources = [SOURCELOWER_TAR_BZ2]
+checksums = ['ca009e3722dd3f0a60d15501caed1413146c80abced57423e32ae0116f407494']
+
+dependencies = [
+ ('Boost', '1.83.0'),
+ ('m4ri', '20200125'),
+ ('CUDD', '3.0.0'),
+]
+
+configopts = "--with-boost=$EBROOTBOOST "
+
+runtest = 'check'
+
+sanity_check_paths = {
+ 'files': ['include/polybori.h'] +
+ ['lib/libbrial.%s' % e for e in ['a', SHLIB_EXT]],
+ 'dirs': [],
+}
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/b/BWA/BWA-0.7.17-20220923-GCCcore-12.3.0.eb b/easybuild/easyconfigs/b/BWA/BWA-0.7.17-20220923-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..6f701c63b85
--- /dev/null
+++ b/easybuild/easyconfigs/b/BWA/BWA-0.7.17-20220923-GCCcore-12.3.0.eb
@@ -0,0 +1,50 @@
+##
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+#
+# Copyright:: Copyright 2012-2014 Cyprus Institute / CaSToRC, Uni.Lu/LCSB, NTUA
+# Authors:: George Tsouloupas , 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
+#
+# Version >= 0.7.15
+# Author: Adam Huffman
+# The Francis Crick Institute
+#
+# Note that upstream development is mainly at: https://github.com/lh3/bwa
+##
+
+name = 'BWA'
+local_commit = '139f68f'
+version = '0.7.17-20220923'
+
+homepage = 'http://bio-bwa.sourceforge.net/'
+description = """
+ Burrows-Wheeler Aligner (BWA) is an efficient program that aligns relatively
+ short nucleotide sequences against a long reference sequence such as the human
+ genome.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/lh3/bwa/archive']
+sources = [{'download_filename': '%s.tar.gz' % local_commit, 'filename': SOURCE_TAR_GZ}]
+checksums = ['be460d6e13ddf34896aafae00bad71e05a0b9f7e23490eeeca8ad257065f5e60']
+
+builddependencies = [('binutils', '2.40')]
+
+dependencies = [
+ ('Perl', '5.36.1'),
+ ('zlib', '1.2.13'),
+]
+
+# Allow use of x86 intrinsics on PPC
+prebuildopts = 'export CFLAGS="$CFLAGS -fcommon -DNO_WARN_X86_INTRINSICS" && '
+prebuildopts += "sed -i 's|^CC=|#CC=|g' Makefile && "
+prebuildopts += "sed -i 's|^CFLAGS=|#CFLAGS=|g' Makefile && "
+prebuildopts += "sed -i 's|^LIBS=|LIBS= $(LDFLAGS) |g' Makefile && "
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/b/BWA/BWA-0.7.18-GCCcore-12.3.0.eb b/easybuild/easyconfigs/b/BWA/BWA-0.7.18-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..a5599e37642
--- /dev/null
+++ b/easybuild/easyconfigs/b/BWA/BWA-0.7.18-GCCcore-12.3.0.eb
@@ -0,0 +1,52 @@
+##
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+#
+# Copyright:: Copyright 2012-2014 Cyprus Institute / CaSToRC, Uni.Lu/LCSB, NTUA
+# Authors:: George Tsouloupas , 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
+#
+# Version >= 0.7.15
+# Author: Adam Huffman
+# The Francis Crick Institute
+#
+# Note that upstream development is mainly at: https://github.com/lh3/bwa
+#
+# 0.7.18
+# Erica Bianco (HPCNow!)
+##
+
+name = 'BWA'
+version = '0.7.18'
+
+homepage = 'http://bio-bwa.sourceforge.net/'
+description = """
+ Burrows-Wheeler Aligner (BWA) is an efficient program that aligns relatively
+ short nucleotide sequences against a long reference sequence such as the human
+ genome.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/lh3/%(name)s/archive/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['194788087f7b9a77c0114aa481b2ef21439f6abab72488c83917302e8d0e7870']
+
+builddependencies = [('binutils', '2.40')]
+
+dependencies = [
+ ('Perl', '5.36.1'),
+ ('zlib', '1.2.13'),
+]
+
+# Allow use of x86 intrinsics on PPC
+prebuildopts = 'export CFLAGS="$CFLAGS -fcommon -DNO_WARN_X86_INTRINSICS" && '
+prebuildopts += "sed -i 's|^CC=|#CC=|g' Makefile && "
+prebuildopts += "sed -i 's|^CFLAGS=|#CFLAGS=|g' Makefile && "
+prebuildopts += "sed -i 's|^LIBS=|LIBS= $(LDFLAGS) |g' Makefile && "
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/b/BamTools/BamTools-2.5.2-GCC-13.2.0.eb b/easybuild/easyconfigs/b/BamTools/BamTools-2.5.2-GCC-13.2.0.eb
new file mode 100644
index 00000000000..a8e5449e98c
--- /dev/null
+++ b/easybuild/easyconfigs/b/BamTools/BamTools-2.5.2-GCC-13.2.0.eb
@@ -0,0 +1,22 @@
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+name = 'BamTools'
+version = '2.5.2'
+
+homepage = 'https://github.com/pezmaster31/bamtools'
+description = "BamTools provides both a programmer's API and an end-user's toolkit for handling BAM files."
+
+toolchain = {'name': 'GCC', 'version': '13.2.0'}
+toolchainopts = {'pic': True}
+
+source_urls = [GITHUB_LOWER_SOURCE]
+sources = ['v%(version)s.tar.gz']
+checksums = ['4d8b84bd07b673d0ed41031348f10ca98dd6fa6a4460f9b9668d6f1d4084dfc8']
+
+builddependencies = [
+ ('CMake', '3.27.6'),
+]
+
+# https://github.com/pezmaster31/bamtools
+github_account = 'pezmaster31'
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/b/BamTools/BamTools-2.5.2-GCC-13.3.0.eb b/easybuild/easyconfigs/b/BamTools/BamTools-2.5.2-GCC-13.3.0.eb
new file mode 100644
index 00000000000..23e1ad0e743
--- /dev/null
+++ b/easybuild/easyconfigs/b/BamTools/BamTools-2.5.2-GCC-13.3.0.eb
@@ -0,0 +1,22 @@
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+name = 'BamTools'
+version = '2.5.2'
+
+homepage = 'https://github.com/pezmaster31/bamtools'
+description = "BamTools provides both a programmer's API and an end-user's toolkit for handling BAM files."
+
+toolchain = {'name': 'GCC', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = [GITHUB_LOWER_SOURCE]
+sources = ['v%(version)s.tar.gz']
+checksums = ['4d8b84bd07b673d0ed41031348f10ca98dd6fa6a4460f9b9668d6f1d4084dfc8']
+
+builddependencies = [
+ ('CMake', '3.29.3'),
+]
+
+# https://github.com/pezmaster31/bamtools
+github_account = 'pezmaster31'
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/b/Bandage/Bandage-0.9.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/b/Bandage/Bandage-0.9.0-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..acdc093c96d
--- /dev/null
+++ b/easybuild/easyconfigs/b/Bandage/Bandage-0.9.0-GCCcore-12.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': '12.3.0'}
+
+source_urls = ['https://github.com/rrwick/Bandage/archive']
+sources = ['v%(version)s.tar.gz']
+checksums = ['04de8152d8bf5e5aa32b41a63cf1c23e1fee7b67ccd9f1407db8dc2824ca4e30']
+
+builddependencies = [('binutils', '2.40')]
+
+dependencies = [('Qt5', '5.15.10')]
+
+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/BayesOpt/BayesOpt-0.9-GCC-12.3.0.eb b/easybuild/easyconfigs/b/BayesOpt/BayesOpt-0.9-GCC-12.3.0.eb
new file mode 100644
index 00000000000..2e20ceba904
--- /dev/null
+++ b/easybuild/easyconfigs/b/BayesOpt/BayesOpt-0.9-GCC-12.3.0.eb
@@ -0,0 +1,33 @@
+easyblock = 'CMakeMake'
+
+name = 'BayesOpt'
+version = '0.9'
+
+homepage = 'https://rmcantin.github.io/bayesopt'
+description = """BayesOpt is an efficient implementation of the Bayesian optimization methodology for
+nonlinear-optimization, experimental design, stochastic bandits and hyperparameter tunning"""
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+
+source_urls = ['https://github.com/rmcantin/bayesopt/archive/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['f4e60cfac380eccd2d1adc805b752b5bd22a1d8a27dc6aeb630c403adc04f28c']
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+]
+
+dependencies = [
+ ('Boost', '1.82.0'),
+ ('NLopt', '2.7.1'),
+]
+
+# don't build included version of NLopt (use provided dependency)
+configopts = "-DNLOPT_BUILD=OFF"
+
+sanity_check_paths = {
+ 'files': ['lib/libbayesopt.a'],
+ 'dirs': ['include/bayesopt'],
+}
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/b/BayesTraits/BayesTraits-4.1.2-Linux.eb b/easybuild/easyconfigs/b/BayesTraits/BayesTraits-4.1.2-Linux.eb
new file mode 100644
index 00000000000..541dedf129e
--- /dev/null
+++ b/easybuild/easyconfigs/b/BayesTraits/BayesTraits-4.1.2-Linux.eb
@@ -0,0 +1,40 @@
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+# Author: Pablo Escobar Lopez
+# Swiss Institute of Bioinformatics
+# Biozentrum - University of Basel
+
+# Updated by
+# Author: Alex Salois
+# Research Cyberinfrastructure
+# Montana State University
+
+easyblock = "Tarball"
+
+name = 'BayesTraits'
+version = '4.1.2'
+versionsuffix = '-Linux'
+
+homepage = 'https://www.evolution.reading.ac.uk/SoftwareMain.html'
+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://www.evolution.reading.ac.uk/BayesTraitsV%(version)s/Files/']
+sources = ['BayesTraitsV%(version)s%(versionsuffix)s.tar.gz']
+checksums = ['d5251c2b256405fc63c55caf8371b267530a3c4ebd11cbfd3ebd4013c9d49db0']
+
+sanity_check_paths = {
+ 'files': ['BayesTraitsV4', 'Artiodactyl.trees', 'Bird.trees', 'Mammal.trees',
+ 'Marsupials.trees', 'NortheastBantu.trees', 'Primates.trees'],
+ 'dirs': [],
+}
+
+modextrapaths = {'PATH': ''}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/b/Bazel/Bazel-6.1.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/b/Bazel/Bazel-6.1.0-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..1bacc7b9363
--- /dev/null
+++ b/easybuild/easyconfigs/b/Bazel/Bazel-6.1.0-GCCcore-12.3.0.eb
@@ -0,0 +1,29 @@
+name = 'Bazel'
+version = '6.1.0'
+
+homepage = 'https://bazel.io/'
+description = """Bazel is a build tool that builds code quickly and reliably.
+It is used to build the majority of Google's software."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = ['https://github.com/bazelbuild/%(namelower)s/releases/download/%(version)s']
+sources = ['%(namelower)s-%(version)s-dist.zip']
+patches = ['Bazel-6.3.1_add-symlinks-in-runfiles.patch']
+checksums = [
+ {'bazel-6.1.0-dist.zip': 'c4b85675541cf66ee7cb71514097fdd6c5fc0e02527243617a4f20ca6b4f2932'},
+ {'Bazel-6.3.1_add-symlinks-in-runfiles.patch': '81db53aa87229557480b6f719c99a0f1af9c69dfec12185451e520b0128c3ae2'},
+]
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('Python', '3.11.3'),
+ ('Zip', '3.0'),
+]
+
+dependencies = [('Java', '11', '', SYSTEM)]
+
+runtest = True
+testopts = "-- //examples/cpp:hello-success_test //examples/py/... //examples/py_native:test //examples/shell/..."
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/b/BeautifulSoup/BeautifulSoup-4.12.2-GCCcore-12.3.0.eb b/easybuild/easyconfigs/b/BeautifulSoup/BeautifulSoup-4.12.2-GCCcore-12.3.0.eb
index cc388eeb4ca..8d4556012b6 100644
--- a/easybuild/easyconfigs/b/BeautifulSoup/BeautifulSoup-4.12.2-GCCcore-12.3.0.eb
+++ b/easybuild/easyconfigs/b/BeautifulSoup/BeautifulSoup-4.12.2-GCCcore-12.3.0.eb
@@ -9,12 +9,12 @@ description = "Beautiful Soup is a Python library designed for quick turnaround
toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
builddependencies = [
- ('binutils', '2.40')
+ ('binutils', '2.40'),
+ ('hatchling', '1.18.0'),
]
dependencies = [
('Python', '3.11.3'),
- ('hatchling', '1.18.0'),
]
use_pip = True
diff --git a/easybuild/easyconfigs/b/BeautifulSoup/BeautifulSoup-4.12.2-GCCcore-13.2.0.eb b/easybuild/easyconfigs/b/BeautifulSoup/BeautifulSoup-4.12.2-GCCcore-13.2.0.eb
index 4aeb23721ad..bbf74453cfd 100644
--- a/easybuild/easyconfigs/b/BeautifulSoup/BeautifulSoup-4.12.2-GCCcore-13.2.0.eb
+++ b/easybuild/easyconfigs/b/BeautifulSoup/BeautifulSoup-4.12.2-GCCcore-13.2.0.eb
@@ -9,12 +9,12 @@ description = "Beautiful Soup is a Python library designed for quick turnaround
toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
builddependencies = [
- ('binutils', '2.40')
+ ('binutils', '2.40'),
+ ('hatchling', '1.18.0'),
]
dependencies = [
('Python', '3.11.5'),
- ('hatchling', '1.18.0'),
]
use_pip = True
diff --git a/easybuild/easyconfigs/b/BeautifulSoup/BeautifulSoup-4.12.3-GCCcore-13.3.0.eb b/easybuild/easyconfigs/b/BeautifulSoup/BeautifulSoup-4.12.3-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..95cb6cf3228
--- /dev/null
+++ b/easybuild/easyconfigs/b/BeautifulSoup/BeautifulSoup-4.12.3-GCCcore-13.3.0.eb
@@ -0,0 +1,35 @@
+easyblock = 'PythonBundle'
+
+name = 'BeautifulSoup'
+version = '4.12.3'
+
+homepage = 'https://www.crummy.com/software/BeautifulSoup'
+description = "Beautiful Soup is a Python library designed for quick turnaround projects like screen-scraping."
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('hatchling', '1.24.2'),
+]
+
+dependencies = [
+ ('Python', '3.12.3'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('soupsieve', '2.5', {
+ 'checksums': ['5663d5a7b3bfaeee0bc4372e7fc48f9cff4940b3eec54a6451cc5299f1097690'],
+ }),
+ (name, version, {
+ 'modulename': 'bs4',
+ 'source_tmpl': 'beautifulsoup4-%(version)s.tar.gz',
+ 'source_urls': ['https://pypi.python.org/packages/source/b/beautifulsoup4'],
+ 'checksums': ['74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051'],
+ }),
+]
+
+moduleclass = 'data'
diff --git a/easybuild/easyconfigs/b/BerkeleyGW/BerkeleyGW-4.0-foss-2022a.eb b/easybuild/easyconfigs/b/BerkeleyGW/BerkeleyGW-4.0-foss-2022a.eb
new file mode 100644
index 00000000000..8ff40739c76
--- /dev/null
+++ b/easybuild/easyconfigs/b/BerkeleyGW/BerkeleyGW-4.0-foss-2022a.eb
@@ -0,0 +1,34 @@
+name = 'BerkeleyGW'
+version = '4.0'
+
+homepage = 'https://www.berkeleygw.org'
+description = """The BerkeleyGW Package is a set of computer codes that calculates the quasiparticle
+ properties and the optical responses of a large variety of materials from bulk periodic crystals to
+ nanostructures such as slabs, wires and molecules."""
+
+toolchain = {'name': 'foss', 'version': '2022a'}
+toolchainopts = {'usempi': True, 'openmp': True}
+
+source_urls = ['https://app.box.com/shared/static/']
+sources = [{'download_filename': '22edl07muvhfnd900tnctsjjftbtcqc4.gz', 'filename': SOURCE_TAR_GZ}]
+patches = [
+ 'BerkeleyGW-4.0_tests.patch',
+ 'BerkeleyGW-4.0_makefile.patch',
+]
+checksums = [
+ {'BerkeleyGW-4.0.tar.gz': '1a85b03b83b339056f65124bfa96832ca61152236d9bb1cb372e3040fc686a49'},
+ {'BerkeleyGW-4.0_tests.patch': 'e544a53613bb3e6a779813f301912b6c6ca8a55215f77faf6827fc6eeeb5459d'},
+ {'BerkeleyGW-4.0_makefile.patch': '0aa7c1dbdfa94d9be6835cb0a768559df1e43a1a8b73a2143f09f99981f8041c'},
+]
+
+dependencies = [
+ ('ELPA', '2021.11.001'),
+ ('Perl', '5.34.1'),
+ ('Python', '3.10.4'),
+ ('h5py', '3.7.0'),
+ ('fftlib', '20170628'),
+]
+
+runtest = True
+
+moduleclass = 'phys'
diff --git a/easybuild/easyconfigs/b/BerkeleyGW/BerkeleyGW-4.0_makefile.patch b/easybuild/easyconfigs/b/BerkeleyGW/BerkeleyGW-4.0_makefile.patch
new file mode 100644
index 00000000000..6c7f69eb8bf
--- /dev/null
+++ b/easybuild/easyconfigs/b/BerkeleyGW/BerkeleyGW-4.0_makefile.patch
@@ -0,0 +1,24 @@
+* don't rebuild flavors when installing and checking, and check using MPI
+author: Miguel Dias Costa (National University of Singapore)
+--- BerkeleyGW-4.0/Makefile.orig 2024-03-20 11:08:04.996274767 +0800
++++ BerkeleyGW-4.0/Makefile 2024-03-20 11:08:22.466174576 +0800
+@@ -130,7 +130,7 @@
+ cp flavor_cplx.mk flavor.mk
+ $(MAKE) all
+
+-install: all
++install:
+ ifdef INSTDIR
+ mkdir -p $(INSTDIR)/bin
+ install bin/*.x $(INSTDIR)/bin/
+@@ -152,8 +152,8 @@
+ $(error Error: Please define installation prefix INSTDIR via 'make install INSTDIR='.)
+ endif
+
+-check: all
+- cd testsuite && $(MAKE) check
++check:
++ cd testsuite && $(MAKE) check-parallel
+
+ check-save: all
+ cd testsuite && $(MAKE) check-save
diff --git a/easybuild/easyconfigs/b/BerkeleyGW/BerkeleyGW-4.0_tests.patch b/easybuild/easyconfigs/b/BerkeleyGW/BerkeleyGW-4.0_tests.patch
new file mode 100644
index 00000000000..78f0c4de3bf
--- /dev/null
+++ b/easybuild/easyconfigs/b/BerkeleyGW/BerkeleyGW-4.0_tests.patch
@@ -0,0 +1,40 @@
+* allow test scripts to inherit environment
+* set stack size ulimit to unlimited
+* slightly raise tolerance in some tests
+author: Miguel Dias Costa (National University of Singapore)
+--- BerkeleyGW-4.0/testsuite/run_testsuite.sh.orig 2024-03-20 01:10:39.000000000 +0800
++++ BerkeleyGW-4.0/testsuite/run_testsuite.sh 2024-03-20 11:11:19.179296008 +0800
+@@ -1,4 +1,4 @@
+-#!/bin/bash -l
++#!/bin/bash
+ #
+ # Copyright (C) 2005-2009 Heiko Appel, David Strubbe
+ #
+@@ -66,6 +66,8 @@
+ # Run all tests. Takes as first argument a list of testfile names.
+ function run_testsuite() {
+
++ulimit -s unlimited
++
+ tests="$1"
+
+ # Check for 'preserve working directories' flag.
+--- BerkeleyGW-4.0/MeanField/Utilities/mf_convert_wrapper.sh.orig 2024-03-20 11:11:41.219446558 +0800
++++ BerkeleyGW-4.0/MeanField/Utilities/mf_convert_wrapper.sh 2024-03-20 11:11:56.019547652 +0800
+@@ -1,4 +1,4 @@
+-#!/bin/bash -l
++#!/bin/bash
+
+ # David Strubbe, October 2010
+ # Wrapper for mf_convert.x
+--- BerkeleyGW-4.0/testsuite/GaAs-EPM/GaAs.test.orig 2024-03-20 11:55:47.333669371 +0800
++++ BerkeleyGW-4.0/testsuite/GaAs-EPM/GaAs.test 2024-03-20 11:57:15.045252252 +0800
+@@ -32,7 +32,7 @@
+ Output : WFN.out
+ Input : WFN.in PIPE
+
+-Precision : 8e-15
++Precision : 8e-14
+ match ; Eigenvalue 1 at k-pt 1 ; GREP(WFN.out, "kpoint 1", 2, 1); -0.2710614199849328
+ match ; Eigenvalue 10 at k-pt 1 ; GREP(WFN.out, "kpoint 1", 2, 10); 1.2565373697755460
+ match ; Eigenvalue 18 at k-pt 2 ; GREP(WFN.out, "kpoint 2", 2, 18); 2.1322637363008994
diff --git a/easybuild/easyconfigs/b/BiG-SCAPE/BiG-SCAPE-1.1.9-foss-2023b.eb b/easybuild/easyconfigs/b/BiG-SCAPE/BiG-SCAPE-1.1.9-foss-2023b.eb
new file mode 100644
index 00000000000..59f7c1a7cd5
--- /dev/null
+++ b/easybuild/easyconfigs/b/BiG-SCAPE/BiG-SCAPE-1.1.9-foss-2023b.eb
@@ -0,0 +1,68 @@
+easyblock = 'PythonPackage'
+
+name = 'BiG-SCAPE'
+version = '1.1.9'
+
+homepage = 'https://bigscape-corason.secondarymetabolites.org/index.html'
+description = """BiG-SCAPE and CORASON provide a set of tools to explore the diversity of biosynthetic gene clusters
+(BGCs) across large numbers of genomes, by constructing BGC sequence similarity networks, grouping BGCs into gene
+cluster families, and exploring gene cluster diversity linked to enzyme phylogenies."""
+
+toolchain = {'name': 'foss', 'version': '2023b'}
+
+github_account = 'medema-group'
+source_urls = [GITHUB_SOURCE]
+sources = ['v%(version)s.tar.gz']
+patches = [
+ 'BiG-SCAPE-1.1.5_use_env_var_for_html.patch',
+ 'BiG-SCAPE-1.1.5_use_correct_name_for_FastTree.patch',
+]
+checksums = [
+ {'v1.1.9.tar.gz': 'ef0ddb5b433e0b1467ae5f96037fd6d23ebcba6bc08201d1421eba35d072e534'},
+ {'BiG-SCAPE-1.1.5_use_env_var_for_html.patch': '540be22396ab982c2aeaaed4ce5acdb8ccb8ce2b31d36bc69d37be7a29c7c42a'},
+ {'BiG-SCAPE-1.1.5_use_correct_name_for_FastTree.patch':
+ 'e1572e4134c6163a3927ac32bd2a39b7f87cf01109f7913b3c55126e2381a771'},
+]
+
+dependencies = [
+ ('Python', '3.11.5'),
+ ('SciPy-bundle', '2023.11'),
+ ('Biopython', '1.84'),
+ ('scikit-learn', '1.4.0'),
+ ('networkx', '3.2.1'),
+ ('HMMER', '3.4'),
+ ('FastTree', '2.1.11'),
+]
+
+use_pip = True
+download_dep_fail = True
+sanity_pip_check = True
+
+options = {'modulename': 'bigscape'}
+
+local_lib_py_bigscape_path = 'lib/python%(pyshortver)s/site-packages/bigscape'
+
+sanity_check_paths = {
+ 'files': ['bin/bigscape'],
+ 'dirs': [local_lib_py_bigscape_path],
+}
+
+sanity_check_commands = [
+ 'bigscape --help',
+]
+
+modextravars = {
+ 'BIG_SCAPE_HTML_PATH': '%(installdir)s/' + local_lib_py_bigscape_path,
+}
+
+modloadmsg = "%(name)s needs processed Pfam database to work properly.\n"
+modloadmsg += "For this, download the latest 'Pfam-A.hmm.gz' file from the Pfam website "
+modloadmsg += "(http://ftp.ebi.ac.uk/pub/databases/Pfam/releases/), "
+modloadmsg += "uncompress it and process it using the `hmmpress` command.\n"
+modloadmsg += "For data files, like the domains_color_file.tsv and domain_includelist.txt, "
+modloadmsg += "one can set the environment variable BIG_SCAPE_DATA_PATH, if that is not set "
+modloadmsg += "it will use the directory where the bigscape command is started from.\n"
+modloadmsg += "One can copy the domains_color_file.tsv from "
+modloadmsg += "%(installdir)s/lib/python%(pyshortver)s/site-packages/BiG-SCAPE/domains_color_file.tsv\n"
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/b/BindCraft/BindCraft-1.1.0-foss-2023a.eb b/easybuild/easyconfigs/b/BindCraft/BindCraft-1.1.0-foss-2023a.eb
new file mode 100644
index 00000000000..49345e486d8
--- /dev/null
+++ b/easybuild/easyconfigs/b/BindCraft/BindCraft-1.1.0-foss-2023a.eb
@@ -0,0 +1,89 @@
+easyblock = 'Tarball'
+
+name = 'BindCraft'
+version = '1.1.0'
+
+homepage = 'https://github.com/martinpacesa/BindCraft'
+description = """Simple binder design pipeline using AlphaFold2 backpropagation, MPNN, and PyRosetta.
+ Select your target and let the script do the rest of the work and finish once you have enough designs to order!"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+source_urls = ['https://github.com/martinpacesa/BindCraft/archive/refs/tags/']
+sources = [{'download_filename': 'v%(version)s.tar.gz', 'filename': '%(name)s-%(version)s.tar.gz'}]
+checksums = ['c682f59501f0bcfbb8289fd066362dcea37ed8553cdff5c794a2baa6d4149ce7']
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('Biopython', '1.83'),
+ ('Seaborn', '0.13.2'),
+ ('tqdm', '4.66.1'),
+ ('OpenMM', '8.0.0'),
+ ('FFmpeg', '6.0'),
+ ('matplotlib', '3.7.2'),
+ ('PyRosetta', '4.release-387'),
+ ('jax', '0.4.25'),
+ ('dm-haiku', '0.0.13'),
+ ('dm-tree', '0.1.8'),
+ ('ml-collections', '0.1.1'),
+ ('Optax', '0.2.2'),
+ ('py3Dmol', '2.1.0'),
+ ('JupyterLab', '4.0.5'),
+ ('hatchling', '1.18.0'),
+ ('Flax', '0.8.4'),
+]
+
+exts_defaultclass = 'PythonPackage'
+exts_default_options = {
+ 'source_urls': [PYPI_SOURCE],
+ 'download_dep_fail': True,
+ 'use_pip': True,
+ 'sanity_pip_check': True,
+}
+exts_list = [
+ ('PDBFixer', '1.9', {
+ 'source_urls': ['https://github.com/openmm/pdbfixer/archive/'],
+ 'sources': [{'download_filename': '%(version)s.tar.gz', 'filename': '%(name)s-%(version)s.tar.gz'}],
+ 'checksums': ['88b9a77e50655f89d0eb2075093773e82c27a4cef842cb7d735c877b20cd39fb'],
+ }),
+ ('jupyter_console', '6.6.3', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['309d33409fcc92ffdad25f0bcdf9a4a9daa61b6f341177570fdac03de5352485'],
+ }),
+ # older version compatible with `jupyterlab-4.0.5`
+ ('notebook', '7.0.8', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['7f421b3fd46a17d91830e724b94e8e9ae922af152ebfd48b1e13ae4a07d8193c'],
+ }),
+ ('jupyter', '1.1.1', {
+ 'source_tmpl': SOURCE_WHL,
+ 'checksums': ['7a59533c22af65439b24bbe60373a4e95af8f16ac65a6c00820ad378e3f7cc83'],
+ }),
+ ('immutabledict', '4.2.0', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['d728b2c2410d698d95e6200237feb50a695584d20289ad3379a439aa3d90baba'],
+ }),
+ ('colabdesign', '1.1.1', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['8f556fb575d2bbef79fa1789698d55221f2cc51df38f2cc054f38cb6ecc08e27'],
+ }),
+]
+
+fix_python_shebang_for = ['bindcraft.py']
+
+postinstallcmds = ['chmod a+x %(installdir)s/bindcraft.py']
+
+modextrapaths = {
+ 'PATH': '',
+ 'PYTHONPATH': ['', 'lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_paths = {
+ 'files': ['bindcraft.py'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["bindcraft.py --help"]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/b/Bio-DB-HTS/Bio-DB-HTS-3.01-GCC-12.2.0.eb b/easybuild/easyconfigs/b/Bio-DB-HTS/Bio-DB-HTS-3.01-GCC-12.2.0.eb
new file mode 100644
index 00000000000..a3de8e7098b
--- /dev/null
+++ b/easybuild/easyconfigs/b/Bio-DB-HTS/Bio-DB-HTS-3.01-GCC-12.2.0.eb
@@ -0,0 +1,32 @@
+easyblock = 'PerlModule'
+
+name = 'Bio-DB-HTS'
+version = '3.01'
+
+homepage = 'https://metacpan.org/release/Bio-DB-HTS'
+description = "Read files using HTSlib including BAM/CRAM, Tabix and BCF database files"
+
+toolchain = {'name': 'GCC', 'version': '12.2.0'}
+
+source_urls = ['https://cpan.metacpan.org/authors/id/A/AV/AVULLO/']
+sources = ['Bio-DB-HTS-%(version)s.tar.gz']
+checksums = ['12a6bc1f579513cac8b9167cce4e363655cc8eba26b7d9fe1170dfe95e044f42']
+
+builddependencies = [('pkgconf', '1.9.3')]
+
+dependencies = [
+ ('Perl', '5.36.0'),
+ ('BioPerl', '1.7.8'),
+ ('HTSlib', '1.17'),
+]
+
+preconfigopts = "env HTSLIB_DIR=$EBROOTHTSLIB"
+
+options = {'modulename': 'Bio::DB::HTS'}
+
+sanity_check_paths = {
+ 'files': [],
+ 'dirs': ['lib/perl5/site_perl/%(perlver)s', 'man/man3'],
+}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/b/Bio-FeatureIO/Bio-FeatureIO-1.6.905-GCCcore-12.3.0.eb b/easybuild/easyconfigs/b/Bio-FeatureIO/Bio-FeatureIO-1.6.905-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..703507a8069
--- /dev/null
+++ b/easybuild/easyconfigs/b/Bio-FeatureIO/Bio-FeatureIO-1.6.905-GCCcore-12.3.0.eb
@@ -0,0 +1,55 @@
+easyblock = 'PerlModule'
+
+name = 'Bio-FeatureIO'
+version = '1.6.905'
+
+homepage = 'https://metacpan.org/pod/Bio::FeatureIO'
+description = "An I/O iterator subsystem for genomic sequence features"
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+builddependencies = [('binutils', '2.40')]
+
+dependencies = [
+ ('Perl', '5.36.1'),
+ ('Perl-bundle-CPAN', '5.36.1'),
+ ('BioPerl', '1.7.8'),
+]
+
+exts_defaultclass = 'PerlModule'
+exts_filter = ("perldoc -lm %(ext_name)s ", "")
+
+exts_list = [
+ ('XML::XPathEngine', '0.14', {
+ 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MI/MIROD/'],
+ 'sources': ['XML-XPathEngine-%(version)s.tar.gz'],
+ 'checksums': ['d2fe7bcbbd0beba1444f4a733401e7b8aa5282fad4266d42735dd74582b2e264'],
+ }),
+ ('XML::DOM::XPath', '0.14', {
+ 'patches': ['XML-DOM-XPath-0.14_fix-test.patch'],
+ 'source_urls': ['https://cpan.metacpan.org/authors/id/M/MI/MIROD'],
+ 'sources': ['XML-DOM-XPath-%(version)s.tar.gz'],
+ 'checksums': [
+ {'XML-DOM-XPath-0.14.tar.gz': '0173a74a515211997a3117a47e7b9ea43594a04b865b69da5a71c0886fa829ea'},
+ {'XML-DOM-XPath-0.14_fix-test.patch': 'c93f3e4bf3ead76dd1a167cee963cc81cd5409ea95d3c6a01d93369f4267648e'},
+ ],
+ }),
+ ('Bio::FeatureIO', version, {
+ 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CJ/CJFIELDS/'],
+ 'sources': ['Bio-FeatureIO-%(version)s.tar.gz'],
+ 'checksums': ['322e5757b374f2fb90b8f20bdbdc75631f5cb4d122f81a4d35c3a177cf950c7a'],
+ }),
+]
+
+options = {'modulename': 'Bio::FeatureIO'}
+
+modextrapaths = {
+ 'PERL5LIB': 'lib/perl5/site_perl/%(perlver)s/',
+}
+
+sanity_check_paths = {
+ 'files': ['lib/perl5/site_perl/%(perlver)s/Bio/FeatureIO.pm'],
+ 'dirs': ['lib/perl5/site_perl/%(perlver)s/Bio/FeatureIO'],
+}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/b/Bio-FeatureIO/XML-DOM-XPath-0.14_fix-test.patch b/easybuild/easyconfigs/b/Bio-FeatureIO/XML-DOM-XPath-0.14_fix-test.patch
new file mode 100644
index 00000000000..164f74f9cc3
--- /dev/null
+++ b/easybuild/easyconfigs/b/Bio-FeatureIO/XML-DOM-XPath-0.14_fix-test.patch
@@ -0,0 +1,16 @@
+fix for failing test:
+ The encoding pragma is no longer supported. Check cperl at t/test_non_ascii.t line 10.
+ BEGIN failed--compilation aborted at t/test_non_ascii.t line 10.
+see https://rt.cpan.org/Public/Bug/Display.html?id=115098
+diff -rup XML-DOM-XPath-0.14-_1HaPx-orig/t/test_non_ascii.t XML-DOM-XPath-0.14-_1HaPx/t/test_non_ascii.t
+--- XML-DOM-XPath-0.14-_1HaPx-orig/t/test_non_ascii.t 2016-07-14 22:05:39.000000000 -0700
++++ XML-DOM-XPath-0.14-_1HaPx/t/test_non_ascii.t 2016-07-14 22:05:56.000000000 -0700
+@@ -7,7 +7,7 @@ use strict;
+ use Test::More tests => 10;
+ use XML::DOM::XPath;
+
+-use encoding 'utf8';
++use utf8;
+
+ my $display_warning=0;
+
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
index 8caddd5df22..e8e52099b07 100644
--- 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
@@ -5,7 +5,7 @@
# Fred Hutchinson Cancer Research Center
# Thomas Eylenbosch - Gluo NV
-easyblock = 'PerlModule'
+easyblock = 'Bundle'
name = 'BioPerl'
version = '1.7.8'
diff --git a/easybuild/easyconfigs/b/BioPerl/BioPerl-1.7.8-GCCcore-12.3.0.eb b/easybuild/easyconfigs/b/BioPerl/BioPerl-1.7.8-GCCcore-12.3.0.eb
index b47216124f8..4212570abb1 100644
--- a/easybuild/easyconfigs/b/BioPerl/BioPerl-1.7.8-GCCcore-12.3.0.eb
+++ b/easybuild/easyconfigs/b/BioPerl/BioPerl-1.7.8-GCCcore-12.3.0.eb
@@ -5,7 +5,7 @@
# Fred Hutchinson Cancer Research Center
# Thomas Eylenbosch - Gluo NV
-easyblock = 'PerlModule'
+easyblock = 'Bundle'
name = 'BioPerl'
version = '1.7.8'
diff --git a/easybuild/easyconfigs/b/BioPerl/BioPerl-1.7.8-GCCcore-13.3.0.eb b/easybuild/easyconfigs/b/BioPerl/BioPerl-1.7.8-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..ba3029a6a41
--- /dev/null
+++ b/easybuild/easyconfigs/b/BioPerl/BioPerl-1.7.8-GCCcore-13.3.0.eb
@@ -0,0 +1,58 @@
+# easybuild easyconfig
+#
+# John Dey jfdey@fredhutch.org
+#
+# Fred Hutchinson Cancer Research Center
+# Thomas Eylenbosch - Gluo NV
+
+easyblock = 'Bundle'
+
+name = 'BioPerl'
+version = '1.7.8'
+
+homepage = 'https://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': '13.3.0'}
+
+builddependencies = [('binutils', '2.42')]
+
+dependencies = [
+ ('Perl', '5.38.2'),
+ ('Perl-bundle-CPAN', '5.38.2'),
+ ('XML-LibXML', '2.0210'),
+ ('DB_File', '1.859'),
+]
+
+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/Biopython/Biopython-1.84-foss-2023b.eb b/easybuild/easyconfigs/b/Biopython/Biopython-1.84-foss-2023b.eb
new file mode 100644
index 00000000000..03c23f41186
--- /dev/null
+++ b/easybuild/easyconfigs/b/Biopython/Biopython-1.84-foss-2023b.eb
@@ -0,0 +1,46 @@
+# Updated from previous easyconfig
+# Author: Robert Mijakovic
+# Update: Pavel Tománek (INUITS)
+
+easyblock = 'PythonPackage'
+
+name = 'Biopython'
+version = '1.84'
+
+homepage = 'https://www.biopython.org'
+description = """Biopython is a set of freely available tools for biological
+ computation written in Python by an international team of developers. It is
+ a distributed collaborative effort to develop Python libraries and
+ applications which address the needs of current and future work in
+ bioinformatics. """
+
+toolchain = {'name': 'foss', 'version': '2023b'}
+
+source_urls = ['https://biopython.org/DIST']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['60fbe6f996e8a6866a42698c17e552127d99a9aab3259d6249fbaabd0e0cc7b4']
+
+dependencies = [
+ ('Python', '3.11.5'),
+ ('SciPy-bundle', '2023.11'),
+]
+
+download_dep_fail = True
+use_pip = True
+sanity_pip_check = True
+
+# Run only tests that don't require internet connection
+runtest = 'python setup.py test --offline'
+
+sanity_check_paths = {
+ 'files': [],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages/Bio',
+ 'lib/python%(pyshortver)s/site-packages/BioSQL']
+}
+
+# extra check to ensure numpy dependency is available
+sanity_check_commands = ["python -c 'import Bio.MarkovModel'"]
+
+options = {'modulename': 'Bio'}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/b/Biotite/Biotite-0.41.0-gfbf-2023a.eb b/easybuild/easyconfigs/b/Biotite/Biotite-0.41.0-gfbf-2023a.eb
new file mode 100644
index 00000000000..8d4385e45f5
--- /dev/null
+++ b/easybuild/easyconfigs/b/Biotite/Biotite-0.41.0-gfbf-2023a.eb
@@ -0,0 +1,32 @@
+easyblock = 'PythonBundle'
+
+name = 'Biotite'
+version = '0.41.0'
+
+homepage = 'https://www.biotite-python.org/'
+description = """Biotite is your Swiss army knife for bioinformatics. Whether you want to
+identify homologous sequence regions in a protein family or you would like to
+find disulfide bonds in a protein structure: Biotite has the right tool for
+you. This package bundles popular tasks in computational molecular biology into
+a uniform Python library."""
+
+toolchain = {'name': 'gfbf', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('SciPy-bundle', '2023.07'),
+ ('networkx', '3.1'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('biotite', version, {
+ 'checksums': ['a5fddb4d738291772735cf04dfa8b642e0bdd6b4c2c0c71e2db727c0a66bd106'],
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/b/Bison/Bison-3.8.2-GCCcore-13.3.0.eb b/easybuild/easyconfigs/b/Bison/Bison-3.8.2-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..168af69373e
--- /dev/null
+++ b/easybuild/easyconfigs/b/Bison/Bison-3.8.2-GCCcore-13.3.0.eb
@@ -0,0 +1,28 @@
+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': '13.3.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.42', '', 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/Bison/Bison-3.8.2-GCCcore-14.1.0.eb b/easybuild/easyconfigs/b/Bison/Bison-3.8.2-GCCcore-14.1.0.eb
new file mode 100644
index 00000000000..dc255caae50
--- /dev/null
+++ b/easybuild/easyconfigs/b/Bison/Bison-3.8.2-GCCcore-14.1.0.eb
@@ -0,0 +1,28 @@
+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': '14.1.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.42', '', 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/Bison/Bison-3.8.2-GCCcore-14.2.0.eb b/easybuild/easyconfigs/b/Bison/Bison-3.8.2-GCCcore-14.2.0.eb
new file mode 100644
index 00000000000..427ebbbe2b7
--- /dev/null
+++ b/easybuild/easyconfigs/b/Bison/Bison-3.8.2-GCCcore-14.2.0.eb
@@ -0,0 +1,28 @@
+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': '14.2.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.42', '', 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/Block/Block-1.5.3-20200525-foss-2023a.eb b/easybuild/easyconfigs/b/Block/Block-1.5.3-20200525-foss-2023a.eb
new file mode 100644
index 00000000000..da1316c8aa6
--- /dev/null
+++ b/easybuild/easyconfigs/b/Block/Block-1.5.3-20200525-foss-2023a.eb
@@ -0,0 +1,56 @@
+easyblock = 'MakeCp'
+
+name = 'Block'
+version = '1.5.3-20200525'
+_commit = 'f95317b08043b7c531289576d59ad74a6d920741'
+
+homepage = 'https://sanshar.github.io/Block/'
+description = """Block implements the density matrix renormalization group (DMRG) algorithm for
+quantum chemistry."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'cstd': 'c++11', 'pic': True}
+
+# Version 1.5 is a major rewrite of Block that was named at some point StackBlock
+# sources are available in sanshar/StackBlock
+# sources at sanshar/Block@b0e3671aad and pyscf/Block@db27636b76 correspond to version 1.1.1
+source_urls = ['https://github.com/sanshar/StackBlock/archive']
+sources = [{'download_filename': '%s.tar.gz' % _commit, 'filename': '%(version)s.tar.gz'}]
+patches = [
+ 'Block-1.5.3_use-eb-environment.patch',
+ 'Block-1.5.3_replace_mpi_cxx_binds_with_boost_mpi.patch',
+ 'Block-1.5.3_resolve_deprecated_Bind_placeholder.patch'
+]
+checksums = [
+ {'1.5.3-20200525.tar.gz': '8d793c5e460d7747a0adcb06ce4b457c6750cf2d42cead1d060db8b44643c3b1'},
+ {'Block-1.5.3_use-eb-environment.patch': '7f3e8a52f28d251441d20dfde1f9cb8cdc0c34216defab61cc6980e540a6cf60'},
+ {'Block-1.5.3_replace_mpi_cxx_binds_with_boost_mpi.patch':
+ 'f53f1f88cb7b12ab38d1313f93a9bbd31c745dca1beca7a8d51d00e0ae4e762f'},
+ {'Block-1.5.3_resolve_deprecated_Bind_placeholder.patch':
+ '51d692f294e800e0a9e027ef35bf761612ecb9efe77ddb378ec973b55e39a1e8'},
+]
+
+dependencies = [
+ ('Boost.MPI', '1.82.0'),
+]
+
+buildopts = [
+ # Multi-threaded build (block.spin_adapted-serial)
+ 'OPENMP="yes" EXECUTABLE="block.spin_adapted-serial"',
+ # MPI build (block.spin_adapted)
+ 'USE_MPI="yes"',
+]
+
+files_to_copy = [(['block.spin_adapted*'], 'bin')]
+
+sanity_check_paths = {
+ 'files': ['bin/block.spin_adapted', 'bin/block.spin_adapted-serial'],
+ 'dirs': [],
+}
+
+sanity_check_commands = [
+ "block.spin_adapted-serial --version",
+ "%(mpi_cmd_prefix)s block.spin_adapted --version",
+]
+
+moduleclass = 'phys'
diff --git a/easybuild/easyconfigs/b/Blosc/Blosc-1.21.5-GCCcore-13.2.0.eb b/easybuild/easyconfigs/b/Blosc/Blosc-1.21.5-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..4dc70d8715f
--- /dev/null
+++ b/easybuild/easyconfigs/b/Blosc/Blosc-1.21.5-GCCcore-13.2.0.eb
@@ -0,0 +1,28 @@
+easyblock = 'CMakeMake'
+
+name = 'Blosc'
+version = '1.21.5'
+
+homepage = 'https://www.blosc.org/'
+
+description = "Blosc, an extremely fast, multi-threaded, meta-compressor library"
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/Blosc/c-blosc/archive/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['32e61961bbf81ffea6ff30e9d70fca36c86178afd3e3cfa13376adec8c687509']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('CMake', '3.27.6'),
+]
+
+sanity_check_paths = {
+ 'files': ['include/blosc-export.h', 'include/blosc.h', 'lib/libblosc.a',
+ 'lib/libblosc.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/b/Blosc2/Blosc2-2.13.2-GCCcore-13.2.0.eb b/easybuild/easyconfigs/b/Blosc2/Blosc2-2.13.2-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..9e1b0949576
--- /dev/null
+++ b/easybuild/easyconfigs/b/Blosc2/Blosc2-2.13.2-GCCcore-13.2.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)
+easyblock = 'CMakeMake'
+
+name = 'Blosc2'
+version = '2.13.2'
+
+homepage = 'https://www.blosc.org/'
+
+description = "Blosc, an extremely fast, multi-threaded, meta-compressor library"
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/Blosc/c-blosc2/archive/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['f2adcd9615f138d1bb16dc27feadab1bb1eab01d77e5e2323d14ad4ca8c3ca21']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('CMake', '3.27.6'),
+]
+
+sanity_check_paths = {
+ 'files': ['include/blosc2/blosc2-export.h', 'include/blosc2.h', 'lib/libblosc2.a',
+ 'lib/libblosc2.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/b/Blosc2/Blosc2-2.4.3-GCCcore-11.2.0.eb b/easybuild/easyconfigs/b/Blosc2/Blosc2-2.4.3-GCCcore-11.2.0.eb
new file mode 100644
index 00000000000..8a13072d93b
--- /dev/null
+++ b/easybuild/easyconfigs/b/Blosc2/Blosc2-2.4.3-GCCcore-11.2.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)
+easyblock = 'CMakeMake'
+
+name = 'Blosc2'
+version = '2.4.3'
+
+homepage = 'https://www.blosc.org/'
+
+description = "Blosc, an extremely fast, multi-threaded, meta-compressor library"
+
+toolchain = {'name': 'GCCcore', 'version': '11.2.0'}
+toolchainopts = {'pic': True, 'cstd': 'c++11'}
+
+source_urls = ['https://github.com/Blosc/c-blosc2/archive/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['d4aa5e0794598794f20ab950e973d44f0d0d9c133ea1a5a07cb200fa54d2e036']
+
+builddependencies = [
+ ('binutils', '2.37'),
+ ('CMake', '3.22.1'),
+]
+
+sanity_check_paths = {
+ 'files': ['include/blosc2/blosc2-export.h', 'include/blosc2.h', 'lib/libblosc2.a',
+ 'lib/libblosc2.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/b/Boost.MPI/Boost.MPI-1.79.0-gompi-2022b.eb b/easybuild/easyconfigs/b/Boost.MPI/Boost.MPI-1.79.0-gompi-2022b.eb
new file mode 100644
index 00000000000..e1d019dd676
--- /dev/null
+++ b/easybuild/easyconfigs/b/Boost.MPI/Boost.MPI-1.79.0-gompi-2022b.eb
@@ -0,0 +1,29 @@
+easyblock = 'EB_Boost'
+
+name = 'Boost.MPI'
+version = '1.79.0'
+
+homepage = 'https://www.boost.org/'
+description = """Boost provides free peer-reviewed portable C++ source libraries."""
+
+toolchain = {'name': 'gompi', 'version': '2022b'}
+toolchainopts = {'pic': True, 'usempi': True}
+
+source_urls = ['https://boostorg.jfrog.io/artifactory/main/release/%(version)s/source/']
+sources = ['boost_%s.tar.gz' % '_'.join(version.split('.'))]
+checksums = ['273f1be93238a068aba4f9735a4a2b003019af067b9c183ed227780b8f36062c']
+
+dependencies = [
+ ('bzip2', '1.0.8'),
+ ('zlib', '1.2.12'),
+ ('XZ', '5.2.7'),
+ ('zstd', '1.5.2'),
+ ('ICU', '72.1'),
+]
+
+configopts = '--without-libraries=python'
+
+boost_mpi = True
+tagged_layout = True
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/b/Boost.MPI/Boost.MPI-1.83.0-gompi-2023b.eb b/easybuild/easyconfigs/b/Boost.MPI/Boost.MPI-1.83.0-gompi-2023b.eb
new file mode 100644
index 00000000000..2378bf71abb
--- /dev/null
+++ b/easybuild/easyconfigs/b/Boost.MPI/Boost.MPI-1.83.0-gompi-2023b.eb
@@ -0,0 +1,29 @@
+easyblock = 'EB_Boost'
+
+name = 'Boost.MPI'
+version = '1.83.0'
+
+homepage = 'https://www.boost.org/'
+description = """Boost provides free peer-reviewed portable C++ source libraries."""
+
+toolchain = {'name': 'gompi', 'version': '2023b'}
+toolchainopts = {'pic': True, 'usempi': True}
+
+source_urls = ['https://boostorg.jfrog.io/artifactory/main/release/%(version)s/source/']
+sources = ['boost_%s.tar.gz' % '_'.join(version.split('.'))]
+checksums = ['c0685b68dd44cc46574cce86c4e17c0f611b15e195be9848dfd0769a0a207628']
+
+dependencies = [
+ ('bzip2', '1.0.8'),
+ ('zlib', '1.2.13'),
+ ('XZ', '5.4.4'),
+ ('zstd', '1.5.5'),
+ ('ICU', '74.1'),
+]
+
+configopts = '--without-libraries=python'
+
+boost_mpi = True
+tagged_layout = True
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/b/Boost.Python/Boost.Python-1.82.0-GCC-12.3.0.eb b/easybuild/easyconfigs/b/Boost.Python/Boost.Python-1.82.0-GCC-12.3.0.eb
new file mode 100644
index 00000000000..ee38c6983cd
--- /dev/null
+++ b/easybuild/easyconfigs/b/Boost.Python/Boost.Python-1.82.0-GCC-12.3.0.eb
@@ -0,0 +1,24 @@
+easyblock = 'EB_Boost'
+
+name = 'Boost.Python'
+version = '1.82.0'
+
+homepage = 'https://boostorg.github.io/python'
+description = """Boost.Python is a C++ library which enables seamless interoperability between C++
+ and the Python programming language."""
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://boostorg.jfrog.io/artifactory/main/release/%(version)s/source/']
+sources = ['boost_1_82_0.tar.gz']
+checksums = ['66a469b6e608a51f8347236f4912e27dc5c60c60d7d53ae9bfe4683316c6f04c']
+
+dependencies = [
+ ('Boost', version),
+ ('Python', '3.11.3'),
+]
+
+only_python_bindings = True
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/b/Boost.Python/Boost.Python-1.83.0-GCC-13.2.0.eb b/easybuild/easyconfigs/b/Boost.Python/Boost.Python-1.83.0-GCC-13.2.0.eb
new file mode 100644
index 00000000000..f7af796a853
--- /dev/null
+++ b/easybuild/easyconfigs/b/Boost.Python/Boost.Python-1.83.0-GCC-13.2.0.eb
@@ -0,0 +1,24 @@
+easyblock = 'EB_Boost'
+
+name = 'Boost.Python'
+version = '1.83.0'
+
+homepage = 'https://boostorg.github.io/python'
+description = """Boost.Python is a C++ library which enables seamless interoperability between C++
+ and the Python programming language."""
+
+toolchain = {'name': 'GCC', 'version': '13.2.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://boostorg.jfrog.io/artifactory/main/release/%(version)s/source/']
+sources = ['boost_1_83_0.tar.gz']
+checksums = ['c0685b68dd44cc46574cce86c4e17c0f611b15e195be9848dfd0769a0a207628']
+
+dependencies = [
+ ('Boost', '1.83.0'),
+ ('Python', '3.11.5'),
+]
+
+only_python_bindings = True
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/b/Boost/Boost-1.55.0-GCC-11.2.0.eb b/easybuild/easyconfigs/b/Boost/Boost-1.55.0-GCC-11.2.0.eb
new file mode 100644
index 00000000000..1814c8648e9
--- /dev/null
+++ b/easybuild/easyconfigs/b/Boost/Boost-1.55.0-GCC-11.2.0.eb
@@ -0,0 +1,21 @@
+name = 'Boost'
+version = '1.55.0'
+
+homepage = 'http://www.boost.org/'
+description = """Boost provides free peer-reviewed portable C++ source libraries."""
+
+toolchain = {'name': 'GCC', 'version': '11.2.0'}
+toolchainopts = {'pic': True}
+
+source_urls = [SOURCEFORGE_SOURCE]
+sources = ['%%(namelower)s_%s.tar.gz' % '_'.join(version.split('.'))]
+checksums = ['19c4305cd6669f2216260258802a7abc73c1624758294b2cad209d45cc13a767']
+
+dependencies = [
+ ('bzip2', '1.0.8'),
+ ('zlib', '1.2.11'),
+]
+
+configopts = '--without-libraries=python'
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/b/Boost/Boost-1.74.0-GCC-12.3.0.eb b/easybuild/easyconfigs/b/Boost/Boost-1.74.0-GCC-12.3.0.eb
new file mode 100644
index 00000000000..3c078f88361
--- /dev/null
+++ b/easybuild/easyconfigs/b/Boost/Boost-1.74.0-GCC-12.3.0.eb
@@ -0,0 +1,35 @@
+##
+# Authors:: Denis Kristak , Pavel Tománek (INUITS)
+##
+name = 'Boost'
+version = '1.74.0'
+
+homepage = 'https://www.boost.org/'
+description = """Boost provides free peer-reviewed portable C++ source libraries."""
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://boostorg.jfrog.io/artifactory/main/release/%(version)s/source/']
+sources = ['%%(namelower)s_%s.tar.gz' % '_'.join(version.split('.'))]
+patches = ['Boost-%(version)s-library_version_type_serialization.patch']
+checksums = [
+ {'boost_1_74_0.tar.gz': 'afff36d392885120bcac079148c177d1f6f7730ec3d47233aa51b0afa4db94a5'},
+ {'Boost-1.74.0-library_version_type_serialization.patch':
+ 'ee61e889ce9473ad82b69c9a8cbe1bf9650d633b74fdf7e4f4a4825aa990feca'},
+]
+
+dependencies = [
+ ('bzip2', '1.0.8'),
+ ('zlib', '1.2.13'),
+ ('XZ', '5.4.2'),
+ ('zstd', '1.5.5'),
+]
+
+configopts = '--without-libraries=python,mpi'
+
+# disable MPI, build Boost libraries with tagged layout
+boost_mpi = False
+tagged_layout = True
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/b/Boost/Boost-1.75.0-GCC-12.3.0.eb b/easybuild/easyconfigs/b/Boost/Boost-1.75.0-GCC-12.3.0.eb
new file mode 100644
index 00000000000..9e6080cae87
--- /dev/null
+++ b/easybuild/easyconfigs/b/Boost/Boost-1.75.0-GCC-12.3.0.eb
@@ -0,0 +1,28 @@
+name = 'Boost'
+version = '1.75.0'
+
+homepage = 'https://www.boost.org/'
+description = """Boost provides free peer-reviewed portable C++ source libraries."""
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://boostorg.jfrog.io/artifactory/main/release/%(version)s/source/']
+sources = ['%%(namelower)s_%s.tar.gz' % '_'.join(version.split('.'))]
+checksums = ['aeb26f80e80945e82ee93e5939baebdca47b9dee80a07d3144be1e1a6a66dd6a']
+
+dependencies = [
+ ('bzip2', '1.0.8'),
+ ('zlib', '1.2.13'),
+ ('XZ', '5.4.2'),
+ ('zstd', '1.5.5'),
+ ('ICU', '73.2'),
+]
+
+configopts = '--without-libraries=python,mpi'
+
+# disable MPI, build Boost libraries with tagged layout
+boost_mpi = False
+tagged_layout = True
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/b/Boost/Boost-1.85.0-GCC-13.3.0.eb b/easybuild/easyconfigs/b/Boost/Boost-1.85.0-GCC-13.3.0.eb
new file mode 100644
index 00000000000..10518dc36a3
--- /dev/null
+++ b/easybuild/easyconfigs/b/Boost/Boost-1.85.0-GCC-13.3.0.eb
@@ -0,0 +1,31 @@
+##
+# Authors:: Denis Kristak
+##
+name = 'Boost'
+version = '1.85.0'
+
+homepage = 'https://www.boost.org/'
+description = """Boost provides free peer-reviewed portable C++ source libraries."""
+
+toolchain = {'name': 'GCC', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://boostorg.jfrog.io/artifactory/main/release/%(version)s/source/']
+sources = ['%%(namelower)s_%s.tar.gz' % '_'.join(version.split('.'))]
+checksums = ['be0d91732d5b0cc6fbb275c7939974457e79b54d6f07ce2e3dfdd68bef883b0b']
+
+dependencies = [
+ ('bzip2', '1.0.8'),
+ ('zlib', '1.3.1'),
+ ('XZ', '5.4.5'),
+ ('zstd', '1.5.6'),
+ ('ICU', '75.1'),
+]
+
+configopts = '--without-libraries=python,mpi'
+
+# disable MPI, build Boost libraries with tagged layout
+boost_mpi = False
+tagged_layout = True
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/b/Bowtie/Bowtie-1.3.1-GCC-12.2.0.eb b/easybuild/easyconfigs/b/Bowtie/Bowtie-1.3.1-GCC-12.2.0.eb
new file mode 100644
index 00000000000..202b84a2953
--- /dev/null
+++ b/easybuild/easyconfigs/b/Bowtie/Bowtie-1.3.1-GCC-12.2.0.eb
@@ -0,0 +1,30 @@
+##
+# This is a contribution from DeepThought HPC Service, Flinders University, Adelaide, Australia
+# Homepage: https://staff.flinders.edu.au/research/deep-thought
+#
+# Authors:: Robert Qiao
+# License:: Artistic v2.0
+#
+# Notes::
+##
+
+name = 'Bowtie'
+version = '1.3.1'
+
+homepage = 'http://bowtie-bio.sourceforge.net/index.shtml'
+description = """Bowtie is an ultrafast, memory-efficient short read aligner.
+ It aligns short DNA sequences (reads) to the human genome."""
+
+toolchain = {'name': 'GCC', 'version': '12.2.0'}
+toolchainopts = {'pic': True, 'cstd': 'gnu++98'}
+
+source_urls = ['https://sourceforge.net/projects/bowtie-bio/files/bowtie/%(version)s/']
+sources = ['%(namelower)s-%(version)s-src.zip']
+checksums = ['e23517aa53846ef828172be911750cd05748522117efcbbe5a36f3241fb40761']
+
+dependencies = [
+ ('tbb', '2021.9.0'),
+ ('zlib', '1.2.12'),
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/b/Bowtie/Bowtie-1.3.1-GCC-12.3.0.eb b/easybuild/easyconfigs/b/Bowtie/Bowtie-1.3.1-GCC-12.3.0.eb
new file mode 100644
index 00000000000..9617ba2e343
--- /dev/null
+++ b/easybuild/easyconfigs/b/Bowtie/Bowtie-1.3.1-GCC-12.3.0.eb
@@ -0,0 +1,30 @@
+##
+# This is a contribution from DeepThought HPC Service, Flinders University, Adelaide, Australia
+# Homepage: https://staff.flinders.edu.au/research/deep-thought
+#
+# Authors:: Robert Qiao
+# License:: Artistic v2.0
+#
+# Notes::
+##
+
+name = 'Bowtie'
+version = '1.3.1'
+
+homepage = 'http://bowtie-bio.sourceforge.net/index.shtml'
+description = """Bowtie is an ultrafast, memory-efficient short read aligner.
+ It aligns short DNA sequences (reads) to the human genome."""
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+toolchainopts = {'pic': True, 'cstd': 'gnu++98'}
+
+source_urls = ['https://sourceforge.net/projects/bowtie-bio/files/bowtie/%(version)s/']
+sources = ['%(namelower)s-%(version)s-src.zip']
+checksums = ['e23517aa53846ef828172be911750cd05748522117efcbbe5a36f3241fb40761']
+
+dependencies = [
+ ('tbb', '2021.11.0'),
+ ('zlib', '1.2.13'),
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/b/Bowtie2/Bowtie2-2.5.1-GCC-10.3.0.eb b/easybuild/easyconfigs/b/Bowtie2/Bowtie2-2.5.1-GCC-10.3.0.eb
new file mode 100644
index 00000000000..b8a6bb85552
--- /dev/null
+++ b/easybuild/easyconfigs/b/Bowtie2/Bowtie2-2.5.1-GCC-10.3.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': '10.3.0'}
+toolchainopts = {'pic': True, 'cstd': 'gnu++98'}
+
+source_urls = [('https://sourceforge.net/projects/bowtie-bio/files/%(namelower)s/%(version)s', 'download')]
+sources = ['%(namelower)s-%(version)s-source.zip']
+checksums = ['cb6cbbbb5a7167a2f21a3d63cb9774336361f540e1ec3d8ff907f955c35f71b8']
+
+# 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.11'),
+ ('Perl', '5.32.1'),
+ ('Python', '3.9.5'),
+]
+
+# 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/Braindecode/Braindecode-0.8.1-foss-2023a-PyTorch-2.1.2-CUDA-12.1.1.eb b/easybuild/easyconfigs/b/Braindecode/Braindecode-0.8.1-foss-2023a-PyTorch-2.1.2-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..80012266f49
--- /dev/null
+++ b/easybuild/easyconfigs/b/Braindecode/Braindecode-0.8.1-foss-2023a-PyTorch-2.1.2-CUDA-12.1.1.eb
@@ -0,0 +1,47 @@
+easyblock = 'PythonBundle'
+
+name = 'Braindecode'
+version = '0.8.1'
+local_torch_version = '2.1.2'
+versionsuffix = '-PyTorch-' + local_torch_version + '-CUDA-%(cudaver)s'
+
+homepage = 'https://braindecode.org/'
+description = """Braindecode is an open-source Python toolbox for decoding raw
+electrophysiological brain data with deep learning models. It includes dataset
+fetchers, data preprocessing and visualization tools, as well as
+implementations of several deep learning architectures and data augmentations
+for analysis of EEG, ECoG and MEG."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('CUDA', '12.1.1', '', SYSTEM),
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('einops', '0.7.0'),
+ ('h5py', '3.9.0'),
+ ('matplotlib', '3.7.2'),
+ ('MNE-Python', '1.6.1'),
+ ('MOABB', '1.0.0'),
+ ('skorch', '0.15.0', versionsuffix),
+]
+
+use_pip = True
+
+exts_list = [
+ ('docstring-inheritance', '2.1.2', {
+ 'modulename': 'docstring_inheritance',
+ 'checksums': ['ac9af95a7b06a305d43720274d0e62523d23f835bf94ce2bb814687e6fe3957b'],
+ }),
+ ('torchinfo', '1.8.0', {
+ 'checksums': ['72e94b0e9a3e64dc583a8e5b7940b8938a1ac0f033f795457f27e6f4e7afa2e9'],
+ }),
+ ('braindecode', version, {
+ 'use_pip_extras': 'moabb',
+ 'checksums': ['e80515c3d20a80f16800770936d1eb0012de15830a8175dce376256bdaf928e7'],
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'ai'
diff --git a/easybuild/easyconfigs/b/Braindecode/Braindecode-0.8.1-foss-2023a-PyTorch-2.1.2.eb b/easybuild/easyconfigs/b/Braindecode/Braindecode-0.8.1-foss-2023a-PyTorch-2.1.2.eb
new file mode 100644
index 00000000000..5f27036b016
--- /dev/null
+++ b/easybuild/easyconfigs/b/Braindecode/Braindecode-0.8.1-foss-2023a-PyTorch-2.1.2.eb
@@ -0,0 +1,46 @@
+easyblock = 'PythonBundle'
+
+name = 'Braindecode'
+version = '0.8.1'
+local_torch_version = '2.1.2'
+versionsuffix = '-PyTorch-%s' % local_torch_version
+
+homepage = 'https://braindecode.org/'
+description = """Braindecode is an open-source Python toolbox for decoding raw
+electrophysiological brain data with deep learning models. It includes dataset
+fetchers, data preprocessing and visualization tools, as well as
+implementations of several deep learning architectures and data augmentations
+for analysis of EEG, ECoG and MEG."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('einops', '0.7.0'),
+ ('h5py', '3.9.0'),
+ ('matplotlib', '3.7.2'),
+ ('MNE-Python', '1.6.1'),
+ ('MOABB', '1.0.0'),
+ ('skorch', '0.15.0', versionsuffix),
+]
+
+use_pip = True
+
+exts_list = [
+ ('docstring-inheritance', '2.1.2', {
+ 'modulename': 'docstring_inheritance',
+ 'checksums': ['ac9af95a7b06a305d43720274d0e62523d23f835bf94ce2bb814687e6fe3957b'],
+ }),
+ ('torchinfo', '1.8.0', {
+ 'checksums': ['72e94b0e9a3e64dc583a8e5b7940b8938a1ac0f033f795457f27e6f4e7afa2e9'],
+ }),
+ ('braindecode', version, {
+ 'use_pip_extras': 'moabb',
+ 'checksums': ['e80515c3d20a80f16800770936d1eb0012de15830a8175dce376256bdaf928e7'],
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'ai'
diff --git a/easybuild/easyconfigs/b/Brotli-python/Brotli-python-1.0.9-GCCcore-12.3.0.eb b/easybuild/easyconfigs/b/Brotli-python/Brotli-python-1.0.9-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..48f717c030a
--- /dev/null
+++ b/easybuild/easyconfigs/b/Brotli-python/Brotli-python-1.0.9-GCCcore-12.3.0.eb
@@ -0,0 +1,34 @@
+easyblock = 'PythonPackage'
+
+name = 'Brotli-python'
+version = '1.0.9'
+
+homepage = 'https://github.com/google/brotli'
+description = """Brotli is a generic-purpose lossless compression algorithm that compresses data using a combination
+ of a modern variant of the LZ77 algorithm, Huffman coding and 2nd order context modeling, with a compression ratio
+ comparable to the best currently available general-purpose compression methods. It is similar in speed with deflate
+ but offers more dense compression.
+The specification of the Brotli Compressed Data Format is defined in RFC 7932."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = ['https://pypi.python.org/packages/source/B/Brotli']
+sources = ['Brotli-%(version)s.zip']
+checksums = ['4d1b810aa0ed773f81dceda2cc7b403d01057458730e309856356d4ef4188438']
+
+builddependencies = [
+ ('binutils', '2.40'),
+]
+
+dependencies = [
+ ('Brotli', '1.0.9'),
+ ('Python', '3.11.3'),
+]
+
+download_dep_fail = True
+use_pip = True
+sanity_pip_check = True
+
+options = {'modulename': 'brotli'}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/b/Brotli/Brotli-1.1.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/b/Brotli/Brotli-1.1.0-GCCcore-13.2.0.eb
index eeacd739652..2e194e0d508 100644
--- a/easybuild/easyconfigs/b/Brotli/Brotli-1.1.0-GCCcore-13.2.0.eb
+++ b/easybuild/easyconfigs/b/Brotli/Brotli-1.1.0-GCCcore-13.2.0.eb
@@ -21,8 +21,11 @@ builddependencies = [
('CMake', '3.27.6'),
]
+configopts = ['-DBUILD_SHARED_LIBS=ON', '-DBUILD_SHARED_LIBS=OFF']
+
sanity_check_paths = {
- 'files': ['bin/brotli', 'lib/libbrotlidec.%s' % SHLIB_EXT, 'lib/libbrotlienc.%s' % SHLIB_EXT],
+ 'files': ['bin/brotli', 'lib/libbrotlidec.%s' % SHLIB_EXT, 'lib/libbrotlienc.%s' % SHLIB_EXT,
+ 'lib/libbrotlidec.a', 'lib/libbrotlienc.a'],
'dirs': [],
}
diff --git a/easybuild/easyconfigs/b/Brotli/Brotli-1.1.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/b/Brotli/Brotli-1.1.0-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..fe7258a493f
--- /dev/null
+++ b/easybuild/easyconfigs/b/Brotli/Brotli-1.1.0-GCCcore-13.3.0.eb
@@ -0,0 +1,34 @@
+easyblock = 'CMakeMake'
+
+name = 'Brotli'
+version = '1.1.0'
+
+homepage = 'https://github.com/google/brotli'
+description = """Brotli is a generic-purpose lossless compression algorithm that compresses data using a combination
+ of a modern variant of the LZ77 algorithm, Huffman coding and 2nd order context modeling, with a compression ratio
+ comparable to the best currently available general-purpose compression methods. It is similar in speed with deflate
+ but offers more dense compression.
+The specification of the Brotli Compressed Data Format is defined in RFC 7932."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://github.com/google/brotli/archive']
+sources = ['v%(version)s.tar.gz']
+checksums = ['e720a6ca29428b803f4ad165371771f5398faba397edf6778837a18599ea13ff']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('CMake', '3.29.3'),
+]
+
+configopts = ['-DBUILD_SHARED_LIBS=ON', '-DBUILD_SHARED_LIBS=OFF']
+
+sanity_check_paths = {
+ 'files': ['bin/brotli', 'lib/libbrotlidec.%s' % SHLIB_EXT, 'lib/libbrotlienc.%s' % SHLIB_EXT,
+ 'lib/libbrotlidec.a', 'lib/libbrotlienc.a'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["brotli --help"]
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/b/Brunsli/Brunsli-0.1-GCCcore-10.2.0.eb b/easybuild/easyconfigs/b/Brunsli/Brunsli-0.1-GCCcore-10.2.0.eb
index f90442fc544..9e505b4df5e 100644
--- a/easybuild/easyconfigs/b/Brunsli/Brunsli-0.1-GCCcore-10.2.0.eb
+++ b/easybuild/easyconfigs/b/Brunsli/Brunsli-0.1-GCCcore-10.2.0.eb
@@ -21,13 +21,15 @@ builddependencies = [
dependencies = [
('Brotli', '1.0.9'),
- ('Highway', '0.12.2'),
]
# skip use of third_party directory, since we provide Brotli via a proper dependency
preconfigopts = "sed -i 's/add_subdirectory(third_party)//g' ../brunsli-%(version)s/CMakeLists.txt && "
-configopts = '-DCMAKE_CXX_FLAGS="$CXXFLAGS -lbrotlienc -lbrotlidec -lbrotlicommon"'
+configopts = '-DCMAKE_CXX_FLAGS="$CXXFLAGS -lbrotlienc -lbrotlidec -lbrotlicommon" '
+
+# make sure that libraries end up in /lib (not lib64)
+configopts += "-DCMAKE_INSTALL_LIBDIR=lib "
buildopts = "BROTLI_DIR=$EBROOTBROTLI BROTLI_INCLUDE=$EBROOTBROTLI/include"
@@ -35,8 +37,8 @@ buildopts = "BROTLI_DIR=$EBROOTBROTLI BROTLI_INCLUDE=$EBROOTBROTLI/include"
postinstallcmds = [
"mkdir %(installdir)s/bin",
"cp dbrunsli %(installdir)s/bin/",
- "cp libbrunsli*.a %(installdir)s/lib*/",
- "cp libbrunsli*.%s %%(installdir)s/lib*/" % SHLIB_EXT,
+ "cp libbrunsli*.a %(installdir)s/lib/",
+ "cp libbrunsli*.%s %%(installdir)s/lib/" % SHLIB_EXT,
]
sanity_check_paths = {
diff --git a/easybuild/easyconfigs/b/Brunsli/Brunsli-0.1-GCCcore-10.3.0.eb b/easybuild/easyconfigs/b/Brunsli/Brunsli-0.1-GCCcore-10.3.0.eb
index 20cd4b20aef..0661abf0609 100644
--- a/easybuild/easyconfigs/b/Brunsli/Brunsli-0.1-GCCcore-10.3.0.eb
+++ b/easybuild/easyconfigs/b/Brunsli/Brunsli-0.1-GCCcore-10.3.0.eb
@@ -22,13 +22,15 @@ builddependencies = [
dependencies = [
('Brotli', '1.0.9'),
- ('Highway', '0.12.2'),
]
# skip use of third_party directory, since we provide Brotli via a proper dependency
preconfigopts = "sed -i 's/add_subdirectory(third_party)//g' ../brunsli-%(version)s/CMakeLists.txt && "
-configopts = '-DCMAKE_CXX_FLAGS="$CXXFLAGS -lbrotlienc -lbrotlidec -lbrotlicommon"'
+configopts = '-DCMAKE_CXX_FLAGS="$CXXFLAGS -lbrotlienc -lbrotlidec -lbrotlicommon" '
+
+# make sure that libraries end up in /lib (not lib64)
+configopts += "-DCMAKE_INSTALL_LIBDIR=lib "
buildopts = "BROTLI_DIR=$EBROOTBROTLI BROTLI_INCLUDE=$EBROOTBROTLI/include"
@@ -36,8 +38,8 @@ buildopts = "BROTLI_DIR=$EBROOTBROTLI BROTLI_INCLUDE=$EBROOTBROTLI/include"
postinstallcmds = [
"mkdir %(installdir)s/bin",
"cp dbrunsli %(installdir)s/bin/",
- "cp libbrunsli*.a %(installdir)s/lib*/",
- "cp libbrunsli*.%s %%(installdir)s/lib*/" % SHLIB_EXT,
+ "cp libbrunsli*.a %(installdir)s/lib/",
+ "cp libbrunsli*.%s %%(installdir)s/lib/" % SHLIB_EXT,
]
sanity_check_paths = {
diff --git a/easybuild/easyconfigs/b/Brunsli/Brunsli-0.1-GCCcore-11.3.0.eb b/easybuild/easyconfigs/b/Brunsli/Brunsli-0.1-GCCcore-11.3.0.eb
index 35fa3a03359..57bba400bde 100644
--- a/easybuild/easyconfigs/b/Brunsli/Brunsli-0.1-GCCcore-11.3.0.eb
+++ b/easybuild/easyconfigs/b/Brunsli/Brunsli-0.1-GCCcore-11.3.0.eb
@@ -22,13 +22,15 @@ builddependencies = [
dependencies = [
('Brotli', '1.0.9'),
- ('Highway', '1.0.3'),
]
# skip use of third_party directory, since we provide Brotli via a proper dependency
preconfigopts = "sed -i 's/add_subdirectory(third_party)//g' ../brunsli-%(version)s/CMakeLists.txt && "
-configopts = '-DCMAKE_CXX_FLAGS="$CXXFLAGS -lbrotlienc -lbrotlidec -lbrotlicommon"'
+configopts = '-DCMAKE_CXX_FLAGS="$CXXFLAGS -lbrotlienc -lbrotlidec -lbrotlicommon" '
+
+# make sure that libraries end up in /lib (not lib64)
+configopts += "-DCMAKE_INSTALL_LIBDIR=lib "
buildopts = "BROTLI_DIR=$EBROOTBROTLI BROTLI_INCLUDE=$EBROOTBROTLI/include"
@@ -36,8 +38,8 @@ buildopts = "BROTLI_DIR=$EBROOTBROTLI BROTLI_INCLUDE=$EBROOTBROTLI/include"
postinstallcmds = [
"mkdir %(installdir)s/bin",
"cp dbrunsli %(installdir)s/bin/",
- "cp libbrunsli*.a %(installdir)s/lib*/",
- "cp libbrunsli*.%s %%(installdir)s/lib*/" % SHLIB_EXT,
+ "cp libbrunsli*.a %(installdir)s/lib/",
+ "cp libbrunsli*.%s %%(installdir)s/lib/" % SHLIB_EXT,
]
sanity_check_paths = {
diff --git a/easybuild/easyconfigs/b/Brunsli/Brunsli-0.1-GCCcore-12.2.0.eb b/easybuild/easyconfigs/b/Brunsli/Brunsli-0.1-GCCcore-12.2.0.eb
index 68552f70d3a..df29a7bda20 100644
--- a/easybuild/easyconfigs/b/Brunsli/Brunsli-0.1-GCCcore-12.2.0.eb
+++ b/easybuild/easyconfigs/b/Brunsli/Brunsli-0.1-GCCcore-12.2.0.eb
@@ -22,13 +22,15 @@ builddependencies = [
dependencies = [
('Brotli', '1.0.9'),
- ('Highway', '1.0.3'),
]
# skip use of third_party directory, since we provide Brotli via a proper dependency
preconfigopts = "sed -i 's/add_subdirectory(third_party)//g' ../brunsli-%(version)s/CMakeLists.txt && "
-configopts = '-DCMAKE_CXX_FLAGS="$CXXFLAGS -lbrotlienc -lbrotlidec -lbrotlicommon"'
+configopts = '-DCMAKE_CXX_FLAGS="$CXXFLAGS -lbrotlienc -lbrotlidec -lbrotlicommon" '
+
+# make sure that libraries end up in /lib (not lib64)
+configopts += "-DCMAKE_INSTALL_LIBDIR=lib "
buildopts = "BROTLI_DIR=$EBROOTBROTLI BROTLI_INCLUDE=$EBROOTBROTLI/include"
@@ -36,8 +38,8 @@ buildopts = "BROTLI_DIR=$EBROOTBROTLI BROTLI_INCLUDE=$EBROOTBROTLI/include"
postinstallcmds = [
"mkdir %(installdir)s/bin",
"cp dbrunsli %(installdir)s/bin/",
- "cp libbrunsli*.a %(installdir)s/lib*/",
- "cp libbrunsli*.%s %%(installdir)s/lib*/" % SHLIB_EXT,
+ "cp libbrunsli*.a %(installdir)s/lib/",
+ "cp libbrunsli*.%s %%(installdir)s/lib/" % SHLIB_EXT,
]
sanity_check_paths = {
diff --git a/easybuild/easyconfigs/b/Brunsli/Brunsli-0.1-GCCcore-12.3.0.eb b/easybuild/easyconfigs/b/Brunsli/Brunsli-0.1-GCCcore-12.3.0.eb
index e9d6adbb76f..42e15bb4356 100644
--- a/easybuild/easyconfigs/b/Brunsli/Brunsli-0.1-GCCcore-12.3.0.eb
+++ b/easybuild/easyconfigs/b/Brunsli/Brunsli-0.1-GCCcore-12.3.0.eb
@@ -22,13 +22,15 @@ builddependencies = [
dependencies = [
('Brotli', '1.0.9'),
- ('Highway', '1.0.4'),
]
# skip use of third_party directory, since we provide Brotli via a proper dependency
preconfigopts = "sed -i 's/add_subdirectory(third_party)//g' ../brunsli-%(version)s/CMakeLists.txt && "
-configopts = '-DCMAKE_CXX_FLAGS="$CXXFLAGS -lbrotlienc -lbrotlidec -lbrotlicommon"'
+configopts = '-DCMAKE_CXX_FLAGS="$CXXFLAGS -lbrotlienc -lbrotlidec -lbrotlicommon" '
+
+# make sure that libraries end up in /lib (not lib64)
+configopts += "-DCMAKE_INSTALL_LIBDIR=lib "
buildopts = "BROTLI_DIR=$EBROOTBROTLI BROTLI_INCLUDE=$EBROOTBROTLI/include"
@@ -36,8 +38,8 @@ buildopts = "BROTLI_DIR=$EBROOTBROTLI BROTLI_INCLUDE=$EBROOTBROTLI/include"
postinstallcmds = [
"mkdir %(installdir)s/bin",
"cp dbrunsli %(installdir)s/bin/",
- "cp libbrunsli*.a %(installdir)s/lib*/",
- "cp libbrunsli*.%s %%(installdir)s/lib*/" % SHLIB_EXT,
+ "cp libbrunsli*.a %(installdir)s/lib/",
+ "cp libbrunsli*.%s %%(installdir)s/lib/" % SHLIB_EXT,
]
sanity_check_paths = {
diff --git a/easybuild/easyconfigs/b/Brunsli/Brunsli-0.1-GCCcore-13.2.0.eb b/easybuild/easyconfigs/b/Brunsli/Brunsli-0.1-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..6481ba231cd
--- /dev/null
+++ b/easybuild/easyconfigs/b/Brunsli/Brunsli-0.1-GCCcore-13.2.0.eb
@@ -0,0 +1,53 @@
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+# Author: Denis Kristak
+# update: Thomas Hoffmann (EMBL)
+easyblock = 'CMakeMake'
+
+name = 'Brunsli'
+version = '0.1'
+
+homepage = 'https://github.com/google/brunsli/'
+description = """Brunsli is a lossless JPEG repacking library."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+source_urls = ['https://github.com/google/brunsli/archive/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['62762dc740f9fcc9706449c078f12c2a366416486d2882be50a9f201f99ac0bc']
+
+builddependencies = [
+ ('CMake', '3.27.6'),
+ ('binutils', '2.40'),
+]
+
+dependencies = [
+ ('Brotli', '1.1.0'),
+]
+
+# skip use of third_party directory, since we provide Brotli via a proper dependency
+preconfigopts = "sed -i 's/add_subdirectory(third_party)//g' ../brunsli-%(version)s/CMakeLists.txt && "
+preconfigopts += "sed -i 's/\\(brotli...\\)-static/\\1/g' ../brunsli-%(version)s/brunsli.cmake && "
+
+configopts = '-DCMAKE_CXX_FLAGS="$CXXFLAGS -lbrotlienc -lbrotlidec -lbrotlicommon" '
+
+# make sure that libraries end up in /lib (not lib64)
+configopts += "-DCMAKE_INSTALL_LIBDIR=lib "
+
+buildopts = "BROTLI_DIR=$EBROOTBROTLI BROTLI_INCLUDE=$EBROOTBROTLI/include"
+
+# also install dbrunsli binary and missing libraries
+postinstallcmds = [
+ "mkdir %(installdir)s/bin",
+ "cp dbrunsli %(installdir)s/bin/",
+ "cp libbrunsli*.a %(installdir)s/lib/",
+ "cp libbrunsli*.%s %%(installdir)s/lib/" % SHLIB_EXT,
+]
+
+sanity_check_paths = {
+ 'files': ['bin/dbrunsli'],
+ 'dirs': ['include/brunsli', 'lib'],
+}
+
+sanity_check_commands = ['dbrunsli 2>&1 | grep Usage']
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/b/Brunsli/Brunsli-0.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/b/Brunsli/Brunsli-0.1-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..3afc7fffd75
--- /dev/null
+++ b/easybuild/easyconfigs/b/Brunsli/Brunsli-0.1-GCCcore-13.3.0.eb
@@ -0,0 +1,53 @@
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+# Author: Denis Kristak
+# update: Thomas Hoffmann (EMBL)
+easyblock = 'CMakeMake'
+
+name = 'Brunsli'
+version = '0.1'
+
+homepage = 'https://github.com/google/brunsli/'
+description = """Brunsli is a lossless JPEG repacking library."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://github.com/google/brunsli/archive/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['62762dc740f9fcc9706449c078f12c2a366416486d2882be50a9f201f99ac0bc']
+
+builddependencies = [
+ ('CMake', '3.29.3'),
+ ('binutils', '2.42'),
+]
+
+dependencies = [
+ ('Brotli', '1.1.0'),
+]
+
+# skip use of third_party directory, since we provide Brotli via a proper dependency
+preconfigopts = "sed -i 's/add_subdirectory(third_party)//g' ../brunsli-%(version)s/CMakeLists.txt && "
+preconfigopts += "sed -i 's/\\(brotli...\\)-static/\\1/g' ../brunsli-%(version)s/brunsli.cmake && "
+
+configopts = '-DCMAKE_CXX_FLAGS="$CXXFLAGS -lbrotlienc -lbrotlidec -lbrotlicommon" '
+
+# make sure that libraries end up in /lib (not lib64)
+configopts += "-DCMAKE_INSTALL_LIBDIR=lib "
+
+buildopts = "BROTLI_DIR=$EBROOTBROTLI BROTLI_INCLUDE=$EBROOTBROTLI/include"
+
+# also install dbrunsli binary and missing libraries
+postinstallcmds = [
+ "mkdir %(installdir)s/bin",
+ "cp dbrunsli %(installdir)s/bin/",
+ "cp libbrunsli*.a %(installdir)s/lib/",
+ "cp libbrunsli*.%s %%(installdir)s/lib/" % SHLIB_EXT,
+]
+
+sanity_check_paths = {
+ 'files': ['bin/dbrunsli'],
+ 'dirs': ['include/brunsli', 'lib'],
+}
+
+sanity_check_commands = ['dbrunsli 2>&1 | grep Usage']
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/b/bayesian-optimization/bayesian-optimization-1.5.1-foss-2023a.eb b/easybuild/easyconfigs/b/bayesian-optimization/bayesian-optimization-1.5.1-foss-2023a.eb
new file mode 100644
index 00000000000..8215f2c822a
--- /dev/null
+++ b/easybuild/easyconfigs/b/bayesian-optimization/bayesian-optimization-1.5.1-foss-2023a.eb
@@ -0,0 +1,34 @@
+easyblock = 'PythonBundle'
+
+name = 'bayesian-optimization'
+version = '1.5.1'
+
+homepage = 'https://bayesian-optimization.github.io/BayesianOptimization/index.html'
+description = "Pure Python implementation of bayesian global optimization with gaussian processes."
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('scikit-learn', '1.3.1'),
+ ('SciPy-bundle', '2023.07'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('colorama', '0.4.6', {
+ 'source_tmpl': SOURCE_WHL,
+ 'checksums': ['4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6'],
+ }),
+ ('bayesian_optimization', version, {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'modulename': 'bayes_opt',
+ 'checksums': ['098946c933d6039073b7ccb0c9f1b4c73ac6e39350043b02e5243b08583c4c5c'],
+ }),
+]
+
+sanity_check_commands = ["python -c 'from bayes_opt import BayesianOptimization'"]
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/b/bcl-convert/bcl-convert-4.2.7-2el7.x86_64.eb b/easybuild/easyconfigs/b/bcl-convert/bcl-convert-4.2.7-2el7.x86_64.eb
new file mode 100644
index 00000000000..dfed34de942
--- /dev/null
+++ b/easybuild/easyconfigs/b/bcl-convert/bcl-convert-4.2.7-2el7.x86_64.eb
@@ -0,0 +1,26 @@
+easyblock = 'Rpm'
+
+name = 'bcl-convert'
+version = '4.2.7-2'
+versionsuffix = 'el7.x86_64'
+
+homepage = 'https://support.illumina.com/sequencing/sequencing_software/bcl-convert.html'
+description = """The Illumina BCL Convert v4.0 is a standalone local software app that converts the
+ Binary Base Call (BCL) files produced by Illumina sequencing systems to FASTQ files."""
+
+toolchain = SYSTEM
+
+builddependencies = [('rpmrebuild', '2.18')]
+
+source_urls = ['https://webdata.illumina.com/downloads/software/bcl-convert/']
+sources = ['bcl-convert-%(version)s.%(versionsuffix)s.rpm']
+checksums = ['ea508d763dc27d30d1a34f6a38d8da31ea67797d7b4971e8c10677bc48539565']
+
+sanity_check_paths = {
+ 'files': ['usr/bin/bcl-convert'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["bcl-convert --help"]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/b/bcrypt/bcrypt-4.1.3-GCCcore-13.2.0.eb b/easybuild/easyconfigs/b/bcrypt/bcrypt-4.1.3-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..cbada951cfd
--- /dev/null
+++ b/easybuild/easyconfigs/b/bcrypt/bcrypt-4.1.3-GCCcore-13.2.0.eb
@@ -0,0 +1,147 @@
+easyblock = 'CargoPythonPackage'
+
+name = 'bcrypt'
+version = '4.1.3'
+
+homepage = 'https://github.com/pyca/bcrypt/'
+description = """Acceptable password hashing for your software and your servers (but you should
+really use argon2id or scrypt)
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+toolchainopts = {'pic': True}
+
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('Rust', '1.73.0'),
+ ('setuptools-rust', '1.8.0'),
+]
+
+dependencies = [
+ ('Python', '3.11.5'),
+]
+
+crates = [
+ ('autocfg', '1.3.0'),
+ ('base64', '0.22.1'),
+ ('bcrypt', '0.15.1'),
+ ('bcrypt-pbkdf', '0.10.0'),
+ ('bitflags', '2.5.0'),
+ ('block-buffer', '0.10.4'),
+ ('blowfish', '0.9.1'),
+ ('byteorder', '1.5.0'),
+ ('cfg-if', '1.0.0'),
+ ('cipher', '0.4.4'),
+ ('cpufeatures', '0.2.12'),
+ ('crypto-common', '0.1.6'),
+ ('digest', '0.10.7'),
+ ('generic-array', '0.14.7'),
+ ('getrandom', '0.2.14'),
+ ('heck', '0.4.1'),
+ ('indoc', '2.0.5'),
+ ('inout', '0.1.3'),
+ ('libc', '0.2.154'),
+ ('lock_api', '0.4.12'),
+ ('memoffset', '0.9.1'),
+ ('once_cell', '1.19.0'),
+ ('parking_lot', '0.12.2'),
+ ('parking_lot_core', '0.9.10'),
+ ('pbkdf2', '0.12.2'),
+ ('portable-atomic', '1.6.0'),
+ ('proc-macro2', '1.0.81'),
+ ('pyo3', '0.21.2'),
+ ('pyo3-build-config', '0.21.2'),
+ ('pyo3-ffi', '0.21.2'),
+ ('pyo3-macros', '0.21.2'),
+ ('pyo3-macros-backend', '0.21.2'),
+ ('quote', '1.0.36'),
+ ('redox_syscall', '0.5.1'),
+ ('scopeguard', '1.2.0'),
+ ('sha2', '0.10.8'),
+ ('smallvec', '1.13.2'),
+ ('subtle', '2.5.0'),
+ ('syn', '2.0.60'),
+ ('target-lexicon', '0.12.14'),
+ ('typenum', '1.17.0'),
+ ('unicode-ident', '1.0.12'),
+ ('unindent', '0.2.3'),
+ ('version_check', '0.9.4'),
+ ('wasi', '0.11.0+wasi-snapshot-preview1'),
+ ('windows-targets', '0.52.5'),
+ ('windows_aarch64_gnullvm', '0.52.5'),
+ ('windows_aarch64_msvc', '0.52.5'),
+ ('windows_i686_gnu', '0.52.5'),
+ ('windows_i686_gnullvm', '0.52.5'),
+ ('windows_i686_msvc', '0.52.5'),
+ ('windows_x86_64_gnu', '0.52.5'),
+ ('windows_x86_64_gnullvm', '0.52.5'),
+ ('windows_x86_64_msvc', '0.52.5'),
+ ('zeroize', '1.7.0'),
+]
+
+sources = [SOURCE_TAR_GZ]
+checksums = [
+ {'bcrypt-4.1.3.tar.gz': '2ee15dd749f5952fe3f0430d0ff6b74082e159c50332a1413d51b5689cf06623'},
+ {'autocfg-1.3.0.tar.gz': '0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0'},
+ {'base64-0.22.1.tar.gz': '72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6'},
+ {'bcrypt-0.15.1.tar.gz': 'e65938ed058ef47d92cf8b346cc76ef48984572ade631927e9937b5ffc7662c7'},
+ {'bcrypt-pbkdf-0.10.0.tar.gz': '6aeac2e1fe888769f34f05ac343bbef98b14d1ffb292ab69d4608b3abc86f2a2'},
+ {'bitflags-2.5.0.tar.gz': 'cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1'},
+ {'block-buffer-0.10.4.tar.gz': '3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71'},
+ {'blowfish-0.9.1.tar.gz': 'e412e2cd0f2b2d93e02543ceae7917b3c70331573df19ee046bcbc35e45e87d7'},
+ {'byteorder-1.5.0.tar.gz': '1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b'},
+ {'cfg-if-1.0.0.tar.gz': 'baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd'},
+ {'cipher-0.4.4.tar.gz': '773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad'},
+ {'cpufeatures-0.2.12.tar.gz': '53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504'},
+ {'crypto-common-0.1.6.tar.gz': '1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3'},
+ {'digest-0.10.7.tar.gz': '9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292'},
+ {'generic-array-0.14.7.tar.gz': '85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a'},
+ {'getrandom-0.2.14.tar.gz': '94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c'},
+ {'heck-0.4.1.tar.gz': '95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8'},
+ {'indoc-2.0.5.tar.gz': 'b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5'},
+ {'inout-0.1.3.tar.gz': 'a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5'},
+ {'libc-0.2.154.tar.gz': 'ae743338b92ff9146ce83992f766a31066a91a8c84a45e0e9f21e7cf6de6d346'},
+ {'lock_api-0.4.12.tar.gz': '07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17'},
+ {'memoffset-0.9.1.tar.gz': '488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a'},
+ {'once_cell-1.19.0.tar.gz': '3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92'},
+ {'parking_lot-0.12.2.tar.gz': '7e4af0ca4f6caed20e900d564c242b8e5d4903fdacf31d3daf527b66fe6f42fb'},
+ {'parking_lot_core-0.9.10.tar.gz': '1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8'},
+ {'pbkdf2-0.12.2.tar.gz': 'f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2'},
+ {'portable-atomic-1.6.0.tar.gz': '7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0'},
+ {'proc-macro2-1.0.81.tar.gz': '3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba'},
+ {'pyo3-0.21.2.tar.gz': 'a5e00b96a521718e08e03b1a622f01c8a8deb50719335de3f60b3b3950f069d8'},
+ {'pyo3-build-config-0.21.2.tar.gz': '7883df5835fafdad87c0d888b266c8ec0f4c9ca48a5bed6bbb592e8dedee1b50'},
+ {'pyo3-ffi-0.21.2.tar.gz': '01be5843dc60b916ab4dad1dca6d20b9b4e6ddc8e15f50c47fe6d85f1fb97403'},
+ {'pyo3-macros-0.21.2.tar.gz': '77b34069fc0682e11b31dbd10321cbf94808394c56fd996796ce45217dfac53c'},
+ {'pyo3-macros-backend-0.21.2.tar.gz': '08260721f32db5e1a5beae69a55553f56b99bd0e1c3e6e0a5e8851a9d0f5a85c'},
+ {'quote-1.0.36.tar.gz': '0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7'},
+ {'redox_syscall-0.5.1.tar.gz': '469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e'},
+ {'scopeguard-1.2.0.tar.gz': '94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49'},
+ {'sha2-0.10.8.tar.gz': '793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8'},
+ {'smallvec-1.13.2.tar.gz': '3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67'},
+ {'subtle-2.5.0.tar.gz': '81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc'},
+ {'syn-2.0.60.tar.gz': '909518bc7b1c9b779f1bbf07f2929d35af9f0f37e47c6e9ef7f9dddc1e1821f3'},
+ {'target-lexicon-0.12.14.tar.gz': 'e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f'},
+ {'typenum-1.17.0.tar.gz': '42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825'},
+ {'unicode-ident-1.0.12.tar.gz': '3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b'},
+ {'unindent-0.2.3.tar.gz': 'c7de7d73e1754487cb58364ee906a499937a0dfabd86bcb980fa99ec8c8fa2ce'},
+ {'version_check-0.9.4.tar.gz': '49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f'},
+ {'wasi-0.11.0+wasi-snapshot-preview1.tar.gz': '9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423'},
+ {'windows-targets-0.52.5.tar.gz': '6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb'},
+ {'windows_aarch64_gnullvm-0.52.5.tar.gz': '7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263'},
+ {'windows_aarch64_msvc-0.52.5.tar.gz': '9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6'},
+ {'windows_i686_gnu-0.52.5.tar.gz': '88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670'},
+ {'windows_i686_gnullvm-0.52.5.tar.gz': '87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9'},
+ {'windows_i686_msvc-0.52.5.tar.gz': 'db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf'},
+ {'windows_x86_64_gnu-0.52.5.tar.gz': '4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9'},
+ {'windows_x86_64_gnullvm-0.52.5.tar.gz': '852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596'},
+ {'windows_x86_64_msvc-0.52.5.tar.gz': 'bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0'},
+ {'zeroize-1.7.0.tar.gz': '525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d'},
+]
+
+download_dep_fail = True
+use_pip = True
+sanity_pip_check = True
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/b/beagle-lib/beagle-lib-4.0.1-GCC-12.3.0-CUDA-12.1.1.eb b/easybuild/easyconfigs/b/beagle-lib/beagle-lib-4.0.1-GCC-12.3.0-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..2c2bbf6705b
--- /dev/null
+++ b/easybuild/easyconfigs/b/beagle-lib/beagle-lib-4.0.1-GCC-12.3.0-CUDA-12.1.1.eb
@@ -0,0 +1,35 @@
+easyblock = 'CMakeMake'
+
+name = 'beagle-lib'
+version = '4.0.1'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://github.com/beagle-dev/beagle-lib'
+description = """beagle-lib is a high-performance library that can perform the core calculations at the heart of most
+ Bayesian and Maximum Likelihood phylogenetics packages."""
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+
+source_urls = ['https://github.com/beagle-dev/beagle-lib/archive/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['9d258cd9bedd86d7c28b91587acd1132f4e01d4f095c657ad4dc93bd83d4f120']
+
+dependencies = [
+ ('Java', '11', '', SYSTEM),
+ ('CUDA', '12.1.1', '', SYSTEM),
+]
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+ ('pkgconf', '1.9.5'),
+]
+
+configopts = '-DBUILD_CUDA=ON '
+
+sanity_check_paths = {
+ 'files': ["include/libhmsbeagle-1/libhmsbeagle/%s" % x for x in ["beagle.h", "platform.h"]] +
+ ["lib/libhmsbeagle%s.%s" % (x, SHLIB_EXT) for x in ["-cpu", "-cpu-sse", "-jni", ""]],
+ 'dirs': []
+}
+
+moduleclass = 'numlib'
diff --git a/easybuild/easyconfigs/b/binutils/binutils-2.42-GCCcore-13.3.0.eb b/easybuild/easyconfigs/b/binutils/binutils-2.42-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..7a10c5ed2bc
--- /dev/null
+++ b/easybuild/easyconfigs/b/binutils/binutils-2.42-GCCcore-13.3.0.eb
@@ -0,0 +1,31 @@
+name = 'binutils'
+version = '2.42'
+
+homepage = 'https://directory.fsf.org/project/binutils/'
+description = "binutils: GNU binary utilities"
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = [GNU_SOURCE]
+sources = [SOURCE_TAR_GZ]
+checksums = ['5d2a6c1d49686a557869caae08b6c2e83699775efd27505e01b2f4db1a024ffc']
+
+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.3.1'),
+]
+
+# avoid build failure when makeinfo command is not available
+# see https://sourceware.org/bugzilla/show_bug.cgi?id=15345
+buildopts = 'MAKEINFO=true'
+installopts = buildopts
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/b/binutils/binutils-2.42-GCCcore-14.1.0.eb b/easybuild/easyconfigs/b/binutils/binutils-2.42-GCCcore-14.1.0.eb
new file mode 100644
index 00000000000..0ef5c688a3e
--- /dev/null
+++ b/easybuild/easyconfigs/b/binutils/binutils-2.42-GCCcore-14.1.0.eb
@@ -0,0 +1,31 @@
+name = 'binutils'
+version = '2.42'
+
+homepage = 'https://directory.fsf.org/project/binutils/'
+description = "binutils: GNU binary utilities"
+
+toolchain = {'name': 'GCCcore', 'version': '14.1.0'}
+
+source_urls = [GNU_SOURCE]
+sources = [SOURCE_TAR_GZ]
+checksums = ['5d2a6c1d49686a557869caae08b6c2e83699775efd27505e01b2f4db1a024ffc']
+
+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.3.1'),
+]
+
+# avoid build failure when makeinfo command is not available
+# see https://sourceware.org/bugzilla/show_bug.cgi?id=15345
+buildopts = 'MAKEINFO=true'
+installopts = buildopts
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/b/binutils/binutils-2.42-GCCcore-14.2.0.eb b/easybuild/easyconfigs/b/binutils/binutils-2.42-GCCcore-14.2.0.eb
new file mode 100644
index 00000000000..94b762d7803
--- /dev/null
+++ b/easybuild/easyconfigs/b/binutils/binutils-2.42-GCCcore-14.2.0.eb
@@ -0,0 +1,31 @@
+name = 'binutils'
+version = '2.42'
+
+homepage = 'https://directory.fsf.org/project/binutils/'
+description = "binutils: GNU binary utilities"
+
+toolchain = {'name': 'GCCcore', 'version': '14.2.0'}
+
+source_urls = [GNU_SOURCE]
+sources = [SOURCE_TAR_GZ]
+checksums = ['5d2a6c1d49686a557869caae08b6c2e83699775efd27505e01b2f4db1a024ffc']
+
+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.3.1'),
+]
+
+# avoid build failure when makeinfo command is not available
+# see https://sourceware.org/bugzilla/show_bug.cgi?id=15345
+buildopts = 'MAKEINFO=true'
+installopts = buildopts
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/b/binutils/binutils-2.42.eb b/easybuild/easyconfigs/b/binutils/binutils-2.42.eb
new file mode 100644
index 00000000000..93223d7387d
--- /dev/null
+++ b/easybuild/easyconfigs/b/binutils/binutils-2.42.eb
@@ -0,0 +1,26 @@
+name = 'binutils'
+version = '2.42'
+
+homepage = 'https://directory.fsf.org/project/binutils/'
+
+description = "binutils: GNU binary utilities"
+
+toolchain = SYSTEM
+
+source_urls = [GNU_SOURCE]
+sources = [SOURCE_TAR_GZ]
+checksums = ['5d2a6c1d49686a557869caae08b6c2e83699775efd27505e01b2f4db1a024ffc']
+
+builddependencies = [
+ ('flex', '2.6.4'),
+ ('Bison', '3.8.2'),
+ # zlib required, but being linked in statically, so not a runtime dep
+ ('zlib', '1.3.1'),
+]
+
+# 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/biom-format/biom-format-2.1.15-foss-2023a.eb b/easybuild/easyconfigs/b/biom-format/biom-format-2.1.15-foss-2023a.eb
new file mode 100644
index 00000000000..097ccb0a7e7
--- /dev/null
+++ b/easybuild/easyconfigs/b/biom-format/biom-format-2.1.15-foss-2023a.eb
@@ -0,0 +1,48 @@
+##
+# 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:: Revised BSD
+#
+# Notes:: updated by Kenneth Hoste (HPC-UGent) for foss/2021b
+##
+# Updated: Petr Král (INUITS)
+
+easyblock = 'PythonPackage'
+
+name = 'biom-format'
+version = '2.1.15'
+
+homepage = 'https://biom-format.org'
+description = """
+The BIOM file format (canonically pronounced biome) is designed to be
+ a general-use format for representing biological sample by observation
+ contingency tables. BIOM is a recognized standard for the Earth Microbiome
+ Project and is a Genomics Standards Consortium supported project.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'usempi': True}
+
+sources = [SOURCE_TAR_GZ]
+checksums = ['3bda2096e663dc1cb6f90f51b394da0838b9be5164a44370c134ce5b3b2a4dd3']
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('h5py', '3.9.0'),
+]
+
+use_pip = True
+sanity_pip_check = True
+download_dep_fail = True
+
+sanity_check_paths = {
+ 'files': ['bin/biom'],
+ 'dirs': ['lib'],
+}
+
+options = {'modulename': 'biom'}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/b/biom-format/biom-format-2.1.16-foss-2023b.eb b/easybuild/easyconfigs/b/biom-format/biom-format-2.1.16-foss-2023b.eb
new file mode 100644
index 00000000000..91d9cecbd99
--- /dev/null
+++ b/easybuild/easyconfigs/b/biom-format/biom-format-2.1.16-foss-2023b.eb
@@ -0,0 +1,49 @@
+##
+# 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:: Revised BSD
+#
+# Notes:: updated by Kenneth Hoste (HPC-UGent) for foss/2021b
+##
+# Updated: Petr Král (INUITS)
+# Updated: Lara Peeters (Ghent University)
+
+easyblock = 'PythonPackage'
+
+name = 'biom-format'
+version = '2.1.16'
+
+homepage = 'https://biom-format.org'
+description = """
+The BIOM file format (canonically pronounced biome) is designed to be
+ a general-use format for representing biological sample by observation
+ contingency tables. BIOM is a recognized standard for the Earth Microbiome
+ Project and is a Genomics Standards Consortium supported project.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023b'}
+toolchainopts = {'usempi': True}
+
+sources = [SOURCE_TAR_GZ]
+checksums = ['47f88d57a94ecaa4d06f3578ca394e78db6d12e46ab0886634743181e67dcfc9']
+
+dependencies = [
+ ('Python', '3.11.5'),
+ ('SciPy-bundle', '2023.11'),
+ ('h5py', '3.11.0'),
+]
+
+use_pip = True
+sanity_pip_check = True
+download_dep_fail = True
+
+sanity_check_paths = {
+ 'files': ['bin/biom'],
+ 'dirs': ['lib'],
+}
+
+options = {'modulename': 'biom'}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/b/bitsandbytes/bitsandbytes-0.43.3-foss-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/b/bitsandbytes/bitsandbytes-0.43.3-foss-2023a-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..8127a86c558
--- /dev/null
+++ b/easybuild/easyconfigs/b/bitsandbytes/bitsandbytes-0.43.3-foss-2023a-CUDA-12.1.1.eb
@@ -0,0 +1,49 @@
+easyblock = 'CMakeMake'
+
+name = 'bitsandbytes'
+version = '0.43.3'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://huggingface.co/docs/bitsandbytes/main/en/index'
+description = "bitsandbytes enables accessible large language models via k-bit quantization for PyTorch."
+github_account = 'bitsandbytes-foundation'
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+source_urls = [GITHUB_LOWER_SOURCE]
+sources = ['%(version)s.tar.gz']
+checksums = ['7a468bc977da19c176cc578954bfd7a3c64182f387a6849e9f0a38d5cba1b4df']
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+ ('pkgconf', '1.9.5'),
+]
+
+dependencies = [
+ ('CUDA', '12.1.1', '', SYSTEM),
+ ('Python', '3.11.3'),
+ ('PyTorch', '2.1.2', versionsuffix),
+ ('SciPy-bundle', '2023.07'),
+]
+
+configopts = '-DCOMPUTE_BACKEND=cuda'
+skipsteps = ['install']
+
+postinstallcmds = [
+ 'pip install --prefix=%(installdir)s --no-deps --ignore-installed --no-index --no-build-isolation %(start_dir)s',
+]
+
+sanity_check_paths = {
+ 'files': ['lib/python%%(pyshortver)s/site-packages/bitsandbytes/libbitsandbytes_cuda121.%s' % SHLIB_EXT],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = [
+ "python -c 'import bitsandbytes'",
+]
+
+modextrapaths = {
+ 'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages']
+}
+
+moduleclass = 'ai'
diff --git a/easybuild/easyconfigs/b/bitsandbytes/bitsandbytes-0.43.3-foss-2023a.eb b/easybuild/easyconfigs/b/bitsandbytes/bitsandbytes-0.43.3-foss-2023a.eb
new file mode 100644
index 00000000000..8b360bb263b
--- /dev/null
+++ b/easybuild/easyconfigs/b/bitsandbytes/bitsandbytes-0.43.3-foss-2023a.eb
@@ -0,0 +1,46 @@
+easyblock = 'CMakeMake'
+
+name = 'bitsandbytes'
+version = '0.43.3'
+
+homepage = 'https://huggingface.co/docs/bitsandbytes/main/en/index'
+description = "bitsandbytes enables accessible large language models via k-bit quantization for PyTorch."
+github_account = 'bitsandbytes-foundation'
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+source_urls = [GITHUB_LOWER_SOURCE]
+sources = ['%(version)s.tar.gz']
+checksums = ['7a468bc977da19c176cc578954bfd7a3c64182f387a6849e9f0a38d5cba1b4df']
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+ ('pkgconf', '1.9.5'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('PyTorch', '2.1.2'),
+ ('SciPy-bundle', '2023.07'),
+]
+
+skipsteps = ['install']
+
+postinstallcmds = [
+ 'pip install --prefix=%(installdir)s --no-deps --ignore-installed --no-index --no-build-isolation %(start_dir)s',
+]
+
+sanity_check_paths = {
+ 'files': ['lib/python%%(pyshortver)s/site-packages/bitsandbytes/libbitsandbytes_cpu.%s' % SHLIB_EXT],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = [
+ "python -c 'import bitsandbytes'",
+]
+
+modextrapaths = {
+ 'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages']
+}
+
+moduleclass = 'ai'
diff --git a/easybuild/easyconfigs/b/bitshuffle/bitshuffle-0.5.1-foss-2023a.eb b/easybuild/easyconfigs/b/bitshuffle/bitshuffle-0.5.1-foss-2023a.eb
new file mode 100644
index 00000000000..3faf7d3a1ee
--- /dev/null
+++ b/easybuild/easyconfigs/b/bitshuffle/bitshuffle-0.5.1-foss-2023a.eb
@@ -0,0 +1,32 @@
+easyblock = 'PythonBundle'
+
+name = 'bitshuffle'
+version = '0.5.1'
+
+homepage = 'https://github.com/kiyo-masui/bitshuffle'
+description = """
+Filter for improving compression of typed binary data.
+Bitshuffle is an algorithm that rearranges typed, binary data for improving compression, as
+well as a python/C package that implements this algorithm within the Numpy framework.
+The library can be used along side HDF5 to compress and decompress datasets and is integrated
+through the dynamically loaded filters framework. Bitshuffle is HDF5 filter number 32008.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('h5py', '3.9.0'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ (name, version, {
+ 'checksums': ['988f224739aa6858475a4c59172968c7b51cc657d2249580c8f96848708fbae3'],
+ }),
+]
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/b/bliss/bliss-0.77-GCC-13.2.0.eb b/easybuild/easyconfigs/b/bliss/bliss-0.77-GCC-13.2.0.eb
new file mode 100644
index 00000000000..ec9a99bc306
--- /dev/null
+++ b/easybuild/easyconfigs/b/bliss/bliss-0.77-GCC-13.2.0.eb
@@ -0,0 +1,41 @@
+easyblock = 'CMakeMake'
+
+name = 'bliss'
+version = '0.77'
+
+homepage = 'https://users.aalto.fi/~tjunttil/bliss/'
+description = """Bliss is an open-source tool for computing canonical labelings and automorphism groups of graphs."""
+
+toolchain = {'name': 'GCC', 'version': '13.2.0'}
+
+source_urls = ['https://users.aalto.fi/~tjunttil/bliss/downloads/']
+sources = [SOURCE_ZIP]
+patches = ['bliss-0.77_install_fix.patch']
+checksums = [
+ {'bliss-0.77.zip': 'acc8b98034f30fad24c897f365abd866c13d9f1bb207e398d0caf136875972a4'},
+ {'bliss-0.77_install_fix.patch': '1550b6c7f8208f56093c0b6bf0d2e3df42afab81cd69eb70303515c9923e9513'},
+]
+
+builddependencies = [
+ ('CMake', '3.27.6'),
+]
+
+dependencies = [
+ ('GMP', '6.3.0'),
+]
+
+configopts = "-DUSE_GMP=ON "
+
+sanity_check_paths = {
+ 'files': [
+ 'bin/bliss',
+ 'lib/libbliss.%s' % SHLIB_EXT,
+ ],
+ 'dirs': [
+ 'include/%(name)s',
+ ],
+}
+
+sanity_check_commands = ["bliss -help"]
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/b/bliss/bliss-0.77_install_fix.patch b/easybuild/easyconfigs/b/bliss/bliss-0.77_install_fix.patch
new file mode 100644
index 00000000000..faea2ad4daf
--- /dev/null
+++ b/easybuild/easyconfigs/b/bliss/bliss-0.77_install_fix.patch
@@ -0,0 +1,33 @@
+Adds install commands to CMakeLists.txt
+Source: https://gitlab.archlinux.org/archlinux/packaging/packages/bliss/-/blob/0.77-3/make-install.patch
+diff -u CMakeLists.txt.orig CMakeLists.txt
+--- CMakeLists.txt.orig 2021-02-18 11:59:34.000000000 +0100
++++ CMakeLists.txt 2024-08-15 15:04:21.293765655 +0200
+@@ -62,3 +62,27 @@
+ target_link_libraries(bliss-executable ${GMP_LIBRARIES})
+ endif(USE_GMP)
+ set_target_properties(bliss-executable PROPERTIES OUTPUT_NAME bliss)
++
++include(GNUInstallDirs)
++
++set(
++ BLISS_HEADERS
++ src/bliss_C.h
++ src/uintseqhash.hh
++ src/abstractgraph.hh
++ src/stats.hh
++ src/digraph.hh
++ src/defs.hh
++ src/heap.hh
++ src/graph.hh
++ src/partition.hh
++ src/kqueue.hh
++ src/utils.hh
++ src/orbit.hh
++ src/timer.hh
++ src/bignum.hh
++)
++
++install(TARGETS bliss-executable RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
++install(TARGETS bliss LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
++install(FILES ${BLISS_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/bliss)
diff --git a/easybuild/easyconfigs/b/bokeh/bokeh-3.4.1-gfbf-2023b.eb b/easybuild/easyconfigs/b/bokeh/bokeh-3.4.1-gfbf-2023b.eb
new file mode 100644
index 00000000000..58f15fcf3e9
--- /dev/null
+++ b/easybuild/easyconfigs/b/bokeh/bokeh-3.4.1-gfbf-2023b.eb
@@ -0,0 +1,50 @@
+easyblock = 'PythonBundle'
+
+name = 'bokeh'
+version = '3.4.1'
+
+homepage = 'https://github.com/bokeh/bokeh'
+description = "Statistical and novel interactive HTML plots for Python"
+
+toolchain = {'name': 'gfbf', 'version': '2023b'}
+
+builddependencies = [
+ ('meson-python', '0.15.0'),
+]
+
+dependencies = [
+ ('Python', '3.11.5'),
+ ('Python-bundle-PyPI', '2023.10'),
+ ('SciPy-bundle', '2023.11'),
+ ('matplotlib', '3.8.2'),
+ ('PyYAML', '6.0.1'),
+ ('Pillow', '10.2.0'),
+ ('tornado', '6.4'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('contourpy', '1.2.1', {
+ 'checksums': ['4d8908b3bee1c889e547867ca4cdc54e5ab6be6d3e078556814a22457f49423c'],
+ }),
+ ('xyzservices', '2024.4.0', {
+ 'checksums': ['6a04f11487a6fb77d92a98984cd107fbd9157fd5e65f929add9c3d6e604ee88c'],
+ }),
+ (name, version, {
+ # bokeh uses git tags to get version, so we'll instead inject the version into setup.py
+ 'preinstallopts': """sed -i 's/setup(/setup(version="%(version)s",/g' setup.py && """,
+ 'checksums': ['d824961e4265367b0750ce58b07e564ad0b83ca64b335521cd3421e9b9f10d89'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/bokeh'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = ["bokeh --help"]
+
+sanity_pip_check = True
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/b/bokeh/bokeh-3.6.0-gfbf-2024a.eb b/easybuild/easyconfigs/b/bokeh/bokeh-3.6.0-gfbf-2024a.eb
new file mode 100644
index 00000000000..fadc3d201b6
--- /dev/null
+++ b/easybuild/easyconfigs/b/bokeh/bokeh-3.6.0-gfbf-2024a.eb
@@ -0,0 +1,49 @@
+easyblock = 'PythonBundle'
+
+name = 'bokeh'
+version = '3.6.0'
+
+homepage = 'https://github.com/bokeh/bokeh'
+description = "Statistical and novel interactive HTML plots for Python"
+
+toolchain = {'name': 'gfbf', 'version': '2024a'}
+
+builddependencies = [
+ ('meson-python', '0.16.0'),
+]
+
+dependencies = [
+ ('Python', '3.12.3'),
+ ('Python-bundle-PyPI', '2024.06'),
+ ('SciPy-bundle', '2024.05'),
+ ('matplotlib', '3.9.2'),
+ ('PyYAML', '6.0.2'),
+ ('Pillow', '10.4.0'),
+ ('tornado', '6.4.1'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('contourpy', '1.2.1', {
+ 'checksums': ['4d8908b3bee1c889e547867ca4cdc54e5ab6be6d3e078556814a22457f49423c'],
+ }),
+ ('xyzservices', '2024.4.0', {
+ 'checksums': ['6a04f11487a6fb77d92a98984cd107fbd9157fd5e65f929add9c3d6e604ee88c'],
+ }),
+ (name, version, {
+ 'preinstallopts': """sed -i 's/setup(/setup(version="%(version)s",/g' setup.py && """,
+ 'checksums': ['0032dc1e76ad097b07626e51584685ff48c65481fbaaad105663b1046165867a'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/bokeh'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = ["bokeh --help"]
+
+sanity_pip_check = True
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/b/boto3/boto3-1.35.36-GCCcore-13.3.0.eb b/easybuild/easyconfigs/b/boto3/boto3-1.35.36-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..4f327430573
--- /dev/null
+++ b/easybuild/easyconfigs/b/boto3/boto3-1.35.36-GCCcore-13.3.0.eb
@@ -0,0 +1,40 @@
+easyblock = 'PythonBundle'
+
+name = 'boto3'
+version = '1.35.36'
+
+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': '13.3.0'}
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+
+dependencies = [
+ ('Python', '3.12.3'),
+ ('Python-bundle-PyPI', '2024.06'),
+]
+
+exts_list = [
+ ('botocore', version, {
+ 'checksums': ['354ec1b766f0029b5d6ff0c45d1a0f9e5007b7d2f3ec89bcdd755b208c5bc797'],
+ }),
+ ('jmespath', '1.0.1', {
+ 'checksums': ['90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe'],
+ }),
+ ('s3transfer', '0.10.3', {
+ 'checksums': ['4f50ed74ab84d474ce614475e0b8d5047ff080810aac5d01ea25231cfc944b0c'],
+ }),
+ (name, version, {
+ 'checksums': ['586524b623e4fbbebe28b604c6205eb12f263cc4746bccb011562d07e217a4cb'],
+ }),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/b/btllib/btllib-1.7.0-GCC-12.3.0.eb b/easybuild/easyconfigs/b/btllib/btllib-1.7.0-GCC-12.3.0.eb
new file mode 100644
index 00000000000..960f1b09253
--- /dev/null
+++ b/easybuild/easyconfigs/b/btllib/btllib-1.7.0-GCC-12.3.0.eb
@@ -0,0 +1,43 @@
+easyblock = 'CmdCp'
+
+name = 'btllib'
+version = '1.7.0'
+
+homepage = 'https://github.com/bcgsc/btllib'
+description = """Bioinformatics Technology Lab common code library"""
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+toolchainopts = {'openmp': True}
+
+sources = [{
+ 'filename': '%(name)s-%(version)s.tar.gz',
+ 'git_config': {
+ 'url': 'https://github.com/bcgsc',
+ 'repo_name': 'btllib',
+ 'tag': 'v%(version)s',
+ 'recursive': True,
+ 'keep_git_dir': True,
+ }
+}]
+checksums = [None]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Meson', '1.1.1'),
+ ('Ninja', '1.11.1'),
+ ('CMake', '3.26.3'),
+ ('SAMtools', '1.18'),
+]
+
+cmds_map = [('.*', "./compile")]
+
+files_to_copy = [(['install/bin/*'], 'bin'), (['install/lib/*'], 'lib'), (['install/include/*'], 'include')]
+
+sanity_check_paths = {
+ 'files': ['bin/randseq', 'bin/indexlr', 'bin/mi_bf_generate'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ['randseq --help', 'indexlr --help']
+
+moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/b/build/build-1.0.3-foss-2023a.eb b/easybuild/easyconfigs/b/build/build-1.0.3-foss-2023a.eb
new file mode 100644
index 00000000000..ddde55757bd
--- /dev/null
+++ b/easybuild/easyconfigs/b/build/build-1.0.3-foss-2023a.eb
@@ -0,0 +1,31 @@
+easyblock = 'PythonBundle'
+
+name = 'build'
+version = '1.0.3'
+
+homepage = 'https://github.com/pypa/build'
+description = """A simple, correct Python build frontend."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('pyproject_hooks', '1.0.0', {
+ 'checksums': ['f271b298b97f5955d53fb12b72c1fb1948c22c1a6b70b315c54cedaca0264ef5'],
+ }),
+ (name, version, {
+ 'checksums': ['538aab1b64f9828977f84bc63ae570b060a8ed1be419e7870b8b4fc5e6ea553b'],
+ }),
+]
+
+sanity_check_commands = [
+ "python3 -m build -V",
+]
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/b/build/build-1.0.3-foss-2023b.eb b/easybuild/easyconfigs/b/build/build-1.0.3-foss-2023b.eb
new file mode 100644
index 00000000000..33af19b02f7
--- /dev/null
+++ b/easybuild/easyconfigs/b/build/build-1.0.3-foss-2023b.eb
@@ -0,0 +1,34 @@
+easyblock = 'PythonBundle'
+
+name = 'build'
+version = '1.0.3'
+
+homepage = 'https://github.com/pypa/build'
+description = """A simple, correct Python build frontend."""
+
+toolchain = {'name': 'foss', 'version': '2023b'}
+
+dependencies = [
+ ('Python', '3.11.5'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('packaging', '23.2', {
+ 'checksums': ['048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5'],
+ }),
+ ('pyproject_hooks', '1.0.0', {
+ 'checksums': ['f271b298b97f5955d53fb12b72c1fb1948c22c1a6b70b315c54cedaca0264ef5'],
+ }),
+ (name, version, {
+ 'checksums': ['538aab1b64f9828977f84bc63ae570b060a8ed1be419e7870b8b4fc5e6ea553b'],
+ }),
+]
+
+sanity_check_commands = [
+ "python3 -m build -V",
+]
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/b/buildenv/buildenv-default-foss-2023b.eb b/easybuild/easyconfigs/b/buildenv/buildenv-default-foss-2023b.eb
new file mode 100644
index 00000000000..5508687d00a
--- /dev/null
+++ b/easybuild/easyconfigs/b/buildenv/buildenv-default-foss-2023b.eb
@@ -0,0 +1,13 @@
+easyblock = 'BuildEnv'
+
+name = 'buildenv'
+version = 'default'
+
+homepage = 'None'
+description = """This module sets a group of environment variables for compilers, linkers, maths libraries, etc., that
+ you can use to easily transition between toolchains when building your software. To query the variables being set
+ please use: module show """
+
+toolchain = {'name': 'foss', 'version': '2023b'}
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/b/buildenv/buildenv-default-intel-2023b.eb b/easybuild/easyconfigs/b/buildenv/buildenv-default-intel-2023b.eb
new file mode 100644
index 00000000000..558beb36286
--- /dev/null
+++ b/easybuild/easyconfigs/b/buildenv/buildenv-default-intel-2023b.eb
@@ -0,0 +1,13 @@
+easyblock = 'BuildEnv'
+
+name = 'buildenv'
+version = 'default'
+
+homepage = 'None'
+description = """This module sets a group of environment variables for compilers, linkers, maths libraries, etc., that
+ you can use to easily transition between toolchains when building your software. To query the variables being set
+ please use: module show """
+
+toolchain = {'name': 'intel', 'version': '2023b'}
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/b/bwa-mem2/bwa-mem2-2.2.1-intel-compilers-2023.1.0.eb b/easybuild/easyconfigs/b/bwa-mem2/bwa-mem2-2.2.1-intel-compilers-2023.1.0.eb
new file mode 100644
index 00000000000..e4edd8be316
--- /dev/null
+++ b/easybuild/easyconfigs/b/bwa-mem2/bwa-mem2-2.2.1-intel-compilers-2023.1.0.eb
@@ -0,0 +1,41 @@
+easyblock = 'MakeCp'
+
+name = 'bwa-mem2'
+version = '2.2.1'
+
+homepage = 'https://github.com/bwa-mem2/bwa-mem2'
+description = """
+The tool bwa-mem2 is the next version of the bwa-mem algorithm in bwa. It
+produces alignment identical to bwa and is ~1.3-3.1x faster depending on the
+use-case, dataset and the running machine."""
+
+toolchain = {'name': 'intel-compilers', 'version': '2023.1.0'}
+toolchainopts = {'pic': True, 'oneapi': False}
+
+github_account = 'bwa-mem2'
+source_urls = [GITHUB_SOURCE]
+sources = ['v%(version)s.tar.gz']
+patches = [
+ 'bwa-mem2-%(version)s_use_external_deps.patch',
+ 'bwa-mem2-%(version)s_common_avx512_flags.patch',
+]
+checksums = [
+ {'v2.2.1.tar.gz': '36ddd28ce7020d5a036ddeffa00e692296fd40c80380671bd4ea5757bd28841b'},
+ {'bwa-mem2-2.2.1_use_external_deps.patch': '0a9d7f7b3289029e19cf7dbab1778448097b9e0f92fa41a74a8cf81c9e114967'},
+ {'bwa-mem2-2.2.1_common_avx512_flags.patch': '1a784bca167c6e3576a83c11715cbf6f8dced09d46021c0d283f7a1b185d6569'},
+]
+
+dependencies = [('safestringlib', '20240228')]
+
+build_cmd_targets = 'multi'
+
+files_to_copy = [(['bwa-mem2*'], 'bin')]
+
+sanity_check_paths = {
+ 'files': ['bin/%(name)s'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ['bwa-mem2 version']
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/b/bwa-mem2/bwa-mem2-2.2.1_common_avx512_flags.patch b/easybuild/easyconfigs/b/bwa-mem2/bwa-mem2-2.2.1_common_avx512_flags.patch
new file mode 100644
index 00000000000..b7e55ecf1f1
--- /dev/null
+++ b/easybuild/easyconfigs/b/bwa-mem2/bwa-mem2-2.2.1_common_avx512_flags.patch
@@ -0,0 +1,15 @@
+Use common AVX512 flagset to increase compatibility of bwa-mem2.avx512bw binary
+across platforms supporting AVX512
+see https://github.com/bwa-mem2/bwa-mem2/issues/236
+author: Alex Domingo (Vrije Universiteit Brussel)
+--- Makefile.orig 2024-04-29 14:52:21.634066000 +0200
++++ Makefile 2024-04-29 14:52:48.590282000 +0200
+@@ -76,7 +76,7 @@
+ endif
+ else ifeq ($(arch),avx512)
+ ifeq ($(CXX), icpc)
+- ARCH_FLAGS=-xCORE-AVX512
++ ARCH_FLAGS=-march=common-avx512 #-xCORE-AVX512
+ else
+ ARCH_FLAGS=-mavx512bw
+ endif
diff --git a/easybuild/easyconfigs/b/bwa-mem2/bwa-mem2-2.2.1_use_external_deps.patch b/easybuild/easyconfigs/b/bwa-mem2/bwa-mem2-2.2.1_use_external_deps.patch
new file mode 100644
index 00000000000..e6cbe00c724
--- /dev/null
+++ b/easybuild/easyconfigs/b/bwa-mem2/bwa-mem2-2.2.1_use_external_deps.patch
@@ -0,0 +1,62 @@
+Use external safestringlib dependency
+Author: Samuel Moors (Vrije Universiteit Brussel)
+
+diff -ur bwa-mem2-2.2.1.orig/Makefile bwa-mem2-2.2.1/Makefile
+--- bwa-mem2-2.2.1.orig/Makefile 2021-03-17 06:36:00.000000000 +0100
++++ bwa-mem2-2.2.1/Makefile 2024-03-27 20:54:40.532807000 +0100
+@@ -42,14 +42,13 @@
+ ARCH_FLAGS= -msse -msse2 -msse3 -mssse3 -msse4.1
+ MEM_FLAGS= -DSAIS=1
+ CPPFLAGS+= -DENABLE_PREFETCH -DV17=1 -DMATE_SORT=0 $(MEM_FLAGS)
+-INCLUDES= -Isrc -Iext/safestringlib/include
+-LIBS= -lpthread -lm -lz -L. -lbwa -Lext/safestringlib -lsafestring $(STATIC_GCC)
++INCLUDES= -Isrc
++LIBS= -lpthread -lm -lz -L. -lbwa -lsafestring_shared $(STATIC_GCC)
+ OBJS= src/fastmap.o src/bwtindex.o src/utils.o src/memcpy_bwamem.o src/kthread.o \
+ src/kstring.o src/ksw.o src/bntseq.o src/bwamem.o src/profiling.o src/bandedSWA.o \
+ src/FMI_search.o src/read_index_ele.o src/bwamem_pair.o src/kswv.o src/bwa.o \
+ src/bwamem_extra.o src/kopen.o
+ BWA_LIB= libbwa.a
+-SAFE_STR_LIB= ext/safestringlib/libsafestring.a
+
+ ifeq ($(arch),sse41)
+ ifeq ($(CXX), icpc)
+@@ -101,31 +100,27 @@
+ all:$(EXE)
+
+ multi:
+- rm -f src/*.o $(BWA_LIB); cd ext/safestringlib/ && $(MAKE) clean;
++ rm -f src/*.o $(BWA_LIB);
+ $(MAKE) arch=sse41 EXE=bwa-mem2.sse41 CXX=$(CXX) all
+- rm -f src/*.o $(BWA_LIB); cd ext/safestringlib/ && $(MAKE) clean;
++ rm -f src/*.o $(BWA_LIB);
+ $(MAKE) arch=sse42 EXE=bwa-mem2.sse42 CXX=$(CXX) all
+- rm -f src/*.o $(BWA_LIB); cd ext/safestringlib/ && $(MAKE) clean;
++ rm -f src/*.o $(BWA_LIB);
+ $(MAKE) arch=avx EXE=bwa-mem2.avx CXX=$(CXX) all
+- rm -f src/*.o $(BWA_LIB); cd ext/safestringlib/ && $(MAKE) clean;
++ rm -f src/*.o $(BWA_LIB);
+ $(MAKE) arch=avx2 EXE=bwa-mem2.avx2 CXX=$(CXX) all
+- rm -f src/*.o $(BWA_LIB); cd ext/safestringlib/ && $(MAKE) clean;
++ rm -f src/*.o $(BWA_LIB);
+ $(MAKE) arch=avx512 EXE=bwa-mem2.avx512bw CXX=$(CXX) all
+- $(CXX) -Wall -O3 src/runsimd.cpp -Iext/safestringlib/include -Lext/safestringlib/ -lsafestring $(STATIC_GCC) -o bwa-mem2
++ $(CXX) -Wall -O3 src/runsimd.cpp -lsafestring_shared $(STATIC_GCC) -o bwa-mem2
+
+
+-$(EXE):$(BWA_LIB) $(SAFE_STR_LIB) src/main.o
++$(EXE):$(BWA_LIB) src/main.o
+ $(CXX) $(CXXFLAGS) $(LDFLAGS) src/main.o $(BWA_LIB) $(LIBS) -o $@
+
+ $(BWA_LIB):$(OBJS)
+ ar rcs $(BWA_LIB) $(OBJS)
+
+-$(SAFE_STR_LIB):
+- cd ext/safestringlib/ && $(MAKE) clean && $(MAKE) CC=$(CC) directories libsafestring.a
+-
+ clean:
+ rm -fr src/*.o $(BWA_LIB) $(EXE) bwa-mem2.sse41 bwa-mem2.sse42 bwa-mem2.avx bwa-mem2.avx2 bwa-mem2.avx512bw
+- cd ext/safestringlib/ && $(MAKE) clean
+
+ depend:
+ (LC_ALL=C; export LC_ALL; makedepend -Y -- $(CXXFLAGS) $(CPPFLAGS) -I. -- src/*.cpp)
diff --git a/easybuild/easyconfigs/b/byacc/byacc-2.0.20240109-GCCcore-13.3.0.eb b/easybuild/easyconfigs/b/byacc/byacc-2.0.20240109-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..fa57e4306e6
--- /dev/null
+++ b/easybuild/easyconfigs/b/byacc/byacc-2.0.20240109-GCCcore-13.3.0.eb
@@ -0,0 +1,24 @@
+easyblock = 'ConfigureMake'
+
+name = 'byacc'
+version = '2.0.20240109'
+
+homepage = 'http://invisible-island.net/byacc/byacc.html'
+description = """Berkeley Yacc (byacc) is generally conceded to be the best yacc variant available.
+ In contrast to bison, it is written to avoid dependencies upon a particular compiler.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://invisible-island.net/archives/byacc/']
+sources = ['byacc-%s.tgz' % version.split('.')[2]]
+checksums = ['f2897779017189f1a94757705ef6f6e15dc9208ef079eea7f28abec577e08446']
+
+builddependencies = [('binutils', '2.42')]
+
+sanity_check_paths = {
+ 'files': ["bin/yacc"],
+ 'dirs': []
+}
+
+moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/b/bzip2/bzip2-1.0.8-GCCcore-13.3.0.eb b/easybuild/easyconfigs/b/bzip2/bzip2-1.0.8-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..adb4b34a9bb
--- /dev/null
+++ b/easybuild/easyconfigs/b/bzip2/bzip2-1.0.8-GCCcore-13.3.0.eb
@@ -0,0 +1,27 @@
+name = 'bzip2'
+version = '1.0.8'
+
+homepage = 'https://sourceware.org/bzip2'
+description = """
+ bzip2 is a freely available, patent free, high-quality data compressor. It
+ typically compresses files to within 10% to 15% of the best available
+ techniques (the PPM family of statistical compressors), whilst being around
+ twice as fast at compression and six times faster at decompression.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://sourceware.org/pub/%(name)s/']
+sources = [SOURCE_TAR_GZ]
+patches = ['bzip2-%(version)s-pkgconfig.patch']
+checksums = [
+ 'ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269', # bzip2-1.0.8.tar.gz
+ '9299e8ee4d014ea973777b6ea90661fe329dfa991f822add4c763ea9ddb9aab1', # bzip2-1.0.8-pkgconfig.patch
+]
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/c/CAMPARI/CAMPARI-4.0-foss-2023a.eb b/easybuild/easyconfigs/c/CAMPARI/CAMPARI-4.0-foss-2023a.eb
new file mode 100644
index 00000000000..af659719245
--- /dev/null
+++ b/easybuild/easyconfigs/c/CAMPARI/CAMPARI-4.0-foss-2023a.eb
@@ -0,0 +1,54 @@
+easyblock = 'ConfigureMake'
+
+name = 'CAMPARI'
+version = '4.0'
+_date = '12202020'
+
+homepage = 'http://campari.sourceforge.net/V4/index.html'
+description = """
+CAMPARI is a joint package for performing and analyzing molecular simulations, in particular of systems of biological
+relevance. It focuses on a wide availability of algorithms for (advanced) sampling and is capable of combining Monte
+Carlo and molecular dynamics in seamless fashion."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+source_urls = [SOURCEFORGE_SOURCE]
+sources = ['campari_v%s_%s.zip' % (version.split('.')[0], _date)]
+checksums = ['bc627fb286b5461a5c68aa3e1a551ecd81016495163685800163c734f7c4f1bd']
+
+builddependencies = [
+ ('Autotools', '20220317'),
+]
+
+dependencies = [
+ ('netCDF-Fortran', '4.6.1'),
+ ('libtirpc', '1.3.3'),
+]
+
+start_dir = 'source'
+
+# remove hardcoded paths in configure script
+preconfigopts = 'sed -i "s|/usr/share|$EBROOTAUTOMAKE/share|" configure &&'
+# ignore default compiler settings and use EB build environment
+local_fcflags = '$FCFLAGS -fallow-argument-mismatch $CPPFLAGS'
+configopts = '--enable-compiler=ignore --with-trailing-user-fcflags="%s" ' % local_fcflags
+configopts += '--enable-mpi=auto '
+configopts += 'LIBS="$LIBS $LIBFFT $LIBBLAS -ltirpc"'
+
+buildopts = 'all'
+
+maxparallel = 10
+
+postinstallcmds = ['cp -a %(builddir)s/campari/{data,doc,examples,params,tools,LICENSE} %(installdir)s/']
+
+_binaries = ['campari', 'campari_mpi', 'campari_mpi_threads', 'campari_threads', 'camp_ncminer', 'camp_ncminer_threads']
+_libraries = ['lcampari.a', 'lcampari_mpi.a', 'lcampari_mpi_threads.a', 'lcampari_threads.a', 'libxdrf.a']
+
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in _binaries] + ['lib/%s' % x for x in _libraries],
+ 'dirs': [],
+}
+
+sanity_check_commands = ['campari -h | grep "USAGE: CAMPARI"']
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/CAMPARI/CAMPARI-4.0-intel-2023a.eb b/easybuild/easyconfigs/c/CAMPARI/CAMPARI-4.0-intel-2023a.eb
new file mode 100644
index 00000000000..743bf47a462
--- /dev/null
+++ b/easybuild/easyconfigs/c/CAMPARI/CAMPARI-4.0-intel-2023a.eb
@@ -0,0 +1,54 @@
+easyblock = 'ConfigureMake'
+
+name = 'CAMPARI'
+version = '4.0'
+_date = '12202020'
+
+homepage = 'http://campari.sourceforge.net/V4/index.html'
+description = """
+CAMPARI is a joint package for performing and analyzing molecular simulations, in particular of systems of biological
+relevance. It focuses on a wide availability of algorithms for (advanced) sampling and is capable of combining Monte
+Carlo and molecular dynamics in seamless fashion."""
+
+toolchain = {'name': 'intel', 'version': '2023a'}
+
+source_urls = [SOURCEFORGE_SOURCE]
+sources = ['campari_v%s_%s.zip' % (version.split('.')[0], _date)]
+checksums = ['bc627fb286b5461a5c68aa3e1a551ecd81016495163685800163c734f7c4f1bd']
+
+builddependencies = [
+ ('Autotools', '20220317'),
+]
+
+dependencies = [
+ ('netCDF-Fortran', '4.6.1'),
+ ('libtirpc', '1.3.3'),
+]
+
+start_dir = 'source'
+
+# remove hardcoded paths in configure script
+preconfigopts = 'sed -i "s|/usr/share|$EBROOTAUTOMAKE/share|" configure &&'
+# ignore default compiler settings and use EB build environment
+local_fcflags = '$FCFLAGS -fallow-argument-mismatch $CPPFLAGS'
+configopts = '--enable-compiler=ignore --with-trailing-user-fcflags="%s" ' % local_fcflags
+configopts += '--enable-mpi=auto '
+configopts += 'LIBS="$LIBS $LIBFFT $LIBBLAS -ltirpc"'
+
+buildopts = 'all'
+
+maxparallel = 10
+
+postinstallcmds = ['cp -a %(builddir)s/campari/{data,doc,examples,params,tools,LICENSE} %(installdir)s/']
+
+_binaries = ['campari', 'campari_mpi', 'campari_mpi_threads', 'campari_threads', 'camp_ncminer', 'camp_ncminer_threads']
+_libraries = ['lcampari.a', 'lcampari_mpi.a', 'lcampari_mpi_threads.a', 'lcampari_threads.a', 'libxdrf.a']
+
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in _binaries] + ['lib/%s' % x for x in _libraries],
+ 'dirs': [],
+}
+
+sanity_check_commands = ['campari -h | grep "USAGE: CAMPARI"']
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/CCCL/CCCL-2.3.0-GCCcore-12.3.0-CUDA-12.1.1.eb b/easybuild/easyconfigs/c/CCCL/CCCL-2.3.0-GCCcore-12.3.0-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..062f686dccd
--- /dev/null
+++ b/easybuild/easyconfigs/c/CCCL/CCCL-2.3.0-GCCcore-12.3.0-CUDA-12.1.1.eb
@@ -0,0 +1,38 @@
+easyblock = 'CMakeMake'
+
+name = 'CCCL'
+version = '2.3.0'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://github.com/NVIDIA/cccl'
+
+description = """CUDA C++ Core Libraries (header only)"""
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+github_account = 'NVIDIA'
+source_urls = [GITHUB_SOURCE]
+sources = ['v%(version)s.tar.gz']
+checksums = ['922c9e72a7d6d91ef6a1421f2545a947529a179d307853be1b1615c02241c271']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('CMake', '3.26.3'),
+]
+
+dependencies = [
+ ('CUDA', '12.1.1', '', SYSTEM),
+]
+
+configopts = '-DCMAKE_CUDA_ARCHITECTURES="%(cuda_cc_cmake)s" '
+# Testing disabled due to it trying to use the wrong compiler (needs nvcc) due to the toolchain
+configopts += '-DCCCL_ENABLE_EXAMPLES=OFF -DCCCL_ENABLE_TESTING=OFF '
+configopts += '-DLIBCUDACXX_ENABLE_CMAKE_TESTS=OFF -DLIBCUDACXX_ENABLE_LIBCUDACXX_TESTS=OFF '
+configopts += '-DCUB_ENABLE_HEADER_TESTING=OFF -DCUB_ENABLE_TESTING=OFF '
+configopts += '-DTHRUST_ENABLE_HEADER_TESTING=OFF -DTHRUST_ENABLE_TESTING=OFF '
+
+sanity_check_paths = {
+ 'files': ['include/cuda/version'],
+ 'dirs': ['include/cub', 'include/thrust', 'include/cuda'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/c/CCL/CCL-1.12.2-GCCcore-12.3.0.eb b/easybuild/easyconfigs/c/CCL/CCL-1.12.2-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..bf6b1c10111
--- /dev/null
+++ b/easybuild/easyconfigs/c/CCL/CCL-1.12.2-GCCcore-12.3.0.eb
@@ -0,0 +1,52 @@
+easyblock = 'MakeCp'
+name = 'CCL'
+version = '1.12.2'
+
+homepage = 'https://ccl.clozure.com/'
+description = """Clozure CL (often called CCL for short) is a free Common Lisp
+ implementation with a long history. Some distinguishing features of the implementation
+ include fast compilation speed, native threads, a precise, generational, compacting
+ garbage collector, and a convenient foreign-function interface."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = ['https://github.com/Clozure/ccl/releases/download/v%(version)s']
+sources = ['%(namelower)s-%(version)s-linuxx86.tar.gz']
+checksums = ['a94fda3daf26ce8c3d08e0db0e6e9907995acc10e0f8aad2125790b93eaa1556']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('M4', '1.4.19'),
+]
+
+local_ccl_bin = 'lx86cl64'
+local_ccl_dirs = [
+ 'compiler', 'level-0', 'level-1', 'lib', 'library', 'lisp-kernel', 'scripts', 'tools', 'xdump', 'x86-headers64'
+]
+
+# Build the kernel
+buildopts = "-C lisp-kernel/linuxx8664 all CC=${CC} && "
+# Rebuild CCL
+buildopts += "./%s -n -b -Q -e '(ccl:rebuild-ccl :full t)' -e '(ccl:quit)'" % local_ccl_bin
+
+files_to_copy = [local_ccl_bin, '%s.image' % local_ccl_bin] + local_ccl_dirs
+
+postinstallcmds = [
+ # Cleanup of build files
+ "find %(installdir)s -type f -name '*fsl' -delete",
+ "find %(installdir)s/lisp-kernel -type f -name '*.o' -delete",
+ # Link executable with generic name
+ "mkdir %(installdir)s/bin",
+ "cd %%(installdir)s/bin && ln -s ../%s ccl" % local_ccl_bin,
+]
+
+sanity_check_paths = {
+ 'files': [local_ccl_bin, '%s.image' % local_ccl_bin, 'bin/ccl'],
+ 'dirs': local_ccl_dirs,
+}
+
+sanity_check_commands = ["ccl --help"]
+
+modextrapaths = {'CCL_DEFAULT_DIRECTORY': ''}
+
+moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/c/CCL/CCL-1.12.2-GCCcore-13.2.0.eb b/easybuild/easyconfigs/c/CCL/CCL-1.12.2-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..ee8f9ce062d
--- /dev/null
+++ b/easybuild/easyconfigs/c/CCL/CCL-1.12.2-GCCcore-13.2.0.eb
@@ -0,0 +1,52 @@
+easyblock = 'MakeCp'
+name = 'CCL'
+version = '1.12.2'
+
+homepage = 'https://ccl.clozure.com/'
+description = """Clozure CL (often called CCL for short) is a free Common Lisp
+ implementation with a long history. Some distinguishing features of the implementation
+ include fast compilation speed, native threads, a precise, generational, compacting
+ garbage collector, and a convenient foreign-function interface."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+source_urls = ['https://github.com/Clozure/ccl/releases/download/v%(version)s']
+sources = ['%(namelower)s-%(version)s-linuxx86.tar.gz']
+checksums = ['a94fda3daf26ce8c3d08e0db0e6e9907995acc10e0f8aad2125790b93eaa1556']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('M4', '1.4.19'),
+]
+
+local_ccl_bin = 'lx86cl64'
+local_ccl_dirs = [
+ 'compiler', 'level-0', 'level-1', 'lib', 'library', 'lisp-kernel', 'scripts', 'tools', 'xdump', 'x86-headers64'
+]
+
+# Build the kernel
+buildopts = "-C lisp-kernel/linuxx8664 all CC=${CC} && "
+# Rebuild CCL
+buildopts += "./%s -n -b -Q -e '(ccl:rebuild-ccl :full t)' -e '(ccl:quit)'" % local_ccl_bin
+
+files_to_copy = [local_ccl_bin, '%s.image' % local_ccl_bin] + local_ccl_dirs
+
+postinstallcmds = [
+ # Cleanup of build files
+ "find %(installdir)s -type f -name '*fsl' -delete",
+ "find %(installdir)s/lisp-kernel -type f -name '*.o' -delete",
+ # Link executable with generic name
+ "mkdir %(installdir)s/bin",
+ "cd %%(installdir)s/bin && ln -s ../%s ccl" % local_ccl_bin,
+]
+
+sanity_check_paths = {
+ 'files': [local_ccl_bin, '%s.image' % local_ccl_bin, 'bin/ccl'],
+ 'dirs': local_ccl_dirs,
+}
+
+sanity_check_commands = ["ccl --help"]
+
+modextrapaths = {'CCL_DEFAULT_DIRECTORY': ''}
+
+moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/c/CD-HIT/CD-HIT-4.8.1-GCC-12.3.0.eb b/easybuild/easyconfigs/c/CD-HIT/CD-HIT-4.8.1-GCC-12.3.0.eb
new file mode 100644
index 00000000000..bd59609605c
--- /dev/null
+++ b/easybuild/easyconfigs/c/CD-HIT/CD-HIT-4.8.1-GCC-12.3.0.eb
@@ -0,0 +1,41 @@
+# 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.), Pavel Tománek (Inuits)
+
+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.3.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.1'),
+ ('zlib', '1.2.13'),
+]
+
+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': [],
+}
+
+sanity_check_commands = ["cd-hit -h | grep 'CD-HIT version %(version)s'"]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/CD-HIT/CD-HIT-4.8.1-GCC-13.2.0.eb b/easybuild/easyconfigs/c/CD-HIT/CD-HIT-4.8.1-GCC-13.2.0.eb
new file mode 100644
index 00000000000..c1a0cf57158
--- /dev/null
+++ b/easybuild/easyconfigs/c/CD-HIT/CD-HIT-4.8.1-GCC-13.2.0.eb
@@ -0,0 +1,41 @@
+# 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.), Pavel Tománek (Inuits)
+# Update: Petr Král (INUITS)
+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': '13.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.38.0'),
+ ('zlib', '1.2.13'),
+]
+
+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': [],
+}
+
+sanity_check_commands = ["cd-hit -h | grep 'CD-HIT version %(version)s'"]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/CDBtools/CDBtools-0.99-GCC-12.3.0.eb b/easybuild/easyconfigs/c/CDBtools/CDBtools-0.99-GCC-12.3.0.eb
new file mode 100644
index 00000000000..8266bd8155c
--- /dev/null
+++ b/easybuild/easyconfigs/c/CDBtools/CDBtools-0.99-GCC-12.3.0.eb
@@ -0,0 +1,29 @@
+easyblock = 'MakeCp'
+
+name = 'CDBtools'
+version = '0.99'
+
+homepage = 'http://compbio.dfci.harvard.edu/tgi'
+description = "CDB (Constant DataBase) indexing and retrieval tools for FASTA files"
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+
+source_urls = ['ftp://occams.dfci.harvard.edu/pub/bio/tgi/software/cdbfasta']
+sources = [{'download_filename': 'cdbfasta.tar.gz', 'filename': SOURCE_TAR_GZ}]
+checksums = ['68767e8b2fb9de5a6d68ee16df73293f65e02f05cf2f747a9dd6b8854766722c']
+
+buildopts = 'CC="$CXX" DBGFLAGS="$CXXFLAGS"'
+
+files_to_copy = [(['cdbfasta', 'cdbyank'], 'bin')]
+
+sanity_check_paths = {
+ 'files': ['bin/cdbfasta', 'bin/cdbyank'],
+ 'dirs': [],
+}
+
+sanity_check_commands = [
+ "cdbfasta -v",
+ "cdbyank -v",
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/CDO/CDO-2.0.5-gompi-2021b.eb b/easybuild/easyconfigs/c/CDO/CDO-2.0.5-gompi-2021b.eb
index 78745e7806b..2169f07b3ef 100644
--- a/easybuild/easyconfigs/c/CDO/CDO-2.0.5-gompi-2021b.eb
+++ b/easybuild/easyconfigs/c/CDO/CDO-2.0.5-gompi-2021b.eb
@@ -42,6 +42,9 @@ configopts += "--with-curl=$EBROOTCURL --with-eccodes=$EBROOTECCODES --with-fftw
configopts += "--with-netcdf=$EBROOTNETCDF --with-proj=$EBROOTPROJ --with-szlib=$EBROOTSZIP "
configopts += "--with-udunits2=$EBROOTUDUNITS --with-util-linux-uuid=$EBROOTUTILMINLINUX "
+# Make sure that right Fortran compiler is used, also on non-x86_64 architectures
+configopts += 'CPPFLAGS="$CPPFLAGS -DgFortran" '
+
sanity_check_paths = {
'files': ['bin/cdo', 'lib/libcdi.a', 'lib/libcdi.%s' % SHLIB_EXT],
'dirs': ['include'],
diff --git a/easybuild/easyconfigs/c/CDO/CDO-2.0.6-gompi-2022a.eb b/easybuild/easyconfigs/c/CDO/CDO-2.0.6-gompi-2022a.eb
index 2cca13754df..124d47abae6 100644
--- a/easybuild/easyconfigs/c/CDO/CDO-2.0.6-gompi-2022a.eb
+++ b/easybuild/easyconfigs/c/CDO/CDO-2.0.6-gompi-2022a.eb
@@ -43,6 +43,9 @@ configopts += "--with-curl=$EBROOTCURL --with-eccodes=$EBROOTECCODES --with-fftw
configopts += "--with-netcdf=$EBROOTNETCDF --with-proj=$EBROOTPROJ --with-szlib=$EBROOTSZIP "
configopts += "--with-udunits2=$EBROOTUDUNITS --with-util-linux-uuid=$EBROOTUTILMINLINUX "
+# Make sure that right Fortran compiler is used, also on non-x86_64 architectures
+configopts += 'CPPFLAGS="$CPPFLAGS -DgFortran" '
+
sanity_check_paths = {
'files': ['bin/cdo', 'lib/libcdi.a', 'lib/libcdi.%s' % SHLIB_EXT],
'dirs': ['include'],
diff --git a/easybuild/easyconfigs/c/CDO/CDO-2.1.1-gompi-2021a.eb b/easybuild/easyconfigs/c/CDO/CDO-2.1.1-gompi-2021a.eb
index 33b3ae569e7..864efb1aae4 100644
--- a/easybuild/easyconfigs/c/CDO/CDO-2.1.1-gompi-2021a.eb
+++ b/easybuild/easyconfigs/c/CDO/CDO-2.1.1-gompi-2021a.eb
@@ -43,6 +43,9 @@ configopts += "--with-curl=$EBROOTCURL --with-eccodes=$EBROOTECCODES --with-fftw
configopts += "--with-netcdf=$EBROOTNETCDF --with-proj=$EBROOTPROJ --with-szlib=$EBROOTSZIP "
configopts += "--with-udunits2=$EBROOTUDUNITS --with-util-linux-uuid=$EBROOTUTILMINLINUX "
+# Make sure that right Fortran compiler is used, also on non-x86_64 architectures
+configopts += 'CPPFLAGS="$CPPFLAGS -DgFortran" '
+
sanity_check_paths = {
'files': ['bin/cdo', 'lib/libcdi.a', 'lib/libcdi.%s' % SHLIB_EXT],
'dirs': ['include'],
diff --git a/easybuild/easyconfigs/c/CDO/CDO-2.2.2-gompi-2023a.eb b/easybuild/easyconfigs/c/CDO/CDO-2.2.2-gompi-2023a.eb
index 0adb6ba2358..77cac651f2b 100644
--- a/easybuild/easyconfigs/c/CDO/CDO-2.2.2-gompi-2023a.eb
+++ b/easybuild/easyconfigs/c/CDO/CDO-2.2.2-gompi-2023a.eb
@@ -43,6 +43,9 @@ configopts += "--with-curl=$EBROOTCURL --with-eccodes=$EBROOTECCODES --with-fftw
configopts += "--with-netcdf=$EBROOTNETCDF --with-proj=$EBROOTPROJ --with-szlib=$EBROOTSZIP "
configopts += "--with-udunits2=$EBROOTUDUNITS --with-util-linux-uuid=$EBROOTUTILMINLINUX "
+# Make sure that right Fortran compiler is used, also on non-x86_64 architectures
+configopts += 'CPPFLAGS="$CPPFLAGS -DgFortran" '
+
sanity_check_paths = {
'files': ['bin/cdo', 'lib/libcdi.a', 'lib/libcdi.%s' % SHLIB_EXT],
'dirs': ['include'],
diff --git a/easybuild/easyconfigs/c/CDO/CDO-2.2.2-gompi-2023b.eb b/easybuild/easyconfigs/c/CDO/CDO-2.2.2-gompi-2023b.eb
new file mode 100644
index 00000000000..88087d6059e
--- /dev/null
+++ b/easybuild/easyconfigs/c/CDO/CDO-2.2.2-gompi-2023b.eb
@@ -0,0 +1,56 @@
+# updated to version 2.0.6, based on the previous 2.0.5 version
+# J. Sassmannshausen (Imperial College London, UK)
+# Alex Domingo (Vrije Universiteit Brussel, BE)
+# Maxim Masterov (SURF, NL)
+
+easyblock = 'ConfigureMake'
+
+name = 'CDO'
+version = '2.2.2'
+
+homepage = 'https://code.zmaw.de/projects/cdo'
+description = """CDO is a collection of command line Operators to manipulate and analyse Climate and NWP model Data."""
+
+toolchain = {'name': 'gompi', 'version': '2023b'}
+toolchainopts = {'cstd': 'c++17', 'usempi': True}
+
+source_urls = ['https://code.mpimet.mpg.de/attachments/download/28882/']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['419c77315244019af41a296c05066f474cccbf94debfaae9e2106da51bc7c937']
+
+builddependencies = [
+ ('pkgconf', '2.0.3'),
+]
+
+dependencies = [
+ ('cURL', '8.3.0'),
+ ('ecCodes', '2.31.0'),
+ ('FFTW', '3.3.10'),
+ ('HDF5', '1.14.3'),
+ ('libxml2', '2.11.5'),
+ ('netCDF', '4.9.2'),
+ ('PROJ', '9.3.1'),
+ ('Szip', '2.1.1'),
+ ('UDUNITS', '2.2.28'),
+ ('util-linux', '2.39'),
+]
+
+# Build libcdi
+configopts = "--enable-cdi-lib "
+
+# Use dependencies from EasyBuild
+configopts += "--with-curl=$EBROOTCURL --with-eccodes=$EBROOTECCODES --with-fftw3 --with-hdf5=$EBROOTHDF5 "
+configopts += "--with-netcdf=$EBROOTNETCDF --with-proj=$EBROOTPROJ --with-szlib=$EBROOTSZIP "
+configopts += "--with-udunits2=$EBROOTUDUNITS --with-util-linux-uuid=$EBROOTUTILMINLINUX "
+
+# Make sure that right Fortran compiler is used, also on non-x86_64 architectures
+configopts += 'CPPFLAGS="$CPPFLAGS -DgFortran" '
+
+sanity_check_paths = {
+ 'files': ['bin/cdo', 'lib/libcdi.a', 'lib/libcdi.%s' % SHLIB_EXT],
+ 'dirs': ['include'],
+}
+
+sanity_check_commands = ["cdo --version 2>&1 | grep 'Climate Data Operators version %(version)s'"]
+
+moduleclass = 'data'
diff --git a/easybuild/easyconfigs/c/CDO/CDO-2.3.0-iimpi-2022a.eb b/easybuild/easyconfigs/c/CDO/CDO-2.3.0-iimpi-2022a.eb
new file mode 100644
index 00000000000..58cf406d164
--- /dev/null
+++ b/easybuild/easyconfigs/c/CDO/CDO-2.3.0-iimpi-2022a.eb
@@ -0,0 +1,58 @@
+# updated to version 2.0.6, based on the previous 2.0.5 version
+# J. Sassmannshausen (Imperial College London, UK)
+# Alex Domingo (Vrije Universiteit Brussel, BE)
+# Maxim Masterov (SURF, NL)
+
+easyblock = 'ConfigureMake'
+
+name = 'CDO'
+version = '2.3.0'
+
+homepage = 'https://code.zmaw.de/projects/cdo'
+description = """CDO is a collection of command line Operators to manipulate and analyse Climate and NWP model Data."""
+
+toolchain = {'name': 'iimpi', 'version': '2022a'}
+toolchainopts = {'pic': True, 'usempi': True}
+
+source_urls = ['https://code.mpimet.mpg.de/attachments/download/29019/']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['10c878227baf718a6917837527d4426c2d0022cfac4457c65155b9c57f091f6b']
+
+builddependencies = [
+ ('pkgconf', '1.8.0'),
+]
+
+dependencies = [
+ ('cURL', '7.83.0'),
+ ('ecCodes', '2.27.0'),
+ ('FFTW', '3.3.10'),
+ ('HDF5', '1.12.2'),
+ ('libxml2', '2.9.13'),
+ ('netCDF', '4.9.0'),
+ ('PROJ', '9.0.0'),
+ ('Szip', '2.1.1'),
+ ('UDUNITS', '2.2.28'),
+ ('util-linux', '2.38'),
+]
+
+# Build libcdi
+configopts = "--enable-cdi-lib "
+
+# Use dependencies from EasyBuild
+configopts += "--with-curl=$EBROOTCURL --with-eccodes=$EBROOTECCODES --with-fftw3 --with-hdf5=$EBROOTHDF5 "
+configopts += "--with-netcdf=$EBROOTNETCDF --with-proj=$EBROOTPROJ --with-szlib=$EBROOTSZIP "
+configopts += "--with-udunits2=$EBROOTUDUNITS --with-util-linux-uuid=$EBROOTUTILMINLINUX "
+
+# Make sure that right Fortran compiler is used, also on non-x86_64 architectures
+configopts += 'CPPFLAGS="$CPPFLAGS -DgFortran" '
+
+buildopts = "V=1"
+
+sanity_check_paths = {
+ 'files': ['bin/cdo', 'lib/libcdi.a', 'lib/libcdi.%s' % SHLIB_EXT],
+ 'dirs': ['include'],
+}
+
+sanity_check_commands = ["cdo --version 2>&1 | grep 'CDI library version : %(version)s'"]
+
+moduleclass = 'data'
diff --git a/easybuild/easyconfigs/c/CENSO/CENSO-1.2.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/c/CENSO/CENSO-1.2.0-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..4482c3a592b
--- /dev/null
+++ b/easybuild/easyconfigs/c/CENSO/CENSO-1.2.0-GCCcore-12.3.0.eb
@@ -0,0 +1,49 @@
+# Author: J. Sassmannshausen (Imperial College London)
+
+easyblock = 'PythonBundle'
+
+name = 'CENSO'
+version = '1.2.0'
+
+homepage = 'https://xtb-docs.readthedocs.io/en/latest/CENSO_docs/censo.html'
+description = """Commandline Energetic SOrting (CENSO) is a sorting algorithm for
+efficient evaluation of Structure Ensembles (SE). The input ensemble (or single
+structure) originating from a CREST[SQM/FF] run can be ranked by free energy at
+DFT level and/or geometries can be optimized using DFT."""
+
+citing = """The main publication for the CENSO program can be found at J. Phys. Chem. A 2021
+https://pubs.acs.org/doi/10.1021/acs.jpca.1c00971"""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+builddependencies = [
+ ('binutils', '2.40'),
+]
+
+# CENSO interfaces with QM codes like xtb, crest, TURBOMOLE and ORCA.
+# User can load any of those at runtime
+dependencies = [
+ ('Python', '3.11.3'),
+]
+
+use_pip = True
+
+exts_list = [
+ (name, version, {
+ 'source_urls': ['https://github.com/grimme-lab/CENSO/archive'],
+ 'sources': ['v.%(version)s.tar.gz'],
+ 'checksums': ['f1d77d8eb9d25fe4157491a5d298321f84999123970411831b059cea39aecad2'],
+ 'modulename': 'censo_qm'
+ }),
+]
+
+sanity_pip_check = True
+
+sanity_check_paths = {
+ 'files': ['bin/censo'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = ["censo --help"]
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/c/CESM-deps/CESM-deps-2-foss-2023a.eb b/easybuild/easyconfigs/c/CESM-deps/CESM-deps-2-foss-2023a.eb
new file mode 100644
index 00000000000..1144c2b34cc
--- /dev/null
+++ b/easybuild/easyconfigs/c/CESM-deps/CESM-deps-2-foss-2023a.eb
@@ -0,0 +1,51 @@
+easyblock = 'Bundle'
+
+name = 'CESM-deps'
+version = '2'
+
+homepage = 'https://www.cesm.ucar.edu/models/cesm2/'
+description = """CESM is a fully-coupled, community, global climate model that
+provides state-of-the-art computer simulations of the Earth's past, present,
+and future climate states."""
+
+# The following environment is suitable for CESM >= 2.2.2 and CTSM >= 5.2.0
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('CMake', '3.26.3'),
+ ('Python', '3.11.3'),
+ ('lxml', '4.9.2'),
+ ('Perl', '5.36.1'),
+ ('XML-LibXML', '2.0209'),
+ ('ESMF', '8.6.0'),
+ ('netCDF', '4.9.2'),
+ ('netCDF-Fortran', '4.6.1'),
+ ('netCDF-C++4', '4.3.1'),
+ ('PnetCDF', '1.12.3'),
+ ('git', '2.41.0', '-nodocs'),
+ ('git-lfs', '3.5.1', '', SYSTEM),
+]
+
+components = [
+ # install extra configuration tools and files for VSC clusters
+ ('cesm-config', '1.7.0', {
+ 'easyblock': 'Tarball',
+ 'source_urls': ['https://github.com/vub-hpc/%(name)s/archive'],
+ 'sources': [{'download_filename': 'v%(version)s.tar.gz', 'filename': SOURCE_TAR_GZ}],
+ 'checksums': ['c5aeb50595ca4d342a5024d593c2549acf16e72dadc5f39d9a7915d3dc8f3c13'],
+ 'start_dir': '%(name)s-%(version)s',
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/update-cesm-machines', 'scripts/case.pbs', 'scripts/case.slurm'],
+ 'dirs': ['machines', 'irods'],
+}
+
+usage = """Environment to build and run CESM v2 simulations
+ 1. Download a release of CESM v2: `git clone -b release-cesm2.2.2 https://github.com/ESCOMP/cesm.git cesm-2.2.2`
+ 2. Add external programs for CESM: `cd cesm-2.2.2; ./manage_externals/checkout_externals`
+ 3. Update config files: `update-cesm-machines cime/config/cesm/machines/ $EBROOTCESMMINDEPS/machines/`
+ 4. Create case: `cd cime/scripts && ./create_newcase --machine ...`"""
+
+moduleclass = 'geo'
diff --git a/easybuild/easyconfigs/c/CFITSIO/CFITSIO-4.3.1-GCCcore-13.2.0.eb b/easybuild/easyconfigs/c/CFITSIO/CFITSIO-4.3.1-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..c22b4a16118
--- /dev/null
+++ b/easybuild/easyconfigs/c/CFITSIO/CFITSIO-4.3.1-GCCcore-13.2.0.eb
@@ -0,0 +1,43 @@
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+# Author: Denis Kristak
+easyblock = 'ConfigureMake'
+
+name = 'CFITSIO'
+version = '4.3.1'
+
+homepage = 'https://heasarc.gsfc.nasa.gov/fitsio/'
+description = """CFITSIO is a library of C and Fortran subroutines for reading and writing data files in
+FITS (Flexible Image Transport System) data format."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c/']
+sources = [SOURCELOWER_TAR_GZ]
+patches = ['%(name)s-3.48_install_test_data.patch']
+checksums = [
+ {SOURCELOWER_TAR_GZ: '47a7c8ee05687be1e1d8eeeb94fb88f060fbf3cd8a4df52ccb88d5eb0f5062be'},
+ {'%(name)s-3.48_install_test_data.patch': 'dbf16f857f133468fc1e6a793c6e89fca66d54796593e03606f2722a2a980c0c'},
+]
+
+builddependencies = [
+ ('binutils', '2.40'),
+]
+# curl for HTTPs support
+dependencies = [
+ ('cURL', '8.3.0'),
+]
+
+# make would create just static libcfitsio.a.
+# Let's create dynamic lib and testprog too.
+buildopts = "&& make shared && make testprog"
+
+
+sanity_check_paths = {
+ 'files': ['lib/libcfitsio.a', 'lib/libcfitsio.%s' % SHLIB_EXT],
+ 'dirs': ['include'],
+}
+
+sanity_check_commands = ['cd %(installdir)s/share && testprog']
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/c/CFITSIO/CFITSIO-4.4.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/c/CFITSIO/CFITSIO-4.4.1-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..eaa1b0866ac
--- /dev/null
+++ b/easybuild/easyconfigs/c/CFITSIO/CFITSIO-4.4.1-GCCcore-13.3.0.eb
@@ -0,0 +1,43 @@
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+# Author: Denis Kristak
+easyblock = 'ConfigureMake'
+
+name = 'CFITSIO'
+version = '4.4.1'
+
+homepage = 'https://heasarc.gsfc.nasa.gov/fitsio/'
+description = """CFITSIO is a library of C and Fortran subroutines for reading and writing data files in
+FITS (Flexible Image Transport System) data format."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c/']
+sources = [SOURCELOWER_TAR_GZ]
+patches = ['%(name)s-3.48_install_test_data.patch']
+checksums = [
+ {'cfitsio-4.4.1.tar.gz': '66a1dc3f21800f9eeabd9eac577b91fcdd9aabba678fbba3b8527319110d1d25'},
+ {'CFITSIO-3.48_install_test_data.patch': 'dbf16f857f133468fc1e6a793c6e89fca66d54796593e03606f2722a2a980c0c'},
+]
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+# curl for HTTPs support
+dependencies = [
+ ('cURL', '8.7.1'),
+]
+
+# make would create just static libcfitsio.a.
+# Let's create dynamic lib and testprog too.
+buildopts = "&& make shared && make testprog"
+
+
+sanity_check_paths = {
+ 'files': ['lib/libcfitsio.a', 'lib/libcfitsio.%s' % SHLIB_EXT],
+ 'dirs': ['include'],
+}
+
+sanity_check_commands = ['cd %(installdir)s/share && testprog']
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/c/CGAL/CGAL-5.4-GCCcore-12.3.0.eb b/easybuild/easyconfigs/c/CGAL/CGAL-5.4-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..aa9a56f6fc1
--- /dev/null
+++ b/easybuild/easyconfigs/c/CGAL/CGAL-5.4-GCCcore-12.3.0.eb
@@ -0,0 +1,26 @@
+easyblock = 'CMakeMake'
+name = 'CGAL'
+version = '5.4'
+
+homepage = 'https://www.cgal.org/'
+description = """The goal of the CGAL Open Source Project is to provide easy access to efficient
+ and reliable geometric algorithms in the form of a C++ library."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+toolchainopts = {'strict': True}
+
+source_urls = ['https://github.com/CGAL/cgal/releases/download/v%(version)s/']
+sources = [SOURCE_TAR_XZ]
+checksums = ['b3d735ec42fd65ac1413c70e7a197bf3d971e4499347ccfaad92cc82d62dc256']
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+ ('binutils', '2.40'),
+]
+
+sanity_check_paths = {
+ 'files': ['include/CGAL/Simple_cartesian.h'],
+ 'dirs': ['include/CGAL', 'lib/cmake/CGAL'],
+}
+
+moduleclass = 'numlib'
diff --git a/easybuild/easyconfigs/c/CGAL/CGAL-5.6.1-GCCcore-13.2.0.eb b/easybuild/easyconfigs/c/CGAL/CGAL-5.6.1-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..e0dfb771aa6
--- /dev/null
+++ b/easybuild/easyconfigs/c/CGAL/CGAL-5.6.1-GCCcore-13.2.0.eb
@@ -0,0 +1,26 @@
+easyblock = 'CMakeMake'
+name = 'CGAL'
+version = '5.6.1'
+
+homepage = 'https://www.cgal.org/'
+description = """The goal of the CGAL Open Source Project is to provide easy access to efficient
+ and reliable geometric algorithms in the form of a C++ library."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+toolchainopts = {'strict': True}
+
+source_urls = ['https://github.com/CGAL/cgal/releases/download/v%(version)s/']
+sources = [SOURCE_TAR_XZ]
+checksums = ['cdb15e7ee31e0663589d3107a79988a37b7b1719df3d24f2058545d1bcdd5837']
+
+builddependencies = [
+ ('CMake', '3.27.6'),
+ ('binutils', '2.40'),
+]
+
+sanity_check_paths = {
+ 'files': ['include/CGAL/Simple_cartesian.h'],
+ 'dirs': ['include/CGAL', 'lib/cmake/CGAL'],
+}
+
+moduleclass = 'numlib'
diff --git a/easybuild/easyconfigs/c/CGAL/CGAL-5.6.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/c/CGAL/CGAL-5.6.1-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..01aa21c6311
--- /dev/null
+++ b/easybuild/easyconfigs/c/CGAL/CGAL-5.6.1-GCCcore-13.3.0.eb
@@ -0,0 +1,26 @@
+easyblock = 'CMakeMake'
+name = 'CGAL'
+version = '5.6.1'
+
+homepage = 'https://www.cgal.org/'
+description = """The goal of the CGAL Open Source Project is to provide easy access to efficient
+ and reliable geometric algorithms in the form of a C++ library."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'strict': True}
+
+source_urls = ['https://github.com/CGAL/cgal/releases/download/v%(version)s/']
+sources = [SOURCE_TAR_XZ]
+checksums = ['cdb15e7ee31e0663589d3107a79988a37b7b1719df3d24f2058545d1bcdd5837']
+
+builddependencies = [
+ ('CMake', '3.29.3'),
+ ('binutils', '2.42'),
+]
+
+sanity_check_paths = {
+ 'files': ['include/CGAL/Simple_cartesian.h'],
+ 'dirs': ['include/CGAL', 'lib/cmake/CGAL'],
+}
+
+moduleclass = 'numlib'
diff --git a/easybuild/easyconfigs/c/CIRCE/CIRCE-0.3.4-foss-2023a.eb b/easybuild/easyconfigs/c/CIRCE/CIRCE-0.3.4-foss-2023a.eb
new file mode 100644
index 00000000000..6a41b512096
--- /dev/null
+++ b/easybuild/easyconfigs/c/CIRCE/CIRCE-0.3.4-foss-2023a.eb
@@ -0,0 +1,55 @@
+easyblock = 'PythonBundle'
+
+name = 'CIRCE'
+version = '0.3.4'
+
+homepage = 'https://github.com/cantinilab/Circe'
+description = """This repo contains a python package for inferring co-accessibility networks
+ from single-cell ATAC-seq data, using skggm for the graphical lasso and scanpy for data processing."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+builddependencies = [
+ ('poetry', '1.5.1'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('scikit-learn', '1.3.1'),
+ ('scanpy', '1.9.8'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+# Some requirements are too strict.
+local_preinstallopts = """sed -i 's/pandas = "[^"]*"/pandas = "*"/g' pyproject.toml && """
+local_preinstallopts += """sed -i "s/'pandas>=[^']*'/'pandas'/g" setup.py && """
+
+# build the C components linking `flexiblas` instead of `lapack` and `blas`
+local_preinstallopts += """sed -i "s/lapack/flexiblas/g;s/, 'blas'//g" setup.py && """
+local_preinstallopts += """sed -i "s/lapack/flexiblas/g;/blas/d" pyquic_ext/pyquic.cpp && """
+
+exts_list = [
+ ('joblib', '1.4.2', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['06d478d5674cbc267e7496a410ee875abd68e4340feff4490bcb7afb88060ae6'],
+ }),
+ ('rich', '13.9.2', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['8c82a3d3f8dcfe9e734771313e606b39d8247bb6b826e196f4914b333b743cf1'],
+ }),
+ ('circe_py', version, {
+ 'preinstallopts': local_preinstallopts,
+ 'modulename': 'circe',
+ 'checksums': ['279004948dff84816361e857ee3fb383cdb17587f376c6f10f82a66810cba16c'],
+ }),
+]
+
+# NOTE This has been tested manually using the following script:
+# https://github.com/cantinilab/Circe/blob/a70e031f9de4760739eb3c7571277678d5e80c8a/Examples/Minimal_example.ipynb
+# with a small modification:
+# https://github.com/cantinilab/Circe/issues/5#issuecomment-2419821380
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/CLANS/CLANS-2.0.8-foss-2023a.eb b/easybuild/easyconfigs/c/CLANS/CLANS-2.0.8-foss-2023a.eb
new file mode 100644
index 00000000000..e1ce2f2a9e1
--- /dev/null
+++ b/easybuild/easyconfigs/c/CLANS/CLANS-2.0.8-foss-2023a.eb
@@ -0,0 +1,38 @@
+easyblock = "PythonBundle"
+
+name = 'CLANS'
+version = '2.0.8'
+
+homepage = 'https://github.com/inbalpaz/CLANS'
+description = """
+CLANS 2.0 is a Python-based program for clustering sequences in the 2D or 3D space, based on
+their sequence similarities. CLANS visualizes the dynamic clustering process and enables the
+user to interactively control it and explore the cluster map in various ways.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('numba', '0.58.1'),
+ ('VisPy', '0.12.2'),
+ ('Biopython', '1.83'),
+ ('Pillow', '10.0.0'),
+ ('PyQt5', '5.15.10'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ (name, version, {
+ 'source_urls': ['https://github.com/inbalpaz/CLANS/archive/refs/tags/'],
+ 'sources': ['%(version)s.tar.gz'],
+ 'checksums': ['7b856ec3b13c420dbe30169e8cdd7d6899acb79042ca66920eafd05adf4d2815'],
+ }),
+]
+
+sanity_check_commands = ['python -m clans -h']
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/c/CLHEP/CLHEP-2.4.7.1-GCC-12.3.0.eb b/easybuild/easyconfigs/c/CLHEP/CLHEP-2.4.7.1-GCC-12.3.0.eb
new file mode 100644
index 00000000000..4bf02eab9a1
--- /dev/null
+++ b/easybuild/easyconfigs/c/CLHEP/CLHEP-2.4.7.1-GCC-12.3.0.eb
@@ -0,0 +1,29 @@
+easyblock = 'CMakeMake'
+
+name = 'CLHEP'
+version = '2.4.7.1'
+
+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': '12.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://proj-clhep.web.cern.ch/proj-clhep/dist1/']
+sources = [SOURCELOWER_TGZ]
+checksums = ['1c8304a7772ac6b99195f1300378c6e3ddf4ad07c85d64a04505652abb8a55f9']
+
+builddependencies = [
+ ('CMake', '3.26.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/CLUMPP/CLUMPP-1.1.2-Linux64.eb b/easybuild/easyconfigs/c/CLUMPP/CLUMPP-1.1.2-Linux64.eb
new file mode 100644
index 00000000000..3b42e01a2be
--- /dev/null
+++ b/easybuild/easyconfigs/c/CLUMPP/CLUMPP-1.1.2-Linux64.eb
@@ -0,0 +1,38 @@
+easyblock = 'Tarball'
+
+name = 'CLUMPP'
+version = '1.1.2'
+versionsuffix = '-Linux64'
+
+homepage = 'https://rosenberglab.stanford.edu/clumpp.html'
+description = """
+CLUMPP is a program that deals with label switching and multimodality problems
+in population-genetic cluster analyses."""
+
+toolchain = SYSTEM
+
+source_urls = ['https://rosenberglab.stanford.edu/software/']
+sources = ['%(name)s_Linux64.%(version)s.tar.gz']
+checksums = ['58cf3fe9e37f890621a76a244362256ffe4dde5e409346ae811d56af26cfe724']
+
+postinstallcmds = [
+ 'cd %(installdir)s && mkdir bin && mv CLUMPP bin/'
+]
+
+sanity_check_paths = {
+ 'files': ['bin/CLUMPP'],
+ 'dirs': [],
+}
+
+_clumpp_test_cmd = [
+ "tmpdir=$(mktemp -d)",
+ "cp %(installdir)s/{paramfile,arabid.popfile,arabid.permutationfile} $tmpdir",
+ "cd $tmpdir",
+ "CLUMPP",
+]
+
+sanity_check_commands = [
+ " && ".join(_clumpp_test_cmd),
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/CMake/CMake-3.29.3-GCCcore-13.3.0.eb b/easybuild/easyconfigs/c/CMake/CMake-3.29.3-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..d8c9cce51ca
--- /dev/null
+++ b/easybuild/easyconfigs/c/CMake/CMake-3.29.3-GCCcore-13.3.0.eb
@@ -0,0 +1,30 @@
+name = 'CMake'
+version = '3.29.3'
+
+homepage = 'https://www.cmake.org'
+
+description = """
+ CMake, the cross-platform, open-source build system. CMake is a family of
+ tools designed to build, test and package software.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://www.cmake.org/files/v%(version_major_minor)s']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['252aee1448d49caa04954fd5e27d189dd51570557313e7b281636716a238bccb']
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+
+dependencies = [
+ ('ncurses', '6.5'),
+ ('zlib', '1.3.1'),
+ ('bzip2', '1.0.8'),
+ ('cURL', '8.7.1'),
+ ('libarchive', '3.7.4'),
+ ('OpenSSL', '3', '', SYSTEM),
+]
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/c/COBRApy/COBRApy-0.29.0-foss-2023b.eb b/easybuild/easyconfigs/c/COBRApy/COBRApy-0.29.0-foss-2023b.eb
new file mode 100644
index 00000000000..e52677775bd
--- /dev/null
+++ b/easybuild/easyconfigs/c/COBRApy/COBRApy-0.29.0-foss-2023b.eb
@@ -0,0 +1,70 @@
+# This is a contribution from SIB Swiss Institute of Bioinformatics
+# Homepage: https://www.sib.swiss/research-infrastructure/competence-centers/vital-it
+# Authors: Sebastien Moretti
+# Update: Pavel Tománek (INUITS)
+
+easyblock = 'PythonBundle'
+
+name = 'COBRApy'
+version = '0.29.0'
+
+homepage = 'https://opencobra.github.io/cobrapy/'
+description = """COBRApy is a package for constraint-based modeling of metabolic networks."""
+software_license = 'LicenseGPLv2'
+
+toolchain = {'name': 'foss', 'version': '2023b'}
+
+builddependencies = [
+ ('hatchling', '1.18.0'),
+ ('SWIG', '4.1.1'),
+]
+
+dependencies = [
+ ('Python', '3.11.5'),
+ ('Python-bundle-PyPI', '2023.10'),
+ ('SciPy-bundle', '2023.11'),
+ ('ruamel.yaml', '0.18.6'),
+ ('pydantic', '2.6.4'),
+ ('python-libsbml', '5.20.2'),
+ ('sympy', '1.12'),
+ ('GLPK', '5.0'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('h11', '0.14.0', {
+ 'checksums': ['8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d'],
+ }),
+ ('anyio', '4.3.0', {
+ 'checksums': ['f75253795a87df48568485fd18cdd2a3fa5c4f7c5be8e5e36637733fce06fed6'],
+ }),
+ ('swiglpk', '5.0.10', {
+ 'checksums': ['57ac34ad334da95dd168114bfdb50ae10a2a6a3ddef21e4941f46fe430c5a7e1'],
+ }),
+ ('sniffio', '1.3.1', {
+ 'checksums': ['f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc'],
+ }),
+ ('httpcore', '0.17.3', {
+ 'checksums': ['a6f30213335e34c1ade7be6ec7c47f19f50c56db36abef1a9dfa3815b1cb3888'],
+ }),
+ ('optlang', '1.8.1', {
+ 'checksums': ['9eb586b69fd88d558a8a0a0eac33c3067c59b5de510fddc36c0aa874eb74bfec'],
+ }),
+ ('httpx', '0.24.1', {
+ 'checksums': ['5853a43053df830c20f8110c5e69fe44d035d850b2dfe795e196f00fdb774bdd'],
+ }),
+ ('diskcache', '5.6.3', {
+ 'checksums': ['2c3a3fa2743d8535d832ec61c2054a1641f41775aa7c556758a109941e33e4fc'],
+ }),
+ ('depinfo', '2.2.0', {
+ 'checksums': ['e0971be11519a823b126c875e17ad3ad8adaa6a86737395b9dbcef3ca0e77b0c'],
+ }),
+ ('cobra', version, {
+ 'checksums': ['56d2b832aa86b1f3853647e0eb24aaeac25908fd147737edb23313934485e863'],
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/COLMAP/COLMAP-3.8-foss-2022b.eb b/easybuild/easyconfigs/c/COLMAP/COLMAP-3.8-foss-2022b.eb
new file mode 100644
index 00000000000..1da3b634c94
--- /dev/null
+++ b/easybuild/easyconfigs/c/COLMAP/COLMAP-3.8-foss-2022b.eb
@@ -0,0 +1,45 @@
+easyblock = 'CMakeNinja'
+
+name = 'COLMAP'
+version = '3.8'
+
+homepage = 'https://colmap.github.io'
+description = """COLMAP is a general-purpose Structure-from-Motion (SfM) and Multi-View Stereo (MVS) pipeline
+with a graphical and command-line interface"""
+
+source_urls = ['https://github.com/colmap/colmap/archive/']
+sources = ['%(version)s.tar.gz']
+checksums = ['02288f8f61692fe38049d65608ed832b31246e7792692376afb712fa4cef8775']
+
+toolchain = {'name': 'foss', 'version': '2022b'}
+
+builddependencies = [
+ ('CMake', '3.24.3'),
+ ('Ninja', '1.11.1'),
+ ('Eigen', '3.4.0'),
+ ('googletest', '1.12.1'),
+]
+
+dependencies = [
+ ('Boost', '1.81.0'),
+ ('Qt5', '5.15.7'),
+ ('FLANN', '1.9.2'),
+ ('FreeImage', '3.18.0'),
+ ('METIS', '5.1.0'),
+ ('glog', '0.6.0'),
+ ('SQLite', '3.39.4'),
+ ('glew', '2.2.0', '-egl'),
+ ('CGAL', '5.5.2'),
+ ('Ceres-Solver', '2.2.0'),
+]
+
+configopts = "-DCMAKE_CXX_STANDARD=17"
+
+sanity_check_paths = {
+ 'files': ['bin/colmap', 'lib/colmap/libcolmap.a', 'lib/colmap/libpba.a', 'lib/colmap/libvlfeat.a'],
+ 'dirs': ['include/colmap'],
+}
+
+sanity_check_commands = ["colmap -h"]
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/c/COMEBin/COMEBin-1.0.3-20240310-foss-2022a.eb b/easybuild/easyconfigs/c/COMEBin/COMEBin-1.0.3-20240310-foss-2022a.eb
new file mode 100644
index 00000000000..4bc881dc9c1
--- /dev/null
+++ b/easybuild/easyconfigs/c/COMEBin/COMEBin-1.0.3-20240310-foss-2022a.eb
@@ -0,0 +1,77 @@
+easyblock = 'Tarball'
+
+name = 'COMEBin'
+local_commit = '987db95'
+version = '1.0.3-20240310'
+
+homepage = 'https://github.com/ziyewang/COMEBin'
+description = "Effective binning of metagenomic contigs using COntrastive Multi-viEw representation learning"
+
+toolchain = {'name': 'foss', 'version': '2022a'}
+
+source_urls = ['https://github.com/ziyewang/COMEBin/archive/']
+sources = [{'download_filename': '%s.tar.gz' % local_commit, 'filename': SOURCE_TAR_GZ}]
+patches = ['COMEBin-1.0.3_fix-run-script.patch']
+checksums = [
+ {'COMEBin-1.0.3-20240310.tar.gz': 'aa9c9e98d0cd121b2be60cae85d735527f510ad07df1a84ed6405cbc66eea684'},
+ {'COMEBin-1.0.3_fix-run-script.patch': 'e9ac578667d4f7233cf716cc98b134b8bd7cb7bcc70a06322500319d84b67773'},
+]
+
+dependencies = [
+ ('Python', '3.10.4'),
+ ('SciPy-bundle', '2022.05'),
+ ('matplotlib', '3.5.2'),
+ ('PyTorch', '1.12.0'),
+ ('tensorboard', '2.10.0'),
+ ('Biopython', '1.79'),
+ ('scikit-learn', '1.1.2'),
+ ('tqdm', '4.64.0'),
+ ('leidenalg', '0.9.1'),
+ ('BEDTools', '2.30.0'),
+ ('BWA', '0.7.17'),
+ ('CheckM', '1.2.2'),
+ ('FragGeneScan', '1.31'),
+ ('HMMER', '3.3.2'),
+ ('pplacer', '1.1.alpha19', '', SYSTEM),
+ ('prodigal', '2.6.3'),
+ ('SAMtools', '1.16.1'),
+ ('python-igraph', '0.10.3'),
+ ('PyYAML', '6.0'),
+]
+
+exts_defaultclass = 'PythonPackage'
+
+exts_default_options = {
+ 'source_urls': [PYPI_SOURCE],
+ 'use_pip': True,
+ 'download_dep_fail': True,
+ 'sanity_pip_check': True,
+}
+
+exts_list = [
+ ('fastjsonschema', '2.19.1', {
+ 'checksums': ['e3126a94bdc4623d3de4485f8d468a12f02a67921315ddc87836d6e456dc789d'],
+ }),
+ ('hnswlib', '0.8.0', {
+ 'checksums': ['cb6d037eedebb34a7134e7dc78966441dfd04c9cf5ee93911be911ced951c44c'],
+ }),
+ ('biolib', '0.1.9', {
+ 'checksums': ['bc9ae68c6d76d46e4295fe0b1df5a48b575fe96374bd96d624c3330feb94856f'],
+ }),
+]
+
+postinstallcmds = ["chmod a+x %(installdir)s/bin/run_comebin.sh"]
+
+modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'}
+
+sanity_check_paths = {
+ 'files': ['bin/run_comebin.sh', 'COMEBin/main.py'],
+ 'dirs': ['COMEBin/models', 'COMEBin/scripts'],
+}
+
+sanity_check_commands = [
+ "run_comebin.sh | grep '^Usage: bash run_comebin.sh'"
+ "python %(installdir)s/COMEBin/main.py --help",
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/COMEBin/COMEBin-1.0.3_fix-run-script.patch b/easybuild/easyconfigs/c/COMEBin/COMEBin-1.0.3_fix-run-script.patch
new file mode 100644
index 00000000000..1752260e69b
--- /dev/null
+++ b/easybuild/easyconfigs/c/COMEBin/COMEBin-1.0.3_fix-run-script.patch
@@ -0,0 +1,12 @@
+fix determining path to top-level directory,
+since run_comebin.sh is located in bin/run_comebin.sh
+--- bin/run_comebin.sh.orig 2024-06-04 16:27:24.373968000 +0200
++++ bin/run_comebin.sh 2024-06-04 16:27:38.413830000 +0200
+@@ -25,6 +25,7 @@
+ echo "";}
+
+ run_file_path=$(dirname $(which run_comebin.sh))
++run_file_path=$(dirname $(dirname $(which run_comebin.sh)))
+
+ if [[ $? -ne 0 ]]; then
+ echo "cannot find run_comebin.sh file - something went wrong with the installation!"
diff --git a/easybuild/easyconfigs/c/CORSIKA/CORSIKA-77550-foss-2023a.eb b/easybuild/easyconfigs/c/CORSIKA/CORSIKA-77550-foss-2023a.eb
new file mode 100644
index 00000000000..c6f619d9d75
--- /dev/null
+++ b/easybuild/easyconfigs/c/CORSIKA/CORSIKA-77550-foss-2023a.eb
@@ -0,0 +1,49 @@
+easyblock = "ConfigureMake"
+
+name = 'CORSIKA'
+version = '77550'
+
+homepage = "https://www.iap.kit.edu/corsika"
+description = """CORSIKA (COsmic Ray SImulations for KAscade) is a program for detailed
+simulation of extensive air showers initiated by high energy cosmic ray
+particles. Protons, light nuclei up to iron, photons, and many other particles
+may be treated as primaries."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'usempi': True}
+
+download_instructions = "Sources have to be requested to the developers"
+sources = [SOURCELOWER_TAR_GZ]
+patches = ['%(name)s-%(version)s_fix_include.patch']
+checksums = [
+ {'corsika-77550.tar.gz': 'fed74c144e22deb5a7c1d2dc1f04f0100eb2732cb48665a3da49ce471a3775ee'},
+ {'CORSIKA-77550_fix_include.patch': 'e858fc4c1fa33d31d050b2fca50e130c23b2d3e4b81b851af34dc3f39e9c709e'},
+]
+
+dependencies = [
+ ("ROOT", "6.30.06"),
+]
+
+# custom coconut script does not recognize -j
+parallel = False
+
+# execute ./coconut manually with your own options and extract configure command from top of config.log
+_mpi_opts = "--enable-PARALLEL --with-mpirunner-lib=src/parallel --enable-PARALLELIB "
+configopts = "CORDETECTOR=HORIZONTAL CORTIMELIB=TIMEAUTO CORHEMODEL=QGSJETII CORLEMODEL=URQMD "
+configopts += "--enable-UPWARD --enable-SLANT --enable-THIN --enable-COREAS "
+configopts += _mpi_opts
+
+build_cmd = "./coconut"
+buildopts = "--batch " + _mpi_opts
+
+install_cmd = ' && '.join([
+ 'mkdir -p %(installdir)s/bin',
+ 'cp %(builddir)s/%(namelower)s-%(version)s/run/* %(installdir)s/bin/',
+])
+
+sanity_check_paths = {
+ 'files': ['bin/mpi_corsika77550Linux_QGSII_urqmd_thin_coreas_parallel_runner'],
+ 'dirs': [],
+}
+
+moduleclass = "phys"
diff --git a/easybuild/easyconfigs/c/CORSIKA/CORSIKA-77550_fix_include.patch b/easybuild/easyconfigs/c/CORSIKA/CORSIKA-77550_fix_include.patch
new file mode 100644
index 00000000000..e7bc3863fae
--- /dev/null
+++ b/easybuild/easyconfigs/c/CORSIKA/CORSIKA-77550_fix_include.patch
@@ -0,0 +1,22 @@
+Move include out of function to avoid error:
+/usr/include/sys/stat.h:453:1: error: nested function ‘stat’ declared ‘extern’
+Author: Samuel Moors (Vrije Universiteit Brussel)
+diff -Nur corsika-77550.orig/src/parallel/mpi_runner.c corsika-77550/src/parallel/mpi_runner.c
+--- corsika-77550.orig/src/parallel/mpi_runner.c 2024-04-18 18:30:39.000000000 +0200
++++ corsika-77550/src/parallel/mpi_runner.c 2024-08-09 16:15:39.969688000 +0200
+@@ -99,6 +99,7 @@
+ #include
+ #include
+ #include "config.h"
++#include
+
+ /////////////////////initializing parameters///////////////////
+ //the number of data type block in the MPI message
+@@ -1023,7 +1024,6 @@
+ strcpy(str2, strtmp);
+ }
+ strcpy(statdir,str2);
+- #include
+ struct stat sb;
+ if (stat(statdir, &sb) == 0 && S_ISDIR(sb.st_mode))
+ {
diff --git a/easybuild/easyconfigs/c/COSTA/COSTA-2.2.2-foss-2023a.eb b/easybuild/easyconfigs/c/COSTA/COSTA-2.2.2-foss-2023a.eb
new file mode 100644
index 00000000000..0f347ce481e
--- /dev/null
+++ b/easybuild/easyconfigs/c/COSTA/COSTA-2.2.2-foss-2023a.eb
@@ -0,0 +1,27 @@
+easyblock = 'CMakeMake'
+
+name = 'COSTA'
+version = '2.2.2'
+
+homepage = 'https://github.com/eth-cscs/COSTA'
+description = """OSTA is a communication-optimal, highly-optimised algorithm for data redistribution
+accross multiple processors, using MPI and OpenMP and offering the possibility
+to transpose and scale some or all data."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'openmp': True}
+
+source_urls = ['https://github.com/eth-cscs/COSTA/archive']
+sources = ['v%(version)s.tar.gz']
+checksums = ['e87bc37aad14ac0c5922237be5d5390145c9ac6aef0350ed17d86cb2d994e67c']
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+]
+
+sanity_check_paths = {
+ 'files': ['lib/libcosta.a'],
+ 'dirs': ['include/costa'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/c/CP2K/CP2K-2023.1-foss-2023a.eb b/easybuild/easyconfigs/c/CP2K/CP2K-2023.1-foss-2023a.eb
index d16e202463a..d9ace4b896b 100644
--- a/easybuild/easyconfigs/c/CP2K/CP2K-2023.1-foss-2023a.eb
+++ b/easybuild/easyconfigs/c/CP2K/CP2K-2023.1-foss-2023a.eb
@@ -25,11 +25,16 @@ builddependencies = [
dependencies = [
('Libint', '2.7.2', '-lmax-6-cp2k'),
('libxc', '6.2.2'),
- ('libxsmm', '1.17'),
('libvori', '220621'),
('FFTW', '3.3.10'),
('PLUMED', '2.9.0'),
]
+if ARCH == 'x86_64':
+ # LIBXSMM is not supported supported on ARM with GCC 12.2.0 and 12.3.0
+ # see https://www.cp2k.org/dev:compiler_support
+ dependencies += [
+ ('libxsmm', '1.17'),
+ ]
type = 'psmp'
diff --git a/easybuild/easyconfigs/c/CPPE/CPPE-0.3.1-GCC-12.2.0.eb b/easybuild/easyconfigs/c/CPPE/CPPE-0.3.1-GCC-12.2.0.eb
new file mode 100644
index 00000000000..cb04681be99
--- /dev/null
+++ b/easybuild/easyconfigs/c/CPPE/CPPE-0.3.1-GCC-12.2.0.eb
@@ -0,0 +1,47 @@
+easyblock = 'CMakeMake'
+
+name = 'CPPE'
+version = '0.3.1'
+
+homepage = 'https://github.com/maxscheurer/cppe'
+description = """CPPE is an open-source, light-weight C++ and Python library for Polarizable
+Embedding (PE)1,2 calculations. It provides an easy-to-use API to implement PE
+for ground-state self-consistent field (SCF) calculations and post-SCF methods.
+A convenient Python interface is also available."""
+
+toolchain = {'name': 'GCC', 'version': '12.2.0'}
+
+github_account = 'maxscheurer'
+source_urls = [GITHUB_LOWER_SOURCE]
+sources = ['v%(version)s.tar.gz']
+checksums = ['38d4230ba3ace78936049c23ad4b1fe9e704fd250ec57cc9733cb3904b62cf7c']
+
+builddependencies = [
+ ('CMake', '3.24.3'),
+ ('pybind11', '2.10.3'),
+]
+
+dependencies = [
+ ('Python', '3.10.8'),
+]
+
+exts_defaultclass = 'PythonPackage'
+exts_default_options = {
+ 'download_dep_fail': True,
+ 'use_pip': True,
+}
+exts_list = [
+ ('cppe', version, {
+ 'source_urls': [PYPI_SOURCE],
+ 'checksums': ['b0aef578d6919f8c103d4d4a9fcd3db481bd73c59c157985f52bf62477425d6c'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['lib/libcppe.%s' % SHLIB_EXT],
+ 'dirs': ['include/cppe', 'lib/python%(pyshortver)s/site-packages', 'share/cmake'],
+}
+
+modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'}
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/c/CPPE/CPPE-0.3.1-GCC-12.3.0.eb b/easybuild/easyconfigs/c/CPPE/CPPE-0.3.1-GCC-12.3.0.eb
new file mode 100644
index 00000000000..06b34618eb5
--- /dev/null
+++ b/easybuild/easyconfigs/c/CPPE/CPPE-0.3.1-GCC-12.3.0.eb
@@ -0,0 +1,49 @@
+easyblock = 'CMakeMake'
+
+name = 'CPPE'
+version = '0.3.1'
+
+homepage = 'https://github.com/maxscheurer/cppe'
+description = """CPPE is an open-source, light-weight C++ and Python library for Polarizable
+Embedding (PE)1,2 calculations. It provides an easy-to-use API to implement PE
+for ground-state self-consistent field (SCF) calculations and post-SCF methods.
+A convenient Python interface is also available."""
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+
+github_account = 'maxscheurer'
+source_urls = [GITHUB_LOWER_SOURCE]
+sources = ['v%(version)s.tar.gz']
+checksums = ['38d4230ba3ace78936049c23ad4b1fe9e704fd250ec57cc9733cb3904b62cf7c']
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('pybind11', '2.11.1'),
+]
+
+exts_defaultclass = 'PythonPackage'
+exts_default_options = {
+ 'source_urls': [PYPI_SOURCE],
+ 'download_dep_fail': True,
+ 'use_pip': True,
+ 'sanity_pip_check': True,
+}
+
+exts_list = [
+ ('cppe', version, {
+ 'checksums': ['b0aef578d6919f8c103d4d4a9fcd3db481bd73c59c157985f52bf62477425d6c'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['lib/libcppe.%s' % SHLIB_EXT],
+ 'dirs': ['include/cppe', 'lib/python%(pyshortver)s/site-packages', 'share/cmake'],
+}
+
+modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'}
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/c/CREST/CREST-2.12-gfbf-2023a.eb b/easybuild/easyconfigs/c/CREST/CREST-2.12-gfbf-2023a.eb
new file mode 100644
index 00000000000..8c77a302032
--- /dev/null
+++ b/easybuild/easyconfigs/c/CREST/CREST-2.12-gfbf-2023a.eb
@@ -0,0 +1,41 @@
+# Author: Jasper Grimm (UoY)
+# Update to 2.12:
+# Author: J. Sassmannshausen (Imperial College London)
+
+easyblock = 'CMakeMake'
+
+name = 'CREST'
+version = '2.12'
+
+homepage = 'https://xtb-docs.readthedocs.io/en/latest/crest.html'
+description = """CREST is an utility/driver program for the xtb program. Originally it was designed
+ as conformer sampling program, hence the abbreviation Conformer–Rotamer Ensemble Sampling Tool,
+ but now offers also some utility functions for calculations with the GFNn–xTB methods. Generally
+ the program functions as an IO based OMP scheduler (i.e., calculations are performed by the xtb
+ program) and tool for the creation and analysation of structure ensembles.
+"""
+
+toolchain = {'name': 'gfbf', 'version': '2023a'}
+toolchainopts = {'opt': True, 'optarch': True, 'extra_fflags': '-ffree-line-length-none'}
+
+github_account = 'grimme-lab'
+source_urls = [GITHUB_LOWER_SOURCE]
+sources = ['v%(version)s.tar.gz']
+checksums = ['390f0ac0aedafbd6bb75974fcffefe7e0232ad6c4ea0ab4f1a77e656a3ce263d']
+
+builddependencies = [('CMake', '3.26.3')]
+
+dependencies = [('xtb', '6.6.1')] # required to run the program
+
+# Simple test command just to check if the program is working:
+test_cmd = 'export PATH=%(builddir)s/easybuild_obj:$PATH && '
+test_cmd += 'cd %(builddir)s/%(namelower)s-%(version)s/examples/expl-0/ && ./run.sh '
+
+sanity_check_paths = {
+ 'files': ['bin/%s' % name.lower()],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["crest -h", "crest --cite"]
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/c/CREST/CREST-2.12-gfbf-2023b.eb b/easybuild/easyconfigs/c/CREST/CREST-2.12-gfbf-2023b.eb
new file mode 100644
index 00000000000..87ae95876bf
--- /dev/null
+++ b/easybuild/easyconfigs/c/CREST/CREST-2.12-gfbf-2023b.eb
@@ -0,0 +1,44 @@
+# Author: Jasper Grimm (UoY)
+# Update to 2.12:
+# Author: J. Sassmannshausen (Imperial College London)
+
+easyblock = 'CMakeMake'
+
+name = 'CREST'
+version = '2.12'
+
+homepage = 'https://xtb-docs.readthedocs.io/en/latest/crest.html'
+description = """CREST is an utility/driver program for the xtb program. Originally it was designed
+ as conformer sampling program, hence the abbreviation Conformer–Rotamer Ensemble Sampling Tool,
+ but now offers also some utility functions for calculations with the GFNn–xTB methods. Generally
+ the program functions as an IO based OMP scheduler (i.e., calculations are performed by the xtb
+ program) and tool for the creation and analysation of structure ensembles.
+"""
+
+toolchain = {'name': 'gfbf', 'version': '2023b'}
+
+github_account = 'grimme-lab'
+source_urls = [GITHUB_LOWER_SOURCE]
+sources = ['v%(version)s.tar.gz']
+patches = ['CREST-2.12-longline.patch']
+checksums = [
+ {'v2.12.tar.gz': '390f0ac0aedafbd6bb75974fcffefe7e0232ad6c4ea0ab4f1a77e656a3ce263d'},
+ {'CREST-2.12-longline.patch': '596ca2bcce3bbdfe99a3849934f41b388fb763a4898240091593b9b6a454fea9'},
+]
+
+builddependencies = [('CMake', '3.27.6')]
+
+dependencies = [('xtb', '6.7.1')] # required to run the program
+
+# Simple test command just to check if the program is working:
+test_cmd = 'export PATH=%(builddir)s/easybuild_obj:$PATH && '
+test_cmd += 'cd %(builddir)s/%(namelower)s-%(version)s/examples/expl-0/ && ./run.sh '
+
+sanity_check_paths = {
+ 'files': ['bin/%s' % name.lower()],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["crest -h", "crest --cite"]
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/c/CREST/CREST-2.12-longline.patch b/easybuild/easyconfigs/c/CREST/CREST-2.12-longline.patch
new file mode 100644
index 00000000000..c3b84785f5f
--- /dev/null
+++ b/easybuild/easyconfigs/c/CREST/CREST-2.12-longline.patch
@@ -0,0 +1,16 @@
+Dealing with a long line, which gfortran does not like
+Author: J. Sassmannshausen (Imperial College London/UK)
+diff --git a/crest-2.12.orig/src/qcg/solvtool.f90 b/crest-2.12/src/qcg/solvtool.f90
+index cec514c..f38b576 100644
+--- a/crest-2.12.orig/src/qcg/solvtool.f90
++++ b/crest-2.12/src/qcg/solvtool.f90
+@@ -3158,7 +3158,8 @@ subroutine check_prog_path_iff(env)
+ str=trim(str)
+ open(unit=27, file=str, iostat=ios)
+ read(27,'(a)',iostat=ios) path
+- if(ios .ne. 0) error stop 'No xtb-IFF found. This is currently required for QCG and available at https:/github.com/grimme-lab/xtbiff/releases/tag/v1.1'
++ if(ios .ne. 0) error stop 'No xtb-IFF found. This is currently required for QCG and available at &
++ https:/github.com/grimme-lab/xtbiff/releases/tag/v1.1'
+
+ end subroutine check_prog_path_iff
+
diff --git a/easybuild/easyconfigs/c/CREST/CREST-3.0.1-gfbf-2022b.eb b/easybuild/easyconfigs/c/CREST/CREST-3.0.1-gfbf-2022b.eb
new file mode 100644
index 00000000000..5f1a29e51d3
--- /dev/null
+++ b/easybuild/easyconfigs/c/CREST/CREST-3.0.1-gfbf-2022b.eb
@@ -0,0 +1,47 @@
+easyblock = 'CMakeMake'
+
+name = 'CREST'
+version = '3.0.1'
+
+homepage = 'https://xtb-docs.readthedocs.io/en/latest/crest.html'
+description = """CREST is an utility/driver program for the xtb program. Originally it was designed
+ as conformer sampling program, hence the abbreviation Conformer–Rotamer Ensemble Sampling Tool,
+ but now offers also some utility functions for calculations with the GFNn–xTB methods. Generally
+ the program functions as an IO based OMP scheduler (i.e., calculations are performed by the xtb
+ program) and tool for the creation and analysation of structure ensembles.
+"""
+
+toolchain = {'name': 'gfbf', 'version': '2022b'}
+toolchainopts = {'opt': True}
+
+sources = [{
+ 'filename': SOURCE_TAR_GZ,
+ 'git_config': {
+ 'url': 'https://github.com/crest-lab',
+ 'repo_name': 'crest',
+ 'tag': 'v%s' % version,
+ 'recursive': True,
+ },
+}]
+checksums = [None]
+
+builddependencies = [('CMake', '3.24.3')]
+
+dependencies = [
+ ('dftd4', '3.4.0'),
+ ('mctc-lib', '0.3.1'),
+ ('mstore', '0.2.0'),
+ ('multicharge', '0.2.0'),
+ ('xtb', '6.6.1'),
+]
+
+runtest = "test"
+
+sanity_check_paths = {
+ 'files': ['bin/%(namelower)s'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["crest -h", "crest --cite"]
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/c/CREST/CREST-3.0.2-foss-2023a.eb b/easybuild/easyconfigs/c/CREST/CREST-3.0.2-foss-2023a.eb
new file mode 100644
index 00000000000..38fc051e0fb
--- /dev/null
+++ b/easybuild/easyconfigs/c/CREST/CREST-3.0.2-foss-2023a.eb
@@ -0,0 +1,47 @@
+easyblock = 'CMakeMake'
+
+name = 'CREST'
+version = '3.0.2'
+
+homepage = 'https://xtb-docs.readthedocs.io/en/latest/crest.html'
+description = """CREST is an utility/driver program for the xtb program. Originally it was designed
+ as conformer sampling program, hence the abbreviation Conformer–Rotamer Ensemble Sampling Tool,
+ but now offers also some utility functions for calculations with the GFNn–xTB methods. Generally
+ the program functions as an IO based OMP scheduler (i.e., calculations are performed by the xtb
+ program) and tool for the creation and analysation of structure ensembles.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'opt': True}
+
+sources = [{
+ 'filename': SOURCE_TAR_GZ,
+ 'git_config': {
+ 'url': 'https://github.com/crest-lab',
+ 'repo_name': 'crest',
+ 'tag': 'v%s' % version,
+ 'recursive': True,
+ },
+}]
+checksums = [None]
+
+builddependencies = [('CMake', '3.26.3')]
+
+dependencies = [
+ ('dftd4', '3.7.0'),
+ ('mctc-lib', '0.3.1'),
+ ('mstore', '0.3.0'),
+ ('multicharge', '0.3.0'),
+ ('xtb', '6.6.1'),
+]
+
+runtest = "test"
+
+sanity_check_paths = {
+ 'files': ['bin/%(namelower)s'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["crest -h", "crest --cite"]
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/c/CREST/CREST-3.0.2-gfbf-2023b.eb b/easybuild/easyconfigs/c/CREST/CREST-3.0.2-gfbf-2023b.eb
new file mode 100644
index 00000000000..9b7dd90fcf7
--- /dev/null
+++ b/easybuild/easyconfigs/c/CREST/CREST-3.0.2-gfbf-2023b.eb
@@ -0,0 +1,47 @@
+easyblock = 'CMakeMake'
+
+name = 'CREST'
+version = '3.0.2'
+
+homepage = 'https://xtb-docs.readthedocs.io/en/latest/crest.html'
+description = """CREST is an utility/driver program for the xtb program. Originally it was designed
+ as conformer sampling program, hence the abbreviation Conformer–Rotamer Ensemble Sampling Tool,
+ but now offers also some utility functions for calculations with the GFNn–xTB methods. Generally
+ the program functions as an IO based OMP scheduler (i.e., calculations are performed by the xtb
+ program) and tool for the creation and analysation of structure ensembles.
+"""
+
+toolchain = {'name': 'gfbf', 'version': '2023b'}
+toolchainopts = {'opt': True}
+
+sources = [{
+ 'filename': SOURCE_TAR_GZ,
+ 'git_config': {
+ 'url': 'https://github.com/crest-lab',
+ 'repo_name': 'crest',
+ 'tag': 'v%s' % version,
+ 'recursive': True,
+ },
+}]
+checksums = [None]
+
+builddependencies = [('CMake', '3.27.6')]
+
+dependencies = [
+ ('dftd4', '3.7.0'),
+ ('mctc-lib', '0.3.1'),
+ ('mstore', '0.3.0'),
+ ('multicharge', '0.3.0'),
+ ('xtb', '6.7.1'),
+]
+
+runtest = "test"
+
+sanity_check_paths = {
+ 'files': ['bin/%(namelower)s'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["crest -h", "crest --cite"]
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/c/CSBDeep/CSBDeep-0.7.4-foss-2022a-CUDA-11.7.0.eb b/easybuild/easyconfigs/c/CSBDeep/CSBDeep-0.7.4-foss-2022a-CUDA-11.7.0.eb
new file mode 100644
index 00000000000..fcd4c2441be
--- /dev/null
+++ b/easybuild/easyconfigs/c/CSBDeep/CSBDeep-0.7.4-foss-2022a-CUDA-11.7.0.eb
@@ -0,0 +1,38 @@
+# This easyconfig was created by the BEAR Software team at the University of Birmingham.
+easyblock = 'PythonBundle'
+
+name = 'CSBDeep'
+version = '0.7.4'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = "https://csbdeep.bioimagecomputing.com/"
+description = """CSBDeep is a toolbox for Content-aware Image Restoration (CARE)."""
+
+toolchain = {'name': 'foss', 'version': '2022a'}
+
+dependencies = [
+ ('Python', '3.10.4'),
+ ('CUDA', '11.7.0', '', SYSTEM),
+ ('SciPy-bundle', '2022.05'),
+ ('TensorFlow', '2.11.0', versionsuffix),
+ ('matplotlib', '3.5.2'),
+ ('tqdm', '4.64.0'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('tifffile', '2023.9.26', {
+ 'checksums': ['67e355e4595aab397f8405d04afe1b4ae7c6f62a44e22d933fee1a571a48c7ae'],
+ }),
+ (name, version, {
+ 'source_tmpl': '%(namelower)s-%(version)s.tar.gz',
+ 'checksums': ['85d6fc360bb33253ba6f543d75cf0cf123595f0ea4dd1fa76b1e5bc8fc55b901'],
+ 'modulename': '%(namelower)s',
+ }),
+]
+
+sanity_check_commands = ['care_predict']
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/CSBDeep/CSBDeep-0.7.4-foss-2023a.eb b/easybuild/easyconfigs/c/CSBDeep/CSBDeep-0.7.4-foss-2023a.eb
new file mode 100644
index 00000000000..3b3b0f37650
--- /dev/null
+++ b/easybuild/easyconfigs/c/CSBDeep/CSBDeep-0.7.4-foss-2023a.eb
@@ -0,0 +1,37 @@
+# This easyconfig was created by the BEAR Software team at the University of Birmingham.
+# Update: Petr Král (INUITS)
+easyblock = 'PythonBundle'
+
+name = 'CSBDeep'
+version = '0.7.4'
+
+homepage = "https://csbdeep.bioimagecomputing.com/"
+description = """CSBDeep is a toolbox for Content-aware Image Restoration (CARE)."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('TensorFlow', '2.13.0'),
+ ('matplotlib', '3.7.2'),
+ ('tqdm', '4.66.1'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('tifffile', '2024.6.18', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['67299c0445fc47463bbc71f3cb4676da2ab0242b0c6c6542a0680801b4b97d8a'],
+ }),
+ ('%(namelower)s', version, {
+ 'source_tmpl': SOURCE_WHL,
+ 'checksums': ['155d61827439373dc9c2a730a1ef621f7e373fea16599d583e0a70f1e48bd6db'],
+ }),
+]
+
+sanity_check_commands = ['care_predict']
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/CSBLAST/CSBLAST-2.2.4-GCCcore-11.3.0.eb b/easybuild/easyconfigs/c/CSBLAST/CSBLAST-2.2.4-GCCcore-11.3.0.eb
new file mode 100644
index 00000000000..32a612768d4
--- /dev/null
+++ b/easybuild/easyconfigs/c/CSBLAST/CSBLAST-2.2.4-GCCcore-11.3.0.eb
@@ -0,0 +1,37 @@
+easyblock = 'MakeCp'
+
+name = 'CSBLAST'
+version = '2.2.4'
+
+homepage = 'https://github.com/soedinglab/csblast/'
+description = """Context-specific extension of BLAST that significantly improves sensitivity and alignment quality."""
+
+toolchain = {'name': 'GCCcore', 'version': '11.3.0'}
+
+github_account = 'soedinglab'
+source_urls = [GITHUB_SOURCE]
+sources = ['v%(version)s.tar.gz']
+checksums = ['76848da4d45a618ae903cafc00ff6387e7decb17b839aca83d9a9438537edf0d']
+
+builddependencies = [
+ ('binutils', '2.38'),
+]
+
+dependencies = [
+ ('sparsehash', '2.0.4'),
+]
+
+start_dir = 'src'
+
+build_cmd_targets = 'csblast csbuild'
+
+buildopts = 'FLAGS="-fpermissive -std=c++11" '
+
+files_to_copy = ['bin', 'data', 'LICENSE', 'README_CSBLAST']
+
+sanity_check_paths = {
+ 'files': ['bin/csblast', 'bin/csbuild', 'data/K4000.crf', 'data/K4000.lib'],
+ 'dirs': ['bin', 'data'],
+}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/CUDA-Python/CUDA-Python-12.1.0-gfbf-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/c/CUDA-Python/CUDA-Python-12.1.0-gfbf-2023a-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..f58021c3a9a
--- /dev/null
+++ b/easybuild/easyconfigs/c/CUDA-Python/CUDA-Python-12.1.0-gfbf-2023a-CUDA-12.1.1.eb
@@ -0,0 +1,38 @@
+easyblock = 'PythonBundle'
+
+name = 'CUDA-Python'
+# Warning: major and minor versions of CUDA and CUDA-Python are tied
+version = '12.1.0'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://nvidia.github.io/cuda-python/'
+description = "Python bindings for CUDA"
+github_account = 'NVIDIA'
+
+toolchain = {'name': 'gfbf', 'version': '2023a'}
+
+dependencies = [
+ ('CUDA', '%(version_major)s.%(version_minor)s.1', '', SYSTEM),
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('pyclibrary', '0.2.2', {
+ 'checksums': ['9902fffe361bb86f57ab62aa4195ec4dd382b63c5c6892be6d9784ec0a3575f7'],
+ }),
+ ('cuda-python', version, {
+ 'modulename': 'cuda',
+ 'source_urls': ['https://github.com/%(github_account)s/%(namelower)s/archive'],
+ 'sources': [{'download_filename': 'v%(version)s.tar.gz', 'filename': '%(namelower)s-%(version)s.tar.gz'}],
+ 'checksums': ['6fdfacaabbd6bc7f5dddec3ecf6bb0968e4a6b5151896d6352703ff5e0fc4abb'],
+ }),
+]
+
+sanity_pip_check = True
+
+sanity_check_commands = ["python -c 'from cuda import cuda, nvrtc'"]
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/c/CUDA-Samples/CUDA-Samples-11.3-GCC-10.3.0-CUDA-11.3.1.eb b/easybuild/easyconfigs/c/CUDA-Samples/CUDA-Samples-11.3-GCC-10.3.0-CUDA-11.3.1.eb
index b71d2bfad4d..ad7b6aba80b 100644
--- a/easybuild/easyconfigs/c/CUDA-Samples/CUDA-Samples-11.3-GCC-10.3.0-CUDA-11.3.1.eb
+++ b/easybuild/easyconfigs/c/CUDA-Samples/CUDA-Samples-11.3-GCC-10.3.0-CUDA-11.3.1.eb
@@ -11,7 +11,11 @@ toolchain = {'name': 'GCC', 'version': '10.3.0'}
source_urls = ['https://github.com/NVIDIA/cuda-samples/archive/']
sources = ['v%(version)s.tar.gz']
-checksums = ['2bee5f7c89347259aaab75aa6df6e10375059bdbbaf04cc7936f5db7d54fa3ac']
+patches = ['cuda-samples-11.3_multiple-sms.patch']
+checksums = [
+ {'v11.3.tar.gz': '2bee5f7c89347259aaab75aa6df6e10375059bdbbaf04cc7936f5db7d54fa3ac'},
+ {'cuda-samples-11.3_multiple-sms.patch': 'b31613f4160456f0d0abf82999c7fb7eee781f0efadc8b9bbb5a02ef0f37e21d'},
+]
dependencies = [
('CUDA', '11.3.1', '', SYSTEM),
@@ -32,7 +36,7 @@ local_filters += "Samples/simpleVulkan/Makefile "
local_filters += "Samples/simpleVulkanMMAP/Makefile "
local_filters += "Samples/streamOrderedAllocationIPC/Makefile "
local_filters += "Samples/vulkanImageCUDA/Makefile"
-buildopts = "HOST_COMPILER=g++ FILTER_OUT='%s'" % local_filters
+buildopts = "HOST_COMPILER=g++ SMS='%%(cuda_cc_space_sep_no_period)s' FILTER_OUT='%s'" % local_filters
files_to_copy = [
(['bin/%s/linux/release/*' % ARCH], 'bin'),
diff --git a/easybuild/easyconfigs/c/CUDA-Samples/CUDA-Samples-11.6-GCC-11.3.0-CUDA-11.7.0.eb b/easybuild/easyconfigs/c/CUDA-Samples/CUDA-Samples-11.6-GCC-11.3.0-CUDA-11.7.0.eb
index d4240930bd1..ea78eae4061 100644
--- a/easybuild/easyconfigs/c/CUDA-Samples/CUDA-Samples-11.6-GCC-11.3.0-CUDA-11.7.0.eb
+++ b/easybuild/easyconfigs/c/CUDA-Samples/CUDA-Samples-11.6-GCC-11.3.0-CUDA-11.7.0.eb
@@ -11,7 +11,11 @@ toolchain = {'name': 'GCC', 'version': '11.3.0'}
source_urls = ['https://github.com/NVIDIA/cuda-samples/archive/']
sources = ['v%(version)s.tar.gz']
-checksums = ['75b858bcf9e534eaa0f129c418e661b83872d743de218df8a5278cc429f9ea98']
+patches = ['cuda-samples-11.6_multiple-sms.patch']
+checksums = [
+ {'v11.6.tar.gz': '75b858bcf9e534eaa0f129c418e661b83872d743de218df8a5278cc429f9ea98'},
+ {'cuda-samples-11.6_multiple-sms.patch': '8849e4882d797d155d6ebb71377fa1409205361776ade8da699452a4ecb94a0a'},
+]
dependencies = [
('CUDA', '11.7.0', '', SYSTEM),
@@ -33,7 +37,7 @@ local_filters += "Samples/simpleVulkanMMAP/Makefile "
local_filters += "Samples/streamOrderedAllocationIPC/Makefile "
local_filters += "Samples/vulkanImageCUDA/Makefile"
-buildopts = "HOST_COMPILER=g++ FILTER_OUT='%s'" % local_filters
+buildopts = "HOST_COMPILER=g++ SMS='%%(cuda_cc_space_sep_no_period)s' FILTER_OUT='%s'" % local_filters
files_to_copy = [
(['bin/%s/linux/release/*' % ARCH], 'bin'),
diff --git a/easybuild/easyconfigs/c/CUDA-Samples/CUDA-Samples-11.8-GCC-11.3.0-CUDA-11.7.0.eb b/easybuild/easyconfigs/c/CUDA-Samples/CUDA-Samples-11.8-GCC-11.3.0-CUDA-11.7.0.eb
new file mode 100644
index 00000000000..be16c76f3be
--- /dev/null
+++ b/easybuild/easyconfigs/c/CUDA-Samples/CUDA-Samples-11.8-GCC-11.3.0-CUDA-11.7.0.eb
@@ -0,0 +1,59 @@
+easyblock = 'MakeCp'
+
+name = 'CUDA-Samples'
+version = '11.8'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://github.com/NVIDIA/cuda-samples'
+description = "Samples for CUDA Developers which demonstrates features in CUDA Toolkit"
+
+toolchain = {'name': 'GCC', 'version': '11.3.0'}
+
+source_urls = ['https://github.com/NVIDIA/cuda-samples/archive/']
+sources = ['v%(version)s.tar.gz']
+patches = ['cuda-samples-11.6_multiple-sms.patch']
+checksums = [
+ {'v11.8.tar.gz': '1bc02c0ca42a323f3c7a05b5682eae703681a91e95b135bfe81f848b2d6a2c51'},
+ {'cuda-samples-11.6_multiple-sms.patch': '8849e4882d797d155d6ebb71377fa1409205361776ade8da699452a4ecb94a0a'},
+]
+
+dependencies = [
+ ('CUDA', '11.7.0', '', SYSTEM),
+]
+
+# Get rid of pre-built Windows DLLs and only build deviceQuery for now.
+prebuildopts = "rm -r bin/win64 && "
+
+# Filter out samples that require extensive dependencies.
+local_filters = "Samples/2_Concepts_and_Techniques/EGLStream_CUDA_Interop/Makefile "
+local_filters += "Samples/4_CUDA_Libraries/boxFilterNPP/Makefile "
+local_filters += "Samples/4_CUDA_Libraries/cannyEdgeDetectorNPP/Makefile "
+local_filters += "Samples/4_CUDA_Libraries/cudaNvSci/Makefile "
+local_filters += "Samples/4_CUDA_Libraries/cudaNvSciNvMedia/Makefile "
+local_filters += "Samples/5_Domain_Specific/simpleGL/Makefile "
+local_filters += "Samples/3_CUDA_Features/warpAggregatedAtomicsCG/Makefile "
+local_filters += "Samples/5_Domain_Specific/simpleVulkan/Makefile "
+local_filters += "Samples/5_Domain_Specific/simpleVulkanMMAP/Makefile "
+local_filters += "Samples/2_Concepts_and_Techniques/streamOrderedAllocationIPC/Makefile "
+local_filters += "Samples/5_Domain_Specific/vulkanImageCUDA/Makefile "
+local_filters += "Samples/6_Performance/LargeKernelParameter/Makefile "
+
+buildopts = "HOST_COMPILER=g++ SMS='%%(cuda_cc_space_sep_no_period)s' FILTER_OUT='%s'" % local_filters
+
+files_to_copy = [
+ (['bin/%s/linux/release/*' % ARCH], 'bin'),
+ 'LICENSE',
+]
+
+local_binaries = ['deviceQuery', 'matrixMul', 'bandwidthTest', 'cudaOpenMP']
+
+# Only paths are used for sanity checks.
+# Commands may fail due to missing compatibility libraries that might be needed
+# to be able to use this specific CUDA version in combination with the available
+# NVIDIA drivers.
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in local_binaries],
+ 'dirs': [],
+}
+
+moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/c/CUDA-Samples/CUDA-Samples-12.1-GCC-12.3.0-CUDA-12.1.1.eb b/easybuild/easyconfigs/c/CUDA-Samples/CUDA-Samples-12.1-GCC-12.3.0-CUDA-12.1.1.eb
index 3e7ffe79da0..5a886ca74d4 100644
--- a/easybuild/easyconfigs/c/CUDA-Samples/CUDA-Samples-12.1-GCC-12.3.0-CUDA-12.1.1.eb
+++ b/easybuild/easyconfigs/c/CUDA-Samples/CUDA-Samples-12.1-GCC-12.3.0-CUDA-12.1.1.eb
@@ -11,7 +11,11 @@ toolchain = {'name': 'GCC', 'version': '12.3.0'}
source_urls = ['https://github.com/NVIDIA/cuda-samples/archive/']
sources = ['v%(version)s.tar.gz']
-checksums = ['f758160645b366d79c2638d8dfd389f01029b8d179ab0c11726b9ef58aecebd9']
+patches = ['cuda-samples-11.6_multiple-sms.patch']
+checksums = [
+ {'v12.1.tar.gz': 'f758160645b366d79c2638d8dfd389f01029b8d179ab0c11726b9ef58aecebd9'},
+ {'cuda-samples-11.6_multiple-sms.patch': '8849e4882d797d155d6ebb71377fa1409205361776ade8da699452a4ecb94a0a'},
+]
dependencies = [
('CUDA', '12.1.1', '', SYSTEM),
@@ -58,7 +62,7 @@ if ARCH == 'aarch64':
local_filters += "Samples/3_CUDA_Features/cdpQuadtree/Makefile "
local_filters += "Samples/3_CUDA_Features/cdpAdvancedQuicksort/Makefile "
-buildopts = "HOST_COMPILER=g++ FILTER_OUT='%s'" % local_filters
+buildopts = "HOST_COMPILER=g++ SMS='%%(cuda_cc_space_sep_no_period)s' FILTER_OUT='%s'" % local_filters
# Remove libraries in the bin dir after a successful 'make'
buildopts += " && rm bin/*/linux/release/lib*.so.*"
diff --git a/easybuild/easyconfigs/c/CUDA-Samples/CUDA-Samples-12.2-GCC-11.3.0-CUDA-12.2.0.eb b/easybuild/easyconfigs/c/CUDA-Samples/CUDA-Samples-12.2-GCC-11.3.0-CUDA-12.2.0.eb
new file mode 100644
index 00000000000..89e1c6fc87b
--- /dev/null
+++ b/easybuild/easyconfigs/c/CUDA-Samples/CUDA-Samples-12.2-GCC-11.3.0-CUDA-12.2.0.eb
@@ -0,0 +1,63 @@
+easyblock = 'MakeCp'
+
+name = 'CUDA-Samples'
+version = '12.2'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://github.com/NVIDIA/cuda-samples'
+description = "Samples for CUDA Developers which demonstrates features in CUDA Toolkit"
+
+toolchain = {'name': 'GCC', 'version': '11.3.0'}
+
+source_urls = ['https://github.com/NVIDIA/cuda-samples/archive/']
+sources = ['v%(version)s.tar.gz']
+patches = ['cuda-samples-11.6_multiple-sms.patch']
+checksums = [
+ {'v12.2.tar.gz': '1823cfe28e97a9230107aa72b231f78952c0f178b71a920f036d360518480bdc'},
+ {'cuda-samples-11.6_multiple-sms.patch': '8849e4882d797d155d6ebb71377fa1409205361776ade8da699452a4ecb94a0a'},
+]
+
+builddependencies = [
+ ('CMake', '3.24.3'),
+]
+
+dependencies = [
+ ('CUDA', '12.2.0', '', SYSTEM),
+]
+
+# Get rid of pre-built Windows DLLs and only build deviceQuery for now.
+prebuildopts = "rm -r bin/win64 && "
+
+# Filter out samples that require extensive dependencies.
+local_filters = "Samples/2_Concepts_and_Techniques/EGLStream_CUDA_Interop/Makefile "
+local_filters += "Samples/4_CUDA_Libraries/boxFilterNPP/Makefile "
+local_filters += "Samples/4_CUDA_Libraries/cannyEdgeDetectorNPP/Makefile "
+local_filters += "Samples/4_CUDA_Libraries/cudaNvSci/Makefile "
+local_filters += "Samples/4_CUDA_Libraries/cudaNvSciNvMedia/Makefile "
+local_filters += "Samples/5_Domain_Specific/simpleGL/Makefile "
+local_filters += "Samples/3_CUDA_Features/warpAggregatedAtomicsCG/Makefile "
+local_filters += "Samples/5_Domain_Specific/simpleVulkan/Makefile "
+local_filters += "Samples/5_Domain_Specific/simpleVulkanMMAP/Makefile "
+local_filters += "Samples/2_Concepts_and_Techniques/streamOrderedAllocationIPC/Makefile "
+local_filters += "Samples/5_Domain_Specific/vulkanImageCUDA/Makefile "
+local_filters += "Samples/6_Performance/LargeKernelParameter/Makefile "
+
+buildopts = "HOST_COMPILER=g++ SMS='%%(cuda_cc_space_sep_no_period)s' FILTER_OUT='%s'" % local_filters
+
+files_to_copy = [
+ (['bin/%s/linux/release/*' % ARCH], 'bin'),
+ 'LICENSE',
+]
+
+local_binaries = ['deviceQuery', 'matrixMul', 'bandwidthTest', 'cudaOpenMP']
+
+# Only paths are used for sanity checks.
+# Commands may fail due to missing compatibility libraries that might be needed
+# to be able to use this specific CUDA version in combination with the available
+# NVIDIA drivers.
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in local_binaries],
+ 'dirs': [],
+}
+
+moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/c/CUDA-Samples/cuda-samples-11.3_multiple-sms.patch b/easybuild/easyconfigs/c/CUDA-Samples/cuda-samples-11.3_multiple-sms.patch
new file mode 100644
index 00000000000..b6613f6a3c4
--- /dev/null
+++ b/easybuild/easyconfigs/c/CUDA-Samples/cuda-samples-11.3_multiple-sms.patch
@@ -0,0 +1,31 @@
+# Fixes "nvcc fatal: Option '--ptx (-ptx)' is not allowed when compiling for multiple GPU architectures"
+# fatal compilation issue when building for multiple SM architectures
+# More info, see https://github.com/NVIDIA/cuda-samples/issues/289
+
+# Author: Caspar van Leeuwen
+
+diff -Nru cuda-samples-11.3.orig/Samples/memMapIPCDrv/Makefile cuda-samples-11.3/Samples/memMapIPCDrv/Makefile
+--- cuda-samples-11.3.orig/Samples/memMapIPCDrv/Makefile 2024-07-29 13:17:10.330743000 +0200
++++ cuda-samples-11.3/Samples/memMapIPCDrv/Makefile 2024-07-29 13:19:13.158507504 +0200
+@@ -321,6 +321,12 @@
+ ifneq ($(HIGHEST_SM),)
+ GENCODE_FLAGS += -gencode arch=compute_$(HIGHEST_SM),code=compute_$(HIGHEST_SM)
+ endif
++
++# Generate the explicit PTX file for the lowest SM architecture in $(SMS), so it works on all SMS listed there
++LOWEST_SM := $(firstword $(sort $(SMS)))
++ifneq ($(LOWEST_SM),)
++GENCODE_FLAGS_LOWEST_SM += -gencode arch=compute_$(LOWEST_SM),code=compute_$(LOWEST_SM)
++endif
+ endif
+
+ ifeq ($(TARGET_OS),darwin)
+@@ -401,7 +407,7 @@
+ endif
+
+ $(PTX_FILE): memMapIpc_kernel.cu
+- $(EXEC) $(NVCC) $(INCLUDES) $(ALL_CCFLAGS) $(GENCODE_FLAGS) -o $@ -ptx $<
++ $(EXEC) $(NVCC) $(INCLUDES) $(ALL_CCFLAGS) $(GENCODE_FLAGS_LOWEST_SM) -o $@ -ptx $<
+ $(EXEC) mkdir -p data
+ $(EXEC) cp -f $@ ./data
+ $(EXEC) mkdir -p ../../bin/$(TARGET_ARCH)/$(TARGET_OS)/$(BUILD_TYPE)
diff --git a/easybuild/easyconfigs/c/CUDA-Samples/cuda-samples-11.6_multiple-sms.patch b/easybuild/easyconfigs/c/CUDA-Samples/cuda-samples-11.6_multiple-sms.patch
new file mode 100644
index 00000000000..8c4e36f7e74
--- /dev/null
+++ b/easybuild/easyconfigs/c/CUDA-Samples/cuda-samples-11.6_multiple-sms.patch
@@ -0,0 +1,56 @@
+# Fixes "nvcc fatal: Option '--ptx (-ptx)' is not allowed when compiling for multiple GPU architectures"
+# fatal compilation issue when building for multiple SM architectures
+# More info, see https://github.com/NVIDIA/cuda-samples/issues/289
+
+# Author: Caspar van Leeuwen
+
+diff -Nru cuda-samples-12.2.orig/Samples/3_CUDA_Features/memMapIPCDrv/Makefile cuda-samples-12.2/Samples/3_CUDA_Features/memMapIPCDrv/Makefile
+--- cuda-samples-12.2.orig/Samples/3_CUDA_Features/memMapIPCDrv/Makefile 2024-07-29 12:14:28.538848000 +0200
++++ cuda-samples-12.2/Samples/3_CUDA_Features/memMapIPCDrv/Makefile 2024-07-29 13:02:45.134261829 +0200
+@@ -313,6 +313,12 @@
+ ifneq ($(HIGHEST_SM),)
+ GENCODE_FLAGS += -gencode arch=compute_$(HIGHEST_SM),code=compute_$(HIGHEST_SM)
+ endif
++
++# Generate the explicit PTX file for the lowest SM architecture in $(SMS), so it works on all SMS listed there
++LOWEST_SM := $(firstword $(sort $(SMS)))
++ifneq ($(LOWEST_SM),)
++GENCODE_FLAGS_LOWEST_SM += -gencode arch=compute_$(LOWEST_SM),code=compute_$(LOWEST_SM)
++endif
+ endif
+
+ ifeq ($(TARGET_OS),darwin)
+@@ -394,7 +400,7 @@
+ endif
+
+ $(PTX_FILE): memMapIpc_kernel.cu
+- $(EXEC) $(NVCC) $(INCLUDES) $(ALL_CCFLAGS) $(GENCODE_FLAGS) -o $@ -ptx $<
++ $(EXEC) $(NVCC) $(INCLUDES) $(ALL_CCFLAGS) $(GENCODE_FLAGS_LOWEST_SM) -o $@ -ptx $<
+ $(EXEC) mkdir -p data
+ $(EXEC) cp -f $@ ./data
+ $(EXEC) mkdir -p ../../../bin/$(TARGET_ARCH)/$(TARGET_OS)/$(BUILD_TYPE)
+diff -Nru cuda-samples-12.2.orig/Samples/3_CUDA_Features/ptxjit/Makefile cuda-samples-12.2/Samples/3_CUDA_Features/ptxjit/Makefile
+--- cuda-samples-12.2.orig/Samples/3_CUDA_Features/ptxjit/Makefile 2024-07-29 12:14:28.546771000 +0200
++++ cuda-samples-12.2/Samples/3_CUDA_Features/ptxjit/Makefile 2024-07-29 13:02:38.741961008 +0200
+@@ -307,6 +307,12 @@
+ ifneq ($(HIGHEST_SM),)
+ GENCODE_FLAGS += -gencode arch=compute_$(HIGHEST_SM),code=compute_$(HIGHEST_SM)
+ endif
++
++# Generate the explicit PTX file for the lowest SM architecture in $(SMS), so it works on all SMS listed there
++LOWEST_SM := $(firstword $(sort $(SMS)))
++ifneq ($(LOWEST_SM),)
++GENCODE_FLAGS_LOWEST_SM += -gencode arch=compute_$(LOWEST_SM),code=compute_$(LOWEST_SM)
++endif
+ endif
+
+ ifeq ($(TARGET_OS),darwin)
+@@ -390,7 +396,7 @@
+ endif
+
+ $(PTX_FILE): ptxjit_kernel.cu
+- $(EXEC) $(NVCC) $(INCLUDES) $(ALL_CCFLAGS) $(GENCODE_FLAGS) -o $@ -ptx $<
++ $(EXEC) $(NVCC) $(INCLUDES) $(ALL_CCFLAGS) $(GENCODE_FLAGS_LOWEST_SM) -o $@ -ptx $<
+ $(EXEC) mkdir -p data
+ $(EXEC) cp -f $@ ./data
+ $(EXEC) mkdir -p ../../../bin/$(TARGET_ARCH)/$(TARGET_OS)/$(BUILD_TYPE)
diff --git a/easybuild/easyconfigs/c/CUDA/CUDA-12.3.2.eb b/easybuild/easyconfigs/c/CUDA/CUDA-12.3.2.eb
new file mode 100644
index 00000000000..060e6893566
--- /dev/null
+++ b/easybuild/easyconfigs/c/CUDA/CUDA-12.3.2.eb
@@ -0,0 +1,24 @@
+name = 'CUDA'
+version = '12.3.2'
+local_nv_version = '545.23.08'
+
+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:
+ '24b2afc9f770d8cf43d6fa7adc2ebfd47c4084db01bdda1ce3ce0a4d493ba65b',
+ 'cuda_%%(version)s_%s_linux_ppc64le.run' % local_nv_version:
+ 'b876936fc80de10653523eadd846065db346b38ba6296f2d365772259cb2f198',
+ 'cuda_%%(version)s_%s_linux_sbsa.run' % local_nv_version:
+ '761b84e292b94c4d330f445d36326dfff90a418e909fb0baf3d6f03e24106d08'
+}]
+
+moduleclass = 'system'
diff --git a/easybuild/easyconfigs/c/CUDA/CUDA-12.4.0.eb b/easybuild/easyconfigs/c/CUDA/CUDA-12.4.0.eb
new file mode 100644
index 00000000000..29127574f0f
--- /dev/null
+++ b/easybuild/easyconfigs/c/CUDA/CUDA-12.4.0.eb
@@ -0,0 +1,24 @@
+name = 'CUDA'
+version = '12.4.0'
+local_nv_version = '550.54.14'
+
+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:
+ 'e6a842f4eca9490575cdb68b6b1bb78d47b95a897de48dee292c431892e57d17',
+ 'cuda_%%(version)s_%s_linux_ppc64le.run' % local_nv_version:
+ 'ef9a712daccf2805b4422f2301ff0eaa5c3ad41ef5d64b8626773bce7d1f41fe',
+ 'cuda_%%(version)s_%s_linux_sbsa.run' % local_nv_version:
+ 'b12bfe6c36d32ecf009a6efb0024325c5fc389fca1143f5f377ae2555936e803'
+}]
+
+moduleclass = 'system'
diff --git a/easybuild/easyconfigs/c/CUDA/CUDA-12.5.0.eb b/easybuild/easyconfigs/c/CUDA/CUDA-12.5.0.eb
new file mode 100644
index 00000000000..0a81b7bd4c1
--- /dev/null
+++ b/easybuild/easyconfigs/c/CUDA/CUDA-12.5.0.eb
@@ -0,0 +1,24 @@
+name = 'CUDA'
+version = '12.5.0'
+local_nv_version = '555.42.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:
+ '90fcc7df48226434065ff12a4372136b40b9a4cbf0c8602bb763b745f22b7a99',
+ 'cuda_%%(version)s_%s_linux_ppc64le.run' % local_nv_version:
+ '33f39ad7bc624d5c8e59938990358cec80b9966431e34d1ab2d6115d78a3f264',
+ 'cuda_%%(version)s_%s_linux_sbsa.run' % local_nv_version:
+ 'e7b864c9ae27cef77cafc78614ec33cbb0a27606af9375deffa09c4269a07f04'
+}]
+
+moduleclass = 'system'
diff --git a/easybuild/easyconfigs/c/CUDA/CUDA-12.6.0.eb b/easybuild/easyconfigs/c/CUDA/CUDA-12.6.0.eb
new file mode 100644
index 00000000000..24c7b5f5c90
--- /dev/null
+++ b/easybuild/easyconfigs/c/CUDA/CUDA-12.6.0.eb
@@ -0,0 +1,22 @@
+name = 'CUDA'
+version = '12.6.0'
+local_nv_version = '560.28.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:
+ '31ab04394e69b14dd8656e2b44c2877db1a0e898dff8a7546a4c628438101b94',
+ 'cuda_%%(version)s_%s_linux_sbsa.run' % local_nv_version:
+ '398db7baca17d51ad5035c606714c96380c965fd1742478c743bc6bbb1d8f63c'
+}]
+
+moduleclass = 'system'
diff --git a/easybuild/easyconfigs/c/CUDD/CUDD-3.0.0-GCC-13.2.0.eb b/easybuild/easyconfigs/c/CUDD/CUDD-3.0.0-GCC-13.2.0.eb
new file mode 100644
index 00000000000..c1f83cad099
--- /dev/null
+++ b/easybuild/easyconfigs/c/CUDD/CUDD-3.0.0-GCC-13.2.0.eb
@@ -0,0 +1,22 @@
+easyblock = 'ConfigureMake'
+
+name = 'CUDD'
+version = '3.0.0'
+
+homepage = 'https://github.com/ivmai/cudd'
+description = """The CUDD package is a package written in C for the manipulation of
+ decision diagrams. It supports binary decision diagrams (BDDs), algebraic decision
+ diagrams (ADDs), and Zero-Suppressed BDDs (ZDDs)."""
+
+toolchain = {'name': 'GCC', 'version': '13.2.0'}
+
+source_urls = ['https://github.com/ivmai/cudd/archive/refs/tags']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['5fe145041c594689e6e7cf4cd623d5f2b7c36261708be8c9a72aed72cf67acce']
+
+sanity_check_paths = {
+ 'files': ['include/cudd.h', 'lib/libcudd.a'],
+ 'dirs': [],
+}
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/c/CUTLASS/CUTLASS-3.4.0-foss-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/c/CUTLASS/CUTLASS-3.4.0-foss-2023a-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..3322e6b4b56
--- /dev/null
+++ b/easybuild/easyconfigs/c/CUTLASS/CUTLASS-3.4.0-foss-2023a-CUDA-12.1.1.eb
@@ -0,0 +1,49 @@
+easyblock = 'CMakeMake'
+
+name = 'CUTLASS'
+version = '3.4.0'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://github.com/NVIDIA/cutlass'
+description = """CUTLASS is a collection of CUDA C++ template
+abstractions for implementing high-performance matrix-matrix
+multiplication (GEMM) and related computations at all levels and scales
+within CUDA. It incorporates strategies for hierarchical decomposition
+and data movement similar to those used to implement cuBLAS and cuDNN.
+CUTLASS decomposes these "moving parts" into reusable, modular software
+components abstracted by C++ template classes. Primitives for different
+levels of a conceptual parallelization hierarchy can be specialized and
+tuned via custom tiling sizes, data types, and other algorithmic policy.
+The resulting flexibility simplifies their use as building blocks within
+custom kernels and applications."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+github_account = 'NVIDIA'
+source_urls = [GITHUB_LOWER_SOURCE]
+sources = ['v%(version)s.tar.gz']
+checksums = ['49f4b854acc2a520126ceefe4f701cfe8c2b039045873e311b1f10a8ca5d5de1']
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+ ('Python', '3.11.3'),
+]
+
+dependencies = [
+ ('CUDA', '12.1.1', '', SYSTEM),
+ ('cuDNN', '8.9.2.26', versionsuffix, SYSTEM),
+]
+
+_copts = [
+ '-DCUTLASS_NVCC_ARCHS="%(cuda_cc_cmake)s"',
+ '-DCUTLASS_ENABLE_CUBLAS=1',
+ '-DCUTLASS_ENABLE_CUDNN=1',
+]
+configopts = ' '.join(_copts)
+
+sanity_check_paths = {
+ 'files': ['include/cutlass/cutlass.h', 'lib/libcutlass.%s' % SHLIB_EXT],
+ 'dirs': ['lib/cmake'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/c/CUnit/CUnit-2.1-3-GCCcore-12.3.0.eb b/easybuild/easyconfigs/c/CUnit/CUnit-2.1-3-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..827f7ea4e80
--- /dev/null
+++ b/easybuild/easyconfigs/c/CUnit/CUnit-2.1-3-GCCcore-12.3.0.eb
@@ -0,0 +1,27 @@
+easyblock = 'ConfigureMake'
+
+name = 'CUnit'
+version = '2.1-3'
+
+homepage = 'https://sourceforge.net/projects/cunit/'
+description = "Automated testing framework for C."
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = [SOURCEFORGE_SOURCE]
+sources = [SOURCE_TAR_BZ2]
+checksums = ['f5b29137f845bb08b77ec60584fdb728b4e58f1023e6f249a464efa49a40f214']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('Autotools', '20220317'),
+]
+
+preconfigopts = "autoreconf -i && "
+
+sanity_check_paths = {
+ 'files': ['lib/libcunit.a', 'lib/libcunit.%s' % SHLIB_EXT],
+ 'dirs': ['include/CUnit', 'lib/pkgconfig', 'share'],
+}
+
+moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/c/CVX/CVX-2.2-MATLAB-2023a.eb b/easybuild/easyconfigs/c/CVX/CVX-2.2-MATLAB-2023a.eb
new file mode 100644
index 00000000000..b3c3ec1b113
--- /dev/null
+++ b/easybuild/easyconfigs/c/CVX/CVX-2.2-MATLAB-2023a.eb
@@ -0,0 +1,36 @@
+easyblock = 'Tarball'
+
+name = 'CVX'
+version = '2.2'
+_matlab_ver = '2023a'
+versionsuffix = '-MATLAB-%s' % _matlab_ver
+
+homepage = 'https://cvxr.com/cvx/'
+description = """CVX is a Matlab-based modeling system for convex optimization.
+ CVX turns Matlab into a modeling language, allowing constraints and objectives
+ to be specified using standard Matlab expression syntax.
+"""
+
+toolchain = SYSTEM
+
+source_urls = ['https://web.cvxr.com/cvx/']
+sources = ['%(namelower)s-a64.tar.gz']
+checksums = ['16e4622c80f2bf63152aaee59db4fe42afa4d2282179e5d216358953c7f9ea4d']
+
+dependencies = [
+ ('MATLAB', _matlab_ver),
+]
+
+sanity_check_paths = {
+ 'files': [],
+ 'dirs': ['lib', 'commands', 'sedumi', 'sdpt3'],
+}
+
+modloadmsg = "IMPORTANT: You need to run `cvx_setup` once inside MATLAB before using CVX."
+
+modextrapaths = {
+ 'MATLABPATH': ['', 'functions/vec_', 'structures', 'lib', 'functions',
+ 'commands', 'builtins'],
+}
+
+moduleclass = 'tools'
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
index 9bac0454227..2c32ff36414 100644
--- a/easybuild/easyconfigs/c/CVXOPT/CVXOPT-1.3.1-foss-2022a.eb
+++ b/easybuild/easyconfigs/c/CVXOPT/CVXOPT-1.3.1-foss-2022a.eb
@@ -32,8 +32,15 @@ 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'
+preinstallopts = " ".join([
+ 'CVXOPT_BUILD_FFTW=1',
+ 'CVXOPT_BUILD_GSL=1',
+ 'CVXOPT_BLAS_EXTRA_LINK_ARGS="$LIBBLAS"',
+ 'CVXOPT_LAPACK_EXTRA_LINK_ARGS="$LIBLAPACK"',
+ 'CVXOPT_FFTW_EXTRA_LINK_ARGS="$LIBFFT"',
+ 'CVXOPT_SUITESPARSE_LIB_DIR=$EBROOTSUITESPARSE/lib',
+ 'CVXOPT_SUITESPARSE_INC_DIR=$EBROOTSUITESPARSE/include',
+])
installopts = ' --no-binary cvxopt'
diff --git a/easybuild/easyconfigs/c/CVXPY/CVXPY-1.4.2-foss-2023a.eb b/easybuild/easyconfigs/c/CVXPY/CVXPY-1.4.2-foss-2023a.eb
new file mode 100644
index 00000000000..c250eee145d
--- /dev/null
+++ b/easybuild/easyconfigs/c/CVXPY/CVXPY-1.4.2-foss-2023a.eb
@@ -0,0 +1,49 @@
+easyblock = 'PythonBundle'
+
+name = 'CVXPY'
+version = '1.4.2'
+
+homepage = 'https://www.cvxpy.org/'
+description = """
+CVXPY is a Python-embedded modeling language for convex optimization problems.
+It allows you to express your problem in a natural way that follows the math,
+rather than in the restrictive standard form required by solvers.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+ ('SWIG', '4.1.1'),
+ ('meson-python', '0.15.0'), # for csc
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('Clarabel.rs', '0.7.1'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('qdldl', '0.1.7.post0', {
+ 'checksums': ['f346a114c8342ee6d4dbd6471eef314199fb268d3bf7b95885ca351fde2b023f'],
+ }),
+ ('osqp', '0.6.5', {
+ 'checksums': ['b2810aee7be2373add8b6c0be5ad99b810288774abca421751cb032d6a5aedef'],
+ }),
+ ('ecos', '2.0.13', {
+ 'checksums': ['f2a9dc108ade7faf6f6f4fad245f4714b7293c8767d2a351ead59428a94a98b9'],
+ }),
+ ('scs', '3.2.4.post1', {
+ 'checksums': ['7015d7a56d1d5b53264fd277289ea169949309e26101677ff88cd0e5030d032f'],
+ }),
+ ('cvxpy', version, {
+ 'checksums': ['0a386a5788dbd78b7b20dd071524ec636c8fa72b3628e69f1abc714c8f9811e5'],
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/c/CalculiX-CrunchiX/CalculiX-CrunchiX-2.20-foss-2023a.eb b/easybuild/easyconfigs/c/CalculiX-CrunchiX/CalculiX-CrunchiX-2.20-foss-2023a.eb
new file mode 100644
index 00000000000..4f246716c09
--- /dev/null
+++ b/easybuild/easyconfigs/c/CalculiX-CrunchiX/CalculiX-CrunchiX-2.20-foss-2023a.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': '2023a'}
+
+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.36.1'),
+]
+
+dependencies = [
+ ('arpack-ng', '3.9.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/Cartopy/Cartopy-0.22.0-foss-2023a.eb b/easybuild/easyconfigs/c/Cartopy/Cartopy-0.22.0-foss-2023a.eb
index 9dfe231d9e6..73fc95af612 100644
--- a/easybuild/easyconfigs/c/Cartopy/Cartopy-0.22.0-foss-2023a.eb
+++ b/easybuild/easyconfigs/c/Cartopy/Cartopy-0.22.0-foss-2023a.eb
@@ -16,7 +16,7 @@ dependencies = [
# sufficiently recent Cython is required, to fix issues like:
# pykdtree/kdtree.c:2437:76: error: PyArrayObject {aka struct tagPyArrayObject} has no member named data
# Cython included with Python-bundle-PyPI (0.29.35) is not sufficient
- ('Cython', '3.0.7'),
+ ('Cython', '3.0.8'),
('Fiona', '1.9.5'),
('GDAL', '3.7.1'),
('GEOS', '3.12.0'),
diff --git a/easybuild/easyconfigs/c/Cassiopeia/Cassiopeia-2.0.0-foss-2023a.eb b/easybuild/easyconfigs/c/Cassiopeia/Cassiopeia-2.0.0-foss-2023a.eb
new file mode 100644
index 00000000000..bdcee918b8b
--- /dev/null
+++ b/easybuild/easyconfigs/c/Cassiopeia/Cassiopeia-2.0.0-foss-2023a.eb
@@ -0,0 +1,127 @@
+easyblock = 'PythonBundle'
+
+name = 'Cassiopeia'
+version = '2.0.0'
+
+homepage = 'https://github.com/YosefLab/Cassiopeia'
+description = """A Package for Cas9-Enabled Single Cell Lineage Tracing Tree Reconstruction."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+ ('poetry', '1.5.1'),
+ ('hatchling', '1.18.0'),
+ ('hatch-jupyter-builder', '0.9.1'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('Biopython', '1.83'),
+ ('scikit-build', '0.17.6'),
+ ('bokeh', '3.2.2'),
+ ('ETE', '3.1.3'),
+ ('matplotlib', '3.7.2'),
+ ('networkx', '3.1'),
+ ('numba', '0.58.1'),
+ ('Pysam', '0.22.0'),
+ ('PyYAML', '6.0'),
+ ('typing-extensions', '4.9.0'),
+ ('tqdm', '4.66.1'),
+ ('BeautifulSoup', '4.12.2'),
+ ('statsmodels', '0.14.1'),
+ ('Seaborn', '0.13.2'),
+ ('IPython', '8.14.0'),
+ ('PyZMQ', '25.1.1'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('deprecation', '2.1.0', {
+ 'checksums': ['72b3bde64e5d778694b0cf68178aed03d15e15477116add3fb773e581f9518ff'],
+ }),
+ ('jupyter_packaging', '0.12.3', {
+ 'checksums': ['9d9b2b63b97ffd67a8bc5391c32a421bc415b264a32c99e4d8d8dd31daae9cf4'],
+ }),
+ ('jupyter_client', '8.6.1', {
+ 'checksums': ['e842515e2bab8e19186d89fdfea7abd15e39dd581f94e399f00e2af5a1652d3f'],
+ }),
+ ('widgetsnbextension', '4.0.10', {
+ 'checksums': ['64196c5ff3b9a9183a8e699a4227fb0b7002f252c814098e66c4d1cd0644688f'],
+ }),
+ ('jupyterlab_widgets', '3.0.10', {
+ 'checksums': ['04f2ac04976727e4f9d0fa91cdc2f1ab860f965e504c29dbd6a65c882c9d04c0'],
+ }),
+ ('comm', '0.2.2', {
+ 'checksums': ['3fd7a84065306e07bea1773df6eb8282de51ba82f77c72f9c85716ab11fe980e'],
+ }),
+ ('fastjsonschema', '2.19.1', {
+ 'checksums': ['e3126a94bdc4623d3de4485f8d468a12f02a67921315ddc87836d6e456dc789d'],
+ }),
+ ('ipywidgets', '8.1.2', {
+ 'checksums': ['d0b9b41e49bae926a866e613a39b0f0097745d2b9f1f3dd406641b4a57ec42c9'],
+ }),
+ ('bleach', '6.1.0', {
+ 'checksums': ['0a31f1837963c41d46bbf1331b8778e1308ea0791db03cc4e7357b97cf42a8fe'],
+ }),
+ ('defusedxml', '0.7.1', {
+ 'checksums': ['1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69'],
+ }),
+ ('jupyter_core', '5.7.2', {
+ 'checksums': ['aa5f8d32bbf6b431ac830496da7392035d6f61b4f54872f15c4bd2a9c3f536d9'],
+ }),
+ ('jupyterlab_pygments', '0.3.0', {
+ 'checksums': ['721aca4d9029252b11cfa9d185e5b5af4d54772bb8072f9b7036f4170054d35d'],
+ }),
+ ('mistune', '3.0.2', {
+ 'checksums': ['fc7f93ded930c92394ef2cb6f04a8aabab4117a91449e72dcc8dfa646a508be8'],
+ }),
+ ('nbclient', '0.10.0', {
+ 'checksums': ['4b3f1b7dba531e498449c4db4f53da339c91d449dc11e9af3a43b4eb5c5abb09'],
+ }),
+ ('pandocfilters', '1.5.1', {
+ 'checksums': ['002b4a555ee4ebc03f8b66307e287fa492e4a77b4ea14d3f934328297bb4939e'],
+ }),
+ ('tinycss2', '1.2.1', {
+ 'checksums': ['8cff3a8f066c2ec677c06dbc7b45619804a6938478d9d73c284b29d14ecb0627'],
+ }),
+ ('traitlets', '5.14.2', {
+ 'checksums': ['8cdd83c040dab7d1dee822678e5f5d100b514f7b72b01615b26fc5718916fdf9'],
+ }),
+ ('shortuuid', '1.0.13', {
+ 'checksums': ['3bb9cf07f606260584b1df46399c0b87dd84773e7b25912b7e391e30797c5e72'],
+ }),
+ ('ngs-tools', '1.8.5', {
+ 'checksums': ['380e236a101c5b1ac3c0fcdbcc908a210179b6ef2a93fbea9f4eb0ec2edc1de0'],
+ }),
+ ('nbformat', '5.10.3', {
+ 'checksums': ['60ed5e910ef7c6264b87d644f276b1b49e24011930deef54605188ddeb211685'],
+ }),
+ ('nbconvert', '7.16.3', {
+ 'checksums': ['a6733b78ce3d47c3f85e504998495b07e6ea9cf9bf6ec1c98dda63ec6ad19142'],
+ }),
+ ('itolapi', '4.1.4', {
+ 'checksums': ['68e87ba51d209da556b0e373b3b0456b644a1a732c193fedbd7785ff37b6a2cb'],
+ }),
+ ('hits', '0.4.0', {
+ 'checksums': ['743bfc1b56ab8fcf9fefacfcad4c1f23e9bafec1b42225709dbe097c8e669383'],
+ }),
+ ('Levenshtein', '0.22.0', {
+ 'modulename': False,
+ 'checksums': ['86d285d770551cb648d4fcfe5243449a479e694e56b65272dc6cbda879012051'],
+ }),
+ ('python-Levenshtein', '0.22.0', {
+ 'modulename': 'Levenshtein',
+ 'checksums': ['6f8e2216fbd4610ccfa1bab2e0052fb23de34c2333c192de08150eeb99717702'],
+ }),
+ (name, version, {
+ 'source_urls': ['https://github.com/YosefLab/Cassiopeia/archive/'],
+ 'sources': [{'download_filename': '%(version)s.tar.gz', 'filename': '%(name)s-%(version)s.tar.gz'}],
+ 'checksums': ['28ae7495152683f5733222255056a1e7b2f7a51e1cee2f23f0d9f8ae5f4c3742'],
+ }),
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/Catch2/Catch2-2.13.10-GCCcore-13.3.0.eb b/easybuild/easyconfigs/c/Catch2/Catch2-2.13.10-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..00abfac39c8
--- /dev/null
+++ b/easybuild/easyconfigs/c/Catch2/Catch2-2.13.10-GCCcore-13.3.0.eb
@@ -0,0 +1,30 @@
+easyblock = 'CMakeMake'
+
+name = 'Catch2'
+version = '2.13.10'
+
+homepage = 'https://github.com/catchorg/Catch2'
+description = """A modern, C++-native, header-only,
+ test framework for unit-tests, TDD and BDD
+ - using C++11, C++14, C++17 and later
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://github.com/catchorg/Catch2/archive/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['d54a712b7b1d7708bc7a819a8e6e47b2fde9536f487b89ccbca295072a7d9943']
+
+builddependencies = [
+ ('binutils', '2.42'), # to make CMake compiler health check pass on old systems
+ ('CMake', '3.29.3'),
+]
+
+separate_build_dir = True
+
+sanity_check_paths = {
+ 'files': ['include/catch2/catch.hpp'],
+ 'dirs': ['lib/cmake'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/c/Cbc/Cbc-2.10.11-foss-2023a.eb b/easybuild/easyconfigs/c/Cbc/Cbc-2.10.11-foss-2023a.eb
new file mode 100644
index 00000000000..1f52c6bdfc2
--- /dev/null
+++ b/easybuild/easyconfigs/c/Cbc/Cbc-2.10.11-foss-2023a.eb
@@ -0,0 +1,63 @@
+easyblock = "ConfigureMake"
+
+name = 'Cbc'
+version = '2.10.11'
+
+homepage = "https://github.com/coin-or/Cbc"
+description = """Cbc (Coin-or branch and cut) is an open-source mixed integer linear programming
+solver written in C++. It can be used as a callable library or using a
+stand-alone executable."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'pic': True, 'usempi': True}
+
+source_urls = ['https://github.com/coin-or/Cbc/archive/refs/tags/releases']
+sources = ['%(version)s.tar.gz']
+checksums = ['1fb591dd88336fdaf096b8e42e46111e41671a5eb85d4ee36e45baff1678bd33']
+
+builddependencies = [
+ ('Autotools', '20220317'),
+ ('Doxygen', '1.9.7'),
+ ('pkgconf', '1.9.5'),
+]
+
+dependencies = [
+ ('METIS', '5.1.0'),
+ ('MUMPS', '5.6.1', '-metis'),
+ ('CoinUtils', '2.11.10'),
+ ('Osi', '0.108.9'),
+ ('Clp', '1.17.9'),
+ ('Cgl', '0.60.8'),
+ ('bzip2', '1.0.8'),
+ ('zlib', '1.2.13'),
+]
+
+# Use BLAS/LAPACK from toolchain
+configopts = '--with-blas="$LIBBLAS" --with-lapack="$LIBLAPACK" '
+# Use METIS AND MUMPS from EB
+configopts += '--with-metis-lib="-lmetis" '
+configopts += '--with-mumps-lib="-lcmumps -ldmumps -lsmumps -lzmumps -lmumps_common -lpord" '
+# Disable GLPK, dependencies have to be built with it as well
+configopts += '--without-glpk '
+# Use CoinUtils from EB
+configopts += '--with-coinutils-lib="-lCoinUtils" '
+configopts += '--with-coinutils-datadir=$EBROOTCOINUTILS/share/coin/Data '
+# Use Clp from EB
+configopts += '--with-clp-lib="-lOsiClp -lClpSolver -lClp" '
+configopts += '--with-clp-datadir=$EBROOTCLP/share/coin/Data '
+# Use Osi from EB (also needs links to Clp due to OsiClpSolver)
+configopts += '--with-osi-lib="-lOsiClp -lClpSolver -lClp -lOsi" '
+configopts += '--with-osi-datadir=$EBROOTOSI/share/coin/Data '
+# Use Cgl from EB
+configopts += '--with-cgl-lib="-lCgl" '
+configopts += '--with-cgl-datadir=$EBROOTCGL/share/coin/Data '
+
+sanity_check_paths = {
+ 'files': ['bin/cbc'] + ['lib/lib%s.%s' % (x, SHLIB_EXT) for x in ['Cbc', 'CbcSolver', 'OsiCbc']],
+ 'dirs': ['include/coin', 'lib/pkgconfig', 'share/coin']
+}
+
+# other coin-or projects expect instead of
+modextrapaths = {'CPATH': 'include/coin'}
+
+moduleclass = "math"
diff --git a/easybuild/easyconfigs/c/CellBender/CellBender-0.2.1-foss-2021a-CUDA-11.3.1.eb b/easybuild/easyconfigs/c/CellBender/CellBender-0.2.1-foss-2021a-CUDA-11.3.1.eb
new file mode 100644
index 00000000000..3203da29108
--- /dev/null
+++ b/easybuild/easyconfigs/c/CellBender/CellBender-0.2.1-foss-2021a-CUDA-11.3.1.eb
@@ -0,0 +1,62 @@
+# Author: J. Sassmannshausen (Imperial College London/UK)
+
+easyblock = 'PythonBundle'
+
+name = 'CellBender'
+version = '0.2.1'
+versionsuffix = '-CUDA-%(cudaver)s'
+local_pytorch_version = '1.10.0'
+
+homepage = 'https://github.com/broadinstitute/CellBender'
+description = """CellBender is a software package for eliminating technical
+artifacts from high-throughput single-cell RNA sequencing (scRNA-seq) data"""
+
+toolchain = {'name': 'foss', 'version': '2021a'}
+
+dependencies = [
+ ('Python', '3.9.5'),
+ ('SciPy-bundle', '2021.05'),
+ ('scikit-learn', '0.24.2'),
+ ('matplotlib', '3.4.2'),
+ ('PyTables', '3.6.1'),
+ ('CUDA', '11.3.1', '', SYSTEM),
+ ('PyTorch', local_pytorch_version, '-CUDA-%(cudaver)s'),
+ ('torchvision', '0.11.3', '-CUDA-%(cudaver)s'),
+ ('pyro-ppl', '1.8.0', '-CUDA-%(cudaver)s'),
+ ('h5py', '3.2.1'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('natsort', '7.1.1', {
+ 'checksums': ['00c603a42365830c4722a2eb7663a25919551217ec09a243d3399fa8dd4ac403'],
+ }),
+ ('anndata', '0.8.0', {
+ 'checksums': ['94d2cc6f76c0317c0ac28564e3092b313b7ad19c737d66701961f3e620b9066e'],
+ }),
+ (name, version, {
+ 'source_urls': ['https://github.com/broadinstitute/CellBender/archive'],
+ 'sources': ['v%(version)s.tar.gz'],
+ 'patches': ['CellBender-0.2.1-sphinxremoval.patch'],
+ 'checksums': [
+ {'v%(version)s.tar.gz':
+ '309f6245585d9741ba7099690a10a8f496756c4827d100100130be589b797ba4'},
+ {'CellBender-0.2.1-sphinxremoval.patch':
+ '0f6a342bac16f4ee80cd05d43923b4cc60d71999ea1bb5c80a75edb7290bbdec'},
+ ],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/cellbender', 'bin/natsort'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = [
+ "natsort --help",
+ "cellbender -h",
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/CellBender/CellBender-0.2.1-sphinxremoval.patch b/easybuild/easyconfigs/c/CellBender/CellBender-0.2.1-sphinxremoval.patch
new file mode 100644
index 00000000000..0241bc74128
--- /dev/null
+++ b/easybuild/easyconfigs/c/CellBender/CellBender-0.2.1-sphinxremoval.patch
@@ -0,0 +1,15 @@
+Removes Sphinx from the build as it is not required
+Author: J. Sassmannshausen (Imperial College London/UK)
+diff --git a/CellBender-0.2.1.orig/REQUIREMENTS.txt b/CellBender-0.2.1/REQUIREMENTS.txt
+index 535e3e7..0646183 100644
+--- a/CellBender-0.2.1.orig/REQUIREMENTS.txt
++++ b/CellBender-0.2.1/REQUIREMENTS.txt
+@@ -6,8 +6,3 @@ pandas
+ pyro-ppl>=0.3.2
+ scikit-learn
+ matplotlib
+-sphinx>=2.1
+-sphinx-rtd-theme
+-sphinx-autodoc-typehints
+-sphinxcontrib-programoutput
+-sphinx-argparse
diff --git a/easybuild/easyconfigs/c/CellBender/CellBender-0.3.0-foss-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/c/CellBender/CellBender-0.3.0-foss-2023a-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..94c6fc2c609
--- /dev/null
+++ b/easybuild/easyconfigs/c/CellBender/CellBender-0.3.0-foss-2023a-CUDA-12.1.1.eb
@@ -0,0 +1,72 @@
+easyblock = 'PythonBundle'
+
+name = 'CellBender'
+version = '0.3.0'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'http://github.com/broadinstitute/CellBender'
+description = """
+CellBender is a software package for eliminating technical artifacts from
+high-throughput single-cell RNA sequencing (scRNA-seq) data.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('CUDA', '12.1.1', '', SYSTEM),
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('matplotlib', '3.7.2'),
+ ('PyTorch', '2.1.2', versionsuffix),
+ ('IPython', '8.14.0'),
+ ('anndata', '0.10.5.post1'),
+ ('jupyter-contrib-nbextensions', '0.7.0'),
+ ('pyro-ppl', '1.9.0', versionsuffix),
+ ('loompy', '3.0.7'),
+ ('PyTables', '3.8.0'),
+ ('Qtconsole', '5.5.1'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('async-timeout', '4.0.3', {
+ 'checksums': ['4640d96be84d82d02ed59ea2b7105a0f7b33abe8703703cd0ab0bf87c427522f'],
+ }),
+ ('traitlets', '5.14.1', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['2e5a030e6eff91737c643231bfcf04a65b0132078dad75e4936700b213652e74'],
+ }),
+ ('jupyter_console', '6.6.3', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['309d33409fcc92ffdad25f0bcdf9a4a9daa61b6f341177570fdac03de5352485'],
+ }),
+ ('jupyter', '1.0.0', {
+ 'checksums': ['d9dc4b3318f310e34c82951ea5d6683f67bed7def4b259fafbfe4f1beb1d8e5f'],
+ }),
+ ('notebook', '6.5.7', {
+ 'checksums': ['04eb9011dfac634fbd4442adaf0a8c27cd26beef831fe1d19faf930c327768e4'],
+ }),
+ ('mistune', '0.8.4', {
+ 'checksums': ['59a3429db53c50b5c6bcc8a07f8848cb00d7dc8bdb431a4ab41920d201d4756e'],
+ }),
+ ('nbconvert', '6.5.4', {
+ 'checksums': ['9e3c7c6d491374cbdd5f35d268c05809357716d346f4573186bbeab32ee50bc1'],
+ }),
+ ('cellbender', version, {
+ 'checksums': ['94a46fb2b5921414ea86213cfdebca267b9ba6ba02df854cbd353980ab3aff42'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/cellbender'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = [
+ "cellbender --help",
+]
+
+sanity_pip_check = True
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/CellBender/CellBender-0.3.0-foss-2023a.eb b/easybuild/easyconfigs/c/CellBender/CellBender-0.3.0-foss-2023a.eb
new file mode 100644
index 00000000000..5fb9920fb70
--- /dev/null
+++ b/easybuild/easyconfigs/c/CellBender/CellBender-0.3.0-foss-2023a.eb
@@ -0,0 +1,70 @@
+easyblock = 'PythonBundle'
+
+name = 'CellBender'
+version = '0.3.0'
+
+homepage = 'http://github.com/broadinstitute/CellBender'
+description = """
+CellBender is a software package for eliminating technical artifacts from
+high-throughput single-cell RNA sequencing (scRNA-seq) data.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('matplotlib', '3.7.2'),
+ ('PyTorch', '2.1.2'),
+ ('IPython', '8.14.0'),
+ ('anndata', '0.10.5.post1'),
+ ('jupyter-contrib-nbextensions', '0.7.0'),
+ ('pyro-ppl', '1.9.0'),
+ ('loompy', '3.0.7'),
+ ('PyTables', '3.8.0'),
+ ('Qtconsole', '5.5.1'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('async-timeout', '4.0.3', {
+ 'checksums': ['4640d96be84d82d02ed59ea2b7105a0f7b33abe8703703cd0ab0bf87c427522f'],
+ }),
+ ('traitlets', '5.14.1', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['2e5a030e6eff91737c643231bfcf04a65b0132078dad75e4936700b213652e74'],
+ }),
+ ('jupyter_console', '6.6.3', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['309d33409fcc92ffdad25f0bcdf9a4a9daa61b6f341177570fdac03de5352485'],
+ }),
+ ('jupyter', '1.0.0', {
+ 'checksums': ['d9dc4b3318f310e34c82951ea5d6683f67bed7def4b259fafbfe4f1beb1d8e5f'],
+ }),
+ ('notebook', '6.5.7', {
+ 'checksums': ['04eb9011dfac634fbd4442adaf0a8c27cd26beef831fe1d19faf930c327768e4'],
+ }),
+ ('mistune', '0.8.4', {
+ 'checksums': ['59a3429db53c50b5c6bcc8a07f8848cb00d7dc8bdb431a4ab41920d201d4756e'],
+ }),
+ ('nbconvert', '6.5.4', {
+ 'checksums': ['9e3c7c6d491374cbdd5f35d268c05809357716d346f4573186bbeab32ee50bc1'],
+ }),
+ ('cellbender', version, {
+ 'checksums': ['94a46fb2b5921414ea86213cfdebca267b9ba6ba02df854cbd353980ab3aff42'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/cellbender'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = [
+ "cellbender --help",
+]
+
+sanity_pip_check = True
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/CellOracle/CellOracle-0.18.0-foss-2023a.eb b/easybuild/easyconfigs/c/CellOracle/CellOracle-0.18.0-foss-2023a.eb
new file mode 100644
index 00000000000..d6eb8f4cead
--- /dev/null
+++ b/easybuild/easyconfigs/c/CellOracle/CellOracle-0.18.0-foss-2023a.eb
@@ -0,0 +1,66 @@
+easyblock = 'PythonBundle'
+
+name = 'CellOracle'
+version = '0.18.0'
+
+homepage = 'https://github.com/morris-lab/CellOracle'
+description = """CellOracle is a Python library for in silico gene perturbation analyses using single-cell omics data
+and Gene Regulatory Network models."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('R', '4.3.2'),
+ ('SciPy-bundle', '2023.07'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('numba', '0.58.1'),
+ ('matplotlib', '3.7.2'),
+ ('Seaborn', '0.13.2'),
+ ('scikit-learn', '1.3.1'),
+ ('h5py', '3.9.0'),
+ ('velocyto', '0.17.17'),
+ ('umap-learn', '0.5.5'),
+ ('Arrow', '14.0.1'),
+ ('tqdm', '4.66.1'),
+ ('python-igraph', '0.11.4'),
+ ('IPython', '8.14.0'),
+ ('scanpy', '1.9.8'),
+ ('GOATOOLS', '1.4.5'),
+ ('genomepy', '0.16.1'),
+ ('GimmeMotifs', '0.17.2'),
+ ('anndata', '0.10.5.post1'),
+ ('python-louvain', '0.16'),
+ ('jupyter-contrib-nbextensions', '0.7.0'),
+ ('Qtconsole', '5.5.1'),
+]
+
+use_pip = True
+
+# remove louvain from requirements, since CellOracle doesn't actually use it at all
+local_preinstallopts = "sed -i '/louvain/d' requirements.txt && "
+# drop strict version requirement for matplotlib dependency
+local_preinstallopts += "sed -i 's/matplotlib.*/matplotlib/g' requirements.txt && "
+# drop strict version requirement for pandas dependency
+local_preinstallopts += "sed -i 's/pandas.*/pandas/g' requirements.txt && "
+
+
+exts_list = [
+ ('jupyter_console', '6.6.3', {
+ 'source_tmpl': '%(name)s-%(version)s-py3-none-any.whl',
+ 'checksums': ['309d33409fcc92ffdad25f0bcdf9a4a9daa61b6f341177570fdac03de5352485'],
+ }),
+ ('jupyter', '1.0.0', {
+ 'checksums': ['d9dc4b3318f310e34c82951ea5d6683f67bed7def4b259fafbfe4f1beb1d8e5f'],
+ }),
+ ('celloracle', version, {
+ 'preinstallopts': local_preinstallopts,
+ 'checksums': ['a73bbdae36289748051e073409d853489a233bda90f50ab5031131b92dda2133'],
+ }),
+]
+
+sanity_check_commands = ["python -c 'import celloracle; celloracle.check_python_requirements()'"]
+
+sanity_pip_check = True
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/CellRanger-ARC/CellRanger-ARC-2.0.2.eb b/easybuild/easyconfigs/c/CellRanger-ARC/CellRanger-ARC-2.0.2.eb
new file mode 100644
index 00000000000..fc7d6955925
--- /dev/null
+++ b/easybuild/easyconfigs/c/CellRanger-ARC/CellRanger-ARC-2.0.2.eb
@@ -0,0 +1,37 @@
+# The STAR binary included in this version has been vectorized with AVX
+# hence it is not recommended for systems that do not support it.
+
+easyblock = 'Tarball'
+
+name = 'CellRanger-ARC'
+version = '2.0.2'
+
+homepage = 'https://support.10xgenomics.com/single-cell-multiome-atac-gex/software/pipelines/latest/'
+homepage += 'what-is-cell-ranger-arc'
+description = """Cell Ranger ARC is a set of analysis pipelines that process
+ Chromium Single Cell Multiome ATAC + Gene Expression sequencing data to generate a
+ variety of analyses pertaining to gene expression, chromatin accessibility and
+ their linkage. Furthermore, since the ATAC and gene expression measurements are on
+ the very same cell, we are able to perform analyses that link chromatin
+ accessibility and gene expression."""
+
+toolchain = SYSTEM
+
+download_instructions = """
+Download manually from:
+https://www.10xgenomics.com/support/software/cell-ranger-arc/downloads
+"""
+
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['02a02457938dcf8dcb418b6c65effac06b210282d167437bfa8b2f10023dacae']
+
+keepsymlinks = True
+
+sanity_check_paths = {
+ 'files': ["bin/cellranger-arc"],
+ 'dirs': ["bin/rna", "bin/tenkit"],
+}
+
+sanity_check_commands = ['cellranger-arc -h']
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/CellRanger/CellRanger-8.0.0.eb b/easybuild/easyconfigs/c/CellRanger/CellRanger-8.0.0.eb
new file mode 100644
index 00000000000..db95a8aae20
--- /dev/null
+++ b/easybuild/easyconfigs/c/CellRanger/CellRanger-8.0.0.eb
@@ -0,0 +1,31 @@
+# The STAR binary included in this version has been vectorized with AVX
+# hence it is not recommended for systems that do not support it.
+
+easyblock = 'Tarball'
+
+name = 'CellRanger'
+version = '8.0.0'
+
+homepage = 'https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/what-is-cell-ranger'
+description = """Cell Ranger is a set of analysis pipelines that process Chromium
+ single-cell RNA-seq output to align reads, generate gene-cell matrices and perform
+ clustering and gene expression analysis."""
+
+toolchain = SYSTEM
+
+download_instructions = """
+Download manually from https://support.10xgenomics.com/single-cell-gene-expression/software/downloads/latest
+"""
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['58b077b66b2b48966b3712a1f16a61be938237addbdf611a7a924bc99211bca6']
+
+keepsymlinks = True
+
+sanity_check_paths = {
+ 'files': ['bin/cellranger'],
+ 'dirs': ['bin/rna', 'bin/tenkit'],
+}
+
+sanity_check_commands = ['cellranger testrun --id=tiny']
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/CellRanger/CellRanger-8.0.1.eb b/easybuild/easyconfigs/c/CellRanger/CellRanger-8.0.1.eb
new file mode 100644
index 00000000000..baa6b095438
--- /dev/null
+++ b/easybuild/easyconfigs/c/CellRanger/CellRanger-8.0.1.eb
@@ -0,0 +1,31 @@
+# The STAR binary included in this version has been vectorized with AVX
+# hence it is not recommended for systems that do not support it.
+
+easyblock = 'Tarball'
+
+name = 'CellRanger'
+version = '8.0.1'
+
+homepage = 'https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/what-is-cell-ranger'
+description = """Cell Ranger is a set of analysis pipelines that process Chromium
+ single-cell RNA-seq output to align reads, generate gene-cell matrices and perform
+ clustering and gene expression analysis."""
+
+toolchain = SYSTEM
+
+download_instructions = """
+Download manually from https://support.10xgenomics.com/single-cell-gene-expression/software/downloads/latest
+"""
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['ea2a35ac0f03961bab2ea485565d60cc6709a981c833a5e6c2b13a8fef641e81']
+
+keepsymlinks = True
+
+sanity_check_paths = {
+ 'files': ['bin/cellranger'],
+ 'dirs': ['bin/rna', 'bin/tenkit'],
+}
+
+sanity_check_commands = ['cellranger testrun --id=tiny']
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/CellRank/CellRank-2.0.2-foss-2022a.eb b/easybuild/easyconfigs/c/CellRank/CellRank-2.0.2-foss-2022a.eb
new file mode 100644
index 00000000000..1bd10280160
--- /dev/null
+++ b/easybuild/easyconfigs/c/CellRank/CellRank-2.0.2-foss-2022a.eb
@@ -0,0 +1,67 @@
+easyblock = 'PythonBundle'
+
+name = 'CellRank'
+version = '2.0.2'
+
+homepage = 'https://cellrank.readthedocs.io/en/stable/'
+description = """CellRank is a toolkit to uncover cellular dynamics based on
+ Markov state modeling of single-cell data. It contains two main modules:
+kernels compute cell-cell transition probabilities and estimators generate
+hypothesis based on these. """
+
+toolchain = {'name': 'foss', 'version': '2022a'}
+
+dependencies = [
+ ('Python', '3.10.4'),
+ ('petsc4py', '3.17.4'),
+ ('slepc4py', '3.17.2'),
+ ('scikit-learn', '1.1.2'),
+ ('scVelo', '0.2.5'),
+ ('scanpy', '1.9.1'), # also provides anndata
+ ('numba', '0.56.4'),
+ ('networkx', '2.8.4'),
+ ('matplotlib', '3.5.2'),
+ ('Seaborn', '0.12.1'),
+ ('wrapt', '1.15.0'),
+]
+
+use_pip = True
+
+_preinstallopts_pygam = """sed -i -e 's/numpy = .*/numpy = "^1.22.3"/g' """
+_preinstallopts_pygam += """-e 's/scipy = .*/scipy = "^1.8.1"/g' pyproject.toml && """
+
+exts_list = [
+ ('docrep', '0.3.2', {
+ 'checksums': ['ed8a17e201abd829ef8da78a0b6f4d51fb99a4cbd0554adbed3309297f964314'],
+ }),
+ ('python-utils', '3.8.1', {
+ 'checksums': ['ec3a672465efb6c673845a43afcfafaa23d2594c24324a40ec18a0c59478dc0b'],
+ }),
+ ('progressbar2', '4.3.2', {
+ 'modulename': 'progressbar',
+ 'checksums': ['c37e6e1b4e57ab43f95c3d0e8d90061bec140e4fed56b8343183db3aa1e19a52'],
+ }),
+ ('pygam', '0.9.0', {
+ 'patches': ['pygam-0.9.0_fix-poetry.patch'],
+ 'checksums': [
+ {'pygam-0.9.0.tar.gz': 'dba62285a275cdd15a6adf764f6717b3cd077502f01cf1bcee5ce7cbda221956'},
+ {'pygam-0.9.0_fix-poetry.patch': '90460a5416167f146f5bf2c55e46c23d1e7a8f864652e24665354a1b39d7e3d0'},
+ ],
+ 'preinstallopts': _preinstallopts_pygam,
+ }),
+ ('pygpcca', '1.0.4', {
+ 'checksums': ['5e3b49279abc62d25133811daeee050715f995ff02042c46e2a2034331d090d1'],
+ 'preinstallopts': "sed -i 's/jinja2==/jinja2>=/g' requirements.txt && ",
+ }),
+ ('cellrank', version, {
+ 'checksums': ['47c1d2e953ac91f572937d816142b4ac5f0c876174c60f857562de76a9f8aa61'],
+ # strip away too strict version requirements for pandas + anndata
+ 'preinstallopts': "sed -i -e 's/pandas>=1.5.0/pandas/g' -e 's/anndata>=0.9/anndata/g' pyproject.toml && ",
+ }),
+]
+
+sanity_pip_check = True
+
+sanity_check_commands = ["python -c 'import cellrank as cr'"]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/CellRank/CellRank-2.0.2-foss-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/c/CellRank/CellRank-2.0.2-foss-2023a-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..3ec16f6ab04
--- /dev/null
+++ b/easybuild/easyconfigs/c/CellRank/CellRank-2.0.2-foss-2023a-CUDA-12.1.1.eb
@@ -0,0 +1,78 @@
+easyblock = 'PythonBundle'
+
+name = 'CellRank'
+version = '2.0.2'
+versionsuffix = '-CUDA-12.1.1'
+
+homepage = 'https://cellrank.readthedocs.io/en/stable/'
+description = """CellRank is a toolkit to uncover cellular dynamics based on
+ Markov state modeling of single-cell data. It contains two main modules:
+kernels compute cell-cell transition probabilities and estimators generate
+hypothesis based on these. """
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+builddependencies = [('poetry', '1.5.1')]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('anndata', '0.10.5.post1'),
+ ('matplotlib', '3.7.2'),
+ ('networkx', '3.1'),
+ ('numba', '0.58.1'),
+ ('scanpy', '1.9.8'),
+ ('scikit-learn', '1.3.1'),
+ ('scVelo', '0.3.1'),
+ ('Seaborn', '0.13.2'),
+ ('wrapt', '1.15.0'),
+ ('PyTorch', '2.1.2', versionsuffix),
+ ('wandb', '0.16.1'),
+ ('PyTorch-Lightning', '2.2.1', versionsuffix),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('loguru', '0.7.2', {
+ 'checksums': ['e671a53522515f34fd406340ee968cb9ecafbc4b36c679da03c18fd8d0bd51ac'],
+ }),
+ ('nam', '0.0.3', {
+ 'checksums': ['48400d12b5f29fdd1671aebdf78d7f41bcac4f5c8ab7ed48770ee0c4fbc0673b'],
+ }),
+ ('python-utils', '3.8.2', {
+ 'checksums': ['c5d161e4ca58ce3f8c540f035e018850b261a41e7cb98f6ccf8e1deb7174a1f1'],
+ }),
+ ('progressbar2', '4.4.1', {
+ 'modulename': 'progressbar',
+ 'checksums': ['97d323ba03ad3d017a4d047fd0b2d3e733c5a360c07f87d269f96641c3de729f'],
+ }),
+ ('dunamai', '1.19.2', {
+ 'checksums': ['3be4049890763e19b8df1d52960dbea60b3e263eb0c96144a677ae0633734d2e'],
+ }),
+ ('poetry_dynamic_versioning', '1.2.0', {
+ 'checksums': ['1a7bbdba2530499e73dfc6ac0af19de29020ab4aaa3e507573877114e6b71ed6'],
+ }),
+ ('pygpcca', '1.0.4', {
+ 'preinstallopts': "sed -i 's/jinja2==3.0.3/jinja2>=3.0.3/' requirements.txt && ",
+ 'checksums': ['5e3b49279abc62d25133811daeee050715f995ff02042c46e2a2034331d090d1'],
+ }),
+ ('pygam', '0.9.1', {
+ 'checksums': ['a321a017bf485ed93fc6233e02621f8e7eab3d4f8971371c9ae9e079c55be01d'],
+ }),
+ ('joblib', '1.3.2', {
+ 'checksums': ['92f865e621e17784e7955080b6d042489e3b8e294949cc44c6eac304f59772b1'],
+ }),
+ ('docrep', '0.3.2', {
+ 'checksums': ['ed8a17e201abd829ef8da78a0b6f4d51fb99a4cbd0554adbed3309297f964314'],
+ }),
+ (name, version, {
+ 'modulename': 'cellrank',
+ 'preinstallopts': "sed -i 's/matplotlib>=3.5.0,<3.7.2/matplotlib>=3.5.0/' pyproject.toml && ",
+ 'source_tmpl': '%(namelower)s-%(version)s.tar.gz',
+ 'checksums': ['47c1d2e953ac91f572937d816142b4ac5f0c876174c60f857562de76a9f8aa61'],
+ }),
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/CellRank/CellRank-2.0.2-foss-2023a.eb b/easybuild/easyconfigs/c/CellRank/CellRank-2.0.2-foss-2023a.eb
new file mode 100644
index 00000000000..5b7ab31d93d
--- /dev/null
+++ b/easybuild/easyconfigs/c/CellRank/CellRank-2.0.2-foss-2023a.eb
@@ -0,0 +1,77 @@
+easyblock = 'PythonBundle'
+
+name = 'CellRank'
+version = '2.0.2'
+
+homepage = 'https://cellrank.readthedocs.io/en/stable/'
+description = """CellRank is a toolkit to uncover cellular dynamics based on
+ Markov state modeling of single-cell data. It contains two main modules:
+kernels compute cell-cell transition probabilities and estimators generate
+hypothesis based on these. """
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+builddependencies = [('poetry', '1.5.1')]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('anndata', '0.10.5.post1'),
+ ('matplotlib', '3.7.2'),
+ ('networkx', '3.1'),
+ ('numba', '0.58.1'),
+ ('scanpy', '1.9.8'),
+ ('scikit-learn', '1.3.1'),
+ ('scVelo', '0.3.1'),
+ ('Seaborn', '0.13.2'),
+ ('wrapt', '1.15.0'),
+ ('PyTorch', '2.1.2'),
+ ('wandb', '0.16.1'),
+ ('PyTorch-Lightning', '2.2.1'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('loguru', '0.7.2', {
+ 'checksums': ['e671a53522515f34fd406340ee968cb9ecafbc4b36c679da03c18fd8d0bd51ac'],
+ }),
+ ('nam', '0.0.3', {
+ 'checksums': ['48400d12b5f29fdd1671aebdf78d7f41bcac4f5c8ab7ed48770ee0c4fbc0673b'],
+ }),
+ ('python-utils', '3.8.2', {
+ 'checksums': ['c5d161e4ca58ce3f8c540f035e018850b261a41e7cb98f6ccf8e1deb7174a1f1'],
+ }),
+ ('progressbar2', '4.4.1', {
+ 'modulename': 'progressbar',
+ 'checksums': ['97d323ba03ad3d017a4d047fd0b2d3e733c5a360c07f87d269f96641c3de729f'],
+ }),
+ ('dunamai', '1.19.2', {
+ 'checksums': ['3be4049890763e19b8df1d52960dbea60b3e263eb0c96144a677ae0633734d2e'],
+ }),
+ ('poetry_dynamic_versioning', '1.2.0', {
+ 'checksums': ['1a7bbdba2530499e73dfc6ac0af19de29020ab4aaa3e507573877114e6b71ed6'],
+ }),
+ ('pygpcca', '1.0.4', {
+ 'preinstallopts': "sed -i 's/jinja2==3.0.3/jinja2>=3.0.3/' requirements.txt && ",
+ 'checksums': ['5e3b49279abc62d25133811daeee050715f995ff02042c46e2a2034331d090d1'],
+ }),
+ ('pygam', '0.9.1', {
+ 'checksums': ['a321a017bf485ed93fc6233e02621f8e7eab3d4f8971371c9ae9e079c55be01d'],
+ }),
+ ('joblib', '1.3.2', {
+ 'checksums': ['92f865e621e17784e7955080b6d042489e3b8e294949cc44c6eac304f59772b1'],
+ }),
+ ('docrep', '0.3.2', {
+ 'checksums': ['ed8a17e201abd829ef8da78a0b6f4d51fb99a4cbd0554adbed3309297f964314'],
+ }),
+ (name, version, {
+ 'modulename': 'cellrank',
+ 'preinstallopts': "sed -i 's/matplotlib>=3.5.0,<3.7.2/matplotlib>=3.5.0/' pyproject.toml && ",
+ 'source_tmpl': '%(namelower)s-%(version)s.tar.gz',
+ 'checksums': ['47c1d2e953ac91f572937d816142b4ac5f0c876174c60f857562de76a9f8aa61'],
+ }),
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/CellRank/pygam-0.9.0_fix-poetry.patch b/easybuild/easyconfigs/c/CellRank/pygam-0.9.0_fix-poetry.patch
new file mode 100644
index 00000000000..cc463d4ea64
--- /dev/null
+++ b/easybuild/easyconfigs/c/CellRank/pygam-0.9.0_fix-poetry.patch
@@ -0,0 +1,26 @@
+workaround for:
+ RuntimeError: The Poetry configuration is invalid:
+ - Additional properties are not allowed ('group' was unexpected)
+author: Kenneth Hoste (HPC-UGent)
+--- pygam-0.9.0/pyproject.toml.orig 2024-01-05 22:13:47.399107878 +0100
++++ pygam-0.9.0/pyproject.toml 2024-01-05 22:13:52.323119792 +0100
+@@ -12,19 +12,6 @@
+ scipy = "^1.10.1"
+ progressbar2 = "^4.2.0"
+
+-[tool.poetry.group.dev.dependencies]
+-pytest = "^7.2.2"
+-flake8 = "^6.0.0"
+-codecov = "^2.1.12"
+-pytest-cov = "^4.0.0"
+-mock = "^5.0.1"
+-nbsphinx = "^0.9.0"
+-sphinx-rtd-theme = "^1.2.0"
+-sphinxcontrib-napoleon = "^0.7"
+-ipython = "^8.11.0"
+-pandas = "^1.5.3"
+-black = "^23.1.0"
+-
+ [tool.black]
+ line-length = 88
+ skip-string-normalization = true
diff --git a/easybuild/easyconfigs/c/CellTypist/CellTypist-1.6.2-foss-2023a.eb b/easybuild/easyconfigs/c/CellTypist/CellTypist-1.6.2-foss-2023a.eb
new file mode 100644
index 00000000000..65be95087f7
--- /dev/null
+++ b/easybuild/easyconfigs/c/CellTypist/CellTypist-1.6.2-foss-2023a.eb
@@ -0,0 +1,38 @@
+easyblock = 'PythonBundle'
+
+name = 'CellTypist'
+version = '1.6.2'
+
+homepage = 'https://www.celltypist.org/'
+description = "A tool for semi-automatic cell type annotation"
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('scikit-learn', '1.3.1'),
+ ('openpyxl', '3.1.2'),
+ ('scanpy', '1.9.8'),
+ ('leidenalg', '0.10.2'),
+]
+
+exts_list = [
+ ('celltypist', version, {
+ 'checksums': ['a22309230c578c3738f72643492387167053f35a610625c75d66b056cf520361'],
+ }),
+]
+
+use_pip = True
+
+sanity_check_paths = {
+ 'files': ['bin/celltypist'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = ["celltypist --help"]
+
+sanity_pip_check = True
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/Cellformer/Cellformer-20240917-foss-2023a-R-4.3.2.eb b/easybuild/easyconfigs/c/Cellformer/Cellformer-20240917-foss-2023a-R-4.3.2.eb
new file mode 100644
index 00000000000..67df72c221f
--- /dev/null
+++ b/easybuild/easyconfigs/c/Cellformer/Cellformer-20240917-foss-2023a-R-4.3.2.eb
@@ -0,0 +1,186 @@
+easyblock = 'Tarball'
+
+name = 'Cellformer'
+version = '20240917'
+versionsuffix = '-R-%(rver)s'
+local_commit = '99a1165'
+
+homepage = 'https://github.com/elo-nsrb/Cellformer'
+description = '''An implementation of Cellformer from our publication: Berson et al.
+ "Whole genome deconvolution unveils Alzheimer’s resilient epigenetic signature"'''
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+source_urls = ['https://github.com/elo-nsrb/Cellformer/archive/']
+sources = [{'download_filename': '%s.tar.gz' % local_commit, 'filename': '%(name)s-%(version)s.tar.gz'}]
+checksums = ['7cbddad75a4d47dfc0a39cd660ef20fe4e3cb755631b1b96136c1c3d5226c914']
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('PyTorch', '2.1.2'),
+ ('PyTorch-bundle', '2.1.2'),
+ ('scikit-learn', '1.3.1'),
+ ('PyTorch-Lightning', '2.2.1'),
+ ('anndata', '0.10.5.post1'),
+ ('h5py', '3.9.0'),
+ ('SciPy-bundle', '2023.07'),
+ ('Seaborn', '0.13.2'),
+ ('tensorboard', '2.15.1'),
+ ('tensorboardX', '2.6.2.2'),
+ ('torchvision', '0.16.0'),
+ ('tqdm', '4.66.1'),
+ ('scanpy', '1.9.8'),
+ ('pretty-yaml', '24.7.0'),
+ ('Arrow', '14.0.1'),
+ ('R', '4.3.2'),
+ ('R-bundle-CRAN', '2023.12'),
+ ('R-bundle-Bioconductor', '3.18', versionsuffix),
+ ('ArchR', '1.0.2', versionsuffix),
+ ('typing-extensions', '4.9.0'),
+ ('einops', '0.7.0'),
+]
+
+exts_defaultclass = 'PythonPackage'
+exts_default_options = {
+ 'source_urls': [PYPI_SOURCE],
+ 'download_dep_fail': True,
+ 'use_pip': True,
+ 'sanity_pip_check': True,
+ 'installopts': '',
+}
+
+exts_list = [
+ ('asteroid_filterbanks', '0.4.0', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['4932ac8b6acc6e08fb87cbe8ece84215b5a74eee284fe83acf3540a72a02eaf5'],
+ }),
+ ('huggingface_hub', '0.25.2', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['1897caf88ce7f97fe0110603d8f66ac264e3ba6accdf30cd66cc0fed5282ad25'],
+ }),
+ ('julius', '0.2.7', {
+ 'checksums': ['3c0f5f5306d7d6016fcc95196b274cae6f07e2c9596eed314e4e7641554fbb08'],
+ }),
+ ('cached_property', '1.5.2', {
+ 'source_tmpl': SOURCE_WHL,
+ 'checksums': ['df4f613cf7ad9a588cc381aaf4a512d26265ecebd5eb9e1ba12f1319eb85a6a0'],
+ }),
+ ('mir_eval', '0.7', {
+ 'checksums': ['e1febaa5766c65a7545c2a170b241490f47a98987370b1e06742424c5debe65e'],
+ }),
+ ('pesq', '0.0.4', {
+ 'checksums': ['b724b28f73fb638522982bd68e8c3c0957e2f45210639a460233b17aa7fc890b'],
+ }),
+ ('pb_bss_eval', '0.0.2', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['a72c2fd04c9f4a4e734cf615029c3877e6e4536225eeaaae05bb0cf014b3af1b'],
+ }),
+ ('soundfile', '0.12.1', {
+ 'source_tmpl': SOURCE_WHL,
+ 'checksums': ['828a79c2e75abab5359f780c81dccd4953c45a2c4cd4f05ba3e233ddf984b882'],
+ }),
+ ('pytorch_ranger', '0.1.1', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['1e69156c9cc8439185cb8ba4725b18c91947fbe72743e25aca937da8aeb0c8ec'],
+ }),
+ ('torch_optimizer', '0.1.0', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['b7adaed38b66a5c5105a59b30a71c4ab7c9954baf0acabd969fee3dac954657d'],
+ }),
+ ('pystoi', '0.4.1', {
+ 'source_tmpl': SOURCE_WHL,
+ 'checksums': ['e277b671663d26d35a2416c9c8010a74084e6c3970354506398051a554896939'],
+ }),
+ ('torch_stoi', '0.2.3', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['6eee85e33b42fe843a2150de46000f72e7b87cbeb19ae6ab9bbd94b6ec6b3cd2'],
+ }),
+ ('torchmetrics', '1.4.3', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['76e67490231acef7f70cf36ab129df72fb2b0256dada7051001ab3b9f8699bf4'],
+ }),
+ ('asteroid', '0.7.0', {
+ # requirement too strict
+ 'preinstallopts': "sed -i 's/torchmetrics<=0.11.4/torchmetrics/g' setup.py && ",
+ 'checksums': ['0326f28c5342495cb08ba0520efd0e21e39435dfd78854837fdd5a6c9c9ca410'],
+ }),
+ ('everett', '3.1.0', {
+ 'source_tmpl': SOURCE_WHL,
+ 'checksums': ['db13891b849e45e54faea93ee79881d12458c5378f5b9b7f806eeff03ce1de3c'],
+ }),
+ ('configobj', '5.0.9', {
+ 'checksums': ['03c881bbf23aa07bccf1b837005975993c4ab4427ba57f959afdd9d1a2386848'],
+ }),
+ ('python_box', '6.1.0', {
+ 'modulename': 'box',
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['bdec0a5f5a17b01fc538d292602a077aa8c641fb121e1900dff0591791af80e8'],
+ }),
+ ('sentry_sdk', '2.15.0', {
+ 'source_tmpl': SOURCE_WHL,
+ 'checksums': ['8fb0d1a4e1a640172f31502e4503543765a1fe8a9209779134a4ac52d4677303'],
+ }),
+ ('wurlitzer', '3.1.1', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['0b2749c2cde3ef640bf314a9f94b24d929fe1ca476974719a6909dfc568c3aac'],
+ }),
+ ('comet_ml', '3.47.0', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['81062bbef2d0758c8e77d8a469824d2c20ec13b09855c78b51b078203628b8c2'],
+ }),
+ ('fast_histogram', '0.14', {
+ 'checksums': ['390973b98af22bda85c29dcf6f008ba0d626321e9bd3f5a9d7a43e5690ea69ea'],
+ }),
+ ('mpl_scatter_density', '0.7', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['721b4efeafcbc0ba4a5c1ecd8f401dc2d1aa6a372445c5b49e1da34e70a95ead'],
+ }),
+ ('tensorboard_data_server', '0.7.0', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['753d4214799b31da7b6d93837959abebbc6afa86e69eacf1e9a317a48daa31eb'],
+ }),
+ ('tensorboard_plugin_wit', '1.8.1', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['ff26bdd583d155aa951ee3b152b3d0cffae8005dc697f72b44a8e8c2a77a8cbe'],
+ }),
+ ('torchmetrics', '1.4.2', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['87b9eca51ff6f93985a0f9db509f646cb45425b016f4d2f383d8c28d40dde5b6'],
+ }),
+ ('torchmetrics', '0.11.4', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['45f892f3534e91f3ad9e2488d1b05a93b7cb76b7d037969435a41a1f24750d9a'],
+ }),
+]
+
+modextrapaths = {
+ 'PATH': '',
+ 'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages',
+}
+
+fix_python_shebang_for = [
+ 'src/*/*.py',
+ 'src/*/*/*.py',
+ 'src/*/*/*/*.py',
+]
+
+local_scripts = [
+ 'createPeakMatrix.sh',
+ 'createDataset.sh',
+ 'deconvolution.sh',
+ 'trainModel.sh',
+ 'validation.sh',
+]
+
+postinstallcmds = [
+ "sed -i 's|python |python %(installdir)s/|g' %(installdir)s/*.sh"
+] + ['chmod a+rx %%(installdir)s/%s' % script for script in local_scripts]
+
+sanity_check_paths = {
+ 'files': local_scripts,
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = ["%s --help | grep '^Usage:'" % script for script in local_scripts]
+
+moduleclass = 'bio'
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
index d0f93dfe418..feace92583f 100644
--- 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
@@ -27,10 +27,17 @@ dependencies = [
('tqdm', '4.64.0'),
('imagecodecs', '2022.9.26'),
('scikit-build', '0.15.0'),
+ ('QtPy', '2.3.0'),
]
use_pip = True
+# avoid hatchling requirement to install
+# (since installing it introduces conflicting version requirements with poetry included with Python)
+_preinstallopts_no_hatchling = """sed -i -e 's/^build-backend = .*/build-backend = "setuptools.build_meta"/g' """
+_preinstallopts_no_hatchling += """-e 's/^requires = .*/requires = ["setuptools"]/g' """
+_preinstallopts_no_hatchling += r"""-e 's/dynamic = \["version"\]/version = "%(version)s"/g' pyproject.toml && """
+
exts_list = [
('tifffile', '2023.4.12', {
'checksums': ['2fa99f9890caab919d932a0acaa9d0f5843dc2ef3594e212963932e20713badd'],
@@ -47,6 +54,10 @@ exts_list = [
('roifile', '2023.5.12', {
'checksums': ['32eeba0d9ad52cc249d6a234b737c1808a6c5d7d9baae6453709eb74222b3433'],
}),
+ ('superqt', '0.6.6', {
+ 'preinstallopts': _preinstallopts_no_hatchling,
+ 'checksums': ['792e09165c8a788ee245bdb784e018f9077fb309253354d86793cdf1d092f99f'],
+ }),
(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 && ",
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
index ccb478c890b..90f73c6aef8 100644
--- a/easybuild/easyconfigs/c/Cellpose/Cellpose-2.2.2-foss-2022a.eb
+++ b/easybuild/easyconfigs/c/Cellpose/Cellpose-2.2.2-foss-2022a.eb
@@ -25,10 +25,17 @@ dependencies = [
('tqdm', '4.64.0'),
('imagecodecs', '2022.9.26'),
('scikit-build', '0.15.0'),
+ ('QtPy', '2.3.0'),
]
use_pip = True
+# avoid hatchling requirement to install
+# (since installing it introduces conflicting version requirements with poetry included with Python)
+_preinstallopts_no_hatchling = """sed -i -e 's/^build-backend = .*/build-backend = "setuptools.build_meta"/g' """
+_preinstallopts_no_hatchling += """-e 's/^requires = .*/requires = ["setuptools"]/g' """
+_preinstallopts_no_hatchling += r"""-e 's/dynamic = \["version"\]/version = "%(version)s"/g' pyproject.toml && """
+
exts_list = [
('tifffile', '2023.4.12', {
'checksums': ['2fa99f9890caab919d932a0acaa9d0f5843dc2ef3594e212963932e20713badd'],
@@ -45,6 +52,10 @@ exts_list = [
('roifile', '2023.5.12', {
'checksums': ['32eeba0d9ad52cc249d6a234b737c1808a6c5d7d9baae6453709eb74222b3433'],
}),
+ ('superqt', '0.6.6', {
+ 'preinstallopts': _preinstallopts_no_hatchling,
+ 'checksums': ['792e09165c8a788ee245bdb784e018f9077fb309253354d86793cdf1d092f99f'],
+ }),
(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 && ",
diff --git a/easybuild/easyconfigs/c/Ceres-Solver/Ceres-Solver-2.2.0-foss-2022b.eb b/easybuild/easyconfigs/c/Ceres-Solver/Ceres-Solver-2.2.0-foss-2022b.eb
new file mode 100644
index 00000000000..e0adc9dd257
--- /dev/null
+++ b/easybuild/easyconfigs/c/Ceres-Solver/Ceres-Solver-2.2.0-foss-2022b.eb
@@ -0,0 +1,32 @@
+easyblock = 'CMakeMake'
+
+name = 'Ceres-Solver'
+version = '2.2.0'
+
+homepage = 'http://ceres-solver.org'
+description = """Ceres Solver is an open source C++ library for modeling and solving large, complicated optimization
+problems"""
+
+source_urls = ['http://ceres-solver.org/']
+sources = ['ceres-solver-%(version)s.tar.gz']
+checksums = ['48b2302a7986ece172898477c3bcd6deb8fb5cf19b3327bc49969aad4cede82d']
+
+toolchain = {'name': 'foss', 'version': '2022b'}
+
+builddependencies = [
+ ('CMake', '3.24.3'),
+ ('Eigen', '3.4.0'),
+]
+
+dependencies = [
+ ('glog', '0.6.0'),
+ ('gflags', '2.2.2'),
+ ('SuiteSparse', '5.13.0', '-METIS-5.1.0'),
+]
+
+sanity_check_paths = {
+ 'files': ['lib/libceres.a'],
+ 'dirs': ['include/ceres', 'lib/cmake/Ceres'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/c/Cgl/Cgl-0.60.8-foss-2023a.eb b/easybuild/easyconfigs/c/Cgl/Cgl-0.60.8-foss-2023a.eb
new file mode 100644
index 00000000000..e77e6950d69
--- /dev/null
+++ b/easybuild/easyconfigs/c/Cgl/Cgl-0.60.8-foss-2023a.eb
@@ -0,0 +1,50 @@
+easyblock = "ConfigureMake"
+
+name = 'Cgl'
+version = '0.60.8'
+
+homepage = "https://github.com/coin-or/Cgl"
+description = """The COIN-OR Cut Generation Library (Cgl) is a collection of cut generators that
+can be used with other COIN-OR packages that make use of cuts, such as, among
+others, the linear solver Clp or the mixed integer linear programming solvers
+Cbc or BCP. Cgl uses the abstract class OsiSolverInterface (see Osi) to use or
+communicate with a solver. It does not directly call a solver."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'pic': True, 'usempi': True}
+
+source_urls = ['https://github.com/coin-or/Cgl/archive/refs/tags/releases/']
+sources = ['%(version)s.tar.gz']
+checksums = ['1482ba38afb783d124df8d5392337f79fdd507716e9f1fb6b98fc090acd1ad96']
+
+builddependencies = [
+ ('Autotools', '20220317'),
+ ('Doxygen', '1.9.7'),
+ ('pkgconf', '1.9.5'),
+]
+
+dependencies = [
+ ('CoinUtils', '2.11.10'),
+ ('Osi', '0.108.9'),
+ ('Clp', '1.17.9'),
+]
+
+# Use CoinUtils from EB
+configopts = '--with-coinutils-lib="-lCoinUtils" '
+configopts += '--with-coinutils-datadir=$EBROOTCOINUTILS/share/coin/Data '
+# Use Clp from EB
+configopts += '--with-clp-lib="-lOsiClp -lClpSolver -lClp" '
+configopts += '--with-clp-datadir=$EBROOTCLP/share/coin/Data '
+# Use Osi from EB (also needs links to Clp due to OsiClpSolver)
+configopts += '--with-osi-lib="-lOsiClp -lClpSolver -lClp -lOsi" '
+configopts += '--with-osi-datadir=$EBROOTOSI/share/coin/Data '
+
+sanity_check_paths = {
+ 'files': ['lib/libCgl.%s' % SHLIB_EXT],
+ 'dirs': ['include/coin', 'lib/pkgconfig', 'share/coin']
+}
+
+# other coin-or projects expect instead of
+modextrapaths = {'CPATH': 'include/coin'}
+
+moduleclass = "math"
diff --git a/easybuild/easyconfigs/c/CharLS/CharLS-2.4.2-GCCcore-12.3.0.eb b/easybuild/easyconfigs/c/CharLS/CharLS-2.4.2-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..9d814bdfc23
--- /dev/null
+++ b/easybuild/easyconfigs/c/CharLS/CharLS-2.4.2-GCCcore-12.3.0.eb
@@ -0,0 +1,30 @@
+easyblock = 'CMakeMake'
+
+name = 'CharLS'
+version = '2.4.2'
+
+homepage = 'https://github.com/team-charls/charls'
+description = """CharLS is a C++ implementation of the JPEG-LS standard for lossless and near-lossless image
+compression and decompression. JPEG-LS is a low-complexity image compression standard that matches JPEG 2000
+compression ratios."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/team-charls/charls/archive/']
+sources = ['%(version)s.tar.gz']
+checksums = ['d1c2c35664976f1e43fec7764d72755e6a50a80f38eca70fcc7553cad4fe19d9']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('CMake', '3.26.3')
+]
+
+configopts = '-DBUILD_SHARED_LIBS=ON '
+
+sanity_check_paths = {
+ 'files': ['lib/libcharls.%s' % SHLIB_EXT],
+ 'dirs': ['include'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/c/CheMPS2/CheMPS2-1.8.12-foss-2023a.eb b/easybuild/easyconfigs/c/CheMPS2/CheMPS2-1.8.12-foss-2023a.eb
new file mode 100644
index 00000000000..fb8dea8412b
--- /dev/null
+++ b/easybuild/easyconfigs/c/CheMPS2/CheMPS2-1.8.12-foss-2023a.eb
@@ -0,0 +1,32 @@
+easyblock = 'CMakeMake'
+
+name = 'CheMPS2'
+version = '1.8.12'
+
+homepage = 'https://github.com/SebWouters/CheMPS2'
+description = """CheMPS2 is a scientific library which contains a spin-adapted implementation of the
+density matrix renormalization group (DMRG) for ab initio quantum chemistry."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+source_urls = ['https://github.com/SebWouters/CheMPS2/archive/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['eef1b92d74ac07fde58c043f64e8cac02b5400c209c44dcbb51641f86e0c7c83']
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+]
+
+dependencies = [
+ ('HDF5', '1.14.0')
+]
+
+pretestopts = 'export OMP_NUM_THREADS=1 && '
+runtest = 'test'
+
+sanity_check_paths = {
+ 'files': ['bin/chemps2', 'lib64/libchemps2.%s' % SHLIB_EXT, 'lib64/libchemps2.a'],
+ 'dirs': ['include/chemps2']
+}
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/c/Check/Check-0.15.2-GCCcore-12.2.0.eb b/easybuild/easyconfigs/c/Check/Check-0.15.2-GCCcore-12.2.0.eb
new file mode 100644
index 00000000000..80669a6c261
--- /dev/null
+++ b/easybuild/easyconfigs/c/Check/Check-0.15.2-GCCcore-12.2.0.eb
@@ -0,0 +1,37 @@
+easyblock = 'ConfigureMake'
+
+name = 'Check'
+version = '0.15.2'
+
+homepage = 'https://libcheck.github.io/check/'
+description = """
+Check is a unit testing framework for C. It features a simple interface for
+defining unit tests, putting little in the way of the developer. Tests are
+run in a separate address space, so both assertion failures and code errors
+that cause segmentation faults or other signals can be caught. Test results
+are reportable in the following: Subunit, TAP, XML, and a generic logging
+format."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.2.0'}
+toolchainopts = {'pic': True}
+
+github_account = 'libcheck'
+source_urls = [GITHUB_LOWER_SOURCE]
+sources = ['%(version)s.tar.gz']
+checksums = ['998d355294bb94072f40584272cf4424571c396c631620ce463f6ea97aa67d2e']
+
+builddependencies = [
+ ('binutils', '2.39'),
+ ('Autotools', '20220317'),
+ ('pkgconf', '1.9.3'),
+]
+
+preconfigopts = "autoreconf -f -i && "
+configopts = "--disable-build-docs"
+
+sanity_check_paths = {
+ 'files': ['bin/checkmk', 'lib/libcheck.a', 'lib/libcheck.%s' % SHLIB_EXT],
+ 'dirs': ['include', 'share']
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/c/Check/Check-0.15.2-GCCcore-12.3.0.eb b/easybuild/easyconfigs/c/Check/Check-0.15.2-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..c700af315af
--- /dev/null
+++ b/easybuild/easyconfigs/c/Check/Check-0.15.2-GCCcore-12.3.0.eb
@@ -0,0 +1,37 @@
+easyblock = 'ConfigureMake'
+
+name = 'Check'
+version = '0.15.2'
+
+homepage = 'https://libcheck.github.io/check/'
+description = """
+Check is a unit testing framework for C. It features a simple interface for
+defining unit tests, putting little in the way of the developer. Tests are
+run in a separate address space, so both assertion failures and code errors
+that cause segmentation faults or other signals can be caught. Test results
+are reportable in the following: Subunit, TAP, XML, and a generic logging
+format."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+toolchainopts = {'pic': True}
+
+github_account = 'libcheck'
+source_urls = [GITHUB_LOWER_SOURCE]
+sources = ['%(version)s.tar.gz']
+checksums = ['998d355294bb94072f40584272cf4424571c396c631620ce463f6ea97aa67d2e']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('Autotools', '20220317'),
+ ('pkgconf', '1.9.5'),
+]
+
+preconfigopts = "autoreconf -f -i && "
+configopts = "--disable-build-docs"
+
+sanity_check_paths = {
+ 'files': ['bin/checkmk', 'lib/libcheck.a', 'lib/libcheck.%s' % SHLIB_EXT],
+ 'dirs': ['include', 'share']
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/c/Check/Check-0.15.2-GCCcore-13.2.0.eb b/easybuild/easyconfigs/c/Check/Check-0.15.2-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..c0e770c3a3f
--- /dev/null
+++ b/easybuild/easyconfigs/c/Check/Check-0.15.2-GCCcore-13.2.0.eb
@@ -0,0 +1,37 @@
+easyblock = 'ConfigureMake'
+
+name = 'Check'
+version = '0.15.2'
+
+homepage = 'https://libcheck.github.io/check/'
+description = """
+Check is a unit testing framework for C. It features a simple interface for
+defining unit tests, putting little in the way of the developer. Tests are
+run in a separate address space, so both assertion failures and code errors
+that cause segmentation faults or other signals can be caught. Test results
+are reportable in the following: Subunit, TAP, XML, and a generic logging
+format."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+toolchainopts = {'pic': True}
+
+github_account = 'libcheck'
+source_urls = [GITHUB_LOWER_SOURCE]
+sources = ['%(version)s.tar.gz']
+checksums = ['998d355294bb94072f40584272cf4424571c396c631620ce463f6ea97aa67d2e']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('Autotools', '20220317'),
+ ('pkgconf', '2.0.3'),
+]
+
+preconfigopts = "autoreconf -f -i && "
+configopts = "--disable-build-docs"
+
+sanity_check_paths = {
+ 'files': ['bin/checkmk', 'lib/libcheck.a', 'lib/libcheck.%s' % SHLIB_EXT],
+ 'dirs': ['include', 'share']
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/c/Check/Check-0.15.2-GCCcore-13.3.0.eb b/easybuild/easyconfigs/c/Check/Check-0.15.2-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..1e0764bfb44
--- /dev/null
+++ b/easybuild/easyconfigs/c/Check/Check-0.15.2-GCCcore-13.3.0.eb
@@ -0,0 +1,37 @@
+easyblock = 'ConfigureMake'
+
+name = 'Check'
+version = '0.15.2'
+
+homepage = 'https://libcheck.github.io/check/'
+description = """
+Check is a unit testing framework for C. It features a simple interface for
+defining unit tests, putting little in the way of the developer. Tests are
+run in a separate address space, so both assertion failures and code errors
+that cause segmentation faults or other signals can be caught. Test results
+are reportable in the following: Subunit, TAP, XML, and a generic logging
+format."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+github_account = 'libcheck'
+source_urls = [GITHUB_LOWER_SOURCE]
+sources = ['%(version)s.tar.gz']
+checksums = ['998d355294bb94072f40584272cf4424571c396c631620ce463f6ea97aa67d2e']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('Autotools', '20231222'),
+ ('pkgconf', '2.2.0'),
+]
+
+preconfigopts = "autoreconf -f -i && "
+configopts = "--disable-build-docs"
+
+sanity_check_paths = {
+ 'files': ['bin/checkmk', 'lib/libcheck.a', 'lib/libcheck.%s' % SHLIB_EXT],
+ 'dirs': ['include', 'share']
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/c/CheckM2/CheckM2-1.0.2-foss-2022b.eb b/easybuild/easyconfigs/c/CheckM2/CheckM2-1.0.2-foss-2022b.eb
new file mode 100644
index 00000000000..9f834b1a38f
--- /dev/null
+++ b/easybuild/easyconfigs/c/CheckM2/CheckM2-1.0.2-foss-2022b.eb
@@ -0,0 +1,64 @@
+easyblock = 'PythonBundle'
+
+name = 'CheckM2'
+version = '1.0.2'
+
+homepage = 'https://github.com/chklovski/CheckM2/'
+description = "Assessing the quality of metagenome-derived genome bins using machine learning"
+
+toolchain = {'name': 'foss', 'version': '2022b'}
+
+builddependencies = [('CMake', '3.24.3')]
+dependencies = [
+ ('Python', '3.10.8'),
+ ('SciPy-bundle', '2023.02'),
+ ('DIAMOND', '2.1.8'),
+ ('TensorFlow', '2.13.0'),
+ ('prodigal', '2.6.3'),
+ ('h5py', '3.8.0'),
+ ('tqdm', '4.64.1'),
+]
+
+exts_list = [
+ ('scikit-learn', '0.23.2', {
+ 'modulename': 'sklearn',
+ 'checksums': ['20766f515e6cd6f954554387dfae705d93c7b544ec0e6c6a5d8e006f6f7ef480'],
+ }),
+ ('lightgbm', '3.2.1', {
+ 'checksums': ['bd98e3b501b4c24dc127f4ad93e467f42923fe3eefa99e143b5b93158f024395'],
+ }),
+ (name, version, {
+ 'patches': ['%(name)s-%(version)s_fileManager.py-database-fix.patch'],
+ 'source_urls': ['https://github.com/chklovski/CheckM2/archive/'],
+ 'sources': ['%(version)s.tar.gz'],
+ 'checksums': [
+ {'1.0.2.tar.gz': '9d3129e4d0b53acc38519a259cc1e20a215dff0cbce51cef874545ca2fff005a'},
+ {'CheckM2-1.0.2_fileManager.py-database-fix.patch':
+ '953f0eeef49ea537c0cb97c173a2488c29f09b58cd10800c60078b436a7ea2c7'},
+ ],
+ }),
+]
+
+postinstallcmds = [
+ # np.float is depreciated in newer numpy
+ 'sed -i "s/np.float/float/g" %(installdir)s/lib/python%(pyshortver)s/site-packages/checkm2/predictQuality.py',
+ # update DB_LOCATION_DEFINITION in defaultValues.py to env CHECKM2DB
+ "cd %(installdir)s/lib/python%(pyshortver)s/site-packages/checkm2 && "
+ r"sed -i 's/\(DB_LOCATION_DEFINITION\) = .*/\1 = os.environ.get(\"CHECKM2DB\", \"Not Set\")/' defaultValues.py",
+]
+
+modloadmsg = """You need download a diamond database now and setup a path to this db:
+First you need to setup $CHECKM2DB as:
+$ export CHECKM2DB="path/to/database/CheckM2_database/uniref100.KO.1.dmnd"
+Next, download the database (/CheckM2_database/uniref100.KO.1.dmnd will be created):
+$ checkm2 database --download --path path/to/database
+You can check path to the database by:
+$ checkm2 database --current
+You can either test if everything is setup properly by:
+$ checkm2 testrun
+"""
+
+use_pip = True
+sanity_pip_check = True
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/CheckM2/CheckM2-1.0.2_fileManager.py-database-fix.patch b/easybuild/easyconfigs/c/CheckM2/CheckM2-1.0.2_fileManager.py-database-fix.patch
new file mode 100644
index 00000000000..5c64bd20738
--- /dev/null
+++ b/easybuild/easyconfigs/c/CheckM2/CheckM2-1.0.2_fileManager.py-database-fix.patch
@@ -0,0 +1,126 @@
+Author: Pavel Tomanek (Inuits) + Kenneth Hoste (HPC-UGent)
+This patch changes the way a path to the diamond database is set. It used to be stored in install dir in
+diamond_path.json, but since this is unmodifiable file for user, the path is stored in env variable CHECKM2DB.
+The patch needs to change whole file - there was a problem with dos style endings (CRLF).
+diff -ruZ CheckM2-1.0.2.orig/checkm2/fileManager.py CheckM2-1.0.2/checkm2/fileManager.py
+--- CheckM2-1.0.2.orig/checkm2/fileManager.py 2023-05-19 01:56:46.000000000 +0200
++++ CheckM2-1.0.2/checkm2/fileManager.py 2024-05-30 22:13:45.230761282 +0200
+@@ -22,62 +22,34 @@
+
+ diamond_definition = self.__get_db_file()
+
+- if diamond_definition['DBPATH'] == 'Not Set':
++ if diamond_definition == 'Not Set':
+ self.DATABASE_DIR = 'Not Set'
+ else:
+- self.DATABASE_DIR = diamond_definition['DBPATH']
++ self.DATABASE_DIR = diamond_definition
+ else:
+ diamond_definition = self.__get_db_file()
+
+- if diamond_definition['DBPATH'] == 'Not Set':
++ if diamond_definition == 'Not Set':
+ self.DATABASE_DIR = 'Not Set'
+ else:
+- self.DATABASE_DIR = diamond_definition['DBPATH']
++ self.DATABASE_DIR = diamond_definition
+
+
+ def __get_db_file(self):
+- diamond_location = DefaultValues.DB_LOCATION_DEFINITION
+- try:
+- with open(diamond_location) as f:
+- diamond_definition = json.load(f)
+- return diamond_definition
+- except:
+- logging.warning('Could not open DIAMOND location definition file. Creating new file.')
+- db_ref_file = {"Type": "DIAMONDDB", "DBPATH": "Not Set"}
+- with open(diamond_location, 'w') as dl:
+- json.dump(db_ref_file, dl)
+- try:
+- with open(diamond_location) as f:
+- diamond_definition = json.load(f)
+- return diamond_definition
+- except Exception as e:
+- logging.error('Could not create new file: {}'.format(e))
+- sys.exit(1)
+-
++ return DefaultValues.DB_LOCATION_DEFINITION
+
+ def get_DB_location(self):
+ if self.DATABASE_DIR == 'Not Set':
+- logging.error('DIAMOND database not found. Please download database using ')
++ logging.error(
++ 'DIAMOND database not found. Please download database using $ checkm2 database --download --path /path/to/database '
++ + ',but FIRST set CHECKM2DB to PATH by $ export CHECKM2DB=\"/path/to/database/CheckM2_database/uniref100.KO.1.dmnd\"'
++ )
+ sys.exit(1)
+ else:
+ return self.DATABASE_DIR
+
+ def set_DB_location(self, provided_location):
+- logging.info('Checking provided DIAMOND database location')
+- if versionControl.VersionControl().checksum_version_validate_DIAMOND(provided_location):
+- #great - let's set it
+- diamond_definition = self.__get_db_file()
+-
+- diamond_definition['DBPATH'] = os.path.abspath(provided_location)
+- with open(DefaultValues.DB_LOCATION_DEFINITION, 'w') as dd:
+- json.dump(diamond_definition, dd)
+-
+- logging.info("Database check successful! Database path successfully added.")
+-
+- else:
+- logging.error("Checksum in CheckM2 reference doesn't match provided database. Please check your files.")
+- sys.exit(1)
+-
++ logging.info("Set path to database location by: $ export CHECKM2DB=path/to/database/CheckM2_database/uniref100.KO.1.dmnd")
+
+ def download_database(self, download_location):
+
+@@ -87,32 +59,11 @@
+
+ diamond_location = DefaultValues.DB_LOCATION_DEFINITION
+
+- try:
+- with open(diamond_location) as f:
+- diamond_definition = json.load(f)
+- except:
+- logging.warning('Could not open DIAMOND location definition file. Creating new file.')
+- x = {"Type": "DIAMONDDB", "DBPATH": "Not Set"}
+- with open(diamond_location, 'w') as dl:
+- json.dump(x, dl)
+- try:
+- with open(diamond_location) as f:
+- diamond_definition = json.load(f)
+- except Exception as e:
+- logging.error('Could not create new file: {}'.format(e))
+- sys.exit(1)
+- if diamond_definition['DBPATH'] != 'Not Set':
+- logging.warning('DIAMOND database found at {}. Overwriting previous database.'.format(diamond_definition['DBPATH']))
+-
+-
+ make_sure_path_exists(os.path.join(download_location, 'CheckM2_database'))
+
+ backpack_downloader = zenodo_backpack.zenodo_backpack_downloader('INFO')
+ highest_compatible_version, DOI = versionControl.VersionControl().return_highest_compatible_DB_version()
+
+-
+- diamond_loc_final = os.path.join(download_location, 'CheckM2_database', 'uniref100.KO.1.dmnd')
+-
+ if download_location is not None:
+ #check we have writing permission
+ try:
+@@ -126,12 +77,6 @@
+
+ backpack_downloader.download_and_extract(download_location, DOI, progress_bar=True, no_check_version=False)
+
+- diamond_definition['DBPATH'] = os.path.abspath(diamond_loc_final)
+-
+- with open(diamond_location, 'w') as dd:
+- json.dump(diamond_definition, dd)
+-
+-
+ else:
+ logging.info('Failed to determine download location')
+ sys.exit(1)
diff --git a/easybuild/easyconfigs/c/Circlator/Circlator-1.5.5-foss-2023a.eb b/easybuild/easyconfigs/c/Circlator/Circlator-1.5.5-foss-2023a.eb
new file mode 100644
index 00000000000..b36cc096ba7
--- /dev/null
+++ b/easybuild/easyconfigs/c/Circlator/Circlator-1.5.5-foss-2023a.eb
@@ -0,0 +1,45 @@
+easyblock = 'PythonBundle'
+
+name = 'Circlator'
+version = '1.5.5'
+
+homepage = 'https://github.com/sanger-pathogens/circlator/'
+description = """A tool to circularize genome assemblies.s"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('openpyxl', '3.1.2'),
+ ('Fastaq', '3.17.0'),
+ ('Pysam', '0.22.0'),
+ ('MUMmer', '4.0.0rc1'),
+ ('BWA', '0.7.17'),
+ ('prodigal', '2.6.3'),
+ ('SPAdes', '3.15.4'),
+ ('AMOS', '3.1.0'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('pymummer', '0.11.0', {
+ 'checksums': ['199b8391348ff83760e9f63fdcee6208f8aa29da6506ee1654f1933e60665259'],
+ }),
+ (name, version, {
+ 'sources': ['circlator-%(version)s.tar.gz'],
+ 'checksums': ['d3bfa12c4f9d4489331c42331a7765719af0c7a2aca7aa860dc996e27edd671a'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/circlator'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = [
+ "circlator progcheck",
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/Clang-Python-bindings/Clang-Python-bindings-16.0.6-GCCcore-12.3.0.eb b/easybuild/easyconfigs/c/Clang-Python-bindings/Clang-Python-bindings-16.0.6-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..bc314d248f8
--- /dev/null
+++ b/easybuild/easyconfigs/c/Clang-Python-bindings/Clang-Python-bindings-16.0.6-GCCcore-12.3.0.eb
@@ -0,0 +1,31 @@
+easyblock = 'Tarball'
+
+name = 'Clang-Python-bindings'
+version = '16.0.6'
+
+homepage = 'https://clang.llvm.org'
+description = """Python bindings for libclang"""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = ["https://github.com/llvm/llvm-project/releases/download/llvmorg-%(version)s/"]
+sources = ['clang-%(version)s.src.tar.xz']
+checksums = ['1186b6e6eefeadd09912ed73b3729e85b59f043724bb2818a95a2ec024571840']
+
+dependencies = [
+ ('Clang', version),
+ ('Python', '3.11.3')
+]
+
+start_dir = 'bindings/python'
+
+sanity_check_paths = {
+ 'files': ['clang/cindex.py'],
+ 'dirs': ['clang']
+}
+
+sanity_check_commands = ["python -c 'import clang'"]
+
+modextrapaths = {'PYTHONPATH': ''}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/c/Clang/Clang-17.0.0_20230515-GCCcore-12.3.0-CUDA-12.1.1.eb b/easybuild/easyconfigs/c/Clang/Clang-17.0.0_20230515-GCCcore-12.3.0-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..947a6afdad5
--- /dev/null
+++ b/easybuild/easyconfigs/c/Clang/Clang-17.0.0_20230515-GCCcore-12.3.0-CUDA-12.1.1.eb
@@ -0,0 +1,61 @@
+##
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+#
+# Copyright:: Copyright 2013-2015 Dmitri Gribenko, Ward Poelmans
+# Authors:: Dmitri Gribenko
+# Authors:: Ward Poelmans
+# License:: GPLv2 or later, MIT, three-clause BSD.
+# $Id$
+##
+
+name = 'Clang'
+version = '17.0.0_20230515'
+versionsuffix = '-CUDA-%(cudaver)s'
+_commit = 'c5dede880d17'
+
+homepage = 'https://clang.llvm.org/'
+description = """C, C++, Objective-C compiler, based on LLVM. Does not
+ include C++ standard library -- use libstdc++ from GCC."""
+
+# Clang also depends on libstdc++ during runtime, but this dependency is
+# already specified as the toolchain.
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+sources = [{
+ 'source_urls': ["https://github.com/llvm/llvm-project/archive"],
+ 'download_filename': '%s.tar.gz' % _commit,
+ 'filename': 'llvm-project-%s.tar.gz' % version,
+}]
+checksums = ['6f371f9ac208b8e9dc57fc117b1a9c8565d7ea2bbb49a2768cb9c3c0fee0291d']
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+ ('Perl', '5.36.1'),
+ # Including Python bindings would require this as a runtime dep
+ ('Python', '3.11.3'),
+]
+dependencies = [
+ # since Clang is a compiler, binutils is a runtime dependency too
+ ('binutils', '2.40'),
+ ('hwloc', '2.9.1'),
+ ('libxml2', '2.11.4'),
+ ('ncurses', '6.4'),
+ ('GMP', '6.2.1'),
+ ('Z3', '4.12.2'),
+ ('CUDA', '12.1.1', '', SYSTEM),
+]
+
+# enabling RTTI makes the flang compiler need to link to libc++ so instead of
+# flang-new -flang-experimental-exec -fopenmp hello_openmp.f90
+# you would need
+# flang-new -flang-experimental-exec -fopenmp hello_openmp.f90 -l c++
+enable_rtti = False
+
+assertions = True
+python_bindings = False
+skip_all_tests = True
+
+llvm_runtimes = ['libunwind', 'libcxx', 'libcxxabi']
+llvm_projects = ['polly', 'lld', 'lldb', 'clang-tools-extra', 'flang']
+
+moduleclass = 'compiler'
diff --git a/easybuild/easyconfigs/c/Clang/Clang-17.0.6-GCCcore-13.2.0.eb b/easybuild/easyconfigs/c/Clang/Clang-17.0.6-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..1cb99d62d99
--- /dev/null
+++ b/easybuild/easyconfigs/c/Clang/Clang-17.0.6-GCCcore-13.2.0.eb
@@ -0,0 +1,55 @@
+##
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+#
+# Copyright:: Copyright 2013-2015 Dmitri Gribenko, Ward Poelmans
+# Authors:: Dmitri Gribenko
+# Authors:: Ward Poelmans
+# License:: GPLv2 or later, MIT, three-clause BSD.
+# $Id$
+##
+
+name = 'Clang'
+version = '17.0.6'
+
+homepage = 'https://clang.llvm.org/'
+description = """C, C++, Objective-C compiler, based on LLVM. Does not
+ include C++ standard library -- use libstdc++ from GCC."""
+
+# Clang also depends on libstdc++ during runtime, but this dependency is
+# already specified as the toolchain.
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+source_urls = ["https://github.com/llvm/llvm-project/releases/download/llvmorg-%(version)s"]
+sources = [
+ 'llvm-project-%(version)s.src.tar.xz',
+]
+checksums = ['58a8818c60e6627064f312dbf46c02d9949956558340938b71cf731ad8bc0813']
+
+builddependencies = [
+ ('CMake', '3.27.6'),
+ ('Perl', '5.38.0'),
+ # Including Python bindings would require this as a runtime dep
+ # and SWIG as an additional build dep
+ ('Python', '3.11.5'),
+]
+dependencies = [
+ # since Clang is a compiler, binutils is a runtime dependency too
+ ('binutils', '2.40'),
+ ('hwloc', '2.9.2'),
+ ('libxml2', '2.11.5'),
+ ('ncurses', '6.4'),
+ ('GMP', '6.3.0'),
+ ('Z3', '4.13.0'),
+]
+
+# If True, Flang does not currently support building with LLVM exceptions enabled.
+enable_rtti = False
+
+assertions = True
+python_bindings = False
+skip_all_tests = True
+
+llvm_runtimes = ['libunwind', 'libcxx', 'libcxxabi']
+llvm_projects = ['polly', 'lld', 'lldb', 'clang-tools-extra', 'flang']
+
+moduleclass = 'compiler'
diff --git a/easybuild/easyconfigs/c/Clang/Clang-18.1.8-GCCcore-13.3.0.eb b/easybuild/easyconfigs/c/Clang/Clang-18.1.8-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..8b096078c89
--- /dev/null
+++ b/easybuild/easyconfigs/c/Clang/Clang-18.1.8-GCCcore-13.3.0.eb
@@ -0,0 +1,55 @@
+##
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+#
+# Copyright:: Copyright 2013-2015 Dmitri Gribenko, Ward Poelmans
+# Authors:: Dmitri Gribenko
+# Authors:: Ward Poelmans
+# License:: GPLv2 or later, MIT, three-clause BSD.
+# $Id$
+##
+
+name = 'Clang'
+version = '18.1.8'
+
+homepage = 'https://clang.llvm.org/'
+description = """C, C++, Objective-C compiler, based on LLVM. Does not
+ include C++ standard library -- use libstdc++ from GCC."""
+
+# Clang also depends on libstdc++ during runtime, but this dependency is
+# already specified as the toolchain.
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ["https://github.com/llvm/llvm-project/releases/download/llvmorg-%(version)s"]
+sources = [
+ 'llvm-project-%(version)s.src.tar.xz',
+]
+checksums = ['0b58557a6d32ceee97c8d533a59b9212d87e0fc4d2833924eb6c611247db2f2a']
+
+builddependencies = [
+ ('CMake', '3.29.3'),
+ ('Perl', '5.38.2'),
+ # Including Python bindings would require this as a runtime dep
+ # and SWIG as an additional build dep
+ ('Python', '3.12.3'),
+]
+dependencies = [
+ # since Clang is a compiler, binutils is a runtime dependency too
+ ('binutils', '2.42'),
+ ('hwloc', '2.10.0'),
+ ('libxml2', '2.12.7'),
+ ('ncurses', '6.5'),
+ ('GMP', '6.3.0'),
+ ('Z3', '4.13.0'),
+]
+
+# If True, Flang does not currently support building with LLVM exceptions enabled.
+enable_rtti = False
+
+assertions = True
+python_bindings = False
+skip_all_tests = True
+
+llvm_runtimes = ['libunwind', 'libcxx', 'libcxxabi']
+llvm_projects = ['polly', 'lld', 'lldb', 'clang-tools-extra', 'flang']
+
+moduleclass = 'compiler'
diff --git a/easybuild/easyconfigs/c/Clang/Clang-9.0.1-GCC-8.3.0-CUDA-10.1.243.eb b/easybuild/easyconfigs/c/Clang/Clang-9.0.1-GCC-8.3.0-CUDA-10.1.243.eb
index ef88ee09de0..0d34b0ee01f 100644
--- a/easybuild/easyconfigs/c/Clang/Clang-9.0.1-GCC-8.3.0-CUDA-10.1.243.eb
+++ b/easybuild/easyconfigs/c/Clang/Clang-9.0.1-GCC-8.3.0-CUDA-10.1.243.eb
@@ -36,7 +36,7 @@ sources = [
'libcxx-%(version)s.src.tar.xz',
'libcxxabi-%(version)s.src.tar.xz',
]
-patches = ['libcxx-%(version)s-ppc64le.patch']
+patches = [('libcxx-%(version)s-ppc64le.patch', '../')]
checksums = [
'00a1ee1f389f81e9979f3a640a01c431b3021de0d42278f6508391a2f0b81c9a', # llvm-9.0.1.src.tar.xz
'5778512b2e065c204010f88777d44b95250671103e434f9dc7363ab2e3804253', # clang-9.0.1.src.tar.xz
@@ -46,7 +46,7 @@ checksums = [
'86262bad3e2fd784ba8c5e2158d7aa36f12b85f2515e95bc81d65d75bb9b0c82', # lld-9.0.1.src.tar.xz
'0981ff11b862f4f179a13576ab0a2f5530f46bd3b6b4a90f568ccc6a62914b34', # libcxx-9.0.1.src.tar.xz
'e8f978aa4cfae2d7a0b4d89275637078557cca74b35c31b7283d4786948a8aac', # libcxxabi-9.0.1.src.tar.xz
- '6a39230b9e2b2c61fb5f67ac752d256437ccc56a6a517d7b6d53417d198fdb1f', # libcxx-9.0.1-ppc64le.patch
+ '01d2a16fe69854c0126a8adb4762a455cc6bf1f70003cb8b685e446a66a9aa51', # libcxx-9.0.1-ppc64le.patch
]
dependencies = [
diff --git a/easybuild/easyconfigs/c/Clang/Clang-9.0.1-GCCcore-8.3.0.eb b/easybuild/easyconfigs/c/Clang/Clang-9.0.1-GCCcore-8.3.0.eb
index f9e2e51d164..207b6260193 100644
--- a/easybuild/easyconfigs/c/Clang/Clang-9.0.1-GCCcore-8.3.0.eb
+++ b/easybuild/easyconfigs/c/Clang/Clang-9.0.1-GCCcore-8.3.0.eb
@@ -33,7 +33,7 @@ sources = [
'libcxx-%(version)s.src.tar.xz',
'libcxxabi-%(version)s.src.tar.xz',
]
-patches = ['libcxx-%(version)s-ppc64le.patch']
+patches = [('libcxx-%(version)s-ppc64le.patch', '../')]
checksums = [
'00a1ee1f389f81e9979f3a640a01c431b3021de0d42278f6508391a2f0b81c9a', # llvm-9.0.1.src.tar.xz
'5778512b2e065c204010f88777d44b95250671103e434f9dc7363ab2e3804253', # clang-9.0.1.src.tar.xz
@@ -43,7 +43,7 @@ checksums = [
'86262bad3e2fd784ba8c5e2158d7aa36f12b85f2515e95bc81d65d75bb9b0c82', # lld-9.0.1.src.tar.xz
'0981ff11b862f4f179a13576ab0a2f5530f46bd3b6b4a90f568ccc6a62914b34', # libcxx-9.0.1.src.tar.xz
'e8f978aa4cfae2d7a0b4d89275637078557cca74b35c31b7283d4786948a8aac', # libcxxabi-9.0.1.src.tar.xz
- '6a39230b9e2b2c61fb5f67ac752d256437ccc56a6a517d7b6d53417d198fdb1f', # libcxx-9.0.1-ppc64le.patch
+ '01d2a16fe69854c0126a8adb4762a455cc6bf1f70003cb8b685e446a66a9aa51', # libcxx-9.0.1-ppc64le.patch
]
dependencies = [
diff --git a/easybuild/easyconfigs/c/Clang/Clang-9.0.1-GCCcore-9.3.0.eb b/easybuild/easyconfigs/c/Clang/Clang-9.0.1-GCCcore-9.3.0.eb
index 434dfe35415..097cc871651 100644
--- a/easybuild/easyconfigs/c/Clang/Clang-9.0.1-GCCcore-9.3.0.eb
+++ b/easybuild/easyconfigs/c/Clang/Clang-9.0.1-GCCcore-9.3.0.eb
@@ -33,7 +33,7 @@ sources = [
'libcxx-%(version)s.src.tar.xz',
'libcxxabi-%(version)s.src.tar.xz',
]
-patches = ['libcxx-%(version)s-ppc64le.patch']
+patches = [('libcxx-%(version)s-ppc64le.patch', '../')]
checksums = [
'00a1ee1f389f81e9979f3a640a01c431b3021de0d42278f6508391a2f0b81c9a', # llvm-9.0.1.src.tar.xz
'5778512b2e065c204010f88777d44b95250671103e434f9dc7363ab2e3804253', # clang-9.0.1.src.tar.xz
@@ -43,7 +43,7 @@ checksums = [
'86262bad3e2fd784ba8c5e2158d7aa36f12b85f2515e95bc81d65d75bb9b0c82', # lld-9.0.1.src.tar.xz
'0981ff11b862f4f179a13576ab0a2f5530f46bd3b6b4a90f568ccc6a62914b34', # libcxx-9.0.1.src.tar.xz
'e8f978aa4cfae2d7a0b4d89275637078557cca74b35c31b7283d4786948a8aac', # libcxxabi-9.0.1.src.tar.xz
- '6a39230b9e2b2c61fb5f67ac752d256437ccc56a6a517d7b6d53417d198fdb1f', # libcxx-9.0.1-ppc64le.patch
+ '01d2a16fe69854c0126a8adb4762a455cc6bf1f70003cb8b685e446a66a9aa51', # libcxx-9.0.1-ppc64le.patch
]
dependencies = [
diff --git a/easybuild/easyconfigs/c/Clang/libcxx-9.0.1-ppc64le.patch b/easybuild/easyconfigs/c/Clang/libcxx-9.0.1-ppc64le.patch
index b827d9c5ce9..cbf55ee91be 100644
--- a/easybuild/easyconfigs/c/Clang/libcxx-9.0.1-ppc64le.patch
+++ b/easybuild/easyconfigs/c/Clang/libcxx-9.0.1-ppc64le.patch
@@ -2,8 +2,8 @@ Reverse the if def order. Patch from https://bugs.llvm.org/show_bug.cgi?id=39696
Prepared for EasyBuild by Simon Branford, University of Birmingham
diff --git a/libcxx/include/thread b/libcxx/include/thread
index 02da703..d1677a1 100644
---- a/projects/libcxx/include/thread
-+++ b/projects/libcxx/include/thread
+--- a/libcxx-9.0.1.src/include/thread
++++ b/libcxx-9.0.1.src/include/thread
@@ -368,9 +368,9 @@ sleep_for(const chrono::duration<_Rep, _Period>& __d)
{
#if defined(_LIBCPP_COMPILER_GCC) && (__powerpc__ || __POWERPC__)
diff --git a/easybuild/easyconfigs/c/Clarabel.rs/Clarabel.rs-0.7.1-gfbf-2023a.eb b/easybuild/easyconfigs/c/Clarabel.rs/Clarabel.rs-0.7.1-gfbf-2023a.eb
new file mode 100644
index 00000000000..32eea7ff16f
--- /dev/null
+++ b/easybuild/easyconfigs/c/Clarabel.rs/Clarabel.rs-0.7.1-gfbf-2023a.eb
@@ -0,0 +1,383 @@
+easyblock = 'CargoPythonPackage'
+
+name = 'Clarabel.rs'
+version = '0.7.1'
+
+homepage = "https://github.com/oxfordcontrol/Clarabel.rs"
+description = "Interior-point solver for convex conic optimisation problems in Rust."
+
+toolchain = {'name': 'gfbf', 'version': '2023a'}
+
+builddependencies = [
+ ('maturin', '1.4.0', '-Rust-1.75.0'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+]
+
+crates = [
+ ('clarabel', version),
+ ('accelerate-src', '0.3.2'),
+ ('addr2line', '0.19.0'),
+ ('adler', '1.0.2'),
+ ('amd', '0.2.2'),
+ ('anyhow', '1.0.70'),
+ ('autocfg', '1.1.0'),
+ ('backtrace', '0.3.67'),
+ ('base64', '0.13.1'),
+ ('base64', '0.21.0'),
+ ('bitflags', '1.3.2'),
+ ('blas', '0.22.0'),
+ ('blas-src', '0.9.0'),
+ ('blas-sys', '0.7.1'),
+ ('cc', '1.0.79'),
+ ('cfg-if', '0.1.10'),
+ ('cfg-if', '1.0.0'),
+ ('cmake', '0.1.50'),
+ ('core-foundation', '0.9.3'),
+ ('core-foundation-sys', '0.8.4'),
+ ('crc32fast', '1.3.2'),
+ ('curl', '0.4.44'),
+ ('curl-sys', '0.4.61+curl-8.0.1'),
+ ('darling', '0.14.1'),
+ ('darling_core', '0.14.1'),
+ ('darling_macro', '0.14.1'),
+ ('derive_builder', '0.11.2'),
+ ('derive_builder_core', '0.11.2'),
+ ('derive_builder_macro', '0.11.2'),
+ ('dirs', '2.0.2'),
+ ('dirs', '3.0.2'),
+ ('dirs-sys', '0.3.7'),
+ ('either', '1.8.1'),
+ ('enum_dispatch', '0.3.11'),
+ ('errno', '0.3.1'),
+ ('errno-dragonfly', '0.1.2'),
+ ('failure', '0.1.8'),
+ ('failure_derive', '0.1.8'),
+ ('fastrand', '1.9.0'),
+ ('filetime', '0.2.21'),
+ ('flate2', '1.0.25'),
+ ('fnv', '1.0.7'),
+ ('foreign-types', '0.3.2'),
+ ('foreign-types-shared', '0.1.1'),
+ ('form_urlencoded', '1.1.0'),
+ ('getrandom', '0.2.9'),
+ ('gimli', '0.27.2'),
+ ('glob', '0.3.1'),
+ ('heck', '0.4.1'),
+ ('hermit-abi', '0.3.1'),
+ ('ident_case', '1.0.1'),
+ ('idna', '0.3.0'),
+ ('indoc', '2.0.4'),
+ ('instant', '0.1.12'),
+ ('intel-mkl-src', '0.5.0'),
+ ('intel-mkl-tool', '0.1.0'),
+ ('io-lifetimes', '1.0.10'),
+ ('itertools', '0.9.0'),
+ ('itertools', '0.11.0'),
+ ('itoa', '1.0.3'),
+ ('jobserver', '0.1.26'),
+ ('lapack', '0.19.0'),
+ ('lapack-src', '0.9.0'),
+ ('lapack-sys', '0.14.0'),
+ ('lazy_static', '1.4.0'),
+ ('libc', '0.2.149'),
+ ('libz-sys', '1.1.8'),
+ ('linux-raw-sys', '0.3.4'),
+ ('lock_api', '0.4.7'),
+ ('log', '0.4.17'),
+ ('memchr', '2.5.0'),
+ ('memoffset', '0.9.0'),
+ ('miniz_oxide', '0.6.2'),
+ ('native-tls', '0.2.11'),
+ ('netlib-src', '0.8.0'),
+ ('num-complex', '0.4.5'),
+ ('num-derive', '0.2.5'),
+ ('num-traits', '0.2.18'),
+ ('object', '0.30.3'),
+ ('once_cell', '1.18.0'),
+ ('openblas-build', '0.10.8'),
+ ('openblas-src', '0.10.8'),
+ ('openssl', '0.10.52'),
+ ('openssl-macros', '0.1.0'),
+ ('openssl-probe', '0.1.5'),
+ ('openssl-sys', '0.9.87'),
+ ('parking_lot', '0.12.1'),
+ ('parking_lot_core', '0.9.3'),
+ ('percent-encoding', '2.2.0'),
+ ('pkg-config', '0.3.26'),
+ ('portable-atomic', '1.6.0'),
+ ('proc-macro2', '0.4.30'),
+ ('proc-macro2', '1.0.78'),
+ ('pyo3', '0.20.3'),
+ ('pyo3-build-config', '0.20.3'),
+ ('pyo3-ffi', '0.20.3'),
+ ('pyo3-macros', '0.20.3'),
+ ('pyo3-macros-backend', '0.20.3'),
+ ('quote', '0.6.13'),
+ ('quote', '1.0.35'),
+ ('r-src', '0.1.0'),
+ ('redox_syscall', '0.2.16'),
+ ('redox_syscall', '0.3.5'),
+ ('redox_users', '0.4.3'),
+ ('rustc-demangle', '0.1.23'),
+ ('rustix', '0.37.7'),
+ ('rustls-native-certs', '0.6.2'),
+ ('rustls-pemfile', '1.0.2'),
+ ('ryu', '1.0.11'),
+ ('same-file', '1.0.6'),
+ ('schannel', '0.1.21'),
+ ('scopeguard', '1.1.0'),
+ ('security-framework', '2.8.2'),
+ ('security-framework-sys', '2.8.0'),
+ ('serde', '1.0.144'),
+ ('serde_derive', '1.0.144'),
+ ('serde_json', '1.0.85'),
+ ('smallvec', '1.9.0'),
+ ('socket2', '0.4.9'),
+ ('strsim', '0.10.0'),
+ ('syn', '0.15.44'),
+ ('syn', '1.0.109'),
+ ('syn', '2.0.52'),
+ ('synstructure', '0.12.6'),
+ ('tar', '0.4.38'),
+ ('target-lexicon', '0.12.4'),
+ ('tempfile', '3.5.0'),
+ ('thiserror', '1.0.39'),
+ ('thiserror-impl', '1.0.39'),
+ ('tinyvec', '1.6.0'),
+ ('tinyvec_macros', '0.1.1'),
+ ('unicode-bidi', '0.3.13'),
+ ('unicode-ident', '1.0.2'),
+ ('unicode-normalization', '0.1.22'),
+ ('unicode-xid', '0.1.0'),
+ ('unicode-xid', '0.2.4'),
+ ('unindent', '0.2.3'),
+ ('ureq', '2.6.2'),
+ ('url', '2.3.1'),
+ ('vcpkg', '0.2.15'),
+ ('walkdir', '2.3.3'),
+ ('wasi', '0.11.0+wasi-snapshot-preview1'),
+ ('winapi', '0.3.9'),
+ ('winapi-i686-pc-windows-gnu', '0.4.0'),
+ ('winapi-util', '0.1.5'),
+ ('winapi-x86_64-pc-windows-gnu', '0.4.0'),
+ ('windows-sys', '0.36.1'),
+ ('windows-sys', '0.42.0'),
+ ('windows-sys', '0.45.0'),
+ ('windows-sys', '0.48.0'),
+ ('windows-targets', '0.42.2'),
+ ('windows-targets', '0.48.0'),
+ ('windows_aarch64_gnullvm', '0.42.2'),
+ ('windows_aarch64_gnullvm', '0.48.0'),
+ ('windows_aarch64_msvc', '0.36.1'),
+ ('windows_aarch64_msvc', '0.42.2'),
+ ('windows_aarch64_msvc', '0.48.0'),
+ ('windows_i686_gnu', '0.36.1'),
+ ('windows_i686_gnu', '0.42.2'),
+ ('windows_i686_gnu', '0.48.0'),
+ ('windows_i686_msvc', '0.36.1'),
+ ('windows_i686_msvc', '0.42.2'),
+ ('windows_i686_msvc', '0.48.0'),
+ ('windows_x86_64_gnu', '0.36.1'),
+ ('windows_x86_64_gnu', '0.42.2'),
+ ('windows_x86_64_gnu', '0.48.0'),
+ ('windows_x86_64_gnullvm', '0.42.2'),
+ ('windows_x86_64_gnullvm', '0.48.0'),
+ ('windows_x86_64_msvc', '0.36.1'),
+ ('windows_x86_64_msvc', '0.42.2'),
+ ('windows_x86_64_msvc', '0.48.0'),
+ ('xattr', '0.2.3'),
+ ('zstd', '0.5.4+zstd.1.4.7'),
+ ('zstd-safe', '2.0.6+zstd.1.4.7'),
+ ('zstd-sys', '1.4.18+zstd.1.4.7'),
+]
+
+sources = []
+checksums = [
+ {'clarabel-0.7.1.tar.gz': 'e4c0e3ebbd6441dcc7f879e89e727fe90b4e4fcecf6295f283a0d02077fb8365'},
+ {'accelerate-src-0.3.2.tar.gz': '415ed64958754dbe991900f3940677e6a7eefb4d7367afd70d642677b0c7d19d'},
+ {'addr2line-0.19.0.tar.gz': 'a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97'},
+ {'adler-1.0.2.tar.gz': 'f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe'},
+ {'amd-0.2.2.tar.gz': 'a679e001575697a3bd195813feb57a4718ecc08dc194944015cbc5f6213c2b96'},
+ {'anyhow-1.0.70.tar.gz': '7de8ce5e0f9f8d88245311066a578d72b7af3e7088f32783804676302df237e4'},
+ {'autocfg-1.1.0.tar.gz': 'd468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa'},
+ {'backtrace-0.3.67.tar.gz': '233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca'},
+ {'base64-0.13.1.tar.gz': '9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8'},
+ {'base64-0.21.0.tar.gz': 'a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a'},
+ {'bitflags-1.3.2.tar.gz': 'bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a'},
+ {'blas-0.22.0.tar.gz': 'ae980f75c3215bfe8203c349b28149b0f4130a262e072913ccb55f877cd239dc'},
+ {'blas-src-0.9.0.tar.gz': 'aa443ee19b4cde6cdbd49043eb8964f9dd367b6d98d67f04395958ebfa28f39d'},
+ {'blas-sys-0.7.1.tar.gz': '13b1b279ceb25d7c4faaea95a5f7addbe7d8c34f9462044bd8e630cebcfc2440'},
+ {'cc-1.0.79.tar.gz': '50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f'},
+ {'cfg-if-0.1.10.tar.gz': '4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822'},
+ {'cfg-if-1.0.0.tar.gz': 'baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd'},
+ {'cmake-0.1.50.tar.gz': 'a31c789563b815f77f4250caee12365734369f942439b7defd71e18a48197130'},
+ {'core-foundation-0.9.3.tar.gz': '194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146'},
+ {'core-foundation-sys-0.8.4.tar.gz': 'e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa'},
+ {'crc32fast-1.3.2.tar.gz': 'b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d'},
+ {'curl-0.4.44.tar.gz': '509bd11746c7ac09ebd19f0b17782eae80aadee26237658a6b4808afb5c11a22'},
+ {'curl-sys-0.4.61+curl-8.0.1.tar.gz': '14d05c10f541ae6f3bc5b3d923c20001f47db7d5f0b2bc6ad16490133842db79'},
+ {'darling-0.14.1.tar.gz': '4529658bdda7fd6769b8614be250cdcfc3aeb0ee72fe66f9e41e5e5eb73eac02'},
+ {'darling_core-0.14.1.tar.gz': '649c91bc01e8b1eac09fb91e8dbc7d517684ca6be8ebc75bb9cafc894f9fdb6f'},
+ {'darling_macro-0.14.1.tar.gz': 'ddfc69c5bfcbd2fc09a0f38451d2daf0e372e367986a83906d1b0dbc88134fb5'},
+ {'derive_builder-0.11.2.tar.gz': 'd07adf7be193b71cc36b193d0f5fe60b918a3a9db4dad0449f57bcfd519704a3'},
+ {'derive_builder_core-0.11.2.tar.gz': '1f91d4cfa921f1c05904dc3c57b4a32c38aed3340cce209f3a6fd1478babafc4'},
+ {'derive_builder_macro-0.11.2.tar.gz': '8f0314b72bed045f3a68671b3c86328386762c93f82d98c65c3cb5e5f573dd68'},
+ {'dirs-2.0.2.tar.gz': '13aea89a5c93364a98e9b37b2fa237effbb694d5cfe01c5b70941f7eb087d5e3'},
+ {'dirs-3.0.2.tar.gz': '30baa043103c9d0c2a57cf537cc2f35623889dc0d405e6c3cccfadbc81c71309'},
+ {'dirs-sys-0.3.7.tar.gz': '1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6'},
+ {'either-1.8.1.tar.gz': '7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91'},
+ {'enum_dispatch-0.3.11.tar.gz': '11f36e95862220b211a6e2aa5eca09b4fa391b13cd52ceb8035a24bf65a79de2'},
+ {'errno-0.3.1.tar.gz': '4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a'},
+ {'errno-dragonfly-0.1.2.tar.gz': 'aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf'},
+ {'failure-0.1.8.tar.gz': 'd32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86'},
+ {'failure_derive-0.1.8.tar.gz': 'aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4'},
+ {'fastrand-1.9.0.tar.gz': 'e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be'},
+ {'filetime-0.2.21.tar.gz': '5cbc844cecaee9d4443931972e1289c8ff485cb4cc2767cb03ca139ed6885153'},
+ {'flate2-1.0.25.tar.gz': 'a8a2db397cb1c8772f31494cb8917e48cd1e64f0fa7efac59fbd741a0a8ce841'},
+ {'fnv-1.0.7.tar.gz': '3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1'},
+ {'foreign-types-0.3.2.tar.gz': 'f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1'},
+ {'foreign-types-shared-0.1.1.tar.gz': '00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b'},
+ {'form_urlencoded-1.1.0.tar.gz': 'a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8'},
+ {'getrandom-0.2.9.tar.gz': 'c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4'},
+ {'gimli-0.27.2.tar.gz': 'ad0a93d233ebf96623465aad4046a8d3aa4da22d4f4beba5388838c8a434bbb4'},
+ {'glob-0.3.1.tar.gz': 'd2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b'},
+ {'heck-0.4.1.tar.gz': '95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8'},
+ {'hermit-abi-0.3.1.tar.gz': 'fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286'},
+ {'ident_case-1.0.1.tar.gz': 'b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39'},
+ {'idna-0.3.0.tar.gz': 'e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6'},
+ {'indoc-2.0.4.tar.gz': '1e186cfbae8084e513daff4240b4797e342f988cecda4fb6c939150f96315fd8'},
+ {'instant-0.1.12.tar.gz': '7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c'},
+ {'intel-mkl-src-0.5.0.tar.gz': '7260b33a735eaebcb942800728b38c5760b125ea5e4346290d78397b5422b894'},
+ {'intel-mkl-tool-0.1.0.tar.gz': 'ada23f955fb7d06cb5db9424863caa7251f8f9b525f4c4816144465f77cfded7'},
+ {'io-lifetimes-1.0.10.tar.gz': '9c66c74d2ae7e79a5a8f7ac924adbe38ee42a859c6539ad869eb51f0b52dc220'},
+ {'itertools-0.9.0.tar.gz': '284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b'},
+ {'itertools-0.11.0.tar.gz': 'b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57'},
+ {'itoa-1.0.3.tar.gz': '6c8af84674fe1f223a982c933a0ee1086ac4d4052aa0fb8060c12c6ad838e754'},
+ {'jobserver-0.1.26.tar.gz': '936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2'},
+ {'lapack-0.19.0.tar.gz': 'ad676a6b4df7e76a9fd80a0c50c619a3948d6105b62a0ab135f064d99c51d207'},
+ {'lapack-src-0.9.0.tar.gz': '24c81fcc728418323178fd40407619d0ed26dbbbd1a553693c6290ef5d6698c6'},
+ {'lapack-sys-0.14.0.tar.gz': '447f56c85fb410a7a3d36701b2153c1018b1d2b908c5fbaf01c1b04fac33bcbe'},
+ {'lazy_static-1.4.0.tar.gz': 'e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646'},
+ {'libc-0.2.149.tar.gz': 'a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b'},
+ {'libz-sys-1.1.8.tar.gz': '9702761c3935f8cc2f101793272e202c72b99da8f4224a19ddcf1279a6450bbf'},
+ {'linux-raw-sys-0.3.4.tar.gz': '36eb31c1778188ae1e64398743890d0877fef36d11521ac60406b42016e8c2cf'},
+ {'lock_api-0.4.7.tar.gz': '327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53'},
+ {'log-0.4.17.tar.gz': 'abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e'},
+ {'memchr-2.5.0.tar.gz': '2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d'},
+ {'memoffset-0.9.0.tar.gz': '5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c'},
+ {'miniz_oxide-0.6.2.tar.gz': 'b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa'},
+ {'native-tls-0.2.11.tar.gz': '07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e'},
+ {'netlib-src-0.8.0.tar.gz': '39f41f36bb4d46906d5a72da5b73a804d9de1a7282eb7c89617201acda7b8212'},
+ {'num-complex-0.4.5.tar.gz': '23c6602fda94a57c990fe0df199a035d83576b496aa29f4e634a8ac6004e68a6'},
+ {'num-derive-0.2.5.tar.gz': 'eafd0b45c5537c3ba526f79d3e75120036502bebacbb3f3220914067ce39dbf2'},
+ {'num-traits-0.2.18.tar.gz': 'da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a'},
+ {'object-0.30.3.tar.gz': 'ea86265d3d3dcb6a27fc51bd29a4bf387fae9d2986b823079d4986af253eb439'},
+ {'once_cell-1.18.0.tar.gz': 'dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d'},
+ {'openblas-build-0.10.8.tar.gz': 'eba42c395477605f400a8d79ee0b756cfb82abe3eb5618e35fa70d3a36010a7f'},
+ {'openblas-src-0.10.8.tar.gz': '38e5d8af0b707ac2fe1574daa88b4157da73b0de3dc7c39fe3e2c0bb64070501'},
+ {'openssl-0.10.52.tar.gz': '01b8574602df80f7b85fdfc5392fa884a4e3b3f4f35402c070ab34c3d3f78d56'},
+ {'openssl-macros-0.1.0.tar.gz': 'b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c'},
+ {'openssl-probe-0.1.5.tar.gz': 'ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf'},
+ {'openssl-sys-0.9.87.tar.gz': '8e17f59264b2809d77ae94f0e1ebabc434773f370d6ca667bd223ea10e06cc7e'},
+ {'parking_lot-0.12.1.tar.gz': '3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f'},
+ {'parking_lot_core-0.9.3.tar.gz': '09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929'},
+ {'percent-encoding-2.2.0.tar.gz': '478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e'},
+ {'pkg-config-0.3.26.tar.gz': '6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160'},
+ {'portable-atomic-1.6.0.tar.gz': '7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0'},
+ {'proc-macro2-0.4.30.tar.gz': 'cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759'},
+ {'proc-macro2-1.0.78.tar.gz': 'e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae'},
+ {'pyo3-0.20.3.tar.gz': '53bdbb96d49157e65d45cc287af5f32ffadd5f4761438b527b055fb0d4bb8233'},
+ {'pyo3-build-config-0.20.3.tar.gz': 'deaa5745de3f5231ce10517a1f5dd97d53e5a2fd77aa6b5842292085831d48d7'},
+ {'pyo3-ffi-0.20.3.tar.gz': '62b42531d03e08d4ef1f6e85a2ed422eb678b8cd62b762e53891c05faf0d4afa'},
+ {'pyo3-macros-0.20.3.tar.gz': '7305c720fa01b8055ec95e484a6eca7a83c841267f0dd5280f0c8b8551d2c158'},
+ {'pyo3-macros-backend-0.20.3.tar.gz': '7c7e9b68bb9c3149c5b0cade5d07f953d6d125eb4337723c4ccdb665f1f96185'},
+ {'quote-0.6.13.tar.gz': '6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1'},
+ {'quote-1.0.35.tar.gz': '291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef'},
+ {'r-src-0.1.0.tar.gz': 'ea397956e1043a8d947ea84b13971d9cb30fce65ca66a921081755ff2e899b6a'},
+ {'redox_syscall-0.2.16.tar.gz': 'fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a'},
+ {'redox_syscall-0.3.5.tar.gz': '567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29'},
+ {'redox_users-0.4.3.tar.gz': 'b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b'},
+ {'rustc-demangle-0.1.23.tar.gz': 'd626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76'},
+ {'rustix-0.37.7.tar.gz': '2aae838e49b3d63e9274e1c01833cc8139d3fec468c3b84688c628f44b1ae11d'},
+ {'rustls-native-certs-0.6.2.tar.gz': '0167bac7a9f490495f3c33013e7722b53cb087ecbe082fb0c6387c96f634ea50'},
+ {'rustls-pemfile-1.0.2.tar.gz': 'd194b56d58803a43635bdc398cd17e383d6f71f9182b9a192c127ca42494a59b'},
+ {'ryu-1.0.11.tar.gz': '4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09'},
+ {'same-file-1.0.6.tar.gz': '93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502'},
+ {'schannel-0.1.21.tar.gz': '713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3'},
+ {'scopeguard-1.1.0.tar.gz': 'd29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd'},
+ {'security-framework-2.8.2.tar.gz': 'a332be01508d814fed64bf28f798a146d73792121129962fdf335bb3c49a4254'},
+ {'security-framework-sys-2.8.0.tar.gz': '31c9bb296072e961fcbd8853511dd39c2d8be2deb1e17c6860b1d30732b323b4'},
+ {'serde-1.0.144.tar.gz': '0f747710de3dcd43b88c9168773254e809d8ddbdf9653b84e2554ab219f17860'},
+ {'serde_derive-1.0.144.tar.gz': '94ed3a816fb1d101812f83e789f888322c34e291f894f19590dc310963e87a00'},
+ {'serde_json-1.0.85.tar.gz': 'e55a28e3aaef9d5ce0506d0a14dbba8054ddc7e499ef522dd8b26859ec9d4a44'},
+ {'smallvec-1.9.0.tar.gz': '2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1'},
+ {'socket2-0.4.9.tar.gz': '64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662'},
+ {'strsim-0.10.0.tar.gz': '73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623'},
+ {'syn-0.15.44.tar.gz': '9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5'},
+ {'syn-1.0.109.tar.gz': '72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237'},
+ {'syn-2.0.52.tar.gz': 'b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07'},
+ {'synstructure-0.12.6.tar.gz': 'f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f'},
+ {'tar-0.4.38.tar.gz': '4b55807c0344e1e6c04d7c965f5289c39a8d94ae23ed5c0b57aabac549f871c6'},
+ {'target-lexicon-0.12.4.tar.gz': 'c02424087780c9b71cc96799eaeddff35af2bc513278cda5c99fc1f5d026d3c1'},
+ {'tempfile-3.5.0.tar.gz': 'b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998'},
+ {'thiserror-1.0.39.tar.gz': 'a5ab016db510546d856297882807df8da66a16fb8c4101cb8b30054b0d5b2d9c'},
+ {'thiserror-impl-1.0.39.tar.gz': '5420d42e90af0c38c3290abcca25b9b3bdf379fc9f55c528f53a269d9c9a267e'},
+ {'tinyvec-1.6.0.tar.gz': '87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50'},
+ {'tinyvec_macros-0.1.1.tar.gz': '1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20'},
+ {'unicode-bidi-0.3.13.tar.gz': '92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460'},
+ {'unicode-ident-1.0.2.tar.gz': '15c61ba63f9235225a22310255a29b806b907c9b8c964bcbd0a2c70f3f2deea7'},
+ {'unicode-normalization-0.1.22.tar.gz': '5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921'},
+ {'unicode-xid-0.1.0.tar.gz': 'fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc'},
+ {'unicode-xid-0.2.4.tar.gz': 'f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c'},
+ {'unindent-0.2.3.tar.gz': 'c7de7d73e1754487cb58364ee906a499937a0dfabd86bcb980fa99ec8c8fa2ce'},
+ {'ureq-2.6.2.tar.gz': '338b31dd1314f68f3aabf3ed57ab922df95ffcd902476ca7ba3c4ce7b908c46d'},
+ {'url-2.3.1.tar.gz': '0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643'},
+ {'vcpkg-0.2.15.tar.gz': 'accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426'},
+ {'walkdir-2.3.3.tar.gz': '36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698'},
+ {'wasi-0.11.0+wasi-snapshot-preview1.tar.gz': '9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423'},
+ {'winapi-0.3.9.tar.gz': '5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419'},
+ {'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'},
+ {'windows-sys-0.36.1.tar.gz': 'ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2'},
+ {'windows-sys-0.42.0.tar.gz': '5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7'},
+ {'windows-sys-0.45.0.tar.gz': '75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0'},
+ {'windows-sys-0.48.0.tar.gz': '677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9'},
+ {'windows-targets-0.42.2.tar.gz': '8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071'},
+ {'windows-targets-0.48.0.tar.gz': '7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5'},
+ {'windows_aarch64_gnullvm-0.42.2.tar.gz': '597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8'},
+ {'windows_aarch64_gnullvm-0.48.0.tar.gz': '91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc'},
+ {'windows_aarch64_msvc-0.36.1.tar.gz': '9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47'},
+ {'windows_aarch64_msvc-0.42.2.tar.gz': 'e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43'},
+ {'windows_aarch64_msvc-0.48.0.tar.gz': 'b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3'},
+ {'windows_i686_gnu-0.36.1.tar.gz': '180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6'},
+ {'windows_i686_gnu-0.42.2.tar.gz': 'c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f'},
+ {'windows_i686_gnu-0.48.0.tar.gz': '622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241'},
+ {'windows_i686_msvc-0.36.1.tar.gz': 'e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024'},
+ {'windows_i686_msvc-0.42.2.tar.gz': '44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060'},
+ {'windows_i686_msvc-0.48.0.tar.gz': '4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00'},
+ {'windows_x86_64_gnu-0.36.1.tar.gz': '4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1'},
+ {'windows_x86_64_gnu-0.42.2.tar.gz': '8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36'},
+ {'windows_x86_64_gnu-0.48.0.tar.gz': 'ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1'},
+ {'windows_x86_64_gnullvm-0.42.2.tar.gz': '26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3'},
+ {'windows_x86_64_gnullvm-0.48.0.tar.gz': '7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953'},
+ {'windows_x86_64_msvc-0.36.1.tar.gz': 'c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680'},
+ {'windows_x86_64_msvc-0.42.2.tar.gz': '9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0'},
+ {'windows_x86_64_msvc-0.48.0.tar.gz': '1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a'},
+ {'xattr-0.2.3.tar.gz': '6d1526bbe5aaeb5eb06885f4d987bcdfa5e23187055de9b83fe00156a821fabc'},
+ {'zstd-0.5.4+zstd.1.4.7.tar.gz': '69996ebdb1ba8b1517f61387a883857818a66c8a295f487b1ffd8fd9d2c82910'},
+ {'zstd-safe-2.0.6+zstd.1.4.7.tar.gz': '98aa931fb69ecee256d44589d19754e61851ae4769bf963b385119b1cc37a49e'},
+ {'zstd-sys-1.4.18+zstd.1.4.7.tar.gz': 'a1e6e8778706838f43f771d80d37787cb2fe06dafe89dd3aebaf6721b9eaec81'},
+]
+
+options = {'modulename': 'clarabel'}
+
+use_pip = True
+sanity_pip_check = True
+download_dep_fail = True
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/c/Clp/Clp-1.17.9-foss-2023a.eb b/easybuild/easyconfigs/c/Clp/Clp-1.17.9-foss-2023a.eb
new file mode 100644
index 00000000000..b87d2708941
--- /dev/null
+++ b/easybuild/easyconfigs/c/Clp/Clp-1.17.9-foss-2023a.eb
@@ -0,0 +1,61 @@
+easyblock = 'ConfigureMake'
+
+name = 'Clp'
+version = '1.17.9'
+
+homepage = "https://github.com/coin-or/Clp"
+description = """Clp (Coin-or linear programming) is an open-source linear programming solver.
+It is primarily meant to be used as a callable library, but a basic,
+stand-alone executable version is also available."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'pic': True, 'usempi': True}
+
+source_urls = ['https://github.com/coin-or/Clp/archive/refs/tags/releases/']
+sources = ['%(version)s.tar.gz']
+checksums = ['b02109be54e2c9c6babc9480c242b2c3c7499368cfca8c0430f74782a694a49f']
+
+builddependencies = [
+ ('Autotools', '20220317'),
+ ('Doxygen', '1.9.7'),
+ ('pkgconf', '1.9.5'),
+]
+
+dependencies = [
+ ('METIS', '5.1.0'),
+ ('MUMPS', '5.6.1', '-metis'),
+ ('CoinUtils', '2.11.10'),
+ ('Osi', '0.108.9'),
+ ('bzip2', '1.0.8'),
+ ('zlib', '1.2.13'),
+]
+
+# Use BLAS/LAPACK from toolchain
+configopts = '--with-blas="$LIBBLAS" --with-lapack="$LIBLAPACK" '
+
+# Use METIS AND MUMPS from EB
+# --with-metis-lib is ignored
+configopts += '--with-metis-lib="-lmetis" '
+configopts += '--with-mumps-lib="-lesmumps -lcmumps -ldmumps -lsmumps -lzmumps -lmumps_common -lpord -lmpi_mpifh '
+configopts += '-lmetis -lscotch -lptscotch -lptscotcherr -lscotcherrexit -lscotcherr $LIBSCALAPACK" '
+
+# Disable GLPK because Clp requires headers from its sources
+configopts += '--without-glpk '
+
+# Use CoinUtils from EB
+configopts += '--with-coinutils-lib="-lCoinUtils" '
+configopts += '--with-coinutils-datadir=$EBROOTCOINUTILS/share/coin/Data '
+
+# Use Osi from EB
+configopts += '--with-osi-lib="-lOsi" '
+configopts += '--with-osi-datadir=$EBROOTOSI/share/coin/Data '
+
+sanity_check_paths = {
+ 'files': ['bin/clp'] + ['lib/lib%s.%s' % (x, SHLIB_EXT) for x in ['Clp', 'ClpSolver', 'OsiClp']],
+ 'dirs': ['include/coin', 'lib/pkgconfig', 'share/coin']
+}
+
+# other coin-or projects expect instead of
+modextrapaths = {'CPATH': 'include/coin'}
+
+moduleclass = "math"
diff --git a/easybuild/easyconfigs/c/Clustal-Omega/Clustal-Omega-1.2.4-GCC-11.2.0.eb b/easybuild/easyconfigs/c/Clustal-Omega/Clustal-Omega-1.2.4-GCC-11.2.0.eb
new file mode 100644
index 00000000000..1784c84bab0
--- /dev/null
+++ b/easybuild/easyconfigs/c/Clustal-Omega/Clustal-Omega-1.2.4-GCC-11.2.0.eb
@@ -0,0 +1,35 @@
+# 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
+# Francis Crick Institute
+
+easyblock = 'ConfigureMake'
+
+name = 'Clustal-Omega'
+version = '1.2.4'
+
+homepage = 'http://www.clustal.org/omega/'
+description = """ Clustal Omega is a multiple sequence alignment
+ program for proteins. It produces biologically meaningful multiple
+ sequence alignments of divergent sequences. Evolutionary relationships
+ can be seen via viewing Cladograms or Phylograms """
+
+toolchain = {'name': 'GCC', 'version': '11.2.0'}
+toolchainopts = {'openmp': True}
+
+source_urls = [homepage]
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['8683d2286d663a46412c12a0c789e755e7fd77088fb3bc0342bb71667f05a3ee']
+
+dependencies = [('argtable', '2.13')]
+
+sanity_check_paths = {
+ 'files': ['bin/clustalo'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["clustalo --help"]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/Clustal-Omega/Clustal-Omega-1.2.4-GCC-12.3.0.eb b/easybuild/easyconfigs/c/Clustal-Omega/Clustal-Omega-1.2.4-GCC-12.3.0.eb
new file mode 100644
index 00000000000..04f5b0991d1
--- /dev/null
+++ b/easybuild/easyconfigs/c/Clustal-Omega/Clustal-Omega-1.2.4-GCC-12.3.0.eb
@@ -0,0 +1,35 @@
+# 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
+# Francis Crick Institute
+
+easyblock = 'ConfigureMake'
+
+name = 'Clustal-Omega'
+version = '1.2.4'
+
+homepage = 'http://www.clustal.org/omega/'
+description = """ Clustal Omega is a multiple sequence alignment
+ program for proteins. It produces biologically meaningful multiple
+ sequence alignments of divergent sequences. Evolutionary relationships
+ can be seen via viewing Cladograms or Phylograms """
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+toolchainopts = {'openmp': True}
+
+source_urls = [homepage]
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['8683d2286d663a46412c12a0c789e755e7fd77088fb3bc0342bb71667f05a3ee']
+
+dependencies = [('argtable', '2.13')]
+
+sanity_check_paths = {
+ 'files': ['bin/clustalo'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["clustalo --help"]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/CmdStanR/CmdStanR-0.7.1-foss-2023a-R-4.3.2.eb b/easybuild/easyconfigs/c/CmdStanR/CmdStanR-0.7.1-foss-2023a-R-4.3.2.eb
new file mode 100644
index 00000000000..9c87742f503
--- /dev/null
+++ b/easybuild/easyconfigs/c/CmdStanR/CmdStanR-0.7.1-foss-2023a-R-4.3.2.eb
@@ -0,0 +1,28 @@
+easyblock = 'RPackage'
+
+name = 'CmdStanR'
+version = '0.7.1'
+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': '2023a'}
+
+source_urls = ['https://github.com/stan-dev/cmdstanr/archive/refs/tags/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['62e552c641c4faaf64edaf0951a8c39dde8758193154bb79c6b7df114bce233c']
+
+dependencies = [
+ ('R', '4.3.2'),
+ ('R-bundle-CRAN', '2023.12'),
+]
+
+sanity_check_paths = {
+ 'files': [],
+ 'dirs': ['%(namelower)s'],
+}
+
+options = {'modulename': '%(namelower)s'}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/CoCoALib/CoCoALib-0.99850-GCC-13.2.0.eb b/easybuild/easyconfigs/c/CoCoALib/CoCoALib-0.99850-GCC-13.2.0.eb
new file mode 100644
index 00000000000..f85edd9ec85
--- /dev/null
+++ b/easybuild/easyconfigs/c/CoCoALib/CoCoALib-0.99850-GCC-13.2.0.eb
@@ -0,0 +1,42 @@
+easyblock = 'ConfigureMake'
+
+name = 'CoCoALib'
+version = '0.99850'
+
+homepage = 'https://cocoa.dima.unige.it/cocoa/cocoalib/'
+description = "CoCoALib is a free GPL3 C++ library for doing Computations in Commutative Algebra."
+
+toolchain = {'name': 'GCC', 'version': '13.2.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://cocoa.dima.unige.it/cocoa/cocoalib/tgz']
+sources = [SOURCE_TGZ]
+checksums = ['d3e7af0153c6950f83f4e3556540f0177fedf5179f0f7667b7d6d670268fd445']
+
+dependencies = [
+ ('GMP', '6.3.0'),
+ ('cddlib', '0.94m'), # optional
+]
+
+# libreadline only needed for CoCoA-5
+configopts = "--only-cocoalib --no-readline --threadsafe-hack "
+# Use cddlib and GMP from EB
+configopts += "--with-libcddgmp=${EBROOTCDDLIB}/lib/libcddgmp.a --with-libgmp=$EBROOTGMP/lib/libgmp.a "
+
+buildopts = 'CXX="$CXX" CXXFLAGS="$CXXFLAGS"'
+
+# Makefile is not smart enough to create missing directories
+preinstallopts = "mkdir %(installdir)s/{include,lib} && "
+
+# Move doc and examples from include to share
+postinstallcmds = [
+ "mkdir %(installdir)s/share",
+ "mv %(installdir)s/include/CoCoA-%(version)s/{doc,examples} %(installdir)s/share/",
+]
+
+sanity_check_paths = {
+ 'files': ['lib/libcocoa.a'],
+ 'dirs': ['include/CoCoA-%(version)s', 'share/doc', 'share/examples']
+}
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/c/CodingQuarry/CodingQuarry-2.0-foss-2023a.eb b/easybuild/easyconfigs/c/CodingQuarry/CodingQuarry-2.0-foss-2023a.eb
new file mode 100644
index 00000000000..4757b9125f2
--- /dev/null
+++ b/easybuild/easyconfigs/c/CodingQuarry/CodingQuarry-2.0-foss-2023a.eb
@@ -0,0 +1,51 @@
+easyblock = 'MakeCp'
+
+name = 'CodingQuarry'
+version = '2.0'
+
+homepage = 'https://sourceforge.net/p/codingquarry'
+description = "Highly accurate hidden Markov model gene prediction in fungal genomes using RNA-seq transcripts"
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'openmp': True}
+
+source_urls = [SOURCEFORGE_SOURCE]
+sources = ['CodingQuarry_v%(version)s.tar.gz']
+patches = ['CodingQuarry-2.0_python3.patch']
+checksums = [
+ {'CodingQuarry_v2.0.tar.gz': '1198afbf7cebcf0975c5b20d92b7a2dd6d956072fcde6e86fdce6aeae4842504'},
+ {'CodingQuarry-2.0_python3.patch': '8e1b117431d8b104f2114875d8f751aa91c1c3c1b0ddd5a4f85251605c2ab9df'},
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Biopython', '1.83'),
+]
+
+buildopts = 'CFLAGS="$CFLAGS"'
+
+files_to_copy = [
+ (['CodingQuarry', 'CufflinksGTF_to_CodingQuarryGFF3.py'], 'bin'),
+ 'QuarryFiles',
+ 'TESTING',
+]
+
+fix_python_shebang_for = [
+ 'bin/CufflinksGTF_to_CodingQuarryGFF3.py',
+ 'QuarryFiles/scripts/*.py',
+]
+
+sanity_check_paths = {
+ 'files': ['bin/CodingQuarry', 'bin/CufflinksGTF_to_CodingQuarryGFF3.py'],
+ 'dirs': ['QuarryFiles/scripts', 'QuarryFiles/self_train', 'QuarryFiles/species', 'TESTING'],
+}
+
+sanity_check_commands = [
+ "CodingQuarry --help | grep '^CodingQuarry v. %(version)s'",
+ "mkdir -p %(builddir)s && cp -a %(installdir)s/TESTING %(builddir)s/TESTING",
+ "cd %(builddir)s/TESTING && CufflinksGTF_to_CodingQuarryGFF3.py Sp_transcripts.gtf > test.gff3",
+]
+
+modextravars = {'QUARRY_PATH': '%(installdir)s/QuarryFiles'}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/CoinUtils/CoinUtils-2.11.10-GCC-12.3.0.eb b/easybuild/easyconfigs/c/CoinUtils/CoinUtils-2.11.10-GCC-12.3.0.eb
new file mode 100644
index 00000000000..642d353e5d8
--- /dev/null
+++ b/easybuild/easyconfigs/c/CoinUtils/CoinUtils-2.11.10-GCC-12.3.0.eb
@@ -0,0 +1,36 @@
+easyblock = 'ConfigureMake'
+
+name = 'CoinUtils'
+version = '2.11.10'
+
+homepage = "https://github.com/coin-or/CoinUtils"
+description = """CoinUtils (Coin-OR Utilities) is an open-source collection of classes and
+functions that are generally useful to more than one COIN-OR project."""
+
+source_urls = ['https://github.com/coin-or/CoinUtils/archive/refs/tags/releases/']
+sources = ['%(version)s.tar.gz']
+checksums = ['80c7c215262df8d6bd2ba171617c5df844445871e9891ec6372df12ccbe5bcfd']
+
+# NOTE: this esyconfig for CoinUtils provides a minimal build not using BLAS/LAPACK or MPI
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+
+builddependencies = [
+ ('Autotools', '20220317'),
+ ('Doxygen', '1.9.7'),
+ ('pkgconf', '1.9.5'),
+]
+
+dependencies = [
+ ('bzip2', '1.0.8'),
+ ('zlib', '1.2.13'),
+]
+
+sanity_check_paths = {
+ 'files': ['lib/libCoinUtils.%s' % SHLIB_EXT],
+ 'dirs': ['include/coin', 'lib/pkgconfig', 'share/coin']
+}
+
+# other coin-or projects expect instead of
+modextrapaths = {'CPATH': 'include/coin'}
+
+moduleclass = "math"
diff --git a/easybuild/easyconfigs/c/Compass/Compass-2024.04-foss-2021b.eb b/easybuild/easyconfigs/c/Compass/Compass-2024.04-foss-2021b.eb
new file mode 100644
index 00000000000..0ff4a4f9bdb
--- /dev/null
+++ b/easybuild/easyconfigs/c/Compass/Compass-2024.04-foss-2021b.eb
@@ -0,0 +1,42 @@
+easyblock = 'PythonBundle'
+
+name = 'Compass'
+version = '2024.04'
+
+homepage = 'https://github.com/YosefLab/Compass'
+description = """In-Silico Modeling of Metabolic Heterogeneity using Single-Cell Transcriptomes."""
+local_commit = "7664cb0"
+
+toolchain = {'name': 'foss', 'version': '2021b'}
+
+dependencies = [
+ ('Python', '3.9.6'),
+ ('SciPy-bundle', '2021.10'),
+ ('tqdm', '4.62.3'),
+ ('python-libsbml', '5.20.2'),
+ ('scikit-learn', '1.0.1'),
+ ('python-igraph', '0.9.8'),
+ ('leidenalg', '0.8.8'),
+ ('anndata', '0.9.2'),
+ ('CPLEX', '22.1.1'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('compass', version, {
+ 'source_urls': ['https://github.com/YosefLab/Compass/archive/'],
+ 'sources': [{'download_filename': '7664cb0.tar.gz', 'filename': '%(name)s-%(version)s-7664cb0.tar.gz'}],
+ 'checksums': ['87529c5fae108fa2a8e3e35438d3b25874faa78af670a2349228c76fa0843376'],
+ 'preinstallopts': "sed -i '/python-igraph/d' setup.py && ",
+ }),
+]
+
+sanity_check_commands = [
+ "compass -h",
+ "python -c 'import cplex'",
+ "python -c 'import igraph'",
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/Compress-Raw-Zlib/Compress-Raw-Zlib-2.202-GCCcore-12.2.0.eb b/easybuild/easyconfigs/c/Compress-Raw-Zlib/Compress-Raw-Zlib-2.202-GCCcore-12.2.0.eb
new file mode 100644
index 00000000000..c3c856455fb
--- /dev/null
+++ b/easybuild/easyconfigs/c/Compress-Raw-Zlib/Compress-Raw-Zlib-2.202-GCCcore-12.2.0.eb
@@ -0,0 +1,31 @@
+easyblock = 'PerlModule'
+
+name = 'Compress-Raw-Zlib'
+version = '2.202'
+
+homepage = 'https://metacpan.org/pod/Compress::Raw::Zlib'
+description = "Low-Level Interface to zlib or zlib-ng compression library"
+
+toolchain = {'name': 'GCCcore', 'version': '12.2.0'}
+
+source_urls = ['https://cpan.metacpan.org/authors/id/P/PM/PMQS/']
+sources = ['%(name)s-%(version)s.tar.gz']
+checksums = ['96e20946eb457a32d2d7a0050b922e37b5ada41246bcdc824196d3f7c4da91b7']
+
+builddependencies = [
+ ('binutils', '2.39'),
+]
+
+dependencies = [
+ ('Perl', '5.36.0'),
+ ('zlib', '1.2.12'),
+]
+
+options = {'modulename': 'Compress::Raw::Zlib'}
+
+sanity_check_paths = {
+ 'files': ['lib/perl5/site_perl/%(perlver)s/%(arch)s-linux-thread-multi/Compress/Raw/Zlib.pm'],
+ 'dirs': [],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/c/Concorde/Concorde-20031219-GCC-12.3.0.eb b/easybuild/easyconfigs/c/Concorde/Concorde-20031219-GCC-12.3.0.eb
new file mode 100644
index 00000000000..05e2c345c51
--- /dev/null
+++ b/easybuild/easyconfigs/c/Concorde/Concorde-20031219-GCC-12.3.0.eb
@@ -0,0 +1,40 @@
+easyblock = 'MakeCp'
+
+name = 'Concorde'
+version = '20031219'
+
+homepage = 'https://www.math.uwaterloo.ca/tsp/concorde.html'
+description = """Concorde is a computer code for the symmetric traveling salesman problem (TSP)
+ and some related network optimization problems"""
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+
+source_urls = ['https://www.math.uwaterloo.ca/tsp/concorde/downloads/codes/src/']
+sources = ['co%s.tgz' % version[2:]]
+patches = ['Concorde-20031219_fix-h_addr.patch']
+checksums = [
+ {'co031219.tgz': 'c3650a59c8d57e0a00e81c1288b994a99c5aa03e5d96a314834c2d8f9505c724'},
+ {'Concorde-20031219_fix-h_addr.patch': '1632e45d68c6d3806d2d56eae6d84b02ab0aa526f557b0ae1210385b0f00b8ae'},
+]
+
+with_configure = True
+
+local_binaries = ['CUT/mincut', 'EDGEGEN/edgegen', 'FMATCH/fmatch', 'LINKERN/linkern', 'LOCALCUT/localcut',
+ 'TOOLS/fconvert', 'TOOLS/edg2len', 'TOOLS/edgunion', 'TOOLS/prob2tsp', 'TOOLS/showres',
+ 'TOOLS/tourchk', 'TOOLS/tourlen', 'TSP/concorde']
+
+files_to_copy = [
+ (['concorde.a'], 'lib'),
+ (['concorde.h'], 'include'),
+ (local_binaries, 'bin'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/concorde', 'bin/edgegen', 'bin/edg2len', 'bin/fconvert', 'bin/fmatch', 'bin/linkern', 'bin/showres',
+ 'include/concorde.h', 'lib/concorde.a'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["concorde 2>&1 | grep '^Usage: concorde'"]
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/c/Concorde/Concorde-20031219_fix-h_addr.patch b/easybuild/easyconfigs/c/Concorde/Concorde-20031219_fix-h_addr.patch
new file mode 100644
index 00000000000..96430079869
--- /dev/null
+++ b/easybuild/easyconfigs/c/Concorde/Concorde-20031219_fix-h_addr.patch
@@ -0,0 +1,13 @@
+fix for: error: ‘struct hostent’ has no member named ‘h_addr’
+author: Kenneth Hoste (HPC-UGent)
+--- concorde/UTIL/safe_io.c.orig 2024-01-31 19:51:20.865401391 +0100
++++ concorde/UTIL/safe_io.c 2024-01-31 19:51:40.452228752 +0100
+@@ -1248,7 +1248,7 @@
+ fprintf (stderr, "cannot get host info for %s\n", hname);
+ return (CC_SFILE *) NULL;
+ }
+- memcpy ((void *) &hsock.sin_addr, (void *) h->h_addr, h->h_length);
++ memcpy ((void *) &hsock.sin_addr, (void *) h->h_addr_list[0], h->h_length);
+ hsock.sin_family = AF_INET;
+ hsock.sin_port = htons(p);
+
diff --git a/easybuild/easyconfigs/c/ConcurrentVersionsSystem/ConcurrentVersionsSystem-1.11.23-GCCcore-13.3.0.eb b/easybuild/easyconfigs/c/ConcurrentVersionsSystem/ConcurrentVersionsSystem-1.11.23-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..b43a426454f
--- /dev/null
+++ b/easybuild/easyconfigs/c/ConcurrentVersionsSystem/ConcurrentVersionsSystem-1.11.23-GCCcore-13.3.0.eb
@@ -0,0 +1,45 @@
+##
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+#
+##
+
+easyblock = 'ConfigureMake'
+
+name = 'ConcurrentVersionsSystem'
+version = '1.11.23'
+
+homepage = 'https://savannah.nongnu.org/projects/cvs'
+description = """CVS is a version control system, an important component of
+Source Configuration Management (SCM).
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = [' https://ftp.gnu.org/non-gnu/cvs/source/stable/%(version)s/']
+sources = ['cvs-%(version)s.tar.bz2']
+patches = [
+ 'CVS-1.11.23-zlib-1.patch',
+ 'CVS-1.11.23-getline.patch',
+]
+checksums = [
+ '400f51b59d85116e79b844f2d5dbbad4759442a789b401a94aa5052c3d7a4aa9', # cvs-1.11.23.tar.bz2
+ # CVS-1.11.23-zlib-1.patch
+ '3c0ee6509c4622778c093316437a5b047c51820e11cee3ed3a405c2a590a9ff4',
+ # CVS-1.11.23-getline.patch
+ '6a1aa65acfbb41b7639adc70248d908981f172c2529bb52d84359713f9541874',
+]
+
+builddependencies = [
+ ('binutils', '2.42')
+]
+
+dependencies = [
+ ('zlib', '1.3.1')
+]
+
+sanity_check_paths = {
+ 'files': ['bin/cvs', 'bin/cvsbug', 'bin/rcs2log'],
+ 'dirs': [],
+}
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/c/CoordgenLibs/CoordgenLibs-3.0.2-gompi-2023a.eb b/easybuild/easyconfigs/c/CoordgenLibs/CoordgenLibs-3.0.2-gompi-2023a.eb
new file mode 100644
index 00000000000..425c16ca298
--- /dev/null
+++ b/easybuild/easyconfigs/c/CoordgenLibs/CoordgenLibs-3.0.2-gompi-2023a.eb
@@ -0,0 +1,32 @@
+easyblock = 'CMakeMake'
+
+name = 'CoordgenLibs'
+version = '3.0.2'
+
+homepage = 'https://github.com/schrodinger/coordgenlibs'
+description = "Schrodinger-developed 2D Coordinate Generation"
+
+toolchain = {'name': 'gompi', 'version': '2023a'}
+
+source_urls = ['https://github.com/schrodinger/coordgenlibs/archive/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['f67697434f7fec03bca150a6d84ea0e8409f6ec49d5aab43badc5833098ff4e3']
+
+builddependencies = [('CMake', '3.26.3')]
+
+dependencies = [
+ ('Boost', '1.82.0'),
+ ('maeparser', '1.3.1'),
+]
+
+configopts = "-Dmaeparser_DIR=$EBROOTMAEPARSER/lib/cmake"
+
+# work around compiler warning treated as error by stripping out use of -Werror
+prebuildopts = "sed -i 's/-Werror//g' CMakeFiles/coordgen.dir/flags.make && "
+
+sanity_check_paths = {
+ 'files': ['lib/libcoordgen.%s' % SHLIB_EXT],
+ 'dirs': ['include/coordgen', 'lib/cmake'],
+}
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/c/Coreutils/Coreutils-9.5-GCCcore-13.3.0.eb b/easybuild/easyconfigs/c/Coreutils/Coreutils-9.5-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..60e5009dc91
--- /dev/null
+++ b/easybuild/easyconfigs/c/Coreutils/Coreutils-9.5-GCCcore-13.3.0.eb
@@ -0,0 +1,28 @@
+easyblock = 'ConfigureMake'
+
+name = "Coreutils"
+version = "9.5"
+
+homepage = 'https://www.gnu.org/software/coreutils/'
+description = """The GNU Core Utilities are the basic file, shell and text
+manipulation utilities of the GNU operating system. These are
+the core utilities which are expected to exist on every
+operating system.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'optarch': True, 'pic': True}
+
+source_urls = [GNU_SOURCE]
+sources = [SOURCELOWER_TAR_XZ]
+
+checksums = ['cd328edeac92f6a665de9f323c93b712af1858bc2e0d88f3f7100469470a1b8a']
+
+builddependencies = [('binutils', '2.42')]
+
+sanity_check_paths = {
+ 'files': ['bin/sort', 'bin/echo', 'bin/du', 'bin/date', 'bin/true'],
+ 'dirs': []
+}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/c/CppUnit/CppUnit-1.15.1-GCCcore-12.2.0.eb b/easybuild/easyconfigs/c/CppUnit/CppUnit-1.15.1-GCCcore-12.2.0.eb
new file mode 100644
index 00000000000..404431b947f
--- /dev/null
+++ b/easybuild/easyconfigs/c/CppUnit/CppUnit-1.15.1-GCCcore-12.2.0.eb
@@ -0,0 +1,28 @@
+easyblock = 'ConfigureMake'
+
+name = 'CppUnit'
+version = '1.15.1'
+
+homepage = 'https://freedesktop.org/wiki/Software/cppunit/'
+
+description = """
+ CppUnit is the C++ port of the famous JUnit framework for unit testing.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '12.2.0'}
+
+source_urls = ['https://dev-www.libreoffice.org/src']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['89c5c6665337f56fd2db36bc3805a5619709d51fb136e51937072f63fcc717a7']
+
+builddependencies = [
+ ('binutils', '2.39'),
+]
+
+sanity_check_paths = {
+ 'files': ['lib/libcppunit.a', 'lib/libcppunit.%s' % SHLIB_EXT,
+ 'lib/pkgconfig/cppunit.pc'],
+ 'dirs': ['bin', 'include/cppunit', 'share'],
+}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/c/Critic2/Critic2-1.2-foss-2023a.eb b/easybuild/easyconfigs/c/Critic2/Critic2-1.2-foss-2023a.eb
new file mode 100644
index 00000000000..9d1605b7366
--- /dev/null
+++ b/easybuild/easyconfigs/c/Critic2/Critic2-1.2-foss-2023a.eb
@@ -0,0 +1,37 @@
+easyblock = 'CMakeMake'
+
+name = 'Critic2'
+version = '1.2'
+
+homepage = 'https://aoterodelaroza.github.io/critic2/'
+description = """Critic2 is a program for the analysis of quantum mechanical
+calculation results in molecules and periodic solids."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'extra_fflags': '-ffree-line-length-none'}
+
+source_urls = ['https://github.com/aoterodelaroza/critic2/archive/refs/tags/']
+sources = ['%(version)s.tar.gz']
+checksums = ['b59ecffd83405dbcc4b5d157d4a94bf2756916f72e83e09a94d277d54d0f2225']
+
+configopts = '-DLIBCINT_INCLUDE_DIRS=$EBROOTLIBCINT/include/ '
+configopts += '-DLIBCINT_LIBRARY=$EBROOTLIBCINT/lib64/libcint.so '
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+]
+
+dependencies = [
+ ('libxc', '6.2.2'),
+ ('libcint', '5.4.0'),
+ ('libreadline', '8.2'),
+]
+
+sanity_check_paths = {
+ 'files': ["bin/critic2"],
+ 'dirs': ["bin"],
+}
+
+sanity_check_commands = ['critic2 -h']
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/c/CuPy/CuPy-13.0.0-foss-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/c/CuPy/CuPy-13.0.0-foss-2023a-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..4d1e02157e5
--- /dev/null
+++ b/easybuild/easyconfigs/c/CuPy/CuPy-13.0.0-foss-2023a-CUDA-12.1.1.eb
@@ -0,0 +1,85 @@
+easyblock = 'PythonBundle'
+
+name = 'CuPy'
+version = '13.0.0'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://cupy.dev'
+description = "CuPy is an open-source array library accelerated with NVIDIA CUDA."
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+builddependencies = [
+ ('hypothesis', '6.82.0'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('CUDA', '12.1.1', '', SYSTEM),
+ ('cuDNN', '8.9.2.26', versionsuffix, SYSTEM),
+ ('NCCL', '2.18.3', versionsuffix),
+ ('cuTENSOR', '2.0.1.2', versionsuffix, SYSTEM),
+ ('cuSPARSELt', '0.6.0.6', versionsuffix, SYSTEM),
+]
+
+use_pip = True
+
+exts_default_options = {'source_urls': [PYPI_LOWER_SOURCE]}
+
+_skip_tests = [
+ '--ignore tests/example_tests', # examples are not included
+ '--ignore tests/cupy_tests/fft_tests/test_fft.py', # CUFFT_INTERNAL_ERROR
+ # Sorting broken on at least T4 (this is troubling):
+ '--deselect tests/cupy_tests/'
+ 'sorting_tests/test_sort.py::TestArgsort_param_0_{external=False}::test_argsort_one_dim',
+ '--deselect tests/cupy_tests/'
+ 'sorting_tests/test_sort.py::TestArgsort_param_1_{external=True}::test_argsort_one_dim',
+ # https://github.com/cupy/cupy/issues/8255:
+ '--deselect tests/cupyx_tests/'
+ 'scipy_tests/signal_tests/test_filter_design.py::TestSOSFreqz::test_sos_freqz_against_mp',
+ # Floating point precision issues:
+ '--deselect tests/cupy_tests/core_tests/fusion_tests/test_reduction.py::TestFusion',
+ '--deselect tests/cupyx_tests/'
+ 'scipy_tests/signal_tests/test_filter_design.py::TestSOSFreqz::test_sosfrez_design_cheb2_2',
+ '--deselect tests/cupyx_tests/scipy_tests/signal_tests/test_fir_filter_design.py::TestFirls::test_firls',
+ '--deselect tests/cupyx_tests/scipy_tests/signal_tests/test_iir_filter_design.py::TestButtord::test_ellip_butter',
+ '--deselect tests/cupyx_tests/scipy_tests/signal_tests/test_iir_filter_design.py::TestEllipord::test_bandstop',
+ '--deselect tests/cupyx_tests/scipy_tests/signal_tests/test_iir_filter_design.py::TestEllipord::test_fs_param',
+ '--deselect tests/cupyx_tests/scipy_tests/signal_tests/test_iir_filter_design.py::TestEllipord::test_ellip_butter',
+ '--deselect tests/cupyx_tests/scipy_tests/signal_tests/test_ltisys.py::Test_bode::test_from_state_space',
+ '--deselect tests/cupyx_tests/scipy_tests/signal_tests/test_ltisys.py::TestPlacePoles::test_real_2',
+ '--deselect tests/cupyx_tests/'
+ 'scipy_tests/signal_tests/test_polyutils.py::TestPartialFractionExpansion::test_residuez_general',
+]
+
+_parallel_tests = 4 # tests can require a lot of VRAM
+
+exts_list = [
+ ('fastrlock', '0.8.2', {
+ 'checksums': ['644ec9215cf9c4df8028d8511379a15d9c1af3e16d80e47f1b6fdc6ba118356a'],
+ }),
+ ('cupy', version, {
+ 'preinstallopts': 'CUPY_NUM_BUILD_JOBS=%(parallel)s EB_CCC="%(cuda_cc_cmake)s" ',
+ 'patches': [
+ 'cupy-%(version)s_cusparselt_0.6.0.patch',
+ 'cupy-%(version)s_eb_ccc.patch',
+ ],
+ 'runtest': 'export CUPY_TEST_GPU_LIMIT=1 CUPY_CACHE_DIR="%%(builddir)s" && '
+ 'pytest -n %s tests -k "not slow" ' % _parallel_tests + ' '.join(_skip_tests),
+ 'testinstall': True,
+ 'checksums': [
+ {'cupy-13.0.0.tar.gz': '2f04e7857f692a713360dc9c3b06709806ab8404fca39b5af9721c04a2979aae'},
+ {'cupy-13.0.0_cusparselt_0.6.0.patch': '09cb12d26e78079c50b06f17002bf54c66e5e4743b917c5a218d3fe90124d499'},
+ {'cupy-13.0.0_eb_ccc.patch': 'bfe8b46344759f58491f55418bd9c856d6f72d681ee5fef12820009f808d2db1'},
+ ],
+ }),
+]
+
+sanity_check_commands = [
+ "python -c 'import cupy'",
+]
+
+sanity_pip_check = True
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/c/CuPy/cupy-13.0.0_cusparselt_0.6.0.patch b/easybuild/easyconfigs/c/CuPy/cupy-13.0.0_cusparselt_0.6.0.patch
new file mode 100644
index 00000000000..c202cd34a6c
--- /dev/null
+++ b/easybuild/easyconfigs/c/CuPy/cupy-13.0.0_cusparselt_0.6.0.patch
@@ -0,0 +1,334 @@
+Support for cusparselt 0.6.0 adapted from https://github.com/cupy/cupy/pull/8074
+but with bug fixed for compressed size functions that were wrong.
+author: micketeer@gmail.com
+diff -ru cupy_backends.orig/cuda/libs/cusparselt.pxd cupy_backends/cuda/libs/cusparselt.pxd
+--- cupy_backends.orig/cuda/libs/cusparselt.pxd 2024-03-23 17:08:35.676189389 +0100
++++ cupy_backends/cuda/libs/cusparselt.pxd 2024-03-23 17:30:34.931591841 +0100
+@@ -13,18 +13,20 @@
+ CUSPARSELT_MAT_BATCH_STRIDE = 1 # READ/WRITE
+
+ # cusparseComputeType
+- CUSPARSE_COMPUTE_16F = 0
+- CUSPARSE_COMPUTE_32I = 1
+- CUSPARSE_COMPUTE_TF32 = 2
+- CUSPARSE_COMPUTE_TF32_FAST = 3
++ CUSPARSE_COMPUTE_32I = 0
++ CUSPARSE_COMPUTE_16F = 1
++ CUSPARSE_COMPUTE_32F = 2
+
+ # cusparseLtMatmulDescAttribute_t
+ CUSPARSELT_MATMUL_ACTIVATION_RELU = 0 # READ/WRITE
+ CUSPARSELT_MATMUL_ACTIVATION_RELU_UPPERBOUND = 1 # READ/WRITE
+ CUSPARSELT_MATMUL_ACTIVATION_RELU_THRESHOLD = 2 # READ/WRITE
+ CUSPARSELT_MATMUL_ACTIVATION_GELU = 3 # READ/WRITE
+- CUSPARSELT_MATMUL_BIAS_STRIDE = 4 # READ/WRITE
+- CUSPARSELT_MATMUL_BIAS_POINTER = 5 # READ/WRITE
++ CUSPARSELT_MATMUL_ACTIVATION_GELU_SCALING = 4 # READ/WRITE
++ CUSPARSELT_MATMUL_ALPHA_VECTOR_SCALING = 5 # READ/WRITE
++ CUSPARSELT_MATMUL_BETA_VECTOR_SCALING = 6 # READ/WRITE
++ CUSPARSELT_MATMUL_BIAS_POINTER = 7 # READ/WRITE
++ CUSPARSELT_MATMUL_BIAS_STRIDE = 8 # READ/WRITE
+
+ # cusparseLtMatmulAlg_t
+ CUSPARSELT_MATMUL_ALG_DEFAULT = 0
+@@ -33,6 +35,14 @@
+ CUSPARSELT_MATMUL_ALG_CONFIG_ID = 0 # NOQA, READ/WRITE
+ CUSPARSELT_MATMUL_ALG_CONFIG_MAX_ID = 1 # NOQA, READ-ONLY
+ CUSPARSELT_MATMUL_SEARCH_ITERATIONS = 2 # NOQA, READ/WRITE
++ CUSPARSELT_MATMUL_SPLIT_K = 3 # NOQA, READ/WRITE
++ CUSPARSELT_MATMUL_SPLIT_K_MODE =4 # NOQA, READ/WRITE
++ CUSPARSELT_MATMUL_SPLIT_K_BUFFERS=5 # NOQA, READ/WRITE
++
++ # cusparseLtSplitKMode_t
++ CUSPARSELT_INVALID_MODE = 0
++ CUSPARSELT_SPLIT_K_MODE_ONE_KERNEL = 1
++ CUSPARSELT_SPLIT_K_MODE_TWO_KERNELS = 2
+
+ # cusparseLtPruneAlg_t
+ CUSPARSELT_PRUNE_SPMMA_TILE = 0
+diff -ru cupy_backends.orig/cuda/libs/cusparselt.pyx cupy_backends/cuda/libs/cusparselt.pyx
+--- cupy_backends.orig/cuda/libs/cusparselt.pyx 2024-03-23 17:08:35.676189389 +0100
++++ cupy_backends/cuda/libs/cusparselt.pyx 2024-03-23 18:03:43.706215397 +0100
+@@ -11,6 +11,13 @@
+ from cupy_backends.cuda.libs import cusparse as _cusparse
+
+
++###############################################################################
++# Types
++###############################################################################
++cdef extern from *:
++ ctypedef void* LibraryPropertyType 'libraryPropertyType_t'
++
++
+ cdef extern from '../../cupy_cusparselt.h' nogil:
+ ctypedef int cusparseStatus_t 'cusparseStatus_t'
+ ctypedef int cusparseOrder_t 'cusparseOrder_t'
+@@ -36,11 +43,14 @@
+ ctypedef int cusparseOperation_t 'cusparseOperation_t'
+ ctypedef int cusparseLtMatmulAlg_t 'cusparseLtMatmulAlg_t'
+ ctypedef int cusparseLtMatmulAlgAttribute_t 'cusparseLtMatmulAlgAttribute_t' # NOQA
++ ctypedef int cusparseLtSplitKMode_t 'cusparseLtSplitKMode_t'
+ ctypedef int cusparseLtPruneAlg_t 'cusparseLtPruneAlg_t'
+
+ # Management Functions
+ cusparseStatus_t cusparseLtInit(cusparseLtHandle_t* handle)
+ cusparseStatus_t cusparseLtDestroy(const cusparseLtHandle_t* handle)
++ cusparseStatus_t cusparseLtGetVersion(const cusparseLtHandle_t* handle, int* version)
++ cusparseStatus_t cusparseLtGetProperty(LibraryPropertyType propertyType, int* value)
+
+ # Matmul Functions
+ cusparseStatus_t cusparseLtDenseDescriptorInit(
+@@ -66,6 +76,11 @@
+ const cusparseLtMatDescriptor_t* matDescr,
+ cusparseLtMatDescAttribute_t matAttribute,
+ void* data, size_t dataSize)
++ cusparseStatus_t cusparseLtMatDescSetAttribute(
++ const cusparseLtHandle_t* handle,
++ const cusparseLtMatDescriptor_t* matDescr,
++ cusparseLtMatDescAttribute_t matAttribute,
++ void* data, size_t dataSize)
+ cusparseStatus_t cusparseLtMatmulDescriptorInit(
+ const cusparseLtHandle_t* handle,
+ cusparseLtMatmulDescriptor_t* matMulDescr,
+@@ -95,17 +110,21 @@
+ const cusparseLtHandle_t* handle,
+ cusparseLtMatmulAlgSelection_t* algSelection,
+ cusparseLtMatmulAlgAttribute_t attribute,
+- const void* data, size_t ataSize)
+- cusparseStatus_t cusparseLtMatmulGetWorkspace(
++ const void* data, size_t dataSize)
++ cusparseStatus_t cusparseLtMatmulAlgGetAttribute(
+ const cusparseLtHandle_t* handle,
+ const cusparseLtMatmulAlgSelection_t* algSelection,
++ cusparseLtMatmulAlgAttribute_t attribute,
++ void* data, size_t dataSize)
++ cusparseStatus_t cusparseLtMatmulGetWorkspace(
++ const cusparseLtHandle_t* handle,
++ const cusparseLtMatmulPlan_t* plan,
+ size_t* workspaceSize)
+ cusparseStatus_t cusparseLtMatmulPlanInit(
+ const cusparseLtHandle_t* handle,
+ cusparseLtMatmulPlan_t* plan,
+ const cusparseLtMatmulDescriptor_t* matmulDescr,
+- const cusparseLtMatmulAlgSelection_t* algSelection,
+- size_t workspaceSize)
++ const cusparseLtMatmulAlgSelection_t* algSelection)
+ cusparseStatus_t cusparseLtMatmulPlanDestroy(
+ const cusparseLtMatmulPlan_t* plan)
+ cusparseStatus_t cusparseLtMatmul(
+@@ -113,6 +132,11 @@
+ const void* alpha, const void* d_A, const void* d_B,
+ const void* beta, const void* d_C, void* d_D,
+ void* workspace, runtime.Stream* streams, int32_t numStreams)
++ cusparseStatus_t cusparseLtMatmulSearch(
++ const cusparseLtHandle_t* handle, cusparseLtMatmulPlan_t* plan,
++ const void* alpha, const void* d_A, const void* d_B,
++ const void* beta, const void* d_C, void* d_D,
++ void* workspace, runtime.Stream* streams, int32_t numStreams)
+
+ # Helper Functions
+ cusparseStatus_t cusparseLtSpMMAPrune(
+@@ -123,7 +147,7 @@
+ cusparseStatus_t cusparseLtSpMMAPruneCheck(
+ const cusparseLtHandle_t* handle,
+ const cusparseLtMatmulDescriptor_t* matmulDescr,
+- const void* d_in, int* valid, runtime.Stream stream)
++ const void* d_in, int* d_valid, runtime.Stream stream)
+ cusparseStatus_t cusparseLtSpMMAPrune2(
+ const cusparseLtHandle_t* handle,
+ const cusparseLtMatDescriptor_t* sparseMatDescr,
+@@ -136,19 +160,22 @@
+ runtime.Stream stream)
+ cusparseStatus_t cusparseLtSpMMACompressedSize(
+ const cusparseLtHandle_t* handle, const cusparseLtMatmulPlan_t* plan,
+- size_t* compressedSize)
++ size_t* compressedSize,
++ size_t* compressedBufferSize)
+ cusparseStatus_t cusparseLtSpMMACompress(
+ const cusparseLtHandle_t* handle, const cusparseLtMatmulPlan_t* plan,
+- const void* d_dense, void* d_compressed, runtime.Stream stream)
++ const void* d_dense, void* d_compressed, void* d_compressed_buffer,
++ runtime.Stream stream)
+ cusparseStatus_t cusparseLtSpMMACompressedSize2(
+ const cusparseLtHandle_t* handle,
+ const cusparseLtMatDescriptor_t* sparseMatDescr,
+- size_t* compressedSize)
++ size_t* compressedSize,
++ size_t* compressedBufferSize)
+ cusparseStatus_t cusparseLtSpMMACompress2(
+ const cusparseLtHandle_t* handle,
+ const cusparseLtMatDescriptor_t* sparseMatDescr,
+ int isSparseA, cusparseOperation_t op, const void* d_dense,
+- void* d_compressed, runtime.Stream stream)
++ void* d_compressed, void* d_compressed_buffer, runtime.Stream stream)
+
+ # Build-time version
+ int CUSPARSELT_VERSION
+@@ -370,28 +397,36 @@
+ data, dataSize)
+ check_status(status)
+
++cpdef matmulAlgGetAttribute(Handle handle, MatmulAlgSelection algSelection,
++ attribute, size_t data, size_t dataSize):
++ """Gets the attribute related to algorithm selection descriptor."""
++ status = cusparseLtMatmulAlgGetAttribute(
++ handle._ptr,
++ algSelection._ptr,
++ attribute,
++ data, dataSize)
++ check_status(status)
++
+ cpdef size_t matmulGetWorkspace(Handle handle,
+- MatmulAlgSelection algSelection):
++ MatmulPlan plan):
+ """Determines the required workspace size"""
+ cdef size_t workspaceSize
+ status = cusparseLtMatmulGetWorkspace(
+ handle._ptr,
+- algSelection._ptr,
++ plan._ptr,
+ &workspaceSize)
+ check_status(status)
+ return workspaceSize
+
+ cpdef matmulPlanInit(Handle handle, MatmulPlan plan,
+ MatmulDescriptor matmulDescr,
+- MatmulAlgSelection algSelection,
+- size_t workspaceSize):
++ MatmulAlgSelection algSelection):
+ """Initializes the plan."""
+ status = cusparseLtMatmulPlanInit(
+ handle._ptr,
+ plan._ptr,
+ matmulDescr._ptr,
+- algSelection._ptr,
+- workspaceSize)
++ algSelection._ptr)
+ check_status(status)
+
+ cpdef matmulPlanDestroy(MatmulPlan plan):
+@@ -412,6 +447,18 @@
+ workspace, NULL, 0)
+ check_status(status)
+
++cpdef matmulSearch(Handle handle, MatmulPlan plan,
++ size_t alpha, size_t d_A, size_t d_B,
++ size_t beta, size_t d_C, size_t d_D, size_t workspace):
++ """Evaluates all available algorithms for the matrix multiplication"""
++ status = cusparseLtMatmulSearch(
++ handle._ptr,
++ plan._ptr,
++ alpha, d_A, d_B,
++ beta, d_C, d_D,
++ workspace, NULL, 0)
++ check_status(status)
++
+ ###############################################################################
+ # cuSPARSELt: Helper Functions
+ ###############################################################################
+@@ -428,13 +475,13 @@
+ check_status(status)
+
+ cpdef spMMAPruneCheck(Handle handle, MatmulDescriptor matmulDescr,
+- size_t d_in, size_t valid):
++ size_t d_in, size_t d_valid):
+ """Checks the correctness of the pruning structure"""
+ cdef intptr_t stream = stream_module.get_current_stream_ptr()
+ status = cusparseLtSpMMAPruneCheck(
+ handle._ptr,
+ matmulDescr._ptr,
+- d_in, valid, stream)
++ d_in, d_valid, stream)
+ check_status(status)
+
+ cpdef spMMAPrune2(Handle handle, MatDescriptor sparseMatDescr, isSparseA,
+@@ -460,47 +507,52 @@
+ d_valid, stream)
+ check_status(status)
+
+-cpdef size_t spMMACompressedSize(Handle handle, MatmulPlan plan):
++cpdef spMMACompressedSize(Handle handle, MatmulPlan plan):
+ """Provides the size of the compressed matrix"""
+ cdef size_t compressedSize
++ cdef size_t compressedBufferSize
+ status = cusparseLtSpMMACompressedSize(
+ handle._ptr,
+ plan._ptr,
+- &compressedSize)
++ &compressedSize, &compressedBufferSize)
+ check_status(status)
+- return compressedSize
++ return compressedSize, compressedBufferSize
+
+ cpdef spMMACompress(Handle handle, MatmulPlan plan,
+- size_t d_dense, size_t d_compressed):
++ size_t d_dense, size_t d_compressed,
++ size_t d_compressed_buffer):
+ """Compresses a dense matrix d_dense."""
+ cdef intptr_t stream = stream_module.get_current_stream_ptr()
+ status = cusparseLtSpMMACompress(
+ handle._ptr,
+ plan._ptr,
+- d_dense, d_compressed, stream)
++ d_dense, d_compressed,
++ d_compressed_buffer, stream)
+ check_status(status)
+
+-cpdef size_t spMMACompressedSize2(Handle handle, MatDescriptor sparseMatDescr):
++cpdef spMMACompressedSize2(Handle handle, MatDescriptor sparseMatDescr):
+ """Provides the size of the compressed matrix"""
+ cdef size_t compressedSize
++ cdef size_t compressedBufferSize
+ status = cusparseLtSpMMACompressedSize2(
+ handle._ptr,
+ sparseMatDescr._ptr,
+- &compressedSize)
++ &compressedSize, &compressedBufferSize)
+ check_status(status)
+- return compressedSize
++ return compressedSize, compressedBufferSize
+
+ cpdef spMMACompress2(Handle handle, MatDescriptor sparseMatDescr,
+- isSparseA, op, size_t d_dense, size_t d_compressed):
++ isSparseA, op, size_t d_dense,
++ size_t d_compressed, size_t d_compressed_buffer):
+ """Compresses a dense matrix d_dense."""
+ cdef intptr_t stream = stream_module.get_current_stream_ptr()
+ status = cusparseLtSpMMACompress2(
+ handle._ptr,
+ sparseMatDescr._ptr,
+ isSparseA, op, d_dense,
+- d_compressed, stream)
++ d_compressed, d_compressed_buffer,
++ stream)
+ check_status(status)
+
+-
+ def get_build_version():
+ return CUSPARSELT_VERSION
+diff -ru cupy_backends.orig/stub/cupy_cusparselt.h cupy_backends/stub/cupy_cusparselt.h
+--- cupy_backends.orig/stub/cupy_cusparselt.h 2024-03-23 17:08:35.677189397 +0100
++++ cupy_backends/stub/cupy_cusparselt.h 2024-03-23 18:15:04.734544642 +0100
+@@ -19,6 +19,7 @@
+ typedef enum {} cusparseLtMatmulDescAttribute_t;
+ typedef enum {} cusparseLtMatmulAlg_t;
+ typedef enum {} cusparseLtMatmulAlgAttribute_t;
++typedef enum {} cusparseLtSplitKMode_t;
+ typedef enum {} cusparseLtPruneAlg_t;
+
+ typedef void* cudaStream_t;
+@@ -36,6 +37,14 @@
+ return CUSPARSE_STATUS_SUCCESS;
+ }
+
++cusparseStatus_t cusparseLtGetVersion(...) {
++ return CUSPARSE_STATUS_SUCCESS;
++}
++
++cusparseStatus_t cusparseLtGetProperty(...) {
++ return CUSPARSE_STATUS_SUCCESS;
++}
++
+ cusparseStatus_t cusparseLtDenseDescriptorInit(...) {
+ return CUSPARSE_STATUS_SUCCESS;
+ }
diff --git a/easybuild/easyconfigs/c/CuPy/cupy-13.0.0_eb_ccc.patch b/easybuild/easyconfigs/c/CuPy/cupy-13.0.0_eb_ccc.patch
new file mode 100644
index 00000000000..3a2be87de98
--- /dev/null
+++ b/easybuild/easyconfigs/c/CuPy/cupy-13.0.0_eb_ccc.patch
@@ -0,0 +1,16 @@
+Pick up which cuda compute capabilities to use from the environment variable
+EB_CCC in the standard format "70,75,80"
+author: micketeer@gmail.com
+--- install/cupy_builder/_compiler.py.orig 2024-03-24 01:09:26.501631534 +0000
++++ install/cupy_builder/_compiler.py 2024-03-24 01:10:28.550644001 +0000
+@@ -21,6 +21,10 @@
+ if sys.argv == ['setup.py', 'develop']:
+ return []
+
++ envcfg = os.getenv('EB_CCC', None)
++ if envcfg is not None:
++ return [f'--generate-code=arch=compute_{cc},code=sm_{cc}' for cc in envcfg.split(';')]
++
+ envcfg = os.getenv('CUPY_NVCC_GENERATE_CODE', None)
+ if envcfg is not None and envcfg != 'current':
+ return ['--generate-code={}'.format(arch)
diff --git a/easybuild/easyconfigs/c/CubeLib/CubeLib-4.8.2-GCCcore-13.2.0.eb b/easybuild/easyconfigs/c/CubeLib/CubeLib-4.8.2-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..6fcd6c4bd01
--- /dev/null
+++ b/easybuild/easyconfigs/c/CubeLib/CubeLib-4.8.2-GCCcore-13.2.0.eb
@@ -0,0 +1,51 @@
+# Copyright 2019 Juelich Supercomputing Centre, Germany
+# Copyright 2023-2024 TU Dresden, Germany
+# Authors:: Markus Geimer
+# Alexander Grund
+# License:: 3-clause BSD
+#
+# This work is based on experiences from the UNITE project
+# http://apps.fz-juelich.de/unite/
+
+easyblock = 'EB_Score_minus_P'
+
+name = 'CubeLib'
+version = '4.8.2'
+
+homepage = 'https://www.scalasca.org/software/cube-4.x/download.html'
+description = """
+ Cube, which is used as performance report explorer for Scalasca and Score-P,
+ is a generic tool for displaying a multi-dimensional performance space
+ consisting of the dimensions (i) performance metric, (ii) call path, and
+ (iii) system resource. Each dimension can be represented as a tree, where
+ non-leaf nodes of the tree can be collapsed or expanded to achieve the
+ desired level of granularity.
+
+ This module provides the Cube general purpose C++ library component and
+ command-line tools.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+source_urls = ['https://apps.fz-juelich.de/scalasca/releases/cube/%(version_major_minor)s/dist']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['d6fdef57b1bc9594f1450ba46cf08f431dd0d4ae595c47e2f3454e17e4ae74f4']
+
+builddependencies = [
+ # use same binutils version that was used when building GCCcore
+ ('binutils', '2.40'),
+ ('pkgconf', '2.0.3'),
+]
+dependencies = [
+ ('zlib', '1.2.13'),
+]
+
+configopts = '--enable-shared'
+
+sanity_check_paths = {
+ 'files': ['bin/cubelib-config',
+ 'lib/libcube4.a', 'lib/libcube4.%s' % SHLIB_EXT],
+ 'dirs': ['include/cubelib'],
+}
+
+moduleclass = 'perf'
diff --git a/easybuild/easyconfigs/c/CubeLib/CubeLib-4.8.2-GCCcore-13.3.0.eb b/easybuild/easyconfigs/c/CubeLib/CubeLib-4.8.2-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..6b2414be446
--- /dev/null
+++ b/easybuild/easyconfigs/c/CubeLib/CubeLib-4.8.2-GCCcore-13.3.0.eb
@@ -0,0 +1,52 @@
+# Copyright 2019-2024 Juelich Supercomputing Centre, Germany
+# Copyright 2023-2024 TU Dresden, Germany
+# Authors:: Markus Geimer
+# Alexander Grund
+# Jan André Reuter
+# License:: 3-clause BSD
+#
+# This work is based on experiences from the UNITE project
+# http://apps.fz-juelich.de/unite/
+
+easyblock = 'EB_Score_minus_P'
+
+name = 'CubeLib'
+version = '4.8.2'
+
+homepage = 'https://www.scalasca.org/software/cube-4.x/download.html'
+description = """
+ Cube, which is used as performance report explorer for Scalasca and Score-P,
+ is a generic tool for displaying a multi-dimensional performance space
+ consisting of the dimensions (i) performance metric, (ii) call path, and
+ (iii) system resource. Each dimension can be represented as a tree, where
+ non-leaf nodes of the tree can be collapsed or expanded to achieve the
+ desired level of granularity.
+
+ This module provides the Cube general purpose C++ library component and
+ command-line tools.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://apps.fz-juelich.de/scalasca/releases/cube/%(version_major_minor)s/dist']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['d6fdef57b1bc9594f1450ba46cf08f431dd0d4ae595c47e2f3454e17e4ae74f4']
+
+builddependencies = [
+ # use same binutils version that was used when building GCCcore
+ ('binutils', '2.42'),
+ ('pkgconf', '2.2.0'),
+]
+dependencies = [
+ ('zlib', '1.3.1'),
+]
+
+configopts = '--enable-shared'
+
+sanity_check_paths = {
+ 'files': ['bin/cubelib-config',
+ 'lib/libcube4.a', 'lib/libcube4.%s' % SHLIB_EXT],
+ 'dirs': ['include/cubelib'],
+}
+
+moduleclass = 'perf'
diff --git a/easybuild/easyconfigs/c/CubeWriter/CubeWriter-4.8.2-GCCcore-13.2.0.eb b/easybuild/easyconfigs/c/CubeWriter/CubeWriter-4.8.2-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..d3ca6064df9
--- /dev/null
+++ b/easybuild/easyconfigs/c/CubeWriter/CubeWriter-4.8.2-GCCcore-13.2.0.eb
@@ -0,0 +1,51 @@
+# Copyright:: Copyright 2019 Juelich Supercomputing Centre, Germany
+# Copyright 2023-2024 TU Dresden, Germany
+# Authors:: Markus Geimer
+# Alexander Grund
+# License:: 3-clause BSD
+#
+# This work is based on experiences from the UNITE project
+# http://apps.fz-juelich.de/unite/
+
+easyblock = 'EB_Score_minus_P'
+
+name = 'CubeWriter'
+version = '4.8.2'
+
+homepage = 'https://www.scalasca.org/software/cube-4.x/download.html'
+description = """
+ Cube, which is used as performance report explorer for Scalasca and Score-P,
+ is a generic tool for displaying a multi-dimensional performance space
+ consisting of the dimensions (i) performance metric, (ii) call path, and
+ (iii) system resource. Each dimension can be represented as a tree, where
+ non-leaf nodes of the tree can be collapsed or expanded to achieve the
+ desired level of granularity.
+
+ This module provides the Cube high-performance C writer library component.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+source_urls = ['https://apps.fz-juelich.de/scalasca/releases/cube/%(version_major_minor)s/dist']
+sources = ['cubew-%(version)s.tar.gz']
+checksums = ['4f3bcf0622c2429b8972b5eb3f14d79ec89b8161e3c1cc5862ceda417d7975d2']
+
+builddependencies = [
+ # use same binutils version that was used when building GCCcore
+ ('binutils', '2.40'),
+ ('pkgconf', '2.0.3'),
+]
+
+dependencies = [
+ ('zlib', '1.2.13'),
+]
+
+configopts = '--enable-shared'
+
+sanity_check_paths = {
+ 'files': ['bin/cubew-config',
+ 'lib/libcube4w.a', 'lib/libcube4w.%s' % SHLIB_EXT],
+ 'dirs': ['include/cubew'],
+}
+
+moduleclass = 'perf'
diff --git a/easybuild/easyconfigs/c/CubeWriter/CubeWriter-4.8.2-GCCcore-13.3.0.eb b/easybuild/easyconfigs/c/CubeWriter/CubeWriter-4.8.2-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..e030f21ba6c
--- /dev/null
+++ b/easybuild/easyconfigs/c/CubeWriter/CubeWriter-4.8.2-GCCcore-13.3.0.eb
@@ -0,0 +1,52 @@
+# Copyright:: Copyright 2019-2024 Juelich Supercomputing Centre, Germany
+# Copyright 2023-2024 TU Dresden, Germany
+# Authors:: Markus Geimer
+# Alexander Grund
+# Jan André Reuter
+# License:: 3-clause BSD
+#
+# This work is based on experiences from the UNITE project
+# http://apps.fz-juelich.de/unite/
+
+easyblock = 'EB_Score_minus_P'
+
+name = 'CubeWriter'
+version = '4.8.2'
+
+homepage = 'https://www.scalasca.org/software/cube-4.x/download.html'
+description = """
+ Cube, which is used as performance report explorer for Scalasca and Score-P,
+ is a generic tool for displaying a multi-dimensional performance space
+ consisting of the dimensions (i) performance metric, (ii) call path, and
+ (iii) system resource. Each dimension can be represented as a tree, where
+ non-leaf nodes of the tree can be collapsed or expanded to achieve the
+ desired level of granularity.
+
+ This module provides the Cube high-performance C writer library component.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://apps.fz-juelich.de/scalasca/releases/cube/%(version_major_minor)s/dist']
+sources = ['cubew-%(version)s.tar.gz']
+checksums = ['4f3bcf0622c2429b8972b5eb3f14d79ec89b8161e3c1cc5862ceda417d7975d2']
+
+builddependencies = [
+ # use same binutils version that was used when building GCCcore
+ ('binutils', '2.42'),
+ ('pkgconf', '2.2.0'),
+]
+
+dependencies = [
+ ('zlib', '1.3.1'),
+]
+
+configopts = '--enable-shared'
+
+sanity_check_paths = {
+ 'files': ['bin/cubew-config',
+ 'lib/libcube4w.a', 'lib/libcube4w.%s' % SHLIB_EXT],
+ 'dirs': ['include/cubew'],
+}
+
+moduleclass = 'perf'
diff --git a/easybuild/easyconfigs/c/Cufflinks/Cufflinks-20190706-GCC-12.3.0.eb b/easybuild/easyconfigs/c/Cufflinks/Cufflinks-20190706-GCC-12.3.0.eb
new file mode 100644
index 00000000000..3f087e541cb
--- /dev/null
+++ b/easybuild/easyconfigs/c/Cufflinks/Cufflinks-20190706-GCC-12.3.0.eb
@@ -0,0 +1,49 @@
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+
+name = 'Cufflinks'
+version = '20190706'
+local_commit = 'dc3b0cb'
+
+homepage = 'http://cole-trapnell-lab.github.io/%(namelower)s/'
+description = "Transcript assembly, differential expression, and differential regulation for RNA-Seq"
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+toolchainopts = {'pic': True}
+
+github_account = 'cole-trapnell-lab'
+source_urls = [GITHUB_LOWER_SOURCE]
+sources = [{'download_filename': '%s.tar.gz' % local_commit, 'filename': SOURCE_TAR_GZ}]
+patches = ['Cufflinks-20190706_fix-automake.patch']
+checksums = [
+ {'Cufflinks-20190706.tar.gz': '444c632083a473fe4fd99ff189cef5bbd95daee0912e8eefe79534bf225fbcb6'},
+ {'Cufflinks-20190706_fix-automake.patch': '4eb2eb9e8e549eb6c2e17493801c36554dbfb009d9af86e28195e898a350b3a6'},
+]
+
+builddependencies = [
+ ('Eigen', '3.4.0'),
+ ('Autotools', '20220317'),
+ ('SAMtools', '1.18'),
+ ('Boost', '1.75.0'),
+]
+
+dependencies = [
+ ('zlib', '1.2.13'),
+ ('HTSlib', '1.18'),
+]
+
+preconfigopts = 'autoreconf -i && export LIBS="${LIBS} -lhts" && export CFLAGS="$CFLAGS -fcommon" && '
+configopts = '--with-boost=${EBROOTBOOST} --with-bam=${EBROOTSAMTOOLS}'
+
+buildopts = "BOOST_FILESYSTEM_LIB=$EBROOTBOOST/lib/libboost_filesystem.a "
+buildopts += "BOOST_SERIALIZATION_LIB=$EBROOTBOOST/lib/libboost_serialization.a "
+buildopts += "BOOST_SYSTEM_LIB=$EBROOTBOOST/lib/libboost_system.a "
+buildopts += "BOOST_THREAD_LIB=$EBROOTBOOST/lib/libboost_thread.a "
+
+sanity_check_paths = {
+ 'files': ['bin/cufflinks'],
+ 'dirs': []
+}
+
+sanity_check_commands = ["cufflinks 2>&1 | grep 'Usage:.* cufflinks'"]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/Cufflinks/Cufflinks-20190706_fix-automake.patch b/easybuild/easyconfigs/c/Cufflinks/Cufflinks-20190706_fix-automake.patch
new file mode 100644
index 00000000000..332b4c724e4
--- /dev/null
+++ b/easybuild/easyconfigs/c/Cufflinks/Cufflinks-20190706_fix-automake.patch
@@ -0,0 +1,14 @@
+fix for:
+error: AM_INIT_AUTOMAKE expanded multiple times
+author: Kenneth Hoste (HPC-UGent)
+--- cufflinks-dc3b0cb72a4ac2b6bbc887099e71fc0c21e107b7/configure.ac.orig 2019-07-06 18:28:01.000000000 +0200
++++ cufflinks-dc3b0cb72a4ac2b6bbc887099e71fc0c21e107b7/configure.ac 2024-09-27 13:39:13.512597490 +0200
+@@ -14,7 +14,7 @@
+ AC_CONFIG_SRCDIR([config.h.in])
+ AC_CONFIG_HEADERS([config.h])
+ AC_CONFIG_AUX_DIR([build-aux])
+-AM_INIT_AUTOMAKE
++#AM_INIT_AUTOMAKE
+
+ #AM_PATH_CPPUNIT(1.10.2)
+
diff --git a/easybuild/easyconfigs/c/Cython/Cython-3.0.10-GCCcore-13.2.0.eb b/easybuild/easyconfigs/c/Cython/Cython-3.0.10-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..194048d611d
--- /dev/null
+++ b/easybuild/easyconfigs/c/Cython/Cython-3.0.10-GCCcore-13.2.0.eb
@@ -0,0 +1,40 @@
+easyblock = 'PythonPackage'
+
+name = 'Cython'
+version = '3.0.10'
+
+homepage = 'https://cython.org/'
+description = """
+Cython is an optimising static compiler for both the Python programming
+language and the extended Cython programming language (based on Pyrex).
+"""
+docurls = [
+ 'https://cython.org/#documentation',
+ 'https://github.com/cython/cython',
+]
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+sources = [SOURCE_TAR_GZ]
+checksums = ['dcc96739331fb854dcf503f94607576cfe8488066c61ca50dfd55836f132de99']
+
+builddependencies = [
+ ('binutils', '2.40'),
+]
+
+dependencies = [
+ ('Python', '3.11.5'),
+]
+
+download_dep_fail = True
+use_pip = True
+sanity_pip_check = True
+
+sanity_check_paths = {
+ 'files': ['bin/cygdb', 'bin/cython', 'bin/cythonize'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = ["cython --version"]
+
+moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/c/Cython/Cython-3.0.10-GCCcore-13.3.0.eb b/easybuild/easyconfigs/c/Cython/Cython-3.0.10-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..c9e419d570a
--- /dev/null
+++ b/easybuild/easyconfigs/c/Cython/Cython-3.0.10-GCCcore-13.3.0.eb
@@ -0,0 +1,40 @@
+easyblock = 'PythonPackage'
+
+name = 'Cython'
+version = '3.0.10'
+
+homepage = 'https://cython.org/'
+description = """
+Cython is an optimising static compiler for both the Python programming
+language and the extended Cython programming language (based on Pyrex).
+"""
+docurls = [
+ 'https://cython.org/#documentation',
+ 'https://github.com/cython/cython',
+]
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+sources = [SOURCE_TAR_GZ]
+checksums = ['dcc96739331fb854dcf503f94607576cfe8488066c61ca50dfd55836f132de99']
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+
+dependencies = [
+ ('Python', '3.12.3'),
+]
+
+download_dep_fail = True
+use_pip = True
+sanity_pip_check = True
+
+sanity_check_paths = {
+ 'files': ['bin/cygdb', 'bin/cython', 'bin/cythonize'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = ["cython --version"]
+
+moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/c/Cython/Cython-3.0.8-GCCcore-11.3.0.eb b/easybuild/easyconfigs/c/Cython/Cython-3.0.8-GCCcore-11.3.0.eb
new file mode 100644
index 00000000000..43149d5a83b
--- /dev/null
+++ b/easybuild/easyconfigs/c/Cython/Cython-3.0.8-GCCcore-11.3.0.eb
@@ -0,0 +1,39 @@
+easyblock = 'PythonPackage'
+
+name = 'Cython'
+version = '3.0.8'
+
+homepage = 'https://cython.org/'
+description = """
+Cython is an optimising static compiler for both the Python programming
+language and the extended Cython programming language (based on Pyrex).
+"""
+docurls = [
+ 'https://cython.org/#documentation',
+ 'https://github.com/cython/cython',
+]
+
+toolchain = {'name': 'GCCcore', 'version': '11.3.0'}
+
+sources = [SOURCE_TAR_GZ]
+checksums = ['8333423d8fd5765e7cceea3a9985dd1e0a5dfeb2734629e1a2ed2d6233d39de6']
+
+builddependencies = [('binutils', '2.38')]
+
+dependencies = [('Python', '3.10.4')]
+
+download_dep_fail = True
+use_pip = True
+sanity_pip_check = True
+
+
+sanity_check_paths = {
+ 'files': ['bin/cygdb', 'bin/cython', 'bin/cythonize'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = [
+ 'cython --version',
+]
+
+moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/c/Cython/Cython-3.0.8-GCCcore-12.2.0.eb b/easybuild/easyconfigs/c/Cython/Cython-3.0.8-GCCcore-12.2.0.eb
new file mode 100644
index 00000000000..2a288dcb234
--- /dev/null
+++ b/easybuild/easyconfigs/c/Cython/Cython-3.0.8-GCCcore-12.2.0.eb
@@ -0,0 +1,40 @@
+easyblock = 'PythonPackage'
+
+name = 'Cython'
+version = '3.0.8'
+
+homepage = 'https://cython.org/'
+description = """
+Cython is an optimising static compiler for both the Python programming
+language and the extended Cython programming language (based on Pyrex).
+"""
+docurls = [
+ 'https://cython.org/#documentation',
+ 'https://github.com/cython/cython',
+]
+
+toolchain = {'name': 'GCCcore', 'version': '12.2.0'}
+
+sources = [SOURCE_TAR_GZ]
+checksums = ['8333423d8fd5765e7cceea3a9985dd1e0a5dfeb2734629e1a2ed2d6233d39de6']
+
+builddependencies = [
+ ('binutils', '2.39'),
+]
+
+dependencies = [
+ ('Python', '3.10.8'),
+]
+
+download_dep_fail = True
+use_pip = True
+sanity_pip_check = True
+
+sanity_check_paths = {
+ 'files': ['bin/cygdb', 'bin/cython', 'bin/cythonize'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = ["cython --version"]
+
+moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/c/Cython/Cython-3.0.8-GCCcore-12.3.0.eb b/easybuild/easyconfigs/c/Cython/Cython-3.0.8-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..ac694119ebc
--- /dev/null
+++ b/easybuild/easyconfigs/c/Cython/Cython-3.0.8-GCCcore-12.3.0.eb
@@ -0,0 +1,40 @@
+easyblock = 'PythonPackage'
+
+name = 'Cython'
+version = '3.0.8'
+
+homepage = 'https://cython.org/'
+description = """
+Cython is an optimising static compiler for both the Python programming
+language and the extended Cython programming language (based on Pyrex).
+"""
+docurls = [
+ 'https://cython.org/#documentation',
+ 'https://github.com/cython/cython',
+]
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+sources = [SOURCE_TAR_GZ]
+checksums = ['8333423d8fd5765e7cceea3a9985dd1e0a5dfeb2734629e1a2ed2d6233d39de6']
+
+builddependencies = [
+ ('binutils', '2.40'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+]
+
+download_dep_fail = True
+use_pip = True
+sanity_pip_check = True
+
+sanity_check_paths = {
+ 'files': ['bin/cygdb', 'bin/cython', 'bin/cythonize'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = ["cython --version"]
+
+moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/c/c-ares/c-ares-1.27.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/c/c-ares/c-ares-1.27.0-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..ea5f2f32b19
--- /dev/null
+++ b/easybuild/easyconfigs/c/c-ares/c-ares-1.27.0-GCCcore-13.2.0.eb
@@ -0,0 +1,29 @@
+easyblock = 'ConfigureMake'
+
+name = 'c-ares'
+version = '1.27.0'
+
+homepage = 'https://c-ares.org/'
+description = "c-ares is a C library for asynchronous DNS requests (including name resolves)"
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+toolchainopts = {'pic': True}
+
+github_account = 'c-ares'
+source_urls = [GITHUB_SOURCE]
+sources = ['%s-%s.tar.gz' % (name.replace('-', ''), version.replace('.', '_'))]
+checksums = ['de6a839d47b93174ba260187a084027ea681a91ffe12f2d5f20645652eae246c']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('Autotools', '20220317'),
+]
+
+preconfigopts = 'autoreconf -i -f &&'
+
+sanity_check_paths = {
+ 'files': ['lib/libcares.a', 'lib/libcares.%s' % SHLIB_EXT, 'lib/pkgconfig/libcares.pc'],
+ 'dirs': ['include', 'share/man'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/c/cURL/cURL-8.7.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/c/cURL/cURL-8.7.1-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..02470220971
--- /dev/null
+++ b/easybuild/easyconfigs/c/cURL/cURL-8.7.1-GCCcore-13.3.0.eb
@@ -0,0 +1,43 @@
+easyblock = 'ConfigureMake'
+
+name = 'cURL'
+version = '8.7.1'
+
+homepage = 'https://curl.haxx.se'
+
+description = """
+ libcurl is a free and easy-to-use client-side URL transfer library,
+ supporting DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP,
+ LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP.
+ libcurl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP
+ form based upload, proxies, cookies, user+password authentication (Basic,
+ Digest, NTLM, Negotiate, Kerberos), file transfer resume, http proxy tunneling
+ and more.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://curl.haxx.se/download/']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['f91249c87f68ea00cf27c44fdfa5a78423e41e71b7d408e5901a9896d905c495']
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+
+dependencies = [
+ ('zlib', '1.3.1'),
+ ('OpenSSL', '3', '', SYSTEM),
+]
+
+configopts = '--with-zlib '
+configopts += '--with-ssl=$EBROOTOPENSSL '
+
+modextravars = {'CURL_INCLUDES': '%(installdir)s/include'}
+
+sanity_check_paths = {
+ 'files': ['bin/curl', 'lib/libcurl.a', 'lib/libcurl.%s' % SHLIB_EXT],
+ 'dirs': ['lib/pkgconfig', 'include/curl'],
+}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/c/cairo/cairo-1.18.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/c/cairo/cairo-1.18.0-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..2622f010126
--- /dev/null
+++ b/easybuild/easyconfigs/c/cairo/cairo-1.18.0-GCCcore-13.3.0.eb
@@ -0,0 +1,51 @@
+easyblock = 'MesonNinja'
+
+
+name = 'cairo'
+version = '1.18.0'
+
+homepage = 'https://cairographics.org'
+description = """Cairo is a 2D graphics library with support for multiple output devices.
+ Currently supported output targets include the X Window System (via both Xlib and XCB), Quartz, Win32, image buffers,
+ PostScript, PDF, and SVG file output. Experimental backends include OpenGL, BeOS, OS/2, and DirectFB"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = [
+ 'https://cairographics.org/releases/',
+ 'https://cairographics.org/snapshots/'
+]
+sources = [SOURCE_TAR_XZ]
+checksums = ['243a0736b978a33dee29f9cca7521733b78a65b5418206fef7bd1c3d4cf10b64']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('pkgconf', '2.2.0'),
+ ('Ninja', '1.12.1'),
+ ('Meson', '1.4.0'),
+]
+dependencies = [
+ ('bzip2', '1.0.8'),
+ ('zlib', '1.3.1'),
+ ('libpng', '1.6.43'),
+ ('freetype', '2.13.2'),
+ ('pixman', '0.43.4'),
+ ('expat', '2.6.2'),
+ ('GLib', '2.80.4'),
+ ('X11', '20240607'),
+]
+
+configopts = "--default-library=both" # static and shared library
+
+sanity_check_paths = {
+ 'files': ['bin/cairo-trace', 'lib/cairo/libcairo-trace.%s' % SHLIB_EXT, 'lib/cairo/libcairo-trace.a',
+ 'lib/libcairo.a', 'lib/libcairo-gobject.a', 'lib/libcairo-script-interpreter.a',
+ 'lib/libcairo.%s' % SHLIB_EXT, 'lib/libcairo-gobject.%s' % SHLIB_EXT,
+ 'lib/libcairo-script-interpreter.%s' % SHLIB_EXT] +
+ ['include/cairo/cairo%s.h' % x for x in ['', '-deprecated', '-features', '-ft', '-gobject', '-pdf', '-ps',
+ '-script', '-script-interpreter', '-svg', '-version', '-xcb',
+ '-xlib', '-xlib-xrender']],
+ 'dirs': ['lib/pkgconfig'],
+}
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/c/cairomm/cairomm-1.16.2-GCC-12.3.0.eb b/easybuild/easyconfigs/c/cairomm/cairomm-1.16.2-GCC-12.3.0.eb
new file mode 100644
index 00000000000..286c56e1bbb
--- /dev/null
+++ b/easybuild/easyconfigs/c/cairomm/cairomm-1.16.2-GCC-12.3.0.eb
@@ -0,0 +1,39 @@
+# Updated to MesonNinja as the autogen.sh complained.
+# Author: J. Sassmannshausen (Imperial College London)
+
+easyblock = 'MesonNinja'
+
+name = 'cairomm'
+version = '1.16.2'
+
+homepage = 'http://cairographics.org'
+description = "The Cairomm package provides a C++ interface to Cairo."
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+
+source_urls = ['http://cairographics.org/releases/']
+sources = [SOURCE_TAR_XZ]
+checksums = ['6a63bf98a97dda2b0f55e34d1b5f3fb909ef8b70f9b8d382cb1ff3978e7dc13f']
+
+builddependencies = [
+ ('Meson', '1.1.1'),
+ ('Ninja', '1.11.1'),
+ ('Doxygen', '1.9.7'),
+ ('M4', '1.4.19'),
+]
+
+dependencies = [
+ ('cairo', '1.17.8'),
+ ('libsigc++', '3.6.0'),
+ ('mm-common', '1.0.6'),
+ ('Boost', '1.82.0'),
+]
+
+runtest = 'ninja test'
+
+sanity_check_paths = {
+ 'files': ['lib/libcairomm-1.16.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/c/casacore/casacore-3.5.0-add-C-style-header-for-GCC-13.1.patch b/easybuild/easyconfigs/c/casacore/casacore-3.5.0-add-C-style-header-for-GCC-13.1.patch
new file mode 100644
index 00000000000..efef286e59a
--- /dev/null
+++ b/easybuild/easyconfigs/c/casacore/casacore-3.5.0-add-C-style-header-for-GCC-13.1.patch
@@ -0,0 +1,21 @@
+From 68e43f489abd3d4f1e2fe54a42695396703aa81a Mon Sep 17 00:00:00 2001
+From: Chris Broekema
+Date: Tue, 9 May 2023 12:43:34 +0200
+Subject: [PATCH] add C-style header to fix GCC 13.1 compile error on uint16_t
+ not being a valid type (#1309)
+
+---
+ tables/Dysco/bytepacker.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/tables/Dysco/bytepacker.h b/tables/Dysco/bytepacker.h
+index d62754046..cb1193b41 100644
+--- a/tables/Dysco/bytepacker.h
++++ b/tables/Dysco/bytepacker.h
+@@ -2,6 +2,7 @@
+ #define DYSCO_BYTE_PACKER_H
+
+ #include
++#include
+
+ namespace dyscostman {
diff --git a/easybuild/easyconfigs/c/casacore/casacore-3.5.0-foss-2023b.eb b/easybuild/easyconfigs/c/casacore/casacore-3.5.0-foss-2023b.eb
new file mode 100644
index 00000000000..741298d1488
--- /dev/null
+++ b/easybuild/easyconfigs/c/casacore/casacore-3.5.0-foss-2023b.eb
@@ -0,0 +1,62 @@
+easyblock = 'CMakeMake'
+
+name = 'casacore'
+version = '3.5.0'
+
+homepage = 'https://github.com/casacore/casacore'
+description = """A suite of C++ libraries for radio astronomy data processing.
+The ephemerides data needs to be in DATA_DIR and the location must be specified at runtime.
+Thus user's can update them.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023b'}
+
+source_urls = ['https://github.com/%(name)s/%(name)s/archive']
+sources = ['v%(version)s.tar.gz']
+patches = ['casacore-3.5.0-add-C-style-header-for-GCC-13.1.patch']
+checksums = [
+ '63f1c8eff932b0fcbd38c598a5811e6e5397b72835b637d6f426105a183b3f91', # casacore-3.5.0.tar.gz
+ '7b35d21cd654a7a215d604310f5372319ad21b6261f4a7ae038912b97ef22983', # add-C-style-header-for-GCC-13.1.patch
+]
+
+builddependencies = [
+ ('CMake', '3.27.6'),
+ ('flex', '2.6.4'),
+ ('Bison', '3.8.2'),
+ ('wget', '1.21.4'),
+]
+dependencies = [
+ ('CFITSIO', '4.3.1'),
+ ('WCSLIB', '7.11'),
+ ('HDF5', '1.14.3'),
+ ('GSL', '2.7'),
+ ('Boost.Python', '1.83.0'),
+ ('SciPy-bundle', '2023.11'),
+ ('ncurses', '6.4'),
+]
+
+configopts = '-DBUILD_PYTHON=NO -DBUILD_PYTHON3=YES -Wno-dev -DCXX11="ON" '
+configopts += '-DDATA_DIR=%(installdir)s/data -DUSE_OPENMP=ON -DUSE_HDF5=ON '
+configopts += '-DUSE_MPI=ON '
+
+local_download_cmd = 'wget --retry-connrefused ftp://anonymous@ftp.astron.nl/outgoing/Measures/WSRT_Measures.ztar '
+local_download_cmd += '-O /tmp/WSRT_Measures.ztar '
+
+# Install casacore data
+postinstallcmds = [
+ local_download_cmd,
+ "tar xfvz /tmp/WSRT_Measures.ztar --one-top-level=%(installdir)s/data",
+]
+
+sanity_check_paths = {
+ 'files': [
+ 'lib/libcasa_casa.%s' % SHLIB_EXT,
+ 'lib/libcasa_mirlib.%s' % SHLIB_EXT,
+ 'lib/libcasa_ms.%s' % SHLIB_EXT,
+ ],
+ 'dirs': ['bin', 'include/%(name)s'],
+}
+
+sanity_check_commands = [('measuresdata', '')]
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/c/ccache/ccache-4.10.2-GCCcore-13.3.0.eb b/easybuild/easyconfigs/c/ccache/ccache-4.10.2-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..5a6b4ee2256
--- /dev/null
+++ b/easybuild/easyconfigs/c/ccache/ccache-4.10.2-GCCcore-13.3.0.eb
@@ -0,0 +1,49 @@
+# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA
+# Authors:: Fotis Georgatos
+# License:: MIT/GPL
+
+easyblock = 'CMakeNinja'
+
+name = 'ccache'
+version = '4.10.2'
+
+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': '13.3.0'}
+
+source_urls = [GITHUB_RELEASE]
+sources = [SOURCE_TAR_GZ]
+checksums = ['108100960bb7e64573ea925af2ee7611701241abb36ce0aae3354528403a7d87']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('CMake', '3.29.3'),
+ ('Ninja', '1.12.1'),
+ ('zstd', '1.5.6'),
+ ('pkgconf', '2.2.0'),
+]
+
+dependencies = [
+ ('hiredis', '1.2.0'),
+]
+
+# 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',
+ # Link most libraries statically
+ '-DSTATIC_LINK=ON',
+ # 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/ccache/ccache-4.6.1-GCCcore-11.2.0.eb b/easybuild/easyconfigs/c/ccache/ccache-4.6.1-GCCcore-11.2.0.eb
index 355a2da891f..5b623f231cc 100644
--- a/easybuild/easyconfigs/c/ccache/ccache-4.6.1-GCCcore-11.2.0.eb
+++ b/easybuild/easyconfigs/c/ccache/ccache-4.6.1-GCCcore-11.2.0.eb
@@ -14,17 +14,15 @@ caching previous compilations and detecting when the same compilation is being d
toolchain = {'name': 'GCCcore', 'version': '11.2.0'}
-source_urls = ['https://github.com/ccache/ccache/releases/download/v%(version)s/']
+source_urls = [GITHUB_RELEASE]
sources = [SOURCE_TAR_GZ]
checksums = ['59b28a57c3a45e48d6049001999c9f94cd4d3e9b0196994bed9a6a7437ffa3bc']
-osdependencies = [('glibc-static', 'libc6-dev', 'glibc-devel')]
-
builddependencies = [
('binutils', '2.37'),
('CMake', '3.22.1'),
('Ninja', '1.10.2'),
- ('zstd', '1.5.0', ),
+ ('zstd', '1.5.0'),
('pkg-config', '0.29.2'),
]
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
index 770822d93b6..30f7490b38b 100644
--- 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
@@ -14,17 +14,15 @@ caching previous compilations and detecting when the same compilation is being d
toolchain = {'name': 'GCCcore', 'version': '11.3.0'}
-source_urls = ['https://github.com/ccache/ccache/releases/download/v%(version)s/']
+source_urls = [GITHUB_RELEASE]
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', ),
+ ('zstd', '1.5.2'),
('pkgconf', '1.8.0'),
]
diff --git a/easybuild/easyconfigs/c/ccache/ccache-4.9-GCCcore-12.3.0.eb b/easybuild/easyconfigs/c/ccache/ccache-4.9-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..6ba94b8786d
--- /dev/null
+++ b/easybuild/easyconfigs/c/ccache/ccache-4.9-GCCcore-12.3.0.eb
@@ -0,0 +1,49 @@
+# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA
+# Authors:: Fotis Georgatos
+# License:: MIT/GPL
+
+easyblock = 'CMakeNinja'
+
+name = 'ccache'
+version = '4.9'
+
+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': '12.3.0'}
+
+source_urls = [GITHUB_RELEASE]
+sources = [SOURCE_TAR_GZ]
+checksums = ['866b2223d59333640f0e7a003cbb85b32d9ca3c9445bd9e3cf142942e69dd3ec']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('CMake', '3.26.3'),
+ ('Ninja', '1.11.1'),
+ ('zstd', '1.5.5'),
+ ('pkgconf', '1.9.5'),
+]
+
+dependencies = [
+ ('hiredis', '1.2.0'),
+]
+
+# 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',
+ # Link most libraries statically
+ '-DSTATIC_LINK=ON',
+ # 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/cclib/cclib-1.8-foss-2023a.eb b/easybuild/easyconfigs/c/cclib/cclib-1.8-foss-2023a.eb
new file mode 100644
index 00000000000..9ab78e650e9
--- /dev/null
+++ b/easybuild/easyconfigs/c/cclib/cclib-1.8-foss-2023a.eb
@@ -0,0 +1,41 @@
+easyblock = 'PythonBundle'
+
+name = 'cclib'
+version = '1.8'
+
+homepage = 'https://cclib.github.io/'
+
+description = """
+ cclib is a Python library that provides parsers for computational chemistry log files.
+ It also provides a platform to implement algorithms in a package-independent manner.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('periodictable', '1.6.1', {
+ 'checksums': ['7c501c9f73d77b1fb28cb51e85b28429c2c44a99ce3d1274894564c72d712603'],
+ }),
+ (name, version, {
+ 'checksums': ['12b7a7ed8191f02fa12320dbdc830546ee1615e8b4737e3d766f34622abbd521'],
+ }),
+]
+
+_bins = ['ccframe', 'ccget', 'ccwrite', 'cda']
+
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in _bins],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = ['%s --help' % x for x in _bins]
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/c/cddlib/cddlib-0.94m-GCCcore-13.2.0.eb b/easybuild/easyconfigs/c/cddlib/cddlib-0.94m-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..c747475d137
--- /dev/null
+++ b/easybuild/easyconfigs/c/cddlib/cddlib-0.94m-GCCcore-13.2.0.eb
@@ -0,0 +1,38 @@
+easyblock = 'ConfigureMake'
+
+name = 'cddlib'
+version = '0.94m'
+
+homepage = 'https://github.com/cddlib/cddlib'
+description = "An efficient implementation of the Double Description Method"
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+toolchainopts = {'pic': True}
+
+github_account = 'cddlib'
+source_urls = [GITHUB_SOURCE]
+sources = ['%(version)s.tar.gz']
+checksums = ['766d8ec2135989830748e5e2fe57f307ed0706431c135541c3c081cbec0bc34f']
+
+builddependencies = [
+ ('Autotools', '20220317'),
+ ('binutils', '2.40'),
+]
+
+dependencies = [('GMP', '6.3.0')]
+
+preconfigopts = "autoreconf -f -i && "
+
+buildopts = "SUBDIRS='lib-src src'" # build sources but spare the documentation in latex
+installopts = buildopts
+
+local_exes = ['adjacency', 'allfaces', 'cddexec', 'fourier', 'lcdd', 'projection', 'redcheck', 'scdd', 'testcdd1',
+ 'testcdd2', 'testlp1', 'testlp2', 'testlp3', 'testshoot']
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in local_exes] + ['bin/%s_gmp' % x for x in local_exes] +
+ ['lib/%s.%s' % (l, e) for l in ['libcdd', 'libcddgmp'] for e in ['a', SHLIB_EXT]] +
+ ['include/cddlib/%s.h' % h for h in ['cdd', 'cddmp', 'cddtypes', 'setoper', 'splitmix64']],
+ 'dirs': ['share/doc']
+}
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/c/cell2location/cell2location-0.05-alpha-fosscuda-2020b.eb b/easybuild/easyconfigs/c/cell2location/cell2location-0.05-alpha-fosscuda-2020b.eb
index 9a0eeba1628..1556b0f9dad 100644
--- a/easybuild/easyconfigs/c/cell2location/cell2location-0.05-alpha-fosscuda-2020b.eb
+++ b/easybuild/easyconfigs/c/cell2location/cell2location-0.05-alpha-fosscuda-2020b.eb
@@ -45,12 +45,6 @@ preinstallopts = "sed -i 's/theano/Theano-PyMC/g' setup.py && "
use_pip = True
-exts_default_options = {
- 'download_dep_fail': True,
- 'sanity_pip_check': True,
- 'use_pip': True,
-}
-
exts_list = [
('opt-einsum', '3.3.0', {
'source_tmpl': 'opt_einsum-%(version)s.tar.gz',
diff --git a/easybuild/easyconfigs/c/cffi/cffi-1.16.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/c/cffi/cffi-1.16.0-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..94a734e98da
--- /dev/null
+++ b/easybuild/easyconfigs/c/cffi/cffi-1.16.0-GCCcore-13.3.0.eb
@@ -0,0 +1,38 @@
+easyblock = "PythonBundle"
+
+name = 'cffi'
+version = '1.16.0'
+
+homepage = 'https://cffi.readthedocs.io/en/latest/'
+description = """C Foreign Function Interface for Python. Interact with almost any C code from
+Python, based on C-like declarations that you can often copy-paste from header
+files or documentation.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+
+dependencies = [
+ ('Python', '3.12.3'),
+]
+
+exts_default_options = {
+ 'download_dep_fail': True,
+ 'sanity_pip_check': True,
+ 'use_pip': True,
+}
+
+exts_list = [
+ ('pycparser', '2.22', {
+ 'checksums': ['491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6'],
+ }),
+ (name, version, {
+ 'checksums': ['bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0'],
+ }),
+]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/c/cfgrib/cfgrib-0.9.14.0-foss-2023a.eb b/easybuild/easyconfigs/c/cfgrib/cfgrib-0.9.14.0-foss-2023a.eb
new file mode 100644
index 00000000000..b6b2b66159c
--- /dev/null
+++ b/easybuild/easyconfigs/c/cfgrib/cfgrib-0.9.14.0-foss-2023a.eb
@@ -0,0 +1,41 @@
+easyblock = "PythonBundle"
+
+name = 'cfgrib'
+version = '0.9.14.0'
+
+homepage = 'https://github.com/ecmwf/cfgrib/'
+description = """
+A Python interface to map GRIB files to the NetCDF Common Data Model following the CF
+Convention using ecCodes.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+builddependencies = [
+ ('poetry', '1.7.1'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('ecCodes', '2.31.0'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('findlibs', '0.0.5', {
+ 'checksums': ['7a801571e999d0ee83f9b92cbb598c21f861ee26ca9dba74cea8958ba4335e7e'],
+ }),
+ ('eccodes', '1.7.1', {
+ 'checksums': ['d3c7e9bab779d35b624cfd7b3331de111602cba6a6f6368efcc12407f30b2697'],
+ }),
+ (name, version, {
+ 'checksums': ['2b9a1e6bd47397e585f878ffd8aaac5969f6c9a448da767c700917b89c275bb2'],
+ }),
+]
+
+sanity_check_commands = ['python -m cfgrib selfcheck']
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/c/charm-gems/charm-gems-1.3.3-foss-2023a.eb b/easybuild/easyconfigs/c/charm-gems/charm-gems-1.3.3-foss-2023a.eb
new file mode 100644
index 00000000000..6f01647c03b
--- /dev/null
+++ b/easybuild/easyconfigs/c/charm-gems/charm-gems-1.3.3-foss-2023a.eb
@@ -0,0 +1,55 @@
+easyblock = 'PythonBundle'
+
+name = 'charm-gems'
+version = '1.3.3'
+
+homepage = 'https://github.com/simnibs/charm-gems'
+description = """This repository contains the gems C++ code and python bindings used in
+Freesurfer's Sequence-Adaptive Multimodal SEGmentation (SAMSEG) and in
+SimNIBS 4.0 Complete Head Anatomy Reconstruction Method (CHARM) to
+create individualized head models for electric field simulations."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'pic': True}
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+ ('make', '4.4.1'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('SciPy-bundle', '2023.07'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+# update GCC version in vcl_compiler.h and install ITK from submodule
+local_preinstallopts = "sed -i 's/error \"Dunno about this gcc\"/define VCL_GCC_123/' \\"
+local_preinstallopts += "ITK/Modules/ThirdParty/VNL/src/vxl/vcl/vcl_compiler.h && "
+local_preinstallopts += "mkdir ITK-build && cd ITK-build && "
+local_preinstallopts += "cmake -DBUILD_SHARED_LIBS=OFF -DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF \\"
+local_preinstallopts += "-DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=%(installdir)s/ITK-install ../ITK && "
+local_preinstallopts += "make install && cd .. && "
+local_preinstallopts += "export ITK_DIR=%(installdir)s/ITK-install && "
+
+exts_list = [
+ (name, version, {
+ 'preinstallopts': local_preinstallopts,
+ 'sources': [{
+ 'filename': '%(name)s-%(version)s.tar.gz',
+ 'git_config': {
+ 'url': 'https://github.com/simnibs',
+ 'repo_name': 'charm-gems',
+ 'tag': 'v%(version)s',
+ 'recursive': True,
+ 'keep_git_dir': True,
+ }
+ }],
+ 'checksums': [None],
+ }),
+]
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/c/chewBBACA/chewBBACA-3.3.9-foss-2022b.eb b/easybuild/easyconfigs/c/chewBBACA/chewBBACA-3.3.9-foss-2022b.eb
new file mode 100644
index 00000000000..b9964db690a
--- /dev/null
+++ b/easybuild/easyconfigs/c/chewBBACA/chewBBACA-3.3.9-foss-2022b.eb
@@ -0,0 +1,66 @@
+easyblock = 'PythonBundle'
+
+name = 'chewBBACA'
+version = '3.3.9'
+
+homepage = 'https://github.com/B-UMMI/chewBBACA'
+description = """chewBBACA is a software suite for the creation and evaluation of core genome and whole genome
+MultiLocus Sequence Typing (cg/wgMLST) schemas and results. The "BBACA" stands for "BSR-Based Allele Calling Algorithm".
+BSR stands for BLAST Score Ratio as proposed by Rasko DA et al. The "chew" part adds extra coolness to the name and
+could be thought of as "Comprehensive and Highly Efficient Workflow"."""
+
+toolchain = {'name': 'foss', 'version': '2022b'}
+
+dependencies = [
+ ('Python', '3.10.8'),
+ ('SciPy-bundle', '2023.02'),
+ # Cython 3 is required, see https://github.com/althonos/pyrodigal/issues/40
+ # Cython included with Python-bundle-PyPI (0.29.35) is too old
+ ('Cython', '3.0.8'),
+ ('Biopython', '1.81'),
+ ('plotly.py', '5.13.1'),
+ ('BLAST+', '2.14.0'),
+ ('prodigal', '2.6.3'),
+ ('MAFFT', '7.505', '-with-extensions'),
+ ('FastTree', '2.1.11'),
+ ('archspec', '0.2.0'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('pyrodigal', '3.5.1', {
+ 'checksums': ['20af59a6d968c88910b99d5f647bb7dd22d49e440ead95fe715cdd2c49f36e9f'],
+ }),
+ ('isodate', '0.6.1', {
+ 'checksums': ['48c5881de7e8b0a0d648cb024c8062dc84e7b840ed81e864c7614fd3c127bde9'],
+ }),
+ ('rdflib', '7.0.0', {
+ 'checksums': ['9995eb8569428059b8c1affd26b25eac510d64f5043d9ce8c84e0d0036e995ae'],
+ }),
+ ('SPARQLWrapper', '2.0.0', {
+ 'modulename': 'SPARQLWrapper',
+ 'checksums': ['3fed3ebcc77617a4a74d2644b86fd88e0f32e7f7003ac7b2b334c026201731f1'],
+ }),
+ (name, version, {
+ 'modulename': 'CHEWBBACA',
+ # relax numpy version requirement
+ 'preinstallopts': "sed -i 's/numpy~=1.24.3/numpy~=1.24.2/g' pyproject.toml && ",
+ 'runtest': "python setup.py test",
+ 'sources': ['%(namelower)s-%(version)s.tar.gz'],
+ 'checksums': ['4bf0792b8cdd1783b50340ac713748ef2a351209cacb50ad4c9e2fe2e7fba772'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/chewBBACA.py', 'bin/chewie'],
+ 'dirs': [],
+}
+
+sanity_check_commands = [
+ 'chewBBACA.py --help',
+ 'chewie --help',
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/chopper/chopper-0.9.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/c/chopper/chopper-0.9.0-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..b1788fb34f9
--- /dev/null
+++ b/easybuild/easyconfigs/c/chopper/chopper-0.9.0-GCCcore-12.3.0.eb
@@ -0,0 +1,315 @@
+easyblock = 'Cargo'
+
+name = 'chopper'
+version = '0.9.0'
+
+homepage = 'https://github.com/wdecoster/chopper'
+description = """Rust implementation of NanoFilt+NanoLyse, both
+originally written in Python. This tool, intended for long read
+sequencing such as PacBio or ONT, filters and trims a fastq file.
+Filtering is done on average read quality and minimal or maximal read
+length, and applying a headcrop (start of read) and tailcrop (end of
+read) while printing the reads passing the filter."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+github_account = 'wdecoster'
+source_urls = [GITHUB_SOURCE]
+sources = ['v%(version)s.tar.gz']
+patches = [
+ 'chopper-0.9.0_fix_incorrect_version.patch',
+]
+checksums = [
+ {'v0.9.0.tar.gz': 'ae5b6f8f5ffde45582998b63cb45b4221b25ee37a9fde7a256e653c7f3f12075'},
+ {'adler-1.0.2.tar.gz': 'f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe'},
+ {'aho-corasick-1.1.3.tar.gz': '8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916'},
+ {'anstream-0.6.13.tar.gz': 'd96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb'},
+ {'anstyle-1.0.6.tar.gz': '8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc'},
+ {'anstyle-parse-0.2.3.tar.gz': 'c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c'},
+ {'anstyle-query-1.0.2.tar.gz': 'e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648'},
+ {'anstyle-wincon-3.0.2.tar.gz': '1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7'},
+ {'anyhow-1.0.82.tar.gz': 'f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519'},
+ {'approx-0.5.1.tar.gz': 'cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6'},
+ {'atty-0.2.14.tar.gz': 'd9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8'},
+ {'autocfg-1.2.0.tar.gz': 'f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80'},
+ {'bio-1.6.0.tar.gz': '7a72cb93babf08c85b375c2938ac678cc637936b3ebb72266d433cec2577f6c2'},
+ {'bio-types-1.0.1.tar.gz': '9d45749b87f21808051025e9bf714d14ff4627f9d8ca967eade6946ea769aa4a'},
+ {'bit-set-0.5.3.tar.gz': '0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1'},
+ {'bit-vec-0.6.3.tar.gz': '349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb'},
+ {'buffer-redux-1.0.1.tar.gz': '4c9f8ddd22e0a12391d1e7ada69ec3b0da1914f1cec39c5cf977143c5b2854f5'},
+ {'bv-0.11.1.tar.gz': '8834bb1d8ee5dc048ee3124f2c7c1afcc6bc9aed03f11e9dfd8c69470a5db340'},
+ {'bytecount-0.6.8.tar.gz': '5ce89b21cab1437276d2650d57e971f9d548a2d9037cc231abdc0562b97498ce'},
+ {'bytemuck-1.15.0.tar.gz': '5d6d68c57235a3a081186990eca2867354726650f42f7516ca50c28d6281fd15'},
+ {'byteorder-1.5.0.tar.gz': '1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b'},
+ {'bzip2-0.4.4.tar.gz': 'bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8'},
+ {'bzip2-sys-0.1.11+1.0.8.tar.gz': '736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc'},
+ {'cc-1.0.94.tar.gz': '17f6e324229dc011159fcc089755d1e2e216a90d43a7dea6853ca740b84f35e7'},
+ {'cfg-if-1.0.0.tar.gz': 'baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd'},
+ {'clap-4.5.4.tar.gz': '90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0'},
+ {'clap_builder-4.5.2.tar.gz': 'ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4'},
+ {'clap_derive-4.5.4.tar.gz': '528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64'},
+ {'clap_lex-0.7.0.tar.gz': '98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce'},
+ {'cmake-0.1.50.tar.gz': 'a31c789563b815f77f4250caee12365734369f942439b7defd71e18a48197130'},
+ {'colorchoice-1.0.0.tar.gz': 'acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7'},
+ {'crc32fast-1.4.0.tar.gz': 'b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa'},
+ {'crossbeam-deque-0.8.5.tar.gz': '613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d'},
+ {'crossbeam-epoch-0.9.18.tar.gz': '5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e'},
+ {'crossbeam-utils-0.8.19.tar.gz': '248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345'},
+ {'csv-1.3.0.tar.gz': 'ac574ff4d437a7b5ad237ef331c17ccca63c46479e5b5453eb8e10bb99a759fe'},
+ {'csv-core-0.1.11.tar.gz': '5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70'},
+ {'custom_derive-0.1.7.tar.gz': 'ef8ae57c4978a2acd8b869ce6b9ca1dfe817bff704c220209fdef2c0b75a01b9'},
+ {'derive-new-0.5.9.tar.gz': '3418329ca0ad70234b9735dc4ceed10af4df60eff9c8e7b06cb5e520d92c3535'},
+ {'editdistancek-1.0.2.tar.gz': '3e02df23d5b1c6f9e69fa603b890378123b93073df998a21e6e33b9db0a32613'},
+ {'either-1.11.0.tar.gz': 'a47c1c47d2f5964e29c61246e81db715514cd532db6b5116a25ea3c03d6780a2'},
+ {'enum-map-2.7.3.tar.gz': '6866f3bfdf8207509a033af1a75a7b08abda06bbaaeae6669323fd5a097df2e9'},
+ {'enum-map-derive-0.17.0.tar.gz': 'f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb'},
+ {'equivalent-1.0.1.tar.gz': '5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5'},
+ {'feature-probe-0.1.1.tar.gz': '835a3dc7d1ec9e75e2b5fb4ba75396837112d2060b03f7d43bc1897c7f7211da'},
+ {'fixedbitset-0.4.2.tar.gz': '0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80'},
+ {'flate2-1.0.28.tar.gz': '46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e'},
+ {'fxhash-0.2.1.tar.gz': 'c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c'},
+ {'getrandom-0.2.14.tar.gz': '94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c'},
+ {'hashbrown-0.14.3.tar.gz': '290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604'},
+ {'heck-0.4.1.tar.gz': '95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8'},
+ {'heck-0.5.0.tar.gz': '2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea'},
+ {'hermit-abi-0.1.19.tar.gz': '62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33'},
+ {'indexmap-2.2.6.tar.gz': '168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26'},
+ {'itertools-0.11.0.tar.gz': 'b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57'},
+ {'itertools-num-0.1.3.tar.gz': 'a872a22f9e6f7521ca557660adb96dd830e54f0f490fa115bb55dd69d38b27e7'},
+ {'itoa-1.0.11.tar.gz': '49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b'},
+ {'lazy_static-1.4.0.tar.gz': 'e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646'},
+ {'libc-0.2.153.tar.gz': '9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd'},
+ {'libm-0.2.8.tar.gz': '4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058'},
+ {'libz-ng-sys-1.1.15.tar.gz': 'c6409efc61b12687963e602df8ecf70e8ddacf95bc6576bcf16e3ac6328083c5'},
+ {'libz-sys-1.1.16.tar.gz': '5e143b5e666b2695d28f6bca6497720813f699c9602dd7f5cac91008b8ada7f9'},
+ {'lzma-sys-0.1.20.tar.gz': '5fda04ab3764e6cde78b9974eec4f779acaba7c4e84b36eca3cf77c581b85d27'},
+ {'matrixmultiply-0.3.8.tar.gz': '7574c1cf36da4798ab73da5b215bbf444f50718207754cb522201d78d1cd0ff2'},
+ {'memchr-2.7.2.tar.gz': '6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d'},
+ {'minimap2-0.1.17+minimap2.2.27.tar.gz': 'd920763956405bd0cbeead7e4415097d5780f8a8ce4e1dde0415d15736597dfd'},
+ {'minimap2-sys-0.1.18+minimap2.2.27.tar.gz': '185d3f931e11c1df371455a01e93a0037041d011705b5ff1d283d619b234c47c'},
+ {'miniz_oxide-0.7.2.tar.gz': '9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7'},
+ {'multimap-0.9.1.tar.gz': 'e1a5d38b9b352dbd913288736af36af41c48d61b1a8cd34bcecd727561b7d511'},
+ {'nalgebra-0.29.0.tar.gz': 'd506eb7e08d6329505faa8a3a00a5dcc6de9f76e0c77e4b75763ae3c770831ff'},
+ {'nalgebra-macros-0.1.0.tar.gz': '01fcc0b8149b4632adc89ac3b7b31a12fb6099a0317a4eb2ebff574ef7de7218'},
+ {'ndarray-0.15.6.tar.gz': 'adb12d4e967ec485a5f71c6311fe28158e9d6f4bc4a447b474184d0f91a8fa32'},
+ {'needletail-0.5.1.tar.gz': 'db05a5ab397f64070d8c998fa0fbb84e484b81f95752af317dac183a82d9295d'},
+ {'newtype_derive-0.1.6.tar.gz': 'ac8cd24d9f185bb7223958d8c1ff7a961b74b1953fd05dba7cc568a63b3861ec'},
+ {'num-complex-0.4.5.tar.gz': '23c6602fda94a57c990fe0df199a035d83576b496aa29f4e634a8ac6004e68a6'},
+ {'num-integer-0.1.46.tar.gz': '7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f'},
+ {'num-rational-0.4.1.tar.gz': '0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0'},
+ {'num-traits-0.2.18.tar.gz': 'da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a'},
+ {'ordered-float-3.9.2.tar.gz': 'f1e1c390732d15f1d48471625cd92d154e66db2c56645e29a9cd26f4699f72dc'},
+ {'paste-1.0.14.tar.gz': 'de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c'},
+ {'petgraph-0.6.4.tar.gz': 'e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9'},
+ {'pkg-config-0.3.30.tar.gz': 'd231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec'},
+ {'ppv-lite86-0.2.17.tar.gz': '5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de'},
+ {'proc-macro2-1.0.81.tar.gz': '3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba'},
+ {'quote-1.0.36.tar.gz': '0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7'},
+ {'rand-0.8.5.tar.gz': '34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404'},
+ {'rand_chacha-0.3.1.tar.gz': 'e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88'},
+ {'rand_core-0.6.4.tar.gz': 'ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c'},
+ {'rand_distr-0.4.3.tar.gz': '32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31'},
+ {'rawpointer-0.2.1.tar.gz': '60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3'},
+ {'rayon-1.10.0.tar.gz': 'b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa'},
+ {'rayon-core-1.12.1.tar.gz': '1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2'},
+ {'regex-1.10.4.tar.gz': 'c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c'},
+ {'regex-automata-0.4.6.tar.gz': '86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea'},
+ {'regex-syntax-0.8.3.tar.gz': 'adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56'},
+ {'rustc_version-0.1.7.tar.gz': 'c5f5376ea5e30ce23c03eb77cbe4962b988deead10910c372b226388b594c084'},
+ {'rustversion-1.0.15.tar.gz': '80af6f9131f277a45a3fba6ce8e2258037bb0477a67e610d3c1fe046ab31de47'},
+ {'ryu-1.0.17.tar.gz': 'e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1'},
+ {'safe_arch-0.7.1.tar.gz': 'f398075ce1e6a179b46f51bd88d0598b92b00d3551f1a2d4ac49e771b56ac354'},
+ {'semver-0.1.20.tar.gz': 'd4f410fedcf71af0345d7607d246e7ad15faaadd49d240ee3b24e5dc21a820ac'},
+ {'serde-1.0.198.tar.gz': '9846a40c979031340571da2545a4e5b7c4163bdae79b301d5f86d03979451fcc'},
+ {'serde_derive-1.0.198.tar.gz': 'e88edab869b01783ba905e7d0153f9fc1a6505a96e4ad3018011eedb838566d9'},
+ {'simba-0.6.0.tar.gz': 'f0b7840f121a46d63066ee7a99fc81dcabbc6105e437cae43528cea199b5a05f'},
+ {'simdutf8-0.1.4.tar.gz': 'f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a'},
+ {'statrs-0.16.0.tar.gz': '2d08e5e1748192713cc281da8b16924fb46be7b0c2431854eadc785823e5696e'},
+ {'strsim-0.11.1.tar.gz': '7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f'},
+ {'strum-0.25.0.tar.gz': '290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125'},
+ {'strum_macros-0.25.3.tar.gz': '23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0'},
+ {'syn-1.0.109.tar.gz': '72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237'},
+ {'syn-2.0.60.tar.gz': '909518bc7b1c9b779f1bbf07f2929d35af9f0f37e47c6e9ef7f9dddc1e1821f3'},
+ {'thiserror-1.0.58.tar.gz': '03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297'},
+ {'thiserror-impl-1.0.58.tar.gz': 'c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7'},
+ {'triple_accel-0.4.0.tar.gz': '22048bc95dfb2ffd05b1ff9a756290a009224b60b2f0e7525faeee7603851e63'},
+ {'typenum-1.17.0.tar.gz': '42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825'},
+ {'unicode-ident-1.0.12.tar.gz': '3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b'},
+ {'utf8parse-0.2.1.tar.gz': '711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a'},
+ {'vcpkg-0.2.15.tar.gz': 'accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426'},
+ {'vec_map-0.8.2.tar.gz': 'f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191'},
+ {'wasi-0.11.0+wasi-snapshot-preview1.tar.gz': '9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423'},
+ {'wide-0.7.16.tar.gz': '81a1851a719f11d1d2fea40e15c72f6c00de8c142d7ac47c1441cc7e4d0d5bc6'},
+ {'winapi-0.3.9.tar.gz': '5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419'},
+ {'winapi-i686-pc-windows-gnu-0.4.0.tar.gz': 'ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6'},
+ {'winapi-x86_64-pc-windows-gnu-0.4.0.tar.gz': '712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f'},
+ {'windows-sys-0.52.0.tar.gz': '282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d'},
+ {'windows-targets-0.52.5.tar.gz': '6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb'},
+ {'windows_aarch64_gnullvm-0.52.5.tar.gz': '7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263'},
+ {'windows_aarch64_msvc-0.52.5.tar.gz': '9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6'},
+ {'windows_i686_gnu-0.52.5.tar.gz': '88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670'},
+ {'windows_i686_gnullvm-0.52.5.tar.gz': '87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9'},
+ {'windows_i686_msvc-0.52.5.tar.gz': 'db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf'},
+ {'windows_x86_64_gnu-0.52.5.tar.gz': '4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9'},
+ {'windows_x86_64_gnullvm-0.52.5.tar.gz': '852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596'},
+ {'windows_x86_64_msvc-0.52.5.tar.gz': 'bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0'},
+ {'xz2-0.1.7.tar.gz': '388c44dc09d76f1536602ead6d325eb532f5c122f17782bd57fb47baeeb767e2'},
+ {'chopper-0.9.0_fix_incorrect_version.patch': 'b3f3dfa620fbda6d00a73eafc8508a73ac4d96f6edfb0e804b3ff0bc149e37cd'},
+]
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('CMake', '3.26.3'),
+ ('Rust', '1.75.0'),
+]
+
+dependencies = [
+ ('bzip2', '1.0.8'),
+ ('XZ', '5.4.2'),
+]
+
+crates = [
+ ('adler', '1.0.2'),
+ ('aho-corasick', '1.1.3'),
+ ('anstream', '0.6.13'),
+ ('anstyle', '1.0.6'),
+ ('anstyle-parse', '0.2.3'),
+ ('anstyle-query', '1.0.2'),
+ ('anstyle-wincon', '3.0.2'),
+ ('anyhow', '1.0.82'),
+ ('approx', '0.5.1'),
+ ('atty', '0.2.14'),
+ ('autocfg', '1.2.0'),
+ ('bio', '1.6.0'),
+ ('bio-types', '1.0.1'),
+ ('bit-set', '0.5.3'),
+ ('bit-vec', '0.6.3'),
+ ('buffer-redux', '1.0.1'),
+ ('bv', '0.11.1'),
+ ('bytecount', '0.6.8'),
+ ('bytemuck', '1.15.0'),
+ ('byteorder', '1.5.0'),
+ ('bzip2', '0.4.4'),
+ ('bzip2-sys', '0.1.11+1.0.8'),
+ ('cc', '1.0.94'),
+ ('cfg-if', '1.0.0'),
+ ('clap', '4.5.4'),
+ ('clap_builder', '4.5.2'),
+ ('clap_derive', '4.5.4'),
+ ('clap_lex', '0.7.0'),
+ ('cmake', '0.1.50'),
+ ('colorchoice', '1.0.0'),
+ ('crc32fast', '1.4.0'),
+ ('crossbeam-deque', '0.8.5'),
+ ('crossbeam-epoch', '0.9.18'),
+ ('crossbeam-utils', '0.8.19'),
+ ('csv', '1.3.0'),
+ ('csv-core', '0.1.11'),
+ ('custom_derive', '0.1.7'),
+ ('derive-new', '0.5.9'),
+ ('editdistancek', '1.0.2'),
+ ('either', '1.11.0'),
+ ('enum-map', '2.7.3'),
+ ('enum-map-derive', '0.17.0'),
+ ('equivalent', '1.0.1'),
+ ('feature-probe', '0.1.1'),
+ ('fixedbitset', '0.4.2'),
+ ('flate2', '1.0.28'),
+ ('fxhash', '0.2.1'),
+ ('getrandom', '0.2.14'),
+ ('hashbrown', '0.14.3'),
+ ('heck', '0.4.1'),
+ ('heck', '0.5.0'),
+ ('hermit-abi', '0.1.19'),
+ ('indexmap', '2.2.6'),
+ ('itertools', '0.11.0'),
+ ('itertools-num', '0.1.3'),
+ ('itoa', '1.0.11'),
+ ('lazy_static', '1.4.0'),
+ ('libc', '0.2.153'),
+ ('libm', '0.2.8'),
+ ('libz-ng-sys', '1.1.15'),
+ ('libz-sys', '1.1.16'),
+ ('lzma-sys', '0.1.20'),
+ ('matrixmultiply', '0.3.8'),
+ ('memchr', '2.7.2'),
+ ('minimap2', '0.1.17+minimap2.2.27'),
+ ('minimap2-sys', '0.1.18+minimap2.2.27'),
+ ('miniz_oxide', '0.7.2'),
+ ('multimap', '0.9.1'),
+ ('nalgebra', '0.29.0'),
+ ('nalgebra-macros', '0.1.0'),
+ ('ndarray', '0.15.6'),
+ ('needletail', '0.5.1'),
+ ('newtype_derive', '0.1.6'),
+ ('num-complex', '0.4.5'),
+ ('num-integer', '0.1.46'),
+ ('num-rational', '0.4.1'),
+ ('num-traits', '0.2.18'),
+ ('ordered-float', '3.9.2'),
+ ('paste', '1.0.14'),
+ ('petgraph', '0.6.4'),
+ ('pkg-config', '0.3.30'),
+ ('ppv-lite86', '0.2.17'),
+ ('proc-macro2', '1.0.81'),
+ ('quote', '1.0.36'),
+ ('rand', '0.8.5'),
+ ('rand_chacha', '0.3.1'),
+ ('rand_core', '0.6.4'),
+ ('rand_distr', '0.4.3'),
+ ('rawpointer', '0.2.1'),
+ ('rayon', '1.10.0'),
+ ('rayon-core', '1.12.1'),
+ ('regex', '1.10.4'),
+ ('regex-automata', '0.4.6'),
+ ('regex-syntax', '0.8.3'),
+ ('rustc_version', '0.1.7'),
+ ('rustversion', '1.0.15'),
+ ('ryu', '1.0.17'),
+ ('safe_arch', '0.7.1'),
+ ('semver', '0.1.20'),
+ ('serde', '1.0.198'),
+ ('serde_derive', '1.0.198'),
+ ('simba', '0.6.0'),
+ ('simdutf8', '0.1.4'),
+ ('statrs', '0.16.0'),
+ ('strsim', '0.11.1'),
+ ('strum', '0.25.0'),
+ ('strum_macros', '0.25.3'),
+ ('syn', '1.0.109'),
+ ('syn', '2.0.60'),
+ ('thiserror', '1.0.58'),
+ ('thiserror-impl', '1.0.58'),
+ ('triple_accel', '0.4.0'),
+ ('typenum', '1.17.0'),
+ ('unicode-ident', '1.0.12'),
+ ('utf8parse', '0.2.1'),
+ ('vcpkg', '0.2.15'),
+ ('vec_map', '0.8.2'),
+ ('wasi', '0.11.0+wasi-snapshot-preview1'),
+ ('wide', '0.7.16'),
+ ('winapi', '0.3.9'),
+ ('winapi-i686-pc-windows-gnu', '0.4.0'),
+ ('winapi-x86_64-pc-windows-gnu', '0.4.0'),
+ ('windows-sys', '0.52.0'),
+ ('windows-targets', '0.52.5'),
+ ('windows_aarch64_gnullvm', '0.52.5'),
+ ('windows_aarch64_msvc', '0.52.5'),
+ ('windows_i686_gnu', '0.52.5'),
+ ('windows_i686_gnullvm', '0.52.5'),
+ ('windows_i686_msvc', '0.52.5'),
+ ('windows_x86_64_gnu', '0.52.5'),
+ ('windows_x86_64_gnullvm', '0.52.5'),
+ ('windows_x86_64_msvc', '0.52.5'),
+ ('xz2', '0.1.7'),
+]
+sanity_check_paths = {
+ 'files': ['bin/chopper'],
+ 'dirs': [],
+}
+
+sanity_check_commands = [
+ 'chopper --help',
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/chopper/chopper-0.9.0_fix_incorrect_version.patch b/easybuild/easyconfigs/c/chopper/chopper-0.9.0_fix_incorrect_version.patch
new file mode 100644
index 00000000000..57c15b94db4
--- /dev/null
+++ b/easybuild/easyconfigs/c/chopper/chopper-0.9.0_fix_incorrect_version.patch
@@ -0,0 +1,28 @@
+Fix incorrect version number in the 0.9.0 tar file.
+
+Åke Sandgren, 2024-09-16
+diff --git a/Cargo.lock b/Cargo.lock
+index 3e8f1fe..53fa5da 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -236,7 +236,7 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+ [[package]]
+ name = "chopper"
+-version = "0.8.0"
++version = "0.9.0"
+ dependencies = [
+ "approx",
+ "atty",
+diff --git a/Cargo.toml b/Cargo.toml
+index f268dce..7f7277a 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -1,6 +1,6 @@
+ [package]
+ name = "chopper"
+-version = "0.8.0"
++version = "0.9.0"
+ authors = ["wdecoster "]
+ edition = "2021"
+
diff --git a/easybuild/easyconfigs/c/chromVARmotifs/chromVARmotifs-0.2.0-foss-2023a-R-4.3.2.eb b/easybuild/easyconfigs/c/chromVARmotifs/chromVARmotifs-0.2.0-foss-2023a-R-4.3.2.eb
new file mode 100644
index 00000000000..bd7943a2e76
--- /dev/null
+++ b/easybuild/easyconfigs/c/chromVARmotifs/chromVARmotifs-0.2.0-foss-2023a-R-4.3.2.eb
@@ -0,0 +1,30 @@
+easyblock = 'RPackage'
+
+name = 'chromVARmotifs'
+local_commit = '38bed55'
+# see DESCRIPTION file
+version = '0.2.0'
+versionsuffix = '-R-%(rver)s'
+
+homepage = 'https://github.com/GreenleafLab/chromVARmotifs'
+description = """The goal of chromVARmotifs is to make it easy to use several different motif collections in R,
+ particularly for use with motifmatchr and chromVAR packages."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('R', '4.3.2'),
+ ('R-bundle-CRAN', '2023.12'),
+ ('R-bundle-Bioconductor', '3.18', versionsuffix),
+]
+
+source_urls = ['https://github.com/GreenleafLab/chromVARmotifs/archive']
+sources = [{'download_filename': '%s.tar.gz' % local_commit, 'filename': SOURCE_TAR_GZ}]
+checksums = ['6bc0894e1ffc9aa51d7eefce71ca0a586b271e7c6fd60211b179862eb51e4f1b']
+
+sanity_check_paths = {
+ 'files': [],
+ 'dirs': [name],
+}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/cisDIVERSITY/cisDIVERSITY-1.1-foss-2023a-Python-2.7.18.eb b/easybuild/easyconfigs/c/cisDIVERSITY/cisDIVERSITY-1.1-foss-2023a-Python-2.7.18.eb
new file mode 100644
index 00000000000..76a00927a51
--- /dev/null
+++ b/easybuild/easyconfigs/c/cisDIVERSITY/cisDIVERSITY-1.1-foss-2023a-Python-2.7.18.eb
@@ -0,0 +1,56 @@
+easyblock = 'MakeCp'
+
+name = 'cisDIVERSITY'
+version = '1.1'
+versionsuffix = '-Python-%(pyver)s'
+
+homepage = 'https://github.com/NarlikarLab/cisDIVERSITY/'
+description = """A module discovery tool used for finding diverse sequence architectures,
+each one characterized by presence or absence of de novo motifs."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+source_urls = ['https://github.com/NarlikarLab/cisDIVERSITY/releases/download/v%(version)s/']
+sources = [{
+ 'download_filename': '%(name)s_v%(version)s.tar.gz',
+ 'filename': SOURCE_TAR_GZ,
+}]
+checksums = ['4ba5967fa754ec78b9dd6b6dc9d2ee5de87dbb4d7906d47e57e73aec87897725']
+
+dependencies = [
+ ('Python', '2.7.18'),
+ ('R', '4.3.2'),
+ ('numpy', '1.16.6', versionsuffix),
+]
+
+exts_defaultclass = 'RPackage'
+exts_default_options = {
+ 'source_urls': [
+ 'https://cran.r-project.org/src/contrib/Archive/%(name)s', # package archive
+ 'https://cran.r-project.org/src/contrib/', # current version of packages
+ 'https://cran.freestatistics.org/src/contrib', # mirror alternative for current packages
+ ],
+ 'source_tmpl': '%(name)s_%(version)s.tar.gz',
+}
+
+exts_list = [
+ ('corrplot', '0.95', {
+ 'checksums': ['84a31f675041e589201b4d640753302abc10ccc2c0ca0a409b5153861989d776'],
+ }),
+]
+
+files_to_copy = [(['learnDiverseModules'], 'bin')]
+
+modextrapaths = {'R_LIBS_SITE': ''}
+
+sanity_check_paths = {
+ 'files': ['bin/learnDiverseModules'],
+ 'dirs': ['corrplot'],
+}
+
+sanity_check_commands = [
+ 'learnDiverseModules -h',
+ 'Rscript -e "library(corrplot)"',
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/cliquer/cliquer-1.21-GCCcore-13.2.0.eb b/easybuild/easyconfigs/c/cliquer/cliquer-1.21-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..3fa7d597761
--- /dev/null
+++ b/easybuild/easyconfigs/c/cliquer/cliquer-1.21-GCCcore-13.2.0.eb
@@ -0,0 +1,42 @@
+easyblock = 'MakeCp'
+
+name = 'cliquer'
+version = '1.21'
+
+homepage = 'https://users.aalto.fi/~pat/cliquer.html'
+description = """Cliquer is a set of C routines for finding cliques in an arbitrary weighted graph.
+ It uses an exact branch-and-bound algorithm developed by Patric Ostergard. It is designed with
+ the aim of being efficient while still being flexible and easy to use."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['http://users.aalto.fi/~pat/cliquer/']
+sources = [SOURCE_TAR_GZ]
+checksums = ['ff306d27eda82383c0257065e3ffab028415ac9af73bccfdd9c2405b797ed1f1']
+
+builddependencies = [('binutils', '2.40')]
+
+local_sharedlib = 'libcliquer.%s' % SHLIB_EXT
+
+prebuildopts = 'sed -i "s/^CFLAGS=/CFLAGS=$CFLAGS /" Makefile && '
+
+buildopts = ' && $CC -shared $CFLAGS $LDFLAGS -o %s *.o' % local_sharedlib
+
+local_headers = ['cliquer', 'set', 'graph', 'misc', 'reorder', 'cliquerconf']
+
+files_to_copy = [
+ (['cl'], 'bin'),
+ ([local_sharedlib], 'lib'),
+ (['%s.h' % h for h in local_headers], 'include/cliquer'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/cl', 'lib/%s' % local_sharedlib] +
+ ['include/cliquer/%s.h' % h for h in local_headers],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["cl --help"]
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/c/cmcrameri/cmcrameri-1.9-gfbf-2023a.eb b/easybuild/easyconfigs/c/cmcrameri/cmcrameri-1.9-gfbf-2023a.eb
new file mode 100644
index 00000000000..81e043144e9
--- /dev/null
+++ b/easybuild/easyconfigs/c/cmcrameri/cmcrameri-1.9-gfbf-2023a.eb
@@ -0,0 +1,27 @@
+easyblock = 'PythonBundle'
+
+name = 'cmcrameri'
+version = '1.9'
+
+homepage = 'https://github.com/callumrollo/cmcrameri'
+description = "Python wrapper around Fabio Crameri's perceptually uniform colormaps."
+
+toolchain = {'name': 'gfbf', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('matplotlib', '3.7.2'),
+]
+
+use_pip = True
+
+exts_list = [
+ (name, version, {
+ 'checksums': ['56faf9b7f53eb03fed450137bec7dc25c1854929d7b841b9c75616fc2c357640'],
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/c/cmph/cmph-2.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/c/cmph/cmph-2.0-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..93f75f90c53
--- /dev/null
+++ b/easybuild/easyconfigs/c/cmph/cmph-2.0-GCCcore-12.3.0.eb
@@ -0,0 +1,29 @@
+easyblock = 'ConfigureMake'
+
+name = 'cmph'
+version = '2.0'
+
+homepage = 'https://sourceforge.net/projects/cmph/'
+description = """
+Cmph is a free minimal perfect hash C library, providing several algorithms in the literature
+in a consistent, ease to use, API.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = ['https://sourceforge.net/projects/%(name)s/files/%(name)s']
+sources = ['%(name)s-%(version)s.tar.gz']
+checksums = ['ad6c9a75ff3da1fb1222cac0c1d9877f4f2366c5c61c92338c942314230cba76']
+
+builddependencies = [('binutils', '2.40')]
+
+sanity_check_paths = {
+ 'files': ['bin/cmph'],
+ 'dirs': ['include', 'lib'],
+}
+
+sanity_check_commands = [
+ "cmph -h",
+]
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/c/code-cli/code-cli-1.93.1-x64.eb b/easybuild/easyconfigs/c/code-cli/code-cli-1.93.1-x64.eb
new file mode 100644
index 00000000000..48e53c03e62
--- /dev/null
+++ b/easybuild/easyconfigs/c/code-cli/code-cli-1.93.1-x64.eb
@@ -0,0 +1,35 @@
+easyblock = 'Tarball'
+
+name = 'code-cli'
+version = '1.93.1'
+versionsuffix = '-x64'
+
+homepage = 'https://code.visualstudio.com/'
+description = '''
+ Visual Studio Code is a lightweight but powerful source code editor
+ which runs on your desktop and is available for Windows, macOS and
+ Linux. It comes with built-in support for JavaScript, TypeScript and
+ Node.js and has a rich ecosystem of extensions for other languages
+ and runtimes (such as C++, C#, Java, Python, PHP, Go, .NET). Begin
+ your journey with VS Code with these introductory videos.
+'''
+
+toolchain = {'name': 'system', 'version': 'system'}
+
+source_urls = ['https://update.code.visualstudio.com/%(version)s/cli-alpine-x64/stable#']
+sources = [{
+ 'download_filename': 'vscode_cli_alpine_x64_cli.tar.gz',
+ 'filename': 'vscode-%(version)s%(versionsuffix)s.tar.gz',
+}]
+checksums = ['1fd27b23ca8c6f4b55922de3181b312a094d8aa18ad6e0a716b7b94224064288']
+
+modextrapaths = {'PATH': ''}
+
+sanity_check_paths = {
+ 'files': ['code'],
+ 'dirs': []
+}
+
+sanity_check_commands = ["code --help"]
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/c/code-server/code-server-4.21.1.eb b/easybuild/easyconfigs/c/code-server/code-server-4.21.1.eb
new file mode 100644
index 00000000000..88e4c129c67
--- /dev/null
+++ b/easybuild/easyconfigs/c/code-server/code-server-4.21.1.eb
@@ -0,0 +1,20 @@
+name = 'code-server'
+version = '4.21.1'
+
+homepage = 'https://github.com/cdr/code-server'
+description = """Run VS Code on any machine anywhere and access it in the browser."""
+
+toolchain = SYSTEM
+
+source_urls = ['https://github.com/cdr/code-server/releases/download/v%(version)s/']
+sources = ['code-server-%(version)s-linux-%(mapped_arch)s.tar.gz']
+checksums = [
+ {
+ 'code-server-%(version)s-linux-amd64.tar.gz':
+ '8ae5deab32749bb9bb20009b14ebb0fac012aa82660cfc91b2cc5bd67daf709b',
+ 'code-server-%(version)s-linux-arm64.tar.gz':
+ '1bbb43193e00b2f6c84967048372dc6381c3d332d06643c4a89ce052f755a170',
+ }
+]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/c/code-server/code-server-4.22.1.eb b/easybuild/easyconfigs/c/code-server/code-server-4.22.1.eb
new file mode 100644
index 00000000000..eec7338f4e7
--- /dev/null
+++ b/easybuild/easyconfigs/c/code-server/code-server-4.22.1.eb
@@ -0,0 +1,20 @@
+name = 'code-server'
+version = '4.22.1'
+
+homepage = 'https://github.com/coder/code-server'
+description = """Run VS Code on any machine anywhere and access it in the browser."""
+
+toolchain = SYSTEM
+
+source_urls = ['https://github.com/coder/code-server/releases/download/v%(version)s/']
+sources = ['code-server-%(version)s-linux-%(mapped_arch)s.tar.gz']
+checksums = [
+ {
+ 'code-server-%(version)s-linux-amd64.tar.gz':
+ 'ec40994776bbcb958d9efb328c1b61038167a8d5473c9c841b25df24578dc420',
+ 'code-server-%(version)s-linux-arm64.tar.gz':
+ '44c3bc84a37efa9d4e2c14ce72024b2cb83c2034ed4f29f50eb595fb0f2bc4b3',
+ }
+]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/c/code-server/code-server-4.89.1.eb b/easybuild/easyconfigs/c/code-server/code-server-4.89.1.eb
new file mode 100644
index 00000000000..dfd586cb4fc
--- /dev/null
+++ b/easybuild/easyconfigs/c/code-server/code-server-4.89.1.eb
@@ -0,0 +1,20 @@
+name = 'code-server'
+version = '4.89.1'
+
+homepage = 'https://github.com/coder/code-server'
+description = """Run VS Code on any machine anywhere and access it in the browser."""
+
+toolchain = SYSTEM
+
+source_urls = ['https://github.com/coder/code-server/releases/download/v%(version)s/']
+sources = ['code-server-%(version)s-linux-%(mapped_arch)s.tar.gz']
+checksums = [
+ {
+ 'code-server-%(version)s-linux-amd64.tar.gz':
+ '5c3769b1ab5cbb2eceb092524dc46f558905e4260155b477d3a313f9ea25ca33',
+ 'code-server-%(version)s-linux-arm64.tar.gz':
+ '69d3d1f7158d6e2125bd2f831611ab959a2aa80d5a7d96422a44070eb2b8645b',
+ }
+]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/c/code-server/code-server-4.90.2.eb b/easybuild/easyconfigs/c/code-server/code-server-4.90.2.eb
new file mode 100644
index 00000000000..d85b34c752c
--- /dev/null
+++ b/easybuild/easyconfigs/c/code-server/code-server-4.90.2.eb
@@ -0,0 +1,20 @@
+name = 'code-server'
+version = '4.90.2'
+
+homepage = 'https://github.com/coder/code-server'
+description = """Run VS Code on any machine anywhere and access it in the browser."""
+
+toolchain = SYSTEM
+
+source_urls = ['https://github.com/coder/code-server/releases/download/v%(version)s/']
+sources = ['code-server-%(version)s-linux-%(mapped_arch)s.tar.gz']
+checksums = [
+ {
+ 'code-server-%(version)s-linux-amd64.tar.gz':
+ 'c66b57759e41c66c28577eaefa4cce106f7b5ad5fb3ab394baea5eaa5b604cce',
+ 'code-server-%(version)s-linux-arm64.tar.gz':
+ '12e51e3575069c438aa4dee93bddfc221e7850192a7745b84fc77b420cedf205',
+ }
+]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/c/code-server/code-server-4.93.1.eb b/easybuild/easyconfigs/c/code-server/code-server-4.93.1.eb
new file mode 100644
index 00000000000..3217ab284bf
--- /dev/null
+++ b/easybuild/easyconfigs/c/code-server/code-server-4.93.1.eb
@@ -0,0 +1,20 @@
+name = 'code-server'
+version = '4.93.1'
+
+homepage = 'https://github.com/coder/code-server'
+description = """Run VS Code on any machine anywhere and access it in the browser."""
+
+toolchain = SYSTEM
+
+source_urls = ['https://github.com/coder/code-server/releases/download/v%(version)s/']
+sources = ['code-server-%(version)s-linux-%(mapped_arch)s.tar.gz']
+checksums = [
+ {
+ 'code-server-%(version)s-linux-amd64.tar.gz':
+ '8c001f865cf082e914375e8f28e9e15b25faa1f3de455ddc30158d54fc2326d3',
+ 'code-server-%(version)s-linux-arm64.tar.gz':
+ '1e29278529d0d8376d1344ed816b37f4e88a5ba16ce74cb1173fe437c8519852',
+ }
+]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/c/colorize/colorize-0.7.7-GCC-12.3.0.eb b/easybuild/easyconfigs/c/colorize/colorize-0.7.7-GCC-12.3.0.eb
new file mode 100644
index 00000000000..35921013c3e
--- /dev/null
+++ b/easybuild/easyconfigs/c/colorize/colorize-0.7.7-GCC-12.3.0.eb
@@ -0,0 +1,27 @@
+easyblock = 'RubyGem'
+
+name = 'colorize'
+version = '0.7.7'
+
+homepage = 'https://github.com/fazibear/colorize'
+description = """Ruby gem for colorizing text using ANSI escape sequences.
+Extends String class or add a ColorizedString with methods to set the text color, background color and text effects."""
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+
+source_urls = ['https://rubygems.org/downloads/']
+sources = ['%(name)s-%(version)s.gem']
+checksums = ['d6ab95a5fcdea3c36c3327d38c1e79e2950ee1788506d8489ae35db330937a99']
+
+gem_file = '%(name)s-%(version)s.gem'
+
+dependencies = [
+ ('Ruby', '3.3.0'),
+]
+
+sanity_check_paths = {
+ 'files': [],
+ 'dirs': ['gems/%(namelower)s-%(version)s'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/c/columba/columba-1.2-20240326-GCC-13.3.0.eb b/easybuild/easyconfigs/c/columba/columba-1.2-20240326-GCC-13.3.0.eb
new file mode 100644
index 00000000000..bbdb6d884b8
--- /dev/null
+++ b/easybuild/easyconfigs/c/columba/columba-1.2-20240326-GCC-13.3.0.eb
@@ -0,0 +1,29 @@
+easyblock = 'CMakeMake'
+
+name = 'columba'
+local_commit = '526b0a0'
+version = '1.2-20240326'
+
+homepage = 'https://github.com/biointec/columba'
+description = "Fast Approximate Pattern Matching using Search Schemes"
+
+toolchain = {'name': 'GCC', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/biointec/columba/archive']
+sources = [{'download_filename': '%s.tar.gz' % local_commit, 'filename': SOURCE_TAR_GZ}]
+checksums = ['018898cf6ba93a974a141b397b68a7df13457e80bf92b1747f7b30c4a0d756f1']
+
+builddependencies = [
+ ('CMake', '3.29.3'),
+ ('sparsehash', '2.0.4'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/columba', 'bin/columba_build'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["columba --help"]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/c/configurable-http-proxy/configurable-http-proxy-4.6.1-GCCcore-13.2.0.eb b/easybuild/easyconfigs/c/configurable-http-proxy/configurable-http-proxy-4.6.1-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..c8aae63595d
--- /dev/null
+++ b/easybuild/easyconfigs/c/configurable-http-proxy/configurable-http-proxy-4.6.1-GCCcore-13.2.0.eb
@@ -0,0 +1,32 @@
+easyblock = 'Binary'
+
+name = 'configurable-http-proxy'
+version = '4.6.1'
+
+homepage = 'https://github.com/jupyterhub/configurable-http-proxy'
+description = """HTTP proxy for node.js including a REST API for updating the routing table.
+ Developed as a part of the Jupyter Hub multi-user server."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+source_urls = ['https://github.com/jupyterhub/%(name)s/archive/']
+sources = ['%(version)s.tar.gz']
+checksums = ['52bac444b1a0629e7817102949f685bdb719d0cbfd0abbaeaa91d42f1ed60852']
+
+builddependencies = [
+ ('binutils', '2.40'),
+]
+dependencies = [
+ ('nodejs', '20.9.0'),
+]
+
+install_cmd = "npm install --no-package-lock -g --prefix %(installdir)s %(version)s.tar.gz"
+
+sanity_check_paths = {
+ 'files': ['bin/%(name)s'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ['%(name)s --version']
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/c/connected-components-3d/connected-components-3d-3.14.1-foss-2023a.eb b/easybuild/easyconfigs/c/connected-components-3d/connected-components-3d-3.14.1-foss-2023a.eb
new file mode 100644
index 00000000000..5a366beb6d0
--- /dev/null
+++ b/easybuild/easyconfigs/c/connected-components-3d/connected-components-3d-3.14.1-foss-2023a.eb
@@ -0,0 +1,26 @@
+easyblock = 'PythonPackage'
+
+name = 'connected-components-3d'
+version = '3.14.1'
+
+homepage = 'https://github.com/seung-lab/connected-components-3d/'
+description = """cc3d is an implementation of connected components in three dimensions using a 26, 18,
+ or 6-connected neighborhood in 3D or 4 and 8-connected in 2D."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+sources = [SOURCE_TAR_GZ]
+checksums = ['fdc4099508b734b266a42ee12534ee42e29467c28506b137e8c1edc8c7513c92']
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+]
+
+download_dep_fail = True
+use_pip = True
+sanity_pip_check = True
+
+options = {'modulename': 'cc3d'}
+
+moduleclass = 'data'
diff --git a/easybuild/easyconfigs/c/contextily/contextily-1.5.0-foss-2023a.eb b/easybuild/easyconfigs/c/contextily/contextily-1.5.0-foss-2023a.eb
new file mode 100644
index 00000000000..afde40726ac
--- /dev/null
+++ b/easybuild/easyconfigs/c/contextily/contextily-1.5.0-foss-2023a.eb
@@ -0,0 +1,39 @@
+easyblock = 'PythonBundle'
+
+name = 'contextily'
+version = '1.5.0'
+
+homepage = 'https://contextily.readthedocs.io/'
+description = """contextily is a small Python 3 package to retrieve tile maps from the internet.
+It can add those tiles as basemap to matplotlib figures or write tile maps to
+disk into geospatial raster files. Bounding boxes can be passed in both WGS84
+(EPSG:4326) and Spheric Mercator (EPSG:3857)."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('geopy', '2.4.1'),
+ ('matplotlib', '3.7.2'),
+ ('Pillow', '10.0.0'),
+ ('rasterio', '1.3.9'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('xyzservices', '2023.7.0', {
+ 'checksums': ['0ec928742227d6f5d4367ea7b457fcfed943429f4de2949b5b02a82cdf5569d6'],
+ }),
+ ('mercantile', '1.2.1', {
+ 'checksums': ['fa3c6db15daffd58454ac198b31887519a19caccee3f9d63d17ae7ff61b3b56b'],
+ }),
+ (name, version, {
+ 'checksums': ['295b2d8097f8f6e80e1cb5e6e77538d1cdf729f827ec54eedc57f613c0a3ce0e'],
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'geo'
diff --git a/easybuild/easyconfigs/c/cooler/cooler-0.10.2-foss-2023a.eb b/easybuild/easyconfigs/c/cooler/cooler-0.10.2-foss-2023a.eb
new file mode 100644
index 00000000000..57091228de3
--- /dev/null
+++ b/easybuild/easyconfigs/c/cooler/cooler-0.10.2-foss-2023a.eb
@@ -0,0 +1,49 @@
+easyblock = 'PythonBundle'
+
+name = 'cooler'
+version = '0.10.2'
+
+homepage = 'https://open2c.github.io/cooler'
+description = """Cooler is a support library for a storage format, also called cooler, used to store
+ genomic interaction data of any size, such as Hi-C contact matrices."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+builddependencies = [
+ ('hatchling', '1.18.0'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('h5py', '3.9.0'),
+ ('PyYAML', '6.0'),
+ ('pyfaidx', '0.8.1.1'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('asciitree', '0.3.3', {
+ 'checksums': ['4aa4b9b649f85e3fcb343363d97564aa1fb62e249677f2e18a96765145cc0f6e'],
+ }),
+ ('toolz', '0.12.0', {
+ 'checksums': ['88c570861c440ee3f2f6037c4654613228ff40c93a6c25e0eba70d17282c6194'],
+ }),
+ ('cytoolz', '0.12.3', {
+ 'checksums': ['4503dc59f4ced53a54643272c61dc305d1dbbfbd7d6bdf296948de9f34c3a282'],
+ }),
+ ('dill', '0.3.8', {
+ 'checksums': ['3ebe3c479ad625c4553aca177444d89b486b1d84982eeacded644afc0cf797ca'],
+ }),
+ ('multiprocess', '0.70.16', {
+ 'checksums': ['161af703d4652a0e1410be6abccecde4a7ddffd19341be0a7011b94aeb171ac1'],
+ }),
+ (name, version, {
+ 'checksums': ['3780a2e69b2ec89882dfc2775de5d9b54ccb79569dc5f042b4851599388112dc'],
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/cooler/cooler-0.10.2-foss-2023b.eb b/easybuild/easyconfigs/c/cooler/cooler-0.10.2-foss-2023b.eb
new file mode 100644
index 00000000000..f092666e99d
--- /dev/null
+++ b/easybuild/easyconfigs/c/cooler/cooler-0.10.2-foss-2023b.eb
@@ -0,0 +1,46 @@
+easyblock = 'PythonBundle'
+
+name = 'cooler'
+version = '0.10.2'
+
+homepage = 'https://open2c.github.io/cooler'
+description = """Cooler is a support library for a storage format, also called cooler, used to store
+ genomic interaction data of any size, such as Hi-C contact matrices."""
+
+toolchain = {'name': 'foss', 'version': '2023b'}
+
+builddependencies = [
+ ('hatchling', '1.18.0'),
+]
+
+dependencies = [
+ ('Python', '3.11.5'),
+ ('Python-bundle-PyPI', '2023.10'),
+ ('SciPy-bundle', '2023.11'),
+ ('h5py', '3.11.0'),
+ ('PyYAML', '6.0.1'),
+ ('pyfaidx', '0.8.1.1'),
+ ('dill', '0.3.8'),
+ ('multiprocess', '0.70.16'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('asciitree', '0.3.3', {
+ 'checksums': ['4aa4b9b649f85e3fcb343363d97564aa1fb62e249677f2e18a96765145cc0f6e'],
+ }),
+ ('toolz', '1.0.0', {
+ 'checksums': ['2c86e3d9a04798ac556793bced838816296a2f085017664e4995cb40a1047a02'],
+ }),
+ ('cytoolz', '1.0.0', {
+ 'checksums': ['eb453b30182152f9917a5189b7d99046b6ce90cdf8aeb0feff4b2683e600defd'],
+ }),
+ (name, version, {
+ 'checksums': ['3780a2e69b2ec89882dfc2775de5d9b54ccb79569dc5f042b4851599388112dc'],
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/coverage/coverage-7.4.4-GCCcore-13.2.0.eb b/easybuild/easyconfigs/c/coverage/coverage-7.4.4-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..b35ff457d61
--- /dev/null
+++ b/easybuild/easyconfigs/c/coverage/coverage-7.4.4-GCCcore-13.2.0.eb
@@ -0,0 +1,30 @@
+easyblock = 'PythonBundle'
+
+name = 'coverage'
+version = '7.4.4'
+
+homepage = 'https://coverage.readthedocs.io'
+description = """ Coverage.py is a tool for measuring code coverage of Python programs.
+ It monitors your program, noting which parts of the code have been executed,
+ then analyzes the source to identify code that could have been executed but was not. """
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+builddependencies = [('binutils', '2.40')]
+dependencies = [('Python', '3.11.5')]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ (name, version, {
+ 'checksums': ['c901df83d097649e257e803be22592aedfd5182f07b3cc87d640bbb9afd50f49'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/coverage%s' % x for x in ['', '3', '-%(pyshortver)s']],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages/%(name)s'],
+}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/c/coxeter/coxeter-20180226-GCCcore-13.2.0.eb b/easybuild/easyconfigs/c/coxeter/coxeter-20180226-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..247bb5ac24d
--- /dev/null
+++ b/easybuild/easyconfigs/c/coxeter/coxeter-20180226-GCCcore-13.2.0.eb
@@ -0,0 +1,45 @@
+easyblock = 'ConfigureMake'
+
+name = 'coxeter'
+version = '20180226'
+local_commit = '7b5a1f0'
+
+homepage = 'https://github.com/tscrim/coxeter'
+description = """A library for the study of combinatorial aspects of Coxeter group theory"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+source_urls = ['https://github.com/tscrim/coxeter/archive/%s/' % local_commit]
+sources = [SOURCE_TAR_GZ]
+patches = [
+ 'coxeter-20180226_makefile.patch',
+ ('coxeter-20180226_sage_interface.patch', 0),
+]
+checksums = [
+ {'coxeter-20180226.tar.gz': '5e0668c40b29c03c438a6ebc0f49f13aaf155b4bcbff56303a753390e6fce3aa'},
+ {'coxeter-20180226_makefile.patch': '229ed201e41bae0ae7b22aa21d5007127aeb52fd158543dd5fff2e89797e211f'},
+ {'coxeter-20180226_sage_interface.patch': '18ba75e51a944ffccb7fa440b823f68a0aad9066e8edcdd2b52bac6b43404bd3'},
+]
+
+builddependencies = [('binutils', '2.40')]
+
+skipsteps = ['configure']
+
+buildopts = 'CC="$CC" CFLAGS="$CFLAGS"'
+preinstallopts = 'mkdir -p "%(installdir)s/bin" "%(installdir)s/lib" && '
+installopts = 'SAGE_LOCAL="%(installdir)s"'
+
+sanity_check_paths = {
+ 'files': [
+ 'bin/%(name)s',
+ 'lib/lib%%(name)s3.%s' % SHLIB_EXT,
+ ],
+ 'dirs': [
+ 'include/%(name)s',
+ 'share/%(name)s',
+ ]
+}
+
+sanity_check_commands = ['echo "qq" | coxeter']
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/c/coxeter/coxeter-20180226_makefile.patch b/easybuild/easyconfigs/c/coxeter/coxeter-20180226_makefile.patch
new file mode 100644
index 00000000000..d00d6860689
--- /dev/null
+++ b/easybuild/easyconfigs/c/coxeter/coxeter-20180226_makefile.patch
@@ -0,0 +1,101 @@
+Allows installation of files needed for Sagemath
+Source: https://gitlab.archlinux.org/archlinux/packaging/packages/coxeter/-/blob/main/coxeter-makefile.patch
+diff -u makefile.orig makefile
+--- makefile.orig 2018-02-26 13:57:36.000000000 +0100
++++ makefile 2024-08-16 14:15:51.889503570 +0200
+@@ -12,6 +12,7 @@
+ gflags = -c $(includedirs) -g
+
+ cflags = $(gflags) # the default setting
++cflags = -c $(includedirs) $(CPPFLAGS) $(CXXFLAGS) -fPIC
+
+ ifdef optimize
+ NDEBUG = true
+@@ -22,18 +23,74 @@
+ cflags = $(pflags)
+ endif
+
+-cc = g++
++EXENAME = coxeter
++LIBNAME = coxeter3
++ifeq ($(UNAME),Darwin)
++ EXEEXT =
++ LIBPREFIX = lib
++ LIBEXT = .dylib
++ LIBDIR = lib
++ LINKFLAGS = -dynamiclib -Wl,-headerpad_max_install_names,-undefined,dynamic_lookup,-compatibility_version,3.0,-current_version,3.0,-install_name,$(SAGE_LOCAL)/lib/$(LIBPREFIX)$(LIBNAME)$(LIBEXT)
++ LINKLIBS =
++else
++ifeq ($(UNAME),CYGWIN)
++ EXEEXT = .exe
++ LIBPREFIX = cyg
++ LIBEXT = .dll
++ LIBDIR = bin
++ IMPLIB = lib$(LIBNAME).dll.a
++ LINKFLAGS = -shared -Wl,--out-implib=$(IMPLIB) -Wl,--export-all-symbols
++ LINKLIBS = -lc
++else
++ EXEEXT =
++ LIBPREFIX = lib
++ LIBEXT = .so
++ LIBDIR = lib
++ LINKFLAGS = $(LDFLAGS) -shared -Wl,-soname,libcoxeter3.so
++ LINKLIBS = -lc
++endif
++endif
++LIBRARY = $(LIBPREFIX)$(LIBNAME)$(LIBEXT)
+
+-all: coxeter #clean
++all: coxeter executable
+
+ coxeter: $(objects)
+- $(cc) -o coxeter $(objects)
++ $(CXX) $(LINKFLAGS) -o $(LIBRARY) $(objects) $(LINKLIBS)
++
++executable: $(objects)
++ $(CXX) $(LDFLAGS) -o $(EXENAME)$(EXEEXT) $(objects)
++
++DATADIR="$$SAGE_LOCAL/share/coxeter/"
++INCLUDEDIR="$$SAGE_LOCAL/include/coxeter/"
++LIBRARYDIR="$$SAGE_LOCAL/$(LIBDIR)"
++
++install: coxeter executable
++ cp $(EXENAME)$(EXEEXT) "$$SAGE_LOCAL/bin/"
++ cp $(LIBRARY) $(LIBRARYDIR)
++ if [ $(UNAME) = "CYGWIN" ]; then \
++ cp $(IMPLIB) "$$SAGE_LOCAL/lib/"; \
++ fi
++
++ mkdir -p $(DATADIR)
++ cp -r coxeter_matrices headers messages $(DATADIR)
++ mkdir -p $(INCLUDEDIR)
++ cp -r *.h *.hpp $(INCLUDEDIR)
++
++check: coxeter executable
++ $(EXENAME)$(EXEEXT) < test.input > test.output
++
++ if ! diff test.output.expected test.output > /dev/null; then \
++ echo >&2 "Error testing coxeter on test.input:"; \
++ diff test.output.expected test.output; \
++ exit 1; \
++ fi
++ rm -f test.output
+
+ clean:
+ rm -f $(objects)
+
+ %.o:%.cpp
+- $(cc) $(cflags) $*.cpp
++ $(CXX) $(cflags) $*.cpp
+
+ # dependencies --- these were generated automatically by make depend on my
+ # system; they are explicitly copied for portability. Only local dependencies
+@@ -43,7 +100,7 @@
+ # contents of tmp in lieu of the dependencies listed here.
+
+ %.d:%.cpp
+- @$(cc) -MM $*.cpp
++ @$(CXX) -MM $*.cpp
+ depend: $(dependencies)
+
+ affine.o: affine.cpp affine.h globals.h coxgroup.h coxtypes.h io.h list.h \
diff --git a/easybuild/easyconfigs/c/coxeter/coxeter-20180226_sage_interface.patch b/easybuild/easyconfigs/c/coxeter/coxeter-20180226_sage_interface.patch
new file mode 100644
index 00000000000..2b4cd427ca9
--- /dev/null
+++ b/easybuild/easyconfigs/c/coxeter/coxeter-20180226_sage_interface.patch
@@ -0,0 +1,89 @@
+Adds sage interface. See https://github.com/tscrim/coxeter/pull/14
+Source: https://gitlab.archlinux.org/archlinux/packaging/packages/coxeter/-/blob/git.20180226-4/coxeter-sage.patch
+diff -u /dev/null sage.h
+--- /dev/null 2024-08-27 08:29:37.672016778 +0200
++++ sage.h 2024-08-27 12:17:23.716096310 +0200
+@@ -0,0 +1,23 @@
++/*
++ Coxeter version 3.0 Copyright (C) 2009 Mike Hansen
++ See file main.cpp for full copyright notice
++*/
++
++#ifndef SAGE_H /* guard against multiple inclusions */
++#define SAGE_H
++
++#include "globals.h"
++#include "coxgroup.h"
++#include "coxtypes.h"
++#include "schubert.h"
++#include "list.h"
++
++namespace sage {
++ using namespace coxeter;
++ using namespace coxtypes;
++ using namespace list;
++
++ void interval(List& result, CoxGroup& W, const CoxWord& g, const CoxWord& h);
++}
++
++#endif
+diff -u /dev/null sage.cpp
+--- /dev/null 2024-08-27 08:29:37.672016778 +0200
++++ sage.cpp 2024-08-27 12:17:23.716096310 +0200
+@@ -0,0 +1,56 @@
++/*
++ Coxeter version 3.0 Copyright (C) 2009 Mike Hansen
++ See file main.cpp for full copyright notice
++*/
++
++#include "sage.h"
++
++namespace sage {
++
++ void interval(List& list, CoxGroup& W, const CoxWord& g, const CoxWord& h)
++
++ /*
++ Returns a list of the elements in the Bruhat interval between g and h.
++ Note that this assumes that g and h are in order.
++ */
++ {
++ if (not W.inOrder(g,h)) {
++ return;
++ }
++
++ W.extendContext(h);
++
++ CoxNbr x = W.contextNumber(g);
++ CoxNbr y = W.contextNumber(h);
++
++ BitMap b(W.contextSize());
++ W.extractClosure(b,y);
++
++ BitMap::ReverseIterator b_rend = b.rend();
++ List res(0);
++
++ for (BitMap::ReverseIterator i = b.rbegin(); i != b_rend; ++i)
++ if (not W.inOrder(x,*i)) {
++ BitMap bi(W.contextSize());
++ W.extractClosure(bi,*i);
++ CoxNbr z = *i; // andnot will invalidate iterator
++ b.andnot(bi);
++ b.setBit(z); // otherwise the decrement will not be correct
++ } else
++ res.append(*i);
++
++ schubert::NFCompare nfc(W.schubert(),W.ordering());
++ Permutation a(res.size());
++ sortI(res,nfc,a);
++
++ list.setSize(0);
++ for (size_t j = 0; j < res.size(); ++j) {
++ CoxWord w(0);
++ W.schubert().append(w, res[a[j]]);
++ list.append(w);
++ }
++
++ return;
++ }
++
++}
diff --git a/easybuild/easyconfigs/c/cp2k-input-tools/cp2k-input-tools-0.9.1-foss-2023a.eb b/easybuild/easyconfigs/c/cp2k-input-tools/cp2k-input-tools-0.9.1-foss-2023a.eb
new file mode 100644
index 00000000000..6e8baed0be5
--- /dev/null
+++ b/easybuild/easyconfigs/c/cp2k-input-tools/cp2k-input-tools-0.9.1-foss-2023a.eb
@@ -0,0 +1,45 @@
+easyblock = 'PythonBundle'
+
+name = 'cp2k-input-tools'
+version = '0.9.1'
+
+homepage = 'https://github.com/cp2k/cp2k-input-tools'
+description = "Fully validating pure-python CP2K input file parsers including preprocessing capabilities"
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+builddependencies = [
+ ('poetry', '1.5.1'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('Pint', '0.23'),
+ ('pydantic', '2.5.3'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('transitions', '0.9.2', {
+ 'checksums': ['2f8490dbdbd419366cef1516032ab06d07ccb5839ef54905e842a472692d4204'],
+ }),
+ (name, version, {
+ 'sources': ['cp2k_input_tools-%(version)s.tar.gz'],
+ 'checksums': ['bf7d229bbcfa41b1caaa32e7eb3c1c689d56bd1cbd4de674bd2fde8de4efb27c'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/fromcp2k'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = [
+ "fromcp2k --help",
+]
+
+sanity_pip_check = True
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/c/cpio/cpio-2.15-GCCcore-12.2.0.eb b/easybuild/easyconfigs/c/cpio/cpio-2.15-GCCcore-12.2.0.eb
new file mode 100644
index 00000000000..f97452acc3d
--- /dev/null
+++ b/easybuild/easyconfigs/c/cpio/cpio-2.15-GCCcore-12.2.0.eb
@@ -0,0 +1,28 @@
+easyblock = 'ConfigureMake'
+name = 'cpio'
+version = '2.15'
+
+homepage = "https://savannah.gnu.org/projects/cpio/"
+description = """The cpio package contains tools for archiving."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.2.0'}
+
+source_urls = [GNU_SOURCE]
+sources = [SOURCE_TAR_BZ2]
+checksums = ['937610b97c329a1ec9268553fb780037bcfff0dcffe9725ebc4fd9c1aa9075db']
+
+builddependencies = [
+ ('binutils', '2.39'),
+ ('makeinfo', '7.0.3'),
+]
+
+postinstallcmds = ['makeinfo --plaintext -o %(installdir)s/doc/cpio.txt doc/cpio.texi']
+
+sanity_check_paths = {
+ 'files': ['bin/cpio'],
+ 'dirs': []
+}
+
+sanity_check_commands = ['cpio --help']
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/c/cpio/cpio-2.15-GCCcore-12.3.0.eb b/easybuild/easyconfigs/c/cpio/cpio-2.15-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..88be666ec15
--- /dev/null
+++ b/easybuild/easyconfigs/c/cpio/cpio-2.15-GCCcore-12.3.0.eb
@@ -0,0 +1,28 @@
+easyblock = 'ConfigureMake'
+name = 'cpio'
+version = '2.15'
+
+homepage = "https://savannah.gnu.org/projects/cpio/"
+description = """The cpio package contains tools for archiving."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = [GNU_SOURCE]
+sources = [SOURCE_TAR_BZ2]
+checksums = ['937610b97c329a1ec9268553fb780037bcfff0dcffe9725ebc4fd9c1aa9075db']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('makeinfo', '7.0.3'),
+]
+
+postinstallcmds = ['makeinfo --plaintext -o %(installdir)s/doc/cpio.txt doc/cpio.texi']
+
+sanity_check_paths = {
+ 'files': ['bin/cpio'],
+ 'dirs': []
+}
+
+sanity_check_commands = ['cpio --help']
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/c/cpio/cpio-2.15-GCCcore-13.2.0.eb b/easybuild/easyconfigs/c/cpio/cpio-2.15-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..43cc1783368
--- /dev/null
+++ b/easybuild/easyconfigs/c/cpio/cpio-2.15-GCCcore-13.2.0.eb
@@ -0,0 +1,28 @@
+easyblock = 'ConfigureMake'
+name = 'cpio'
+version = '2.15'
+
+homepage = "https://savannah.gnu.org/projects/cpio/"
+description = """The cpio package contains tools for archiving."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+source_urls = [GNU_SOURCE]
+sources = [SOURCE_TAR_BZ2]
+checksums = ['937610b97c329a1ec9268553fb780037bcfff0dcffe9725ebc4fd9c1aa9075db']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('makeinfo', '7.1'),
+]
+
+postinstallcmds = ['makeinfo --plaintext -o %(installdir)s/doc/cpio.txt doc/cpio.texi']
+
+sanity_check_paths = {
+ 'files': ['bin/cpio'],
+ 'dirs': []
+}
+
+sanity_check_commands = ['cpio --help']
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/c/cpio/cpio-2.15-GCCcore-13.3.0.eb b/easybuild/easyconfigs/c/cpio/cpio-2.15-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..3640f333607
--- /dev/null
+++ b/easybuild/easyconfigs/c/cpio/cpio-2.15-GCCcore-13.3.0.eb
@@ -0,0 +1,28 @@
+easyblock = 'ConfigureMake'
+name = 'cpio'
+version = '2.15'
+
+homepage = "https://savannah.gnu.org/projects/cpio/"
+description = """The cpio package contains tools for archiving."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = [GNU_SOURCE]
+sources = [SOURCE_TAR_BZ2]
+checksums = ['937610b97c329a1ec9268553fb780037bcfff0dcffe9725ebc4fd9c1aa9075db']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('makeinfo', '7.1'),
+]
+
+postinstallcmds = ['makeinfo --plaintext -o %(installdir)s/doc/cpio.txt doc/cpio.texi']
+
+sanity_check_paths = {
+ 'files': ['bin/cpio'],
+ 'dirs': []
+}
+
+sanity_check_commands = ['cpio --help']
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/c/cppy/cppy-1.2.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/c/cppy/cppy-1.2.1-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..3043857d925
--- /dev/null
+++ b/easybuild/easyconfigs/c/cppy/cppy-1.2.1-GCCcore-13.3.0.eb
@@ -0,0 +1,32 @@
+easyblock = 'PythonPackage'
+
+name = 'cppy'
+version = '1.2.1'
+
+homepage = "https://github.com/nucleic/cppy"
+description = """A small C++ header library which makes it easier to write
+Python extension modules. The primary feature is a PyObject smart pointer
+which automatically handles reference counting and provides convenience
+methods for performing common object operations."""
+
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+builddependencies = [('binutils', '2.42')]
+
+dependencies = [
+ ('Python', '3.12.3'),
+]
+
+sources = ['%(name)s-%(version)s.tar.gz']
+patches = ['cppy-1.2.1-manual_version.patch']
+checksums = [
+ {'cppy-1.2.1.tar.gz': '83b43bf17b1085ac15c5debdb42154f138b928234b21447358981f69d0d6fe1b'},
+ {'cppy-1.2.1-manual_version.patch': '048aa0a86fd2e99c6896443b07ec83eaa369724297f639ef74c65c404b8f288f'},
+]
+
+download_dep_fail = True
+sanity_pip_check = True
+use_pip = True
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/c/cppyy/cppyy-3.1.2-GCCcore-13.2.0.eb b/easybuild/easyconfigs/c/cppyy/cppyy-3.1.2-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..bcd242d9d23
--- /dev/null
+++ b/easybuild/easyconfigs/c/cppyy/cppyy-3.1.2-GCCcore-13.2.0.eb
@@ -0,0 +1,46 @@
+easyblock = 'PythonBundle'
+
+name = 'cppyy'
+version = '3.1.2'
+
+homepage = "https://cppyy.readthedocs.io"
+description = """cppyy is an automatic, run-time, Python-C++ bindings generator,
+ for calling C++ from Python and Python from C++."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('CMake', '3.27.6'),
+]
+
+dependencies = [
+ ('Python', '3.11.5'),
+]
+
+exts_list = [
+ ('cppyy-cling', '6.30.0', {
+ 'modulename': False,
+ 'preinstallopts': "export STDCXX=14 && ",
+ 'checksums': ['5d9e0551a4cb618eb3392001b3dc2c6294f02257f02fcd4d868999ba04f92af1'],
+ }),
+ ('cppyy-backend', '1.15.2', {
+ 'checksums': ['8d0ec169f6ea40d26999a61b274ce2ac880082e8d16aace6a0702933d3d835fc'],
+ }),
+ ('CPyCppyy', '1.12.16', {
+ 'modulename': False,
+ 'checksums': ['09a845652ac1a82777ec499dda862f54493c1560e9df4cadecda09ecde9e4202'],
+ }),
+ (name, version, {
+ 'checksums': ['7937d184af02e1510f44d5655e0bcc3c6a7888ef5b3f06c3dd09ba93d1c1f19b'],
+ }),
+ ('cppyythonizations', '1.2.3', {
+ 'source_tmpl': 'cppyythonizations-%(version)s-py3-none-any.whl',
+ 'checksums': ['a08bb4fbaf0fc6b980211e7b549b06869f5b9f9cb835b3ab6224cae5905fd8c2'],
+ }),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/c/cramino/cramino-0.14.5-GCC-12.3.0.eb b/easybuild/easyconfigs/c/cramino/cramino-0.14.5-GCC-12.3.0.eb
new file mode 100644
index 00000000000..49c61ff64fb
--- /dev/null
+++ b/easybuild/easyconfigs/c/cramino/cramino-0.14.5-GCC-12.3.0.eb
@@ -0,0 +1,351 @@
+easyblock = 'Cargo'
+
+name = 'cramino'
+version = '0.14.5'
+
+homepage = 'https://github.com/wdecoster/cramino'
+description = """A tool for quick quality assessment of cram and bam files, intended for long read sequencing."""
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+
+source_urls = ['https://github.com/wdecoster/cramino/archive/']
+sources = ['v%(version)s.tar.gz']
+checksums = [
+ {'v0.14.5.tar.gz': 'd3b31ab76808ca76171e2539cfe30e66fe24cbd4af4ff9a941c282a0bc438032'},
+ {'ahash-0.8.9.tar.gz': 'd713b3834d76b85304d4d525563c1276e2e30dc97cc67bfb4585a4a29fc2c89f'},
+ {'aho-corasick-1.1.2.tar.gz': 'b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0'},
+ {'android-tzdata-0.1.1.tar.gz': 'e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0'},
+ {'android_system_properties-0.1.5.tar.gz': '819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311'},
+ {'anstream-0.6.12.tar.gz': '96b09b5178381e0874812a9b157f7fe84982617e48f71f4e3235482775e5b540'},
+ {'anstyle-1.0.6.tar.gz': '8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc'},
+ {'anstyle-parse-0.2.3.tar.gz': 'c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c'},
+ {'anstyle-query-1.0.2.tar.gz': 'e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648'},
+ {'anstyle-wincon-3.0.2.tar.gz': '1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7'},
+ {'arrow-50.0.0.tar.gz': 'aa285343fba4d829d49985bdc541e3789cf6000ed0e84be7c039438df4a4e78c'},
+ {'arrow-arith-50.0.0.tar.gz': '753abd0a5290c1bcade7c6623a556f7d1659c5f4148b140b5b63ce7bd1a45705'},
+ {'arrow-array-50.0.0.tar.gz': 'd390feeb7f21b78ec997a4081a025baef1e2e0d6069e181939b61864c9779609'},
+ {'arrow-buffer-50.0.0.tar.gz': '69615b061701bcdffbc62756bc7e85c827d5290b472b580c972ebbbf690f5aa4'},
+ {'arrow-cast-50.0.0.tar.gz': 'e448e5dd2f4113bf5b74a1f26531708f5edcacc77335b7066f9398f4bcf4cdef'},
+ {'arrow-csv-50.0.0.tar.gz': '46af72211f0712612f5b18325530b9ad1bfbdc87290d5fbfd32a7da128983781'},
+ {'arrow-data-50.0.0.tar.gz': '67d644b91a162f3ad3135ce1184d0a31c28b816a581e08f29e8e9277a574c64e'},
+ {'arrow-ipc-50.0.0.tar.gz': '03dea5e79b48de6c2e04f03f62b0afea7105be7b77d134f6c5414868feefb80d'},
+ {'arrow-json-50.0.0.tar.gz': '8950719280397a47d37ac01492e3506a8a724b3fb81001900b866637a829ee0f'},
+ {'arrow-ord-50.0.0.tar.gz': '1ed9630979034077982d8e74a942b7ac228f33dd93a93b615b4d02ad60c260be'},
+ {'arrow-row-50.0.0.tar.gz': '007035e17ae09c4e8993e4cb8b5b96edf0afb927cd38e2dff27189b274d83dcf'},
+ {'arrow-schema-50.0.0.tar.gz': '0ff3e9c01f7cd169379d269f926892d0e622a704960350d09d331be3ec9e0029'},
+ {'arrow-select-50.0.0.tar.gz': '1ce20973c1912de6514348e064829e50947e35977bb9d7fb637dc99ea9ffd78c'},
+ {'arrow-string-50.0.0.tar.gz': '00f3b37f2aeece31a2636d1b037dabb69ef590e03bdc7eb68519b51ec86932a7'},
+ {'autocfg-1.1.0.tar.gz': 'd468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa'},
+ {'base64-0.21.7.tar.gz': '9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567'},
+ {'bio-types-1.0.1.tar.gz': '9d45749b87f21808051025e9bf714d14ff4627f9d8ca967eade6946ea769aa4a'},
+ {'bitflags-1.3.2.tar.gz': 'bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a'},
+ {'bumpalo-3.15.1.tar.gz': 'c764d619ca78fccbf3069b37bd7af92577f044bb15236036662d79b6559f25b7'},
+ {'byteorder-1.5.0.tar.gz': '1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b'},
+ {'bytes-1.5.0.tar.gz': 'a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223'},
+ {'bzip2-sys-0.1.11+1.0.8.tar.gz': '736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc'},
+ {'cc-1.0.86.tar.gz': '7f9fa1897e4325be0d68d48df6aa1a71ac2ed4d27723887e7754192705350730'},
+ {'cfg-if-1.0.0.tar.gz': 'baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd'},
+ {'chrono-0.4.34.tar.gz': '5bc015644b92d5890fab7489e49d21f879d5c990186827d42ec511919404f38b'},
+ {'clap-4.5.1.tar.gz': 'c918d541ef2913577a0f9566e9ce27cb35b6df072075769e0b26cb5a554520da'},
+ {'clap_builder-4.5.1.tar.gz': '9f3e7391dad68afb0c2ede1bf619f579a3dc9c2ec67f089baa397123a2f3d1eb'},
+ {'clap_derive-4.5.0.tar.gz': '307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47'},
+ {'clap_lex-0.7.0.tar.gz': '98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce'},
+ {'cmake-0.1.50.tar.gz': 'a31c789563b815f77f4250caee12365734369f942439b7defd71e18a48197130'},
+ {'colorchoice-1.0.0.tar.gz': 'acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7'},
+ {'const-random-0.1.17.tar.gz': '5aaf16c9c2c612020bcfd042e170f6e32de9b9d75adb5277cdbbd2e2c8c8299a'},
+ {'const-random-macro-0.1.16.tar.gz': 'f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e'},
+ {'core-foundation-sys-0.8.6.tar.gz': '06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f'},
+ {'crossbeam-deque-0.8.5.tar.gz': '613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d'},
+ {'crossbeam-epoch-0.9.18.tar.gz': '5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e'},
+ {'crossbeam-utils-0.8.19.tar.gz': '248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345'},
+ {'crunchy-0.2.2.tar.gz': '7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7'},
+ {'csv-1.3.0.tar.gz': 'ac574ff4d437a7b5ad237ef331c17ccca63c46479e5b5453eb8e10bb99a759fe'},
+ {'csv-core-0.1.11.tar.gz': '5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70'},
+ {'ctor-0.2.6.tar.gz': '30d2b3721e861707777e3195b0158f950ae6dc4a27e4d02ff9f67e3eb3de199e'},
+ {'curl-sys-0.4.72+curl-8.6.0.tar.gz': '29cbdc8314c447d11e8fd156dcdd031d9e02a7a976163e396b548c03153bc9ea'},
+ {'custom_derive-0.1.7.tar.gz': 'ef8ae57c4978a2acd8b869ce6b9ca1dfe817bff704c220209fdef2c0b75a01b9'},
+ {'derive-new-0.5.9.tar.gz': '3418329ca0ad70234b9735dc4ceed10af4df60eff9c8e7b06cb5e520d92c3535'},
+ {'either-1.10.0.tar.gz': '11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a'},
+ {'env_filter-0.1.0.tar.gz': 'a009aa4810eb158359dda09d0c87378e4bbb89b5a801f016885a4707ba24f7ea'},
+ {'env_logger-0.11.2.tar.gz': '6c012a26a7f605efc424dd53697843a72be7dc86ad2d01f7814337794a12231d'},
+ {'equivalent-1.0.1.tar.gz': '5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5'},
+ {'flatbuffers-23.5.26.tar.gz': '4dac53e22462d78c16d64a1cd22371b54cc3fe94aa15e7886a2fa6e5d1ab8640'},
+ {'form_urlencoded-1.2.1.tar.gz': 'e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456'},
+ {'fs-utils-1.1.4.tar.gz': '6fc7a9dc005c944c98a935e7fd626faf5bf7e5a609f94bc13e42fc4a02e52593'},
+ {'getrandom-0.2.12.tar.gz': '190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5'},
+ {'glob-0.3.1.tar.gz': 'd2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b'},
+ {'half-2.3.1.tar.gz': 'bc52e53916c08643f1b56ec082790d1e86a32e58dc5268f897f313fbae7b4872'},
+ {'hashbrown-0.14.3.tar.gz': '290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604'},
+ {'heck-0.4.1.tar.gz': '95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8'},
+ {'hts-sys-2.1.1.tar.gz': 'deebfb779c734d542e7f14c298597914b9b5425e4089aef482eacb5cab941915'},
+ {'humantime-2.1.0.tar.gz': '9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4'},
+ {'iana-time-zone-0.1.60.tar.gz': 'e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141'},
+ {'iana-time-zone-haiku-0.1.2.tar.gz': 'f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f'},
+ {'idna-0.5.0.tar.gz': '634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6'},
+ {'ieee754-0.2.6.tar.gz': '9007da9cacbd3e6343da136e98b0d2df013f553d35bdec8b518f07bea768e19c'},
+ {'indexmap-2.2.3.tar.gz': '233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177'},
+ {'itertools-0.12.1.tar.gz': 'ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569'},
+ {'itoa-1.0.10.tar.gz': 'b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c'},
+ {'js-sys-0.3.68.tar.gz': '406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee'},
+ {'lazy_static-1.4.0.tar.gz': 'e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646'},
+ {'lexical-core-0.8.5.tar.gz': '2cde5de06e8d4c2faabc400238f9ae1c74d5412d03a7bd067645ccbc47070e46'},
+ {'lexical-parse-float-0.8.5.tar.gz': '683b3a5ebd0130b8fb52ba0bdc718cc56815b6a097e28ae5a6997d0ad17dc05f'},
+ {'lexical-parse-integer-0.8.6.tar.gz': '6d0994485ed0c312f6d965766754ea177d07f9c00c9b82a5ee62ed5b47945ee9'},
+ {'lexical-util-0.8.5.tar.gz': '5255b9ff16ff898710eb9eb63cb39248ea8a5bb036bea8085b1a767ff6c4e3fc'},
+ {'lexical-write-float-0.8.5.tar.gz': 'accabaa1c4581f05a3923d1b4cfd124c329352288b7b9da09e766b0668116862'},
+ {'lexical-write-integer-0.8.5.tar.gz': 'e1b6f3d1f4422866b68192d62f77bc5c700bee84f3069f2469d7bc8c77852446'},
+ {'libc-0.2.153.tar.gz': '9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd'},
+ {'libm-0.2.8.tar.gz': '4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058'},
+ {'libz-sys-1.1.15.tar.gz': '037731f5d3aaa87a5675e895b63ddff1a87624bc29f77004ea829809654e48f6'},
+ {'linear-map-1.2.0.tar.gz': 'bfae20f6b19ad527b550c223fddc3077a547fc70cda94b9b566575423fd303ee'},
+ {'log-0.4.20.tar.gz': 'b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f'},
+ {'lzma-sys-0.1.20.tar.gz': '5fda04ab3764e6cde78b9974eec4f779acaba7c4e84b36eca3cf77c581b85d27'},
+ {'memchr-2.7.1.tar.gz': '523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149'},
+ {'newtype_derive-0.1.6.tar.gz': 'ac8cd24d9f185bb7223958d8c1ff7a961b74b1953fd05dba7cc568a63b3861ec'},
+ {'num-0.4.1.tar.gz': 'b05180d69e3da0e530ba2a1dae5110317e49e3b7f3d41be227dc5f92e49ee7af'},
+ {'num-bigint-0.4.4.tar.gz': '608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0'},
+ {'num-complex-0.4.5.tar.gz': '23c6602fda94a57c990fe0df199a035d83576b496aa29f4e634a8ac6004e68a6'},
+ {'num-integer-0.1.46.tar.gz': '7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f'},
+ {'num-iter-0.1.44.tar.gz': 'd869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9'},
+ {'num-rational-0.4.1.tar.gz': '0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0'},
+ {'num-traits-0.2.18.tar.gz': 'da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a'},
+ {'once_cell-1.19.0.tar.gz': '3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92'},
+ {'openssl-src-300.2.3+3.2.1.tar.gz': '5cff92b6f71555b61bb9315f7c64da3ca43d87531622120fea0195fc761b4843'},
+ {'openssl-sys-0.9.100.tar.gz': 'ae94056a791d0e1217d18b6cbdccb02c61e3054fc69893607f4067e3bb0b1fd1'},
+ {'percent-encoding-2.3.1.tar.gz': 'e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e'},
+ {'pkg-config-0.3.30.tar.gz': 'd231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec'},
+ {'proc-macro2-1.0.78.tar.gz': 'e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae'},
+ {'quick-error-1.2.3.tar.gz': 'a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0'},
+ {'quote-1.0.35.tar.gz': '291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef'},
+ {'rayon-1.8.1.tar.gz': 'fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051'},
+ {'rayon-core-1.12.1.tar.gz': '1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2'},
+ {'regex-1.10.3.tar.gz': 'b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15'},
+ {'regex-automata-0.4.5.tar.gz': '5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd'},
+ {'regex-syntax-0.8.2.tar.gz': 'c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f'},
+ {'rust-htslib-0.46.0.tar.gz': 'aec6f9ca4601beb4ae75ff8c99144dd15de5a873f6adf058da299962c760968e'},
+ {'rustc_version-0.1.7.tar.gz': 'c5f5376ea5e30ce23c03eb77cbe4962b988deead10910c372b226388b594c084'},
+ {'rustc_version-0.4.0.tar.gz': 'bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366'},
+ {'rustversion-1.0.14.tar.gz': '7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4'},
+ {'ryu-1.0.17.tar.gz': 'e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1'},
+ {'semver-0.1.20.tar.gz': 'd4f410fedcf71af0345d7607d246e7ad15faaadd49d240ee3b24e5dc21a820ac'},
+ {'semver-1.0.22.tar.gz': '92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca'},
+ {'serde-1.0.197.tar.gz': '3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2'},
+ {'serde_derive-1.0.197.tar.gz': '7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b'},
+ {'serde_json-1.0.114.tar.gz': 'c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0'},
+ {'static_assertions-1.1.0.tar.gz': 'a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f'},
+ {'strsim-0.11.0.tar.gz': '5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01'},
+ {'strum_macros-0.25.3.tar.gz': '23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0'},
+ {'syn-1.0.109.tar.gz': '72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237'},
+ {'syn-2.0.50.tar.gz': '74f1bdc9872430ce9b75da68329d1c1746faf50ffac5f19e02b71e37ff881ffb'},
+ {'thiserror-1.0.57.tar.gz': '1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b'},
+ {'thiserror-impl-1.0.57.tar.gz': 'a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81'},
+ {'tiny-keccak-2.0.2.tar.gz': '2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237'},
+ {'tinyvec-1.6.0.tar.gz': '87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50'},
+ {'tinyvec_macros-0.1.1.tar.gz': '1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20'},
+ {'unicode-bidi-0.3.15.tar.gz': '08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75'},
+ {'unicode-ident-1.0.12.tar.gz': '3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b'},
+ {'unicode-normalization-0.1.23.tar.gz': 'a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5'},
+ {'unzip-n-0.1.2.tar.gz': 'c2e7e85a0596447f0f2ac090e16bc4c516c6fe91771fb0c0ccf7fa3dae896b9c'},
+ {'url-2.5.0.tar.gz': '31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633'},
+ {'utf8parse-0.2.1.tar.gz': '711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a'},
+ {'vcpkg-0.2.15.tar.gz': 'accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426'},
+ {'version_check-0.9.4.tar.gz': '49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f'},
+ {'wasi-0.11.0+wasi-snapshot-preview1.tar.gz': '9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423'},
+ {'wasm-bindgen-0.2.91.tar.gz': 'c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f'},
+ {'wasm-bindgen-backend-0.2.91.tar.gz': 'c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b'},
+ {'wasm-bindgen-macro-0.2.91.tar.gz': 'b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed'},
+ {'wasm-bindgen-macro-support-0.2.91.tar.gz': '642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66'},
+ {'wasm-bindgen-shared-0.2.91.tar.gz': '4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838'},
+ {'windows-core-0.52.0.tar.gz': '33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9'},
+ {'windows-sys-0.52.0.tar.gz': '282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d'},
+ {'windows-targets-0.52.0.tar.gz': '8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd'},
+ {'windows_aarch64_gnullvm-0.52.0.tar.gz': 'cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea'},
+ {'windows_aarch64_msvc-0.52.0.tar.gz': 'bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef'},
+ {'windows_i686_gnu-0.52.0.tar.gz': 'a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313'},
+ {'windows_i686_msvc-0.52.0.tar.gz': 'ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a'},
+ {'windows_x86_64_gnu-0.52.0.tar.gz': '3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd'},
+ {'windows_x86_64_gnullvm-0.52.0.tar.gz': '1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e'},
+ {'windows_x86_64_msvc-0.52.0.tar.gz': 'dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04'},
+ {'zerocopy-0.7.32.tar.gz': '74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be'},
+ {'zerocopy-derive-0.7.32.tar.gz': '9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6'},
+]
+
+crates = [
+ ('ahash', '0.8.9'),
+ ('aho-corasick', '1.1.2'),
+ ('android-tzdata', '0.1.1'),
+ ('android_system_properties', '0.1.5'),
+ ('anstream', '0.6.12'),
+ ('anstyle', '1.0.6'),
+ ('anstyle-parse', '0.2.3'),
+ ('anstyle-query', '1.0.2'),
+ ('anstyle-wincon', '3.0.2'),
+ ('arrow', '50.0.0'),
+ ('arrow-arith', '50.0.0'),
+ ('arrow-array', '50.0.0'),
+ ('arrow-buffer', '50.0.0'),
+ ('arrow-cast', '50.0.0'),
+ ('arrow-csv', '50.0.0'),
+ ('arrow-data', '50.0.0'),
+ ('arrow-ipc', '50.0.0'),
+ ('arrow-json', '50.0.0'),
+ ('arrow-ord', '50.0.0'),
+ ('arrow-row', '50.0.0'),
+ ('arrow-schema', '50.0.0'),
+ ('arrow-select', '50.0.0'),
+ ('arrow-string', '50.0.0'),
+ ('autocfg', '1.1.0'),
+ ('base64', '0.21.7'),
+ ('bio-types', '1.0.1'),
+ ('bitflags', '1.3.2'),
+ ('bumpalo', '3.15.1'),
+ ('byteorder', '1.5.0'),
+ ('bytes', '1.5.0'),
+ ('bzip2-sys', '0.1.11+1.0.8'),
+ ('cc', '1.0.86'),
+ ('cfg-if', '1.0.0'),
+ ('chrono', '0.4.34'),
+ ('clap', '4.5.1'),
+ ('clap_builder', '4.5.1'),
+ ('clap_derive', '4.5.0'),
+ ('clap_lex', '0.7.0'),
+ ('cmake', '0.1.50'),
+ ('colorchoice', '1.0.0'),
+ ('const-random', '0.1.17'),
+ ('const-random-macro', '0.1.16'),
+ ('core-foundation-sys', '0.8.6'),
+ ('crossbeam-deque', '0.8.5'),
+ ('crossbeam-epoch', '0.9.18'),
+ ('crossbeam-utils', '0.8.19'),
+ ('crunchy', '0.2.2'),
+ ('csv', '1.3.0'),
+ ('csv-core', '0.1.11'),
+ ('ctor', '0.2.6'),
+ ('curl-sys', '0.4.72+curl-8.6.0'),
+ ('custom_derive', '0.1.7'),
+ ('derive-new', '0.5.9'),
+ ('either', '1.10.0'),
+ ('env_filter', '0.1.0'),
+ ('env_logger', '0.11.2'),
+ ('equivalent', '1.0.1'),
+ ('flatbuffers', '23.5.26'),
+ ('form_urlencoded', '1.2.1'),
+ ('fs-utils', '1.1.4'),
+ ('getrandom', '0.2.12'),
+ ('glob', '0.3.1'),
+ ('half', '2.3.1'),
+ ('hashbrown', '0.14.3'),
+ ('heck', '0.4.1'),
+ ('hts-sys', '2.1.1'),
+ ('humantime', '2.1.0'),
+ ('iana-time-zone', '0.1.60'),
+ ('iana-time-zone-haiku', '0.1.2'),
+ ('idna', '0.5.0'),
+ ('ieee754', '0.2.6'),
+ ('indexmap', '2.2.3'),
+ ('itertools', '0.12.1'),
+ ('itoa', '1.0.10'),
+ ('js-sys', '0.3.68'),
+ ('lazy_static', '1.4.0'),
+ ('lexical-core', '0.8.5'),
+ ('lexical-parse-float', '0.8.5'),
+ ('lexical-parse-integer', '0.8.6'),
+ ('lexical-util', '0.8.5'),
+ ('lexical-write-float', '0.8.5'),
+ ('lexical-write-integer', '0.8.5'),
+ ('libc', '0.2.153'),
+ ('libm', '0.2.8'),
+ ('libz-sys', '1.1.15'),
+ ('linear-map', '1.2.0'),
+ ('log', '0.4.20'),
+ ('lzma-sys', '0.1.20'),
+ ('memchr', '2.7.1'),
+ ('newtype_derive', '0.1.6'),
+ ('num', '0.4.1'),
+ ('num-bigint', '0.4.4'),
+ ('num-complex', '0.4.5'),
+ ('num-integer', '0.1.46'),
+ ('num-iter', '0.1.44'),
+ ('num-rational', '0.4.1'),
+ ('num-traits', '0.2.18'),
+ ('once_cell', '1.19.0'),
+ ('openssl-src', '300.2.3+3.2.1'),
+ ('openssl-sys', '0.9.100'),
+ ('percent-encoding', '2.3.1'),
+ ('pkg-config', '0.3.30'),
+ ('proc-macro2', '1.0.78'),
+ ('quick-error', '1.2.3'),
+ ('quote', '1.0.35'),
+ ('rayon', '1.8.1'),
+ ('rayon-core', '1.12.1'),
+ ('regex', '1.10.3'),
+ ('regex-automata', '0.4.5'),
+ ('regex-syntax', '0.8.2'),
+ ('rust-htslib', '0.46.0'),
+ ('rustc_version', '0.1.7'),
+ ('rustc_version', '0.4.0'),
+ ('rustversion', '1.0.14'),
+ ('ryu', '1.0.17'),
+ ('semver', '0.1.20'),
+ ('semver', '1.0.22'),
+ ('serde', '1.0.197'),
+ ('serde_derive', '1.0.197'),
+ ('serde_json', '1.0.114'),
+ ('static_assertions', '1.1.0'),
+ ('strsim', '0.11.0'),
+ ('strum_macros', '0.25.3'),
+ ('syn', '1.0.109'),
+ ('syn', '2.0.50'),
+ ('thiserror', '1.0.57'),
+ ('thiserror-impl', '1.0.57'),
+ ('tiny-keccak', '2.0.2'),
+ ('tinyvec', '1.6.0'),
+ ('tinyvec_macros', '0.1.1'),
+ ('unicode-bidi', '0.3.15'),
+ ('unicode-ident', '1.0.12'),
+ ('unicode-normalization', '0.1.23'),
+ ('unzip-n', '0.1.2'),
+ ('url', '2.5.0'),
+ ('utf8parse', '0.2.1'),
+ ('vcpkg', '0.2.15'),
+ ('version_check', '0.9.4'),
+ ('wasi', '0.11.0+wasi-snapshot-preview1'),
+ ('wasm-bindgen', '0.2.91'),
+ ('wasm-bindgen-backend', '0.2.91'),
+ ('wasm-bindgen-macro', '0.2.91'),
+ ('wasm-bindgen-macro-support', '0.2.91'),
+ ('wasm-bindgen-shared', '0.2.91'),
+ ('windows-core', '0.52.0'),
+ ('windows-sys', '0.52.0'),
+ ('windows-targets', '0.52.0'),
+ ('windows_aarch64_gnullvm', '0.52.0'),
+ ('windows_aarch64_msvc', '0.52.0'),
+ ('windows_i686_gnu', '0.52.0'),
+ ('windows_i686_msvc', '0.52.0'),
+ ('windows_x86_64_gnu', '0.52.0'),
+ ('windows_x86_64_gnullvm', '0.52.0'),
+ ('windows_x86_64_msvc', '0.52.0'),
+ ('zerocopy', '0.7.32'),
+ ('zerocopy-derive', '0.7.32'),
+]
+
+builddependencies = [
+ ('Rust', '1.75.0'),
+ ('CMake', '3.26.3'),
+]
+
+dependencies = [
+ ('bzip2', '1.0.8'),
+ ('OpenSSL', '1.1', '', SYSTEM),
+ ('Perl', '5.36.1'),
+ ('Perl-bundle-CPAN', '5.36.1'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/%(name)s'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["%(name)s --help"]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/crb-blast/crb-blast-0.6.9-GCC-12.3.0.eb b/easybuild/easyconfigs/c/crb-blast/crb-blast-0.6.9-GCC-12.3.0.eb
new file mode 100644
index 00000000000..c9e4de852a5
--- /dev/null
+++ b/easybuild/easyconfigs/c/crb-blast/crb-blast-0.6.9-GCC-12.3.0.eb
@@ -0,0 +1,58 @@
+easyblock = 'Bundle'
+
+name = 'crb-blast'
+version = '0.6.9'
+
+homepage = 'https://github.com/cboursnell/crb-blast'
+description = """Conditional Reciprocal Best BLAST - high confidence ortholog assignment."""
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+
+dependencies = [
+ ('Ruby', '3.3.0'),
+]
+
+exts_default_options = {
+ 'source_urls': ['https://rubygems.org/downloads/'],
+ 'source_tmpl': '%(name)s-%(version)s.gem',
+}
+
+exts_defaultclass = 'RubyGem'
+
+exts_list = [
+ ('facade', '1.2.1', {
+ 'checksums': ['0764de5519088227675a2a67da23322500c3c507b89486d91296e031d87d036e'],
+ }),
+ ('pathname2', '1.8.4', {
+ 'checksums': ['1711264f3f7c1b380f96e1f0383b135d9703488f7b1acf66346a176efc257b7a'],
+ }),
+ ('fixwhich', '1.0.2', {
+ 'checksums': ['c6a8f796a7eb60ffbc29f0d2af85461761a36c2864d25e445ff18bfbd1657078'],
+ }),
+ ('bindeps', '1.2.1', {
+ 'checksums': ['3c11d75aa722bed67246852bb430a182361a128910d384b664b91f3e65bc34b5'],
+ }),
+ ('bio', '1.6.0.pre.20181210', {
+ 'checksums': ['c4114aeb99b012f90660b92ead4ca88c1578fd58252ed3ec46eb45dc4a2c6cc9'],
+ }),
+ ('threach', '0.2.0', {
+ 'checksums': ['432cbf3569bf9b09e26f93d0959fd6fb911c71e790e8a4cc4d1110e139a2ffca'],
+ }),
+ ('trollop', '2.9.10', {
+ 'checksums': ['ceca2d91f349163d6ee3e792d356d4ded7472e6da31ac6dcc5956d1b03607bf7'],
+ }),
+ (name, version, {
+ 'checksums': ['69c346e7d83efe9b9a383a39b57e7cce186a82b7074f275b14906f8f05678e3e'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/%(namelower)s'],
+ 'dirs': ['gems/%(namelower)s-%(version)s'],
+}
+
+sanity_check_commands = ["%(namelower)s --help"]
+
+modextrapaths = {'GEM_PATH': ['']}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/cryoCARE/cryoCARE-0.3.0-foss-2022a-CUDA-11.7.0.eb b/easybuild/easyconfigs/c/cryoCARE/cryoCARE-0.3.0-foss-2022a-CUDA-11.7.0.eb
new file mode 100644
index 00000000000..9e6d24ecafd
--- /dev/null
+++ b/easybuild/easyconfigs/c/cryoCARE/cryoCARE-0.3.0-foss-2022a-CUDA-11.7.0.eb
@@ -0,0 +1,58 @@
+# Thomas Hoffmann, EMBL Heidelberg, structures-it@embl.de, 2023/11
+easyblock = 'PythonBundle'
+
+name = 'cryoCARE'
+version = '0.3.0'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://github.com/juglab/cryoCARE_pip'
+description = """This package is a memory efficient implementation of cryoCARE.
+
+This setup trains a denoising U-Net for tomographic reconstruction according to
+ the Noise2Noise training paradigm. Therefore the user has to provide two
+tomograms of the same sample. The simplest way to achieve this is with direct-
+detector movie-frames.
+
+You can use Warp to generate two reconstructed tomograms based on the even/odd
+frames. Alternatively, the movie-frames can be split in two halves (e.g. with
+MotionCor2 -SplitSum 1 or with IMOD alignframes -debug 10000) from which two
+identical, up to random noise, tomograms can be reconstructed.
+
+These two (even and odd) tomograms can be used as input to this cryoCARE
+implementation."""
+
+toolchain = {'name': 'foss', 'version': '2022a'}
+
+
+dependencies = [
+ ('Python', '3.10.4'),
+ ('CUDA', '11.7.0', '', SYSTEM),
+ ('SciPy-bundle', '2022.05'),
+ ('TensorFlow', '2.11.0', versionsuffix),
+ ('mrcfile', '1.4.3'),
+ ('tqdm', '4.64.0'),
+ ('matplotlib', '3.5.2'),
+ ('CSBDeep', '0.7.4', versionsuffix),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ (name, version, {
+ 'patches': ['%(name)s-%(version)s_relax_requirements.patch'],
+ 'checksums': [
+ {'cryoCARE-0.3.0.tar.gz': '8885aeb03d1731de1958463bbf766fa9999f4480d71c3af09f711ee210ab9886'},
+ {'cryoCARE-0.3.0_relax_requirements.patch':
+ 'a44814f6e568f5fb618cf789d21a6b5714fbda78b4170ec8e868e50fb0f2a5c0'},
+ ],
+ }),
+]
+
+sanity_check_commands = [
+ 'cryoCARE_extract_train_data.py --help',
+ 'cryoCARE_train.py --help',
+ 'cryoCARE_predict.py --help',
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/cryoCARE/cryoCARE-0.3.0_relax_requirements.patch b/easybuild/easyconfigs/c/cryoCARE/cryoCARE-0.3.0_relax_requirements.patch
new file mode 100644
index 00000000000..e35ce9f3a78
--- /dev/null
+++ b/easybuild/easyconfigs/c/cryoCARE/cryoCARE-0.3.0_relax_requirements.patch
@@ -0,0 +1,16 @@
+# Thomas Hoffmann, EMBL Heidelberg, structures-it@embl.de, 2023/11
+# https://github.com/juglab/cryoCARE_pip/issues/47
+# The restriction to ~=1.19 has been introduced due to a conflict with
+# Tensorflow 2.4. However, we are using TF 2.11
+diff -ru cryoCARE-0.3.0/setup.py cryoCARE-0.3.0_relax_requirements/setup.py
+--- cryoCARE-0.3.0/setup.py 2023-06-15 15:33:40.000000000 +0200
++++ cryoCARE-0.3.0_relax_requirements/setup.py 2023-11-07 11:01:24.464822422 +0100
+@@ -23,7 +23,7 @@
+ ],
+ python_requires='>=3.8',
+ install_requires=[
+- "numpy~=1.19.2",
++ "numpy>=1.19.2",
+ "mrcfile",
+ "csbdeep>=0.7.0,<0.8.0",
+ "psutil"
diff --git a/easybuild/easyconfigs/c/crypt4gh/crypt4gh-1.7-GCC-12.3.0.eb b/easybuild/easyconfigs/c/crypt4gh/crypt4gh-1.7-GCC-12.3.0.eb
new file mode 100644
index 00000000000..c52d7b3d83d
--- /dev/null
+++ b/easybuild/easyconfigs/c/crypt4gh/crypt4gh-1.7-GCC-12.3.0.eb
@@ -0,0 +1,32 @@
+easyblock = 'PythonBundle'
+
+name = 'crypt4gh'
+version = '1.7'
+
+homepage = 'https://github.com/EGA-archive/crypt4gh'
+description = """crypt4gh is a Python tool to encrypt, decrypt or re-encrypt files,
+according to the GA4GH encryption file format."""
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('PyYAML', '6.0'),
+ ('cryptography', '41.0.1'),
+ ('bcrypt', '4.0.1'),
+]
+
+use_pip = True
+
+exts_list = [
+ (name, version, {
+ 'checksums': ['1569bc4ff9b689c8852e3892ac3f6fea4b31948ca0b1e5bc28d0d2f80def2a28'],
+ }),
+]
+
+sanity_pip_check = True
+
+sanity_check_commands = ['crypt4gh -h']
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/c/cryptography/cryptography-42.0.8-GCCcore-13.3.0.eb b/easybuild/easyconfigs/c/cryptography/cryptography-42.0.8-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..be6bff8c478
--- /dev/null
+++ b/easybuild/easyconfigs/c/cryptography/cryptography-42.0.8-GCCcore-13.3.0.eb
@@ -0,0 +1,131 @@
+easyblock = 'CargoPythonPackage'
+
+name = 'cryptography'
+version = '42.0.8'
+
+homepage = 'https://github.com/pyca/cryptography'
+description = "cryptography is a package designed to expose cryptographic primitives and recipes to Python developers."
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('pkgconf', '2.2.0'),
+ ('Rust', '1.78.0'), # required for cryptography
+ ('hatchling', '1.24.2'),
+ ('setuptools-rust', '1.9.0'),
+]
+
+dependencies = [
+ ('Python', '3.12.3'),
+ ('cffi', '1.16.0'),
+]
+crates = [
+ ('asn1', '0.15.5'),
+ ('asn1_derive', '0.15.5'),
+ ('autocfg', '1.1.0'),
+ ('base64', '0.21.7'),
+ ('bitflags', '1.3.2'),
+ ('bitflags', '2.4.2'),
+ ('cc', '1.0.83'),
+ ('cfg-if', '1.0.0'),
+ ('foreign-types', '0.3.2'),
+ ('foreign-types-shared', '0.1.1'),
+ ('heck', '0.4.1'),
+ ('indoc', '2.0.4'),
+ ('libc', '0.2.152'),
+ ('lock_api', '0.4.11'),
+ ('memoffset', '0.9.0'),
+ ('once_cell', '1.19.0'),
+ ('openssl', '0.10.64'),
+ ('openssl-macros', '0.1.1'),
+ ('openssl-sys', '0.9.102'),
+ ('parking_lot', '0.12.1'),
+ ('parking_lot_core', '0.9.9'),
+ ('pem', '3.0.3'),
+ ('pkg-config', '0.3.29'),
+ ('portable-atomic', '1.6.0'),
+ ('proc-macro2', '1.0.78'),
+ ('pyo3', '0.20.3'),
+ ('pyo3-build-config', '0.20.3'),
+ ('pyo3-ffi', '0.20.3'),
+ ('pyo3-macros', '0.20.3'),
+ ('pyo3-macros-backend', '0.20.3'),
+ ('quote', '1.0.35'),
+ ('redox_syscall', '0.4.1'),
+ ('scopeguard', '1.2.0'),
+ ('self_cell', '1.0.3'),
+ ('smallvec', '1.13.1'),
+ ('syn', '2.0.48'),
+ ('target-lexicon', '0.12.13'),
+ ('unicode-ident', '1.0.12'),
+ ('unindent', '0.2.3'),
+ ('vcpkg', '0.2.15'),
+ ('windows-targets', '0.48.5'),
+ ('windows_aarch64_gnullvm', '0.48.5'),
+ ('windows_aarch64_msvc', '0.48.5'),
+ ('windows_i686_gnu', '0.48.5'),
+ ('windows_i686_msvc', '0.48.5'),
+ ('windows_x86_64_gnu', '0.48.5'),
+ ('windows_x86_64_gnullvm', '0.48.5'),
+ ('windows_x86_64_msvc', '0.48.5'),
+]
+sources = [SOURCE_TAR_GZ]
+checksums = [
+ {'cryptography-42.0.8.tar.gz': '8d09d05439ce7baa8e9e95b07ec5b6c886f548deb7e0f69ef25f64b3bce842f2'},
+ {'asn1-0.15.5.tar.gz': 'ae3ecbce89a22627b5e8e6e11d69715617138290289e385cde773b1fe50befdb'},
+ {'asn1_derive-0.15.5.tar.gz': '861af988fac460ac69a09f41e6217a8fb9178797b76fcc9478444be6a59be19c'},
+ {'autocfg-1.1.0.tar.gz': 'd468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa'},
+ {'base64-0.21.7.tar.gz': '9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567'},
+ {'bitflags-1.3.2.tar.gz': 'bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a'},
+ {'bitflags-2.4.2.tar.gz': 'ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf'},
+ {'cc-1.0.83.tar.gz': 'f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0'},
+ {'cfg-if-1.0.0.tar.gz': 'baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd'},
+ {'foreign-types-0.3.2.tar.gz': 'f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1'},
+ {'foreign-types-shared-0.1.1.tar.gz': '00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b'},
+ {'heck-0.4.1.tar.gz': '95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8'},
+ {'indoc-2.0.4.tar.gz': '1e186cfbae8084e513daff4240b4797e342f988cecda4fb6c939150f96315fd8'},
+ {'libc-0.2.152.tar.gz': '13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7'},
+ {'lock_api-0.4.11.tar.gz': '3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45'},
+ {'memoffset-0.9.0.tar.gz': '5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c'},
+ {'once_cell-1.19.0.tar.gz': '3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92'},
+ {'openssl-0.10.64.tar.gz': '95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f'},
+ {'openssl-macros-0.1.1.tar.gz': 'a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c'},
+ {'openssl-sys-0.9.102.tar.gz': 'c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2'},
+ {'parking_lot-0.12.1.tar.gz': '3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f'},
+ {'parking_lot_core-0.9.9.tar.gz': '4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e'},
+ {'pem-3.0.3.tar.gz': '1b8fcc794035347fb64beda2d3b462595dd2753e3f268d89c5aae77e8cf2c310'},
+ {'pkg-config-0.3.29.tar.gz': '2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb'},
+ {'portable-atomic-1.6.0.tar.gz': '7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0'},
+ {'proc-macro2-1.0.78.tar.gz': 'e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae'},
+ {'pyo3-0.20.3.tar.gz': '53bdbb96d49157e65d45cc287af5f32ffadd5f4761438b527b055fb0d4bb8233'},
+ {'pyo3-build-config-0.20.3.tar.gz': 'deaa5745de3f5231ce10517a1f5dd97d53e5a2fd77aa6b5842292085831d48d7'},
+ {'pyo3-ffi-0.20.3.tar.gz': '62b42531d03e08d4ef1f6e85a2ed422eb678b8cd62b762e53891c05faf0d4afa'},
+ {'pyo3-macros-0.20.3.tar.gz': '7305c720fa01b8055ec95e484a6eca7a83c841267f0dd5280f0c8b8551d2c158'},
+ {'pyo3-macros-backend-0.20.3.tar.gz': '7c7e9b68bb9c3149c5b0cade5d07f953d6d125eb4337723c4ccdb665f1f96185'},
+ {'quote-1.0.35.tar.gz': '291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef'},
+ {'redox_syscall-0.4.1.tar.gz': '4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa'},
+ {'scopeguard-1.2.0.tar.gz': '94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49'},
+ {'self_cell-1.0.3.tar.gz': '58bf37232d3bb9a2c4e641ca2a11d83b5062066f88df7fed36c28772046d65ba'},
+ {'smallvec-1.13.1.tar.gz': 'e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7'},
+ {'syn-2.0.48.tar.gz': '0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f'},
+ {'target-lexicon-0.12.13.tar.gz': '69758bda2e78f098e4ccb393021a0963bb3442eac05f135c30f61b7370bbafae'},
+ {'unicode-ident-1.0.12.tar.gz': '3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b'},
+ {'unindent-0.2.3.tar.gz': 'c7de7d73e1754487cb58364ee906a499937a0dfabd86bcb980fa99ec8c8fa2ce'},
+ {'vcpkg-0.2.15.tar.gz': 'accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426'},
+ {'windows-targets-0.48.5.tar.gz': '9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c'},
+ {'windows_aarch64_gnullvm-0.48.5.tar.gz': '2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8'},
+ {'windows_aarch64_msvc-0.48.5.tar.gz': 'dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc'},
+ {'windows_i686_gnu-0.48.5.tar.gz': 'a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e'},
+ {'windows_i686_msvc-0.48.5.tar.gz': '8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406'},
+ {'windows_x86_64_gnu-0.48.5.tar.gz': '53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e'},
+ {'windows_x86_64_gnullvm-0.48.5.tar.gz': '0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc'},
+ {'windows_x86_64_msvc-0.48.5.tar.gz': 'ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538'},
+]
+
+download_dep_fail = True
+use_pip = True
+sanity_pip_check = True
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/c/ctffind5/ctffind5-5.0.2-foss-2023a.eb b/easybuild/easyconfigs/c/ctffind5/ctffind5-5.0.2-foss-2023a.eb
new file mode 100644
index 00000000000..29cb349d816
--- /dev/null
+++ b/easybuild/easyconfigs/c/ctffind5/ctffind5-5.0.2-foss-2023a.eb
@@ -0,0 +1,83 @@
+# Thomas Hoffmann, EMBL Heidelberg, structures-it@embl.de, 2024/05
+easyblock = 'ConfigureMake'
+
+name = 'ctffind5'
+version = '5.0.2'
+
+local_commit = 'b21db55a91366fe4f75301c56091d213bbd326eb'
+local_branch = 'ctffind5_merge'
+
+homepage = 'https://grigoriefflab.umassmed.edu/ctf_estimation_ctffind_ctftilt'
+description = """Program for finding CTFs of electron micrographs."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+# Use git_config in order to allow setting CISTEM_CURRENT_BRANCH and CISTEM_VERSION_TEXT by configure
+sources = [{
+ 'download_filename': '%s.tar.gz' % local_commit,
+ 'filename': 'cisTEM-ctffind5-%s.tar.gz' % local_commit[:7],
+ 'git_config': {
+ 'url': 'https://github.com/timothygrant80',
+ 'repo_name': 'cisTEM',
+ 'commit': local_commit,
+ 'keep_git_dir': True,
+ }
+}]
+
+# no checksume, due to git_config
+checksums = [None]
+
+# Alternative source:
+# https://grigoriefflab.umassmed.edu/sites/default/files/cisTEM-ctffind5-b21db55.tar.gz
+
+# switch branch in order to inject proper branch name into binary:
+preconfigopts = 'git switch --create %s &&' % local_branch
+
+# disable all targets except for ctffind and applyctf (do not build any other cisTEM tool):
+local_remove_targets = """sed -i "s/^bin_PROGRAMS/"""
+local_remove_targets += """bin_PROGRAMS=ctffind applyctf\\nnoinst_PROGRAMS/g" """
+local_remove_targets += """ src/Makefile.am &&"""
+preconfigopts += local_remove_targets
+
+# run autotools
+preconfigopts += './regenerate_project.b &&'
+
+
+local_configureopts = [
+ # '--enable-latest-instruction-set', # don't use; managed by CFLAGS
+ '--enable-shared',
+ '--with-gnu-ld',
+ '--with-wx-config=$EBROOTWXWIDGETS/bin/wx-config',
+ '--disable-silent-rules',
+ '--enable-openmp',
+ '--disable-debugmode'
+ '--disable-staticmode',
+ '--enable-experimental',
+ '--without-cuda',
+]
+
+configopts = ' '.join(local_configureopts)
+
+builddependencies = [
+ ('Autotools', '20220317'),
+ ('git', '2.41.0', '-nodocs')
+]
+
+dependencies = [
+ ('wxWidgets', '3.2.2.1')
+]
+
+sanity_check_paths = {
+ 'files': ['bin/ctffind', 'bin/applyctf'],
+ 'dirs': ['bin'],
+}
+
+sanity_check_commands = [
+ # ctffind command expects filename of input image via stdin,
+ # so we pipe in a newline via 'echo' to make it exit
+ 'echo | ctffind | grep Version | grep %(version)s',
+ 'echo | ctffind | grep "Library Version" | grep %s' % local_commit[:7],
+ 'echo | ctffind | grep "Branch" | grep %s' % local_branch,
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/cuDNN/cuDNN-8.5.0.96-CUDA-11.7.0.eb b/easybuild/easyconfigs/c/cuDNN/cuDNN-8.5.0.96-CUDA-11.7.0.eb
new file mode 100644
index 00000000000..8ea684fedc1
--- /dev/null
+++ b/easybuild/easyconfigs/c/cuDNN/cuDNN-8.5.0.96-CUDA-11.7.0.eb
@@ -0,0 +1,40 @@
+name = 'cuDNN'
+version = '8.5.0.96'
+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])
+source_urls = ['https://developer.download.nvidia.com/compute/redist/cudnn/'
+ 'v%s/local_installers/%%(cudashortver)s/' % local_short_ver]
+sources = ['%(namelower)s-linux-%(cudnnarch)s-%(version)s_cuda%(cudamajver)s-archive.tar.xz']
+checksums = [
+ {
+ '%(namelower)s-linux-x86_64-%(version)s_cuda%(cudamajver)s-archive.tar.xz':
+ '5454a6fd94f008728caae9adad993c4e85ef36302e26bce43bea7d458a5e7b6d',
+ '%(namelower)s-linux-ppc64le-%(version)s_cuda%(cudamajver)s-archive.tar.xz':
+ '00373c3d5e0b536a5557d0d0eb50706777f213a222b4030e1b71b1bec43d205f',
+ '%(namelower)s-linux-sbsa-%(version)s_cuda%(cudamajver)s-archive.tar.xz':
+ '86780abbecd4634e7363fad1d000ae23b7905a5f8383bddbf7332c6934791dde',
+ }
+]
+
+dependencies = [('CUDA', '11.7.0')]
+
+sanity_check_paths = {
+ 'files': [
+ 'include/cudnn.h', 'lib64/libcudnn_adv_infer_static.a', 'lib64/libcudnn_adv_train_static.a',
+ 'lib64/libcudnn_cnn_infer_static.a', 'lib64/libcudnn_cnn_train_static.a',
+ 'lib64/libcudnn_ops_infer_static.a', 'lib64/libcudnn_ops_train_static.a',
+ 'lib64/libcudnn.%s' % SHLIB_EXT
+ ],
+ 'dirs': ['include', 'lib64'],
+}
+
+moduleclass = 'numlib'
diff --git a/easybuild/easyconfigs/c/cuDNN/cuDNN-8.9.7.29-CUDA-12.3.0.eb b/easybuild/easyconfigs/c/cuDNN/cuDNN-8.9.7.29-CUDA-12.3.0.eb
new file mode 100644
index 00000000000..448f36baf3c
--- /dev/null
+++ b/easybuild/easyconfigs/c/cuDNN/cuDNN-8.9.7.29-CUDA-12.3.0.eb
@@ -0,0 +1,40 @@
+name = 'cuDNN'
+version = '8.9.7.29'
+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:
+ '8574d291b299f9cc0134304473c9933bd098cc717e8d0876f4aba9f9eebe1b76',
+ '%%(namelower)s-linux-sbsa-%%(version)s_cuda%s-archive.tar.xz' % local_cuda_major:
+ 'e98b7c80010785e5d5ca01ee4ce9b5b0c8c73587ea6f8648be34d3f8d1d47bd1',
+ '%%(namelower)s-linux-x86_64-%%(version)s_cuda%s-archive.tar.xz' % local_cuda_major:
+ '475333625c7e42a7af3ca0b2f7506a106e30c93b1aa0081cd9c13efb6e21e3bb',
+}]
+
+dependencies = [('CUDA', '12.3.0')]
+
+sanity_check_paths = {
+ 'files': [
+ 'include/cudnn.h', 'lib64/libcudnn_adv_infer_static.a', 'lib64/libcudnn_adv_train_static.a',
+ 'lib64/libcudnn_cnn_infer_static.a', 'lib64/libcudnn_cnn_train_static.a',
+ 'lib64/libcudnn_ops_infer_static.a', 'lib64/libcudnn_ops_train_static.a',
+ 'lib64/libcudnn.%s' % SHLIB_EXT
+ ],
+ 'dirs': ['include', 'lib64'],
+}
+
+moduleclass = 'numlib'
diff --git a/easybuild/easyconfigs/c/cuDNN/cuDNN-9.5.0.50-CUDA-12.6.0.eb b/easybuild/easyconfigs/c/cuDNN/cuDNN-9.5.0.50-CUDA-12.6.0.eb
new file mode 100644
index 00000000000..76340a4e654
--- /dev/null
+++ b/easybuild/easyconfigs/c/cuDNN/cuDNN-9.5.0.50-CUDA-12.6.0.eb
@@ -0,0 +1,37 @@
+name = 'cuDNN'
+version = '9.5.0.50'
+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-sbsa-%%(version)s_cuda%s-archive.tar.xz' % local_cuda_major:
+ '494b640a69feb40ce806a726aa63a1de6b2ec459acbe6a116ef6fe3e6b27877d',
+ '%%(namelower)s-linux-x86_64-%%(version)s_cuda%s-archive.tar.xz' % local_cuda_major:
+ '86e4e4f4c09b31d3850b402d94ea52741a2f94c2f717ddc8899a14aca96e032d',
+}]
+
+dependencies = [('CUDA', '12.6.0')]
+
+sanity_check_paths = {
+ 'files': [
+ 'include/cudnn.h', 'lib64/libcudnn_adv_static.a', 'lib64/libcudnn_cnn_static.a',
+ 'lib64/libcudnn_engines_precompiled_static.a', 'lib64/libcudnn_engines_runtime_compiled_static.a',
+ 'lib64/libcudnn_graph_static.a', 'lib64/libcudnn_heuristic_static.a', 'lib64/libcudnn_ops_static.a',
+ ],
+ 'dirs': ['include', 'lib64'],
+}
+
+moduleclass = 'numlib'
diff --git a/easybuild/easyconfigs/c/cuQuantum/cuQuantum-24.08.0.5-CUDA-12.1.1.eb b/easybuild/easyconfigs/c/cuQuantum/cuQuantum-24.08.0.5-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..f2437f12613
--- /dev/null
+++ b/easybuild/easyconfigs/c/cuQuantum/cuQuantum-24.08.0.5-CUDA-12.1.1.eb
@@ -0,0 +1,27 @@
+easyblock = 'Tarball'
+
+name = 'cuQuantum'
+local_shortver = '24.08.0'
+version = local_shortver + '.5'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://developer.nvidia.com/cuquantum-sdk'
+description = """NVIDIA cuQuantum is an SDK of libraries and tools for quantum computing workflows."""
+
+toolchain = SYSTEM
+
+source_urls = ['https://developer.download.nvidia.com/compute/cuquantum/redist/cuquantum/linux-x86_64/']
+sources = ['cuquantum-linux-x86_64-%(version)s_cuda%(cudamajver)s-archive.tar.xz']
+checksums = ['485968734706eeffcd3adc3b2d2086e59be7ff3ddd907e96f1eb97335beb344a']
+
+local_cudamajver = '12'
+dependencies = [('CUDA', local_cudamajver + '.1.1')]
+
+sanity_check_paths = {
+ 'files': ['include/custatevec.h', 'include/cutensornet/types.h',
+ 'lib/libcutensornet.%s' % SHLIB_EXT,
+ 'lib/libcutensornet_static.a'],
+ 'dirs': ['distributed_interfaces'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/c/cuSPARSELt/cuSPARSELt-0.3.0.3-CUDA-11.4.1.eb b/easybuild/easyconfigs/c/cuSPARSELt/cuSPARSELt-0.3.0.3-CUDA-11.4.1.eb
index bec7936a183..fc0a8cf610b 100644
--- a/easybuild/easyconfigs/c/cuSPARSELt/cuSPARSELt-0.3.0.3-CUDA-11.4.1.eb
+++ b/easybuild/easyconfigs/c/cuSPARSELt/cuSPARSELt-0.3.0.3-CUDA-11.4.1.eb
@@ -10,9 +10,15 @@ which at least one operand is a sparse matrix"""
toolchain = SYSTEM
-source_urls = ['https://developer.download.nvidia.com/compute/cusparselt/redist/libcusparse-lt/linux-x86_64/']
-sources = ['libcusparse_lt-linux-x86_64-%(version)s-archive.tar.xz']
-checksums = ['46b258c2c333f7324e03bdf6b13576be6153b1218fb531025631650e36515f45']
+local_arch = {'arm64': 'sbsa', 'aarch64': 'sbsa'}.get(ARCH, ARCH)
+source_urls = ['https://developer.download.nvidia.com/compute/cusparselt/redist/libcusparse_lt/linux-%s/' % local_arch]
+sources = ['libcusparse_lt-linux-%s-%%(version)s-archive.tar.xz' % local_arch]
+checksums = [{
+ 'libcusparse_lt-linux-x86_64-%(version)s-archive.tar.xz':
+ '46b258c2c333f7324e03bdf6b13576be6153b1218fb531025631650e36515f45',
+ 'libcusparse_lt-linux-sbsa-%(version)s-archive.tar.xz':
+ '6269885ec6cecc1a0aa95f344f35c882b6bf0a6ef55d1726e2cf59e11a3af68e',
+}]
dependencies = [('CUDA', '11.4.1')]
diff --git a/easybuild/easyconfigs/c/cuSPARSELt/cuSPARSELt-0.6.0.6-CUDA-12.1.1.eb b/easybuild/easyconfigs/c/cuSPARSELt/cuSPARSELt-0.6.0.6-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..80bdd6b93c6
--- /dev/null
+++ b/easybuild/easyconfigs/c/cuSPARSELt/cuSPARSELt-0.6.0.6-CUDA-12.1.1.eb
@@ -0,0 +1,32 @@
+easyblock = 'Tarball'
+
+name = 'cuSPARSELt'
+version = '0.6.0.6'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://docs.nvidia.com/cuda/cusparselt/index.html'
+description = """NVIDIA cuSPARSELt is a high-performance CUDA library dedicated to general matrix-matrix operations in
+which at least one operand is a sparse matrix"""
+
+toolchain = SYSTEM
+
+local_arch = {'arm64': 'sbsa', 'aarch64': 'sbsa'}.get(ARCH, ARCH)
+source_urls = ['https://developer.download.nvidia.com/compute/cusparselt/redist/libcusparse_lt/linux-%s/' % local_arch]
+sources = ['libcusparse_lt-linux-%s-%%(version)s-archive.tar.xz' % local_arch]
+checksums = [{
+ 'libcusparse_lt-linux-x86_64-%(version)s-archive.tar.xz':
+ 'da20d7a6d7a6674cb6e991439eaacd4661631c71a2f1026c41fba115c5c9c8b5',
+ 'libcusparse_lt-linux-sbsa-%(version)s-archive.tar.xz':
+ '51db8182444b4e2c125397ea95e4996c022ef791a87ce7a7389204e77617297f',
+}]
+
+dependencies = [('CUDA', '12.1.1')]
+
+sanity_check_paths = {
+ 'files': ['include/cusparseLt.h',
+ 'lib/libcusparseLt.%s' % SHLIB_EXT,
+ 'lib/libcusparseLt_static.a'],
+ 'dirs': [],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/c/cuTENSOR/cuTENSOR-2.0.1.2-CUDA-12.1.1.eb b/easybuild/easyconfigs/c/cuTENSOR/cuTENSOR-2.0.1.2-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..578050b4874
--- /dev/null
+++ b/easybuild/easyconfigs/c/cuTENSOR/cuTENSOR-2.0.1.2-CUDA-12.1.1.eb
@@ -0,0 +1,33 @@
+easyblock = 'Tarball'
+
+name = 'cuTENSOR'
+local_shortver = '2.0.1'
+version = local_shortver + '.2'
+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 = ['ededa12ca622baad706ea0a500a358ea51146535466afabd96e558265dc586a2']
+
+local_cudamajver = '12'
+dependencies = [('CUDA', local_cudamajver + '.1.1')]
+
+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/cuTENSOR/cuTENSOR-2.0.1.2-CUDA-12.2.2.eb b/easybuild/easyconfigs/c/cuTENSOR/cuTENSOR-2.0.1.2-CUDA-12.2.2.eb
new file mode 100644
index 00000000000..183378856f9
--- /dev/null
+++ b/easybuild/easyconfigs/c/cuTENSOR/cuTENSOR-2.0.1.2-CUDA-12.2.2.eb
@@ -0,0 +1,33 @@
+easyblock = 'Tarball'
+
+name = 'cuTENSOR'
+local_shortver = '2.0.1'
+version = local_shortver + '.2'
+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 = ['ededa12ca622baad706ea0a500a358ea51146535466afabd96e558265dc586a2']
+
+local_cudamajver = '12'
+dependencies = [('CUDA', local_cudamajver + '.2.2')]
+
+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/cuTENSOR/cuTENSOR-2.0.2.5-CUDA-12.6.0.eb b/easybuild/easyconfigs/c/cuTENSOR/cuTENSOR-2.0.2.5-CUDA-12.6.0.eb
new file mode 100644
index 00000000000..fe7b69ac9b0
--- /dev/null
+++ b/easybuild/easyconfigs/c/cuTENSOR/cuTENSOR-2.0.2.5-CUDA-12.6.0.eb
@@ -0,0 +1,40 @@
+easyblock = 'Tarball'
+
+name = 'cuTENSOR'
+version = '2.0.2.5'
+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-%(arch)s/'
+]
+sources = ['libcutensor-linux-%(arch)s-%(version)s-archive.tar.xz']
+
+checksums = [{
+ 'libcutensor-linux-sbsa-%(version)s-archive.tar.xz':
+ '5163dd40f11f328e469a6d9b0056c8346f5d59ed538c18d6b954e4ae657c69cc',
+ 'libcutensor-linux-x86_64-%(version)s-archive.tar.xz':
+ '0e957ae7b352f599de34b6fa1ba999b0617887f885d7436ac5737d71a6b83baa',
+}]
+
+local_cudamajver = '12'
+dependencies = [('CUDA', '12.6.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/currentNe/currentNe-1.0.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/c/currentNe/currentNe-1.0.0-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..d90b8442fa5
--- /dev/null
+++ b/easybuild/easyconfigs/c/currentNe/currentNe-1.0.0-GCCcore-12.3.0.eb
@@ -0,0 +1,38 @@
+easyblock = 'MakeCp'
+
+name = 'currentNe'
+version = '1.0.0'
+local_commit = '37daed5'
+
+homepage = 'https://github.com/esrud/currentNe'
+description = """Estimation of current effective population using artificial neural networks."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+github_account = 'esrud'
+source_urls = [GITHUB_SOURCE]
+sources = [{
+ "download_filename": "%s.tar.gz" % local_commit,
+ "filename": "%(name)s-%(version)s.tar.gz",
+}]
+checksums = ['77aab8e7403b726b30f34474d3177a3b118afb4b0dc57636dc0b2b93274c6bca']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('make', '4.4.1'),
+]
+
+files_to_copy = [
+ 'lib',
+ (['currentNe.cpp'], 'lib'),
+ (['currentNe'], 'bin'),
+]
+
+sanity_check_paths = {
+ 'files': ['lib/currentNe.cpp'],
+ 'dirs': ['bin', 'lib']
+}
+
+sanity_check_commands = ['currentNe -h 2>&1 | grep "USAGE"']
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/cutadapt/cutadapt-4.9-GCCcore-12.3.0.eb b/easybuild/easyconfigs/c/cutadapt/cutadapt-4.9-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..1f54c552c2e
--- /dev/null
+++ b/easybuild/easyconfigs/c/cutadapt/cutadapt-4.9-GCCcore-12.3.0.eb
@@ -0,0 +1,60 @@
+# 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.9'
+
+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.3.0'}
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('Cython', '3.0.8'), # required for dnaio
+]
+
+dependencies = [
+ ('pigz', '2.8'),
+ ('Python', '3.11.3'),
+ ('python-isal', '1.1.0'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ # note: newer xopen versions require newer python-isal
+ ('xopen', '1.7.0', {
+ 'checksums': ['901f9c8298e95ed74767a4bd76d9f4cf71d8de27b8cf296ac3e7bc1c11520d9f'],
+ }),
+ ('dnaio', '1.2.1', {
+ 'checksums': ['4786dc63614b9f3011463d9ea9d981723dd38d1091a415a557f71d8c74400f38'],
+ }),
+ (name, version, {
+ 'checksums': ['da3b45775b07334d2e2580a7b154d19ea7e872f0da813bb1ac2a4da712bfc223'],
+ }),
+]
+
+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/cysignals/cysignals-1.11.4-GCCcore-13.2.0.eb b/easybuild/easyconfigs/c/cysignals/cysignals-1.11.4-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..08a87d938bb
--- /dev/null
+++ b/easybuild/easyconfigs/c/cysignals/cysignals-1.11.4-GCCcore-13.2.0.eb
@@ -0,0 +1,41 @@
+#
+# Author: Fenglai Liu
+# fenglai@accre.vanderbilt.edu
+# Vanderbilt University
+#
+# Update: Petr Král (INUITS)
+#
+easyblock = 'PythonPackage'
+
+name = 'cysignals'
+version = '1.11.4'
+
+homepage = 'https://pypi.org/project/cysignals/'
+description = """The cysignals package provides mechanisms to handle
+interrupts (and other signals and errors) in Cython code."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+sources = [SOURCE_TAR_GZ]
+checksums = ['0f1e321e55a07f901c86a36a1e4497f6ff9dfe700681d0130a38c36e4eb238c3']
+
+builddependencies = [
+ ('Autotools', '20220317'),
+ ('binutils', '2.40'),
+ ('Cython', '3.0.10'),
+]
+
+dependencies = [
+ ('Python', '3.11.5'),
+]
+
+use_pip = True
+download_dep_fail = True
+sanity_pip_check = True
+
+sanity_check_paths = {
+ 'files': ['bin/cysignals-CSI'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/c/cyvcf2/cyvcf2-0.31.1-gfbf-2023a.eb b/easybuild/easyconfigs/c/cyvcf2/cyvcf2-0.31.1-gfbf-2023a.eb
new file mode 100644
index 00000000000..6604fb2a1af
--- /dev/null
+++ b/easybuild/easyconfigs/c/cyvcf2/cyvcf2-0.31.1-gfbf-2023a.eb
@@ -0,0 +1,45 @@
+# Author: Pavel Grochal (INUITS)
+# License: GPLv2
+easyblock = 'PythonBundle'
+
+name = 'cyvcf2'
+version = '0.31.1'
+
+homepage = 'https://github.com/brentp/cyvcf2'
+description = "cyvcf2 is a cython wrapper around htslib built for fast parsing of Variant Call Format (VCF) files."
+
+toolchain = {'name': 'gfbf', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('HTSlib', '1.18'),
+]
+
+fix_python_shebang_for = ['bin/*']
+
+use_pip = True
+
+exts_list = [
+ ('humanfriendly', '10.0', {
+ 'checksums': ['6b0b831ce8f15f7300721aa49829fc4e83921a9a301cc7f606be6686a2288ddc'],
+ }),
+ ('coloredlogs', '15.0.1', {
+ 'checksums': ['7c991aa71a4577af2f82600d8f8f3a89f936baeaf9b50a9c197da014e5bf16b0'],
+ }),
+ (name, version, {
+ 'preinstallopts': 'CYVCF2_HTSLIB_MODE=EXTERNAL',
+ 'checksums': ['00bd0e09a3719d29fbc02bc8a40a690ac2c475e91744648750907d1816558fc5'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/cyvcf2'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = ["cyvcf2 --help"]
+
+sanity_pip_check = True
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/d/DAS_Tool/DAS_Tool-1.1.1-foss-2021b-R-4.1.2.eb b/easybuild/easyconfigs/d/DAS_Tool/DAS_Tool-1.1.1-foss-2021b-R-4.1.2.eb
index 4e04c72ff76..f80eef6a25e 100644
--- a/easybuild/easyconfigs/d/DAS_Tool/DAS_Tool-1.1.1-foss-2021b-R-4.1.2.eb
+++ b/easybuild/easyconfigs/d/DAS_Tool/DAS_Tool-1.1.1-foss-2021b-R-4.1.2.eb
@@ -39,17 +39,17 @@ exts_list = [
]
postinstallcmds = [
- "cd %(installdir)s; unzip db.zip",
+ "cd %(installdir)s && unzip db.zip -d db",
"chmod a+x %(installdir)s/DAS_Tool",
]
sanity_check_paths = {
- 'files': ['DAS_Tool', 'arc.all.faa', 'arc.scg.lookup'],
+ 'files': ['DAS_Tool', 'db/arc.all.faa', 'db/arc.scg.lookup'],
'dirs': ['DASTool/R'],
}
-sanity_check_commands = ['DAS_Tool -h | grep "DAS Tool version %s"' % version]
# Help gets printed correctly, but the error code is 1
+sanity_check_commands = ['DAS_Tool -h | grep "DAS Tool version %s"' % version]
modextrapaths = {
'PATH': '',
diff --git a/easybuild/easyconfigs/d/DAS_Tool/DAS_Tool-1.1.3-foss-2021a-R-4.1.0.eb b/easybuild/easyconfigs/d/DAS_Tool/DAS_Tool-1.1.3-foss-2021a-R-4.1.0.eb
index 8889f759be9..4e5773b4b1c 100644
--- a/easybuild/easyconfigs/d/DAS_Tool/DAS_Tool-1.1.3-foss-2021a-R-4.1.0.eb
+++ b/easybuild/easyconfigs/d/DAS_Tool/DAS_Tool-1.1.3-foss-2021a-R-4.1.0.eb
@@ -39,17 +39,17 @@ exts_list = [
]
postinstallcmds = [
- "cd %(installdir)s; unzip db.zip",
+ "cd %(installdir)s && unzip db.zip -d db",
"chmod a+x %(installdir)s/DAS_Tool",
]
sanity_check_paths = {
- 'files': ['DAS_Tool', 'arc.all.faa', 'arc.scg.lookup'],
+ 'files': ['DAS_Tool', 'db/arc.all.faa', 'db/arc.scg.lookup'],
'dirs': ['DASTool/R'],
}
-sanity_check_commands = ['DAS_Tool -h | grep "DAS Tool version %s"' % version]
# Help gets printed correctly, but the error code is 1
+sanity_check_commands = ['DAS_Tool -h | grep "DAS Tool version %s"' % version]
modextrapaths = {
'PATH': '',
diff --git a/easybuild/easyconfigs/d/DB/DB-18.1.40-GCCcore-13.3.0.eb b/easybuild/easyconfigs/d/DB/DB-18.1.40-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..64022827805
--- /dev/null
+++ b/easybuild/easyconfigs/d/DB/DB-18.1.40-GCCcore-13.3.0.eb
@@ -0,0 +1,33 @@
+name = 'DB'
+version = '18.1.40'
+
+homepage = 'https://www.oracle.com/technetwork/products/berkeleydb'
+
+description = """Berkeley DB enables the development of custom data management
+ solutions, without the overhead traditionally associated with such custom
+ projects."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+# use http to allow auto-downloading...
+source_urls = ['http://download.oracle.com/berkeley-db/']
+sources = [SOURCELOWER_TAR_GZ]
+patches = ['%(name)s-%(version)s_fix_doc_install.patch']
+checksums = [
+ '0cecb2ef0c67b166de93732769abdeba0555086d51de1090df325e18ee8da9c8', # db-18.1.40.tar.gz
+ '441f48568156f72f02a8662998d293cc7edad687604b4f8af722f21c6db2a52d', # DB-18.1.40_fix_doc_install.patch
+]
+
+builddependencies = [('binutils', '2.42')]
+
+dependencies = [('OpenSSL', '3', '', SYSTEM)]
+
+sanity_check_paths = {
+ 'files': ['bin/db_%s' % x for x in ['archive', 'checkpoint', 'convert', 'deadlock', 'dump', 'hotbackup',
+ 'load', 'log_verify', 'printlog', 'recover', 'replicate', 'stat',
+ 'tuner', 'upgrade', 'verify']] +
+ ['include/db.h', 'lib/libdb.a', 'lib/libdb.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/d/DBD-mysql/DBD-mysql-4.050-GCC-12.2.0.eb b/easybuild/easyconfigs/d/DBD-mysql/DBD-mysql-4.050-GCC-12.2.0.eb
new file mode 100644
index 00000000000..1cdd942d323
--- /dev/null
+++ b/easybuild/easyconfigs/d/DBD-mysql/DBD-mysql-4.050-GCC-12.2.0.eb
@@ -0,0 +1,29 @@
+easyblock = 'PerlModule'
+
+name = 'DBD-mysql'
+version = '4.050'
+
+homepage = 'https://metacpan.org/pod/distribution/DBD-mysql/lib/DBD/mysql.pm'
+description = "Perl binding for MySQL"
+
+toolchain = {'name': 'GCC', 'version': '12.2.0'}
+
+source_urls = ['https://cpan.metacpan.org/authors/id/D/DV/DVEEDEN']
+sources = [SOURCE_TAR_GZ]
+checksums = ['4f48541ff15a0a7405f76adc10f81627c33996fbf56c95c26c094444c0928d78']
+
+dependencies = [
+ ('Perl', '5.36.0'),
+ ('MariaDB', '10.11.2'),
+ ('zlib', '1.2.12'),
+ ('OpenSSL', '1.1', '', SYSTEM),
+]
+
+options = {'modulename': 'DBD::mysql'}
+
+sanity_check_paths = {
+ 'files': ['lib/perl5/site_perl/%%(perlver)s/%s-linux-thread-multi/DBD/mysql.pm' % ARCH],
+ 'dirs': ['lib/perl5/site_perl/%%(perlver)s/%s-linux-thread-multi/DBD/mysql' % ARCH],
+}
+
+moduleclass = 'data'
diff --git a/easybuild/easyconfigs/d/DBD-mysql/DBD-mysql-4.050-GCC-12.3.0.eb b/easybuild/easyconfigs/d/DBD-mysql/DBD-mysql-4.050-GCC-12.3.0.eb
new file mode 100644
index 00000000000..eec33081a4c
--- /dev/null
+++ b/easybuild/easyconfigs/d/DBD-mysql/DBD-mysql-4.050-GCC-12.3.0.eb
@@ -0,0 +1,30 @@
+easyblock = 'PerlModule'
+
+name = 'DBD-mysql'
+version = '4.050'
+
+homepage = 'https://metacpan.org/pod/distribution/DBD-mysql/lib/DBD/mysql.pm'
+description = "Perl binding for MySQL"
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+
+source_urls = ['https://cpan.metacpan.org/authors/id/D/DV/DVEEDEN']
+sources = [SOURCE_TAR_GZ]
+checksums = ['4f48541ff15a0a7405f76adc10f81627c33996fbf56c95c26c094444c0928d78']
+
+dependencies = [
+ ('Perl', '5.36.1'),
+ ('Perl-bundle-CPAN', '5.36.1'),
+ ('MariaDB', '11.6.0'),
+ ('zlib', '1.2.13'),
+ ('OpenSSL', '1.1', '', SYSTEM),
+]
+
+options = {'modulename': 'DBD::mysql'}
+
+sanity_check_paths = {
+ 'files': ['lib/perl5/site_perl/%%(perlver)s/%s-linux-thread-multi/DBD/mysql.pm' % ARCH],
+ 'dirs': ['lib/perl5/site_perl/%%(perlver)s/%s-linux-thread-multi/DBD/mysql' % ARCH],
+}
+
+moduleclass = 'data'
diff --git a/easybuild/easyconfigs/d/DBD-mysql/DBD-mysql-4.051-GCC-13.3.0.eb b/easybuild/easyconfigs/d/DBD-mysql/DBD-mysql-4.051-GCC-13.3.0.eb
new file mode 100644
index 00000000000..f8f26485760
--- /dev/null
+++ b/easybuild/easyconfigs/d/DBD-mysql/DBD-mysql-4.051-GCC-13.3.0.eb
@@ -0,0 +1,30 @@
+easyblock = 'PerlModule'
+
+name = 'DBD-mysql'
+version = '4.051'
+
+homepage = 'https://metacpan.org/pod/distribution/DBD-mysql/lib/DBD/mysql.pm'
+description = "Perl binding for MySQL"
+
+toolchain = {'name': 'GCC', 'version': '13.3.0'}
+
+source_urls = ['https://cpan.metacpan.org/authors/id/D/DV/DVEEDEN']
+sources = [SOURCE_TAR_GZ]
+checksums = ['16969bfae7a080384167be3fb1803450fde87f7b0e2682276b3f6469fa147864']
+
+dependencies = [
+ ('Perl', '5.38.2'),
+ ('Perl-bundle-CPAN', '5.38.2'),
+ ('MariaDB', '11.7.0'),
+ ('zlib', '1.3.1'),
+ ('OpenSSL', '3', '', SYSTEM),
+]
+
+options = {'modulename': 'DBD::mysql'}
+
+sanity_check_paths = {
+ 'files': ['lib/perl5/site_perl/%%(perlver)s/%s-linux-thread-multi/DBD/mysql.pm' % ARCH],
+ 'dirs': ['lib/perl5/site_perl/%%(perlver)s/%s-linux-thread-multi/DBD/mysql' % ARCH],
+}
+
+moduleclass = 'data'
diff --git a/easybuild/easyconfigs/d/DB_File/DB_File-1.835-GCCcore-9.3.0.eb b/easybuild/easyconfigs/d/DB_File/DB_File-1.835-GCCcore-9.3.0.eb
index a1002875229..430fc43f900 100644
--- a/easybuild/easyconfigs/d/DB_File/DB_File-1.835-GCCcore-9.3.0.eb
+++ b/easybuild/easyconfigs/d/DB_File/DB_File-1.835-GCCcore-9.3.0.eb
@@ -24,7 +24,7 @@ dependencies = [
preconfigopts = 'env DB_FILE_INCLUDE="$EBROOTDB/include" DB_FILE_LIB="$EBROOTDB/lib" '
sanity_check_paths = {
- 'files': ['lib/perl5/site_perl/%(perlver)s/x86_64-linux-thread-multi/DB_File.pm'],
+ 'files': ['lib/perl5/site_perl/%(perlver)s/%(arch)s-linux-thread-multi/DB_File.pm'],
'dirs': [],
}
diff --git a/easybuild/easyconfigs/d/DB_File/DB_File-1.855-GCCcore-10.2.0.eb b/easybuild/easyconfigs/d/DB_File/DB_File-1.855-GCCcore-10.2.0.eb
index 0b79bde69ae..3c7b085c1ab 100644
--- a/easybuild/easyconfigs/d/DB_File/DB_File-1.855-GCCcore-10.2.0.eb
+++ b/easybuild/easyconfigs/d/DB_File/DB_File-1.855-GCCcore-10.2.0.eb
@@ -24,7 +24,7 @@ dependencies = [
preconfigopts = 'env DB_FILE_INCLUDE="$EBROOTDB/include" DB_FILE_LIB="$EBROOTDB/lib" '
sanity_check_paths = {
- 'files': ['lib/perl5/site_perl/%(perlver)s/x86_64-linux-thread-multi/DB_File.pm'],
+ 'files': ['lib/perl5/site_perl/%(perlver)s/%(arch)s-linux-thread-multi/DB_File.pm'],
'dirs': [],
}
diff --git a/easybuild/easyconfigs/d/DB_File/DB_File-1.856-GCCcore-10.3.0.eb b/easybuild/easyconfigs/d/DB_File/DB_File-1.856-GCCcore-10.3.0.eb
index 880fe133479..97f6bce5acb 100644
--- a/easybuild/easyconfigs/d/DB_File/DB_File-1.856-GCCcore-10.3.0.eb
+++ b/easybuild/easyconfigs/d/DB_File/DB_File-1.856-GCCcore-10.3.0.eb
@@ -24,7 +24,7 @@ dependencies = [
preconfigopts = 'env DB_FILE_INCLUDE="$EBROOTDB/include" DB_FILE_LIB="$EBROOTDB/lib" '
sanity_check_paths = {
- 'files': ['lib/perl5/site_perl/%(perlver)s/x86_64-linux-thread-multi/DB_File.pm'],
+ 'files': ['lib/perl5/site_perl/%(perlver)s/%(arch)s-linux-thread-multi/DB_File.pm'],
'dirs': [],
}
diff --git a/easybuild/easyconfigs/d/DB_File/DB_File-1.857-GCCcore-11.2.0.eb b/easybuild/easyconfigs/d/DB_File/DB_File-1.857-GCCcore-11.2.0.eb
index f2707a76ad8..fc23c9d56ce 100644
--- a/easybuild/easyconfigs/d/DB_File/DB_File-1.857-GCCcore-11.2.0.eb
+++ b/easybuild/easyconfigs/d/DB_File/DB_File-1.857-GCCcore-11.2.0.eb
@@ -24,7 +24,7 @@ dependencies = [
preconfigopts = 'env DB_FILE_INCLUDE="$EBROOTDB/include" DB_FILE_LIB="$EBROOTDB/lib" '
sanity_check_paths = {
- 'files': ['lib/perl5/site_perl/%(perlver)s/x86_64-linux-thread-multi/DB_File.pm'],
+ 'files': ['lib/perl5/site_perl/%(perlver)s/%(arch)s-linux-thread-multi/DB_File.pm'],
'dirs': [],
}
diff --git a/easybuild/easyconfigs/d/DB_File/DB_File-1.858-GCCcore-11.3.0.eb b/easybuild/easyconfigs/d/DB_File/DB_File-1.858-GCCcore-11.3.0.eb
index 9ca805bc383..a9579572f76 100644
--- a/easybuild/easyconfigs/d/DB_File/DB_File-1.858-GCCcore-11.3.0.eb
+++ b/easybuild/easyconfigs/d/DB_File/DB_File-1.858-GCCcore-11.3.0.eb
@@ -24,7 +24,7 @@ dependencies = [
preconfigopts = 'env DB_FILE_INCLUDE="$EBROOTDB/include" DB_FILE_LIB="$EBROOTDB/lib" '
sanity_check_paths = {
- 'files': ['lib/perl5/site_perl/%(perlver)s/x86_64-linux-thread-multi/DB_File.pm'],
+ 'files': ['lib/perl5/site_perl/%(perlver)s/%(arch)s-linux-thread-multi/DB_File.pm'],
'dirs': [],
}
diff --git a/easybuild/easyconfigs/d/DB_File/DB_File-1.859-GCCcore-12.3.0.eb b/easybuild/easyconfigs/d/DB_File/DB_File-1.859-GCCcore-12.3.0.eb
index ceaba601416..0efe26d544b 100644
--- a/easybuild/easyconfigs/d/DB_File/DB_File-1.859-GCCcore-12.3.0.eb
+++ b/easybuild/easyconfigs/d/DB_File/DB_File-1.859-GCCcore-12.3.0.eb
@@ -24,7 +24,7 @@ dependencies = [
preconfigopts = 'env DB_FILE_INCLUDE="$EBROOTDB/include" DB_FILE_LIB="$EBROOTDB/lib" '
sanity_check_paths = {
- 'files': ['lib/perl5/site_perl/%(perlver)s/x86_64-linux-thread-multi/DB_File.pm'],
+ 'files': ['lib/perl5/site_perl/%(perlver)s/%(arch)s-linux-thread-multi/DB_File.pm'],
'dirs': [],
}
diff --git a/easybuild/easyconfigs/d/DB_File/DB_File-1.859-GCCcore-13.3.0.eb b/easybuild/easyconfigs/d/DB_File/DB_File-1.859-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..e7120c9c13e
--- /dev/null
+++ b/easybuild/easyconfigs/d/DB_File/DB_File-1.859-GCCcore-13.3.0.eb
@@ -0,0 +1,31 @@
+easyblock = 'PerlModule'
+
+name = 'DB_File'
+version = '1.859'
+
+homepage = 'https://perldoc.perl.org/DB_File.html'
+description = """Perl5 access to Berkeley DB version 1.x."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://www.cpan.org/modules/by-module/DB_File/PMQS']
+sources = [SOURCE_TAR_GZ]
+checksums = ['5674e0d2cd0b060c4d1253670ea022c64d842a55257f9eb8edb19c0f53e2565c']
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+
+dependencies = [
+ ('Perl', '5.38.2'),
+ ('DB', '18.1.40'),
+]
+
+preconfigopts = 'env DB_FILE_INCLUDE="$EBROOTDB/include" DB_FILE_LIB="$EBROOTDB/lib" '
+
+sanity_check_paths = {
+ 'files': ['lib/perl5/site_perl/%(perlver)s/%(arch)s-linux-thread-multi/DB_File.pm'],
+ 'dirs': [],
+}
+
+moduleclass = 'data'
diff --git a/easybuild/easyconfigs/d/DBus/DBus-1.15.8-GCCcore-13.3.0.eb b/easybuild/easyconfigs/d/DBus/DBus-1.15.8-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..ca182becfcd
--- /dev/null
+++ b/easybuild/easyconfigs/d/DBus/DBus-1.15.8-GCCcore-13.3.0.eb
@@ -0,0 +1,45 @@
+easyblock = 'CMakeMake'
+
+name = 'DBus'
+version = '1.15.8'
+
+homepage = 'https://dbus.freedesktop.org/'
+
+description = """
+ D-Bus is a message bus system, a simple way for applications to talk
+ to one another. In addition to interprocess communication, D-Bus helps
+ coordinate process lifecycle; it makes it simple and reliable to code
+ a "single instance" application or daemon, and to launch applications
+ and daemons on demand when their services are needed.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://dbus.freedesktop.org/releases/dbus']
+sources = [SOURCELOWER_TAR_XZ]
+checksums = ['84fc597e6ec82f05dc18a7d12c17046f95bad7be99fc03c15bc254c4701ed204']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('CMake', '3.29.3'),
+ ('pkgconf', '2.2.0'),
+]
+
+dependencies = [
+ ('expat', '2.6.2'),
+]
+
+configopts = '-DENABLE_SYSTEMD=OFF '
+# disable documentation
+configopts += '-DDBUS_ENABLE_XML_DOCS=OFF -DDBUS_ENABLE_QTHELP_DOCS=OFF -DDBUS_ENABLE_DOXYGEN_DOCS=OFF '
+
+sanity_check_paths = {
+ 'files': ['bin/dbus-%s' % x for x in
+ ['cleanup-sockets', 'daemon', 'launch', 'monitor',
+ 'run-session', 'send', 'uuidgen']] +
+ ['lib/libdbus-1.%s' % SHLIB_EXT],
+ 'dirs': ['include', 'share'],
+}
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/d/DETONATE/DETONATE-1.11-GCC-12.3.0.eb b/easybuild/easyconfigs/d/DETONATE/DETONATE-1.11-GCC-12.3.0.eb
index c1457cc041c..24a8b13835c 100644
--- a/easybuild/easyconfigs/d/DETONATE/DETONATE-1.11-GCC-12.3.0.eb
+++ b/easybuild/easyconfigs/d/DETONATE/DETONATE-1.11-GCC-12.3.0.eb
@@ -33,6 +33,7 @@ builddependencies = [
]
dependencies = [
+ ('Perl', '5.36.1'),
('Boost', '1.82.0'),
('sparsehash', '2.0.4'),
('BamTools', '2.5.2'),
@@ -45,16 +46,20 @@ buildopts = 'CXX="$CXX" CXXFLAGS="$CXXFLAGS -fopenmp" && cd ../rsem-eval && make
runtest = 'test'
-files_to_copy = [(['ref-eval', 'ref-eval-estimate-true-assembly', '../rsem-eval/rsem-*'], 'bin')]
+files_to_copy = [
+ (['ref-eval', 'ref-eval-estimate-true-assembly', '../rsem-eval/rsem-*', '../rsem-eval/*.pm'], 'bin'),
+]
sanity_check_paths = {
'files': ['bin/%s' % x for x in ['ref-eval', 'ref-eval-estimate-true-assembly', 'rsem-build-read-index',
'rsem-eval-calculate-score', 'rsem-eval-estimate-transcript-length-distribution',
'rsem-eval-run-em', 'rsem-extract-reference-transcripts',
- 'rsem-parse-alignments', 'rsem-plot-model', 'rsem-preref', 'rsem-sam-validator',
- 'rsem-scan-for-paired-end-reads', 'rsem-simulate-reads',
+ 'rsem-parse-alignments', 'rsem_perl_utils.pm', 'rsem-plot-model', 'rsem-preref',
+ 'rsem-sam-validator', 'rsem-scan-for-paired-end-reads', 'rsem-simulate-reads',
'rsem-synthesis-reference-transcripts']],
'dirs': [],
}
+sanity_check_commands = [r"rsem-eval-calculate-score --help 2>&1 | grep 'rsem-eval-calculate-score \[options\]'"]
+
moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/d/DFT-D4/DFT-D4-3.6.0-intel-2022a.eb b/easybuild/easyconfigs/d/DFT-D4/DFT-D4-3.6.0-intel-2022a.eb
new file mode 100644
index 00000000000..1790cab38c0
--- /dev/null
+++ b/easybuild/easyconfigs/d/DFT-D4/DFT-D4-3.6.0-intel-2022a.eb
@@ -0,0 +1,42 @@
+easyblock = 'MesonNinja'
+
+name = 'DFT-D4'
+version = '3.6.0'
+
+homepage = 'https://www.chemie.uni-bonn.de/pctc/mulliken-center/software/dftd4'
+description = """Generally Applicable Atomic-Charge Dependent London Dispersion Correction."""
+
+toolchain = {'name': 'intel', 'version': '2022a'}
+
+source_urls = ['https://github.com/dftd4/dftd4/archive/refs/tags/']
+sources = ['v%(version)s.tar.gz']
+patches = ['DFT-D4-3.2.0-remove_module_id.patch']
+checksums = [
+ {'v3.6.0.tar.gz': '0e3e8d5f9e9e5414b9979967c074c953706053832e551d922c27599e7324bace'},
+ {'DFT-D4-3.2.0-remove_module_id.patch': '8c3c81338cb57972580e4cf3db307aa2e44b8b3f6d1ba7ae24fa9d807490a93b'},
+]
+
+builddependencies = [
+ ('CMake', '3.24.3'),
+ ('Ninja', '1.10.2'),
+ ('Meson', '0.62.1'),
+ ('pkgconf', '1.8.0'),
+]
+
+dependencies = [
+ ('Python', '3.10.4'),
+ ('mstore', '0.2.0'),
+ ('mctc-lib', '0.3.1'),
+ ('multicharge', '0.2.0'),
+]
+
+configopts = '-Dpython=true -Dapi_v2=true'
+
+sanity_check_paths = {
+ 'files': ['bin/dftd4', 'lib/libdftd4.a', 'lib/libdftd4.%s' % SHLIB_EXT, 'include/dftd4.mod'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["dftd4 --version"]
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/d/DFTB+/DFTB+-24.1-foss-2023a.eb b/easybuild/easyconfigs/d/DFTB+/DFTB+-24.1-foss-2023a.eb
new file mode 100644
index 00000000000..c862fcea552
--- /dev/null
+++ b/easybuild/easyconfigs/d/DFTB+/DFTB+-24.1-foss-2023a.eb
@@ -0,0 +1,93 @@
+easyblock = 'CMakeMake'
+
+name = 'DFTB+'
+version = '24.1'
+
+homepage = 'https://www.dftb-plus.info'
+description = """DFTB+ is a fast and efficient versatile quantum mechanical simulation package.
+It is based on the Density Functional Tight Binding (DFTB) method, containing
+almost all of the useful extensions which have been developed for the DFTB
+framework so far. Using DFTB+ you can carry out quantum mechanical simulations
+like with ab-initio density functional theory based packages, but in an
+approximate way gaining typically around two order of magnitude in speed."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'usempi': True, 'openmp': True, 'pic': True}
+
+_external_dir = '%%(builddir)s/dftbplus-%%(version)s/external/%s/origin/'
+_external_extract = 'mkdir -p %s && tar -C %s' % (_external_dir, _external_dir)
+_external_extract += ' --strip-components=1 -xzf %%s'
+
+source_urls = ['https://github.com/dftbplus/dftbplus/releases/download/%(version)s']
+sources = [
+ 'dftbplus-%(version)s.tar.xz',
+ {
+ # Slater-Koster (slakos) data for testing
+ 'source_urls': ['https://github.com/dftbplus/testparams/archive'],
+ 'download_filename': 'fbe3d62127d86bd8e49ad25a1e5793e6a095e8e7.tar.gz',
+ 'filename': 'slakos-data-%(version)s.tar.gz',
+ 'extract_cmd': _external_extract % ('slakos', 'slakos'),
+ },
+ {
+ # GBSA (gbsa) data for testing
+ 'source_urls': ['https://github.com/grimme-lab/gbsa-parameters/archive'],
+ 'download_filename': '6836c4d997e4135e418cfbe273c96b1a3adb13e2.tar.gz',
+ 'filename': 'gbsa-data-%(version)s.tar.gz',
+ 'extract_cmd': _external_extract % ('gbsa', 'gbsa'),
+ },
+]
+checksums = [
+ {'dftbplus-24.1.tar.xz': '3bc405d1ab834b6b145ca671fb44565ec50a6f576e9e18e7a1ae2c613a311321'},
+ {'slakos-data-24.1.tar.gz': '78a0494c2ff9216d6a9199ba07d632b18b809e0198f43905c044b5748bde488d'},
+ {'gbsa-data-24.1.tar.gz': 'd464f9f7b1883d1353b433d0c7eae2f5606af092d9b51d38e9ed15e072610a79'},
+]
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+ ('pkgconf', '1.9.5'),
+ ('git', '2.41.0', '-nodocs'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('dftd4', '3.7.0'),
+ ('ELSI', '2.11.0', '-PEXSI'),
+ ('libmbd', '0.12.6'),
+]
+
+# Prefer dependencies from EB than bundled sources
+configopts = '-DHYBRID_CONFIG_METHODS="Find;Submodule;Fetch" '
+configopts += '-DWITH_MPI=1 -DWITH_OMP=1 -DWITH_SDFTD3=1 -DWITH_ELSI=1 -DWITH_MBD=1 -DWITH_UNIT_TESTS=1 '
+configopts += '-DBUILD_SHARED_LIBS=1 -DWITH_API=1 -DWITH_PYTHON=0 ' # Python bindings installed as extension
+configopts += '-DSCALAPACK_LIBRARY="$LIBSCALAPACK" '
+
+runtest = 'test'
+
+exts_defaultclass = 'PythonPackage'
+exts_default_options = {
+ 'download_dep_fail': True,
+ 'use_pip': True,
+ 'runtest': False,
+}
+exts_list = [
+ ('dptools', version, {
+ 'source_tmpl': 'dftbplus-%(version)s.tar.xz',
+ 'source_urls': ['https://github.com/dftbplus/dftbplus/releases/download/%(version)s'],
+ 'start_dir': 'tools/dptools',
+ 'checksums': ['3bc405d1ab834b6b145ca671fb44565ec50a6f576e9e18e7a1ae2c613a311321'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/' + x for x in ['dftb+', 'dp_bands', 'dp_dos', 'gen2cif', 'gen2xyz', 'makecube',
+ 'modes', 'repeatgen', 'straingen', 'waveplot', 'xyz2gen']] +
+ ['lib/libdftbplus.%s' % SHLIB_EXT, 'lib/libmpifx.%s' % SHLIB_EXT],
+ 'dirs': ['include/dftbplus', 'lib/cmake', 'lib/pkgconfig', 'lib/python%(pyshortver)s/site-packages']
+}
+
+sanity_check_commands = ["python -c 'import dptools'"]
+
+modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'}
+
+moduleclass = 'phys'
diff --git a/easybuild/easyconfigs/d/DIAMOND/DIAMOND-2.1.9-GCC-13.2.0.eb b/easybuild/easyconfigs/d/DIAMOND/DIAMOND-2.1.9-GCC-13.2.0.eb
new file mode 100644
index 00000000000..754d1f6214b
--- /dev/null
+++ b/easybuild/easyconfigs/d/DIAMOND/DIAMOND-2.1.9-GCC-13.2.0.eb
@@ -0,0 +1,30 @@
+easyblock = 'CMakeMake'
+
+name = 'DIAMOND'
+version = '2.1.9'
+
+homepage = 'https://github.com/bbuchfink/diamond'
+description = "Accelerated BLAST compatible local sequence aligner"
+
+toolchain = {'name': 'GCC', 'version': '13.2.0'}
+
+github_account = 'bbuchfink'
+source_urls = [GITHUB_LOWER_SOURCE]
+sources = ['v%(version)s.tar.gz']
+checksums = ['4cde9df78c63e8aef9df1e3265cd06a93ce1b047d6dba513a1437719b70e9d88']
+
+builddependencies = [
+ ('CMake', '3.27.6'),
+]
+
+dependencies = [
+ ('zlib', '1.2.13'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/%(namelower)s'],
+ 'dirs': [],
+}
+sanity_check_commands = ["%(namelower)s help"]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/d/DLPack/DLPack-0.8-GCC-11.3.0.eb b/easybuild/easyconfigs/d/DLPack/DLPack-0.8-GCC-11.3.0.eb
new file mode 100644
index 00000000000..97be9746c55
--- /dev/null
+++ b/easybuild/easyconfigs/d/DLPack/DLPack-0.8-GCC-11.3.0.eb
@@ -0,0 +1,26 @@
+easyblock = 'CMakeMake'
+
+name = 'DLPack'
+version = '0.8'
+
+homepage = 'https://dmlc.github.io/dlpack/latest/'
+description = """DLPack is a stable in-memory data structure for an ndarray
+system to interact with a variety of frameworks."""
+
+toolchain = {'name': 'GCC', 'version': '11.3.0'}
+
+github_account = 'dmlc'
+source_urls = [GITHUB_LOWER_SOURCE]
+sources = ['v%(version)s.tar.gz']
+checksums = ['cf965c26a5430ba4cc53d61963f288edddcd77443aa4c85ce722aaf1e2f29513']
+
+builddependencies = [
+ ('CMake', '3.24.3'),
+]
+
+sanity_check_paths = {
+ 'files': ['include/dlpack/dlpack.h', 'lib/cmake/dlpack/dlpackConfig.cmake'],
+ 'dirs': [],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/d/DL_POLY_4/DL_POLY_4-5.1.0-foss-2023a.eb b/easybuild/easyconfigs/d/DL_POLY_4/DL_POLY_4-5.1.0-foss-2023a.eb
new file mode 100644
index 00000000000..1d47dce62d0
--- /dev/null
+++ b/easybuild/easyconfigs/d/DL_POLY_4/DL_POLY_4-5.1.0-foss-2023a.eb
@@ -0,0 +1,24 @@
+easyblock = 'CMakeMake'
+
+name = "DL_POLY_4"
+version = "5.1.0"
+
+homepage = "https://www.scd.stfc.ac.uk/Pages/DL_POLY.aspx"
+description = "DL_POLY is a general purpose classical molecular dynamics (MD) simulation software"
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+source_urls = ['https://gitlab.com/ccp5/dl-poly/-/archive/%(version)s/']
+sources = ['dl_poly_%(version)s.tar.bz2']
+checksums = ['da5364986cd71e047e080753f6ca75135bf19bd5607770b839dea3734c2fdfaa']
+
+builddependencies = [('CMake', '3.26.3')]
+
+sanity_check_paths = {
+ 'files': ['bin/DLPOLY.Z'],
+ 'dirs': []
+}
+
+sanity_check_commands = ['DLPOLY.Z -h']
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/d/DL_POLY_Classic_GUI/DL_POLY_Classic_GUI-1.10.eb b/easybuild/easyconfigs/d/DL_POLY_Classic_GUI/DL_POLY_Classic_GUI-1.10.eb
new file mode 100644
index 00000000000..84de0bbf36a
--- /dev/null
+++ b/easybuild/easyconfigs/d/DL_POLY_Classic_GUI/DL_POLY_Classic_GUI-1.10.eb
@@ -0,0 +1,34 @@
+easyblock = 'JAR'
+
+name = 'DL_POLY_Classic_GUI'
+version = '1.10'
+
+homepage = 'https://gitlab.com/DL_POLY_Classic/dl_poly'
+description = """
+The DL_POLY Graphical User Interface (or GUI) is a program written in the
+Java language and is intended for use with the DL_POLY molecular
+simulation program.
+This is the GUI for DL_POLY Classic, it can also be used for DL_POLY_4.
+"""
+
+toolchain = SYSTEM
+
+source_urls = ['https://gitlab.com/DL_POLY_Classic/dl_poly/-/raw/RELEASE-%(version_major)s-%(version_minor)s/java/']
+sources = ['GUI.jar']
+checksums = ['8d3a5ed75d5ee8eb2e4403d8ed9355cd214c7e5b7afc8161c89a50edbc0a481d']
+
+dependencies = [
+ ('Java', '17', '', SYSTEM),
+]
+
+
+sanity_check_paths = {
+ 'files': ['GUI.jar'],
+ 'dirs': [''],
+}
+
+modloadmsg = """
+To execute this Graphical User Interface run: java GUI
+"""
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/d/DMLC-Core/DMLC-Core-0.5-GCC-11.3.0.eb b/easybuild/easyconfigs/d/DMLC-Core/DMLC-Core-0.5-GCC-11.3.0.eb
new file mode 100644
index 00000000000..ce48657bd14
--- /dev/null
+++ b/easybuild/easyconfigs/d/DMLC-Core/DMLC-Core-0.5-GCC-11.3.0.eb
@@ -0,0 +1,38 @@
+easyblock = 'CMakeMake'
+
+name = 'DMLC-Core'
+version = '0.5'
+
+homepage = 'https://dmlc-core.readthedocs.io/en/latest'
+description = """DMLC-Core is the backbone library to support all DMLC
+projects, offers the bricks to build efficient and scalable distributed
+machine learning libraries."""
+
+toolchain = {'name': 'GCC', 'version': '11.3.0'}
+
+github_account = 'dmlc'
+source_urls = [GITHUB_LOWER_SOURCE]
+sources = ['v%(version)s.tar.gz']
+checksums = ['cd97475ae1ecf561a1cb1129552f9889d52b11b3beb4c56e5345d007d5020ece']
+
+builddependencies = [
+ ('CMake', '3.24.3'),
+ ('googletest', '1.11.0'),
+]
+
+_copts = [
+ '-DUSE_CXX14_IF_AVAILABLE=ON',
+ '-DGOOGLE_TEST=ON',
+]
+configopts = ' '.join(_copts)
+
+build_shared_libs = True
+
+runtest = 'test'
+
+sanity_check_paths = {
+ 'files': ['include/dmlc/common.h', 'lib/cmake/dmlc/dmlc-config.cmake', 'lib/libdmlc.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/d/DMTCP/DMTCP-3.0.0-GCCcore-12.2.0.eb b/easybuild/easyconfigs/d/DMTCP/DMTCP-3.0.0-GCCcore-12.2.0.eb
new file mode 100644
index 00000000000..0474c5e8f88
--- /dev/null
+++ b/easybuild/easyconfigs/d/DMTCP/DMTCP-3.0.0-GCCcore-12.2.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': '12.2.0'}
+
+source_urls = ['https://github.com/dmtcp/dmtcp/archive/']
+sources = ['%(version)s.tar.gz']
+checksums = ['2c7e95e1dbc55db33433bfee48a65f274298e98f246a36ab6dad1e0694750d37']
+
+builddependencies = [('binutils', '2.39')]
+
+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/DMTCP/DMTCP-3.0.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/d/DMTCP/DMTCP-3.0.0-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..9947d4f758d
--- /dev/null
+++ b/easybuild/easyconfigs/d/DMTCP/DMTCP-3.0.0-GCCcore-12.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': '12.3.0'}
+
+source_urls = ['https://github.com/dmtcp/dmtcp/archive/']
+sources = ['%(version)s.tar.gz']
+checksums = ['2c7e95e1dbc55db33433bfee48a65f274298e98f246a36ab6dad1e0694750d37']
+
+builddependencies = [('binutils', '2.40')]
+
+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/DMTCP/DMTCP-3.0.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/d/DMTCP/DMTCP-3.0.0-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..9721668c208
--- /dev/null
+++ b/easybuild/easyconfigs/d/DMTCP/DMTCP-3.0.0-GCCcore-13.2.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': '13.2.0'}
+
+source_urls = ['https://github.com/dmtcp/dmtcp/archive/']
+sources = ['%(version)s.tar.gz']
+checksums = ['2c7e95e1dbc55db33433bfee48a65f274298e98f246a36ab6dad1e0694750d37']
+
+builddependencies = [('binutils', '2.40')]
+
+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/DP3/DP3-6.0-foss-2023b.eb b/easybuild/easyconfigs/d/DP3/DP3-6.0-foss-2023b.eb
new file mode 100644
index 00000000000..8373cc5f8bd
--- /dev/null
+++ b/easybuild/easyconfigs/d/DP3/DP3-6.0-foss-2023b.eb
@@ -0,0 +1,57 @@
+easyblock = 'CMakeMake'
+
+name = 'DP3'
+version = '6.0'
+
+homepage = 'https://dp3.readthedocs.io/'
+description = "DP3: streaming processing pipeline for radio interferometric data."
+
+toolchain = {'name': 'foss', 'version': '2023b'}
+
+sources = [
+ {
+ 'filename': '%(name)s-v%(version)s.tar.gz',
+ # Repo uses git submodules, which are not included in the release tarballs.
+ # Thus, we let EasyBuild download directly from the git repository.
+ 'git_config': {
+ 'url': 'https://git.astron.nl/RD',
+ 'repo_name': '%(name)s',
+ 'tag': 'v%(version)s',
+ 'clone_into': '%(name)s',
+ 'recursive': True
+ }
+ },
+]
+patches = ['DP3-6.0_fix-for-xsimd-error-on-neoverse-v1.patch']
+checksums = [
+ None, # checksum for git clone source is non-deterministic
+ # DP3-6.0_fix-for-xsimd-error-on-neoverse-v1.patch
+ '7f5069388846c9c715013d5a3a267a6d8e266520445a6427e63e9d52d3046c9d',
+]
+
+builddependencies = [
+ ('CMake', '3.27.6'),
+]
+dependencies = [
+ ('casacore', '3.5.0'),
+ ('Boost', '1.83.0'),
+ ('CFITSIO', '4.3.1'),
+ ('WCSLIB', '7.11'),
+ ('GSL', '2.7'),
+ ('HDF5', '1.14.3'),
+ ('Python', '3.11.5'),
+ ('EveryBeam', '0.5.2'),
+ ('Armadillo', '12.8.0'),
+ ('AOFlagger', '3.4.0'),
+ ('IDG', '1.2.0'),
+]
+
+
+sanity_check_paths = {
+ 'files': ['include/include/%(namelower)s/base/%(name)s.h', 'bin/%(name)s'],
+ 'dirs': ['bin'],
+}
+
+sanity_check_commands = [('%(name)s', '--version')]
+
+moduleclass = 'astro'
diff --git a/easybuild/easyconfigs/d/DP3/DP3-6.0_fix-for-xsimd-error-on-neoverse-v1.patch b/easybuild/easyconfigs/d/DP3/DP3-6.0_fix-for-xsimd-error-on-neoverse-v1.patch
new file mode 100644
index 00000000000..abfd8e34f06
--- /dev/null
+++ b/easybuild/easyconfigs/d/DP3/DP3-6.0_fix-for-xsimd-error-on-neoverse-v1.patch
@@ -0,0 +1,19 @@
+# Fix for XSIMD build error on Neoverse V1
+# See: https://github.com/xtensor-stack/xsimd/issues/1005 and https://github.com/xtensor-stack/xsimd/commit/1d8536b
+# Mar 11th 2024 by T. Kok (SURF)
+--- DP3.orig/external/aocommon/CMake/FetchXTensor.cmake 2024-03-11 11:20:32.024804259 +0100
++++ DP3/external/aocommon/CMake/FetchXTensor.cmake 2024-03-11 11:21:32.851493709 +0100
+@@ -6,7 +6,7 @@
+ set(xtl_GIT_TAG b3d0091a77af52f1b479b5b768260be4873aa8a7)
+ endif()
+ if (NOT xsimd_GIT_TAG)
+- set(xsimd_GIT_TAG 2f5eddf8912c7e2527f0c50895c7560b964d29af)
++ set(xsimd_GIT_TAG 1d8536b393171b899031f01b7c2d63858b05665c)
+ endif()
+ if (NOT xtensor_GIT_TAG)
+ set(xtensor_GIT_TAG 0.24.2)
+@@ -65,3 +65,4 @@
+ endif()
+
+ endforeach()
++
diff --git a/easybuild/easyconfigs/d/Dask-ML/Dask-ML-2022.5.27-foss-2022a.eb b/easybuild/easyconfigs/d/Dask-ML/Dask-ML-2022.5.27-foss-2022a.eb
new file mode 100644
index 00000000000..12884bd5e3a
--- /dev/null
+++ b/easybuild/easyconfigs/d/Dask-ML/Dask-ML-2022.5.27-foss-2022a.eb
@@ -0,0 +1,51 @@
+easyblock = 'PythonBundle'
+
+name = 'Dask-ML'
+version = '2022.5.27'
+
+homepage = 'http://ml.dask.org/'
+description = """
+Dask-ML provides scalable machine learning in Python using Dask alongside popular machine
+learning libraries like Scikit-Learn, XGBoost, and others.
+"""
+
+toolchain = {'name': 'foss', 'version': '2022a'}
+
+dependencies = [
+ ('Python', '3.10.4'),
+ ('scikit-learn', '1.1.2'),
+ ('dask', '2022.10.0'),
+ ('numba', '0.56.4'),
+ ('SciPy-bundle', '2022.05'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('sparse', '0.14.0', {
+ 'checksums': ['5f5827a37f6cd6f6730a541f994c95c60a3ae2329e01f4ba21ced5339aea0098'],
+ }),
+ ('dask-glm', '0.3.2', {
+ 'checksums': ['c947a566866698a01d79978ae73233cb5e838ad5ead6085143582c5e930b9a4a'],
+ }),
+ ('versioneer', '0.29', {
+ 'checksums': ['5ab283b9857211d61b53318b7c792cf68e798e765ee17c27ade9f6c924235731'],
+ }),
+ ('distributed', '2022.10.0', {
+ 'checksums': ['dcfbc9c528bcd9e4f9686e673956a90172826395ac5b258039e580777d50782f'],
+ }),
+ ('multipledispatch', '1.0.0', {
+ 'checksums': ['5c839915465c68206c3e9c473357908216c28383b425361e5d144594bf85a7e0'],
+ }),
+ ('packaging', '20.4', {
+ 'checksums': ['4357f74f47b9c12db93624a82154e9b120fa8293699949152b22065d556079f8'],
+ }),
+ (name, version, {
+ 'modulename': 'dask_ml',
+ 'sources': ['dask-ml-%(version)s.tar.gz'],
+ 'checksums': ['6369d3934192bcc1923fcee84c3fb8fbcceca102137901070ba3f1d9e386cce4'],
+ }),
+]
+
+moduleclass = 'ai'
diff --git a/easybuild/easyconfigs/d/Dask-ML/Dask-ML-2024.4.4-foss-2023a.eb b/easybuild/easyconfigs/d/Dask-ML/Dask-ML-2024.4.4-foss-2023a.eb
new file mode 100644
index 00000000000..f4bdf4425ae
--- /dev/null
+++ b/easybuild/easyconfigs/d/Dask-ML/Dask-ML-2024.4.4-foss-2023a.eb
@@ -0,0 +1,50 @@
+easyblock = 'PythonBundle'
+
+name = 'Dask-ML'
+version = '2024.4.4'
+
+homepage = 'http://ml.dask.org/'
+description = """
+Dask-ML provides scalable machine learning in Python using Dask alongside popular machine
+learning libraries like Scikit-Learn, XGBoost, and others.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+builddependencies = [('hatchling', '1.18.0')]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('scikit-learn', '1.3.1'),
+ ('dask', '2023.9.2'),
+ ('numba', '0.58.1'),
+ ('SciPy-bundle', '2023.07'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('sparse', '0.15.4', {
+ # replace use of 'version_file' (which requires setuptools-scm >= 8.0) with 'write_to'
+ 'preinstallopts': "sed -i 's/^version_file/write_to/' pyproject.toml && ",
+ 'checksums': ['d4b1c57d24ff0f64f2fd5b5a95b49b7fb84ed207a26d7d58ce2764dcc5c72b84'],
+ }),
+ ('dask-glm', '0.3.2', {
+ 'checksums': ['c947a566866698a01d79978ae73233cb5e838ad5ead6085143582c5e930b9a4a'],
+ }),
+ ('distributed', '2023.9.2', {
+ 'checksums': ['b76b43be6a297c6cc6dc4eac7f5a05a8c6834aaf025ed37395d1d830448d540e'],
+ }),
+ ('multipledispatch', '1.0.0', {
+ 'checksums': ['5c839915465c68206c3e9c473357908216c28383b425361e5d144594bf85a7e0'],
+ }),
+ ('packaging', '24.1', {
+ 'checksums': ['026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002'],
+ }),
+ ('dask_ml', version, {
+ 'checksums': ['7956910a49e1e31944280fdb311adf245da11ef410d67deb7a05c67c7d0c4498'],
+ }),
+]
+
+moduleclass = 'ai'
diff --git a/easybuild/easyconfigs/d/DeepDRR/DeepDRR-1.1.3-foss-2022a-CUDA-11.7.0.eb b/easybuild/easyconfigs/d/DeepDRR/DeepDRR-1.1.3-foss-2022a-CUDA-11.7.0.eb
new file mode 100644
index 00000000000..9191c43123a
--- /dev/null
+++ b/easybuild/easyconfigs/d/DeepDRR/DeepDRR-1.1.3-foss-2022a-CUDA-11.7.0.eb
@@ -0,0 +1,49 @@
+easyblock = 'PythonBundle'
+
+name = 'DeepDRR'
+version = '1.1.3'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://deepdrr.readthedocs.io/'
+description = """
+DeepDRR provides state-of-the-art tools to generate realistic radiographs and
+fluoroscopy from 3D CTs on a training set scale."""
+
+toolchain = {'name': 'foss', 'version': '2022a'}
+
+dependencies = [
+ ('CUDA', '11.7.0', '', SYSTEM),
+ ('Python', '3.10.4'),
+ ('scikit-image', '0.19.3'),
+ ('PyTorch', '1.12.1', versionsuffix),
+ ('PyTorch-bundle', '1.12.1', versionsuffix),
+ ('NiBabel', '4.0.2'),
+ ('pydicom', '2.3.0'),
+ ('PyVista', '0.43.8'),
+ ('PyCUDA', '2024.1', versionsuffix),
+ ('OpenCV', '4.6.0', versionsuffix + '-contrib'),
+ ('Seaborn', '0.12.1'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('colorlog', '6.8.2', {
+ 'checksums': ['3e3e079a41feb5a1b64f978b5ea4f46040a94f11f0e8bbb8261e3dbbeca64d44'],
+ }),
+ ('nptyping', '2.5.0', {
+ 'checksums': ['e3d35b53af967e6fb407c3016ff9abae954d3a0568f7cc13a461084224e8e20a'],
+ }),
+ ('pynrrd', '1.0.0', {
+ 'modulename': 'nrrd',
+ 'checksums': ['4eb4caba03fbca1b832114515e748336cb67bce70c7f3ae36bfa2e135fc990d2'],
+ }),
+ ('deepdrr', version, {
+ 'preinstallopts': "sed -i 's/opencv-python/opencv-contrib-python/g' setup.py && ",
+ 'checksums': ['aa75571e2382b408051fb95b302a63f584781a35441b9969c293e54e5f69b484'],
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'ai'
diff --git a/easybuild/easyconfigs/d/DeepLoc/DeepLoc-2.0-foss-2022b.eb b/easybuild/easyconfigs/d/DeepLoc/DeepLoc-2.0-foss-2022b.eb
new file mode 100644
index 00000000000..546c4bb876d
--- /dev/null
+++ b/easybuild/easyconfigs/d/DeepLoc/DeepLoc-2.0-foss-2022b.eb
@@ -0,0 +1,59 @@
+easyblock = 'PythonBundle'
+
+name = 'DeepLoc'
+version = '2.0'
+
+homepage = 'https://services.healthtech.dtu.dk/services/DeepLoc-2.0'
+description = "DeepLoc 2.0 predicts the subcellular localization(s) of eukaryotic proteins"
+
+toolchain = {'name': 'foss', 'version': '2022b'}
+
+dependencies = [
+ ('Python', '3.10.8'),
+ ('SciPy-bundle', '2023.02'),
+ ('matplotlib', '3.7.0'),
+ ('Biopython', '1.81'),
+ ('ONNX-Runtime', '1.16.3'),
+ ('ESM-2', '2.0.0'), # for fair-esm
+ ('PyTorch', '1.13.1'),
+ ('PyTorch-Lightning', '2.1.2'),
+ ('Transformers', '4.30.2'),
+ ('SentencePiece', '0.1.99'),
+ ('mygene', '3.2.2'), # required by bio
+]
+
+use_pip = True
+
+local_deeploc_download_url = 'https://services.healthtech.dtu.dk/cgi-bin/sw_request?'
+local_deeploc_download_url += 'software=deeploc&version=2.0&packageversion=2.0&platform=All'
+
+exts_list = [
+ ('gprofiler-official', '1.0.0', {
+ 'checksums': ['5015b47f10fbdcb59c57e342e815c9c07afbe57cd3984154f75b845ddef2445d'],
+ 'modulename': 'gprofiler',
+ }),
+ ('bio', '1.6.2', {
+ 'sources': ['bio-%(version)s-py%(pymajver)s-none-any.whl'],
+ 'checksums': ['dcec8207f3993a7f41bd8205cde235218da3dc008175ae7bb7468276d8dacf71'],
+ 'modulename': 'biorun',
+ }),
+ (name, version, {
+ 'download_instructions': "Download via %s" % local_deeploc_download_url,
+ 'sources': ['deeploc-%(version)s.All.tar.gz'],
+ 'checksums': ['1741cf61cc38bba6307f1838c08ff9dd01386da09b8939610d15c27f98173651'],
+ 'modulename': 'DeepLoc2',
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/deeploc2'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = [
+ "deeploc2 --help",
+]
+
+sanity_pip_check = True
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/d/DeepLoc/DeepLoc-2.0-foss-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/d/DeepLoc/DeepLoc-2.0-foss-2023a-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..379eb0439bb
--- /dev/null
+++ b/easybuild/easyconfigs/d/DeepLoc/DeepLoc-2.0-foss-2023a-CUDA-12.1.1.eb
@@ -0,0 +1,61 @@
+easyblock = 'PythonBundle'
+
+name = 'DeepLoc'
+version = '2.0'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://services.healthtech.dtu.dk/services/DeepLoc-2.0'
+description = "DeepLoc 2.0 predicts the subcellular localization(s) of eukaryotic proteins"
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('CUDA', '12.1.1', '', SYSTEM),
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('matplotlib', '3.7.2'),
+ ('Biopython', '1.83'),
+ ('ONNX-Runtime', '1.19.2', versionsuffix),
+ ('ESM-2', '2.0.0', versionsuffix), # for fair-esm
+ ('PyTorch', '2.1.2', versionsuffix),
+ ('PyTorch-Lightning', '2.2.1', versionsuffix),
+ ('Transformers', '4.39.3'),
+ ('SentencePiece', '0.2.0'),
+ ('mygene', '3.2.2'), # required by bio
+]
+
+use_pip = True
+
+local_deeploc_download_url = 'https://services.healthtech.dtu.dk/cgi-bin/sw_request?'
+local_deeploc_download_url += 'software=deeploc&version=2.0&packageversion=2.0&platform=All'
+
+exts_list = [
+ ('gprofiler-official', '1.0.0', {
+ 'checksums': ['5015b47f10fbdcb59c57e342e815c9c07afbe57cd3984154f75b845ddef2445d'],
+ 'modulename': 'gprofiler',
+ }),
+ ('bio', '1.7.1', {
+ 'sources': ['bio-%(version)s-py%(pymajver)s-none-any.whl'],
+ 'checksums': ['851545804b08413a3f27fd5131edefc30acfdee513919eebabb29678d8632218'],
+ 'modulename': 'biorun',
+ }),
+ (name, version, {
+ 'download_instructions': "Download via %s" % local_deeploc_download_url,
+ 'sources': ['deeploc-%(version)s.All.tar.gz'],
+ 'checksums': ['1741cf61cc38bba6307f1838c08ff9dd01386da09b8939610d15c27f98173651'],
+ 'modulename': 'DeepLoc2',
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/deeploc2'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = [
+ "deeploc2 --help",
+]
+
+sanity_pip_check = True
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/d/DeepLoc/DeepLoc-2.0-foss-2023a.eb b/easybuild/easyconfigs/d/DeepLoc/DeepLoc-2.0-foss-2023a.eb
new file mode 100644
index 00000000000..558d3f61871
--- /dev/null
+++ b/easybuild/easyconfigs/d/DeepLoc/DeepLoc-2.0-foss-2023a.eb
@@ -0,0 +1,59 @@
+easyblock = 'PythonBundle'
+
+name = 'DeepLoc'
+version = '2.0'
+
+homepage = 'https://services.healthtech.dtu.dk/services/DeepLoc-2.0'
+description = "DeepLoc 2.0 predicts the subcellular localization(s) of eukaryotic proteins"
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('matplotlib', '3.7.2'),
+ ('Biopython', '1.83'),
+ ('ONNX-Runtime', '1.19.2'),
+ ('ESM-2', '2.0.0'), # for fair-esm
+ ('PyTorch', '2.1.2'),
+ ('PyTorch-Lightning', '2.2.1'),
+ ('Transformers', '4.39.3'),
+ ('SentencePiece', '0.2.0'),
+ ('mygene', '3.2.2'), # required by bio
+]
+
+use_pip = True
+
+local_deeploc_download_url = 'https://services.healthtech.dtu.dk/cgi-bin/sw_request?'
+local_deeploc_download_url += 'software=deeploc&version=2.0&packageversion=2.0&platform=All'
+
+exts_list = [
+ ('gprofiler-official', '1.0.0', {
+ 'checksums': ['5015b47f10fbdcb59c57e342e815c9c07afbe57cd3984154f75b845ddef2445d'],
+ 'modulename': 'gprofiler',
+ }),
+ ('bio', '1.7.1', {
+ 'sources': ['bio-%(version)s-py%(pymajver)s-none-any.whl'],
+ 'checksums': ['851545804b08413a3f27fd5131edefc30acfdee513919eebabb29678d8632218'],
+ 'modulename': 'biorun',
+ }),
+ (name, version, {
+ 'download_instructions': "Download via %s" % local_deeploc_download_url,
+ 'sources': ['deeploc-%(version)s.All.tar.gz'],
+ 'checksums': ['1741cf61cc38bba6307f1838c08ff9dd01386da09b8939610d15c27f98173651'],
+ 'modulename': 'DeepLoc2',
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/deeploc2'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = [
+ "deeploc2 --help",
+]
+
+sanity_pip_check = True
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/d/Delft3D/Delft3D-4.04.01-foss-2022a-FLOW.eb b/easybuild/easyconfigs/d/Delft3D/Delft3D-4.04.01-foss-2022a-FLOW.eb
new file mode 100644
index 00000000000..c77445993d6
--- /dev/null
+++ b/easybuild/easyconfigs/d/Delft3D/Delft3D-4.04.01-foss-2022a-FLOW.eb
@@ -0,0 +1,88 @@
+easyblock = 'ConfigureMake'
+
+name = 'Delft3D'
+_revision = '142633'
+version = '4.04.01'
+versionsuffix = '-FLOW'
+
+homepage = 'https://oss.deltares.nl/web/delft3d'
+description = """
+Simulation of multi-dimensional hydrodynamic flows and transport phenomena, including
+sediments. Delft3D-FLOW is part of Delft3D 4.
+"""
+
+toolchain = {'name': 'foss', 'version': '2022a'}
+toolchainopts = {'usempi': True}
+
+download_instructions = """
+There is no tarball provided; it needs to be created through an svn checkout:
+ 1. svn checkout https://svn.oss.deltares.nl/repos/delft3d/trunk@%s
+ 2. tar -czvf %%(name)s-%%(version)s.tgz trunk
+""" % _revision
+
+sources = [SOURCE_TGZ]
+patches = ['Delft3D-4.04.01_use-external-esmf.patch']
+checksums = [
+ # Delft3D-4.04.01.tgz
+ None,
+ # Delft3D-4.04.01_use-external-esmf.patch'
+ '225d76fb3eea22e203f1a9f371b4fd07d75a8478de35a7428c1a1f85b344323c',
+]
+
+builddependencies = [
+ ('CMake', '3.24.3'),
+ ('libtool', '2.4.7'),
+ ('Bison', '3.8.2'),
+ ('flex', '2.6.4'),
+ ('Ruby', '3.0.5'),
+ ('Autotools', '20220317'),
+ ('M4', '1.4.19'),
+]
+
+dependencies = [
+ ('netCDF-Fortran', '4.6.0'),
+ ('METIS', '5.1.0'),
+ ('PETSc', '3.17.4'),
+ ('expat', '2.4.8'),
+ ('ESMF', '8.3.0'),
+]
+
+parallel = 1
+
+start_dir = 'src'
+
+preconfigopts = 'export FCFLAGS="$FCFLAGS -fallow-argument-mismatch -I${CPATH//:/ -I}" && '
+preconfigopts += 'export FFLAGS="$FFLAGS -fallow-argument-mismatch -I${CPATH//:/ -I}" && '
+# syntax was made invalid in c++11
+preconfigopts += "sed -i 's/if (spec < 0)/if (spec == nullptr)/g' utils_lgpl/delftonline/src/delftonline/server.cpp && "
+# avoid comparing logical with integer
+preconfigopts += r"sed -i 's/if (has_umean \/= 0)/if (has_umean .neqv. .false.)/g' "
+preconfigopts += "engines_gpl/flow2d3d/packages/flow2d3d_io/src/input/restart_trim_flow.f90 && "
+preconfigopts += "sed -i -e 's/-recursive/-frecursive/g' -e 's/-traceback/-fbacktrace/g' configure.ac && "
+# copy ESMF_RegridWeightGen_in_Delft3D-WAVE.sh script
+preconfigopts += "cp third_party_open/esmf/lnx64/scripts/ESMF_RegridWeightGen_in_Delft3D-WAVE.sh . && "
+# remove esmf precompiled binaries
+preconfigopts += "rm -r third_party_open/esmf && libtoolize && "
+preconfigopts += './autogen.sh && '
+preconfigopts += 'cd third_party_open/kdtree2 && ./autogen.sh && cd - && '
+
+configopts = ' --with-netcdf'
+configopts += ' --with-mpi --with-metis --with-petsc'
+
+# remove spurious double -l flags causing build failure
+prebuildopts = "sed -i.backup 's/-l -l//g' libtool config.lt config.status && "
+
+install_cmd = 'make ds-install'
+
+postinstallcmds = ["cp %(start_dir)s/ESMF_RegridWeightGen_in_Delft3D-WAVE.sh %(installdir)s/bin/"]
+
+sanity_check_paths = {
+ 'files': ['bin/d_hydro', 'bin/ESMF_RegridWeightGen_in_Delft3D-WAVE.sh'],
+ 'dirs': ['lib', 'share']
+}
+
+sanity_check_commands = [
+ 'd_hydro -? |grep Usage:',
+]
+
+moduleclass = 'phys'
diff --git a/easybuild/easyconfigs/d/Delft3D/Delft3D-4.04.01_use-external-esmf.patch b/easybuild/easyconfigs/d/Delft3D/Delft3D-4.04.01_use-external-esmf.patch
new file mode 100644
index 00000000000..c446d24a169
--- /dev/null
+++ b/easybuild/easyconfigs/d/Delft3D/Delft3D-4.04.01_use-external-esmf.patch
@@ -0,0 +1,110 @@
+Author: Jasper Grimm
+Avoid installing the bundled ESMF, since this is compiled for CentOS 7 (and also fails
+rpath sanity checks)
+diff -Nru trunk.orig/src/configure.ac trunk/src/configure.ac
+--- trunk.orig/src/configure.ac 2024-02-20 14:35:26.821778739 +0000
++++ trunk/src/configure.ac 2024-02-20 14:43:47.108090829 +0000
+@@ -607,10 +607,6 @@
+ plugins_lgpl/plugin_delftflow_traform/src/Makefile
+ scripts_lgpl/linux/Makefile
+ scripts_lgpl/Makefile
+-third_party_open/esmf/lnx64/bin/Makefile
+-third_party_open/esmf/lnx64/Makefile
+-third_party_open/esmf/lnx64/scripts/Makefile
+-third_party_open/esmf/Makefile
+ third_party_open/Makefile
+ third_party_open/md5/Makefile
+ third_party_open/md5/md5digest/Makefile
+diff -Nru trunk.orig/src/third_party_open/esmf/lnx64/scripts/ESMF_RegridWeightGen_in_Delft3D-WAVE.sh trunk/src/third_party_open/esmf/lnx64/scripts/ESMF_RegridWeightGen_in_Delft3D-WAVE.sh
+--- trunk.orig/src/third_party_open/esmf/lnx64/scripts/ESMF_RegridWeightGen_in_Delft3D-WAVE.sh 2024-02-20 14:35:27.449776542 +0000
++++ trunk/src/third_party_open/esmf/lnx64/scripts/ESMF_RegridWeightGen_in_Delft3D-WAVE.sh 2024-02-21 11:53:47.816278292 +0000
+@@ -52,24 +52,24 @@
+ scriptdirname=`readlink \-f \$0`
+ scriptdir=`dirname $scriptdirname`
+ D3D_HOME=$scriptdir/..
+-regridexec=$D3D_HOME/bin/ESMF_RegridWeightGen
++regridexec=$(which ESMF_RegridWeightGen)
+ # ESMF_regrid is build with old compilers etc.
+ # share/esmf optionally contains some library-versions especially for running this version of ESMF_regrid,
+ # both for RedHat 6.* and 7.*
+
+-if [ -f "/etc/redhat-release" ]; then
+- grepOS=`cat /etc/redhat-release | grep -i "release 6"`
+- if [ "$grepOS" != "" ]; then
+- echo "RH 6: Using RH 6 libraries" >>esmf_sh.log
+- export LD_LIBRARY_PATH=$D3D_HOME/share/delft3d/esmf/lnx64/bin:$D3D_HOME/lib:$LD_LIBRARY_PATH
+- else
+- echo "using RH 7 libraries" >>esmf_sh.log
+- export LD_LIBRARY_PATH=$D3D_HOME/share/delft3d/esmf/lnx64/bin_COS7:$D3D_HOME/lib:$LD_LIBRARY_PATH
+- fi
+-else
+- echo "ERROR: ESMF_RegridWeightGen_in_Delft3D-WAVE.sh only implemented for CentOS 6 and 7."
+- exit
+-fi
++# if [ -f "/etc/redhat-release" ]; then
++# grepOS=`cat /etc/redhat-release | grep -i "release 6"`
++# if [ "$grepOS" != "" ]; then
++# echo "RH 6: Using RH 6 libraries" >>esmf_sh.log
++# export LD_LIBRARY_PATH=$D3D_HOME/share/delft3d/esmf/lnx64/bin:$D3D_HOME/lib:$LD_LIBRARY_PATH
++# else
++# echo "using RH 7 libraries" >>esmf_sh.log
++# export LD_LIBRARY_PATH=$D3D_HOME/share/delft3d/esmf/lnx64/bin_COS7:$D3D_HOME/lib:$LD_LIBRARY_PATH
++# fi
++# else
++# echo "ERROR: ESMF_RegridWeightGen_in_Delft3D-WAVE.sh only implemented for CentOS 6 and 7."
++# exit
++# fi
+
+
+ echo Executing batchscript "ESMF_RegridWeightGen_in_Delft3D-WAVE.sh" for Delft3D-WAVE >>esmf_sh.log
+diff -Nru trunk.orig/src/third_party_open/Makefile.am trunk/src/third_party_open/Makefile.am
+--- trunk.orig/src/third_party_open/Makefile.am 2024-02-20 14:35:27.045777956 +0000
++++ trunk/src/third_party_open/Makefile.am 2024-02-20 14:43:31.552143270 +0000
+@@ -19,7 +19,6 @@
+ endif
+
+ SUBDIRS = \
+- esmf \
+ triangle \
+ version_number \
+ libsigwatch \
+@@ -28,39 +27,3 @@
+ kdtree2 \
+ md5 \
+ $(MAYBE_FORTRANGIS)
+-nobase_dist_pkgdata_DATA = \
+- esmf/lnx64/bin/libcilkrts.so.5 \
+- esmf/lnx64/bin/libdl.so.2 \
+- esmf/lnx64/bin/libesmf.so \
+- esmf/lnx64/bin/libgcc_s.so.1 \
+- esmf/lnx64/bin/libhdf5.so.8 \
+- esmf/lnx64/bin/libhdf5_hl.so.8 \
+- esmf/lnx64/bin/libifcore.so.5 \
+- esmf/lnx64/bin/libifport.so.5 \
+- esmf/lnx64/bin/libimf.so \
+- esmf/lnx64/bin/libintlc.so.5 \
+- esmf/lnx64/bin/libiomp5.so \
+- esmf/lnx64/bin/libirc.so \
+- esmf/lnx64/bin/libirng.so \
+- esmf/lnx64/bin/libm.so.6 \
+- esmf/lnx64/bin/libnetcdf.so.7 \
+- esmf/lnx64/bin/libnetcdff.so.6 \
+- esmf/lnx64/bin/librt.so.1 \
+- esmf/lnx64/bin/libsvml.so \
+- esmf/lnx64/bin/libz.so.1 \
+- esmf/lnx64/bin_COS7/libcilkrts.so.5 \
+- esmf/lnx64/bin_COS7/libesmf.so \
+- esmf/lnx64/bin_COS7/libhdf5.so.200 \
+- esmf/lnx64/bin_COS7/libhdf5_hl.so.200 \
+- esmf/lnx64/bin_COS7/libifcoremt.so.5 \
+- esmf/lnx64/bin_COS7/libifport.so.5 \
+- esmf/lnx64/bin_COS7/libimf.so \
+- esmf/lnx64/bin_COS7/libintlc.so.5 \
+- esmf/lnx64/bin_COS7/libiomp5.so \
+- esmf/lnx64/bin_COS7/libirc.so \
+- esmf/lnx64/bin_COS7/libirng.so \
+- esmf/lnx64/bin_COS7/libnetcdf.so.7 \
+- esmf/lnx64/bin_COS7/libnetcdf.so.18 \
+- esmf/lnx64/bin_COS7/libnetcdff.so.6 \
+- esmf/lnx64/bin_COS7/libsvml.so
+-
diff --git a/easybuild/easyconfigs/d/DeltaLake/DeltaLake-0.15.1-gfbf-2023a.eb b/easybuild/easyconfigs/d/DeltaLake/DeltaLake-0.15.1-gfbf-2023a.eb
new file mode 100644
index 00000000000..e3342fac4f6
--- /dev/null
+++ b/easybuild/easyconfigs/d/DeltaLake/DeltaLake-0.15.1-gfbf-2023a.eb
@@ -0,0 +1,873 @@
+easyblock = 'CargoPythonPackage'
+
+name = 'DeltaLake'
+version = '0.15.1'
+
+homepage = 'https://delta-io.github.io/delta-rs/'
+description = """Native Delta Lake Python binding based on delta-rs with Pandas integration.
+The Delta Lake project aims to unlock the power of the Deltalake for as many
+users and projects as possible by providing native low-level APIs aimed at
+developers and integrators, as well as a high-level operations API that lets
+you query, inspect, and operate your Delta Lake with ease."""
+
+toolchain = {'name': 'gfbf', 'version': '2023a'}
+
+sources = [SOURCELOWER_TAR_GZ]
+patches = ['DeltaLake-0.15.1_remove-obsolete-pyarrow-hotfix.patch']
+checksums = [
+ {'deltalake-0.15.1.tar.gz': '77ca8e239297c7db99ae0dd4c13097550f4dca64d6b6f9bd493d9084fdf25fb3'},
+ {'addr2line-0.21.0.tar.gz': '8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb'},
+ {'adler-1.0.2.tar.gz': 'f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe'},
+ {'ahash-0.8.7.tar.gz': '77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01'},
+ {'aho-corasick-1.1.2.tar.gz': 'b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0'},
+ {'alloc-no-stdlib-2.0.4.tar.gz': 'cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3'},
+ {'alloc-stdlib-0.2.2.tar.gz': '94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece'},
+ {'allocator-api2-0.2.16.tar.gz': '0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5'},
+ {'android-tzdata-0.1.1.tar.gz': 'e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0'},
+ {'android_system_properties-0.1.5.tar.gz': '819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311'},
+ {'anes-0.1.6.tar.gz': '4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299'},
+ {'anstyle-1.0.4.tar.gz': '7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87'},
+ {'anyhow-1.0.79.tar.gz': '080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca'},
+ {'arrayref-0.3.7.tar.gz': '6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545'},
+ {'arrayvec-0.7.4.tar.gz': '96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711'},
+ {'arrow-49.0.0.tar.gz': '5bc25126d18a012146a888a0298f2c22e1150327bd2765fc76d710a556b2d614'},
+ {'arrow-arith-49.0.0.tar.gz': '34ccd45e217ffa6e53bbb0080990e77113bdd4e91ddb84e97b77649810bcf1a7'},
+ {'arrow-array-49.0.0.tar.gz': '6bda9acea48b25123c08340f3a8ac361aa0f74469bb36f5ee9acf923fce23e9d'},
+ {'arrow-buffer-49.0.0.tar.gz': '01a0fc21915b00fc6c2667b069c1b64bdd920982f426079bc4a7cab86822886c'},
+ {'arrow-cast-49.0.0.tar.gz': '5dc0368ed618d509636c1e3cc20db1281148190a78f43519487b2daf07b63b4a'},
+ {'arrow-csv-49.0.0.tar.gz': '2e09aa6246a1d6459b3f14baeaa49606cfdbca34435c46320e14054d244987ca'},
+ {'arrow-data-49.0.0.tar.gz': '907fafe280a3874474678c1858b9ca4cb7fd83fb8034ff5b6d6376205a08c634'},
+ {'arrow-ipc-49.0.0.tar.gz': '79a43d6808411886b8c7d4f6f7dd477029c1e77ffffffb7923555cc6579639cd'},
+ {'arrow-json-49.0.0.tar.gz': 'd82565c91fd627922ebfe2810ee4e8346841b6f9361b87505a9acea38b614fee'},
+ {'arrow-ord-49.0.0.tar.gz': '9b23b0e53c0db57c6749997fd343d4c0354c994be7eca67152dd2bdb9a3e1bb4'},
+ {'arrow-row-49.0.0.tar.gz': '361249898d2d6d4a6eeb7484be6ac74977e48da12a4dd81a708d620cc558117a'},
+ {'arrow-schema-49.0.0.tar.gz': '09e28a5e781bf1b0f981333684ad13f5901f4cd2f20589eab7cf1797da8fc167'},
+ {'arrow-select-49.0.0.tar.gz': '4f6208466590960efc1d2a7172bc4ff18a67d6e25c529381d7f96ddaf0dc4036'},
+ {'arrow-string-49.0.0.tar.gz': 'a4a48149c63c11c9ff571e50ab8f017d2a7cb71037a882b42f6354ed2da9acc7'},
+ {'async-compression-0.4.5.tar.gz': 'bc2d0cfb2a7388d34f590e76686704c494ed7aaceed62ee1ba35cbf363abc2a5'},
+ {'async-trait-0.1.77.tar.gz': 'c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9'},
+ {'autocfg-1.1.0.tar.gz': 'd468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa'},
+ {'aws-config-1.1.1.tar.gz': '11382bd8ac4c6c182a9775990935f96c916a865f1414486595f18eb8cfa9d90b'},
+ {'aws-credential-types-1.1.1.tar.gz': '70a1629320d319dc715c6189b172349186557e209d2a7b893ff3d14efd33a47c'},
+ {'aws-http-0.60.1.tar.gz': '30e4199d5d62ab09be6a64650c06cc5c4aa45806fed4c74bc4a5c8eaf039a6fa'},
+ {'aws-runtime-1.1.1.tar.gz': '87116d357c905b53f1828d15366363fd27b330a0393cbef349e653f686d36bad'},
+ {'aws-sdk-glue-1.11.0.tar.gz': 'addd517d95ed93ff34963f59f9878c29554036051e64599219f62d8508cfc131'},
+ {'aws-sdk-sso-1.9.0.tar.gz': 'da9d9a8ac4cdb8df39f9777fd41e15a9ae0d0b622b00909ae0322b4d2f9e6ac8'},
+ {'aws-sdk-ssooidc-1.9.0.tar.gz': '56ba4a42aa91acecd5ca43b330b5c8eb7f8808d720b6a6f796a35faa302fc73d'},
+ {'aws-sdk-sts-1.9.0.tar.gz': '8e3c7c3dcec7cccd24a13953eedf0f2964c2d728d22112744274cf0098ad2e35'},
+ {'aws-sigv4-1.1.1.tar.gz': 'd222297ca90209dc62245f0a490355795f29de362eb5c19caea4f7f55fe69078'},
+ {'aws-smithy-async-1.1.1.tar.gz': '1e9f65000917e3aa94c259d67fe01fa9e4cd456187d026067d642436e6311a81'},
+ {'aws-smithy-http-0.60.1.tar.gz': 'e4e816425a6b9caea4929ac97d0cb33674849bd5f0086418abc0d02c63f7a1bf'},
+ {'aws-smithy-json-0.60.1.tar.gz': '8ab3f6d49e08df2f8d05e1bb5b68998e1e67b76054d3c43e7b954becb9a5e9ac'},
+ {'aws-smithy-query-0.60.1.tar.gz': '0f94a7a3aa509ff9e8b8d80749851d04e5eee0954c43f2e7d6396c4740028737'},
+ {'aws-smithy-runtime-1.1.1.tar.gz': '8da5b0a3617390e769576321816112f711c13d7e1114685e022505cf51fe5e48'},
+ {'aws-smithy-runtime-api-1.1.1.tar.gz': '2404c9eb08bfe9af255945254d9afc69a367b7ee008b8db75c05e3bca485fc65'},
+ {'aws-smithy-types-1.1.1.tar.gz': '2aba8136605d14ac88f57dc3a693a9f8a4eab4a3f52bc03ff13746f0cd704e97'},
+ {'aws-smithy-xml-0.60.1.tar.gz': '2e8f03926587fc881b12b102048bb04305bf7fb8c83e776f0ccc51eaa2378263'},
+ {'aws-types-1.1.1.tar.gz': '4e5d5ee29077e0fcd5ddd0c227b521a33aaf02434b7cdba1c55eec5c1f18ac47'},
+ {'backoff-0.4.0.tar.gz': 'b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1'},
+ {'backtrace-0.3.69.tar.gz': '2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837'},
+ {'base64-0.13.1.tar.gz': '9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8'},
+ {'base64-0.21.5.tar.gz': '35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9'},
+ {'base64-simd-0.8.0.tar.gz': '339abbe78e73178762e23bea9dfd08e697eb3f3301cd4be981c0f78ba5859195'},
+ {'bitflags-1.3.2.tar.gz': 'bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a'},
+ {'bitflags-2.4.1.tar.gz': '327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07'},
+ {'blake2-0.10.6.tar.gz': '46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe'},
+ {'blake3-1.5.0.tar.gz': '0231f06152bf547e9c2b5194f247cd97aacf6dcd8b15d8e5ec0663f64580da87'},
+ {'block-buffer-0.9.0.tar.gz': '4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4'},
+ {'block-buffer-0.10.4.tar.gz': '3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71'},
+ {'brotli-3.4.0.tar.gz': '516074a47ef4bce09577a3b379392300159ce5b1ba2e501ff1c819950066100f'},
+ {'brotli-decompressor-2.5.1.tar.gz': '4e2e4afe60d7dd600fdd3de8d0f08c2b7ec039712e3b6137ff98b7004e82de4f'},
+ {'bumpalo-3.14.0.tar.gz': '7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec'},
+ {'bytemuck-1.14.0.tar.gz': '374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6'},
+ {'byteorder-1.5.0.tar.gz': '1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b'},
+ {'bytes-1.5.0.tar.gz': 'a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223'},
+ {'bytes-utils-0.1.4.tar.gz': '7dafe3a8757b027e2be6e4e5601ed563c55989fcf1546e933c66c8eb3a058d35'},
+ {'bzip2-0.4.4.tar.gz': 'bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8'},
+ {'bzip2-sys-0.1.11+1.0.8.tar.gz': '736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc'},
+ {'cast-0.3.0.tar.gz': '37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5'},
+ {'cc-1.0.83.tar.gz': 'f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0'},
+ {'cfg-if-1.0.0.tar.gz': 'baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd'},
+ {'chrono-0.4.31.tar.gz': '7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38'},
+ {'chrono-tz-0.8.5.tar.gz': '91d7b79e99bfaa0d47da0687c43aa3b7381938a62ad3a6498599039321f660b7'},
+ {'chrono-tz-build-0.2.1.tar.gz': '433e39f13c9a060046954e0592a8d0a4bcb1040125cbf91cb8ee58964cfb350f'},
+ {'ciborium-0.2.1.tar.gz': 'effd91f6c78e5a4ace8a5d3c0b6bfaec9e2baaef55f3efc00e45fb2e477ee926'},
+ {'ciborium-io-0.2.1.tar.gz': 'cdf919175532b369853f5d5e20b26b43112613fd6fe7aee757e35f7a44642656'},
+ {'ciborium-ll-0.2.1.tar.gz': 'defaa24ecc093c77630e6c15e17c51f5e187bf35ee514f4e2d67baaa96dae22b'},
+ {'clap-4.4.13.tar.gz': '52bdc885e4cacc7f7c9eedc1ef6da641603180c783c41a15c264944deeaab642'},
+ {'clap_builder-4.4.12.tar.gz': 'fb7fb5e4e979aec3be7791562fcba452f94ad85e954da024396433e0e25a79e9'},
+ {'clap_lex-0.6.0.tar.gz': '702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1'},
+ {'comfy-table-7.1.0.tar.gz': '7c64043d6c7b7a4c58e39e7efccfdea7b93d885a795d0c054a69dbbf4dd52686'},
+ {'const-random-0.1.17.tar.gz': '5aaf16c9c2c612020bcfd042e170f6e32de9b9d75adb5277cdbbd2e2c8c8299a'},
+ {'const-random-macro-0.1.16.tar.gz': 'f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e'},
+ {'constant_time_eq-0.3.0.tar.gz': 'f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2'},
+ {'core-foundation-0.9.4.tar.gz': '91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f'},
+ {'core-foundation-sys-0.8.6.tar.gz': '06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f'},
+ {'cpufeatures-0.2.12.tar.gz': '53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504'},
+ {'crc32fast-1.3.2.tar.gz': 'b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d'},
+ {'criterion-0.5.1.tar.gz': 'f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f'},
+ {'criterion-plot-0.5.0.tar.gz': '6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1'},
+ {'crossbeam-deque-0.8.4.tar.gz': 'fca89a0e215bab21874660c67903c5f143333cab1da83d041c7ded6053774751'},
+ {'crossbeam-epoch-0.9.17.tar.gz': '0e3681d554572a651dda4186cd47240627c3d0114d45a95f6ad27f2f22e7548d'},
+ {'crossbeam-utils-0.8.18.tar.gz': 'c3a430a770ebd84726f584a90ee7f020d28db52c6d02138900f22341f866d39c'},
+ {'crunchy-0.2.2.tar.gz': '7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7'},
+ {'crypto-common-0.1.6.tar.gz': '1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3'},
+ {'crypto-mac-0.11.1.tar.gz': 'b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714'},
+ {'csv-1.3.0.tar.gz': 'ac574ff4d437a7b5ad237ef331c17ccca63c46479e5b5453eb8e10bb99a759fe'},
+ {'csv-core-0.1.11.tar.gz': '5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70'},
+ {'ct-logs-0.8.0.tar.gz': 'c1a816186fa68d9e426e3cb4ae4dff1fcd8e4a2c34b781bf7a822574a0d0aac8'},
+ {'ctor-0.2.6.tar.gz': '30d2b3721e861707777e3195b0158f950ae6dc4a27e4d02ff9f67e3eb3de199e'},
+ {'dashmap-5.5.3.tar.gz': '978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856'},
+ {'datafusion-34.0.0.tar.gz': '193fd1e7628278d0641c5122860f9a7fd6a1d77d055838d12f55d15bbe28d4d0'},
+ {'datafusion-common-34.0.0.tar.gz': '548bc49c4a489e3de474813831ea556dc9d368f9ed8d867b1493da42e8e9f613'},
+ {'datafusion-execution-34.0.0.tar.gz': 'ecc865657ffcf4da5ff08bdc6436a9a833bc0aa96c3254c8d18ab8a0ad4e437d'},
+ {'datafusion-expr-34.0.0.tar.gz': '33c473f72d8d81a532e63f6e562ed66dd9209dfd8e433d9712abd42444ee161e'},
+ {'datafusion-optimizer-34.0.0.tar.gz': 'cb6218318001d2f6783b7fffa17592318f65f26609d7aab605a3dd0c7c2e2618'},
+ {'datafusion-physical-expr-34.0.0.tar.gz': '9e1ca7e35ca22f9dc506c2375b92054b03ccf91afe25c0a90b395a1473a09735'},
+ {'datafusion-physical-plan-34.0.0.tar.gz': 'ddde97adefcca3a55257c646ffee2a95b6cac66f74d1146a6e3a6dbb37830631'},
+ {'datafusion-proto-34.0.0.tar.gz': '344700ad4505ffcab6ba0715188ce317ad44e024fe1c5dc7267762113a9dcdf8'},
+ {'datafusion-sql-34.0.0.tar.gz': 'a60d9d6460a64fddb8663db41da97e6b8b0bf79da42f997ebe81722731eaf0e5'},
+ {'deranged-0.3.11.tar.gz': 'b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4'},
+ {'diff-0.1.13.tar.gz': '56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8'},
+ {'digest-0.9.0.tar.gz': 'd3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066'},
+ {'digest-0.10.7.tar.gz': '9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292'},
+ {'dirs-next-2.0.0.tar.gz': 'b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1'},
+ {'dirs-sys-next-0.1.2.tar.gz': '4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d'},
+ {'doc-comment-0.3.3.tar.gz': 'fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10'},
+ {'dotenvy-0.15.7.tar.gz': '1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b'},
+ {'either-1.9.0.tar.gz': 'a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07'},
+ {'encoding_rs-0.8.33.tar.gz': '7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1'},
+ {'env_logger-0.10.1.tar.gz': '95b3f3e67048839cb0d0781f445682a35113da7121f7c949db0e2be96a4fbece'},
+ {'equivalent-1.0.1.tar.gz': '5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5'},
+ {'errno-0.3.8.tar.gz': 'a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245'},
+ {'fastrand-2.0.1.tar.gz': '25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5'},
+ {'fix-hidden-lifetime-bug-0.2.5.tar.gz': 'd4ae9c2016a663983d4e40a9ff967d6dcac59819672f0b47f2b17574e99c33c8'},
+ {'fix-hidden-lifetime-bug-proc_macros-0.2.5.tar.gz':
+ 'e4c81935e123ab0741c4c4f0d9b8377e5fb21d3de7e062fa4b1263b1fbcba1ea'},
+ {'fixedbitset-0.4.2.tar.gz': '0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80'},
+ {'flatbuffers-23.5.26.tar.gz': '4dac53e22462d78c16d64a1cd22371b54cc3fe94aa15e7886a2fa6e5d1ab8640'},
+ {'flate2-1.0.28.tar.gz': '46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e'},
+ {'fnv-1.0.7.tar.gz': '3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1'},
+ {'foreign-types-0.3.2.tar.gz': 'f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1'},
+ {'foreign-types-shared-0.1.1.tar.gz': '00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b'},
+ {'form_urlencoded-1.2.1.tar.gz': 'e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456'},
+ {'fs_extra-1.3.0.tar.gz': '42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c'},
+ {'futures-0.3.30.tar.gz': '645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0'},
+ {'futures-channel-0.3.30.tar.gz': 'eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78'},
+ {'futures-core-0.3.30.tar.gz': 'dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d'},
+ {'futures-executor-0.3.30.tar.gz': 'a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d'},
+ {'futures-io-0.3.30.tar.gz': 'a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1'},
+ {'futures-macro-0.3.30.tar.gz': '87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac'},
+ {'futures-sink-0.3.30.tar.gz': '9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5'},
+ {'futures-task-0.3.30.tar.gz': '38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004'},
+ {'futures-util-0.3.30.tar.gz': '3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48'},
+ {'generic-array-0.14.7.tar.gz': '85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a'},
+ {'getrandom-0.2.11.tar.gz': 'fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f'},
+ {'gimli-0.28.1.tar.gz': '4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253'},
+ {'glob-0.3.1.tar.gz': 'd2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b'},
+ {'h2-0.3.22.tar.gz': '4d6250322ef6e60f93f9a2162799302cd6f68f79f6e5d85c8c16f14d1d958178'},
+ {'half-1.8.2.tar.gz': 'eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7'},
+ {'half-2.3.1.tar.gz': 'bc52e53916c08643f1b56ec082790d1e86a32e58dc5268f897f313fbae7b4872'},
+ {'hashbrown-0.14.3.tar.gz': '290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604'},
+ {'heck-0.4.1.tar.gz': '95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8'},
+ {'hermit-abi-0.3.3.tar.gz': 'd77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7'},
+ {'hex-0.4.3.tar.gz': '7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70'},
+ {'hmac-0.11.0.tar.gz': '2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b'},
+ {'hmac-0.12.1.tar.gz': '6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e'},
+ {'http-0.2.11.tar.gz': '8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb'},
+ {'http-body-0.4.6.tar.gz': '7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2'},
+ {'httparse-1.8.0.tar.gz': 'd897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904'},
+ {'httpdate-1.0.3.tar.gz': 'df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9'},
+ {'humantime-2.1.0.tar.gz': '9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4'},
+ {'hyper-0.14.28.tar.gz': 'bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80'},
+ {'hyper-rustls-0.22.1.tar.gz': '5f9f7a97316d44c0af9b0301e65010573a853a9fc97046d7331d7f6bc0fd5a64'},
+ {'hyper-rustls-0.24.2.tar.gz': 'ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590'},
+ {'hyper-tls-0.5.0.tar.gz': 'd6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905'},
+ {'iana-time-zone-0.1.59.tar.gz': 'b6a67363e2aa4443928ce15e57ebae94fd8949958fd1223c4cfc0cd473ad7539'},
+ {'iana-time-zone-haiku-0.1.2.tar.gz': 'f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f'},
+ {'idna-0.5.0.tar.gz': '634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6'},
+ {'indexmap-2.1.0.tar.gz': 'd530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f'},
+ {'indoc-2.0.4.tar.gz': '1e186cfbae8084e513daff4240b4797e342f988cecda4fb6c939150f96315fd8'},
+ {'instant-0.1.12.tar.gz': '7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c'},
+ {'integer-encoding-3.0.4.tar.gz': '8bb03732005da905c88227371639bf1ad885cc712789c011c31c5fb3ab3ccf02'},
+ {'ipnet-2.9.0.tar.gz': '8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3'},
+ {'is-terminal-0.4.10.tar.gz': '0bad00257d07be169d870ab665980b06cdb366d792ad690bf2e76876dc503455'},
+ {'itertools-0.10.5.tar.gz': 'b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473'},
+ {'itertools-0.11.0.tar.gz': 'b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57'},
+ {'itertools-0.12.0.tar.gz': '25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0'},
+ {'itoa-1.0.10.tar.gz': 'b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c'},
+ {'jobserver-0.1.27.tar.gz': '8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d'},
+ {'js-sys-0.3.66.tar.gz': 'cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca'},
+ {'lazy_static-1.4.0.tar.gz': 'e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646'},
+ {'lexical-core-0.8.5.tar.gz': '2cde5de06e8d4c2faabc400238f9ae1c74d5412d03a7bd067645ccbc47070e46'},
+ {'lexical-parse-float-0.8.5.tar.gz': '683b3a5ebd0130b8fb52ba0bdc718cc56815b6a097e28ae5a6997d0ad17dc05f'},
+ {'lexical-parse-integer-0.8.6.tar.gz': '6d0994485ed0c312f6d965766754ea177d07f9c00c9b82a5ee62ed5b47945ee9'},
+ {'lexical-util-0.8.5.tar.gz': '5255b9ff16ff898710eb9eb63cb39248ea8a5bb036bea8085b1a767ff6c4e3fc'},
+ {'lexical-write-float-0.8.5.tar.gz': 'accabaa1c4581f05a3923d1b4cfd124c329352288b7b9da09e766b0668116862'},
+ {'lexical-write-integer-0.8.5.tar.gz': 'e1b6f3d1f4422866b68192d62f77bc5c700bee84f3069f2469d7bc8c77852446'},
+ {'libc-0.2.152.tar.gz': '13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7'},
+ {'libm-0.2.8.tar.gz': '4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058'},
+ {'libredox-0.0.1.tar.gz': '85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8'},
+ {'linux-raw-sys-0.4.12.tar.gz': 'c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456'},
+ {'lock_api-0.4.11.tar.gz': '3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45'},
+ {'log-0.4.20.tar.gz': 'b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f'},
+ {'lz4_flex-0.11.1.tar.gz': '3ea9b256699eda7b0387ffbc776dd625e28bde3918446381781245b7a50349d8'},
+ {'lzma-sys-0.1.20.tar.gz': '5fda04ab3764e6cde78b9974eec4f779acaba7c4e84b36eca3cf77c581b85d27'},
+ {'maplit-1.0.2.tar.gz': '3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d'},
+ {'md-5-0.9.1.tar.gz': '7b5a279bb9607f9f53c22d496eade00d138d1bdcccd07d74650387cf94942a15'},
+ {'md-5-0.10.6.tar.gz': 'd89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf'},
+ {'memchr-2.7.1.tar.gz': '523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149'},
+ {'memoffset-0.9.0.tar.gz': '5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c'},
+ {'mime-0.3.17.tar.gz': '6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a'},
+ {'miniz_oxide-0.7.1.tar.gz': 'e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7'},
+ {'mio-0.8.10.tar.gz': '8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09'},
+ {'native-tls-0.2.11.tar.gz': '07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e'},
+ {'num-0.4.1.tar.gz': 'b05180d69e3da0e530ba2a1dae5110317e49e3b7f3d41be227dc5f92e49ee7af'},
+ {'num-bigint-0.4.4.tar.gz': '608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0'},
+ {'num-complex-0.4.4.tar.gz': '1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214'},
+ {'num-integer-0.1.45.tar.gz': '225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9'},
+ {'num-iter-0.1.43.tar.gz': '7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252'},
+ {'num-rational-0.4.1.tar.gz': '0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0'},
+ {'num-traits-0.2.17.tar.gz': '39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c'},
+ {'num_cpus-1.16.0.tar.gz': '4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43'},
+ {'object-0.32.2.tar.gz': 'a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441'},
+ {'object_store-0.8.0.tar.gz': '2524735495ea1268be33d200e1ee97455096a0846295a21548cd2f3541de7050'},
+ {'once_cell-1.19.0.tar.gz': '3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92'},
+ {'oorandom-11.1.3.tar.gz': '0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575'},
+ {'opaque-debug-0.3.0.tar.gz': '624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5'},
+ {'openssl-0.10.62.tar.gz': '8cde4d2d9200ad5909f8dac647e29482e07c3a35de8a13fce7c9c7747ad9f671'},
+ {'openssl-macros-0.1.1.tar.gz': 'a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c'},
+ {'openssl-probe-0.1.5.tar.gz': 'ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf'},
+ {'openssl-src-300.2.1+3.2.0.tar.gz': '3fe476c29791a5ca0d1273c697e96085bbabbbea2ef7afd5617e78a4b40332d3'},
+ {'openssl-sys-0.9.98.tar.gz': 'c1665caf8ab2dc9aef43d1c0023bd904633a6a05cb30b0ad59bec2ae986e57a7'},
+ {'ordered-float-2.10.1.tar.gz': '68f19d67e5a2795c94e73e0bb1cc1a7edeb2e28efd39e2e1c9b7a40c1108b11c'},
+ {'outref-0.5.1.tar.gz': '4030760ffd992bef45b0ae3f10ce1aba99e33464c90d14dd7c039884963ddc7a'},
+ {'parking_lot-0.12.1.tar.gz': '3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f'},
+ {'parking_lot_core-0.9.9.tar.gz': '4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e'},
+ {'parquet-49.0.0.tar.gz': 'af88740a842787da39b3d69ce5fbf6fce97d20211d3b299fee0a0da6430c74d4'},
+ {'parse-zoneinfo-0.3.0.tar.gz': 'c705f256449c60da65e11ff6626e0c16a0a0b96aaa348de61376b249bc340f41'},
+ {'paste-1.0.14.tar.gz': 'de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c'},
+ {'percent-encoding-2.3.1.tar.gz': 'e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e'},
+ {'petgraph-0.6.4.tar.gz': 'e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9'},
+ {'phf-0.11.2.tar.gz': 'ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc'},
+ {'phf_codegen-0.11.2.tar.gz': 'e8d39688d359e6b34654d328e262234662d16cc0f60ec8dcbe5e718709342a5a'},
+ {'phf_generator-0.11.2.tar.gz': '48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0'},
+ {'phf_shared-0.11.2.tar.gz': '90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b'},
+ {'pin-project-lite-0.2.13.tar.gz': '8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58'},
+ {'pin-utils-0.1.0.tar.gz': '8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184'},
+ {'pkg-config-0.3.28.tar.gz': '69d3587f8a9e599cc7ec2c00e331f71c4e69a5f9a4b8a6efd5b07466b9736f9a'},
+ {'plotters-0.3.5.tar.gz': 'd2c224ba00d7cadd4d5c660deaf2098e5e80e07846537c51f9cfa4be50c1fd45'},
+ {'plotters-backend-0.3.5.tar.gz': '9e76628b4d3a7581389a35d5b6e2139607ad7c75b17aed325f210aa91f4a9609'},
+ {'plotters-svg-0.3.5.tar.gz': '38f6d39893cca0701371e3c27294f09797214b86f1fb951b89ade8ec04e2abab'},
+ {'powerfmt-0.2.0.tar.gz': '439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391'},
+ {'ppv-lite86-0.2.17.tar.gz': '5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de'},
+ {'pretty_assertions-1.4.0.tar.gz': 'af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66'},
+ {'pretty_env_logger-0.5.0.tar.gz': '865724d4dbe39d9f3dd3b52b88d859d66bcb2d6a0acfd5ea68a65fb66d4bdc1c'},
+ {'proc-macro2-1.0.76.tar.gz': '95fc56cda0b5c3325f5fbbd7ff9fda9e02bb00bb3dac51252d2f1bfa1cb8cc8c'},
+ {'prost-0.12.3.tar.gz': '146c289cda302b98a28d40c8b3b90498d6e526dd24ac2ecea73e4e491685b94a'},
+ {'prost-derive-0.12.3.tar.gz': 'efb6c9a1dd1def8e2124d17e83a20af56f1570d6c2d2bd9e266ccb768df3840e'},
+ {'pyo3-0.20.2.tar.gz': '9a89dc7a5850d0e983be1ec2a463a171d20990487c3cfcd68b5363f1ee3d6fe0'},
+ {'pyo3-build-config-0.20.2.tar.gz': '07426f0d8fe5a601f26293f300afd1a7b1ed5e78b2a705870c5f30893c5163be'},
+ {'pyo3-ffi-0.20.2.tar.gz': 'dbb7dec17e17766b46bca4f1a4215a85006b4c2ecde122076c562dd058da6cf1'},
+ {'pyo3-macros-0.20.2.tar.gz': '05f738b4e40d50b5711957f142878cfa0f28e054aa0ebdfc3fd137a843f74ed3'},
+ {'pyo3-macros-backend-0.20.2.tar.gz': '0fc910d4851847827daf9d6cdd4a823fbdaab5b8818325c5e97a86da79e8881f'},
+ {'quick-xml-0.31.0.tar.gz': '1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33'},
+ {'quote-1.0.35.tar.gz': '291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef'},
+ {'rand-0.8.5.tar.gz': '34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404'},
+ {'rand_chacha-0.3.1.tar.gz': 'e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88'},
+ {'rand_core-0.6.4.tar.gz': 'ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c'},
+ {'rayon-1.8.0.tar.gz': '9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1'},
+ {'rayon-core-1.12.0.tar.gz': '5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed'},
+ {'redox_syscall-0.4.1.tar.gz': '4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa'},
+ {'redox_users-0.4.4.tar.gz': 'a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4'},
+ {'regex-1.10.2.tar.gz': '380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343'},
+ {'regex-automata-0.4.3.tar.gz': '5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f'},
+ {'regex-lite-0.1.5.tar.gz': '30b661b2f27137bdbc16f00eda72866a92bb28af1753ffbd56744fb6e2e9cd8e'},
+ {'regex-syntax-0.8.2.tar.gz': 'c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f'},
+ {'reqwest-0.11.23.tar.gz': '37b1ae8d9ac08420c66222fb9096fc5de435c3c48542bc5336c51892cffafb41'},
+ {'retain_mut-0.1.7.tar.gz': '8c31b5c4033f8fdde8700e4657be2c497e7288f01515be52168c631e2e4d4086'},
+ {'ring-0.16.20.tar.gz': '3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc'},
+ {'ring-0.17.7.tar.gz': '688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74'},
+ {'roaring-0.10.2.tar.gz': '6106b5cf8587f5834158895e9715a3c6c9716c8aefab57f1f7680917191c7873'},
+ {'rusoto_core-0.47.0.tar.gz': '5b4f000e8934c1b4f70adde180056812e7ea6b1a247952db8ee98c94cd3116cc'},
+ {'rusoto_credential-0.47.0.tar.gz': '6a46b67db7bb66f5541e44db22b0a02fed59c9603e146db3a9e633272d3bac2f'},
+ {'rusoto_dynamodb-0.47.0.tar.gz': '7935e1f9ca57c4ee92a4d823dcd698eb8c992f7e84ca21976ae72cd2b03016e7'},
+ {'rusoto_signature-0.47.0.tar.gz': '6264e93384b90a747758bcc82079711eacf2e755c3a8b5091687b5349d870bcc'},
+ {'rusoto_sts-0.47.0.tar.gz': '4e7edd42473ac006fd54105f619e480b0a94136e7f53cf3fb73541363678fd92'},
+ {'rustc-demangle-0.1.23.tar.gz': 'd626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76'},
+ {'rustc_version-0.4.0.tar.gz': 'bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366'},
+ {'rustix-0.38.28.tar.gz': '72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316'},
+ {'rustls-0.19.1.tar.gz': '35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7'},
+ {'rustls-0.21.10.tar.gz': 'f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba'},
+ {'rustls-native-certs-0.5.0.tar.gz': '5a07b7c1885bd8ed3831c289b7870b13ef46fe0e856d288c30d9cc17d75a2092'},
+ {'rustls-native-certs-0.6.3.tar.gz': 'a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00'},
+ {'rustls-pemfile-1.0.4.tar.gz': '1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c'},
+ {'rustls-webpki-0.101.7.tar.gz': '8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765'},
+ {'rustversion-1.0.14.tar.gz': '7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4'},
+ {'ryu-1.0.16.tar.gz': 'f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c'},
+ {'same-file-1.0.6.tar.gz': '93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502'},
+ {'schannel-0.1.23.tar.gz': 'fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534'},
+ {'scopeguard-1.2.0.tar.gz': '94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49'},
+ {'sct-0.6.1.tar.gz': 'b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce'},
+ {'sct-0.7.1.tar.gz': 'da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414'},
+ {'security-framework-2.9.2.tar.gz': '05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de'},
+ {'security-framework-sys-2.9.1.tar.gz': 'e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a'},
+ {'semver-1.0.21.tar.gz': 'b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0'},
+ {'seq-macro-0.3.5.tar.gz': 'a3f0bf26fd526d2a95683cd0f87bf103b8539e2ca1ef48ce002d67aad59aa0b4'},
+ {'serde-1.0.195.tar.gz': '63261df402c67811e9ac6def069e4786148c4563f4b50fd4bf30aa370d626b02'},
+ {'serde_derive-1.0.195.tar.gz': '46fe8f8603d81ba86327b23a2e9cdf49e1255fb94a4c5f297f6ee0547178ea2c'},
+ {'serde_json-1.0.111.tar.gz': '176e46fa42316f18edd598015a5166857fc835ec732f5215eac6b7bdbf0a84f4'},
+ {'serde_urlencoded-0.7.1.tar.gz': 'd3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd'},
+ {'serial_test-2.0.0.tar.gz': '0e56dd856803e253c8f298af3f4d7eb0ae5e23a737252cd90bb4f3b435033b2d'},
+ {'serial_test_derive-2.0.0.tar.gz': '91d129178576168c589c9ec973feedf7d3126c01ac2bf08795109aa35b69fb8f'},
+ {'sha2-0.9.9.tar.gz': '4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800'},
+ {'sha2-0.10.8.tar.gz': '793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8'},
+ {'shlex-1.2.0.tar.gz': 'a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380'},
+ {'signal-hook-registry-1.4.1.tar.gz': 'd8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1'},
+ {'siphasher-0.3.11.tar.gz': '38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d'},
+ {'slab-0.4.9.tar.gz': '8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67'},
+ {'smallvec-1.11.2.tar.gz': '4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970'},
+ {'snafu-0.7.5.tar.gz': 'e4de37ad025c587a29e8f3f5605c00f70b98715ef90b9061a815b9e59e9042d6'},
+ {'snafu-derive-0.7.5.tar.gz': '990079665f075b699031e9c08fd3ab99be5029b96f3b78dc0709e8f77e4efebf'},
+ {'snap-1.1.1.tar.gz': '1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b'},
+ {'socket2-0.5.5.tar.gz': '7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9'},
+ {'spin-0.5.2.tar.gz': '6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d'},
+ {'spin-0.9.8.tar.gz': '6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67'},
+ {'sqlparser-0.40.0.tar.gz': '7c80afe31cdb649e56c0d9bb5503be9166600d68a852c38dd445636d126858e5'},
+ {'sqlparser_derive-0.2.2.tar.gz': '01b2e185515564f15375f593fb966b5718bc624ba77fe49fa4616ad619690554'},
+ {'static_assertions-1.1.0.tar.gz': 'a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f'},
+ {'strum-0.25.0.tar.gz': '290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125'},
+ {'strum_macros-0.25.3.tar.gz': '23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0'},
+ {'subtle-2.4.1.tar.gz': '6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601'},
+ {'syn-1.0.109.tar.gz': '72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237'},
+ {'syn-2.0.48.tar.gz': '0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f'},
+ {'system-configuration-0.5.1.tar.gz': 'ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7'},
+ {'system-configuration-sys-0.5.0.tar.gz': 'a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9'},
+ {'target-lexicon-0.12.13.tar.gz': '69758bda2e78f098e4ccb393021a0963bb3442eac05f135c30f61b7370bbafae'},
+ {'tempfile-3.9.0.tar.gz': '01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa'},
+ {'termcolor-1.4.0.tar.gz': 'ff1bc3d3f05aff0403e8ac0d92ced918ec05b666a43f83297ccef5bea8a3d449'},
+ {'thiserror-1.0.56.tar.gz': 'd54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad'},
+ {'thiserror-impl-1.0.56.tar.gz': 'fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471'},
+ {'thrift-0.17.0.tar.gz': '7e54bc85fc7faa8bc175c4bab5b92ba8d9a3ce893d0e9f42cc455c8ab16a9e09'},
+ {'time-0.3.31.tar.gz': 'f657ba42c3f86e7680e53c8cd3af8abbe56b5491790b46e22e19c0d57463583e'},
+ {'time-core-0.1.2.tar.gz': 'ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3'},
+ {'time-macros-0.2.16.tar.gz': '26197e33420244aeb70c3e8c78376ca46571bc4e701e4791c2cd9f57dcb3a43f'},
+ {'tiny-keccak-2.0.2.tar.gz': '2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237'},
+ {'tinytemplate-1.2.1.tar.gz': 'be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc'},
+ {'tinyvec-1.6.0.tar.gz': '87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50'},
+ {'tinyvec_macros-0.1.1.tar.gz': '1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20'},
+ {'tokio-1.35.1.tar.gz': 'c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104'},
+ {'tokio-macros-2.2.0.tar.gz': '5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b'},
+ {'tokio-native-tls-0.3.1.tar.gz': 'bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2'},
+ {'tokio-rustls-0.22.0.tar.gz': 'bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6'},
+ {'tokio-rustls-0.24.1.tar.gz': 'c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081'},
+ {'tokio-util-0.7.10.tar.gz': '5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15'},
+ {'tower-service-0.3.2.tar.gz': 'b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52'},
+ {'tracing-0.1.40.tar.gz': 'c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef'},
+ {'tracing-attributes-0.1.27.tar.gz': '34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7'},
+ {'tracing-core-0.1.32.tar.gz': 'c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54'},
+ {'try-lock-0.2.5.tar.gz': 'e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b'},
+ {'twox-hash-1.6.3.tar.gz': '97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675'},
+ {'typenum-1.17.0.tar.gz': '42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825'},
+ {'unicode-bidi-0.3.14.tar.gz': '6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416'},
+ {'unicode-ident-1.0.12.tar.gz': '3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b'},
+ {'unicode-normalization-0.1.22.tar.gz': '5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921'},
+ {'unicode-segmentation-1.10.1.tar.gz': '1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36'},
+ {'unicode-width-0.1.11.tar.gz': 'e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85'},
+ {'unindent-0.2.3.tar.gz': 'c7de7d73e1754487cb58364ee906a499937a0dfabd86bcb980fa99ec8c8fa2ce'},
+ {'untrusted-0.7.1.tar.gz': 'a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a'},
+ {'untrusted-0.9.0.tar.gz': '8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1'},
+ {'url-2.5.0.tar.gz': '31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633'},
+ {'urlencoding-2.1.3.tar.gz': 'daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da'},
+ {'utime-0.3.1.tar.gz': '91baa0c65eabd12fcbdac8cc35ff16159cab95cae96d0222d6d0271db6193cef'},
+ {'uuid-1.6.1.tar.gz': '5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560'},
+ {'vcpkg-0.2.15.tar.gz': 'accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426'},
+ {'version_check-0.9.4.tar.gz': '49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f'},
+ {'vsimd-0.8.0.tar.gz': '5c3082ca00d5a5ef149bb8b555a72ae84c9c59f7250f013ac822ac2e49b19c64'},
+ {'walkdir-2.4.0.tar.gz': 'd71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee'},
+ {'want-0.3.1.tar.gz': 'bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e'},
+ {'wasi-0.11.0+wasi-snapshot-preview1.tar.gz': '9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423'},
+ {'wasm-bindgen-0.2.89.tar.gz': '0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e'},
+ {'wasm-bindgen-backend-0.2.89.tar.gz': '1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826'},
+ {'wasm-bindgen-futures-0.4.39.tar.gz': 'ac36a15a220124ac510204aec1c3e5db8a22ab06fd6706d881dc6149f8ed9a12'},
+ {'wasm-bindgen-macro-0.2.89.tar.gz': '0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2'},
+ {'wasm-bindgen-macro-support-0.2.89.tar.gz': 'f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283'},
+ {'wasm-bindgen-shared-0.2.89.tar.gz': '7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f'},
+ {'wasm-streams-0.3.0.tar.gz': 'b4609d447824375f43e1ffbc051b50ad8f4b3ae8219680c94452ea05eb240ac7'},
+ {'web-sys-0.3.66.tar.gz': '50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f'},
+ {'webpki-0.21.4.tar.gz': 'b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea'},
+ {'webpki-roots-0.25.3.tar.gz': '1778a42e8b3b90bff8d0f5032bf22250792889a5cdc752aa0020c84abe3aaf10'},
+ {'winapi-0.3.9.tar.gz': '5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419'},
+ {'winapi-i686-pc-windows-gnu-0.4.0.tar.gz': 'ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6'},
+ {'winapi-util-0.1.6.tar.gz': 'f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596'},
+ {'winapi-x86_64-pc-windows-gnu-0.4.0.tar.gz': '712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f'},
+ {'windows-core-0.52.0.tar.gz': '33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9'},
+ {'windows-sys-0.48.0.tar.gz': '677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9'},
+ {'windows-sys-0.52.0.tar.gz': '282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d'},
+ {'windows-targets-0.48.5.tar.gz': '9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c'},
+ {'windows-targets-0.52.0.tar.gz': '8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd'},
+ {'windows_aarch64_gnullvm-0.48.5.tar.gz': '2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8'},
+ {'windows_aarch64_gnullvm-0.52.0.tar.gz': 'cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea'},
+ {'windows_aarch64_msvc-0.48.5.tar.gz': 'dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc'},
+ {'windows_aarch64_msvc-0.52.0.tar.gz': 'bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef'},
+ {'windows_i686_gnu-0.48.5.tar.gz': 'a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e'},
+ {'windows_i686_gnu-0.52.0.tar.gz': 'a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313'},
+ {'windows_i686_msvc-0.48.5.tar.gz': '8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406'},
+ {'windows_i686_msvc-0.52.0.tar.gz': 'ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a'},
+ {'windows_x86_64_gnu-0.48.5.tar.gz': '53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e'},
+ {'windows_x86_64_gnu-0.52.0.tar.gz': '3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd'},
+ {'windows_x86_64_gnullvm-0.48.5.tar.gz': '0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc'},
+ {'windows_x86_64_gnullvm-0.52.0.tar.gz': '1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e'},
+ {'windows_x86_64_msvc-0.48.5.tar.gz': 'ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538'},
+ {'windows_x86_64_msvc-0.52.0.tar.gz': 'dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04'},
+ {'winreg-0.50.0.tar.gz': '524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1'},
+ {'xml-rs-0.8.19.tar.gz': '0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a'},
+ {'xmlparser-0.13.6.tar.gz': '66fee0b777b0f5ac1c69bb06d361268faafa61cd4682ae064a171c16c433e9e4'},
+ {'xz2-0.1.7.tar.gz': '388c44dc09d76f1536602ead6d325eb532f5c122f17782bd57fb47baeeb767e2'},
+ {'yansi-0.5.1.tar.gz': '09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec'},
+ {'z85-3.0.5.tar.gz': '2a599daf1b507819c1121f0bf87fa37eb19daac6aff3aefefd4e6e2e0f2020fc'},
+ {'zerocopy-0.7.32.tar.gz': '74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be'},
+ {'zerocopy-derive-0.7.32.tar.gz': '9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6'},
+ {'zeroize-1.7.0.tar.gz': '525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d'},
+ {'zstd-0.13.0.tar.gz': 'bffb3309596d527cfcba7dfc6ed6052f1d39dfbd7c867aa2e865e4a449c10110'},
+ {'zstd-safe-7.0.0.tar.gz': '43747c7422e2924c11144d5229878b98180ef8b06cca4ab5af37afc8a8d8ea3e'},
+ {'zstd-sys-2.0.9+zstd.1.5.5.tar.gz': '9e16efa8a874a0481a574084d34cc26fdb3b99627480f785888deb6386506656'},
+ {'DeltaLake-0.15.1_remove-obsolete-pyarrow-hotfix.patch':
+ 'd4f06aa704c9ae8af72f119550145513a85d851214a8c09bbcaca7a3685613c4'},
+]
+
+crates = [
+ ('addr2line', '0.21.0'),
+ ('adler', '1.0.2'),
+ ('ahash', '0.8.7'),
+ ('aho-corasick', '1.1.2'),
+ ('alloc-no-stdlib', '2.0.4'),
+ ('alloc-stdlib', '0.2.2'),
+ ('allocator-api2', '0.2.16'),
+ ('android-tzdata', '0.1.1'),
+ ('android_system_properties', '0.1.5'),
+ ('anes', '0.1.6'),
+ ('anstyle', '1.0.4'),
+ ('anyhow', '1.0.79'),
+ ('arrayref', '0.3.7'),
+ ('arrayvec', '0.7.4'),
+ ('arrow', '49.0.0'),
+ ('arrow-arith', '49.0.0'),
+ ('arrow-array', '49.0.0'),
+ ('arrow-buffer', '49.0.0'),
+ ('arrow-cast', '49.0.0'),
+ ('arrow-csv', '49.0.0'),
+ ('arrow-data', '49.0.0'),
+ ('arrow-ipc', '49.0.0'),
+ ('arrow-json', '49.0.0'),
+ ('arrow-ord', '49.0.0'),
+ ('arrow-row', '49.0.0'),
+ ('arrow-schema', '49.0.0'),
+ ('arrow-select', '49.0.0'),
+ ('arrow-string', '49.0.0'),
+ ('async-compression', '0.4.5'),
+ ('async-trait', '0.1.77'),
+ ('autocfg', '1.1.0'),
+ ('aws-config', '1.1.1'),
+ ('aws-credential-types', '1.1.1'),
+ ('aws-http', '0.60.1'),
+ ('aws-runtime', '1.1.1'),
+ ('aws-sdk-glue', '1.11.0'),
+ ('aws-sdk-sso', '1.9.0'),
+ ('aws-sdk-ssooidc', '1.9.0'),
+ ('aws-sdk-sts', '1.9.0'),
+ ('aws-sigv4', '1.1.1'),
+ ('aws-smithy-async', '1.1.1'),
+ ('aws-smithy-http', '0.60.1'),
+ ('aws-smithy-json', '0.60.1'),
+ ('aws-smithy-query', '0.60.1'),
+ ('aws-smithy-runtime', '1.1.1'),
+ ('aws-smithy-runtime-api', '1.1.1'),
+ ('aws-smithy-types', '1.1.1'),
+ ('aws-smithy-xml', '0.60.1'),
+ ('aws-types', '1.1.1'),
+ ('backoff', '0.4.0'),
+ ('backtrace', '0.3.69'),
+ ('base64', '0.13.1'),
+ ('base64', '0.21.5'),
+ ('base64-simd', '0.8.0'),
+ ('bitflags', '1.3.2'),
+ ('bitflags', '2.4.1'),
+ ('blake2', '0.10.6'),
+ ('blake3', '1.5.0'),
+ ('block-buffer', '0.9.0'),
+ ('block-buffer', '0.10.4'),
+ ('brotli', '3.4.0'),
+ ('brotli-decompressor', '2.5.1'),
+ ('bumpalo', '3.14.0'),
+ ('bytemuck', '1.14.0'),
+ ('byteorder', '1.5.0'),
+ ('bytes', '1.5.0'),
+ ('bytes-utils', '0.1.4'),
+ ('bzip2', '0.4.4'),
+ ('bzip2-sys', '0.1.11+1.0.8'),
+ ('cast', '0.3.0'),
+ ('cc', '1.0.83'),
+ ('cfg-if', '1.0.0'),
+ ('chrono', '0.4.31'),
+ ('chrono-tz', '0.8.5'),
+ ('chrono-tz-build', '0.2.1'),
+ ('ciborium', '0.2.1'),
+ ('ciborium-io', '0.2.1'),
+ ('ciborium-ll', '0.2.1'),
+ ('clap', '4.4.13'),
+ ('clap_builder', '4.4.12'),
+ ('clap_lex', '0.6.0'),
+ ('comfy-table', '7.1.0'),
+ ('const-random', '0.1.17'),
+ ('const-random-macro', '0.1.16'),
+ ('constant_time_eq', '0.3.0'),
+ ('core-foundation', '0.9.4'),
+ ('core-foundation-sys', '0.8.6'),
+ ('cpufeatures', '0.2.12'),
+ ('crc32fast', '1.3.2'),
+ ('criterion', '0.5.1'),
+ ('criterion-plot', '0.5.0'),
+ ('crossbeam-deque', '0.8.4'),
+ ('crossbeam-epoch', '0.9.17'),
+ ('crossbeam-utils', '0.8.18'),
+ ('crunchy', '0.2.2'),
+ ('crypto-common', '0.1.6'),
+ ('crypto-mac', '0.11.1'),
+ ('csv', '1.3.0'),
+ ('csv-core', '0.1.11'),
+ ('ct-logs', '0.8.0'),
+ ('ctor', '0.2.6'),
+ ('dashmap', '5.5.3'),
+ ('datafusion', '34.0.0'),
+ ('datafusion-common', '34.0.0'),
+ ('datafusion-execution', '34.0.0'),
+ ('datafusion-expr', '34.0.0'),
+ ('datafusion-optimizer', '34.0.0'),
+ ('datafusion-physical-expr', '34.0.0'),
+ ('datafusion-physical-plan', '34.0.0'),
+ ('datafusion-proto', '34.0.0'),
+ ('datafusion-sql', '34.0.0'),
+ ('deranged', '0.3.11'),
+ ('diff', '0.1.13'),
+ ('digest', '0.9.0'),
+ ('digest', '0.10.7'),
+ ('dirs-next', '2.0.0'),
+ ('dirs-sys-next', '0.1.2'),
+ ('doc-comment', '0.3.3'),
+ ('dotenvy', '0.15.7'),
+ ('either', '1.9.0'),
+ ('encoding_rs', '0.8.33'),
+ ('env_logger', '0.10.1'),
+ ('equivalent', '1.0.1'),
+ ('errno', '0.3.8'),
+ ('fastrand', '2.0.1'),
+ ('fix-hidden-lifetime-bug', '0.2.5'),
+ ('fix-hidden-lifetime-bug-proc_macros', '0.2.5'),
+ ('fixedbitset', '0.4.2'),
+ ('flatbuffers', '23.5.26'),
+ ('flate2', '1.0.28'),
+ ('fnv', '1.0.7'),
+ ('foreign-types', '0.3.2'),
+ ('foreign-types-shared', '0.1.1'),
+ ('form_urlencoded', '1.2.1'),
+ ('fs_extra', '1.3.0'),
+ ('futures', '0.3.30'),
+ ('futures-channel', '0.3.30'),
+ ('futures-core', '0.3.30'),
+ ('futures-executor', '0.3.30'),
+ ('futures-io', '0.3.30'),
+ ('futures-macro', '0.3.30'),
+ ('futures-sink', '0.3.30'),
+ ('futures-task', '0.3.30'),
+ ('futures-util', '0.3.30'),
+ ('generic-array', '0.14.7'),
+ ('getrandom', '0.2.11'),
+ ('gimli', '0.28.1'),
+ ('glob', '0.3.1'),
+ ('h2', '0.3.22'),
+ ('half', '1.8.2'),
+ ('half', '2.3.1'),
+ ('hashbrown', '0.14.3'),
+ ('heck', '0.4.1'),
+ ('hermit-abi', '0.3.3'),
+ ('hex', '0.4.3'),
+ ('hmac', '0.11.0'),
+ ('hmac', '0.12.1'),
+ ('http', '0.2.11'),
+ ('http-body', '0.4.6'),
+ ('httparse', '1.8.0'),
+ ('httpdate', '1.0.3'),
+ ('humantime', '2.1.0'),
+ ('hyper', '0.14.28'),
+ ('hyper-rustls', '0.22.1'),
+ ('hyper-rustls', '0.24.2'),
+ ('hyper-tls', '0.5.0'),
+ ('iana-time-zone', '0.1.59'),
+ ('iana-time-zone-haiku', '0.1.2'),
+ ('idna', '0.5.0'),
+ ('indexmap', '2.1.0'),
+ ('indoc', '2.0.4'),
+ ('instant', '0.1.12'),
+ ('integer-encoding', '3.0.4'),
+ ('ipnet', '2.9.0'),
+ ('is-terminal', '0.4.10'),
+ ('itertools', '0.10.5'),
+ ('itertools', '0.11.0'),
+ ('itertools', '0.12.0'),
+ ('itoa', '1.0.10'),
+ ('jobserver', '0.1.27'),
+ ('js-sys', '0.3.66'),
+ ('lazy_static', '1.4.0'),
+ ('lexical-core', '0.8.5'),
+ ('lexical-parse-float', '0.8.5'),
+ ('lexical-parse-integer', '0.8.6'),
+ ('lexical-util', '0.8.5'),
+ ('lexical-write-float', '0.8.5'),
+ ('lexical-write-integer', '0.8.5'),
+ ('libc', '0.2.152'),
+ ('libm', '0.2.8'),
+ ('libredox', '0.0.1'),
+ ('linux-raw-sys', '0.4.12'),
+ ('lock_api', '0.4.11'),
+ ('log', '0.4.20'),
+ ('lz4_flex', '0.11.1'),
+ ('lzma-sys', '0.1.20'),
+ ('maplit', '1.0.2'),
+ ('md-5', '0.9.1'),
+ ('md-5', '0.10.6'),
+ ('memchr', '2.7.1'),
+ ('memoffset', '0.9.0'),
+ ('mime', '0.3.17'),
+ ('miniz_oxide', '0.7.1'),
+ ('mio', '0.8.10'),
+ ('native-tls', '0.2.11'),
+ ('num', '0.4.1'),
+ ('num-bigint', '0.4.4'),
+ ('num-complex', '0.4.4'),
+ ('num-integer', '0.1.45'),
+ ('num-iter', '0.1.43'),
+ ('num-rational', '0.4.1'),
+ ('num-traits', '0.2.17'),
+ ('num_cpus', '1.16.0'),
+ ('object', '0.32.2'),
+ ('object_store', '0.8.0'),
+ ('once_cell', '1.19.0'),
+ ('oorandom', '11.1.3'),
+ ('opaque-debug', '0.3.0'),
+ ('openssl', '0.10.62'),
+ ('openssl-macros', '0.1.1'),
+ ('openssl-probe', '0.1.5'),
+ ('openssl-src', '300.2.1+3.2.0'),
+ ('openssl-sys', '0.9.98'),
+ ('ordered-float', '2.10.1'),
+ ('outref', '0.5.1'),
+ ('parking_lot', '0.12.1'),
+ ('parking_lot_core', '0.9.9'),
+ ('parquet', '49.0.0'),
+ ('parse-zoneinfo', '0.3.0'),
+ ('paste', '1.0.14'),
+ ('percent-encoding', '2.3.1'),
+ ('petgraph', '0.6.4'),
+ ('phf', '0.11.2'),
+ ('phf_codegen', '0.11.2'),
+ ('phf_generator', '0.11.2'),
+ ('phf_shared', '0.11.2'),
+ ('pin-project-lite', '0.2.13'),
+ ('pin-utils', '0.1.0'),
+ ('pkg-config', '0.3.28'),
+ ('plotters', '0.3.5'),
+ ('plotters-backend', '0.3.5'),
+ ('plotters-svg', '0.3.5'),
+ ('powerfmt', '0.2.0'),
+ ('ppv-lite86', '0.2.17'),
+ ('pretty_assertions', '1.4.0'),
+ ('pretty_env_logger', '0.5.0'),
+ ('proc-macro2', '1.0.76'),
+ ('prost', '0.12.3'),
+ ('prost-derive', '0.12.3'),
+ ('pyo3', '0.20.2'),
+ ('pyo3-build-config', '0.20.2'),
+ ('pyo3-ffi', '0.20.2'),
+ ('pyo3-macros', '0.20.2'),
+ ('pyo3-macros-backend', '0.20.2'),
+ ('quick-xml', '0.31.0'),
+ ('quote', '1.0.35'),
+ ('rand', '0.8.5'),
+ ('rand_chacha', '0.3.1'),
+ ('rand_core', '0.6.4'),
+ ('rayon', '1.8.0'),
+ ('rayon-core', '1.12.0'),
+ ('redox_syscall', '0.4.1'),
+ ('redox_users', '0.4.4'),
+ ('regex', '1.10.2'),
+ ('regex-automata', '0.4.3'),
+ ('regex-lite', '0.1.5'),
+ ('regex-syntax', '0.8.2'),
+ ('reqwest', '0.11.23'),
+ ('retain_mut', '0.1.7'),
+ ('ring', '0.16.20'),
+ ('ring', '0.17.7'),
+ ('roaring', '0.10.2'),
+ ('rusoto_core', '0.47.0'),
+ ('rusoto_credential', '0.47.0'),
+ ('rusoto_dynamodb', '0.47.0'),
+ ('rusoto_signature', '0.47.0'),
+ ('rusoto_sts', '0.47.0'),
+ ('rustc-demangle', '0.1.23'),
+ ('rustc_version', '0.4.0'),
+ ('rustix', '0.38.28'),
+ ('rustls', '0.19.1'),
+ ('rustls', '0.21.10'),
+ ('rustls-native-certs', '0.5.0'),
+ ('rustls-native-certs', '0.6.3'),
+ ('rustls-pemfile', '1.0.4'),
+ ('rustls-webpki', '0.101.7'),
+ ('rustversion', '1.0.14'),
+ ('ryu', '1.0.16'),
+ ('same-file', '1.0.6'),
+ ('schannel', '0.1.23'),
+ ('scopeguard', '1.2.0'),
+ ('sct', '0.6.1'),
+ ('sct', '0.7.1'),
+ ('security-framework', '2.9.2'),
+ ('security-framework-sys', '2.9.1'),
+ ('semver', '1.0.21'),
+ ('seq-macro', '0.3.5'),
+ ('serde', '1.0.195'),
+ ('serde_derive', '1.0.195'),
+ ('serde_json', '1.0.111'),
+ ('serde_urlencoded', '0.7.1'),
+ ('serial_test', '2.0.0'),
+ ('serial_test_derive', '2.0.0'),
+ ('sha2', '0.9.9'),
+ ('sha2', '0.10.8'),
+ ('shlex', '1.2.0'),
+ ('signal-hook-registry', '1.4.1'),
+ ('siphasher', '0.3.11'),
+ ('slab', '0.4.9'),
+ ('smallvec', '1.11.2'),
+ ('snafu', '0.7.5'),
+ ('snafu-derive', '0.7.5'),
+ ('snap', '1.1.1'),
+ ('socket2', '0.5.5'),
+ ('spin', '0.5.2'),
+ ('spin', '0.9.8'),
+ ('sqlparser', '0.40.0'),
+ ('sqlparser_derive', '0.2.2'),
+ ('static_assertions', '1.1.0'),
+ ('strum', '0.25.0'),
+ ('strum_macros', '0.25.3'),
+ ('subtle', '2.4.1'),
+ ('syn', '1.0.109'),
+ ('syn', '2.0.48'),
+ ('system-configuration', '0.5.1'),
+ ('system-configuration-sys', '0.5.0'),
+ ('target-lexicon', '0.12.13'),
+ ('tempfile', '3.9.0'),
+ ('termcolor', '1.4.0'),
+ ('thiserror', '1.0.56'),
+ ('thiserror-impl', '1.0.56'),
+ ('thrift', '0.17.0'),
+ ('time', '0.3.31'),
+ ('time-core', '0.1.2'),
+ ('time-macros', '0.2.16'),
+ ('tiny-keccak', '2.0.2'),
+ ('tinytemplate', '1.2.1'),
+ ('tinyvec', '1.6.0'),
+ ('tinyvec_macros', '0.1.1'),
+ ('tokio', '1.35.1'),
+ ('tokio-macros', '2.2.0'),
+ ('tokio-native-tls', '0.3.1'),
+ ('tokio-rustls', '0.22.0'),
+ ('tokio-rustls', '0.24.1'),
+ ('tokio-util', '0.7.10'),
+ ('tower-service', '0.3.2'),
+ ('tracing', '0.1.40'),
+ ('tracing-attributes', '0.1.27'),
+ ('tracing-core', '0.1.32'),
+ ('try-lock', '0.2.5'),
+ ('twox-hash', '1.6.3'),
+ ('typenum', '1.17.0'),
+ ('unicode-bidi', '0.3.14'),
+ ('unicode-ident', '1.0.12'),
+ ('unicode-normalization', '0.1.22'),
+ ('unicode-segmentation', '1.10.1'),
+ ('unicode-width', '0.1.11'),
+ ('unindent', '0.2.3'),
+ ('untrusted', '0.7.1'),
+ ('untrusted', '0.9.0'),
+ ('url', '2.5.0'),
+ ('urlencoding', '2.1.3'),
+ ('utime', '0.3.1'),
+ ('uuid', '1.6.1'),
+ ('vcpkg', '0.2.15'),
+ ('version_check', '0.9.4'),
+ ('vsimd', '0.8.0'),
+ ('walkdir', '2.4.0'),
+ ('want', '0.3.1'),
+ ('wasi', '0.11.0+wasi-snapshot-preview1'),
+ ('wasm-bindgen', '0.2.89'),
+ ('wasm-bindgen-backend', '0.2.89'),
+ ('wasm-bindgen-futures', '0.4.39'),
+ ('wasm-bindgen-macro', '0.2.89'),
+ ('wasm-bindgen-macro-support', '0.2.89'),
+ ('wasm-bindgen-shared', '0.2.89'),
+ ('wasm-streams', '0.3.0'),
+ ('web-sys', '0.3.66'),
+ ('webpki', '0.21.4'),
+ ('webpki-roots', '0.25.3'),
+ ('winapi', '0.3.9'),
+ ('winapi-i686-pc-windows-gnu', '0.4.0'),
+ ('winapi-util', '0.1.6'),
+ ('winapi-x86_64-pc-windows-gnu', '0.4.0'),
+ ('windows-core', '0.52.0'),
+ ('windows-sys', '0.48.0'),
+ ('windows-sys', '0.52.0'),
+ ('windows-targets', '0.48.5'),
+ ('windows-targets', '0.52.0'),
+ ('windows_aarch64_gnullvm', '0.48.5'),
+ ('windows_aarch64_gnullvm', '0.52.0'),
+ ('windows_aarch64_msvc', '0.48.5'),
+ ('windows_aarch64_msvc', '0.52.0'),
+ ('windows_i686_gnu', '0.48.5'),
+ ('windows_i686_gnu', '0.52.0'),
+ ('windows_i686_msvc', '0.48.5'),
+ ('windows_i686_msvc', '0.52.0'),
+ ('windows_x86_64_gnu', '0.48.5'),
+ ('windows_x86_64_gnu', '0.52.0'),
+ ('windows_x86_64_gnullvm', '0.48.5'),
+ ('windows_x86_64_gnullvm', '0.52.0'),
+ ('windows_x86_64_msvc', '0.48.5'),
+ ('windows_x86_64_msvc', '0.52.0'),
+ ('winreg', '0.50.0'),
+ ('xml-rs', '0.8.19'),
+ ('xmlparser', '0.13.6'),
+ ('xz2', '0.1.7'),
+ ('yansi', '0.5.1'),
+ ('z85', '3.0.5'),
+ ('zerocopy', '0.7.32'),
+ ('zerocopy-derive', '0.7.32'),
+ ('zeroize', '1.7.0'),
+ ('zstd', '0.13.0'),
+ ('zstd-safe', '7.0.0'),
+ ('zstd-sys', '2.0.9+zstd.1.5.5'),
+]
+
+builddependencies = [
+ ('maturin', '1.4.0', '-Rust-1.75.0'),
+ ('Perl', '5.36.1'), # needed by crate openssl-sys
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('Arrow', '14.0.1'),
+]
+
+use_pip = True
+use_pip_extras = "pandas"
+sanity_pip_check = True
+download_dep_fail = True
+
+moduleclass = 'data'
diff --git a/easybuild/easyconfigs/d/DeltaLake/DeltaLake-0.15.1_remove-obsolete-pyarrow-hotfix.patch b/easybuild/easyconfigs/d/DeltaLake/DeltaLake-0.15.1_remove-obsolete-pyarrow-hotfix.patch
new file mode 100644
index 00000000000..89e3f66ddea
--- /dev/null
+++ b/easybuild/easyconfigs/d/DeltaLake/DeltaLake-0.15.1_remove-obsolete-pyarrow-hotfix.patch
@@ -0,0 +1,43 @@
+Security vulnerability CVE-2023-47248 is already fixed upstream since Arrow 14.0.1
+see https://github.com/pitrou/pyarrow-hotfix?tab=readme-ov-file#description
+author: Alex Domingo (Vrije Universiteit Brussel)
+--- PKG-INFO.orig 2024-01-31 10:24:17.114114000 +0100
++++ PKG-INFO 2024-01-31 10:22:43.428088000 +0100
+@@ -8,7 +8,6 @@
+ Classifier: Programming Language :: Python :: 3.11
+ Classifier: Programming Language :: Python :: 3.12
+ Requires-Dist: pyarrow >=8
+-Requires-Dist: pyarrow-hotfix
+ Requires-Dist: pandas ; extra == 'pandas'
+ Requires-Dist: mypy ; extra == 'devel'
+ Requires-Dist: ruff >=0.1.5 ; extra == 'devel'
+--- pyproject.toml.orig 2024-01-31 10:24:37.004732357 +0100
++++ pyproject.toml 2024-01-31 01:13:56.729671621 +0100
+@@ -19,7 +19,6 @@
+ ]
+ dependencies = [
+ "pyarrow>=8",
+- "pyarrow-hotfix",
+ ]
+
+ [project.optional-dependencies]
+--- deltalake/table.py.orig 2024-01-31 10:25:17.340707000 +0100
++++ deltalake/table.py 2024-01-31 10:22:13.865436632 +0100
+@@ -25,7 +25,6 @@
+ import pyarrow
+ import pyarrow.dataset as ds
+ import pyarrow.fs as pa_fs
+-import pyarrow_hotfix # noqa: F401; addresses CVE-2023-47248; # type: ignore
+ from pyarrow.dataset import (
+ Expression,
+ FileSystemDataset,
+--- python/deltalake/table.py.orig 2024-01-31 10:25:28.723000000 +0100
++++ python/deltalake/table.py 2024-01-31 10:22:00.855595977 +0100
+@@ -25,7 +25,6 @@
+ import pyarrow
+ import pyarrow.dataset as ds
+ import pyarrow.fs as pa_fs
+-import pyarrow_hotfix # noqa: F401; addresses CVE-2023-47248; # type: ignore
+ from pyarrow.dataset import (
+ Expression,
+ FileSystemDataset,
diff --git a/easybuild/easyconfigs/d/DendroPy/DendroPy-4.6.1-GCCcore-12.3.0.eb b/easybuild/easyconfigs/d/DendroPy/DendroPy-4.6.1-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..1241b1fec41
--- /dev/null
+++ b/easybuild/easyconfigs/d/DendroPy/DendroPy-4.6.1-GCCcore-12.3.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.6.1'
+
+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.3.0'}
+
+sources = [SOURCE_TAR_GZ]
+checksums = ['26fcbe1cb5831301e8f1f2e15a0563620f0b8e29e6d409dd6a2a7c957dd64c16']
+
+builddependencies = [('binutils', '2.40')]
+
+dependencies = [('Python', '3.11.3')]
+
+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/Deprecated/Deprecated-1.2.14-foss-2023a.eb b/easybuild/easyconfigs/d/Deprecated/Deprecated-1.2.14-foss-2023a.eb
new file mode 100644
index 00000000000..803a1996c30
--- /dev/null
+++ b/easybuild/easyconfigs/d/Deprecated/Deprecated-1.2.14-foss-2023a.eb
@@ -0,0 +1,29 @@
+# author: Denis Kristak (INUITS)
+# update: Pavel Tománek (INUITS)
+
+easyblock = 'PythonBundle'
+
+name = 'Deprecated'
+version = '1.2.14'
+
+homepage = 'https://github.com/tantale/deprecated'
+description = "If you need to mark a function or a method as deprecated, you can use the @deprecated decorator."
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('wrapt', '1.15.0'),
+]
+
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ (name, version, {
+ 'checksums': ['e5323eb936458dccc2582dc6f9c322c852a775a27065ff2b0c4970b9d53d01b3'],
+ }),
+]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/d/Dice/Dice-20240702-foss-2023a.eb b/easybuild/easyconfigs/d/Dice/Dice-20240702-foss-2023a.eb
new file mode 100644
index 00000000000..56756b3f99f
--- /dev/null
+++ b/easybuild/easyconfigs/d/Dice/Dice-20240702-foss-2023a.eb
@@ -0,0 +1,51 @@
+easyblock = 'MakeCp'
+
+name = 'Dice'
+version = '20240702'
+_commit = '0f52b62'
+
+homepage = 'https://github.com/sanshar/Dice'
+description = """Dice contains code for performing SHCI, VMC, GFMC, DMC, FCIQMC, stochastic MRCI
+and SC-NEVPT2, and AFQMC calculations with a focus on ab initio systems."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'cstd': 'c++14', 'pic': True}
+
+github_account = 'sanshar'
+source_urls = [GITHUB_SOURCE]
+sources = [{'download_filename': '%s.tar.gz' % _commit, 'filename': SOURCE_TAR_GZ}]
+patches = ['Dice-20240101_deprecated-global-placeholders.patch']
+checksums = [
+ {'Dice-20240702.tar.gz': '3fe36938642ebf7886231290655c1a2d1fdd256e2bc7e9375669c574c406fc23'},
+ {'Dice-20240101_deprecated-global-placeholders.patch':
+ 'fbf4037e928a57e737faed95dc7d6e1e5cdb8cee8db48503268d250a34c12ccc'},
+]
+
+builddependencies = [
+ ('Eigen', '3.4.0'),
+ ('git', '2.41.0', '-nodocs'),
+]
+
+dependencies = [
+ ('Boost.MPI', '1.82.0'),
+ ('HDF5', '1.14.0'),
+]
+
+# Use build environment defined by EB
+prebuildopts = "sed -i 's/^FLAGS_BASE =.*/FLAGS_BASE=$(CXXFLAGS) -g -w -I. $(CPPFLAGS)/' Makefile && "
+buildopts = 'CXX="$MPICXX" USE_INTEL="no" HAS_AVX2="no" ' # avoid changes to -march
+buildopts += 'INCLUDE_MKL="-I${EBROOTFLEXIBLAS}/include" LIB_MKL="${LIBBLAS}" ' # use FlexiBLAS
+buildopts += 'GIT_BRANCH="master" GIT_HASH="%s"' % _commit
+buildopts += 'BOOST="${EBROOTBOOSTMPI}" '
+buildopts += 'EIGEN="${EBROOTEIGEN}/include" '
+buildopts += 'HDF5="${EBROOTHDF5}" '
+
+files_to_copy = ['bin']
+
+_binaries = ['Dice', 'DQMC', 'GFMC', 'ICPT', 'VMC', 'ZDice2', 'ZSHCI']
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in _binaries],
+ 'dirs': [],
+}
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/d/DjVuLibre/DjVuLibre-3.5.28-GCCcore-12.3.0.eb b/easybuild/easyconfigs/d/DjVuLibre/DjVuLibre-3.5.28-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..355a9996fbc
--- /dev/null
+++ b/easybuild/easyconfigs/d/DjVuLibre/DjVuLibre-3.5.28-GCCcore-12.3.0.eb
@@ -0,0 +1,43 @@
+# Author: Jasper Grimm (UoY)
+
+easyblock = 'ConfigureMake'
+
+name = 'DjVuLibre'
+version = '3.5.28'
+
+homepage = 'http://djvu.sourceforge.net/'
+description = """
+DjVuLibre is an open source (GPL'ed) implementation of DjVu, including viewers,
+browser plugins, decoders, simple encoders, and utilities.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = ['http://downloads.sourceforge.net/djvu']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['fcd009ea7654fde5a83600eb80757bd3a76998e47d13c66b54c8db849f8f2edc']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('libiconv', '1.17'),
+]
+
+dependencies = [
+ ('libjpeg-turbo', '2.1.5.1'),
+ ('LibTIFF', '4.5.0'),
+]
+
+_bins = ['bin/%s' % x for x in ['any2djvu', 'bzz', 'c44', 'cjb2', 'cpaldjvu', 'csepdjvu', 'ddjvu', 'djvm', 'djvmcvt',
+ 'djvudigital', 'djvudump', 'djvuextract', 'djvumake', 'djvups', 'djvused', 'djvuserve',
+ 'djvutoxml', 'djvutxt', 'djvuxmlparser']]
+_incs = ['include/libdjvu/%s' % x for x in ['ddjvuapi.h', 'miniexp.h']]
+_libs = ['lib/%s' % x for x in ['lib%%(namelower)s.%s' % SHLIB_EXT, 'pkgconfig/ddjvuapi.pc']]
+
+sanity_check_paths = {
+ 'files': _bins + _incs + _libs,
+ 'dirs': [],
+}
+
+sanity_check_commands = ["ddjvu --help 2>&1 | grep 'Usage: ddjvu'"]
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/d/Doxygen/Doxygen-1.11.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/d/Doxygen/Doxygen-1.11.0-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..da8dc7f5808
--- /dev/null
+++ b/easybuild/easyconfigs/d/Doxygen/Doxygen-1.11.0-GCCcore-13.3.0.eb
@@ -0,0 +1,41 @@
+easyblock = 'CMakeMake'
+
+name = 'Doxygen'
+version = '1.11.0'
+
+homepage = 'https://www.doxygen.org'
+description = """
+ Doxygen is a documentation system for C++, C, Java, Objective-C, Python,
+ IDL (Corba and Microsoft flavors), Fortran, VHDL, PHP, C#, and to some
+ extent D.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = [SOURCEFORGE_SOURCE]
+sources = ['%(namelower)s-%(version)s.src.tar.gz']
+checksums = ['c9edfdf8c5f3e8bee0c4c967850caead27099883ee7ff8b11044e6d63faf3607']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('Bison', '3.8.2'),
+ ('CMake', '3.29.3'),
+ ('flex', '2.6.4'),
+ ('pkgconf', '2.2.0'),
+ ('Python', '3.12.3'),
+]
+
+dependencies = [
+ ('libiconv', '1.17'),
+]
+
+configopts = "-DICONV_DIR=$EBROOTLIBICONV -DICONV_IN_GLIBC=OFF"
+
+sanity_check_paths = {
+ 'files': ["bin/doxygen"],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["doxygen --help"]
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/d/Doxygen/Doxygen-1.8.17-GCCcore-9.3.0.eb b/easybuild/easyconfigs/d/Doxygen/Doxygen-1.8.17-GCCcore-9.3.0.eb
index 3d72f0970bd..065a4b2b89a 100644
--- a/easybuild/easyconfigs/d/Doxygen/Doxygen-1.8.17-GCCcore-9.3.0.eb
+++ b/easybuild/easyconfigs/d/Doxygen/Doxygen-1.8.17-GCCcore-9.3.0.eb
@@ -1,3 +1,5 @@
+easyblock = 'CMakeMake'
+
name = 'Doxygen'
version = '1.8.17'
@@ -25,4 +27,11 @@ dependencies = [('libiconv', '1.16')]
configopts = "-DICONV_DIR=$EBROOTLIBICONV -DICONV_IN_GLIBC=OFF"
+sanity_check_paths = {
+ 'files': ["bin/doxygen"],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["doxygen --help"]
+
moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/d/Doxygen/Doxygen-1.8.20-GCCcore-10.2.0.eb b/easybuild/easyconfigs/d/Doxygen/Doxygen-1.8.20-GCCcore-10.2.0.eb
index f972f6c1aab..245da267460 100644
--- a/easybuild/easyconfigs/d/Doxygen/Doxygen-1.8.20-GCCcore-10.2.0.eb
+++ b/easybuild/easyconfigs/d/Doxygen/Doxygen-1.8.20-GCCcore-10.2.0.eb
@@ -1,3 +1,5 @@
+easyblock = 'CMakeMake'
+
name = 'Doxygen'
version = '1.8.20'
@@ -25,4 +27,11 @@ dependencies = [('libiconv', '1.16')]
configopts = "-DICONV_DIR=$EBROOTLIBICONV -DICONV_IN_GLIBC=OFF"
+sanity_check_paths = {
+ 'files': ["bin/doxygen"],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["doxygen --help"]
+
moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/d/Doxygen/Doxygen-1.9.1-GCCcore-10.3.0.eb b/easybuild/easyconfigs/d/Doxygen/Doxygen-1.9.1-GCCcore-10.3.0.eb
index 1601d6a560f..e54e7e928c8 100644
--- a/easybuild/easyconfigs/d/Doxygen/Doxygen-1.9.1-GCCcore-10.3.0.eb
+++ b/easybuild/easyconfigs/d/Doxygen/Doxygen-1.9.1-GCCcore-10.3.0.eb
@@ -1,3 +1,5 @@
+easyblock = 'CMakeMake'
+
name = 'Doxygen'
version = '1.9.1'
@@ -20,9 +22,17 @@ builddependencies = [
('CMake', '3.20.1'),
('flex', '2.6.4'),
('pkg-config', '0.29.2'),
+ ('Python', '3.9.5', '-bare'),
]
dependencies = [('libiconv', '1.16')]
configopts = "-DICONV_DIR=$EBROOTLIBICONV -DICONV_IN_GLIBC=OFF"
+sanity_check_paths = {
+ 'files': ["bin/doxygen"],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["doxygen --help"]
+
moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/d/Doxygen/Doxygen-1.9.1-GCCcore-11.2.0.eb b/easybuild/easyconfigs/d/Doxygen/Doxygen-1.9.1-GCCcore-11.2.0.eb
index 394f61d368a..ac945a27c93 100644
--- a/easybuild/easyconfigs/d/Doxygen/Doxygen-1.9.1-GCCcore-11.2.0.eb
+++ b/easybuild/easyconfigs/d/Doxygen/Doxygen-1.9.1-GCCcore-11.2.0.eb
@@ -1,3 +1,5 @@
+easyblock = 'CMakeMake'
+
name = 'Doxygen'
version = '1.9.1'
@@ -20,9 +22,17 @@ builddependencies = [
('CMake', '3.21.1'),
('flex', '2.6.4'),
('pkg-config', '0.29.2'),
+ ('Python', '3.9.6', '-bare'),
]
dependencies = [('libiconv', '1.16')]
configopts = "-DICONV_DIR=$EBROOTLIBICONV -DICONV_IN_GLIBC=OFF"
+sanity_check_paths = {
+ 'files': ["bin/doxygen"],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["doxygen --help"]
+
moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/d/Doxygen/Doxygen-1.9.4-GCCcore-11.3.0.eb b/easybuild/easyconfigs/d/Doxygen/Doxygen-1.9.4-GCCcore-11.3.0.eb
index b6669466085..55abc873d23 100644
--- a/easybuild/easyconfigs/d/Doxygen/Doxygen-1.9.4-GCCcore-11.3.0.eb
+++ b/easybuild/easyconfigs/d/Doxygen/Doxygen-1.9.4-GCCcore-11.3.0.eb
@@ -1,3 +1,5 @@
+easyblock = 'CMakeMake'
+
name = 'Doxygen'
version = '1.9.4'
@@ -20,6 +22,7 @@ builddependencies = [
('CMake', '3.23.1'),
('flex', '2.6.4'),
('pkgconf', '1.8.0'),
+ ('Python', '3.10.4', '-bare'),
]
dependencies = [
@@ -28,4 +31,11 @@ dependencies = [
configopts = "-DICONV_DIR=$EBROOTLIBICONV -DICONV_IN_GLIBC=OFF"
+sanity_check_paths = {
+ 'files': ["bin/doxygen"],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["doxygen --help"]
+
moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/d/Doxygen/Doxygen-1.9.5-GCCcore-12.2.0.eb b/easybuild/easyconfigs/d/Doxygen/Doxygen-1.9.5-GCCcore-12.2.0.eb
index 35b262f3df8..290047978c1 100644
--- a/easybuild/easyconfigs/d/Doxygen/Doxygen-1.9.5-GCCcore-12.2.0.eb
+++ b/easybuild/easyconfigs/d/Doxygen/Doxygen-1.9.5-GCCcore-12.2.0.eb
@@ -1,3 +1,5 @@
+easyblock = 'CMakeMake'
+
name = 'Doxygen'
version = '1.9.5'
@@ -20,6 +22,7 @@ builddependencies = [
('CMake', '3.24.3'),
('flex', '2.6.4'),
('pkgconf', '1.9.3'),
+ ('Python', '3.10.8', '-bare'),
]
dependencies = [
@@ -28,4 +31,11 @@ dependencies = [
configopts = "-DICONV_DIR=$EBROOTLIBICONV -DICONV_IN_GLIBC=OFF"
+sanity_check_paths = {
+ 'files': ["bin/doxygen"],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["doxygen --help"]
+
moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/d/Doxygen/Doxygen-1.9.7-GCCcore-12.3.0.eb b/easybuild/easyconfigs/d/Doxygen/Doxygen-1.9.7-GCCcore-12.3.0.eb
index 26007e7a823..49b8eccc8d2 100644
--- a/easybuild/easyconfigs/d/Doxygen/Doxygen-1.9.7-GCCcore-12.3.0.eb
+++ b/easybuild/easyconfigs/d/Doxygen/Doxygen-1.9.7-GCCcore-12.3.0.eb
@@ -1,3 +1,5 @@
+easyblock = 'CMakeMake'
+
name = 'Doxygen'
version = '1.9.7'
@@ -20,6 +22,7 @@ builddependencies = [
('CMake', '3.26.3'),
('flex', '2.6.4'),
('pkgconf', '1.9.5'),
+ ('Python', '3.11.3'),
]
dependencies = [
@@ -28,4 +31,11 @@ dependencies = [
configopts = "-DICONV_DIR=$EBROOTLIBICONV -DICONV_IN_GLIBC=OFF"
+sanity_check_paths = {
+ 'files': ["bin/doxygen"],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["doxygen --help"]
+
moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/d/Doxygen/Doxygen-1.9.8-GCCcore-13.2.0.eb b/easybuild/easyconfigs/d/Doxygen/Doxygen-1.9.8-GCCcore-13.2.0.eb
index e6c21e1dd18..1370a8b32bf 100644
--- a/easybuild/easyconfigs/d/Doxygen/Doxygen-1.9.8-GCCcore-13.2.0.eb
+++ b/easybuild/easyconfigs/d/Doxygen/Doxygen-1.9.8-GCCcore-13.2.0.eb
@@ -1,3 +1,5 @@
+easyblock = 'CMakeMake'
+
name = 'Doxygen'
version = '1.9.8'
@@ -20,6 +22,7 @@ builddependencies = [
('CMake', '3.27.6'),
('flex', '2.6.4'),
('pkgconf', '2.0.3'),
+ ('Python', '3.11.5'),
]
dependencies = [
@@ -28,4 +31,11 @@ dependencies = [
configopts = "-DICONV_DIR=$EBROOTLIBICONV -DICONV_IN_GLIBC=OFF"
+sanity_check_paths = {
+ 'files': ["bin/doxygen"],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["doxygen --help"]
+
moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/d/dask-labextension/dask-labextension-7.0.0-foss-2023a.eb b/easybuild/easyconfigs/d/dask-labextension/dask-labextension-7.0.0-foss-2023a.eb
new file mode 100644
index 00000000000..a0baf17a0ae
--- /dev/null
+++ b/easybuild/easyconfigs/d/dask-labextension/dask-labextension-7.0.0-foss-2023a.eb
@@ -0,0 +1,37 @@
+easyblock = 'PythonBundle'
+
+name = 'dask-labextension'
+version = '7.0.0'
+
+homepage = 'https://github.com/dask/dask-labextension'
+description = """This package provides a JupyterLab extension to manage Dask clusters, as well
+as embed Dask's dashboard plots directly into JupyterLab panes."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('JupyterLab', '4.0.5'),
+ ('jupyter-server-proxy', '4.0.0'),
+ ('dask', '2023.9.2'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('dask_labextension', version, {
+ 'sources': ['%(name)s-%(version)s-py3-none-any.whl'],
+ 'checksums': ['34fd1ee80a7259dc292a789cc82e4563d7cd1f5a26eb2ee8b434517482f82027'],
+ }),
+]
+
+sanity_pip_check = True
+
+sanity_check_paths = {
+ 'files': [],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages/dask_labextension', 'etc/jupyter', 'share/jupyter'],
+}
+
+modextrapaths = {'EB_ENV_JUPYTER_ROOT': ''}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/d/dask-labextension/dask-labextension-7.0.0-gfbf-2023b.eb b/easybuild/easyconfigs/d/dask-labextension/dask-labextension-7.0.0-gfbf-2023b.eb
new file mode 100644
index 00000000000..7ff6ec31bf7
--- /dev/null
+++ b/easybuild/easyconfigs/d/dask-labextension/dask-labextension-7.0.0-gfbf-2023b.eb
@@ -0,0 +1,37 @@
+easyblock = 'PythonBundle'
+
+name = 'dask-labextension'
+version = '7.0.0'
+
+homepage = 'https://github.com/dask/dask-labextension'
+description = """This package provides a JupyterLab extension to manage Dask clusters, as well
+as embed Dask's dashboard plots directly into JupyterLab panes."""
+
+toolchain = {'name': 'gfbf', 'version': '2023b'}
+
+dependencies = [
+ ('Python', '3.11.5'),
+ ('JupyterLab', '4.2.0'),
+ ('jupyter-server-proxy', '4.1.2'),
+ ('dask', '2024.5.1'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('dask_labextension', version, {
+ 'sources': ['%(name)s-%(version)s-py3-none-any.whl'],
+ 'checksums': ['34fd1ee80a7259dc292a789cc82e4563d7cd1f5a26eb2ee8b434517482f82027'],
+ }),
+]
+
+sanity_pip_check = True
+
+sanity_check_paths = {
+ 'files': [],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages/dask_labextension', 'etc/jupyter', 'share/jupyter'],
+}
+
+modextrapaths = {'EB_ENV_JUPYTER_ROOT': ''}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/d/dask/dask-2024.5.1-gfbf-2023b.eb b/easybuild/easyconfigs/d/dask/dask-2024.5.1-gfbf-2023b.eb
new file mode 100644
index 00000000000..36229e3f967
--- /dev/null
+++ b/easybuild/easyconfigs/d/dask/dask-2024.5.1-gfbf-2023b.eb
@@ -0,0 +1,67 @@
+easyblock = 'PythonBundle'
+
+name = 'dask'
+version = '2024.5.1'
+
+homepage = 'https://dask.org/'
+description = """ Dask natively scales Python. Dask provides advanced parallelism for analytics,
+enabling performance at scale for the tools you love."""
+
+toolchain = {'name': 'gfbf', 'version': '2023b'}
+
+dependencies = [
+ ('Python', '3.11.5'),
+ ('Python-bundle-PyPI', '2023.10'),
+ ('SciPy-bundle', '2023.11'),
+ ('PyYAML', '6.0.1'),
+ ('bokeh', '3.4.1'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('toolz', '0.12.1', {
+ 'checksums': ['ecca342664893f177a13dac0e6b41cbd8ac25a358e5f215316d43e2100224f4d'],
+ }),
+ ('locket', '1.0.0', {
+ 'checksums': ['5c0d4c052a8bbbf750e056a8e65ccd309086f4f0f18a2eac306a8dfa4112a632'],
+ }),
+ ('partd', '1.4.2', {
+ 'checksums': ['d022c33afbdc8405c226621b015e8067888173d85f7f5ecebb3cafed9a20f02c'],
+ }),
+ ('HeapDict', '1.0.1', {
+ 'checksums': ['8495f57b3e03d8e46d5f1b2cc62ca881aca392fd5cc048dc0aa2e1a6d23ecdb6'],
+ }),
+ ('zict', '3.0.0', {
+ 'checksums': ['e321e263b6a97aafc0790c3cfb3c04656b7066e6738c37fffcca95d803c9fba5'],
+ }),
+ ('tblib', '3.0.0', {
+ 'checksums': ['93622790a0a29e04f0346458face1e144dc4d32f493714c6c3dff82a4adb77e6'],
+ }),
+ (name, version, {
+ 'checksums': ['e071fda67031c314569e37ca70b3e88bb30f1d91ff8ee4122b541845847cc264'],
+ }),
+ ('distributed', version, {
+ 'checksums': ['c4e641e5fc014de3b43c584c70f703a7d44557b51b1143db812b8bc861aa84e2'],
+ }),
+ ('dask-mpi', '2022.4.0', {
+ 'checksums': ['0a04f1d7d35a06cdff506593330d4414ea242c9172498ce191f5742eac499e17'],
+ }),
+ ('docrep', '0.3.2', {
+ 'checksums': ['ed8a17e201abd829ef8da78a0b6f4d51fb99a4cbd0554adbed3309297f964314'],
+ }),
+ ('dask-jobqueue', '0.8.5', {
+ 'checksums': ['f6923f9d7ff894b96efbf706118b2cd37fd37751d567e91c22dfd3e2eaa93202'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/dask-%s' % x for x in ['mpi', 'scheduler', 'ssh', 'worker']],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = ["dask-scheduler --help"]
+
+sanity_pip_check = True
+
+moduleclass = 'data'
diff --git a/easybuild/easyconfigs/d/dask/dask-2024.9.1-gfbf-2024a.eb b/easybuild/easyconfigs/d/dask/dask-2024.9.1-gfbf-2024a.eb
new file mode 100644
index 00000000000..93df8dc002f
--- /dev/null
+++ b/easybuild/easyconfigs/d/dask/dask-2024.9.1-gfbf-2024a.eb
@@ -0,0 +1,64 @@
+easyblock = 'PythonBundle'
+
+name = 'dask'
+version = '2024.9.1'
+
+homepage = 'https://dask.org/'
+description = """ Dask natively scales Python. Dask provides advanced parallelism for analytics,
+enabling performance at scale for the tools you love."""
+
+toolchain = {'name': 'gfbf', 'version': '2024a'}
+
+dependencies = [
+ ('Python', '3.12.3'),
+ ('Python-bundle-PyPI', '2024.06'),
+ ('SciPy-bundle', '2024.05'),
+ ('PyYAML', '6.0.2'),
+ ('bokeh', '3.6.0'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('toolz', '0.12.1', {
+ 'checksums': ['ecca342664893f177a13dac0e6b41cbd8ac25a358e5f215316d43e2100224f4d'],
+ }),
+ ('locket', '1.0.0', {
+ 'checksums': ['5c0d4c052a8bbbf750e056a8e65ccd309086f4f0f18a2eac306a8dfa4112a632'],
+ }),
+ ('partd', '1.4.2', {
+ 'checksums': ['d022c33afbdc8405c226621b015e8067888173d85f7f5ecebb3cafed9a20f02c'],
+ }),
+ ('HeapDict', '1.0.1', {
+ 'checksums': ['8495f57b3e03d8e46d5f1b2cc62ca881aca392fd5cc048dc0aa2e1a6d23ecdb6'],
+ }),
+ ('zict', '3.0.0', {
+ 'checksums': ['e321e263b6a97aafc0790c3cfb3c04656b7066e6738c37fffcca95d803c9fba5'],
+ }),
+ ('tblib', '3.0.0', {
+ 'checksums': ['93622790a0a29e04f0346458face1e144dc4d32f493714c6c3dff82a4adb77e6'],
+ }),
+ (name, version, {
+ 'checksums': ['06eccc6a68d2882bcd9de24548fa96e8d0da7fbfff0baed3f3c2a526b73dfbb4'],
+ }),
+ ('distributed', version, {
+ 'checksums': ['4d573d89ff4fdde0dd96ad5cfdb843ce8ecef8caf002435bc60d14414dc1e819'],
+ }),
+ ('docrep', '0.3.2', {
+ 'checksums': ['ed8a17e201abd829ef8da78a0b6f4d51fb99a4cbd0554adbed3309297f964314'],
+ }),
+ ('dask-jobqueue', '0.8.5', {
+ 'checksums': ['f6923f9d7ff894b96efbf706118b2cd37fd37751d567e91c22dfd3e2eaa93202'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/dask-%s' % x for x in ['scheduler', 'ssh', 'worker']],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = ["dask-scheduler --help"]
+
+sanity_pip_check = True
+
+moduleclass = 'data'
diff --git a/easybuild/easyconfigs/d/datalad/datalad-0.19.5-GCCcore-12.3.0.eb b/easybuild/easyconfigs/d/datalad/datalad-0.19.5-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..9648e348963
--- /dev/null
+++ b/easybuild/easyconfigs/d/datalad/datalad-0.19.5-GCCcore-12.3.0.eb
@@ -0,0 +1,75 @@
+easyblock = 'PythonBundle'
+
+name = 'datalad'
+version = "0.19.5"
+
+homepage = 'https://www.datalad.org/'
+description = "DataLad is a free and open source distributed data management system that keeps track of your data, \
+creates structure, ensures reproducibility, supports collaboration, \
+and integrates with widely used data infrastructure."
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+toolchainopts = {'pic': True}
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('hatchling', '1.18.0'),
+ ('poetry', '1.5.1')
+]
+
+dependencies = [
+ ('git-annex', '10.20230802'),
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('tqdm', '4.66.1'),
+ ('PLY', '3.11'),
+ ('scikit-build', '0.17.6'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('humanize', '4.8.0', {
+ 'checksums': ['9783373bf1eec713a770ecaa7c2d7a7902c98398009dfa3d8a2df91eec9311e8'],
+ }),
+ ('fasteners', '0.19', {
+ 'checksums': ['b4f37c3ac52d8a445af3a66bce57b33b5e90b97c696b7b984f530cf8f0ded09c'],
+ }),
+ ('patool', '2.0.0', {
+ 'modulename': 'patoolib',
+ 'checksums': ['1dd48cd48043fc78ebf88b8ea5b00d5123fba50a6a9d11182fbcfd677681cab5'],
+ }),
+ ('annexremote', '1.6.4', {
+ 'checksums': ['da4198a25b36c699216fd5f1e93ba0e655e167b6822b64284a4bf90388ea69ae'],
+ }),
+ ('looseversion', '1.3.0', {
+ 'checksums': ['ebde65f3f6bb9531a81016c6fef3eb95a61181adc47b7f949e9c0ea47911669e'],
+ }),
+ ('boto', '2.49.0', {
+ 'checksums': ['ea0d3b40a2d852767be77ca343b58a9e3a4b00d9db440efb8da74b4e58025e5a'],
+ }),
+ ('python-gitlab', '4.4.0', {
+ 'modulename': 'gitlab',
+ 'checksums': ['1d117bf7b433ae8255e5d74e72c660978f50ee85eb62248c9fb52ef43c3e3814'],
+ }),
+ ('iso8601', '2.1.0', {
+ 'checksums': ['6b1d3829ee8921c4301998c909f7829fa9ed3cbdac0d3b16af2d743aed1ba8df'],
+ }),
+ (name, version, {
+ 'checksums': ['639cdd5ede96f614933e017f65ddb01f17637ab7bf700005ea0ac7835cc2b905'],
+ }),
+]
+
+sanity_pip_check = True
+
+sanity_check_paths = {
+ 'files': ['bin/datalad'],
+ 'dirs': [],
+}
+
+sanity_check_commands = [
+ "datalad --help",
+ "datalad --version",
+]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/d/datalad/datalad-1.1.3-GCCcore-13.3.0.eb b/easybuild/easyconfigs/d/datalad/datalad-1.1.3-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..66b0e738846
--- /dev/null
+++ b/easybuild/easyconfigs/d/datalad/datalad-1.1.3-GCCcore-13.3.0.eb
@@ -0,0 +1,84 @@
+easyblock = 'PythonBundle'
+
+name = 'datalad'
+version = "1.1.3"
+
+homepage = 'https://www.datalad.org/'
+description = "DataLad is a free and open source distributed data management system that keeps track of your data, \
+creates structure, ensures reproducibility, supports collaboration, \
+and integrates with widely used data infrastructure."
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('hatchling', '1.24.2'),
+ ('poetry', '1.8.3')
+]
+
+dependencies = [
+ ('git-annex', '10.20240731'),
+ ('Python', '3.12.3'),
+ ('Python-bundle-PyPI', '2024.06'),
+ ('tqdm', '4.66.5'),
+ ('PLY', '3.11'),
+ ('scikit-build', '0.17.6'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('humanize', '4.10.0', {
+ 'checksums': ['06b6eb0293e4b85e8d385397c5868926820db32b9b654b932f57fa41c23c9978'],
+ }),
+ ('fasteners', '0.19', {
+ 'checksums': ['b4f37c3ac52d8a445af3a66bce57b33b5e90b97c696b7b984f530cf8f0ded09c'],
+ }),
+ ('patool', '2.3.0', {
+ 'modulename': 'patoolib',
+ 'checksums': ['498e294fd8c7d50889d65019d431c6867bf3fb1fec5ea2d39d1d39d1215002f8'],
+ }),
+ ('annexremote', '1.6.5', {
+ 'checksums': ['ad0ccdd84a8771ad58922d172ee68b225ece77bf464abe4d24ff91a4896a423e'],
+ }),
+ ('looseversion', '1.3.0', {
+ 'checksums': ['ebde65f3f6bb9531a81016c6fef3eb95a61181adc47b7f949e9c0ea47911669e'],
+ }),
+ ('botocore', '1.35.0', {
+ 'checksums': ['6ab2f5a5cbdaa639599e3478c65462c6d6a10173dc8b941bfc69b0c9eb548f45'],
+ }),
+ ('jmespath', '1.0.1', {
+ 'checksums': ['90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe'],
+ }),
+ ('s3transfer', '0.10.2', {
+ 'checksums': ['0711534e9356d3cc692fdde846b4a1e4b0cb6519971860796e6bc4c7aea00ef6'],
+ }),
+ ('boto3', '1.35.0', {
+ 'checksums': ['bdc242e3ea81decc6ea551b04b2c122f088c29269d8e093b55862946aa0fcfc6'],
+ }),
+ ('python_gitlab', '4.8.0', {
+ 'modulename': 'gitlab',
+ 'checksums': ['c2c4d7b1cd503d905afe5dfc0f3f6619934361f76ae855c6cec9a666864d37cf'],
+ }),
+ ('iso8601', '2.1.0', {
+ 'checksums': ['6b1d3829ee8921c4301998c909f7829fa9ed3cbdac0d3b16af2d743aed1ba8df'],
+ }),
+ (name, version, {
+ 'checksums': ['7b3a39419ac457df94552214ca64092297d544e15576c0be57f5d7ee35fba7ab'],
+ }),
+]
+
+sanity_pip_check = True
+
+sanity_check_paths = {
+ 'files': ['bin/datalad'],
+ 'dirs': [],
+}
+
+sanity_check_commands = [
+ "datalad --help",
+ "datalad --version",
+]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/d/dblatex/dblatex-0.3.12-foss-2023a.eb b/easybuild/easyconfigs/d/dblatex/dblatex-0.3.12-foss-2023a.eb
new file mode 100644
index 00000000000..db41d0c240f
--- /dev/null
+++ b/easybuild/easyconfigs/d/dblatex/dblatex-0.3.12-foss-2023a.eb
@@ -0,0 +1,33 @@
+easyblock = 'PythonPackage'
+
+name = 'dblatex'
+version = '0.3.12'
+
+homepage = 'https://dblatex.sourceforge.net/'
+description = """dblatex is a program that transforms your SGML/XML DocBook documents to DVI,
+ PostScript or PDF by translating them into pure LaTeX as a first process.
+ MathML 2.0 markups are supported, too. It started as a clone of DB2LaTeX."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+source_urls = ['https://master.dl.sourceforge.net/project/dblatex/dblatex/dblatex-%(version)s/']
+sources = ['%(name)s3-%(version)s.tar.bz2']
+checksums = ['16e82786272ed1806a079d37914d7ba7a594db792dc4cc34c1c3737dbd4da079']
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('libxslt', '1.1.38'),
+ ('texlive', '20230313'),
+]
+
+download_dep_fail = True
+use_pip = True
+sanity_pip_check = True
+
+options = {'modulename': 'dbtexmf.dblatex'}
+
+postinstallcmds = ["cp -r %(builddir)s/%(name)s3-%(version)s/scripts %(installdir)s/bin"]
+
+sanity_check_commands = ['dblatex --help']
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/d/deal.II/deal.II-9.5.2-foss-2023a.eb b/easybuild/easyconfigs/d/deal.II/deal.II-9.5.2-foss-2023a.eb
new file mode 100644
index 00000000000..025a60136b3
--- /dev/null
+++ b/easybuild/easyconfigs/d/deal.II/deal.II-9.5.2-foss-2023a.eb
@@ -0,0 +1,42 @@
+easyblock = 'CMakeMake'
+
+name = 'deal.II'
+version = '9.5.2'
+
+homepage = 'https://www.dealii.org'
+description = """deal.II is a C++ program library targeted at the computational solution of
+ partial differential equations using adaptive finite elements."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+source_urls = ['https://github.com/dealii/dealii/releases/download/v%(version)s/']
+sources = ['dealii-%(version)s.tar.gz']
+checksums = ['7930e5218a9807d60cc05c300a3b70f36f4af22c3551a2cd1141fbab013bbaf1']
+
+builddependencies = [('CMake', '3.26.3')]
+
+dependencies = [
+ ('Boost', '1.82.0'),
+ ('GSL', '2.7'),
+ ('HDF5', '1.14.0'),
+ ('METIS', '5.1.0'),
+ ('p4est', '2.8.6'),
+ ('PETSc', '3.20.3'),
+ ('zlib', '1.2.13'),
+]
+
+configopts = "-DDEAL_II_WITH_LAPACK=ON -DDEAL_II_WITH_MPI=ON "
+configopts += "-DDEAL_II_WITH_BOOST=ON -DBOOST_DIR=$EBROOTBOOST "
+configopts += "-DDEAL_II_WITH_GSL=ON -DGSL_DIR=$EBROOTGSL "
+configopts += "-DDEAL_II_WITH_HDF5=ON -DHDF5_DIR=$EBROOTHDF5 "
+configopts += "-DDEAL_II_WITH_METIS=ON -DMETIS_DIR=$EBROOTMETIS "
+configopts += "-DDEAL_II_WITH_P4EST=ON -DP4EST_DIR=$EBROOTP4EST "
+configopts += "-DDEAL_II_WITH_PETSC=ON -DPETSC_DIR=$EBROOTPETSC "
+configopts += "-DDEAL_II_WITH_ZLIB=ON -DZLIB_DIR=$EBROOTZLIB "
+
+sanity_check_paths = {
+ 'files': ['lib/libdeal_II.%s' % SHLIB_EXT],
+ 'dirs': ['include/deal.II', 'lib/cmake', 'share/deal.II'],
+}
+
+moduleclass = 'phys'
diff --git a/easybuild/easyconfigs/d/decona/decona-1.4-20240731-foss-2023a.eb b/easybuild/easyconfigs/d/decona/decona-1.4-20240731-foss-2023a.eb
new file mode 100644
index 00000000000..3e1eb388a12
--- /dev/null
+++ b/easybuild/easyconfigs/d/decona/decona-1.4-20240731-foss-2023a.eb
@@ -0,0 +1,41 @@
+easyblock = 'Tarball'
+
+name = 'decona'
+version = '1.4-20240731'
+local_commit = 'f7488ad'
+
+homepage = 'https://github.com/Saskia-Oosterbroek/decona'
+description = "fastq to polished sequenses: pipeline suitable for mixed samples and long (Nanopore) reads"
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+source_urls = ['https://github.com/Saskia-Oosterbroek/decona/archive']
+sources = ['%s.tar.gz' % local_commit]
+checksums = ['7504160481ccdd3410fc79348c01a9a3bf0795ad73679cc305e1dcdf3e395962']
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('NanoFilt', '2.8.0'),
+ ('qcat', '1.1.0'),
+ ('CD-HIT', '4.8.1'),
+ ('minimap2', '2.26'),
+ ('Racon', '1.5.0'),
+ ('medaka', '1.11.3'),
+ ('BLAST+', '2.14.1'),
+]
+
+fix_python_shebang_for = ['decona']
+
+modextrapaths = {
+ 'PATH': '',
+ 'PYTHONPATH': '',
+}
+
+sanity_check_paths = {
+ 'files': ['decona'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["decona -v | grep 'This is Decona %s'" % version.split('-')[0]]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/d/deepTools/deepTools-3.5.5-gfbf-2023a.eb b/easybuild/easyconfigs/d/deepTools/deepTools-3.5.5-gfbf-2023a.eb
new file mode 100644
index 00000000000..88204ce2678
--- /dev/null
+++ b/easybuild/easyconfigs/d/deepTools/deepTools-3.5.5-gfbf-2023a.eb
@@ -0,0 +1,53 @@
+easyblock = 'PythonBundle'
+
+name = 'deepTools'
+version = '3.5.5'
+
+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': 'gfbf', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('matplotlib', '3.7.2'),
+ ('plotly.py', '5.16.0'),
+ ('Pysam', '0.22.0'),
+ ('pyBigWig', '0.3.22'),
+]
+
+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': ['1c04870187117fa42eb11de95e7ff136f1445965b49ad5dae46099c3ed273f7b'],
+ }),
+]
+
+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/deepdiff/deepdiff-6.7.1-GCCcore-12.3.0.eb b/easybuild/easyconfigs/d/deepdiff/deepdiff-6.7.1-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..86135dac4dc
--- /dev/null
+++ b/easybuild/easyconfigs/d/deepdiff/deepdiff-6.7.1-GCCcore-12.3.0.eb
@@ -0,0 +1,35 @@
+easyblock = 'PythonBundle'
+
+name = 'deepdiff'
+version = '6.7.1'
+
+homepage = 'https://zepworks.com/deepdiff/current/'
+description = """DeepDiff: Deep Difference of dictionaries, iterables and almost any other object recursively."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+builddependencies = [
+ ('binutils', '2.40'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('jsonpickle', '3.0.2', {
+ 'checksums': ['e37abba4bfb3ca4a4647d28bb9f4706436f7b46c8a8333b4a718abafa8e46b37'],
+ }),
+ ('ordered-set', '4.1.0', {
+ 'checksums': ['694a8e44c87657c59292ede72891eb91d34131f6531463aab3009191c77364a8'],
+ }),
+ (name, version, {
+ 'checksums': ['b367e6fa6caac1c9f500adc79ada1b5b1242c50d5f716a1a4362030197847d30'],
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/d/deepfold/deepfold-20240308-foss-2022a-CUDA-11.7.0.eb b/easybuild/easyconfigs/d/deepfold/deepfold-20240308-foss-2022a-CUDA-11.7.0.eb
new file mode 100644
index 00000000000..a997ea3c39f
--- /dev/null
+++ b/easybuild/easyconfigs/d/deepfold/deepfold-20240308-foss-2022a-CUDA-11.7.0.eb
@@ -0,0 +1,95 @@
+easyblock = 'PythonBundle'
+
+name = 'deepfold'
+version = '20240308'
+_commit = 'c91701d1d92db341e85fba687644046d416b1f19'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://github.com/newtonjoo/deepfold'
+description = """
+This package provides an implementation of DeepFold, a trainable, Transformer-based deep
+protein folding model. We modified the open-source code of DeepMind AlphaFold v2.0 and
+Uni-Fold-jax.
+Pretrained models can be found in environment variable $DEEPFOLD_PARAMETERS
+"""
+
+toolchain = {'name': 'foss', 'version': '2022a'}
+
+dependencies = [
+ ('CUDA', '11.7.0', '', SYSTEM),
+ ('Python', '3.10.4'),
+ ('SciPy-bundle', '2022.05'),
+ ('Biopython', '1.79'),
+ ('dm-haiku', '0.0.9', versionsuffix),
+ ('dm-tree', '0.1.8'),
+ ('TensorFlow', '2.11.0', versionsuffix),
+ ('tensorboardX', '2.5.1'),
+ ('HMMER', '3.3.2'),
+ ('Kalign', '3.3.5'),
+ ('ml-collections', '0.1.1'),
+ ('OpenMM', '8.0.0'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('toolz', '0.12.1', {
+ 'checksums': ['ecca342664893f177a13dac0e6b41cbd8ac25a358e5f215316d43e2100224f4d'],
+ }),
+ ('chex', '0.1.6', {
+ 'checksums': ['adb5d2352b5f0d248ccf594be1b1bf9ee7a2bee2a57f0eac78547538d479b0e7'],
+ }),
+ ('immutabledict', '2.0.0', {
+ 'checksums': ['1b3ab650dc9db0df80fc198b9d31bee45062c4774b3dfbf3d2f3e1f6d4929258'],
+ }),
+ ('tzdata', '2024.1', {
+ 'checksums': ['2674120f8d891909751c38abcdfd386ac0a5a1127954fbc332af6b5ceae07efd'],
+ }),
+ ('PDBFixer', '1.8.1', {
+ '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': ['d50551abfe9dbaefc066f4d9d400cdebe57f1fefd9de9d01e12beb87efd99595'],
+ }),
+]
+
+local_install_cmd = "mkdir -p %(installdir)s/bin && "
+local_install_cmd += "cp %(name)s-*/*.py %(installdir)s/bin/ && "
+local_install_cmd += "cp -r %(name)s-*/example_data %(installdir)s/ && "
+local_install_cmd += "mkdir -p %(installdir)s/lib/python%(pyshortver)s/site-packages/ && "
+local_install_cmd += "cp -r %(name)s-*/%(name)s %(installdir)s/lib/python%(pyshortver)s/site-packages/ && "
+local_install_cmd += "chmod a+x %(installdir)s/bin/*.py"
+
+components = [
+ (name, version, {
+ 'easyblock': 'PackedBinary',
+ 'sources': [{
+ 'source_urls': ['https://github.com/newtonjoo/deepfold/archive'],
+ 'download_filename': '%s.tar.gz' % _commit,
+ 'filename': '%(name)s-%(version)s.tar.gz',
+ }],
+ 'patches': ['%(name)s-%(version)s_fix-simtk-deprecation.patch'],
+ 'install_cmd': local_install_cmd,
+ 'checksums': [
+ # deepfold-20240308.tar.gz
+ 'f75140ed5e5b3e64591d73593b8cefdee5b63a8adedc93da6fa62a564ae77803',
+ # deepfold-20240308_fix-simtk-deprecation.patch
+ '8a551dd8dc1d141aad391f287a65477bed6d204fbedbd5bd45c74bc6d5efcdf4',
+ ],
+ }),
+]
+
+modextravars = {
+ 'DEEPFOLD_PARAMETERS': '/databases/bio/deepfold/params',
+}
+
+fix_python_shebang_for = ['bin/*.py']
+
+sanity_check_paths = {
+ 'files': ['bin/run_from_pkl.py', 'bin/generate_pkl_features.py', 'bin/train.py'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ['train.py --help']
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/d/deepfold/deepfold-20240308_fix-simtk-deprecation.patch b/easybuild/easyconfigs/d/deepfold/deepfold-20240308_fix-simtk-deprecation.patch
new file mode 100644
index 00000000000..d08f7d7a2b1
--- /dev/null
+++ b/easybuild/easyconfigs/d/deepfold/deepfold-20240308_fix-simtk-deprecation.patch
@@ -0,0 +1,44 @@
+Fix ModuleNotFoundError for simtk.openmm.
+Author: Cintia Willemyns (Vrije Universiteit Brussel)
+diff -Naru deepfold-c91701d1d92db341e85fba687644046d416b1f19.orig/deepfold/relax/amber_minimize.py deepfold-c91701d1d92db341e85fba687644046d416b1f19/deepfold/relax/amber_minimize.py
+--- deepfold-c91701d1d92db341e85fba687644046d416b1f19.orig/deepfold/relax/amber_minimize.py 2024-03-22 16:58:35.884771000 +0100
++++ deepfold-c91701d1d92db341e85fba687644046d416b1f19/deepfold/relax/amber_minimize.py 2024-03-22 16:38:55.688749393 +0100
+@@ -28,8 +28,8 @@
+ import numpy as np
+ from simtk import openmm
+ from simtk import unit
+-from simtk.openmm import app as openmm_app
+-from simtk.openmm.app.internal.pdbstructure import PdbStructure
++from openmm import app as openmm_app
++from openmm.app.internal.pdbstructure import PdbStructure
+
+
+ ENERGY = unit.kilocalories_per_mole
+diff -Naru deepfold-c91701d1d92db341e85fba687644046d416b1f19.orig/deepfold/relax/cleanup.py deepfold-c91701d1d92db341e85fba687644046d416b1f19/deepfold/relax/cleanup.py
+--- deepfold-c91701d1d92db341e85fba687644046d416b1f19.orig/deepfold/relax/cleanup.py 2024-03-22 16:58:35.884999000 +0100
++++ deepfold-c91701d1d92db341e85fba687644046d416b1f19/deepfold/relax/cleanup.py 2024-03-29 14:23:44.288779000 +0100
+@@ -19,8 +19,8 @@
+ import io
+
+ import pdbfixer
+-from simtk.openmm import app
+-from simtk.openmm.app import element
++from openmm import app
++from openmm.app import element
+
+
+ def fix_pdb(pdbfile, alterations_info):
+diff -Naru deepfold-c91701d1d92db341e85fba687644046d416b1f19.orig/deepfold/relax/utils.py deepfold-c91701d1d92db341e85fba687644046d416b1f19/deepfold/relax/utils.py
+--- deepfold-c91701d1d92db341e85fba687644046d416b1f19.orig/deepfold/relax/utils.py 2024-03-22 16:58:35.887221923 +0100
++++ deepfold-c91701d1d92db341e85fba687644046d416b1f19/deepfold/relax/utils.py 2024-03-22 17:00:41.078566002 +0100
+@@ -17,8 +17,8 @@
+ from deepfold.common import residue_constants
+ from Bio import PDB
+ import numpy as np
+-from simtk.openmm import app as openmm_app
+-from simtk.openmm.app.internal.pdbstructure import PdbStructure
++from openmm import app as openmm_app
++from openmm.app.internal.pdbstructure import PdbStructure
+
+
+ def overwrite_pdb_coordinates(pdb_str: str, pos) -> str:
diff --git a/easybuild/easyconfigs/d/denseweight/denseweight-0.1.2-foss-2022a.eb b/easybuild/easyconfigs/d/denseweight/denseweight-0.1.2-foss-2022a.eb
new file mode 100644
index 00000000000..3ad16c0cd87
--- /dev/null
+++ b/easybuild/easyconfigs/d/denseweight/denseweight-0.1.2-foss-2022a.eb
@@ -0,0 +1,41 @@
+easyblock = 'PythonBundle'
+
+name = 'denseweight'
+version = '0.1.2'
+
+homepage = 'https://github.com/steimi/denseweight'
+description = """
+This package implements the method for imbalanced regression DenseWeight. The corresponding
+paper "Density-based weighting for imbalanced regression". The goal of DenseWeight is to allow
+training machine learning models for regression tasks that emphasize performance for data
+points with rare target values in comparison to data points with more common target values.
+"""
+
+toolchain = {'name': 'foss', 'version': '2022a'}
+
+dependencies = [
+ ('Python', '3.10.4'),
+ ('SciPy-bundle', '2022.05'),
+ ('scikit-learn', '1.1.2'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('KDEpy', '1.1.9', {
+ 'modulename': 'KDEpy',
+ 'checksums': ['4bf0b2afd430ce5b40fafd98144de83d8b715d46fdf0f45fed2b5c2e9c40ce46'],
+ }),
+ (name, version, {
+ 'checksums': ['281cf1fe4be364366363ee822b524620dcb629c5b9ff7852aa80f91a27c98b1e'],
+ }),
+]
+
+sanity_pip_check = True
+
+sanity_check_paths = {
+ 'files': [],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+moduleclass = 'ai'
diff --git a/easybuild/easyconfigs/d/denseweight/denseweight-0.1.2-foss-2023a.eb b/easybuild/easyconfigs/d/denseweight/denseweight-0.1.2-foss-2023a.eb
new file mode 100644
index 00000000000..0a61289e5a1
--- /dev/null
+++ b/easybuild/easyconfigs/d/denseweight/denseweight-0.1.2-foss-2023a.eb
@@ -0,0 +1,41 @@
+easyblock = 'PythonBundle'
+
+name = 'denseweight'
+version = '0.1.2'
+
+homepage = 'https://github.com/steimi/denseweight'
+description = """
+This package implements the method for imbalanced regression DenseWeight. The corresponding
+paper "Density-based weighting for imbalanced regression". The goal of DenseWeight is to allow
+training machine learning models for regression tasks that emphasize performance for data
+points with rare target values in comparison to data points with more common target values.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('scikit-learn', '1.3.1'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('KDEpy', '1.1.9', {
+ 'modulename': 'KDEpy',
+ 'checksums': ['4bf0b2afd430ce5b40fafd98144de83d8b715d46fdf0f45fed2b5c2e9c40ce46'],
+ }),
+ (name, version, {
+ 'checksums': ['281cf1fe4be364366363ee822b524620dcb629c5b9ff7852aa80f91a27c98b1e'],
+ }),
+]
+
+sanity_pip_check = True
+
+sanity_check_paths = {
+ 'files': [],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+moduleclass = 'ai'
diff --git a/easybuild/easyconfigs/d/desktop-file-utils/desktop-file-utils-0.27-GCCcore-12.3.0.eb b/easybuild/easyconfigs/d/desktop-file-utils/desktop-file-utils-0.27-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..888351a66b1
--- /dev/null
+++ b/easybuild/easyconfigs/d/desktop-file-utils/desktop-file-utils-0.27-GCCcore-12.3.0.eb
@@ -0,0 +1,41 @@
+# Author: Jasper Grimm (UoY)
+easyblock = 'MesonNinja'
+
+name = 'desktop-file-utils'
+version = '0.27'
+
+homepage = 'https://www.freedesktop.org/wiki/Software/desktop-file-utils/'
+description = """
+desktop-file-utils contains a few command line utilities for working with desktop entries:
+ * desktop-file-validate: validates a desktop file and prints warnings/errors about desktop entry specification
+ violations.
+ * desktop-file-install: installs a desktop file to the applications directory, optionally munging it a bit in transit.
+ * update-desktop-database: updates the database containing a cache of MIME types handled by desktop files. It requires
+ GLib to compile, because the implementation requires Unicode utilities and such.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = ['https://gitlab.freedesktop.org/xdg/%(name)s/-/archive/%(version)s']
+sources = [SOURCE_TAR_GZ]
+checksums = ['0c84771477b6b8c76f362059f6ad07cc72131ebef5f766b3b4549218b105a056']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('Meson', '1.1.1'),
+ ('Ninja', '1.11.1'),
+ ('Python', '3.11.3'),
+ ('pkgconf', '1.9.5'),
+]
+
+dependencies = [
+ ('GLib', '2.77.1'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in ['desktop-file-edit', 'desktop-file-install', 'desktop-file-validate',
+ 'update-desktop-database']],
+ 'dirs': [],
+}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/d/dftd3-lib/dftd3-lib-0.10-GCC-11.3.0.eb b/easybuild/easyconfigs/d/dftd3-lib/dftd3-lib-0.10-GCC-11.3.0.eb
new file mode 100644
index 00000000000..d788355e010
--- /dev/null
+++ b/easybuild/easyconfigs/d/dftd3-lib/dftd3-lib-0.10-GCC-11.3.0.eb
@@ -0,0 +1,34 @@
+easyblock = 'CMakeMake'
+
+name = 'dftd3-lib'
+version = '0.10'
+
+homepage = 'https://github.com/dftbplus/dftd3-lib'
+description = """This is a repackaged version of the DFTD3 program by S. Grimme and his coworkers.
+The original program (V3.1 Rev 1) was downloaded at 2016-04-03. It has been
+converted to free format and encapsulated into modules."""
+
+toolchain = {'name': 'GCC', 'version': '11.3.0'}
+toolchainopts = {'pic': True}
+
+github_account = 'dftbplus'
+source_urls = [GITHUB_SOURCE]
+sources = ['%(version)s.tar.gz']
+patches = ['dftd3-lib-0.9_fix-extras-syntax.patch']
+checksums = [
+ {'0.10.tar.gz': 'db61bc6c7c699628e8c5bf2018ea38de03a53eac38014e06845829d765caf6bb'},
+ {'dftd3-lib-0.9_fix-extras-syntax.patch': '717e719170258544555bfc33390a70c2573d971c6548d8f2c951a5606ec77f74'},
+]
+
+builddependencies = [
+ ('CMake', '3.23.1'),
+]
+
+configopts = '-DCMAKE_INSTALL_INCLUDEDIR="%(installdir)s/include" '
+
+sanity_check_paths = {
+ 'files': ['bin/dftd3', 'lib/libdftd3.a'],
+ 'dirs': ['include/dftd3/modfiles'],
+}
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/d/dftd4/dftd4-3.7.0-foss-2023a.eb b/easybuild/easyconfigs/d/dftd4/dftd4-3.7.0-foss-2023a.eb
new file mode 100644
index 00000000000..912ed2baf4a
--- /dev/null
+++ b/easybuild/easyconfigs/d/dftd4/dftd4-3.7.0-foss-2023a.eb
@@ -0,0 +1,50 @@
+# A. Domingo (Vrije Universiteit Brussel)
+# J. Sassmannshausen (Imperial College London/UK)
+# C. Willemyns (Vrije Universiteit Brussel)
+
+easyblock = 'CMakeNinja'
+
+name = 'dftd4'
+version = '3.7.0'
+
+homepage = 'https://dftd4.readthedocs.io'
+description = """
+The dftd4 project provides an implementation of the generally applicable, charge dependent
+London-dispersion correction, termed DFT-D4.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'usempi': False, 'openmp': True, 'pic': True}
+
+github_account = 'dftd4'
+source_urls = [GITHUB_LOWER_SOURCE]
+sources = ['v%(version)s.tar.gz']
+checksums = ['f00b244759eff2c4f54b80a40673440ce951b6ddfa5eee1f46124297e056f69c']
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+ ('Ninja', '1.11.1'),
+]
+
+dependencies = [
+ ('mctc-lib', '0.3.1'),
+ ('mstore', '0.3.0'),
+ ('multicharge', '0.3.0'),
+]
+
+build_shared_libs = True
+
+configopts = '-DWITH_BLAS=1 -DWITH_OpenMP=1'
+
+# run suite of tests with ctest
+test_cmd = 'ctest'
+runtest = ''
+
+sanity_check_paths = {
+ 'files': ['bin/dftd4', 'lib/libdftd4.%s' % SHLIB_EXT, 'include/dftd4.h'],
+ 'dirs': ['include/dftd4', 'lib/cmake', 'lib/pkgconfig'],
+}
+
+sanity_check_commands = ["dftd4 --help"]
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/d/dftd4/dftd4-3.7.0-gfbf-2023b.eb b/easybuild/easyconfigs/d/dftd4/dftd4-3.7.0-gfbf-2023b.eb
new file mode 100644
index 00000000000..2f5ef00ad89
--- /dev/null
+++ b/easybuild/easyconfigs/d/dftd4/dftd4-3.7.0-gfbf-2023b.eb
@@ -0,0 +1,50 @@
+# A. Domingo (Vrije Universiteit Brussel)
+# J. Sassmannshausen (Imperial College London/UK)
+# C. Willemyns (Vrije Universiteit Brussel)
+
+easyblock = 'CMakeNinja'
+
+name = 'dftd4'
+version = '3.7.0'
+
+homepage = 'https://dftd4.readthedocs.io'
+description = """
+The dftd4 project provides an implementation of the generally applicable, charge dependent
+London-dispersion correction, termed DFT-D4.
+"""
+
+toolchain = {'name': 'gfbf', 'version': '2023b'}
+toolchainopts = {'openmp': True}
+
+github_account = 'dftd4'
+source_urls = [GITHUB_LOWER_SOURCE]
+sources = ['v%(version)s.tar.gz']
+checksums = ['f00b244759eff2c4f54b80a40673440ce951b6ddfa5eee1f46124297e056f69c']
+
+builddependencies = [
+ ('CMake', '3.27.6'),
+ ('Ninja', '1.11.1'),
+]
+
+dependencies = [
+ ('mctc-lib', '0.3.1'),
+ ('mstore', '0.3.0'),
+ ('multicharge', '0.3.0'),
+]
+
+build_shared_libs = True
+
+configopts = '-DWITH_BLAS=1 -DWITH_OpenMP=1'
+
+# run suite of tests with ctest
+test_cmd = 'ctest'
+runtest = ''
+
+sanity_check_paths = {
+ 'files': ['bin/dftd4', 'lib/libdftd4.%s' % SHLIB_EXT, 'include/dftd4.h'],
+ 'dirs': ['include/dftd4', 'lib/cmake', 'lib/pkgconfig'],
+}
+
+sanity_check_commands = ["dftd4 --help"]
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/d/dictys/dictys-1.1.0-foss-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/d/dictys/dictys-1.1.0-foss-2023a-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..f04774b1b55
--- /dev/null
+++ b/easybuild/easyconfigs/d/dictys/dictys-1.1.0-foss-2023a-CUDA-12.1.1.eb
@@ -0,0 +1,83 @@
+easyblock = 'PythonBundle'
+
+name = 'dictys'
+version = '1.1.0'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://github.com/pinellolab/dictys'
+description = "Context specific and dynamic gene regulatory network reconstruction and analysis."
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+builddependencies = [('poetry', '1.5.1')]
+dependencies = [
+ ('Python', '3.11.3'),
+ ('CUDA', '12.1.1', '', SYSTEM),
+ ('PyTorch-bundle', '2.1.2', versionsuffix),
+ ('pybedtools', '0.9.1'),
+ ('SAMtools', '1.18'),
+ ('MACS2', '2.2.9.1'),
+ ('FFmpeg', '6.0'),
+ ('matplotlib', '3.7.2'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('SciPy-bundle', '2023.07'),
+ ('networkx', '3.1'),
+ ('h5py', '3.9.0'),
+ ('pyro-ppl', '1.9.0', versionsuffix),
+ ('adjustText', '0.7.3'),
+ ('Pysam', '0.22.0'),
+ ('paramiko', '3.2.0'),
+ ('Jupyter-bundle', '20230823'),
+ ('Qtconsole', '5.5.1'),
+ ('junos-eznc', '2.7.1'),
+]
+
+# regenerate WellingtonC.c to works with python 3.11 + unpin matplotlib version
+local_pyDNase_preinstallopts = (
+ "cd pyDNase/footprinting && rm WellingtonC.c && cythonize -i WellingtonC.pyx && cd .. && cd .. && "
+ "sed -i 's/matplotlib < 2.0.0/matplotlib/' setup.py && "
+)
+
+exts_list = [
+ ('jupyter_console', '6.6.3', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['309d33409fcc92ffdad25f0bcdf9a4a9daa61b6f341177570fdac03de5352485'],
+ }),
+ ('jupyter', '1.0.0', {
+ 'checksums': ['d9dc4b3318f310e34c82951ea5d6683f67bed7def4b259fafbfe4f1beb1d8e5f'],
+ }),
+ ('args', '0.1.0', {
+ 'checksums': ['a785b8d837625e9b61c39108532d95b85274acd679693b71ebb5156848fcf814'],
+ }),
+ ('clint', '0.5.1', {
+ 'checksums': ['05224c32b1075563d0b16d0015faaf9da43aa214e4a2140e51f08789e7a4c5aa'],
+ }),
+ ('pynetbox', '7.4.0', {
+ 'checksums': ['fd0b1f197b3880048408ff5ed84422dd599bcd9389e32cb06a09b9b0d55c1636'],
+ }),
+ ('absl-py', '1.4.0', {
+ 'modulename': 'absl',
+ 'checksums': ['d2c244d01048ba476e7c080bd2c6df5e141d211de80223460d5b3b8a2a58433d'],
+ }),
+ ('aerleon', '1.9.0', {
+ 'checksums': ['850cd621dda750263db313d4473302b48b82adaaa9220e6fd0677cb7900f95f6'],
+ }),
+ ('homer', '0.7.0', {
+ 'checksums': ['efaf9b3948f6aecdf88cc87c0296a18aed77c152489a7f85c571965fb16f9e57'],
+ }),
+ ('pyDNase', '0.3.0', {
+ 'preinstallopts': local_pyDNase_preinstallopts,
+ 'modulename': 'pyDNase',
+ 'checksums': ['dba03cadca37929a1cc41545e962136f29efc41f8e3c6de042c51c47ee04d558'],
+ }),
+ (name, version, {
+ 'checksums': ['59610a8c57e9fc525ec5d13b69efc8b513c78a85a595e0e2b0138da62a035978'],
+ }),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+sanity_check_commands = ["dictys --help"]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/d/dictys/dictys-1.1.0-foss-2023a.eb b/easybuild/easyconfigs/d/dictys/dictys-1.1.0-foss-2023a.eb
new file mode 100644
index 00000000000..0b97a82cfde
--- /dev/null
+++ b/easybuild/easyconfigs/d/dictys/dictys-1.1.0-foss-2023a.eb
@@ -0,0 +1,81 @@
+easyblock = 'PythonBundle'
+
+name = 'dictys'
+version = '1.1.0'
+
+homepage = 'https://github.com/pinellolab/dictys'
+description = "Context specific and dynamic gene regulatory network reconstruction and analysis."
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+builddependencies = [('poetry', '1.5.1')]
+dependencies = [
+ ('Python', '3.11.3'),
+ ('PyTorch-bundle', '2.1.2'),
+ ('pybedtools', '0.9.1'),
+ ('SAMtools', '1.18'),
+ ('MACS2', '2.2.9.1'),
+ ('FFmpeg', '6.0'),
+ ('matplotlib', '3.7.2'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('SciPy-bundle', '2023.07'),
+ ('networkx', '3.1'),
+ ('h5py', '3.9.0'),
+ ('pyro-ppl', '1.9.0'),
+ ('adjustText', '0.7.3'),
+ ('Pysam', '0.22.0'),
+ ('paramiko', '3.2.0'),
+ ('Jupyter-bundle', '20230823'),
+ ('Qtconsole', '5.5.1'),
+ ('junos-eznc', '2.7.1'),
+]
+
+# regenerate WellingtonC.c to works with python 3.11 + unpin matplotlib version
+local_pyDNase_preinstallopts = (
+ "cd pyDNase/footprinting && rm WellingtonC.c && cythonize -i WellingtonC.pyx && cd .. && cd .. && "
+ "sed -i 's/matplotlib < 2.0.0/matplotlib/' setup.py && "
+)
+
+exts_list = [
+ ('jupyter_console', '6.6.3', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['309d33409fcc92ffdad25f0bcdf9a4a9daa61b6f341177570fdac03de5352485'],
+ }),
+ ('jupyter', '1.0.0', {
+ 'checksums': ['d9dc4b3318f310e34c82951ea5d6683f67bed7def4b259fafbfe4f1beb1d8e5f'],
+ }),
+ ('args', '0.1.0', {
+ 'checksums': ['a785b8d837625e9b61c39108532d95b85274acd679693b71ebb5156848fcf814'],
+ }),
+ ('clint', '0.5.1', {
+ 'checksums': ['05224c32b1075563d0b16d0015faaf9da43aa214e4a2140e51f08789e7a4c5aa'],
+ }),
+ ('pynetbox', '7.4.0', {
+ 'checksums': ['fd0b1f197b3880048408ff5ed84422dd599bcd9389e32cb06a09b9b0d55c1636'],
+ }),
+ ('absl-py', '1.4.0', {
+ 'modulename': 'absl',
+ 'checksums': ['d2c244d01048ba476e7c080bd2c6df5e141d211de80223460d5b3b8a2a58433d'],
+ }),
+ ('aerleon', '1.9.0', {
+ 'checksums': ['850cd621dda750263db313d4473302b48b82adaaa9220e6fd0677cb7900f95f6'],
+ }),
+ ('homer', '0.7.0', {
+ 'checksums': ['efaf9b3948f6aecdf88cc87c0296a18aed77c152489a7f85c571965fb16f9e57'],
+ }),
+ ('pyDNase', '0.3.0', {
+ 'preinstallopts': local_pyDNase_preinstallopts,
+ 'modulename': 'pyDNase',
+ 'checksums': ['dba03cadca37929a1cc41545e962136f29efc41f8e3c6de042c51c47ee04d558'],
+ }),
+ (name, version, {
+ 'checksums': ['59610a8c57e9fc525ec5d13b69efc8b513c78a85a595e0e2b0138da62a035978'],
+ }),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+sanity_check_commands = ["dictys --help"]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/d/dill/dill-0.3.8-GCCcore-13.2.0.eb b/easybuild/easyconfigs/d/dill/dill-0.3.8-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..0cc0fb8820c
--- /dev/null
+++ b/easybuild/easyconfigs/d/dill/dill-0.3.8-GCCcore-13.2.0.eb
@@ -0,0 +1,27 @@
+# This easyconfig was created by Simon Branford of the BEAR Software team at the University of Birmingham.
+easyblock = 'PythonPackage'
+
+name = 'dill'
+version = '0.3.8'
+
+homepage = 'https://pypi.org/project/dill/'
+description = """dill extends python's pickle module for serializing and de-serializing python objects to the majority
+ of the built-in python types. Serialization is the process of converting an object to a byte stream, and the inverse
+ of which is converting a byte stream back to on python object hierarchy."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+sources = [SOURCE_TAR_GZ]
+checksums = ['3ebe3c479ad625c4553aca177444d89b486b1d84982eeacded644afc0cf797ca']
+
+builddependencies = [('binutils', '2.40')]
+
+dependencies = [
+ ('Python', '3.11.5'),
+]
+
+use_pip = True
+download_dep_fail = True
+sanity_pip_check = True
+
+moduleclass = 'data'
diff --git a/easybuild/easyconfigs/d/dlb/dlb-3.4-gompi-2023b.eb b/easybuild/easyconfigs/d/dlb/dlb-3.4-gompi-2023b.eb
new file mode 100644
index 00000000000..687fec96e6b
--- /dev/null
+++ b/easybuild/easyconfigs/d/dlb/dlb-3.4-gompi-2023b.eb
@@ -0,0 +1,35 @@
+# vim: set syntax=python:
+easyblock = 'ConfigureMake'
+
+name = 'dlb'
+version = '3.4'
+
+description = """
+DLB is a dynamic library designed to speed up HPC hybrid applications (i.e.,
+two levels of parallelism) by improving the load balance of the outer level of
+parallelism (e.g., MPI) by dynamically redistributing the computational
+resources at the inner level of parallelism (e.g., OpenMP). at run time.
+"""
+homepage = 'https://pm.bsc.es/dlb/'
+docurls = ['https://pm.bsc.es/ftp/dlb/doc/user-guide/']
+
+toolchain = {'name': 'gompi', 'version': '2023b'}
+builddependencies = [('Python', '3.11.5')]
+
+sources = [SOURCELOWER_TAR_GZ]
+source_urls = ['https://pm.bsc.es/ftp/dlb/releases']
+
+checksums = ['6091d032c11a094a3ce0bec11c0a164783fdff83cb4ec870c9d8e192410c353a']
+
+configopts = '--with-mpi'
+
+sanity_check_paths = {
+ 'files': [
+ 'bin/dlb',
+ 'lib/libdlb.a', 'lib/libdlb.%s' % SHLIB_EXT,
+ 'lib64/libdlb.%s' % SHLIB_EXT
+ ],
+ 'dirs': ['include'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/d/dlb/dlb-3.4-iimpi-2023b.eb b/easybuild/easyconfigs/d/dlb/dlb-3.4-iimpi-2023b.eb
new file mode 100644
index 00000000000..a9bc96ba02a
--- /dev/null
+++ b/easybuild/easyconfigs/d/dlb/dlb-3.4-iimpi-2023b.eb
@@ -0,0 +1,35 @@
+# vim: set syntax=python:
+easyblock = 'ConfigureMake'
+
+name = 'dlb'
+version = '3.4'
+
+description = """
+DLB is a dynamic library designed to speed up HPC hybrid applications (i.e.,
+two levels of parallelism) by improving the load balance of the outer level of
+parallelism (e.g., MPI) by dynamically redistributing the computational
+resources at the inner level of parallelism (e.g., OpenMP). at run time.
+"""
+homepage = 'https://pm.bsc.es/dlb/'
+docurls = ['https://pm.bsc.es/ftp/dlb/doc/user-guide/']
+
+toolchain = {'name': 'iimpi', 'version': '2023b'}
+builddependencies = [('Python', '3.11.5')]
+
+sources = [SOURCELOWER_TAR_GZ]
+source_urls = ['https://pm.bsc.es/ftp/dlb/releases']
+
+checksums = ['6091d032c11a094a3ce0bec11c0a164783fdff83cb4ec870c9d8e192410c353a']
+
+configopts = '--with-mpi'
+
+sanity_check_paths = {
+ 'files': [
+ 'bin/dlb',
+ 'lib/libdlb.a', 'lib/libdlb.%s' % SHLIB_EXT,
+ 'lib64/libdlb.%s' % SHLIB_EXT
+ ],
+ 'dirs': ['include'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/d/dlib/dlib-19.24.6-foss-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/d/dlib/dlib-19.24.6-foss-2023a-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..c3ffb7be647
--- /dev/null
+++ b/easybuild/easyconfigs/d/dlib/dlib-19.24.6-foss-2023a-CUDA-12.1.1.eb
@@ -0,0 +1,50 @@
+easyblock = 'PythonPackage'
+
+name = 'dlib'
+version = '19.24.6'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://github.com/davisking/dlib'
+description = """Dlib is a modern C++ toolkit containing machine learning
+algorithms and tools for creating complex software in C++ to solve real world
+problems. It is used in both industry and academia in a wide range of domains
+including robotics, embedded devices, mobile phones, and large high performance
+computing environments."""
+
+# dlib can use BLAS/LAPACK, so using full toolchain
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'pic': True}
+
+sources = [SOURCE_TAR_GZ]
+patches = ['dlib-19.24.6_FlexiBLAS.patch']
+checksums = [
+ {'dlib-19.24.6.tar.gz': '77e3c28ac2c66141514b07cbb74b7c7f80381c019ce5fec99007980bc6490d7d'},
+ {'dlib-19.24.6_FlexiBLAS.patch': '47fb348d5f1cd064a135d33cf49fdef56ade24a64218311743076cb6b313738b'},
+]
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+ ('pkgconf', '1.9.5'),
+]
+dependencies = [
+ ('CUDA', '12.1.1', '', SYSTEM),
+ ('cuDNN', '8.9.2.26', versionsuffix, SYSTEM),
+ ('Python', '3.11.3'),
+ ('libjxl', '0.8.2'),
+ ('X11', '20230603'),
+]
+
+download_dep_fail = True
+use_pip = True
+
+preinstallopts = "export CMAKE_BUILD_PARALLEL_LEVEL=%(parallel)s && "
+preinstallopts += "sed -i 's/BLAS_REFERENCE cblas/BLAS_REFERENCE flexiblas/g' dlib/cmake_utils/find_blas.cmake && "
+
+sanity_check_paths = {
+ 'files': [],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_pip_check = True
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/d/dlib/dlib-19.24.6_FlexiBLAS.patch b/easybuild/easyconfigs/d/dlib/dlib-19.24.6_FlexiBLAS.patch
new file mode 100644
index 00000000000..bb12f35adbc
--- /dev/null
+++ b/easybuild/easyconfigs/d/dlib/dlib-19.24.6_FlexiBLAS.patch
@@ -0,0 +1,25 @@
+use FlexiBLAS as BLAS/LAPACK library
+author: Kenneth Hoste (HPC-UGent)
+diff -ru dlib-19.24.6.orig/dlib/cmake_utils/find_blas.cmake dlib-19.24.6/dlib/cmake_utils/find_blas.cmake
+--- dlib-19.24.6.orig/dlib/cmake_utils/find_blas.cmake 2024-02-18 14:43:31.000000000 +0100
++++ dlib-19.24.6/dlib/cmake_utils/find_blas.cmake 2024-09-20 20:35:35.927348475 +0200
+@@ -66,17 +66,15 @@
+
+ # First, search for libraries via pkg-config, which is the cleanest path
+ find_package(PkgConfig)
+- pkg_check_modules(BLAS_REFERENCE cblas)
+- pkg_check_modules(LAPACK_REFERENCE lapack)
++ pkg_check_modules(BLAS_REFERENCE flexiblas)
+ # Make sure the cblas found by pkgconfig actually has cblas symbols.
+ SET(CMAKE_REQUIRED_LIBRARIES "${BLAS_REFERENCE_LDFLAGS}")
+ CHECK_FUNCTION_EXISTS(cblas_ddot PKGCFG_HAVE_CBLAS)
+ if (BLAS_REFERENCE_FOUND AND LAPACK_REFERENCE_FOUND AND PKGCFG_HAVE_CBLAS)
+ set(blas_libraries "${BLAS_REFERENCE_LDFLAGS}")
+- set(lapack_libraries "${LAPACK_REFERENCE_LDFLAGS}")
+ set(blas_found 1)
+ set(lapack_found 1)
+- set(REQUIRES_LIBS "${REQUIRES_LIBS} cblas lapack")
++ set(REQUIRES_LIBS "${REQUIRES_LIBS} flexiblas")
+ message(STATUS "Found BLAS and LAPACK via pkg-config")
+ return()
+ endif()
diff --git a/easybuild/easyconfigs/d/dm-haiku/dm-haiku-0.0.12-foss-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/d/dm-haiku/dm-haiku-0.0.12-foss-2023a-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..f66f10ec557
--- /dev/null
+++ b/easybuild/easyconfigs/d/dm-haiku/dm-haiku-0.0.12-foss-2023a-CUDA-12.1.1.eb
@@ -0,0 +1,50 @@
+# update 0.0.12: Thomas Hoffmann (EMBL)
+easyblock = 'PythonBundle'
+
+name = 'dm-haiku'
+version = '0.0.12'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+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': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('jax', '0.4.25', versionsuffix), # required by jmp, also provides absl-py
+ ('PyYAML', '6.0'),
+ ('CUDA', '12.1.1', '', SYSTEM),
+ ('tensorstore', '0.1.65'),
+ ('protobuf-python', '4.24.0'),
+ ('Optax', '0.2.2', versionsuffix),
+]
+
+use_pip = True
+
+exts_list = [
+ ('jmp', '0.0.4', {
+ 'checksums': ['5dfeb0fd7c7a9f72a70fff0aab9d0cbfae32a809c02f4037ff3485ceb33e1730'],
+ }),
+ ('flax', '0.8.4', {
+ 'checksums': ['968683f850198e1aa5eb2d9d1e20bead880ef7423c14f042db9d60848cb1c90b'],
+ }),
+ ('nest_asyncio', '1.6.0', {
+ 'checksums': ['6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe'],
+ }),
+ ('orbax_checkpoint', '0.5.18', {
+ 'modulename': 'orbax.checkpoint',
+ 'preinstallopts': """sed -i 's/jax >= 0.4.25/&\\*/g' pyproject.toml &&""",
+ 'checksums': ['29f5d311b412760bd6a2fecab3bdbf75407bc00dc6d0457d19478258ecc8fa6d'],
+ }),
+ (name, version, {
+ 'modulename': 'haiku',
+ 'checksums': ['ba0b3acf71433156737fe342c486da11727e5e6c9e054245f4f9b8f0b53eb608'],
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/d/dm-haiku/dm-haiku-0.0.13-foss-2023a.eb b/easybuild/easyconfigs/d/dm-haiku/dm-haiku-0.0.13-foss-2023a.eb
new file mode 100644
index 00000000000..532f9092e79
--- /dev/null
+++ b/easybuild/easyconfigs/d/dm-haiku/dm-haiku-0.0.13-foss-2023a.eb
@@ -0,0 +1,34 @@
+easyblock = 'PythonBundle'
+
+name = 'dm-haiku'
+version = '0.0.13'
+
+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': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('jax', '0.4.25'), # required by jmp, also provides absl-py
+]
+
+use_pip = True
+
+exts_list = [
+ ('jmp', '0.0.4', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['6aa7adbddf2bd574b28c7faf6e81a735eb11f53386447896909c6968dc36807d'],
+ }),
+ ('dm_haiku', version, {
+ 'modulename': 'haiku',
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['ee9562c68a059f146ad07f555ca591cb8c11ef751afecc38353863562bd23f43'],
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/d/dm-haiku/dm-haiku-0.0.9-foss-2022a-CUDA-11.7.0.eb b/easybuild/easyconfigs/d/dm-haiku/dm-haiku-0.0.9-foss-2022a-CUDA-11.7.0.eb
new file mode 100644
index 00000000000..b2e1c44658a
--- /dev/null
+++ b/easybuild/easyconfigs/d/dm-haiku/dm-haiku-0.0.9-foss-2022a-CUDA-11.7.0.eb
@@ -0,0 +1,34 @@
+easyblock = 'PythonBundle'
+
+name = 'dm-haiku'
+version = '0.0.9'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+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': '2022a'}
+
+dependencies = [
+ ('CUDA', '11.7.0', '', SYSTEM),
+ ('Python', '3.10.4'),
+ ('SciPy-bundle', '2022.05'),
+ ('jax', '0.3.25', 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/dm-tree/dm-tree-0.1.8-GCCcore-12.3.0.eb b/easybuild/easyconfigs/d/dm-tree/dm-tree-0.1.8-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..bf55444d006
--- /dev/null
+++ b/easybuild/easyconfigs/d/dm-tree/dm-tree-0.1.8-GCCcore-12.3.0.eb
@@ -0,0 +1,29 @@
+easyblock = 'PythonPackage'
+
+name = 'dm-tree'
+version = '0.1.8'
+
+homepage = 'https://github.com/deepmind/tree'
+description = """dm-tree provides tree, a library for working with nested data structures. In a way,
+tree generalizes the builtin map function which only supports flat sequences, and
+allows to apply a function to each "leaf" preserving the overall structure."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['0fcaabbb14e7980377439e7140bd05552739ca5e515ecb3119f234acee4b9430']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('CMake', '3.26.3'),
+]
+dependencies = [('Python', '3.11.3')]
+
+download_dep_fail = True
+
+use_pip = True
+sanity_pip_check = True
+
+options = {'modulename': 'tree'}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/d/dorado/dorado-0.5.3-foss-2022a-CUDA-11.7.0.eb b/easybuild/easyconfigs/d/dorado/dorado-0.5.3-foss-2022a-CUDA-11.7.0.eb
new file mode 100644
index 00000000000..62d6434a9e1
--- /dev/null
+++ b/easybuild/easyconfigs/d/dorado/dorado-0.5.3-foss-2022a-CUDA-11.7.0.eb
@@ -0,0 +1,74 @@
+easyblock = 'CMakeMake'
+
+name = 'dorado'
+version = '0.5.3'
+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'}
+# -Wno-error option is required to fix:
+# error: void {anonymous}::convert_f32_to_f16_impl(c10::Half*, const float*, std::size_t) defined but not used
+toolchainopts = {'usempi': True, 'extra_cxxflags': "-Wno-error=unused-function"}
+
+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 && "
+# link in the ssl and crypto libs, to fix:
+# undefined reference to symbol 'SSL_get_peer_certificate@@OPENSSL_1_1_0'
+preconfigopts += "sed -i 's/OpenSSL::SSL/ssl\\n crypto/g' ../dorado/dorado/utils/CMakeLists.txt && "
+
+# 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 '/add_dependencies.*htslib_project/d' ../dorado/dorado/utils/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 && "
+preconfigopts += "sed -i 's/htslib/hts/g' ../dorado/dorado/utils/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 "
+# 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.6.1-foss-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/d/dorado/dorado-0.6.1-foss-2023a-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..378a9deec6b
--- /dev/null
+++ b/easybuild/easyconfigs/d/dorado/dorado-0.6.1-foss-2023a-CUDA-12.1.1.eb
@@ -0,0 +1,97 @@
+easyblock = 'CMakeMake'
+
+name = 'dorado'
+version = '0.6.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': '2023a'}
+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,
+}]
+patches = ['dorado-0.6.1_include-fstream.patch']
+checksums = [
+ None,
+ 'a7692a2d67422d808b3b81f3a297b7b89299ab0091e5d01f0b8a9aee9b942377',
+]
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('CMake', '3.26.3'),
+ ('patchelf', '0.18.0'),
+]
+
+dependencies = [
+ ('CUDA', '12.1.1', '', SYSTEM),
+ ('OpenSSL', '1.1', '', SYSTEM),
+ ('PyTorch', '2.1.2', '-CUDA-%(cudaver)s'),
+ ('HDF5', '1.14.0'),
+ ('zstd', '1.5.5'),
+ ('HTSlib', '1.18'),
+ ('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 && "
+# link in the ssl and crypto libs, to fix:
+# undefined reference to symbol 'SSL_get_peer_certificate@@OPENSSL_1_1_0'
+preconfigopts += "sed -i 's/OpenSSL::SSL/ssl\\n crypto/g' ../dorado/dorado/utils/CMakeLists.txt && "
+
+# 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 '/add_dependencies.*htslib_project/d' ../dorado/dorado/utils/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 && "
+preconfigopts += "sed -i 's/htslib/hts/g' ../dorado/dorado/utils/CMakeLists.txt && "
+
+# disable treating warnings like errors by stripping out -Werror
+# cfr. https://github.com/nanoporetech/dorado/issues/779
+preconfigopts += "sed -i 's/-Werror//g' ../dorado/cmake/Warnings.cmake && "
+
+configopts = "-DDORADO_INSTALL_PATH=%(installdir)s "
+configopts += "-DCUDA_TOOLKIT_ROOT_DIR=$EBROOTCUDA -DCMAKE_CUDA_COMPILER=$EBROOTCUDA/bin/nvcc "
+configopts += "-DDORADO_LIBTORCH_DIR=$EBROOTPYTORCH/lib "
+# 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" '
+
+# disable CMake fiddling with RPATH when EasyBuild is configured to use RPATH linking
+configopts += "$(if %(rpath_enabled)s; then "
+configopts += "echo '-DCMAKE_SKIP_INSTALL_RPATH=YES -DCMAKE_SKIP_RPATH=YES'; fi) "
+
+# CUDA libraries that are copied to installdir need to be patched to have an RPATH section
+# when EasyBuild is configured to use RPATH linking (required to pass RPATH sanity check);
+# by default, CMake sets RUNPATH to '$ORIGIN' rather than RPATH (but that's disabled above)
+postinstallcmds = [
+ "if %(rpath_enabled)s; then "
+ " for lib in $(ls %(installdir)s/lib/lib{cu,nv}*.so*); do "
+ " echo setting RPATH in $lib;"
+ " patchelf --force-rpath --set-rpath '$ORIGIN' $lib;"
+ " done;"
+ "fi",
+]
+
+sanity_check_paths = {
+ 'files': ['bin/dorado'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["dorado basecaller --help"]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/d/dorado/dorado-0.6.1_include-fstream.patch b/easybuild/easyconfigs/d/dorado/dorado-0.6.1_include-fstream.patch
new file mode 100644
index 00000000000..c1165f3fe5c
--- /dev/null
+++ b/easybuild/easyconfigs/d/dorado/dorado-0.6.1_include-fstream.patch
@@ -0,0 +1,27 @@
+add missing include to fix compiler errors like:
+
+ error: variable std::ofstream summary_out has initializer but incomplete type
+
+see also https://github.com/nanoporetech/dorado/pull/780
+
+author: Kenneth Hoste (HPC-UGent)
+--- dorado/dorado/cli/duplex.cpp.orig 2024-04-30 17:59:15.483935823 +0200
++++ dorado/dorado/cli/duplex.cpp 2024-04-30 17:59:34.658694274 +0200
+@@ -39,6 +39,7 @@
+ #include
+ #include
+ #include
++#include
+ #include
+ #include
+ #include
+--- dorado/dorado/cli/demux.cpp.orig 2024-04-30 18:13:40.327122548 +0200
++++ dorado/dorado/cli/demux.cpp 2024-04-30 18:15:37.576760942 +0200
+@@ -17,6 +17,7 @@
+ #include
+
+ #include
++#include
+ #include
+ #include
+ #include
diff --git a/easybuild/easyconfigs/d/dorado/dorado-0.7.3-foss-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/d/dorado/dorado-0.7.3-foss-2023a-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..9927f0492b4
--- /dev/null
+++ b/easybuild/easyconfigs/d/dorado/dorado-0.7.3-foss-2023a-CUDA-12.1.1.eb
@@ -0,0 +1,106 @@
+easyblock = 'CMakeMake'
+
+name = 'dorado'
+version = '0.7.3'
+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': '2023a'}
+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,
+}]
+patches = [
+ '%(name)s-%(version)s_include-fstream.patch',
+ '%(name)s-%(version)s_dont_install_external_libraries.patch',
+]
+
+checksums = [
+ None,
+ 'a32cbd34185bcc5ae3d552a072e396825aa7184187cd11c70a4380618387a530',
+ '2a250d606c0ae17f47d99981309fa204a1394ddd81851a1d530dcd0aea2306ac',
+]
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('CMake', '3.26.3'),
+ ('patchelf', '0.18.0'),
+]
+
+dependencies = [
+ ('CUDA', '12.1.1', '', SYSTEM),
+ ('OpenSSL', '1.1', '', SYSTEM),
+ ('PyTorch', '2.1.2', '-CUDA-%(cudaver)s'),
+ ('HDF5', '1.14.0'),
+ ('zstd', '1.5.5'),
+ ('HTSlib', '1.18'),
+ ('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 && "
+# link in the ssl and crypto libs, to fix:
+# undefined reference to symbol 'SSL_get_peer_certificate@@OPENSSL_1_1_0'
+preconfigopts += "sed -i 's/OpenSSL::SSL/ssl\\n crypto/g' ../dorado/dorado/utils/CMakeLists.txt && "
+
+# 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 '/add_dependencies.*htslib_project/d' ../dorado/dorado/utils/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 && "
+preconfigopts += "sed -i 's/htslib/hts/g' ../dorado/dorado/utils/CMakeLists.txt && "
+
+# disable treating warnings like errors by stripping out -Werror
+# cfr. https://github.com/nanoporetech/dorado/issues/779
+preconfigopts += "sed -i 's/-Werror//g' ../dorado/cmake/Warnings.cmake && "
+
+_copts = [
+ "-DCUDA_TOOLKIT_ROOT_DIR=$EBROOTCUDA",
+ "-DCMAKE_CUDA_COMPILER=$EBROOTCUDA/bin/nvcc",
+ '-DOPENSSL_ROOT_DIR=$EBROOTOPENSSL',
+ "-DDORADO_LIBTORCH_DIR=$EBROOTPYTORCH/lib",
+ # 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'
+ '-DCMAKE_C_FLAGS="$CFLAGS -pthread"',
+]
+
+configopts = ' '.join(_copts) + ' '
+
+# disable CMake fiddling with RPATH when EasyBuild is configured to use RPATH linking
+configopts += "$(if %(rpath_enabled)s; then "
+configopts += "echo '-DCMAKE_SKIP_INSTALL_RPATH=YES -DCMAKE_SKIP_RPATH=YES'; fi) "
+
+# CUDA libraries that are copied to installdir need to be patched to have an RPATH section
+# when EasyBuild is configured to use RPATH linking (required to pass RPATH sanity check);
+# by default, CMake sets RUNPATH to '$ORIGIN' rather than RPATH (but that's disabled above)
+postinstallcmds = [
+ "if %(rpath_enabled)s; then "
+ " for lib in $(ls %(installdir)s/lib/lib{cu,nv}*.so*); do "
+ " echo setting RPATH in $lib;"
+ " patchelf --force-rpath --set-rpath '$ORIGIN' $lib;"
+ " done;"
+ "fi",
+]
+
+sanity_check_paths = {
+ 'files': ['bin/dorado'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["dorado basecaller --help"]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/d/dorado/dorado-0.7.3_dont_install_external_libraries.patch b/easybuild/easyconfigs/d/dorado/dorado-0.7.3_dont_install_external_libraries.patch
new file mode 100644
index 00000000000..67bd9efee78
--- /dev/null
+++ b/easybuild/easyconfigs/d/dorado/dorado-0.7.3_dont_install_external_libraries.patch
@@ -0,0 +1,54 @@
+Don't install external libraries in Dorado's lib directory.
+
+Åke Sandgren, 2024-09-02
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index a84c7524..0791dda8 100755
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -431,7 +431,7 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
+ else()
+ # bundle the libraries from the cuda toolkit
+ file(GLOB NATIVE_CUDA_LIBS "${CUDAToolkit_TARGET_DIR}/targets/${CMAKE_SYSTEM_PROCESSOR}-linux/lib/${LIB}")
+- install(FILES ${NATIVE_CUDA_LIBS} DESTINATION lib COMPONENT redist_libs)
++ #install(FILES ${NATIVE_CUDA_LIBS} DESTINATION lib COMPONENT redist_libs)
+ endif()
+ endforeach()
+
+@@ -444,14 +444,14 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
+ RESOLVE_SYMLINKS("${DEBUG_LIBRARIES}" NEW_HDF_DEBUG_LIBRARIES)
+ foreach(HDF_LIB IN LISTS NEW_HDF_DEBUG_LIBRARIES)
+ if(${HDF_LIB} MATCHES "hdf5")
+- install(FILES ${HDF_LIB} DESTINATION lib COMPONENT redist_libs CONFIGURATIONS Debug)
++ #install(FILES ${HDF_LIB} DESTINATION lib COMPONENT redist_libs CONFIGURATIONS Debug)
+ endif()
+ endforeach()
+ FILTER_LIST("${HDF5_C_LIBRARIES}" RELEASE_LIBRARIES optimized debug ${SHARED_LIB_EXT})
+ RESOLVE_SYMLINKS("${RELEASE_LIBRARIES}" NEW_HDF_RELEASE_LIBRARIES)
+ foreach(HDF_LIB IN LISTS NEW_HDF_RELEASE_LIBRARIES)
+ if(${HDF_LIB} MATCHES "hdf5")
+- install(FILES ${HDF_LIB} DESTINATION lib COMPONENT redist_libs CONFIGURATIONS Release ReleaseWithDebInfo)
++ #install(FILES ${HDF_LIB} DESTINATION lib COMPONENT redist_libs CONFIGURATIONS Release ReleaseWithDebInfo)
+ endif()
+ endforeach()
+ endif()
+@@ -459,17 +459,17 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
+ find_library(SZ_DLL sz REQUIRED)
+ get_filename_component(SZ_DLL_PATH ${SZ_DLL} DIRECTORY)
+ file(GLOB SZ_DLLS "${SZ_DLL_PATH}/libsz.so*")
+- install(FILES ${SZ_DLLS} DESTINATION lib COMPONENT redist_libs)
++ #install(FILES ${SZ_DLLS} DESTINATION lib COMPONENT redist_libs)
+
+ find_library(AEC_DLL aec REQUIRED)
+ get_filename_component(AEC_DLL_PATH ${AEC_DLL} DIRECTORY)
+ file(GLOB AEC_DLLS "${AEC_DLL_PATH}/libaec.so*")
+- install(FILES ${AEC_DLLS} DESTINATION lib COMPONENT redist_libs)
++ #install(FILES ${AEC_DLLS} DESTINATION lib COMPONENT redist_libs)
+
+ # If zstd has been dynamically linked, add the .so to the package
+ get_filename_component(ZSTD_LIBRARY_PATH ${ZSTD_LIBRARY_RELEASE} DIRECTORY)
+ file(GLOB ZSTD_DLLS "${ZSTD_LIBRARY_PATH}/*zstd.so*")
+- install(FILES ${ZSTD_DLLS} DESTINATION lib COMPONENT redist_libs)
++ #install(FILES ${ZSTD_DLLS} DESTINATION lib COMPONENT redist_libs)
+
+ elseif(WIN32)
+ file(GLOB TORCH_DLLS "${TORCH_LIB}/lib/*.dll")
diff --git a/easybuild/easyconfigs/d/dorado/dorado-0.7.3_include-fstream.patch b/easybuild/easyconfigs/d/dorado/dorado-0.7.3_include-fstream.patch
new file mode 100644
index 00000000000..bf8d2346e5d
--- /dev/null
+++ b/easybuild/easyconfigs/d/dorado/dorado-0.7.3_include-fstream.patch
@@ -0,0 +1,27 @@
+add missing include to fix compiler errors like:
+
+ error: variable std::ofstream summary_out has initializer but incomplete type
+
+see also https://github.com/nanoporetech/dorado/pull/780
+
+author: Kenneth Hoste (HPC-UGent)
+--- dorado/dorado/cli/duplex.cpp.orig 2024-04-30 17:59:15.483935823 +0200
++++ dorado/dorado/cli/duplex.cpp 2024-04-30 17:59:34.658694274 +0200
+@@ -39,6 +39,7 @@
+ #include
+ #include
+ #include
++#include
+ #include
+ #include
+ #include
+--- dorado/dorado/cli/demux.cpp.orig 2024-04-30 18:13:40.327122548 +0200
++++ dorado/dorado/cli/demux.cpp 2024-04-30 18:15:37.576760942 +0200
+@@ -17,6 +17,7 @@
+ #include
+
+ #include
++#include
+ #include
+ #include
+ #include
\ No newline at end of file
diff --git a/easybuild/easyconfigs/d/dorado/dorado-0.8.0-foss-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/d/dorado/dorado-0.8.0-foss-2023a-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..778c00e0d6e
--- /dev/null
+++ b/easybuild/easyconfigs/d/dorado/dorado-0.8.0-foss-2023a-CUDA-12.1.1.eb
@@ -0,0 +1,105 @@
+easyblock = 'CMakeMake'
+
+name = 'dorado'
+version = '0.8.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': '2023a'}
+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,
+}]
+patches = [
+ '%(name)s-%(version)s_dont_install_external_libraries.patch',
+]
+
+checksums = [
+ None,
+ '28942b7057af00c574a5e70d33a58b4036fd09ae0b041f45b67581c8dda832b1',
+]
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('CMake', '3.26.3'),
+ ('patchelf', '0.18.0'),
+]
+
+dependencies = [
+ ('CUDA', '12.1.1', '', SYSTEM),
+ ('OpenSSL', '1.1', '', SYSTEM),
+ ('PyTorch', '2.1.2', '-CUDA-%(cudaver)s'),
+ ('HDF5', '1.14.0'),
+ ('zstd', '1.5.5'),
+ ('HTSlib', '1.18'),
+ ('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 && "
+# link in the ssl and crypto libs, to fix:
+# undefined reference to symbol 'SSL_get_peer_certificate@@OPENSSL_1_1_0'
+preconfigopts += "sed -i 's/OpenSSL::SSL/ssl\\n crypto/g' ../dorado/dorado/utils/CMakeLists.txt && "
+
+# 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 '/add_dependencies.*htslib_project/d' ../dorado/dorado/utils/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 && "
+preconfigopts += "sed -i 's/htslib/hts/g' ../dorado/dorado/utils/CMakeLists.txt && "
+preconfigopts += "sed -i 's/htslib/hts/g' ../dorado/dorado/torch_utils/CMakeLists.txt && "
+
+# disable treating warnings like errors by stripping out -Werror
+# cfr. https://github.com/nanoporetech/dorado/issues/779
+preconfigopts += "sed -i 's/-Werror//g' ../dorado/cmake/Warnings.cmake && "
+
+_copts = [
+ "-DCUDA_TOOLKIT_ROOT_DIR=$EBROOTCUDA",
+ "-DCMAKE_CUDA_COMPILER=$EBROOTCUDA/bin/nvcc",
+ '-DOPENSSL_ROOT_DIR=$EBROOTOPENSSL',
+ "-DDORADO_LIBTORCH_DIR=$EBROOTPYTORCH/lib",
+ # 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'
+ '-DCMAKE_C_FLAGS="$CFLAGS -pthread"',
+]
+
+configopts = ' '.join(_copts) + ' '
+
+# disable CMake fiddling with RPATH when EasyBuild is configured to use RPATH linking
+configopts += "$(if %(rpath_enabled)s; then "
+configopts += "echo '-DCMAKE_SKIP_INSTALL_RPATH=YES -DCMAKE_SKIP_RPATH=YES'; fi) "
+
+# CUDA libraries that are copied to installdir need to be patched to have an RPATH section
+# when EasyBuild is configured to use RPATH linking (required to pass RPATH sanity check);
+# by default, CMake sets RUNPATH to '$ORIGIN' rather than RPATH (but that's disabled above)
+postinstallcmds = [
+ "if %(rpath_enabled)s; then "
+ " for lib in $(ls %(installdir)s/lib/lib{cu,nv}*.so*); do "
+ " echo setting RPATH in $lib;"
+ " patchelf --force-rpath --set-rpath '$ORIGIN' $lib;"
+ " done;"
+ "fi",
+]
+
+sanity_check_paths = {
+ 'files': ['bin/dorado'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["dorado basecaller --help"]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/d/dorado/dorado-0.8.0_dont_install_external_libraries.patch b/easybuild/easyconfigs/d/dorado/dorado-0.8.0_dont_install_external_libraries.patch
new file mode 100644
index 00000000000..cd205c1cbb7
--- /dev/null
+++ b/easybuild/easyconfigs/d/dorado/dorado-0.8.0_dont_install_external_libraries.patch
@@ -0,0 +1,51 @@
+Don't install external libraries in Dorado's lib directory.
+Simon Branford (University of Birmingham)
+--- cmake/InstallRedistLibs.cmake.orig 2024-09-27 13:43:56.612497000 +0100
++++ cmake/InstallRedistLibs.cmake 2024-09-27 13:44:31.683753000 +0100
+@@ -46,7 +46,7 @@
+ else()
+ # bundle the libraries from the cuda toolkit
+ file(GLOB NATIVE_CUDA_LIBS "${CUDAToolkit_TARGET_DIR}/targets/${CMAKE_SYSTEM_PROCESSOR}-linux/lib/${LIB}")
+- install(FILES ${NATIVE_CUDA_LIBS} DESTINATION lib COMPONENT redist_libs)
++ #install(FILES ${NATIVE_CUDA_LIBS} DESTINATION lib COMPONENT redist_libs)
+ endif()
+ endforeach()
+
+@@ -59,14 +59,14 @@
+ RESOLVE_SYMLINKS("${DEBUG_LIBRARIES}" NEW_HDF_DEBUG_LIBRARIES)
+ foreach(HDF_LIB IN LISTS NEW_HDF_DEBUG_LIBRARIES)
+ if(${HDF_LIB} MATCHES "hdf5")
+- install(FILES ${HDF_LIB} DESTINATION lib COMPONENT redist_libs CONFIGURATIONS Debug)
++ #install(FILES ${HDF_LIB} DESTINATION lib COMPONENT redist_libs CONFIGURATIONS Debug)
+ endif()
+ endforeach()
+ FILTER_LIST("${HDF5_C_LIBRARIES}" RELEASE_LIBRARIES optimized debug ${SHARED_LIB_EXT})
+ RESOLVE_SYMLINKS("${RELEASE_LIBRARIES}" NEW_HDF_RELEASE_LIBRARIES)
+ foreach(HDF_LIB IN LISTS NEW_HDF_RELEASE_LIBRARIES)
+ if(${HDF_LIB} MATCHES "hdf5")
+- install(FILES ${HDF_LIB} DESTINATION lib COMPONENT redist_libs CONFIGURATIONS Release ReleaseWithDebInfo)
++ #install(FILES ${HDF_LIB} DESTINATION lib COMPONENT redist_libs CONFIGURATIONS Release ReleaseWithDebInfo)
+ endif()
+ endforeach()
+ endif()
+@@ -74,17 +74,17 @@
+ find_library(SZ_DLL sz REQUIRED)
+ get_filename_component(SZ_DLL_PATH ${SZ_DLL} DIRECTORY)
+ file(GLOB SZ_DLLS "${SZ_DLL_PATH}/libsz.so*")
+- install(FILES ${SZ_DLLS} DESTINATION lib COMPONENT redist_libs)
++ #install(FILES ${SZ_DLLS} DESTINATION lib COMPONENT redist_libs)
+
+ find_library(AEC_DLL aec REQUIRED)
+ get_filename_component(AEC_DLL_PATH ${AEC_DLL} DIRECTORY)
+ file(GLOB AEC_DLLS "${AEC_DLL_PATH}/libaec.so*")
+- install(FILES ${AEC_DLLS} DESTINATION lib COMPONENT redist_libs)
++ #install(FILES ${AEC_DLLS} DESTINATION lib COMPONENT redist_libs)
+
+ # If zstd has been dynamically linked, add the .so to the package
+ get_filename_component(ZSTD_LIBRARY_PATH ${ZSTD_LIBRARY_RELEASE} DIRECTORY)
+ file(GLOB ZSTD_DLLS "${ZSTD_LIBRARY_PATH}/*zstd.so*")
+- install(FILES ${ZSTD_DLLS} DESTINATION lib COMPONENT redist_libs)
++ #install(FILES ${ZSTD_DLLS} DESTINATION lib COMPONENT redist_libs)
+
+ elseif(WIN32)
+ file(GLOB TORCH_DLLS "${TORCH_LIB}/lib/*.dll")
diff --git a/easybuild/easyconfigs/d/dotNET-Core/dotNET-Core-6.0.420.eb b/easybuild/easyconfigs/d/dotNET-Core/dotNET-Core-6.0.420.eb
new file mode 100644
index 00000000000..46eb6c127d7
--- /dev/null
+++ b/easybuild/easyconfigs/d/dotNET-Core/dotNET-Core-6.0.420.eb
@@ -0,0 +1,56 @@
+easyblock = "Tarball"
+
+name = "dotNET-Core"
+version = "6.0.420" # uses the SDK version string, runtime is 6.0.28
+
+homepage = "https://www.microsoft.com/net/"
+description = """.NET is a free, cross-platform, open source developer platform for building many different types of
+applications. With .NET, you can use multiple languages, editors, and libraries to build for web, mobile, desktop,
+gaming, and IoT.
+
+Contains the SDK and the Runtime.
+"""
+
+toolchain = SYSTEM
+
+local_variant = {'aarch64': 'linux-x64', 'x86_64': 'linux-x64', 'arm64': 'osx-x86'}.get(ARCH)
+source_urls = [
+ 'https://download.visualstudio.microsoft.com/download/pr/'
+ 'b521d7d2-108b-43d9-861a-58b2505a125a/0023553690a68328b33bc30a38f151db', # x86_64
+ 'https://download.visualstudio.microsoft.com/download/pr/'
+ 'd4704678-77d5-433e-97d3-a72b5a1f3316/b73d2c0c05f3df0c119b68418404a618', # arm64
+ 'https://download.visualstudio.microsoft.com/download/pr/'
+ '4a4728b7-96e6-48f1-a072-6906205e6a58/de54331936784caded5ecd5d10b0ee81', # osx arm64
+]
+sources = ["dotnet-sdk-%%(version)s-%s.tar.gz" % local_variant]
+checksums = [{
+ 'dotnet-sdk-6.0.420-linux-x64.tar.gz': 'd6ed3530d0d01a5b2210c5ee7eb9ffb8510b6cdb94fe41704eb72e2543a5bbc7',
+ 'dotnet-sdk-6.0.420-linux-arm64.tar.gz': 'bdb39576bde027736200a636fecd116ddbef02b3249b96c6e129dda040198654',
+ 'dotnet-sdk-6.0.420-osx-arm64.tar.gz': 'f2e57cb199a00d9d4cabd04dde23445dda78bca30cc6fa758a0ef1fb7a9d1a21',
+}]
+
+sanity_check_paths = {
+ "files": ["dotnet", "LICENSE.txt"],
+ "dirs": [
+ "shared/Microsoft.NETCore.App/",
+ "shared/Microsoft.AspNetCore.App/",
+ "sdk",
+ ],
+}
+
+sanity_check_commands = ['dotnet --help']
+
+modextrapaths = {"PATH": ""}
+
+# We are not sending usage stats to Microsoft...hopefully.
+# The .NET Core tools collect usage data in order to help us improve your experience. The data is anonymous.
+# It is collected by Microsoft and shared with the community.
+# You can opt-out of telemetry by setting the DOTNET_CLI_TELEMETRY_OPTOUT environment variable to '1' or 'true' using
+# your favorite shell.
+# Read more about .NET Core CLI Tools telemetry: https://aka.ms/dotnet-cli-telemetry
+modextravars = {
+ "DOTNET_ROOT": "%(installdir)s",
+ "DOTNET_CLI_TELEMETRY_OPTOUT": "1",
+}
+
+moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/d/dotNET-Core/dotNET-Core-6.0.eb b/easybuild/easyconfigs/d/dotNET-Core/dotNET-Core-6.0.eb
new file mode 100644
index 00000000000..ee025cdf51d
--- /dev/null
+++ b/easybuild/easyconfigs/d/dotNET-Core/dotNET-Core-6.0.eb
@@ -0,0 +1,18 @@
+easyblock = 'ModuleRC'
+
+name = 'dotNET-Core'
+version = '6.0'
+
+homepage = "https://www.microsoft.com/net/"
+description = """.NET is a free, cross-platform, open source developer platform for building many different types of
+applications. With .NET, you can use multiple languages, editors, and libraries to build for web, mobile, desktop,
+gaming, and IoT.
+
+Contains the SDK and the Runtime.
+"""
+
+toolchain = SYSTEM
+
+dependencies = [('dotNET-Core', '%(version)s.420')]
+
+moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/d/dotNET-Core/dotNET-Core-8.0.203.eb b/easybuild/easyconfigs/d/dotNET-Core/dotNET-Core-8.0.203.eb
new file mode 100644
index 00000000000..af56fd166a2
--- /dev/null
+++ b/easybuild/easyconfigs/d/dotNET-Core/dotNET-Core-8.0.203.eb
@@ -0,0 +1,56 @@
+easyblock = "Tarball"
+
+name = "dotNET-Core"
+version = "8.0.203" # uses the SDK version string, runtime is 8.0.3
+
+homepage = "https://www.microsoft.com/net/"
+description = """.NET is a free, cross-platform, open source developer platform for building many different types of
+applications. With .NET, you can use multiple languages, editors, and libraries to build for web, mobile, desktop,
+gaming, and IoT.
+
+Contains the SDK and the Runtime.
+"""
+
+toolchain = SYSTEM
+
+local_variant = {'aarch64': 'linux-x64', 'x86_64': 'linux-x64', 'arm64': 'osx-x86'}.get(ARCH)
+source_urls = [
+ 'https://download.visualstudio.microsoft.com/download/pr/'
+ '656a3402-6889-400f-927f-7f956856e58b/93750973d6eedd17c6d963658e7ec214', # x86_64
+ 'https://download.visualstudio.microsoft.com/download/pr/'
+ 'aed2eece-af6d-42e6-8683-21e7835b7479/786b4f225591440a741c1702407fb7b3', # arm64
+ 'https://download.visualstudio.microsoft.com/download/pr/'
+ '9019f736-bf0c-45c6-8ea1-c2370f7c59f1/e88a79c0abd77fd38de8271b7c06b293', # osx arm64
+]
+sources = ["dotnet-sdk-%%(version)s-%s.tar.gz" % local_variant]
+checksums = [{
+ 'dotnet-sdk-8.0.203-linux-x64.tar.gz': 'ce96088bec5b3a19397a4269b3c6041ca1da6147723c24603bbe0e6b36e0dd72',
+ 'dotnet-sdk-8.0.203-linux-arm64.tar.gz': '245834a0218a3ecd85f5adbef14e57a9970f2e56c498ad8fbfd3efcdad5c0b98',
+ 'dotnet-sdk-8.0.203-osx-arm64.tar.gz': '57221d5f2f558d368c7c9d1619f1450672443cd578d2db1f967dfc46b6e41447',
+}]
+
+sanity_check_paths = {
+ "files": ["dotnet", "LICENSE.txt"],
+ "dirs": [
+ "shared/Microsoft.NETCore.App/",
+ "shared/Microsoft.AspNetCore.App/",
+ "sdk",
+ ],
+}
+
+sanity_check_commands = ['dotnet --help']
+
+modextrapaths = {"PATH": ""}
+
+# We are not sending usage stats to Microsoft...hopefully.
+# The .NET Core tools collect usage data in order to help us improve your experience. The data is anonymous.
+# It is collected by Microsoft and shared with the community.
+# You can opt-out of telemetry by setting the DOTNET_CLI_TELEMETRY_OPTOUT environment variable to '1' or 'true' using
+# your favorite shell.
+# Read more about .NET Core CLI Tools telemetry: https://aka.ms/dotnet-cli-telemetry
+modextravars = {
+ "DOTNET_ROOT": "%(installdir)s",
+ "DOTNET_CLI_TELEMETRY_OPTOUT": "1",
+}
+
+moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/d/dotNET-Core/dotNET-Core-8.0.eb b/easybuild/easyconfigs/d/dotNET-Core/dotNET-Core-8.0.eb
new file mode 100644
index 00000000000..e96d2cda876
--- /dev/null
+++ b/easybuild/easyconfigs/d/dotNET-Core/dotNET-Core-8.0.eb
@@ -0,0 +1,18 @@
+easyblock = 'ModuleRC'
+
+name = 'dotNET-Core'
+version = '8.0'
+
+homepage = "https://www.microsoft.com/net/"
+description = """.NET is a free, cross-platform, open source developer platform for building many different types of
+applications. With .NET, you can use multiple languages, editors, and libraries to build for web, mobile, desktop,
+gaming, and IoT.
+
+Contains the SDK and the Runtime.
+"""
+
+toolchain = SYSTEM
+
+dependencies = [('dotNET-Core', '%(version)s.203')]
+
+moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/d/double-conversion/double-conversion-3.3.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/d/double-conversion/double-conversion-3.3.0-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..1f2aa192a0d
--- /dev/null
+++ b/easybuild/easyconfigs/d/double-conversion/double-conversion-3.3.0-GCCcore-13.2.0.eb
@@ -0,0 +1,35 @@
+
+easyblock = 'CMakeMake'
+
+name = 'double-conversion'
+version = '3.3.0'
+
+homepage = 'https://github.com/google/double-conversion'
+description = "Efficient binary-decimal and decimal-binary conversion routines for IEEE doubles."
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+source_urls = ['https://github.com/google/double-conversion/archive']
+sources = ['v%(version)s.tar.gz']
+checksums = ['04ec44461850abbf33824da84978043b22554896b552c5fd11a9c5ae4b4d296e']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('CMake', '3.27.6'),
+]
+
+# Build static lib, static lib with -fPIC and shared lib
+configopts = [
+ '',
+ '-DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_STATIC_LIBRARY_SUFFIX_CXX=_pic.a',
+ '-DBUILD_SHARED_LIBS=ON'
+]
+
+sanity_check_paths = {
+ 'files': ['include/double-conversion/%s.h' % h for h in ['bignum', 'cached-powers', 'diy-fp', 'double-conversion',
+ 'fast-dtoa', 'fixed-dtoa', 'ieee', 'strtod', 'utils']] +
+ ['lib/libdouble-conversion.%s' % e for e in ['a', SHLIB_EXT]] + ['lib/libdouble-conversion_pic.a'],
+ 'dirs': [],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/d/double-conversion/double-conversion-3.3.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/d/double-conversion/double-conversion-3.3.0-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..c4b5780f6ee
--- /dev/null
+++ b/easybuild/easyconfigs/d/double-conversion/double-conversion-3.3.0-GCCcore-13.3.0.eb
@@ -0,0 +1,36 @@
+
+easyblock = 'CMakeMake'
+
+name = 'double-conversion'
+version = '3.3.0'
+
+homepage = 'https://github.com/google/double-conversion'
+description = "Efficient binary-decimal and decimal-binary conversion routines for IEEE doubles."
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://github.com/google/%(name)s/archive']
+sources = ['v%(version)s.tar.gz']
+checksums = ['04ec44461850abbf33824da84978043b22554896b552c5fd11a9c5ae4b4d296e']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('CMake', '3.29.3'),
+]
+
+# Build static lib, static lib with -fPIC and shared lib
+configopts = [
+ '',
+ "-DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_STATIC_LIBRARY_SUFFIX_CXX=_pic.a",
+ '-DBUILD_SHARED_LIBS=ON',
+]
+
+
+sanity_check_paths = {
+ 'files': ['include/double-conversion/%s.h' % h for h in ['bignum', 'cached-powers', 'diy-fp', 'double-conversion',
+ 'fast-dtoa', 'fixed-dtoa', 'ieee', 'strtod', 'utils']] +
+ ['lib/libdouble-conversion.%s' % e for e in ['a', SHLIB_EXT]] + ['lib/libdouble-conversion_pic.a'],
+ 'dirs': [],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/d/dtcmp/dtcmp-1.1.5-gompi-2024a.eb b/easybuild/easyconfigs/d/dtcmp/dtcmp-1.1.5-gompi-2024a.eb
new file mode 100644
index 00000000000..5143b629849
--- /dev/null
+++ b/easybuild/easyconfigs/d/dtcmp/dtcmp-1.1.5-gompi-2024a.eb
@@ -0,0 +1,39 @@
+#
+# Author: Robert Mijakovic
+#
+easyblock = 'ConfigureMake'
+
+name = 'dtcmp'
+version = '1.1.5'
+
+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': '2024a'}
+
+github_account = 'LLNL'
+source_urls = [GITHUB_SOURCE]
+sources = ['v%(version)s.tar.gz']
+checksums = ['5c3d672fcf1be81e9afb65ef3f860a7dfe0f1bd79360ac63848acfe4d44439c9']
+
+builddependencies = [
+ ('Autotools', '20231222'),
+ ('pkgconf', '2.2.0'),
+]
+
+dependencies = [
+ ('lwgrp', '1.0.6'),
+]
+
+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/dub/dub-1.38.1-GCCcore-13.2.0.eb b/easybuild/easyconfigs/d/dub/dub-1.38.1-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..cfd077260fb
--- /dev/null
+++ b/easybuild/easyconfigs/d/dub/dub-1.38.1-GCCcore-13.2.0.eb
@@ -0,0 +1,31 @@
+easyblock = 'CmdCp'
+
+name = 'dub'
+version = '1.38.1'
+
+homepage = 'https://github.com/dlang/dub'
+description = "Package and build manager for D applications and libraries"
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+source_urls = ['https://github.com/dlang/dub/archive/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['a7c9a2f819fdea7359f298cba76e81a24ca1536d756c3b4b98c2480463c37907']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('LDC', '1.39.0'),
+]
+
+cmds_map = [('.*', "ldmd2 -v -run build.d")]
+
+files_to_copy = [(['bin/dub'], 'bin')]
+
+sanity_check_paths = {
+ 'files': ['bin/dub'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["dub --help"]
+
+moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/d/duplex-tools/duplex-tools-0.3.3-foss-2023a.eb b/easybuild/easyconfigs/d/duplex-tools/duplex-tools-0.3.3-foss-2023a.eb
new file mode 100644
index 00000000000..fb67d050e02
--- /dev/null
+++ b/easybuild/easyconfigs/d/duplex-tools/duplex-tools-0.3.3-foss-2023a.eb
@@ -0,0 +1,68 @@
+# Author: Jasper Grimm (UoY)
+# Updated: Petr Král, Pavel Tománek (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': '2023a'}
+
+_minimap2_ver = '2.26'
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('matplotlib', '3.7.2'),
+ ('edlib', '1.3.9'),
+ ('minimap2', _minimap2_ver),
+ ('python-parasail', '1.3.4'),
+ ('Pysam', '0.22.0'),
+ ('tqdm', '4.66.1'),
+ ('Arrow', '14.0.1'),
+ ('h5py', '3.9.0'),
+ ('pod5-file-format', '0.3.10'),
+ ('parasail', '2.6.2'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('mappy', _minimap2_ver, {
+ 'checksums': ['e53fbe9a3ea8762a64b8103f4f779c9fb16d418eaa0a731f45cebc83867a9b71'],
+ }),
+ ('natsort', '8.4.0', {
+ 'checksums': ['45312c4a0e5507593da193dedd04abb1469253b601ecaf63445ad80f0a1ea581'],
+ }),
+ ('pyfastx', '2.0.1', {
+ # PYPI source tarball is incomplete, causes ImportErrors
+ # see https://github.com/lmdu/pyfastx/issues/60
+ 'sources': [{'download_filename': '%(version)s.tar.gz', 'filename': SOURCE_TAR_GZ}],
+ 'source_urls': ['https://github.com/lmdu/%(name)s/archive'],
+ 'checksums': ['93aff63ce88bc5cfe7152d8dcb3f2164356bcd8f95a68fb20af107e59a7f9b55'],
+ }),
+ (name, version, {
+ 'sources': [{'download_filename': 'duplex_tools-%(version)s.tar.gz', 'filename': SOURCE_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/e/E-ANTIC/E-ANTIC-2.0.2-gfbf-2023b.eb b/easybuild/easyconfigs/e/E-ANTIC/E-ANTIC-2.0.2-gfbf-2023b.eb
new file mode 100644
index 00000000000..fcb851f1091
--- /dev/null
+++ b/easybuild/easyconfigs/e/E-ANTIC/E-ANTIC-2.0.2-gfbf-2023b.eb
@@ -0,0 +1,38 @@
+easyblock = 'ConfigureMake'
+
+name = 'E-ANTIC'
+version = '2.0.2'
+
+homepage = 'https://github.com/flatsurf/e-antic'
+description = """E-ANTIC is a C/C++ library to deal with real embedded number fields built on
+top of ANTIC (https://github.com/wbhart/antic). Its aim is to have as fast as
+possible exact arithmetic operations and comparisons."""
+
+toolchain = {'name': 'gfbf', 'version': '2023b'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/flatsurf/e-antic/releases/download/%(version)s']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['8328e6490129dfec7f4aa478ebd54dc07686bd5e5e7f5f30dcf20c0f11b67f60']
+
+dependencies = [
+ ('FLINT', '3.1.1'),
+ ('Boost', '1.83.0'),
+ ('Python', '3.11.5'),
+ ('cppyy', '3.1.2'),
+]
+
+configopts = '--without-benchmark --without-byexample --without-pytest --without-doc'
+
+sanity_check_paths = {
+ 'files': ['lib/lib%s.%s' % (lib, ext) for lib in ['eantic', 'eanticxx'] for ext in ['a', SHLIB_EXT]] +
+ ['include/e-antic/%s.h' % h for h in ['e-antic', 'fmpq_poly_extra', 'renf',
+ 'renf_elem', 'renfxx']],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = ["python -c 'import pyeantic'"]
+
+modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'}
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/e/ECL/ECL-24.5.10-GCCcore-13.2.0.eb b/easybuild/easyconfigs/e/ECL/ECL-24.5.10-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..cb4390c3499
--- /dev/null
+++ b/easybuild/easyconfigs/e/ECL/ECL-24.5.10-GCCcore-13.2.0.eb
@@ -0,0 +1,32 @@
+easyblock = 'ConfigureMake'
+
+name = 'ECL'
+version = '24.5.10'
+
+homepage = 'https://ecl.common-lisp.dev/'
+description = """ECL (Embeddable Common-Lisp) is an interpreter of the Common-Lisp language
+ as described in the X3J13 Ansi specification, featuring CLOS (Common-Lisp Object System),
+ conditions, loops, etc, plus a translator to C, which can produce standalone executables."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+source_urls = ['https://common-lisp.net/project/ecl/static/files/release']
+sources = [SOURCELOWER_TGZ]
+checksums = ['e4ea65bb1861e0e495386bfa8bc673bd014e96d3cf9d91e9038f91435cbe622b']
+
+builddependencies = [('binutils', '2.40')]
+
+dependencies = [
+ ('GMP', '6.3.0'),
+]
+
+configopts = "--enable-manual=no "
+
+sanity_check_paths = {
+ 'files': ['bin/ecl', 'bin/ecl-config', 'include/ecl/ecl.h', 'lib/libecl.%s' % SHLIB_EXT],
+ 'dirs': ['share'],
+}
+
+sanity_check_commands = ["ecl --help"]
+
+moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/e/EDirect/EDirect-20.5.20231006-GCCcore-12.2.0.eb b/easybuild/easyconfigs/e/EDirect/EDirect-20.5.20231006-GCCcore-12.2.0.eb
new file mode 100644
index 00000000000..d055a8c9798
--- /dev/null
+++ b/easybuild/easyconfigs/e/EDirect/EDirect-20.5.20231006-GCCcore-12.2.0.eb
@@ -0,0 +1,57 @@
+##
+# This is a contribution from SIB Swiss Institute of Bioinformatics
+# Homepage: https://www.sib.swiss/research-infrastructure/competence-centers/vital-it
+#
+# Authors:: Sebastien Moretti
+#
+##
+easyblock = 'Binary'
+
+name = 'EDirect'
+version = '20.5.20231006'
+
+homepage = 'https://www.ncbi.nlm.nih.gov/books/NBK25501/'
+# See also https://dataguide.nlm.nih.gov/edirect/install.html
+description = """Entrez Direct (EDirect) provides access to the NCBI's suite of
+interconnected databases from a Unix terminal window. Search terms are entered
+as command-line arguments. Individual operations are connected with Unix pipes
+to construct multi-step queries. Selected records can then be retrieved in a
+variety of formats."""
+# software_license = 'Public Domain'
+
+toolchain = {'name': 'GCCcore', 'version': '12.2.0'}
+
+source_urls = ['https://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect/versions/%(version)s/']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['abb7a7c2d7dd4bf80b5f951211d20bf432fe9b787f6ad093feba2f5cb46d62dd']
+
+builddependencies = [
+ ('Go', '1.21.2', '', SYSTEM),
+]
+
+dependencies = [
+ ('Python', '3.10.8'),
+ ('Perl', '5.36.0'),
+]
+
+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/EGA-QuickView/EGA-QuickView-20240620-GCC-12.3.0.eb b/easybuild/easyconfigs/e/EGA-QuickView/EGA-QuickView-20240620-GCC-12.3.0.eb
new file mode 100644
index 00000000000..24e7302367a
--- /dev/null
+++ b/easybuild/easyconfigs/e/EGA-QuickView/EGA-QuickView-20240620-GCC-12.3.0.eb
@@ -0,0 +1,43 @@
+easyblock = 'ConfigureMake'
+
+name = 'EGA-QuickView'
+version = '20240620'
+local_commit = 'fe2034d'
+
+homepage = 'https://github.com/EGA-archive/ega-quickview'
+description = """EGA-QuickView is a FUSE file system to access EGA files remotely."""
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+
+github_account = 'EGA-archive'
+source_urls = [GITHUB_SOURCE]
+sources = [{
+ 'download_filename': '%s.tar.gz' % local_commit,
+ 'filename': '%(name)s-%(version)s.tar.gz',
+}]
+checksums = ['90836e42009736a8e20a2569918638f3cb2b53574265ca4f4bed7abd81a5e887']
+
+builddependencies = [
+ ('make', '4.4.1'),
+ ('Autotools', '20220317'),
+ ('pkgconf', '1.9.5'),
+]
+
+dependencies = [
+ ('libsodium', '1.0.18'),
+ ('FUSE', '3.16.2'),
+ ('GLib', '2.77.1'),
+]
+
+preconfigopts = "autoreconf -i && "
+# fix Makefile to create /bin in installdir
+preinstallopts = "sed -i 's/install: $(TARGET)/install: $(TARGET) $(bindir)/' Makefile && "
+
+sanity_check_paths = {
+ 'files': ['bin/ega-qv'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ['ega-qv -h']
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/e/ELPA/ELPA-2024.05.001-foss-2024a.eb b/easybuild/easyconfigs/e/ELPA/ELPA-2024.05.001-foss-2024a.eb
new file mode 100644
index 00000000000..8dcbc6ed3f2
--- /dev/null
+++ b/easybuild/easyconfigs/e/ELPA/ELPA-2024.05.001-foss-2024a.eb
@@ -0,0 +1,46 @@
+# #
+# 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 = '2024.05.001'
+local_version = version.replace('.', '_')
+
+homepage = 'https://elpa.mpcdf.mpg.de/'
+description = "Eigenvalue SoLvers for Petaflop-Applications."
+
+toolchain = {'name': 'foss', 'version': '2024a'}
+toolchainopts = {'openmp': True, 'usempi': True}
+
+source_urls = ['https://gitlab.mpcdf.mpg.de/elpa/elpa/-/archive/release_%s/' % local_version]
+sources = ['{}-release_{}.tar.gz'.format('%(namelower)s', local_version)]
+patches = [
+ '%(name)s-2023.05.001_fix_hardcoded_perl_path.patch',
+ '%(name)s-2023.05.001_fix_AVX512_support.patch',
+]
+checksums = [
+ {'elpa-release_2024_05_001.tar.gz': '5e0c685536869bb91c230d70cac5e779ff418575681836f240b3e64e10b23f3e'},
+ {'ELPA-2023.05.001_fix_hardcoded_perl_path.patch':
+ '0548105065777a2ed07dde306636251c4f96e555a801647564de37d1ddd7b0b5'},
+ {'ELPA-2023.05.001_fix_AVX512_support.patch': 'ecf08b64fe1da432a218040fa45d4ecfbb3269d58cb018b12da5a2d854bf96be'},
+]
+
+builddependencies = [
+ ('Autotools', '20231222'),
+ ('Python', '3.12.3'),
+ ('Perl', '5.38.2'),
+]
+
+preconfigopts = './autogen.sh && export LDFLAGS="-lm $LDFLAGS" && autoreconf && '
+
+# 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/ELSI/ELSI-2.11.0-foss-2023a-PEXSI.eb b/easybuild/easyconfigs/e/ELSI/ELSI-2.11.0-foss-2023a-PEXSI.eb
new file mode 100644
index 00000000000..a1be84f6de9
--- /dev/null
+++ b/easybuild/easyconfigs/e/ELSI/ELSI-2.11.0-foss-2023a-PEXSI.eb
@@ -0,0 +1,47 @@
+name = 'ELSI'
+version = '2.11.0'
+versionsuffix = '-PEXSI'
+
+homepage = 'https://wordpress.elsi-interchange.org/'
+description = """ELSI provides and enhances scalable, open-source software library solutions for
+ electronic structure calculations in materials science, condensed matter physics, chemistry, and many other fields.
+ ELSI focuses on methods that solve or circumvent eigenvalue problems in electronic structure theory.
+ The ELSI infrastructure should also be useful for other challenging eigenvalue problems.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'usempi': True, 'pic': True, 'cstd': 'c++11', 'extra_fflags': '-fallow-argument-mismatch'}
+
+source_urls = ['https://gitlab.com/elsi_project/elsi_interface/-/archive/v2.11.0/']
+sources = ['elsi_interface-v%(version)s.tar.gz']
+patches = [
+ 'ELSI-2.11.0_bison_3.8_compat.patch',
+]
+checksums = [
+ {'elsi_interface-v2.11.0.tar.gz': '2e6929827ed9c99a32381ed9da40482e862c28608d59d4f27db7dcbcaed1520d'},
+ {'ELSI-2.11.0_bison_3.8_compat.patch': 'a1284f5c0f442129610aa0fb463cc2b54450e3511a2fd6c871fadc21a16e9504'},
+]
+
+builddependencies = [
+ ('flex', '2.6.4'),
+ ('Bison', '3.8.2'),
+ ('CMake', '3.26.3'),
+]
+
+dependencies = [
+ ('ELPA', '2023.05.001'),
+ ('NTPoly', '3.1.0'),
+]
+
+abs_path_compilers = True
+build_internal_pexsi = True
+
+configopts = '-DENABLE_BSEPACK=ON '
+
+# Tests use 4 MPI ranks, they require a minimum of 4 cores
+# Map each MPI process to a single CPU core to avoid tests fails
+pretestopts = "export OMPI_MCA_rmaps_base_mapping_policy=slot:PE=1 && "
+
+runtest = True
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/e/ELSI/ELSI-2.11.0_bison_3.8_compat.patch b/easybuild/easyconfigs/e/ELSI/ELSI-2.11.0_bison_3.8_compat.patch
new file mode 100644
index 00000000000..255ed4a5575
--- /dev/null
+++ b/easybuild/easyconfigs/e/ELSI/ELSI-2.11.0_bison_3.8_compat.patch
@@ -0,0 +1,14 @@
+Make it compatible with Bison 3.7
+Author: Åke Sandgren, 20211020
+Update: Cintia Willemyns (Vrije Universiteit Brussel)
+--- elsi_interface-v2.11.0.orig/external/SCOTCH/CMakeLists.txt 2024-09-10 19:01:11.447551000 +0200
++++ elsi_interface-v2.11.0/external/SCOTCH/CMakeLists.txt 2024-09-10 19:08:44.913993743 +0200
+@@ -56,7 +56,7 @@
+ COMMAND mv ${PROJECT_BINARY_DIR}/generated/tmp2.c ${PROJECT_BINARY_DIR}/generated/parser_yy.c
+ # Versions of bison > 2.X insert a '#include tmp2.h' in tmp2.c. A simple 'mv' will not work.
+ # The file needs to remain in the directory with the old name. Hence the 'cp'
+- COMMAND cp ${PROJECT_BINARY_DIR}/generated/tmp2.h ${PROJECT_BINARY_DIR}/generated/parser_ly.h
++ COMMAND ln -s ${PROJECT_BINARY_DIR}/generated/tmp2.h ${PROJECT_BINARY_DIR}/generated/parser_ly.h
+ COMMAND flex -Pscotchyy -o${PROJECT_BINARY_DIR}/generated/tmp1.c ${SCOTCH_DIR}/parser_ll.l
+ COMMAND mv ${PROJECT_BINARY_DIR}/generated/tmp1.c ${PROJECT_BINARY_DIR}/generated/parser_ll.c
+ DEPENDS ${SCOTCH_DIR}/parser_yy.y ${SCOTCH_DIR}/parser_ll.l ${SCOTCH_DIR}/parser_yy.h ${SCOTCH_DIR}/parser_ll.h
diff --git a/easybuild/easyconfigs/e/ELSI/ELSI-2.9.1-foss-2022a-PEXSI.eb b/easybuild/easyconfigs/e/ELSI/ELSI-2.9.1-foss-2022a-PEXSI.eb
new file mode 100644
index 00000000000..d5ef7e3da14
--- /dev/null
+++ b/easybuild/easyconfigs/e/ELSI/ELSI-2.9.1-foss-2022a-PEXSI.eb
@@ -0,0 +1,45 @@
+name = 'ELSI'
+version = '2.9.1'
+versionsuffix = '-PEXSI'
+
+homepage = 'https://wordpress.elsi-interchange.org/'
+description = """ELSI provides and enhances scalable, open-source software library solutions for
+ electronic structure calculations in materials science, condensed matter physics, chemistry, and many other fields.
+ ELSI focuses on methods that solve or circumvent eigenvalue problems in electronic structure theory.
+ The ELSI infrastructure should also be useful for other challenging eigenvalue problems.
+"""
+
+toolchain = {'name': 'foss', 'version': '2022a'}
+toolchainopts = {'usempi': True, 'pic': True, 'cstd': 'c++11', 'extra_fflags': '-fallow-argument-mismatch'}
+
+source_urls = ['https://wordpress.elsi-interchange.org/wp-content/uploads/2022/05']
+sources = ['elsi_interface-v%(version)s.tar.gz']
+patches = [
+ 'pexsi-1.2.0-mpi30.patch',
+ 'ELSI-2.7.1_bison_3.7_compat.patch',
+]
+checksums = [
+ {'elsi_interface-v2.9.1.tar.gz': 'ad3dc163159a79f7a83f360265f2446920c151ecce9c294136e630fe424f1d29'},
+ {'pexsi-1.2.0-mpi30.patch': 'd5580de710cee652c27622f167a10933f792546481d9c08d62f452885cb63abb'},
+ {'ELSI-2.7.1_bison_3.7_compat.patch': '986f95c2eb22c8a8bef13357a10242dcf0a0fac562c88bdc9bdf46cc6e7a1edb'},
+]
+
+builddependencies = [
+ ('flex', '2.6.4'),
+ ('Bison', '3.8.2'),
+ ('CMake', '3.23.1'),
+]
+
+dependencies = [
+ ('ELPA', '2021.11.001'),
+ ('NTPoly', '2.7.1'),
+]
+
+abs_path_compilers = True
+build_internal_pexsi = True
+
+configopts = '-DENABLE_BSEPACK=ON '
+
+runtest = True
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/e/EMMAX/EMMAX-20100310-foss-2023a.eb b/easybuild/easyconfigs/e/EMMAX/EMMAX-20100310-foss-2023a.eb
new file mode 100644
index 00000000000..c68628823fb
--- /dev/null
+++ b/easybuild/easyconfigs/e/EMMAX/EMMAX-20100310-foss-2023a.eb
@@ -0,0 +1,40 @@
+easyblock = 'MakeCp'
+
+name = 'EMMAX'
+# version is based on datestamp of files in emmax-beta-src.tar.gz
+# (last checked on 13 Aug 2024)
+version = '20100310'
+
+homepage = 'https://csg.sph.umich.edu//kang/emmax'
+description = """EMMAX is a statistical test for large scale human or model organism
+ association mapping accounting for the sample structure"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+source_urls = ['https://csg.sph.umich.edu//kang/emmax/download/']
+sources = [{'download_filename': 'emmax-beta-src.tar.gz', 'filename': SOURCE_TAR_GZ}]
+patches = ['EMMAX-20100310_fix-build.patch']
+checksums = [
+ {'EMMAX-20100310.tar.gz': '79670917a0ac74ff1899fb27361e2e07b0f3a7911a9d9c6e0c18cf066b8987ea'},
+ {'EMMAX-20100310_fix-build.patch': 'fae62d1f9f7bd4b94c81cdeb01d5134cc2825bcab050ddbfa89ce232eca8497e'},
+]
+
+dependencies = [
+ ('zlib', '1.2.13'),
+]
+
+buildopts = 'CC="$CC $CFLAGS" CLIBS="-lflexiblas -lm -lz"'
+
+files_to_copy = [(['emmax', 'emmax-kin'], 'bin')]
+
+sanity_check_paths = {
+ 'files': ['bin/emmax', 'bin/emmax-kin'],
+ 'dirs': [],
+}
+
+sanity_check_commands = [
+ "emmax 2>&1 | grep '^Usage: emmax'",
+ "emmax-kin 2>&1 | grep '^Usage: emmax_IBS_kin'",
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/e/EMMAX/EMMAX-20100310_fix-build.patch b/easybuild/easyconfigs/e/EMMAX/EMMAX-20100310_fix-build.patch
new file mode 100644
index 00000000000..c2827ab10a9
--- /dev/null
+++ b/easybuild/easyconfigs/e/EMMAX/EMMAX-20100310_fix-build.patch
@@ -0,0 +1,88 @@
+fix build with recent compiler & BLAS/LAPACK library
+author: Kenneth Hoste (HPC-UGent)
+
+--- emmax-beta-src/emmax.c.orig 2024-08-13 16:28:41.536119000 +0200
++++ emmax-beta-src/emmax.c 2024-08-13 16:54:06.856501202 +0200
+@@ -7,7 +7,8 @@
+ #include
+ #include
+ #include
+-#include
++#include
++#include
+ #include
+ //#include "lapack_wrapper.h"
+
+@@ -1621,15 +1622,13 @@
+ double *W,
+ double *WORK, int LWORK, int *IWORK, int LIWORK)
+ {
+- extern void dsyevd_ (char *JOBZp, char *UPLOp, int *Np,
+- double *A, int *LDAp,
+- double *W,
+- double *WORK, int *LWORKp, int *IWORK, int *LIWORKp,
+- int *INFOp);
+ int INFO;
+- dsyevd_ (&JOBZ, &UPLO, &N, A, &LDA,
++ int32_t N32 = N;
++ int32_t LDA32 = LDA;
++ int32_t LWORK32 = LWORK;
++ dsyevd_ (&JOBZ, &UPLO, &N32, A, &LDA32,
+ W,
+- WORK, &LWORK, IWORK, &LIWORK, &INFO);
++ WORK, &LWORK32, IWORK, &LIWORK, &INFO, 1, 1);
+
+ return INFO;
+ }
+@@ -1640,16 +1639,11 @@
+ double *W, double *Z, int LDZ, int *ISUPPZ,
+ double *WORK, int LWORK, int *IWORK, int LIWORK)
+ {
+- extern void dsyevr_ (char *JOBZp, char *RANGEp, char *UPLOp, int *Np,
+- double *A, int *LDAp, double *VLp, double *VUp,
+- int *ILp, int *IUp, double *ABSTOLp, int *Mp,
+- double *W, double *Z, int *LDZp, int *ISUPPZ,
+- double *WORK, int *LWORKp, int *IWORK, int *LIWORKp,
+- int *INFOp);
+ int INFO;
+- dsyevr_ (&JOBZ, &RANGE, &UPLO, &N, A, &LDA, &VL, &VU,
+- &IL, &IU, &ABSTOL, M, W, Z, &LDZ, ISUPPZ,
+- WORK, &LWORK, IWORK, &LIWORK, &INFO);
++ int32_t N32 = N, LDA32 = LDA, IL32 = IL, IU32 = IU, LDZ32 = LDZ, LWORK32 = LWORK, LIWORK32 = LIWORK;
++ dsyevr_ (&JOBZ, &RANGE, &UPLO, &N32, A, &LDA32, &VL, &VU,
++ &IL32, &IU32, &ABSTOL, M, W, Z, &LDZ32, ISUPPZ,
++ WORK, &LWORK32, IWORK, &LIWORK32, &INFO, 1, 1, 1);
+
+ return INFO;
+ }
+@@ -1739,16 +1733,27 @@
+ }
+
+ /* Turn Y into its LU form, store pivot matrix */
+- info = clapack_dgetrf (CblasColMajor, n, n, Y, n, ipiv);
++ dgetrf_(&n, &n, Y, &n, ipiv, &info);
+
+ /* Don't bother continuing when illegal argument (info<0) or singularity (info>0) occurs */
+- if (info!=0) return info;
++ if (info != 0) {
++ free(ipiv);
++ return info;
++ }
+
+ /* Feed this to the lapack inversion routine. */
+- info = clapack_dgetri (CblasColMajor, n, Y, n, ipiv);
++ int lwork = n * n;
++ double *work = malloc(lwork * sizeof(double));
++ if (work == NULL) {
++ printf("malloc failed for work array in matrix_invert\n");
++ free(ipiv);
++ return 2;
++ }
++ dgetri_(&n, Y, &n, ipiv, work, &lwork, &info);
+
+ /* Cleanup and exit */
+ free(ipiv);
++ free(work);
+ return info;
+ }
+
diff --git a/easybuild/easyconfigs/e/ESIpy/ESIpy-20240731-foss-2022a.eb b/easybuild/easyconfigs/e/ESIpy/ESIpy-20240731-foss-2022a.eb
new file mode 100644
index 00000000000..290a85e008e
--- /dev/null
+++ b/easybuild/easyconfigs/e/ESIpy/ESIpy-20240731-foss-2022a.eb
@@ -0,0 +1,40 @@
+easyblock = 'Tarball'
+
+name = 'ESIpy'
+version = '20240731'
+_commit = '25ff61c'
+
+homepage = 'https://github.com/jgrebol/ESIpy'
+description = """Program aimed at the calculation of population analysis and aromaticity
+indicators from different Hilbert space partitions."""
+
+toolchain = {'name': 'foss', 'version': '2022a'}
+
+sources = [
+ {
+ 'source_urls': ['https://github.com/jgrebol/ESIpy/archive'],
+ 'download_filename': '%s.tar.gz' % _commit,
+ 'filename': SOURCE_TAR_GZ,
+ },
+]
+checksums = ['d8b7bf723ea37426ba6a3d4ddc07c2e969c75afd1ff4843c7d21b2faa1f035b0']
+
+dependencies = [
+ ('Python', '3.10.4'),
+ ('PySCF', '2.1.1'),
+]
+
+sanity_check_paths = {
+ 'files': ['esi.py'],
+ 'dirs': ['utils', 'examples'],
+}
+
+sanity_check_commands = [
+ "python -c 'import esi'",
+]
+
+modextrapaths = {
+ 'PYTHONPATH': '',
+}
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/e/ESM-2/ESM-2-2.0.0-foss-2022b.eb b/easybuild/easyconfigs/e/ESM-2/ESM-2-2.0.0-foss-2022b.eb
new file mode 100644
index 00000000000..0eca3505ba5
--- /dev/null
+++ b/easybuild/easyconfigs/e/ESM-2/ESM-2-2.0.0-foss-2022b.eb
@@ -0,0 +1,40 @@
+easyblock = 'PythonBundle'
+
+name = 'ESM-2'
+version = '2.0.0'
+
+homepage = 'https://github.com/facebookresearch/esm'
+description = """ESM-2 outperforms all tested single-sequence protein language models
+ across a range of structure prediction tasks. ESMFold harnesses the ESM-2 language model to generate
+ accurate structure predictions end to end directly from the sequence of a protein."""
+
+toolchain = {'name': 'foss', 'version': '2022b'}
+
+builddependencies = [
+ ('Java', '11', '', SYSTEM), # needed by ANTLR4 runtime
+]
+
+dependencies = [
+ ('Python', '3.10.8'),
+ ('PyTorch', '1.13.1'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+# omegaconf is required for esmfold (in addition to OpenFold-1.0.1)
+exts_list = [
+ ('antlr4-python3-runtime', '4.9.3', {
+ 'modulename': 'antlr4',
+ 'checksums': ['f224469b4168294902bb1efa80a8bf7855f24c99aef99cbefc1bcd3cce77881b'],
+ }),
+ ('omegaconf', '2.3.0', {
+ 'checksums': ['d5d4b6d29955cc50ad50c46dc269bcd92c6e00f5f90d23ab5fee7bfca4ba4cc7'],
+ }),
+ ('fair-esm', version, {
+ 'modulename': "esm, esm.pretrained",
+ 'checksums': ['4ed34d4598ec75ed6550a4e581d023bf8d4a8375317ecba6269bb68135f80c85'],
+ }),
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/e/ESM-2/ESM-2-2.0.0-foss-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/e/ESM-2/ESM-2-2.0.0-foss-2023a-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..eae9330bcdb
--- /dev/null
+++ b/easybuild/easyconfigs/e/ESM-2/ESM-2-2.0.0-foss-2023a-CUDA-12.1.1.eb
@@ -0,0 +1,42 @@
+easyblock = 'PythonBundle'
+
+name = 'ESM-2'
+version = '2.0.0'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://github.com/facebookresearch/esm'
+description = """ESM-2 outperforms all tested single-sequence protein language models
+ across a range of structure prediction tasks. ESMFold harnesses the ESM-2 language model to generate
+ accurate structure predictions end to end directly from the sequence of a protein."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+builddependencies = [
+ ('Java', '11', '', SYSTEM), # needed by ANTLR4 runtime
+]
+
+dependencies = [
+ ('CUDA', '12.1.1', '', SYSTEM),
+ ('Python', '3.11.3'),
+ ('PyTorch', '2.1.2', versionsuffix),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+# omegaconf is required for esmfold (in addition to OpenFold-1.0.1)
+exts_list = [
+ ('antlr4-python3-runtime', '4.9.3', {
+ 'modulename': 'antlr4',
+ 'checksums': ['f224469b4168294902bb1efa80a8bf7855f24c99aef99cbefc1bcd3cce77881b'],
+ }),
+ ('omegaconf', '2.3.0', {
+ 'checksums': ['d5d4b6d29955cc50ad50c46dc269bcd92c6e00f5f90d23ab5fee7bfca4ba4cc7'],
+ }),
+ ('fair-esm', version, {
+ 'modulename': "esm, esm.pretrained",
+ 'checksums': ['4ed34d4598ec75ed6550a4e581d023bf8d4a8375317ecba6269bb68135f80c85'],
+ }),
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/e/ESM-2/ESM-2-2.0.0-foss-2023a.eb b/easybuild/easyconfigs/e/ESM-2/ESM-2-2.0.0-foss-2023a.eb
new file mode 100644
index 00000000000..8b461b544cc
--- /dev/null
+++ b/easybuild/easyconfigs/e/ESM-2/ESM-2-2.0.0-foss-2023a.eb
@@ -0,0 +1,40 @@
+easyblock = 'PythonBundle'
+
+name = 'ESM-2'
+version = '2.0.0'
+
+homepage = 'https://github.com/facebookresearch/esm'
+description = """ESM-2 outperforms all tested single-sequence protein language models
+ across a range of structure prediction tasks. ESMFold harnesses the ESM-2 language model to generate
+ accurate structure predictions end to end directly from the sequence of a protein."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+builddependencies = [
+ ('Java', '11', '', SYSTEM), # needed by ANTLR4 runtime
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('PyTorch', '2.1.2'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+# omegaconf is required for esmfold (in addition to OpenFold-1.0.1)
+exts_list = [
+ ('antlr4-python3-runtime', '4.9.3', {
+ 'modulename': 'antlr4',
+ 'checksums': ['f224469b4168294902bb1efa80a8bf7855f24c99aef99cbefc1bcd3cce77881b'],
+ }),
+ ('omegaconf', '2.3.0', {
+ 'checksums': ['d5d4b6d29955cc50ad50c46dc269bcd92c6e00f5f90d23ab5fee7bfca4ba4cc7'],
+ }),
+ ('fair-esm', version, {
+ 'modulename': "esm, esm.pretrained",
+ 'checksums': ['4ed34d4598ec75ed6550a4e581d023bf8d4a8375317ecba6269bb68135f80c85'],
+ }),
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/e/ESM3/ESM3-3.0.0.post2-foss-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/e/ESM3/ESM3-3.0.0.post2-foss-2023a-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..1382c12efc6
--- /dev/null
+++ b/easybuild/easyconfigs/e/ESM3/ESM3-3.0.0.post2-foss-2023a-CUDA-12.1.1.eb
@@ -0,0 +1,53 @@
+easyblock = 'PythonBundle'
+
+name = 'ESM3'
+version = '3.0.0.post2'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://www.evolutionaryscale.ai/'
+description = """ESM3 is a frontier generative model for biology, able to jointly reason across
+three fundamental biological properties of proteins: sequence, structure, and
+function. These three data modalities are represented as tracks of discrete
+tokens at the input and output of ESM3. You can present the model with a
+combination of partial inputs across the tracks, and ESM3 will provide output
+predictions for all the tracks.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('CUDA', '12.1.1', '', SYSTEM),
+ ('Python', '3.11.3'),
+ ('PyTorch-bundle', '2.1.2', versionsuffix),
+ ('Transformers', '4.39.3'),
+ ('Biopython', '1.83'),
+ ('Biotite', '0.41.0'),
+ ('Brotli-python', '1.0.9'),
+ ('einops', '0.7.0'),
+ ('IPython', '8.14.0'),
+ ('scikit-learn', '1.3.1'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('msgpack-numpy', '0.4.8', {
+ 'checksums': ['c667d3180513422f9c7545be5eec5d296dcbb357e06f72ed39cc683797556e69'],
+ }),
+ ('cloudpathlib', '0.16.0', {
+ 'checksums': ['cdfcd35d46d529587d744154a0bdf962aca953b725c8784cd2ec478354ea63a3'],
+ }),
+ ('esm', version, {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['5544b6974945d791205226408100429c2ea6e49b30265aea1d359caabe20bb14'],
+ }),
+]
+
+sanity_pip_check = True
+
+sanity_check_commands = [
+ "python -c 'import esm'",
+ "python -c 'from esm.models.esm3 import ESM3'",
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/e/ESM3/ESM3-3.0.0.post2-foss-2023a.eb b/easybuild/easyconfigs/e/ESM3/ESM3-3.0.0.post2-foss-2023a.eb
new file mode 100644
index 00000000000..60125c1af46
--- /dev/null
+++ b/easybuild/easyconfigs/e/ESM3/ESM3-3.0.0.post2-foss-2023a.eb
@@ -0,0 +1,51 @@
+easyblock = 'PythonBundle'
+
+name = 'ESM3'
+version = '3.0.0.post2'
+
+homepage = 'https://www.evolutionaryscale.ai/'
+description = """ESM3 is a frontier generative model for biology, able to jointly reason across
+three fundamental biological properties of proteins: sequence, structure, and
+function. These three data modalities are represented as tracks of discrete
+tokens at the input and output of ESM3. You can present the model with a
+combination of partial inputs across the tracks, and ESM3 will provide output
+predictions for all the tracks.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('PyTorch-bundle', '2.1.2'),
+ ('Transformers', '4.39.3'),
+ ('Biopython', '1.83'),
+ ('Biotite', '0.41.0'),
+ ('Brotli-python', '1.0.9'),
+ ('einops', '0.7.0'),
+ ('IPython', '8.14.0'),
+ ('scikit-learn', '1.3.1'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('msgpack-numpy', '0.4.8', {
+ 'checksums': ['c667d3180513422f9c7545be5eec5d296dcbb357e06f72ed39cc683797556e69'],
+ }),
+ ('cloudpathlib', '0.16.0', {
+ 'checksums': ['cdfcd35d46d529587d744154a0bdf962aca953b725c8784cd2ec478354ea63a3'],
+ }),
+ ('esm', version, {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['5544b6974945d791205226408100429c2ea6e49b30265aea1d359caabe20bb14'],
+ }),
+]
+
+sanity_pip_check = True
+
+sanity_check_commands = [
+ "python -c 'import esm'",
+ "python -c 'from esm.models.esm3 import ESM3'",
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/e/ESMF/ESMF-8.6.0-foss-2023a.eb b/easybuild/easyconfigs/e/ESMF/ESMF-8.6.0-foss-2023a.eb
new file mode 100644
index 00000000000..356f3864756
--- /dev/null
+++ b/easybuild/easyconfigs/e/ESMF/ESMF-8.6.0-foss-2023a.eb
@@ -0,0 +1,37 @@
+name = 'ESMF'
+version = '8.6.0'
+
+homepage = 'https://www.earthsystemcog.org/projects/esmf/'
+description = """The Earth System Modeling Framework (ESMF) is a suite of software tools for developing
+ high-performance, multi-component Earth science modeling applications."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'usempi': True, 'openmp': True, 'cstd': 'c++11', 'pic': True}
+
+source_urls = ['https://github.com/esmf-org/esmf/archive/']
+sources = ['v%(version)s.tar.gz']
+patches = ['ESMF-6.1.1_libopts.patch']
+checksums = [
+ 'ed057eaddb158a3cce2afc0712b49353b7038b45b29aee86180f381457c0ebe7', # v8.6.0.tar.gz
+ '3851627f07c32a7da55d99072d619942bd3a1d9dd002e1557716158e7aacdaf4', # ESMF-6.1.1_libopts.patch
+]
+
+builddependencies = [('CMake', '3.26.3')]
+
+dependencies = [
+ ('netCDF', '4.9.2'),
+ ('netCDF-Fortran', '4.6.1'),
+ ('netCDF-C++4', '4.3.1'),
+ ('libarchive', '3.6.2'),
+]
+
+# disable errors from GCC 10 on mismatches between actual and dummy argument lists (GCC 9 behaviour)
+prebuildopts = 'ESMF_F90COMPILEOPTS="${ESMF_F90COMPILEOPTS} -fallow-argument-mismatch"'
+
+buildopts = 'ESMF_NETCDF_INCLUDE=$EBROOTNETCDFMINFORTRAN/include '
+buildopts += 'ESMF_NETCDF_LIBS="`nc-config --libs` `nf-config --flibs` `ncxx4-config --libs`"'
+
+# too parallel causes the build to become really slow
+maxparallel = 8
+
+moduleclass = 'geo'
diff --git a/easybuild/easyconfigs/e/ESMF/ESMF-8.6.1-foss-2023b.eb b/easybuild/easyconfigs/e/ESMF/ESMF-8.6.1-foss-2023b.eb
new file mode 100644
index 00000000000..d8471ef09d1
--- /dev/null
+++ b/easybuild/easyconfigs/e/ESMF/ESMF-8.6.1-foss-2023b.eb
@@ -0,0 +1,37 @@
+name = 'ESMF'
+version = '8.6.1'
+
+homepage = 'https://www.earthsystemcog.org/projects/esmf/'
+description = """The Earth System Modeling Framework (ESMF) is a suite of software tools for developing
+ high-performance, multi-component Earth science modeling applications."""
+
+toolchain = {'name': 'foss', 'version': '2023b'}
+toolchainopts = {'usempi': True, 'openmp': True, 'cstd': 'c++11', 'pic': True}
+
+source_urls = ['https://github.com/esmf-org/esmf/archive/']
+sources = ['v%(version)s.tar.gz']
+patches = ['ESMF-6.1.1_libopts.patch']
+checksums = [
+ {'v8.6.1.tar.gz': 'dc270dcba1c0b317f5c9c6a32ab334cb79468dda283d1e395d98ed2a22866364'},
+ {'ESMF-6.1.1_libopts.patch': '3851627f07c32a7da55d99072d619942bd3a1d9dd002e1557716158e7aacdaf4'},
+]
+
+builddependencies = [('CMake', '3.27.6')]
+
+dependencies = [
+ ('netCDF', '4.9.2'),
+ ('netCDF-Fortran', '4.6.1'),
+ ('netCDF-C++4', '4.3.1'),
+ ('libarchive', '3.7.2'),
+]
+
+# disable errors from GCC 10 on mismatches between actual and dummy argument lists (GCC 9 behaviour)
+prebuildopts = 'ESMF_F90COMPILEOPTS="${ESMF_F90COMPILEOPTS} -fallow-argument-mismatch"'
+
+buildopts = 'ESMF_NETCDF_INCLUDE=$EBROOTNETCDFMINFORTRAN/include '
+buildopts += 'ESMF_NETCDF_LIBS="`nc-config --libs` `nf-config --flibs` `ncxx4-config --libs`"'
+
+# too parallel causes the build to become really slow
+maxparallel = 8
+
+moduleclass = 'geo'
diff --git a/easybuild/easyconfigs/e/ESMPy/ESMPy-8.6.0-foss-2023a.eb b/easybuild/easyconfigs/e/ESMPy/ESMPy-8.6.0-foss-2023a.eb
new file mode 100644
index 00000000000..8510ec6f7c2
--- /dev/null
+++ b/easybuild/easyconfigs/e/ESMPy/ESMPy-8.6.0-foss-2023a.eb
@@ -0,0 +1,59 @@
+easyblock = 'PythonBundle'
+
+name = 'ESMPy'
+version = '8.6.0'
+
+homepage = 'https://earthsystemmodeling.org/esmpy'
+description = "Earth System Modeling Framework (ESMF) Python Interface"
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+builddependencies = [
+ ('pytest', '7.4.2'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('ESMF', version),
+]
+
+use_pip = True
+
+# downloads of data files from data.earthsystemmodeling.org are failing at the
+# time of writting, switch to github.com:
+_switch_data_url_regex = r"s/^\(DATA_URL.*earthsystemmodeling.org\)/# \1/;s/# \(DATA_URL.*github.com\)/\1/"
+
+_pre_test_cmds = [
+ "sed -i '%s' src/esmpy/util/cache_data.py" % _switch_data_url_regex,
+ "unset ESMPY_DATA_DIR",
+ "export ESMPY_DATA_NEW_DIR=/tmp",
+ "",
+]
+
+exts_list = [
+ ('esmpy', version, {
+ 'patches': ['ESMPy-%(version)s_use-static-version.patch'],
+ 'source_urls': ['https://github.com/esmf-org/esmf/archive/'],
+ 'sources': ['v%(version)s.tar.gz'],
+ 'checksums': [
+ {'v8.6.0.tar.gz':
+ 'ed057eaddb158a3cce2afc0712b49353b7038b45b29aee86180f381457c0ebe7'},
+ {'ESMPy-8.6.0_use-static-version.patch':
+ '4878e0066593c993e7fc16638ab8e671693c402263b13d1c903b5c5b717f6468'},
+ ],
+ 'start_dir': 'src/addon/%(name)s',
+ 'preinstallopts': "sed -i 's/EB_ESMPY_VERSION/%(version)s/' pyproject.toml && ",
+ 'pretestopts': " && ".join(_pre_test_cmds),
+ 'runtest': 'pytest',
+ 'testinstall': True,
+ }),
+]
+
+sanity_pip_check = True
+
+# set data directory to a user-writable directory
+# default: %(installdir)s/lib/python%(pyshortver)s/site-packages/esmpy/data
+modextravars = {'ESMPY_DATA_DIR': '/tmp'}
+
+moduleclass = 'geo'
diff --git a/easybuild/easyconfigs/e/ESMPy/ESMPy-8.6.0_use-static-version.patch b/easybuild/easyconfigs/e/ESMPy/ESMPy-8.6.0_use-static-version.patch
new file mode 100644
index 00000000000..1a81dbd6151
--- /dev/null
+++ b/easybuild/easyconfigs/e/ESMPy/ESMPy-8.6.0_use-static-version.patch
@@ -0,0 +1,49 @@
+Replace dynamic versioning with a plain static version string. Tarballs of
+ESMPy downloaded from github lack git repository data required by
+setuptools-git-versioning.
+author: Alex Domingo (Vrije Universiteit Brussel)
+diff --git a/pyproject.toml.orig b/pyproject.toml
+index b3da4b6..e0e207d 100644
+--- a/src/addon/esmpy/pyproject.toml.orig
++++ b/src/addon/esmpy/pyproject.toml
+@@ -1,5 +1,5 @@
+ [build-system]
+-requires = [ "setuptools>=41", "wheel", "setuptools-git-versioning" ]
++requires = [ "setuptools>=41", "wheel" ]
+ build-backend = "setuptools.build_meta"
+
+ [project]
+@@ -12,15 +12,8 @@ license = { text = "University of Illinois-NCSA" }
+ dependencies = [
+ "numpy",
+ 'importlib-metadata; python_version < "3.8"',
+- # setuptools-git-versioning shouldn't be needed here, but is
+- # included as a workaround for problems with the build-time
+- # installation of this package with python 3.10 (given by the
+- # build-system section above). By including it here, we at least
+- # ensure that this package will be available for a second or
+- # subsequent pip install of esmpy.
+- 'setuptools-git-versioning; python_version >= "3.10"',
+ ]
+-dynamic = [ "version" ]
++version = "EB_ESMPY_VERSION"
+
+ [project.optional-dependencies]
+ testing = [
+@@ -28,16 +21,6 @@ testing = [
+ "pytest-json-report",
+ ]
+
+-[tool.setuptools-git-versioning]
+-enabled = true
+-template = "{tag}"
+-dev_template = "{tag}"
+-dirty_template = "{tag}"
+-starting_version = "8.6.0" # this is a backup for pip <= 22.0 where git-versioning doesn't work
+-
+-[tool.dynamic]
+-version = "placeholder" # this is a placeholder for the version pulled with git-versioning
+-
+ [tool.setuptools.packages.find]
+ where = [ "src" ]
+ exclude = [ "doc*" ]
diff --git a/easybuild/easyconfigs/e/ESPResSo/ESPResSo-4.2.2-foss-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/e/ESPResSo/ESPResSo-4.2.2-foss-2023a-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..eb37f56eb35
--- /dev/null
+++ b/easybuild/easyconfigs/e/ESPResSo/ESPResSo-4.2.2-foss-2023a-CUDA-12.1.1.eb
@@ -0,0 +1,60 @@
+easyblock = 'CMakeMake'
+
+name = 'ESPResSo'
+version = '4.2.2'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://espressomd.org/wordpress'
+description = """A software package for performing and analyzing scientific Molecular Dynamics simulations."""
+
+source_urls = ['https://github.com/espressomd/espresso/releases/download/%(version)s/']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['2bc02f91632b0030f1203759768bd718bd8a0005f72696980b12331b4bfa0d76']
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'usempi': True, 'pic': True}
+
+builddependencies = [('CMake', '3.26.3')]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('Boost.MPI', '1.82.0'),
+ ('HDF5', '1.14.0'),
+ ('Mesa', '23.1.4'),
+ ('GSL', '2.7'),
+ ('IPython', '8.14.0'),
+ ('Pint', '0.23'),
+ ('CUDA', '12.1.1', '', SYSTEM),
+]
+
+# default CUDA compute capabilities to use (override via --cuda-compute-capabilities)
+cuda_compute_capabilities = ['5.2', '6.0', '7.0', '7.5', '8.0', '8.6', '9.0']
+
+configopts = ' -DCMAKE_SKIP_RPATH=OFF -DWITH_TESTS=ON -DWITH_CUDA=ON'
+# make sure the right Python is used (note: -DPython3_EXECUTABLE or -DPython_EXECUTABLE does not work!)
+configopts += ' -DPYTHON_EXECUTABLE=$EBROOTPYTHON/bin/python '
+
+runtest = 'check_unit_tests && make check_python'
+
+modextrapaths = {'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages']}
+
+_binaries = ['ipypresso', 'pypresso']
+_libs = [
+ 'Espresso_config', 'Espresso_core', 'Espresso_script_interface', 'Espresso_shapes',
+ '_init', 'analyze', 'code_info', 'electrokinetics', 'galilei',
+ 'integrate', 'interactions', 'lb', 'particle_data', 'polymer', 'profiler',
+ 'script_interface', 'system', 'thermostat', 'utils', 'version',
+]
+
+_lib_path = 'lib/python%(pyshortver)s/site-packages/espressomd'
+
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in _binaries] +
+ [_lib_path + '/%s.' % x + SHLIB_EXT for x in _libs],
+ 'dirs': ['bin', 'lib']
+}
+
+sanity_check_commands = ['pypresso -h', 'ipypresso -h']
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/e/ESPResSo/ESPResSo-4.2.2-foss-2023a.eb b/easybuild/easyconfigs/e/ESPResSo/ESPResSo-4.2.2-foss-2023a.eb
new file mode 100644
index 00000000000..eb16f7546f5
--- /dev/null
+++ b/easybuild/easyconfigs/e/ESPResSo/ESPResSo-4.2.2-foss-2023a.eb
@@ -0,0 +1,55 @@
+easyblock = 'CMakeMake'
+
+name = 'ESPResSo'
+version = '4.2.2'
+
+homepage = 'https://espressomd.org/wordpress'
+description = """A software package for performing and analyzing scientific Molecular Dynamics simulations."""
+
+source_urls = ['https://github.com/espressomd/espresso/releases/download/%(version)s/']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['2bc02f91632b0030f1203759768bd718bd8a0005f72696980b12331b4bfa0d76']
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'usempi': True, 'pic': True}
+
+builddependencies = [('CMake', '3.26.3')]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('Boost.MPI', '1.82.0'),
+ ('HDF5', '1.14.0'),
+ ('Mesa', '23.1.4'),
+ ('GSL', '2.7'),
+ ('IPython', '8.14.0'),
+ ('Pint', '0.23'),
+]
+
+configopts = ' -DCMAKE_SKIP_RPATH=OFF -DWITH_TESTS=ON -DWITH_CUDA=OFF'
+# make sure the right Python is used (note: -DPython3_EXECUTABLE or -DPython_EXECUTABLE does not work!)
+configopts += ' -DPYTHON_EXECUTABLE=$EBROOTPYTHON/bin/python '
+
+runtest = 'check_unit_tests && make check_python'
+
+modextrapaths = {'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages']}
+
+_binaries = ['ipypresso', 'pypresso']
+_libs = [
+ 'Espresso_config', 'Espresso_core', 'Espresso_script_interface', 'Espresso_shapes',
+ '_init', 'analyze', 'code_info', 'electrokinetics', 'galilei',
+ 'integrate', 'interactions', 'lb', 'particle_data', 'polymer', 'profiler',
+ 'script_interface', 'system', 'thermostat', 'utils', 'version',
+]
+
+_lib_path = 'lib/python%(pyshortver)s/site-packages/espressomd'
+
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in _binaries] +
+ [_lib_path + '/%s.' % x + SHLIB_EXT for x in _libs],
+ 'dirs': ['bin', 'lib']
+}
+
+sanity_check_commands = ['pypresso -h', 'ipypresso -h']
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/e/ESPResSo/ESPResSo-4.2.2-foss-2023b.eb b/easybuild/easyconfigs/e/ESPResSo/ESPResSo-4.2.2-foss-2023b.eb
new file mode 100644
index 00000000000..950f31dba26
--- /dev/null
+++ b/easybuild/easyconfigs/e/ESPResSo/ESPResSo-4.2.2-foss-2023b.eb
@@ -0,0 +1,55 @@
+easyblock = 'CMakeMake'
+
+name = 'ESPResSo'
+version = '4.2.2'
+
+homepage = 'https://espressomd.org/wordpress'
+description = """A software package for performing and analyzing scientific Molecular Dynamics simulations."""
+
+source_urls = ['https://github.com/espressomd/espresso/releases/download/%(version)s/']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['2bc02f91632b0030f1203759768bd718bd8a0005f72696980b12331b4bfa0d76']
+
+toolchain = {'name': 'foss', 'version': '2023b'}
+toolchainopts = {'usempi': True, 'pic': True}
+
+builddependencies = [('CMake', '3.27.6')]
+
+dependencies = [
+ ('Python', '3.11.5'),
+ ('SciPy-bundle', '2023.11'),
+ ('Boost.MPI', '1.83.0'),
+ ('HDF5', '1.14.3'),
+ ('Mesa', '23.1.9'),
+ ('GSL', '2.7'),
+ ('IPython', '8.17.2'),
+ ('Pint', '0.24'),
+]
+
+configopts = ' -DCMAKE_SKIP_RPATH=OFF -DWITH_TESTS=ON -DWITH_CUDA=OFF'
+# make sure the right Python is used (note: -DPython3_EXECUTABLE or -DPython_EXECUTABLE does not work!)
+configopts += ' -DPYTHON_EXECUTABLE=$EBROOTPYTHON/bin/python '
+
+runtest = 'check_unit_tests && make check_python'
+
+modextrapaths = {'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages']}
+
+_binaries = ['ipypresso', 'pypresso']
+_libs = [
+ 'Espresso_config', 'Espresso_core', 'Espresso_script_interface', 'Espresso_shapes',
+ '_init', 'analyze', 'code_info', 'electrokinetics', 'galilei',
+ 'integrate', 'interactions', 'lb', 'particle_data', 'polymer', 'profiler',
+ 'script_interface', 'system', 'thermostat', 'utils', 'version',
+]
+
+_lib_path = 'lib/python%(pyshortver)s/site-packages/espressomd'
+
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in _binaries] +
+ [_lib_path + '/%s.' % x + SHLIB_EXT for x in _libs],
+ 'dirs': ['bin', 'lib']
+}
+
+sanity_check_commands = ['pypresso -h', 'ipypresso -h']
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/e/ETE/ETE-3.1.3-foss-2022b.eb b/easybuild/easyconfigs/e/ETE/ETE-3.1.3-foss-2022b.eb
new file mode 100644
index 00000000000..1a1837b76f1
--- /dev/null
+++ b/easybuild/easyconfigs/e/ETE/ETE-3.1.3-foss-2022b.eb
@@ -0,0 +1,38 @@
+easyblock = 'PythonPackage'
+
+name = 'ETE'
+version = '3.1.3'
+
+homepage = 'http://etetoolkit.org'
+description = """A Python framework for the analysis and visualization of trees"""
+
+toolchain = {'name': 'foss', 'version': '2022b'}
+
+source_urls = ['https://pypi.python.org/packages/source/e/ete3']
+sources = ['ete3-%(version)s.tar.gz']
+patches = ['ETE-3.1.2-foss-2021b_fix_binpath.patch']
+checksums = [
+ {'ete3-3.1.3.tar.gz': '06a3b7fa8ed90187b076a8dbbe5b1b62acee94201d3c6e822f55f449601ef6f2'},
+ {'ETE-3.1.2-foss-2021b_fix_binpath.patch': 'f71d1135e87e1035736f67b92ebcfebd2ae4d57e48f45e25c1a6144c60f11fbd'},
+]
+
+dependencies = [
+ ('Python', '3.10.8'),
+ ('SciPy-bundle', '2023.02'),
+ ('lxml', '4.9.2'),
+ ('PyQt5', '5.15.7'),
+]
+
+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/ETE/ETE-3.1.3-foss-2023a.eb b/easybuild/easyconfigs/e/ETE/ETE-3.1.3-foss-2023a.eb
new file mode 100644
index 00000000000..be10b633633
--- /dev/null
+++ b/easybuild/easyconfigs/e/ETE/ETE-3.1.3-foss-2023a.eb
@@ -0,0 +1,38 @@
+easyblock = 'PythonPackage'
+
+name = 'ETE'
+version = '3.1.3'
+
+homepage = 'http://etetoolkit.org'
+description = """A Python framework for the analysis and visualization of trees"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+source_urls = ['https://pypi.python.org/packages/source/e/ete3']
+sources = ['ete3-%(version)s.tar.gz']
+patches = ['ETE-3.1.2-foss-2021b_fix_binpath.patch']
+checksums = [
+ {'ete3-3.1.3.tar.gz': '06a3b7fa8ed90187b076a8dbbe5b1b62acee94201d3c6e822f55f449601ef6f2'},
+ {'ETE-3.1.2-foss-2021b_fix_binpath.patch': 'f71d1135e87e1035736f67b92ebcfebd2ae4d57e48f45e25c1a6144c60f11fbd'},
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('lxml', '4.9.2'),
+ ('PyQt5', '5.15.10'),
+]
+
+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/EVcouplings/EVcouplings-0.1.1-foss-2023a.eb b/easybuild/easyconfigs/e/EVcouplings/EVcouplings-0.1.1-foss-2023a.eb
new file mode 100644
index 00000000000..cc4bc9b90bc
--- /dev/null
+++ b/easybuild/easyconfigs/e/EVcouplings/EVcouplings-0.1.1-foss-2023a.eb
@@ -0,0 +1,61 @@
+easyblock = 'PythonBundle'
+
+name = 'EVcouplings'
+version = '0.1.1'
+
+homepage = 'https://github.com/debbiemarkslab/EVcouplings'
+description = """
+Predict protein structure, function and mutations using evolutionary sequence covariation.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+builddependencies = [
+ ('hatchling', '1.18.0'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('numba', '0.58.1'),
+ ('SciPy-bundle', '2023.07'),
+ ('ruamel.yaml', '0.17.32'),
+ ('matplotlib', '3.7.2'),
+ ('bokeh', '3.2.2'),
+ ('Biopython', '1.83'),
+ ('Seaborn', '0.13.2'),
+ ('scikit-learn', '1.3.1'),
+ ('HMMER', '3.4'),
+ # Needs plmc installed with single precision
+ ('plmc', '20230121', '-32bit'),
+]
+
+exts_list = [
+ ('mmtf-python', '1.1.3', {
+ 'modulename': 'mmtf',
+ 'checksums': ['12a02fe1b7131f0a2b8ce45b46f1e0cdd28b9818fe4499554c26884987ea0c32'],
+ }),
+ ('filelock', '3.13.4', {
+ 'checksums': ['d13f466618bfde72bd2c18255e269f72542c6e70e7bac83a0232d6b1cc5c8cf4'],
+ }),
+ ('billiard', '4.2.0', {
+ 'checksums': ['9a3c3184cb275aa17a732f93f65b20c525d3d9f253722d26a82194803ade5a2c'],
+ }),
+ ('evcouplings', version, {
+ 'patches': ['EVcouplings-%(version)s_fix-import-Iterable-Mapping.patch'],
+ 'sources': ['%(name)s-%(version)s.zip'],
+ 'checksums': [
+ {'evcouplings-0.1.1.zip': 'aba07acdc39a0da73f39f48a8cac915d5b671abc008c123bbe30e6759a2499d2'},
+ {'EVcouplings-0.1.1_fix-import-Iterable-Mapping.patch':
+ 'db2cff1de3488baaa1f0ac186c02c61432c27a3e5221525f1c773817722e7ba9'},
+ ],
+ }),
+]
+
+sanity_check_commands = [
+ "evcouplings --help",
+]
+
+use_pip = True
+sanity_pip_check = True
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/e/EVcouplings/EVcouplings-0.1.1_fix-import-Iterable-Mapping.patch b/easybuild/easyconfigs/e/EVcouplings/EVcouplings-0.1.1_fix-import-Iterable-Mapping.patch
new file mode 100644
index 00000000000..59caa949d96
--- /dev/null
+++ b/easybuild/easyconfigs/e/EVcouplings/EVcouplings-0.1.1_fix-import-Iterable-Mapping.patch
@@ -0,0 +1,77 @@
+The Iterable and Mapping were removed from collections in Python 3.10
+Import Iterable and Mapping from collections.abc
+Author: Cintia Willemyns (Vrije Universiteit Brussel)
+diff -Naru evcouplings-0.1.1.orig/evcouplings/align/protocol.py evcouplings-0.1.1/evcouplings/align/protocol.py
+--- evcouplings-0.1.1.orig/evcouplings/align/protocol.py 2024-06-04 17:15:24.409905000 +0200
++++ evcouplings-0.1.1/evcouplings/align/protocol.py 2024-06-04 17:16:54.492901448 +0200
+@@ -8,7 +8,8 @@
+
+ """
+
+-from collections import OrderedDict, Iterable
++from collections import OrderedDict
++from collections.abc import Iterable
+ import re
+ from shutil import copy
+ import os
+diff -Naru evcouplings-0.1.1.orig/evcouplings/compare/pdb.py evcouplings-0.1.1/evcouplings/compare/pdb.py
+--- evcouplings-0.1.1.orig/evcouplings/compare/pdb.py 2024-06-04 17:15:24.419850000 +0200
++++ evcouplings-0.1.1/evcouplings/compare/pdb.py 2024-06-04 17:52:31.882593767 +0200
+@@ -5,7 +5,8 @@
+ Thomas A. Hopf
+ """
+
+-from collections import OrderedDict, Iterable
++from collections import OrderedDict
++from collections.abc import Iterable
+ from os import path
+ from urllib.error import HTTPError
+
+diff -Naru evcouplings-0.1.1.orig/evcouplings/couplings/mapping.py evcouplings-0.1.1/evcouplings/couplings/mapping.py
+--- evcouplings-0.1.1.orig/evcouplings/couplings/mapping.py 2024-06-04 17:15:24.405238000 +0200
++++ evcouplings-0.1.1/evcouplings/couplings/mapping.py 2024-06-04 17:52:59.165312780 +0200
+@@ -7,7 +7,7 @@
+ Anna G. Green (MultiSegmentCouplingsModel)
+ """
+
+-from collections import Iterable
++from collections.abc import Iterable
+ from copy import deepcopy
+ from evcouplings.couplings.model import CouplingsModel
+ import pandas as pd
+diff -Naru evcouplings-0.1.1.orig/evcouplings/couplings/model.py evcouplings-0.1.1/evcouplings/couplings/model.py
+--- evcouplings-0.1.1.orig/evcouplings/couplings/model.py 2024-06-04 17:15:24.407628000 +0200
++++ evcouplings-0.1.1/evcouplings/couplings/model.py 2024-06-04 17:53:16.476317130 +0200
+@@ -6,7 +6,7 @@
+ Authors:
+ Thomas A. Hopf
+ """
+-from collections import Iterable
++from collections.abc import Iterable
+ from copy import deepcopy
+
+ from numba import jit
+diff -Naru evcouplings-0.1.1.orig/evcouplings/utils/app.py evcouplings-0.1.1/evcouplings/utils/app.py
+--- evcouplings-0.1.1.orig/evcouplings/utils/app.py 2024-06-04 17:15:24.424719000 +0200
++++ evcouplings-0.1.1/evcouplings/utils/app.py 2024-06-04 17:53:56.971793813 +0200
+@@ -14,7 +14,7 @@
+ import re
+ from copy import deepcopy
+ from os import path, environ
+-from collections import Mapping
++from collections.abc import Mapping
+
+ import click
+
+diff -Naru evcouplings-0.1.1.orig/evcouplings/utils/tracker/mongodb.py evcouplings-0.1.1/evcouplings/utils/tracker/mongodb.py
+--- evcouplings-0.1.1.orig/evcouplings/utils/tracker/mongodb.py 2024-06-04 17:15:24.421959000 +0200
++++ evcouplings-0.1.1/evcouplings/utils/tracker/mongodb.py 2024-06-04 17:54:25.411050098 +0200
+@@ -16,7 +16,7 @@
+
+ import os
+ from datetime import datetime
+-from collections import Mapping
++from collections.abc import Mapping
+
+ from pymongo import MongoClient, errors
+ import gridfs
diff --git a/easybuild/easyconfigs/e/EVidenceModeler/EVidenceModeler-2.0.0_set-correct-CFlags-for-ParaFly.patch b/easybuild/easyconfigs/e/EVidenceModeler/EVidenceModeler-2.0.0_set-correct-CFlags-for-ParaFly.patch
new file mode 100644
index 00000000000..3920012f0c7
--- /dev/null
+++ b/easybuild/easyconfigs/e/EVidenceModeler/EVidenceModeler-2.0.0_set-correct-CFlags-for-ParaFly.patch
@@ -0,0 +1,14 @@
+take into account $CFLAGS and $CXXFLAGS set in build environment when building ParaFly
+author: Lara Peeters (HPC-UGent)
+diff -ru EVidenceModeler.orig/Makefile EVidenceModeler/Makefile
+--- EVidenceModeler.orig/Makefile 2024-10-10 09:25:20.000000000 +0200
++++ EVidenceModeler/Makefile 2024-10-16 10:58:57.509308850 +0200
+@@ -6,7 +6,7 @@
+ CC = gcc
+
+ parafly:
+- cd plugins/ParaFly && sh ./configure --prefix=`pwd` CXX=$(CXX) CC=$(CC) CFLAGS="-fopenmp" CXXFLAGS="-fopenmp" && $(MAKE) install
++ cd plugins/ParaFly && sh ./configure --prefix=`pwd` CXX=$(CXX) CC=$(CC) CFLAGS="$(CFLAGS) -fopenmp" CXXFLAGS="$(CXXFLAGS) -fopenmp" && $(MAKE) install
+
+
+
diff --git a/easybuild/easyconfigs/e/EVidenceModeler/EVidenceModeler-2.1.0-foss-2023a.eb b/easybuild/easyconfigs/e/EVidenceModeler/EVidenceModeler-2.1.0-foss-2023a.eb
new file mode 100644
index 00000000000..62454399723
--- /dev/null
+++ b/easybuild/easyconfigs/e/EVidenceModeler/EVidenceModeler-2.1.0-foss-2023a.eb
@@ -0,0 +1,47 @@
+easyblock = 'Tarball'
+
+name = 'EVidenceModeler'
+version = '2.1.0'
+
+homepage = 'https://github.com/EVidenceModeler/EVidenceModeler'
+description = """ EVM provides a flexible and intuitive framework for
+combining diverse evidence types into a single automated gene structure annotation system."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+sources = [{
+ 'filename': '%(name)s-v%(version)s.tar.gz',
+ 'git_config': {
+ 'url': 'https://github.com/EVidenceModeler',
+ 'repo_name': '%(name)s',
+ 'tag': '%(name)s-v%(version)s',
+ 'recursive': True,
+ }
+}]
+patches = ['EVidenceModeler-2.0.0_set-correct-CFlags-for-ParaFly.patch']
+checksums = [
+ None, # EVidenceModeler-v2.1.0.tar.gz
+ '619fc54db10fad3638daa177373c19c9ba4b69dcb80585822bfa9b2500f57d13',
+ # EVidenceModeler-2.0.0_set-correct-CFlags-for-ParaFly.patch
+]
+
+dependencies = [
+ ('PASA', '2.5.3',),
+]
+
+# Install ParaFly
+postinstallcmds = ["cd %(installdir)s && rm plugins/ParaFly/bin/ParaFly && make"]
+
+sanity_check_paths = {
+ 'files': ['EVidenceModeler', 'plugins/ParaFly/bin/ParaFly'],
+ 'dirs': ['plugins/ParaFly', 'testing'],
+}
+
+modextrapaths = {
+ 'EVM_HOME': '',
+ 'PATH': '',
+}
+
+sanity_check_commands = ["EVidenceModeler -h 2>&1 | grep 'Evidence Modeler'"]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/e/EasyBuild/EasyBuild-4.9.1.eb b/easybuild/easyconfigs/e/EasyBuild/EasyBuild-4.9.1.eb
new file mode 100644
index 00000000000..5b5053253a3
--- /dev/null
+++ b/easybuild/easyconfigs/e/EasyBuild/EasyBuild-4.9.1.eb
@@ -0,0 +1,44 @@
+easyblock = 'EB_EasyBuildMeta'
+
+name = 'EasyBuild'
+version = '4.9.1'
+
+homepage = 'https://easybuilders.github.io/easybuild'
+description = """EasyBuild is a software build and installation framework
+ written in Python that allows you to install software in a structured,
+ repeatable and robust way."""
+
+toolchain = SYSTEM
+
+source_urls = [
+ # easybuild-framework
+ 'https://files.pythonhosted.org/packages/39/52/e61195776d676e96289b2956f6a1045c0577d836c776c04bc3694c6b4b89/',
+ # easybuild-easyblocks
+ 'https://files.pythonhosted.org/packages/ec/bd/c6117c19a49711752e095f425937d3405d90b1a60089d953f688ee89e6a8/',
+ # easybuild-easyconfigs
+ 'https://files.pythonhosted.org/packages/2d/78/a9357a9ef22703bb982427a25989dc9f563f21073f08cba5dc914c13a182/',
+]
+sources = [
+ 'easybuild-framework-%(version)s.tar.gz',
+ 'easybuild-easyblocks-%(version)s.tar.gz',
+ 'easybuild-easyconfigs-%(version)s.tar.gz',
+]
+checksums = [
+ {'easybuild-framework-4.9.1.tar.gz': '8f0448d32fab13019e06dba80fa3e13681574df302452184e5f8543c13ff2123'},
+ {'easybuild-easyblocks-4.9.1.tar.gz': 'da5adfa25356f62d28b170368c0d342bef08e18d843da713e011d7c344ad665e'},
+ {'easybuild-easyconfigs-4.9.1.tar.gz': '86b4abe118ea85b82ad981b63ccf03a0539664b8797327f060fe655216da26c8'},
+]
+
+# 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/EasyBuild/EasyBuild-4.9.2.eb b/easybuild/easyconfigs/e/EasyBuild/EasyBuild-4.9.2.eb
new file mode 100644
index 00000000000..cb476c53d7f
--- /dev/null
+++ b/easybuild/easyconfigs/e/EasyBuild/EasyBuild-4.9.2.eb
@@ -0,0 +1,56 @@
+easyblock = 'EB_EasyBuildMeta'
+
+name = 'EasyBuild'
+version = '4.9.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/cc/1f/676fc9e29c68e9c39c6dadf150ab4e5bf4907de4b9afd2bc6e0afd24ab7c/',
+ # easybuild-easyblocks
+ 'https://files.pythonhosted.org/packages/5d/85/e8593ceeb00c61253204e74d2a8360076ce016f42d83d33841f8e7de57a1/',
+ # easybuild-easyconfigs
+ 'https://files.pythonhosted.org/packages/99/b2/d899b4310bc54a10e0fb46995a2abc333857db16d116f22a53b0313d13d7/',
+]
+# note: subdirectory for each unpacked source tarball is renamed because custom easyblock in older EasyBuild version
+# that is used for installing EasyBuild with EasyBuild expects subdirectories with '-' rather than '_';
+# see also https://github.com/easybuilders/easybuild-easyblocks/pull/3358
+sources = [
+ {
+ 'filename': 'easybuild_framework-%(version)s.tar.gz',
+ 'extract_cmd': "tar xfvz %s && mv easybuild_framework-%(version)s easybuild-framework-%(version)s",
+ },
+ {
+ 'filename': 'easybuild_easyblocks-%(version)s.tar.gz',
+ 'extract_cmd': "tar xfvz %s && mv easybuild_easyblocks-%(version)s easybuild-easyblocks-%(version)s",
+ },
+ {
+ 'filename': 'easybuild_easyconfigs-%(version)s.tar.gz',
+ 'extract_cmd': "tar xfvz %s && mv easybuild_easyconfigs-%(version)s easybuild-easyconfigs-%(version)s",
+ },
+]
+checksums = [
+ {'easybuild_framework-4.9.2.tar.gz': 'cc6e0fe7bab2a96d424656ed70bf33e3b083eef5ceaa5d5fed88aa7b91dd3d63'},
+ {'easybuild_easyblocks-4.9.2.tar.gz': '48202a89995a3d0a19228a35e409228bb6aa190ec7d7a7560e449303954953df'},
+ {'easybuild_easyconfigs-4.9.2.tar.gz': '52d6f6378fc331cda8a94ff196d5bd6bb74c8029c973ee6a92763c256571eec7'},
+]
+
+# 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/EasyBuild/EasyBuild-4.9.3.eb b/easybuild/easyconfigs/e/EasyBuild/EasyBuild-4.9.3.eb
new file mode 100644
index 00000000000..4059b342213
--- /dev/null
+++ b/easybuild/easyconfigs/e/EasyBuild/EasyBuild-4.9.3.eb
@@ -0,0 +1,56 @@
+easyblock = 'EB_EasyBuildMeta'
+
+name = 'EasyBuild'
+version = '4.9.3'
+
+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/10/a0/e5484d4078f7450042cd7b7a1af24fd3f8d0cb4818f4578e4c322ba488d8/',
+ # easybuild-easyblocks
+ 'https://files.pythonhosted.org/packages/ee/40/4f6412917f83429f9389b977903c8905f216cb211c8bf3111f28c3017677/',
+ # easybuild-easyconfigs
+ 'https://files.pythonhosted.org/packages/13/95/44d1e10ceaaf08219ef50d1d97d500ba3b6b34f2d76dd1ff64def71612dc/',
+]
+# note: subdirectory for each unpacked source tarball is renamed because custom easyblock in older EasyBuild version
+# that is used for installing EasyBuild with EasyBuild expects subdirectories with '-' rather than '_';
+# see also https://github.com/easybuilders/easybuild-easyblocks/pull/3358
+sources = [
+ {
+ 'filename': 'easybuild_framework-%(version)s.tar.gz',
+ 'extract_cmd': "tar xfvz %s && mv easybuild_framework-%(version)s easybuild-framework-%(version)s",
+ },
+ {
+ 'filename': 'easybuild_easyblocks-%(version)s.tar.gz',
+ 'extract_cmd': "tar xfvz %s && mv easybuild_easyblocks-%(version)s easybuild-easyblocks-%(version)s",
+ },
+ {
+ 'filename': 'easybuild_easyconfigs-%(version)s.tar.gz',
+ 'extract_cmd': "tar xfvz %s && mv easybuild_easyconfigs-%(version)s easybuild-easyconfigs-%(version)s",
+ },
+]
+checksums = [
+ {'easybuild_framework-4.9.3.tar.gz': '43bbcaa0a7b075eb6483054428ef4b1279a9fc850301171688f86899eaebfff8'},
+ {'easybuild_easyblocks-4.9.3.tar.gz': '4f036be918f88fe2dadba87f15d696e9b4d3f8f06986c675b9fafc77b591649d'},
+ {'easybuild_easyconfigs-4.9.3.tar.gz': 'f7f501c87cb16a8eb393f5e98cb3cd5f8e84314901e81ff50f8140681b415676'},
+]
+
+# 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/EasyBuild/EasyBuild-4.9.4.eb b/easybuild/easyconfigs/e/EasyBuild/EasyBuild-4.9.4.eb
new file mode 100644
index 00000000000..064536bb936
--- /dev/null
+++ b/easybuild/easyconfigs/e/EasyBuild/EasyBuild-4.9.4.eb
@@ -0,0 +1,59 @@
+easyblock = 'EB_EasyBuildMeta'
+
+name = 'EasyBuild'
+version = '4.9.4'
+
+homepage = 'https://easybuilders.github.io/easybuild'
+description = """EasyBuild is a software build and installation framework
+ written in Python that allows you to install software in a structured,
+ repeatable and robust way."""
+
+toolchain = SYSTEM
+
+source_urls = [
+ # easybuild-framework
+ 'https://files.pythonhosted.org/packages/bd/25/512d9e895a86f4df198274e8a5f6868406d97cc75da9acc5797f78139b52/',
+ # easybuild-easyblocks
+ 'https://files.pythonhosted.org/packages/d7/b0/b9289c78fafc21c5c01b225aeee89c69914166742e5f80955d49ed8f9722/',
+ # easybuild-easyconfigs
+ 'https://files.pythonhosted.org/packages/ed/2c/7b2b22235ffe9310a93cbfef06fb3723466aa8ccc4aca4888b59433e55a6/',
+]
+# note: subdirectory for each unpacked source tarball is renamed because custom easyblock in older EasyBuild version
+# that is used for installing EasyBuild with EasyBuild expects subdirectories with '-' rather than '_';
+# see also https://github.com/easybuilders/easybuild-easyblocks/pull/3358
+sources = [
+ {
+ 'filename': 'easybuild_framework-%(version)s.tar.gz',
+ 'extract_cmd': "tar xfvz %s && mv easybuild_framework-%(version)s easybuild-framework-%(version)s",
+ },
+ {
+ 'filename': 'easybuild_easyblocks-%(version)s.tar.gz',
+ 'extract_cmd': "tar xfvz %s && mv easybuild_easyblocks-%(version)s easybuild-easyblocks-%(version)s",
+ },
+ {
+ 'filename': 'easybuild_easyconfigs-%(version)s.tar.gz',
+ 'extract_cmd': "tar xfvz %s && mv easybuild_easyconfigs-%(version)s easybuild-easyconfigs-%(version)s",
+ },
+]
+patches = ['EasyBuild-4.9.4_fix-riscv-toolchain-opts-typo.patch']
+checksums = [
+ {'easybuild_framework-4.9.4.tar.gz': '5b380a2e3a359f64f06789c390200b922a840f6b10b441e5163696a34bd9bc27'},
+ {'easybuild_easyblocks-4.9.4.tar.gz': '1272f1e294090caafde8cbda72ae344ef400fdd161163781f67b3cffe761dd62'},
+ {'easybuild_easyconfigs-4.9.4.tar.gz': 'beee4e098f5fee18f2029d6a0b893549aba26e075b147cc0008cb16fd4c8d982'},
+ {'EasyBuild-4.9.4_fix-riscv-toolchain-opts-typo.patch':
+ '602d9abfdd90f435bdc877b1d2710a17ae577c790914e7bf61428dc7073ad1b6'},
+]
+
+# 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/EasyBuild/EasyBuild-4.9.4_fix-riscv-toolchain-opts-typo.patch b/easybuild/easyconfigs/e/EasyBuild/EasyBuild-4.9.4_fix-riscv-toolchain-opts-typo.patch
new file mode 100644
index 00000000000..f93ba6247c4
--- /dev/null
+++ b/easybuild/easyconfigs/e/EasyBuild/EasyBuild-4.9.4_fix-riscv-toolchain-opts-typo.patch
@@ -0,0 +1,23 @@
+https://github.com/easybuilders/easybuild-framework/pull/4668
+From 688c6709504c4b54f881b9a674c3c5dfd6acd241 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Bob=20Dr=C3=B6ge?=
+Date: Fri, 4 Oct 2024 16:35:35 +0200
+Subject: [PATCH] fix typo in veryloose toolchain option
+
+---
+ easybuild/toolchains/compiler/gcc.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/easybuild/toolchains/compiler/gcc.py b/easybuild/toolchains/compiler/gcc.py
+index e9748f3bda..fd50ad2c03 100644
+--- a/easybuild/toolchains/compiler/gcc.py
++++ b/easybuild/toolchains/compiler/gcc.py
+@@ -85,7 +85,7 @@ class Gcc(Compiler):
+ COMPILER_UNIQUE_OPTION_MAP['strict'] = []
+ COMPILER_UNIQUE_OPTION_MAP['precise'] = []
+ COMPILER_UNIQUE_OPTION_MAP['loose'] = ['fno-math-errno']
+- COMPILER_UNIQUE_OPTION_MAP['verloose'] = ['fno-math-errno']
++ COMPILER_UNIQUE_OPTION_MAP['veryloose'] = ['fno-math-errno']
+
+ # used when 'optarch' toolchain option is enabled (and --optarch is not specified)
+ COMPILER_OPTIMAL_ARCHITECTURE_OPTION = {
diff --git a/easybuild/easyconfigs/e/EasyMocap/EasyMocap-0.2-foss-2022a-CUDA-11.7.0.eb b/easybuild/easyconfigs/e/EasyMocap/EasyMocap-0.2-foss-2022a-CUDA-11.7.0.eb
new file mode 100644
index 00000000000..f5a93adc6f7
--- /dev/null
+++ b/easybuild/easyconfigs/e/EasyMocap/EasyMocap-0.2-foss-2022a-CUDA-11.7.0.eb
@@ -0,0 +1,81 @@
+easyblock = 'PythonBundle'
+
+name = 'EasyMocap'
+version = '0.2'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://chingswy.github.io/easymocap-public-doc/'
+description = """EasyMoCap is an open-source toolbox designed for markerless
+ human motion capture from RGB videos. This project offers a wide range of motion
+ capture methods across various settings."""
+
+toolchain = {'name': 'foss', 'version': '2022a'}
+
+dependencies = [
+ ('CUDA', '11.7.0', '', SYSTEM),
+ ('Python', '3.10.4'),
+ ('PyTorch', '1.12.0', versionsuffix),
+ ('torchvision', '0.13.1', versionsuffix),
+ ('tqdm', '4.64.0'),
+ ('OpenCV', '4.6.0', '-CUDA-%(cudaver)s-contrib'),
+ ('flatbuffers', '2.0.7'),
+ ('matplotlib', '3.5.2'),
+ ('PortAudio', '19.7.0'),
+ # for pyrender
+ ('freetype-py', '2.4.0'),
+ ('imageio', '2.22.2'),
+ ('networkx', '2.8.4'),
+ ('PyOpenGL', '3.1.6'),
+ ('trimesh', '3.17.1'),
+ # for ipdb
+ ('IPython', '8.5.0'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('chumpy', '0.70', {
+ 'checksums': ['a0275c2018784ca1302875567dc81761f5fd469fab9f3ac0f3e7c39e9180350a'],
+ }),
+ ('func_timeout', '4.3.5', {
+ 'checksums': ['74cd3c428ec94f4edfba81f9b2f14904846d5ffccc27c92433b8b5939b5575dd'],
+ }),
+ ('ipdb', '0.13.13', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['45529994741c4ab6d2388bfa5d7b725c2cf7fe9deffabdb8a6113aa5ed449ed4'],
+ }),
+ ('termcolor', '2.4.0', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['9297c0df9c99445c2412e832e882a7884038a25617c60cea2ad69488d4040d63'],
+ }),
+ ('yacs', '0.1.8', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['99f893e30497a4b66842821bac316386f7bd5c4f47ad35c9073ef089aa33af32'],
+ }),
+ ('pyglet', '2.0.15', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['9e4cc16efc308106fd3a9ff8f04e7a6f4f6a807c6ac8a331375efbbac8be85af'],
+ }),
+ ('pyrender', '0.1.45', {
+ # PyOpenGL requirement is too strict
+ 'preinstallopts': "sed -i 's/PyOpenGL==3.1.0/PyOpenGL>=3.1.0/g' setup.py && ",
+ 'checksums': ['284b2432bf6832f05c5216c4b979ceb514ea78163bf53b8ce2bdf0069cb3b92e'],
+ }),
+ # Building from source fails. See https://github.com/google/mediapipe/issues/5247
+ ('mediapipe', '0.10.11', {
+ 'sources': ['mediapipe-%(version)s-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl'],
+ 'checksums': ['fc5283a50227a93d7755fd0f83d0d6daeb0f1c841df1ac9101e96e32e7e03ba1'],
+ }),
+ ('sounddevice', '0.4.6', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['5de768ba6fe56ad2b5aaa2eea794b76b73e427961c95acad2ee2ed7f866a4b20'],
+ }),
+ (name, version, {
+ 'source_urls': ['https://github.com/zju3dv/EasyMocap/archive'],
+ 'sources': ['v%(version)s.tar.gz'],
+ 'checksums': ['d4c42b82ea8a53662354ff70b775e505c654ca4fd51524029214acbc16aa9773'],
+ }),
+]
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/e/EasyMocap/EasyMocap-0.2-foss-2022a.eb b/easybuild/easyconfigs/e/EasyMocap/EasyMocap-0.2-foss-2022a.eb
new file mode 100644
index 00000000000..b3ea4435687
--- /dev/null
+++ b/easybuild/easyconfigs/e/EasyMocap/EasyMocap-0.2-foss-2022a.eb
@@ -0,0 +1,79 @@
+easyblock = 'PythonBundle'
+
+name = 'EasyMocap'
+version = '0.2'
+
+homepage = 'https://chingswy.github.io/easymocap-public-doc/'
+description = """EasyMoCap is an open-source toolbox designed for markerless
+ human motion capture from RGB videos. This project offers a wide range of motion
+ capture methods across various settings."""
+
+toolchain = {'name': 'foss', 'version': '2022a'}
+
+dependencies = [
+ ('Python', '3.10.4'),
+ ('PyTorch', '1.12.0'),
+ ('torchvision', '0.13.1'),
+ ('tqdm', '4.64.0'),
+ ('OpenCV', '4.6.0', '-contrib'),
+ ('flatbuffers', '2.0.7'),
+ ('matplotlib', '3.5.2'),
+ ('PortAudio', '19.7.0'),
+ # for pyrender
+ ('freetype-py', '2.4.0'),
+ ('imageio', '2.22.2'),
+ ('networkx', '2.8.4'),
+ ('PyOpenGL', '3.1.6'),
+ ('trimesh', '3.17.1'),
+ # for ipdb
+ ('IPython', '8.5.0'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('chumpy', '0.70', {
+ 'checksums': ['a0275c2018784ca1302875567dc81761f5fd469fab9f3ac0f3e7c39e9180350a'],
+ }),
+ ('func_timeout', '4.3.5', {
+ 'checksums': ['74cd3c428ec94f4edfba81f9b2f14904846d5ffccc27c92433b8b5939b5575dd'],
+ }),
+ ('ipdb', '0.13.13', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['45529994741c4ab6d2388bfa5d7b725c2cf7fe9deffabdb8a6113aa5ed449ed4'],
+ }),
+ ('termcolor', '2.4.0', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['9297c0df9c99445c2412e832e882a7884038a25617c60cea2ad69488d4040d63'],
+ }),
+ ('yacs', '0.1.8', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['99f893e30497a4b66842821bac316386f7bd5c4f47ad35c9073ef089aa33af32'],
+ }),
+ ('pyglet', '2.0.15', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['9e4cc16efc308106fd3a9ff8f04e7a6f4f6a807c6ac8a331375efbbac8be85af'],
+ }),
+ ('pyrender', '0.1.45', {
+ # PyOpenGL requirement is too strict
+ 'preinstallopts': "sed -i 's/PyOpenGL==3.1.0/PyOpenGL>=3.1.0/g' setup.py && ",
+ 'checksums': ['284b2432bf6832f05c5216c4b979ceb514ea78163bf53b8ce2bdf0069cb3b92e'],
+ }),
+ # Building from source fails. See https://github.com/google/mediapipe/issues/5247
+ ('mediapipe', '0.10.11', {
+ 'sources': ['mediapipe-%(version)s-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl'],
+ 'checksums': ['fc5283a50227a93d7755fd0f83d0d6daeb0f1c841df1ac9101e96e32e7e03ba1'],
+ }),
+ ('sounddevice', '0.4.6', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['5de768ba6fe56ad2b5aaa2eea794b76b73e427961c95acad2ee2ed7f866a4b20'],
+ }),
+ (name, version, {
+ 'source_urls': ['https://github.com/zju3dv/EasyMocap/archive'],
+ 'sources': ['v%(version)s.tar.gz'],
+ 'checksums': ['d4c42b82ea8a53662354ff70b775e505c654ca4fd51524029214acbc16aa9773'],
+ }),
+]
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/e/Eigen/Eigen-3.4.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/e/Eigen/Eigen-3.4.0-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..f6a47336ef1
--- /dev/null
+++ b/easybuild/easyconfigs/e/Eigen/Eigen-3.4.0-GCCcore-13.3.0.eb
@@ -0,0 +1,21 @@
+name = 'Eigen'
+version = '3.4.0'
+
+homepage = 'https://eigen.tuxfamily.org'
+description = """Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers,
+ and related algorithms."""
+
+# only includes header files, but requires CMake so using non-system toolchain
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://gitlab.com/libeigen/eigen/-/archive/%(version)s']
+sources = [SOURCELOWER_TAR_BZ2]
+checksums = ['b4c198460eba6f28d34894e3a5710998818515104d6e74e5cc331ce31e46e626']
+
+# using CMake built with GCCcore to avoid relying on the system compiler to build it
+builddependencies = [
+ ('binutils', '2.42'), # to make CMake compiler health check pass on old systems
+ ('CMake', '3.29.3'),
+]
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/e/EpiSCORE/EpiSCORE-0.9.5-20220621-foss-2022a-R-4.2.1.eb b/easybuild/easyconfigs/e/EpiSCORE/EpiSCORE-0.9.5-20220621-foss-2022a-R-4.2.1.eb
new file mode 100644
index 00000000000..0f291cf4317
--- /dev/null
+++ b/easybuild/easyconfigs/e/EpiSCORE/EpiSCORE-0.9.5-20220621-foss-2022a-R-4.2.1.eb
@@ -0,0 +1,30 @@
+easyblock = 'RPackage'
+
+name = 'EpiSCORE'
+local_commit = '4f7daef'
+# see DESCRIPTION to determine version,
+# but also take date of last commit into account (since version isn't always bumped)
+version = '0.9.5-20220621'
+versionsuffix = '-R-%(rver)s'
+
+homepage = 'https://github.com/aet21/EpiSCORE'
+description = "Epigenetic cell-type deconvolution from Single-Cell Omic Reference profiles"
+
+toolchain = {'name': 'foss', 'version': '2022a'}
+
+source_urls = ['https://github.com/aet21/EpiSCORE/archive/']
+sources = [{'download_filename': '%s.tar.gz' % local_commit, 'filename': SOURCE_TAR_GZ}]
+checksums = ['85ce52efe0555295ceaab79518244bcbea8c3b7d454f84c74b99e577f56e1481']
+
+dependencies = [
+ ('R', '4.2.1'),
+ ('R-bundle-Bioconductor', '3.15', versionsuffix),
+ ('presto', '1.0.0-20230113', versionsuffix),
+]
+
+sanity_check_paths = {
+ 'files': [],
+ 'dirs': [name],
+}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/e/EveryBeam/EveryBeam-0.5.2-foss-2023b.eb b/easybuild/easyconfigs/e/EveryBeam/EveryBeam-0.5.2-foss-2023b.eb
new file mode 100644
index 00000000000..bec1bf004e7
--- /dev/null
+++ b/easybuild/easyconfigs/e/EveryBeam/EveryBeam-0.5.2-foss-2023b.eb
@@ -0,0 +1,49 @@
+easyblock = 'CMakeMake'
+
+name = 'EveryBeam'
+version = '0.5.2'
+
+homepage = 'https://everybeam.readthedocs.io/'
+description = """Library that provides the antenna response pattern for several instruments,
+such as LOFAR (and LOBES), SKA (OSKAR), MWA, JVLA, etc."""
+
+toolchain = {'name': 'foss', 'version': '2023b'}
+
+sources = [
+ {
+ 'filename': '%(name)s-v%(version)s.tar.gz',
+ # Repo uses git submodules, which are not included in the release tarballs.
+ # Thus, we let EasyBuild download directly from the git repository.
+ 'git_config': {
+ 'url': 'https://git.astron.nl/RD',
+ 'repo_name': '%(name)s',
+ 'tag': 'v%(version)s',
+ 'clone_into': '%(name)s',
+ 'recursive': True
+ }
+ },
+]
+checksums = [None]
+
+builddependencies = [
+ ('CMake', '3.27.6'),
+ ('wget', '1.21.4'),
+]
+dependencies = [
+ ('casacore', '3.5.0'),
+ ('Boost', '1.83.0'),
+ ('CFITSIO', '4.3.1'),
+ ('WCSLIB', '7.11'),
+ ('GSL', '2.7'),
+ ('HDF5', '1.14.3'),
+ ('Python', '3.11.5'),
+ ('libxml2', '2.11.5'),
+]
+
+
+sanity_check_paths = {
+ 'files': ['include/%(name)s/beamformer.h', 'lib/libeverybeam.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/e/EvidentialGene/EvidentialGene-2023.07.15-gompi-2023a.eb b/easybuild/easyconfigs/e/EvidentialGene/EvidentialGene-2023.07.15-gompi-2023a.eb
new file mode 100644
index 00000000000..c4ae0c4e12d
--- /dev/null
+++ b/easybuild/easyconfigs/e/EvidentialGene/EvidentialGene-2023.07.15-gompi-2023a.eb
@@ -0,0 +1,40 @@
+easyblock = "PackedBinary"
+
+name = "EvidentialGene"
+version = '2023.07.15'
+local_month = ['', 'jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec']
+local_dlver = version.split('.')[0][-2:] + local_month[int(version.split('.')[1])] + version.split('.')[2]
+
+homepage = 'http://arthropods.eugenes.org/EvidentialGene/'
+description = """EvidentialGene is a genome informatics project for
+ "Evidence Directed Gene Construction for Eukaryotes",
+ for constructing high quality, accurate gene sets for
+ animals and plants (any eukaryotes), being developed by
+ Don Gilbert at Indiana University, gilbertd at indiana edu."""
+
+toolchain = {'name': 'gompi', 'version': '2023a'}
+
+source_urls = [
+ 'http://arthropods.eugenes.org/EvidentialGene/other/evigene_old/',
+ 'http://arthropods.eugenes.org/EvidentialGene/other/evigene_old/evigene_older/',
+]
+sources = ['evigene%s.tar' % local_dlver]
+checksums = ['8fe8e5c21ac3f8b7134d8e26593fe66647eb8b7ba2c1cd1c158fc811769b9539']
+
+dependencies = [
+ ('Perl', '5.36.1'),
+ ('Exonerate', '2.4.0'),
+ ('CD-HIT', '4.8.1'),
+ ('BLAST+', '2.14.1'),
+]
+
+fix_perl_shebang_for = ['scripts/*.pl', 'scripts/*/*.pl', 'scripts/*/*/*.pl']
+
+sanity_check_paths = {
+ 'files': [],
+ 'dirs': ['scripts/'],
+}
+
+modextravars = {'evigene': '%(installdir)s'}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/e/Exonerate/Exonerate-2.4.0-GCC-12.3.0.eb b/easybuild/easyconfigs/e/Exonerate/Exonerate-2.4.0-GCC-12.3.0.eb
new file mode 100644
index 00000000000..4e57e85a280
--- /dev/null
+++ b/easybuild/easyconfigs/e/Exonerate/Exonerate-2.4.0-GCC-12.3.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.3.0'}
+
+source_urls = ['https://ftp.ebi.ac.uk/pub/software/vertebrategenomics/%(namelower)s/']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['f849261dc7c97ef1f15f222e955b0d3daf994ec13c9db7766f1ac7e77baa4042']
+
+builddependencies = [
+ ('pkgconf', '1.9.5'),
+]
+dependencies = [
+ ('GLib', '2.77.1'),
+]
+
+# 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/ExpressBetaDiversity/ExpressBetaDiversity-1.0.10-GCC-12.3.0.eb b/easybuild/easyconfigs/e/ExpressBetaDiversity/ExpressBetaDiversity-1.0.10-GCC-12.3.0.eb
new file mode 100644
index 00000000000..f78daf5fb08
--- /dev/null
+++ b/easybuild/easyconfigs/e/ExpressBetaDiversity/ExpressBetaDiversity-1.0.10-GCC-12.3.0.eb
@@ -0,0 +1,45 @@
+easyblock = 'MakeCp'
+
+name = 'ExpressBetaDiversity'
+version = '1.0.10'
+
+homepage = 'https://github.com/donovan-h-parks/ExpressBetaDiversity'
+description = """Taxon- and phylogenetic-based beta diversity measures."""
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+
+github_account = 'donovan-h-parks'
+source_urls = [GITHUB_SOURCE]
+sources = ['v%(version)s.tar.gz']
+checksums = ['c3ee0894ed0beea42f7668e531e53d01f4c19374d0dfd287cb400a68241c6c03']
+
+dependencies = [
+ ('Python', '3.11.3'),
+]
+
+prebuildopts = "cd source && "
+# fix wrong regex pattern which makes: FutureWarning: split() requires a non-empty pattern match.
+prebuildopts += "sed -i '36 s/*/+/' dep.py && "
+# force use python from dependencies not the one on a node
+buildopts = "DEP='python dep.py'"
+
+files_to_copy = [
+ 'bin',
+ 'unit-tests',
+ (['scripts/*'], 'bin')
+]
+
+sanity_check_paths = {
+ 'files': ['bin/ExpressBetaDiversity'],
+ 'dirs': ['unit-tests'],
+}
+
+sanity_check_commands = [
+ 'ExpressBetaDiversity --help',
+ 'convertToEBD.py --help',
+ # Unit tests need to be executed from the bin directory.
+ # See source/UnitTests.cpp:112: std::string seqCountFile = "../unit-tests/SimpleDataMatrix.env";
+ 'cd bin && ExpressBetaDiversity -u',
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/e/Extrae/Extrae-4.2.0-debug_add_event.patch b/easybuild/easyconfigs/e/Extrae/Extrae-4.2.0-debug_add_event.patch
new file mode 100644
index 00000000000..bd5c925f69f
--- /dev/null
+++ b/easybuild/easyconfigs/e/Extrae/Extrae-4.2.0-debug_add_event.patch
@@ -0,0 +1,12 @@
+diff -Nru extrae-4.2.0.orig/src/tracer/hwc/papi_hwc.c extrae-4.2.0/src/tracer/hwc/papi_hwc.c
+--- extrae-4.2.0.orig/src/tracer/hwc/papi_hwc.c 2024-07-01 16:12:04.562957639 +0200
++++ extrae-4.2.0/src/tracer/hwc/papi_hwc.c 2024-07-02 17:21:19.783586061 +0200
+@@ -615,7 +615,7 @@
+ char EventName[PAPI_MAX_STR_LEN];
+
+ PAPI_event_code_to_name (HWC_sets[i].counters[j], EventName);
+- fprintf (stderr, PACKAGE_NAME": Error! Hardware counter %s (0x%08x) cannot be added in set %d (task %d, thread %d)\n", EventName, HWC_sets[i].counters[j], i+1, TASKID, threadid);
++ fprintf (stderr, PACKAGE_NAME": Error! Hardware counter %s (0x%08x) cannot be added in set %d (task %d, thread %d) because of %d\n", EventName, HWC_sets[i].counters[j], i+1, TASKID, threadid, rc);
+ HWC_sets[i].counters[j] = NO_COUNTER;
+ /* break; */
+ }
diff --git a/easybuild/easyconfigs/e/Extrae/Extrae-4.2.0-detect_binutils.patch b/easybuild/easyconfigs/e/Extrae/Extrae-4.2.0-detect_binutils.patch
new file mode 100644
index 00000000000..ae5847ad80e
--- /dev/null
+++ b/easybuild/easyconfigs/e/Extrae/Extrae-4.2.0-detect_binutils.patch
@@ -0,0 +1,42 @@
+diff -Nru extrae-4.2.0.orig/config/macros.m4 extrae-4.2.0/config/macros.m4
+--- extrae-4.2.0.orig/config/macros.m4 2024-07-01 16:12:03.689962036 +0200
++++ extrae-4.2.0/config/macros.m4 2024-07-01 16:13:05.811649165 +0200
+@@ -779,6 +779,8 @@
+ elif test -r "${binutils_home_dir}/lib/libbfd.a" -a \
+ "${binutils_require_shared}" = "no" ; then
+ BFD_LIBSDIR="${binutils_home_dir}/lib"
++ elif test -r "${binutils_home_dir}/libbfd.so" ; then
++ BFD_LIBSDIR="${binutils_home_dir}"
+ else
+ dnl Try something more automatic using find command
+ libbfd_lib=""
+@@ -814,6 +816,8 @@
+ LIBERTY_LIBSDIR="${binutils_home_dir}/lib"
+ elif test -r "${binutils_home_dir}/lib/libiberty.a" ; then
+ LIBERTY_LIBSDIR="${binutils_home_dir}/lib"
++ elif test -r "${binutils_home_dir}/libiberty.a" ; then
++ LIBERTY_LIBSDIR="${binutils_home_dir}"
+ else
+ dnl Try something more automatic using find command
+ libiberty_lib=""
+diff -Nru extrae-4.2.0.orig/configure extrae-4.2.0/configure
+--- extrae-4.2.0.orig/configure 2024-07-01 16:12:03.308963954 +0200
++++ extrae-4.2.0/configure 2024-07-01 16:17:00.458465744 +0200
+@@ -35074,6 +35074,8 @@
+ elif test -r "${binutils_home_dir}/lib/libbfd.a" -a \
+ "${binutils_require_shared}" = "no" ; then
+ BFD_LIBSDIR="${binutils_home_dir}/lib"
++ elif test -r "${binutils_home_dir}/libbfd.so" ; then
++ BFD_LIBSDIR="${binutils_home_dir}"
+ else
+ libbfd_lib=""
+
+@@ -35108,6 +35110,8 @@
+ LIBERTY_LIBSDIR="${binutils_home_dir}/lib"
+ elif test -r "${binutils_home_dir}/lib/libiberty.a" ; then
+ LIBERTY_LIBSDIR="${binutils_home_dir}/lib"
++ elif test -r "${binutils_home_dir}/libiberty.a" ; then
++ LIBERTY_LIBSDIR="${binutils_home_dir}"
+ else
+ libiberty_lib=""
+
diff --git a/easybuild/easyconfigs/e/Extrae/Extrae-4.2.0-fix-hw-counters-checks.patch b/easybuild/easyconfigs/e/Extrae/Extrae-4.2.0-fix-hw-counters-checks.patch
new file mode 100644
index 00000000000..2d588694b4c
--- /dev/null
+++ b/easybuild/easyconfigs/e/Extrae/Extrae-4.2.0-fix-hw-counters-checks.patch
@@ -0,0 +1,137 @@
+diff -Nru extrae-4.2.0.orig/tests/functional/hw-counters/check_Extrae_PAPI_TOT_CYC.sh extrae-4.2.0/tests/functional/hw-counters/check_Extrae_PAPI_TOT_CYC.sh
+--- extrae-4.2.0.orig/tests/functional/hw-counters/check_Extrae_PAPI_TOT_CYC.sh 2024-07-01 16:12:03.454963219 +0200
++++ extrae-4.2.0/tests/functional/hw-counters/check_Extrae_PAPI_TOT_CYC.sh 2024-07-03 16:51:00.533542188 +0200
+@@ -10,7 +10,29 @@
+ EXTRAE_CONFIG_FILE=extrae-PAPI_TOT_CYC.xml ./check_Extrae_counters_xml
+ ../../../src/merger/mpi2prv -f TRACE.mpits -o ${TRACE}.prv
+
+-# Check
++# Check PAPI availability
++if ! command -v papi_avail &> /dev/null
++then
++ echo "papi_avail could not be found"
++ exit 0
++fi
++
++# Check COUNTER availability
++PAPI_TOT_CYC_available=`papi_avail | grep PAPI_TOT_CYC | awk '{print $3}'`
++if [[ "$PAPI_TOT_CYC_available" == No ]]
++then
++ echo "PAPI_TOT_CYC is not available"
++ exit 0
++fi
++
++# Check that HW counters are accessible
++ACCESS_LEVEL=`sysctl kernel.perf_event_paranoid |awk '{print $3}'`
++if [ $ACCESS_LEVEL \> 1 ]
++then
++ echo "perf_event_paranoid configuration does not allow access to HW counters"
++ exit 0
++fi
++
+ CheckEntryInPCF ${TRACE}.pcf PAPI_TOT_CYC
+
+ rm -fr TRACE* set-0 ${TRACE}.???
+diff -Nru extrae-4.2.0.orig/tests/functional/hw-counters/check_Extrae_PAPI_TOT_INS_CYC.sh extrae-4.2.0/tests/functional/hw-counters/check_Extrae_PAPI_TOT_INS_CYC.sh
+--- extrae-4.2.0.orig/tests/functional/hw-counters/check_Extrae_PAPI_TOT_INS_CYC.sh 2024-07-01 16:12:03.448963249 +0200
++++ extrae-4.2.0/tests/functional/hw-counters/check_Extrae_PAPI_TOT_INS_CYC.sh 2024-07-03 16:52:55.509932826 +0200
+@@ -10,7 +10,30 @@
+ EXTRAE_CONFIG_FILE=extrae-PAPI_TOT_INS_CYC.xml ./check_Extrae_counters_xml
+ ../../../src/merger/mpi2prv -f TRACE.mpits -o ${TRACE}.prv
+
+-# Check
++# Check PAPI availability
++if ! command -v papi_avail &> /dev/null
++then
++ echo "papi_avail could not be found"
++ exit 0
++fi
++
++# Check COUNTER availability
++PAPI_TOT_CYC_available=`papi_avail | grep PAPI_TOT_CYC | awk '{print $3}'`
++if [[ "$PAPI_TOT_CYC_available" == No ]]
++then
++ echo "PAPI_TOT_CYC is not available"
++ exit 0
++fi
++
++# Check counters accessibility level
++ACCESS_LEVEL=`sysctl kernel.perf_event_paranoid |awk '{print $3}'`
++if [ $ACCESS_LEVEL \> 1 ]
++then
++ echo "perf_event_paranoid configuration does not allow access to HW counters"
++ exit 0
++fi
++
++
+ CheckEntryInPCF ${TRACE}.pcf PAPI_TOT_INS
+ CheckEntryInPCF ${TRACE}.pcf PAPI_TOT_CYC
+
+diff -Nru extrae-4.2.0.orig/tests/functional/hw-counters/check_Extrae_PAPI_TOT_INS.sh extrae-4.2.0/tests/functional/hw-counters/check_Extrae_PAPI_TOT_INS.sh
+--- extrae-4.2.0.orig/tests/functional/hw-counters/check_Extrae_PAPI_TOT_INS.sh 2024-07-01 16:12:03.455963214 +0200
++++ extrae-4.2.0/tests/functional/hw-counters/check_Extrae_PAPI_TOT_INS.sh 2024-07-03 16:54:17.878497036 +0200
+@@ -10,7 +10,29 @@
+ EXTRAE_CONFIG_FILE=extrae-PAPI_TOT_INS.xml ./check_Extrae_counters_xml
+ ../../../src/merger/mpi2prv -f TRACE.mpits -o ${TRACE}.prv
+
+-# Check
++# Check PAPI availability
++if ! command -v papi_avail &> /dev/null
++then
++ echo "papi_avail could not be found"
++ exit 0
++fi
++
++# Check COUNTERS availability
++PAPI_TOT_INS_available=`papi_avail | grep PAPI_TOT_INS | awk '{print $3}'`
++if [[ "$PAPI_TOT_INS_available" == No ]]
++then
++ echo "PAPI_TOT_INS is not available"
++ exit 0
++fi
++
++# Check COUNTERS accessibility level
++ACCESS_LEVEL=`sysctl kernel.perf_event_paranoid |awk '{print $3}'`
++if [ $ACCESS_LEVEL \> 1 ]
++then
++ echo "perf_event_paranoid configuration does not allow access to HW counters"
++ exit 0
++fi
++
+ CheckEntryInPCF ${TRACE}.pcf PAPI_TOT_INS
+
+ rm -fr TRACE* set-0 ${TRACE}.???
+diff -Nru extrae-4.2.0.orig/tests/functional/xml/check_Extrae_xml_envvar_counters.sh extrae-4.2.0/tests/functional/xml/check_Extrae_xml_envvar_counters.sh
+--- extrae-4.2.0.orig/tests/functional/xml/check_Extrae_xml_envvar_counters.sh 2024-07-01 16:12:03.484963068 +0200
++++ extrae-4.2.0/tests/functional/xml/check_Extrae_xml_envvar_counters.sh 2024-07-03 16:56:41.975736132 +0200
+@@ -10,7 +10,29 @@
+ COUNTERS=PAPI_TOT_INS EXTRAE_CONFIG_FILE=extrae_envvar_counters.xml ./check_Extrae_xml
+ ../../../src/merger/mpi2prv -f TRACE.mpits -o ${TRACE}.prv
+
+-# Check
++# Check PAPI availability
++if ! command -v papi_avail &> /dev/null
++then
++ echo "papi_avail could not be found"
++ exit 0
++fi
++
++# Check COUNTER availability
++PAPI_TOT_INS_available=`papi_avail | grep PAPI_TOT_INS | awk '{print $3}'`
++if [[ "$PAPI_TOT_INS_available" == No ]]
++then
++ echo "PAPI_TOT_INS is not available"
++ exit 0
++fi
++
++# Check COUNTERS accessibility level
++ACCESS_LEVEL=`sysctl kernel.perf_event_paranoid |awk '{print $3}'`
++if [ $ACCESS_LEVEL \> 1 ]
++then
++ echo "perf_event_paranoid configuration does not allow access to HW counters"
++ exit 0
++fi
++
+ CheckEntryInPCF ${TRACE}.pcf PAPI_TOT_INS
+
+ rm -fr TRACE* set-0 ${TRACE}.???
diff --git a/easybuild/easyconfigs/e/Extrae/Extrae-4.2.0-gompi-2023b.eb b/easybuild/easyconfigs/e/Extrae/Extrae-4.2.0-gompi-2023b.eb
new file mode 100644
index 00000000000..4fca4663aca
--- /dev/null
+++ b/easybuild/easyconfigs/e/Extrae/Extrae-4.2.0-gompi-2023b.eb
@@ -0,0 +1,54 @@
+name = 'Extrae'
+version = '4.2.0'
+
+homepage = 'https://tools.bsc.es/extrae'
+description = """Extrae is the package devoted to generate Paraver trace-files for a post-mortem analysis.
+Extrae is a tool that uses different interposition mechanisms to inject probes into the target application
+so as to gather information regarding the application performance."""
+
+toolchain = {'name': 'gompi', 'version': '2023b'}
+
+toolchainopts = {'usempi': True}
+
+source_urls = ['https://ftp.tools.bsc.es/%(namelower)s']
+
+sources = ['%(namelower)s-%(version)s-src.tar.bz2']
+
+patches = [
+ 'Extrae-4.2.0-detect_binutils.patch',
+ 'Extrae-4.2.0-fix-hw-counters-checks.patch',
+ 'Extrae-4.2.0-debug_add_event.patch',
+]
+
+checksums = [
+ # extrae-4.2.0-src.tar.bz2
+ '7b83a1ed008440bbc1bda88297d2d0e9256780db1cf8401b3c12718451f8919a',
+ '1c7bf9d97405c5c2f9dba3604faf141c1563c70958e942822aab521eb7ea0c9e', # Extrae-4.2.0-detect_binutils.patch
+ '147d897a5a9ba6ebb1b5de32c964b2cd73534f31a540125a94fd37f2ceb1edfe', # Extrae-4.2.0-fix-hw-counters-checks.patch
+ '9c3541b16f1acf6ff56ab44a24d44c2ec91f9415be217c39f9c0a32e2093ccca', # Extrae-4.2.0-debug_add_event.patch
+]
+
+builddependencies = [
+ ('Automake', '1.16.5'),
+]
+
+dependencies = [
+ ('zlib', '1.2.13'),
+ ('Boost', '1.83.0'),
+ ('libxml2', '2.11.5'),
+ ('libdwarf', '0.9.2'),
+ ('PAPI', '7.1.0'),
+]
+
+# libunwind causes segv errors on aarch64
+if ARCH != 'aarch64':
+ dependencies.append(
+ ('libunwind', '1.6.2'),
+ )
+
+# Disable dynamic memory instrumentation for this release, has been seen to sometimes cause MPI test failures
+configopts = '--disable-instrument-dynamic-memory'
+
+runtest = 'check'
+
+moduleclass = 'perf'
diff --git a/easybuild/easyconfigs/e/ExtremeLy/ExtremeLy-2.3.0-foss-2022a.eb b/easybuild/easyconfigs/e/ExtremeLy/ExtremeLy-2.3.0-foss-2022a.eb
new file mode 100644
index 00000000000..4e50e4c9059
--- /dev/null
+++ b/easybuild/easyconfigs/e/ExtremeLy/ExtremeLy-2.3.0-foss-2022a.eb
@@ -0,0 +1,34 @@
+easyblock = 'PythonBundle'
+
+name = 'ExtremeLy'
+version = '2.3.0'
+
+homepage = 'https://github.com/SURYA-LAMICHANEY/ExtremeLy'
+description = """A python package for Extreme Value Analysis."""
+
+toolchain = {'name': 'foss', 'version': '2022a'}
+
+dependencies = [
+ ('Python', '3.10.4'),
+ ('lmoments3', '1.0.6'),
+ ('scikit-extremes', '2022.4.10'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('seaborn', '0.13.2', {
+ 'checksums': ['93e60a40988f4d65e9f4885df477e2fdaff6b73a9ded434c1ab356dd57eefff7'],
+ }),
+ ('evt', '0.0.2', {
+ 'source_tmpl': 'evt-%(version)s-py3-none-any.whl',
+ 'checksums': ['3552d6cc1113bceb521d918f606781a45283a4b759f6982ff38b7e1dcdf3bb22'],
+ }),
+ (name, version, {
+ 'modulename': 'ExtremeLy',
+ 'checksums': ['03c92bc174794208fd7d2494bee74cf7c7073a94621a714fc43b5d32c9ef4095'],
+ }),
+]
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/e/e3nn/e3nn-0.3.3-foss-2022a-PyTorch-1.13.1-CUDA-11.7.0.eb b/easybuild/easyconfigs/e/e3nn/e3nn-0.3.3-foss-2022a-PyTorch-1.13.1-CUDA-11.7.0.eb
new file mode 100644
index 00000000000..2be3d9bf74c
--- /dev/null
+++ b/easybuild/easyconfigs/e/e3nn/e3nn-0.3.3-foss-2022a-PyTorch-1.13.1-CUDA-11.7.0.eb
@@ -0,0 +1,40 @@
+easyblock = 'PythonBundle'
+
+name = 'e3nn'
+version = '0.3.3'
+local_pytorch_version = '1.13.1'
+versionsuffix = '-PyTorch-' + local_pytorch_version + '-CUDA-%(cudaver)s'
+
+homepage = 'https://e3nn.org/'
+description = """
+Euclidean neural networks (e3nn) is a python library based on pytorch to create equivariant
+neural networks for the group O(3).
+"""
+
+toolchain = {'name': 'foss', 'version': '2022a'}
+
+dependencies = [
+ ('Python', '3.10.4'),
+ ('SciPy-bundle', '2022.05'),
+ ('CUDA', '11.7.0', '', SYSTEM),
+ ('PyTorch', local_pytorch_version, '-CUDA-%(cudaver)s'),
+ ('sympy', '1.10.1'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('opt_einsum', '3.3.0', {
+ 'checksums': ['59f6475f77bbc37dcf7cd748519c0ec60722e91e63ca114e68821c0c54a46549'],
+ }),
+ ('opt_einsum_fx', '0.1.4', {
+ 'checksums': ['7eeb7f91ecb70be65e6179c106ea7f64fc1db6319e3d1289a4518b384f81e74f'],
+ }),
+ (name, version, {
+ 'checksums': ['532b34a5644153659253c59943fe4224cd9c3c46ce8a79f1dc7c00afccb44ecb'],
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/e/e3nn/e3nn-0.3.3-foss-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/e/e3nn/e3nn-0.3.3-foss-2023a-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..8c30352e396
--- /dev/null
+++ b/easybuild/easyconfigs/e/e3nn/e3nn-0.3.3-foss-2023a-CUDA-12.1.1.eb
@@ -0,0 +1,40 @@
+easyblock = 'PythonBundle'
+
+name = 'e3nn'
+version = '0.3.3'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://e3nn.org/'
+description = """
+Euclidean neural networks (e3nn) is a python library based on pytorch to create equivariant
+neural networks for the group O(3).
+"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('CUDA', '12.1.1', '', SYSTEM),
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('PyTorch', '2.1.2', versionsuffix),
+ ('sympy', '1.12'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('opt-einsum', '3.3.0', {
+ 'source_tmpl': 'opt_einsum-%(version)s.tar.gz',
+ 'checksums': ['59f6475f77bbc37dcf7cd748519c0ec60722e91e63ca114e68821c0c54a46549'],
+ }),
+ ('opt_einsum_fx', '0.1.4', {
+ 'checksums': ['7eeb7f91ecb70be65e6179c106ea7f64fc1db6319e3d1289a4518b384f81e74f'],
+ }),
+ (name, version, {
+ 'checksums': ['532b34a5644153659253c59943fe4224cd9c3c46ce8a79f1dc7c00afccb44ecb'],
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/e/eSpeak-NG/eSpeak-NG-1.51-gfbf-2023a.eb b/easybuild/easyconfigs/e/eSpeak-NG/eSpeak-NG-1.51-gfbf-2023a.eb
new file mode 100644
index 00000000000..b00262893a2
--- /dev/null
+++ b/easybuild/easyconfigs/e/eSpeak-NG/eSpeak-NG-1.51-gfbf-2023a.eb
@@ -0,0 +1,50 @@
+easyblock = 'ConfigureMake'
+
+name = 'eSpeak-NG'
+version = '1.51'
+
+homepage = 'https://github.com/espeak-ng/espeak-ng'
+description = """
+The eSpeak NG is a compact open source software text-to-speech synthesizer
+for Linux, Windows, Android and other operating systems.
+It supports more than 100 languages and accents.
+It is based on the eSpeak engine created by Jonathan Duddington.
+"""
+
+toolchain = {'name': 'gfbf', 'version': '2023a'}
+
+source_urls = ['https://github.com/espeak-ng/espeak-ng/archive']
+sources = ['%(version)s.tar.gz']
+patches = [
+ '%(name)s-1.50_sonic_fftw.patch',
+ '%(name)s-1.50_mbrola_location.patch',
+]
+checksums = [
+ 'f0e028f695a8241c4fa90df7a8c8c5d68dcadbdbc91e758a97e594bbb0a3bdbf', # 1.50.tar.gz
+ 'dc34e14ef4b8bc174c94ad220cbf35b80e6183298d24883cf252507154ef4ee4', # eSpeak-NG-1.50_sonic_fftw.patch
+ '1bf9bb98f1fd35ddbd373b504c3215641db532093fc5dd44099a820b80c76f83', # eSpeak-NG-1.50_mbrola_location.patch
+]
+
+builddependencies = [('Autotools', '20220317')]
+
+dependencies = [
+ ('sonic', '20180202'),
+ ('MBROLA', '3.3', '-voices-20200330'),
+]
+
+preconfigopts = './autogen.sh &&'
+
+configopts = '--disable-dependency-tracking'
+
+maxparallel = 1
+sanity_check_paths = {
+ 'files': ['bin/%sspeak%s' % (x, y) for x in ['', 'e'] for y in ['', '-ng']] +
+ ['include/espeak%s/speak_lib.h' % x for x in ['', '-ng']] +
+ ['include/espeak-ng/%s.h' % x for x in ['encoding', 'espeak_ng']] +
+ ['lib/libespeak%s' % x for x in ['.la', '-ng.a', '-ng.%s' % SHLIB_EXT]],
+ 'dirs': ['lib/pkgconfig']
+}
+
+sanity_check_commands = ['%sspeak%s --version' % (x, y) for x in ['', 'e'] for y in ['', '-ng']]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/e/ecBuild/ecBuild-3.8.5-GCCcore-13.3.0.eb b/easybuild/easyconfigs/e/ecBuild/ecBuild-3.8.5-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..97c3992ce77
--- /dev/null
+++ b/easybuild/easyconfigs/e/ecBuild/ecBuild-3.8.5-GCCcore-13.3.0.eb
@@ -0,0 +1,37 @@
+easyblock = 'Tarball'
+
+name = 'ecBuild'
+version = '3.8.5'
+
+homepage = 'https://ecbuild.readthedocs.io/'
+
+description = """
+A CMake-based build system, consisting of a collection of CMake macros and
+functions that ease the managing of software build systems """
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+github_account = 'ecmwf'
+sources = [
+ {
+ 'source_urls': [GITHUB_SOURCE],
+ 'filename': '%(version)s.tar.gz',
+ 'extract_cmd': 'tar -xzf %s --strip-components=1',
+ },
+]
+checksums = ['aa0c44cab0fffec4c0b3542e91ebcc736b3d41b68a068d30c023ec0df5f93425']
+
+builddependencies = [('binutils', '2.42')]
+
+buildininstalldir = True
+
+skipsteps = ['install']
+
+sanity_check_paths = {
+ 'files': ['bin/ecbuild', 'cmake/ecbuild-config.cmake'],
+ 'dirs': ['bin', 'lib', 'share', 'cmake'],
+}
+
+sanity_check_commands = ['ecbuild --help']
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/e/ecCodes/ecCodes-2.27.0-iimpi-2022a.eb b/easybuild/easyconfigs/e/ecCodes/ecCodes-2.27.0-iimpi-2022a.eb
new file mode 100644
index 00000000000..33fddc6886a
--- /dev/null
+++ b/easybuild/easyconfigs/e/ecCodes/ecCodes-2.27.0-iimpi-2022a.eb
@@ -0,0 +1,47 @@
+easyblock = 'CMakeMake'
+
+name = 'ecCodes'
+version = '2.27.0'
+
+homepage = 'https://software.ecmwf.int/wiki/display/ECC/ecCodes+Home'
+description = """ecCodes is a package developed by ECMWF which provides an application programming interface and
+ a set of tools for decoding and encoding messages in the following formats: WMO FM-92 GRIB edition 1 and edition 2,
+ WMO FM-94 BUFR edition 3 and edition 4, WMO GTS abbreviated header (only decoding)."""
+
+toolchain = {'name': 'iimpi', 'version': '2022a'}
+toolchainopts = {'usempi': False}
+
+source_urls = ['https://confluence.ecmwf.int/download/attachments/45757960/']
+sources = ['eccodes-%(version)s-Source.tar.gz']
+checksums = ['ede5b3ffd503967a5eac89100e8ead5e16a881b7585d02f033584ed0c4269c99']
+
+builddependencies = [('CMake', '3.23.1')]
+
+dependencies = [
+ ('netCDF', '4.9.0'),
+ ('JasPer', '2.0.33'),
+ ('libjpeg-turbo', '2.1.3'),
+ ('libpng', '1.6.37'),
+ ('zlib', '1.2.12'),
+ ('libaec', '1.0.6'),
+]
+
+# Python bindings are provided by a separate package 'eccodes-python'
+configopts = "-DENABLE_NETCDF=ON -DENABLE_PNG=ON -DENABLE_PYTHON=OFF "
+configopts += "-DENABLE_JPG=ON -DENABLE_JPG_LIBJASPER=ON "
+configopts += "-DENABLE_ECCODES_THREADS=ON" # multi-threading with pthreads
+
+local_exes = ['%s_%s' % (a, b)
+ for a in ['bufr', 'grib', 'gts', 'metar']
+ for b in ['compare', 'copy', 'dump', 'filter', 'get', 'ls']]
+local_exes += ['codes_%s' % c for c in ['count', 'info', 'split_file']]
+
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in local_exes] +
+ ['lib/libeccodes_f90.%s' % SHLIB_EXT, 'lib/libeccodes.%s' % SHLIB_EXT],
+ 'dirs': ['include'],
+}
+
+sanity_check_commands = ['%s -V' % x for x in local_exes if not x.startswith('codes_')]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/e/ecCodes/ecCodes-2.31.0-gompi-2022b.eb b/easybuild/easyconfigs/e/ecCodes/ecCodes-2.31.0-gompi-2022b.eb
new file mode 100644
index 00000000000..5488a82841b
--- /dev/null
+++ b/easybuild/easyconfigs/e/ecCodes/ecCodes-2.31.0-gompi-2022b.eb
@@ -0,0 +1,46 @@
+easyblock = 'CMakeMake'
+
+name = 'ecCodes'
+version = '2.31.0'
+
+homepage = 'https://software.ecmwf.int/wiki/display/ECC/ecCodes+Home'
+description = """ecCodes is a package developed by ECMWF which provides an application programming interface and
+ a set of tools for decoding and encoding messages in the following formats: WMO FM-92 GRIB edition 1 and edition 2,
+ WMO FM-94 BUFR edition 3 and edition 4, WMO GTS abbreviated header (only decoding)."""
+
+toolchain = {'name': 'gompi', 'version': '2022b'}
+toolchainopts = {'usempi': False}
+
+source_urls = ['https://github.com/ecmwf/eccodes/archive/refs/tags/']
+sources = [{'download_filename': '%(version)s.tar.gz', 'filename': '%(namelower)s-%(version)s.tar.gz'}]
+checksums = ['cb4cd3bab9cebd85a00397e12ce8e4a579b2f0a25aaf6df763436cf37db063e1']
+
+builddependencies = [
+ ('CMake', '3.24.3'),
+ ('ecBuild', '3.8.0', '', SYSTEM),
+]
+dependencies = [
+ ('netCDF', '4.9.0'),
+ ('JasPer', '4.0.0'),
+ ('libjpeg-turbo', '2.1.4'),
+ ('libpng', '1.6.38'),
+ ('zlib', '1.2.12'),
+ ('libaec', '1.0.6'),
+]
+
+# Python bindings are provided by a separate package 'eccodes-python'
+configopts = "-DENABLE_NETCDF=ON -DENABLE_PNG=ON -DENABLE_PYTHON=OFF -DENABLE_JPG=ON "
+configopts += "-DENABLE_JPG_LIBJASPER=ON -DENABLE_ECCODES_THREADS=ON"
+
+
+sanity_check_paths = {
+ 'files': ['bin/bufr_compare', 'bin/bufr_copy', 'bin/bufr_dump', 'bin/bufr_filter', 'bin/bufr_get', 'bin/bufr_ls',
+ 'bin/grib_compare', 'bin/grib_copy', 'bin/grib_dump', 'bin/grib_filter', 'bin/grib_get', 'bin/grib_ls',
+ 'bin/gts_compare', 'bin/gts_copy', 'bin/gts_dump', 'bin/gts_filter', 'bin/gts_get', 'bin/gts_ls',
+ 'bin/metar_compare', 'bin/metar_copy', 'bin/metar_dump', 'bin/metar_filter', 'bin/metar_get',
+ 'bin/metar_ls', 'bin/codes_count', 'bin/codes_info', 'bin/codes_split_file',
+ 'lib/libeccodes_f90.%s' % SHLIB_EXT, 'lib/libeccodes.%s' % SHLIB_EXT],
+ 'dirs': ['include'],
+}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/e/ecCodes/ecCodes-2.31.0-gompi-2023b.eb b/easybuild/easyconfigs/e/ecCodes/ecCodes-2.31.0-gompi-2023b.eb
new file mode 100644
index 00000000000..298c5b7134a
--- /dev/null
+++ b/easybuild/easyconfigs/e/ecCodes/ecCodes-2.31.0-gompi-2023b.eb
@@ -0,0 +1,46 @@
+easyblock = 'CMakeMake'
+
+name = 'ecCodes'
+version = '2.31.0'
+
+homepage = 'https://software.ecmwf.int/wiki/display/ECC/ecCodes+Home'
+description = """ecCodes is a package developed by ECMWF which provides an application programming interface and
+ a set of tools for decoding and encoding messages in the following formats: WMO FM-92 GRIB edition 1 and edition 2,
+ WMO FM-94 BUFR edition 3 and edition 4, WMO GTS abbreviated header (only decoding)."""
+
+toolchain = {'name': 'gompi', 'version': '2023b'}
+toolchainopts = {'usempi': False}
+
+source_urls = ['https://github.com/ecmwf/eccodes/archive/refs/tags/']
+sources = [{'download_filename': '%(version)s.tar.gz', 'filename': '%(namelower)s-%(version)s.tar.gz'}]
+checksums = ['cb4cd3bab9cebd85a00397e12ce8e4a579b2f0a25aaf6df763436cf37db063e1']
+
+builddependencies = [
+ ('CMake', '3.27.6'),
+ ('ecBuild', '3.8.0', '', SYSTEM),
+]
+dependencies = [
+ ('netCDF', '4.9.2'),
+ ('JasPer', '4.0.0'),
+ ('libjpeg-turbo', '3.0.1'),
+ ('libpng', '1.6.40'),
+ ('zlib', '1.2.13'),
+ ('libaec', '1.0.6'),
+]
+
+# Python bindings are provided by a separate package 'eccodes-python'
+configopts = "-DENABLE_NETCDF=ON -DENABLE_PNG=ON -DENABLE_PYTHON=OFF -DENABLE_JPG=ON "
+configopts += "-DENABLE_JPG_LIBJASPER=ON -DENABLE_ECCODES_THREADS=ON"
+
+
+sanity_check_paths = {
+ 'files': ['bin/bufr_compare', 'bin/bufr_copy', 'bin/bufr_dump', 'bin/bufr_filter', 'bin/bufr_get', 'bin/bufr_ls',
+ 'bin/grib_compare', 'bin/grib_copy', 'bin/grib_dump', 'bin/grib_filter', 'bin/grib_get', 'bin/grib_ls',
+ 'bin/gts_compare', 'bin/gts_copy', 'bin/gts_dump', 'bin/gts_filter', 'bin/gts_get', 'bin/gts_ls',
+ 'bin/metar_compare', 'bin/metar_copy', 'bin/metar_dump', 'bin/metar_filter', 'bin/metar_get',
+ 'bin/metar_ls', 'bin/codes_count', 'bin/codes_info', 'bin/codes_split_file',
+ 'lib/libeccodes_f90.%s' % SHLIB_EXT, 'lib/libeccodes.%s' % SHLIB_EXT],
+ 'dirs': ['include'],
+}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/e/eclib/eclib-20240408-GCC-13.2.0.eb b/easybuild/easyconfigs/e/eclib/eclib-20240408-GCC-13.2.0.eb
new file mode 100644
index 00000000000..10142dd830f
--- /dev/null
+++ b/easybuild/easyconfigs/e/eclib/eclib-20240408-GCC-13.2.0.eb
@@ -0,0 +1,36 @@
+easyblock = 'ConfigureMake'
+
+name = 'eclib'
+version = '20240408'
+
+homepage = 'https://github.com/JohnCremona/eclib'
+description = """The eclib package includes mwrank (for 2-descent on elliptic curves over Q)
+ and modular symbol code used to create the elliptic curve database."""
+
+toolchain = {'name': 'GCC', 'version': '13.2.0'}
+
+source_urls = ['https://github.com/JohnCremona/eclib/releases/download/v%(version)s']
+sources = [SOURCE_TAR_BZ2]
+checksums = ['3ba908e2019de53fcba141449caa6fa82f03605bf83bf9da8092df538adabe7c']
+
+builddependencies = [('Autotools', '20220317')]
+
+dependencies = [
+ ('NTL', '11.5.1'),
+ ('PARI-GP', '2.15.5'),
+]
+
+preconfigopts = "autoreconf --install && "
+
+configopts = "--with-ntl=$EBROOTNTL --with-pari=$EBROOTPARI"
+
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in ['ecnf', 'mwrank', 'pcurve', 'qexp']] +
+ ['include/eclib/%s.h' % h for h in ['curve', 'egr', 'vector']] +
+ ['lib/libec.%s' % e for e in ['a', SHLIB_EXT]],
+ 'dirs': ['share'],
+}
+
+sanity_check_commands = ["mwrank -h"]
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/e/edlib/edlib-1.3.9-GCC-12.3.0.eb b/easybuild/easyconfigs/e/edlib/edlib-1.3.9-GCC-12.3.0.eb
new file mode 100644
index 00000000000..5eb1f74e9d2
--- /dev/null
+++ b/easybuild/easyconfigs/e/edlib/edlib-1.3.9-GCC-12.3.0.eb
@@ -0,0 +1,33 @@
+easyblock = 'PythonBundle'
+
+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.3.0'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('cogapp', '3.3.0', {
+ 'checksums': ['1be95183f70282422d594fa42426be6923070a4bd8335621f6347f3aeee81db0'],
+ }),
+ (name, version, {
+ 'source_urls': ['https://github.com/Martinsos/edlib/archive/'],
+ 'source_tmpl': 'python-%(version)s.tar.gz',
+ # fixes `edlib.bycython.cpp:198:12: fatal error: longintrepr.h: No such file or directory`
+ # see https://github.com/Martinsos/edlib/issues/217#issuecomment-1736234091
+ 'preinstallopts': 'cd bindings/python && make && python -m cogapp -d -o README.rst README-tmpl.rst && ',
+ 'checksums': ['6506eee9b93bf461ccc3cd239096707d0b86a5cbe5af08e82e7bd616271d55c6'],
+ }),
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/e/eggnog-mapper/eggnog-mapper-2.1.12-foss-2023a.eb b/easybuild/easyconfigs/e/eggnog-mapper/eggnog-mapper-2.1.12-foss-2023a.eb
new file mode 100644
index 00000000000..4937c8bba74
--- /dev/null
+++ b/easybuild/easyconfigs/e/eggnog-mapper/eggnog-mapper-2.1.12-foss-2023a.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.12'
+
+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': '2023a'}
+
+github_account = 'eggnogdb'
+source_urls = [GITHUB_SOURCE]
+sources = ['%(version)s.tar.gz']
+checksums = ['b3c53fb0e606a5cfec75cbc84f7c215f57f43ce00d8e50f449513acdad76da73']
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Biopython', '1.83'),
+ ('HMMER', '3.4'),
+ ('DIAMOND', '2.1.8'),
+ ('prodigal', '2.6.3'),
+ ('wget', '1.24.5'),
+ ('MMseqs2', '14-7e284'),
+ ('XlsxWriter', '3.1.3'),
+]
+
+# 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/einops/einops-0.7.0-GCCcore-12.2.0.eb b/easybuild/easyconfigs/e/einops/einops-0.7.0-GCCcore-12.2.0.eb
new file mode 100644
index 00000000000..7af581e455f
--- /dev/null
+++ b/easybuild/easyconfigs/e/einops/einops-0.7.0-GCCcore-12.2.0.eb
@@ -0,0 +1,29 @@
+easyblock = 'PythonPackage'
+
+name = 'einops'
+version = '0.7.0'
+
+homepage = 'https://einops.rocks/'
+description = """
+Flexible and powerful tensor operations for readable and reliable code.
+Supports numpy, pytorch, tensorflow, jax, and others."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.2.0'}
+
+sources = [SOURCE_TAR_GZ]
+checksums = ['b2b04ad6081a3b227080c9bf5e3ace7160357ff03043cd66cc5b2319eb7031d1']
+
+builddependencies = [
+ ('binutils', '2.39'),
+]
+
+dependencies = [
+ ('Python', '3.10.8'),
+]
+
+download_dep_fail = True
+use_pip = True
+
+sanity_pip_check = True
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/e/einops/einops-0.7.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/e/einops/einops-0.7.0-GCCcore-12.3.0.eb
index a18dab2ce62..b9f4dea04b5 100644
--- a/easybuild/easyconfigs/e/einops/einops-0.7.0-GCCcore-12.3.0.eb
+++ b/easybuild/easyconfigs/e/einops/einops-0.7.0-GCCcore-12.3.0.eb
@@ -15,11 +15,11 @@ checksums = ['b2b04ad6081a3b227080c9bf5e3ace7160357ff03043cd66cc5b2319eb7031d1']
builddependencies = [
('binutils', '2.40'),
+ ('hatchling', '1.18.0'),
]
dependencies = [
('Python', '3.11.3'),
- ('hatchling', '1.18.0'),
]
download_dep_fail = True
diff --git a/easybuild/easyconfigs/e/elfutils/elfutils-0.191-GCCcore-13.3.0.eb b/easybuild/easyconfigs/e/elfutils/elfutils-0.191-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..e5eb4ef3c7d
--- /dev/null
+++ b/easybuild/easyconfigs/e/elfutils/elfutils-0.191-GCCcore-13.3.0.eb
@@ -0,0 +1,41 @@
+easyblock = 'ConfigureMake'
+
+name = 'elfutils'
+version = '0.191'
+
+homepage = 'https://elfutils.org/'
+
+description = """
+ The elfutils project provides libraries and tools for ELF files
+ and DWARF data.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://sourceware.org/elfutils/ftp/%(version)s/']
+sources = [SOURCE_TAR_BZ2]
+checksums = ['df76db71366d1d708365fc7a6c60ca48398f14367eb2b8954efc8897147ad871']
+
+builddependencies = [
+ ('M4', '1.4.19'),
+ ('pkgconf', '2.2.0'),
+]
+
+dependencies = [
+ ('binutils', '2.42'),
+ ('bzip2', '1.0.8'),
+ ('libarchive', '3.7.4'),
+ ('XZ', '5.4.5'),
+ ('zstd', '1.5.6'),
+]
+
+configopts = "--disable-debuginfod --disable-libdebuginfod"
+
+sanity_check_paths = {
+ 'files': ['bin/eu-elfcmp', 'include/dwarf.h', 'lib/libelf.%s' % SHLIB_EXT],
+ 'dirs': []
+}
+
+sanity_check_commands = ["eu-elfcmp --help"]
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/e/empanada-dl/empanada-dl-0.1.7-foss-2023a.eb b/easybuild/easyconfigs/e/empanada-dl/empanada-dl-0.1.7-foss-2023a.eb
new file mode 100644
index 00000000000..168c3e3c751
--- /dev/null
+++ b/easybuild/easyconfigs/e/empanada-dl/empanada-dl-0.1.7-foss-2023a.eb
@@ -0,0 +1,43 @@
+easyblock = 'PythonBundle'
+
+name = 'empanada-dl'
+version = '0.1.7'
+
+homepage = 'https://empanada.readthedocs.io/'
+description = "Tool for panoptic segmentation of organelles in 2D and 3D electron microscopy (EM) images."
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('SciPy-bundle', '2023.07'),
+ ('numba', '0.58.1'),
+ ('OpenCV', '4.8.1', '-contrib'),
+ ('PyYAML', '6.0'),
+ ('zarr', '2.17.1'),
+ ('torchvision', '0.16.0'),
+ ('Albumentations', '1.4.0'),
+ ('dask', '2023.9.2'),
+ ('connected-components-3d', '3.14.1'),
+ ('matplotlib', '3.7.2'),
+ ('imagecodecs', '2024.1.1'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('cztile', '0.1.2', {
+ 'checksums': ['3e42c4a93fd7b2df985b42e66dc3c585b3ebd9c1167e9f7e7d5c34c57697b929'],
+ }),
+ (name, version, {
+ # fix requirements - numpy version and opencv-python>=4.5.3 - pip is not aware of cv2 in OpenCV from EB
+ 'preinstallopts': "sed -i 's/numpy==1.22/numpy>=1.22/g' setup.cfg && sed -i '34d' setup.cfg && ",
+ 'modulename': 'empanada',
+ 'checksums': ['4289e69842242203be77cdb656a12fb2be4ed83816969b24a0b4eab1d67c3b91'],
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/e/empanada-napari/empanada-napari-1.1.0-foss-2023a.eb b/easybuild/easyconfigs/e/empanada-napari/empanada-napari-1.1.0-foss-2023a.eb
new file mode 100644
index 00000000000..e429617f718
--- /dev/null
+++ b/easybuild/easyconfigs/e/empanada-napari/empanada-napari-1.1.0-foss-2023a.eb
@@ -0,0 +1,38 @@
+easyblock = 'PythonBundle'
+
+name = 'empanada-napari'
+version = '1.1.0'
+
+homepage = 'https://empanada.readthedocs.io/'
+description = "Panoptic segmentation algorithms for 2D and 3D electron microscopy in napari."
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('SciPy-bundle', '2023.07'),
+ ('napari', '0.4.18'),
+ ('MLflow', '2.10.2'),
+ ('openpyxl', '3.1.2'),
+ ('SimpleITK', '2.3.1'),
+ ('imagecodecs', '2024.1.1'),
+ ('Albumentations', '1.4.0'),
+ ('connected-components-3d', '3.14.1'),
+ ('empanada-dl', '0.1.7'),
+]
+
+exts_list = [
+ ('ImageHash', '4.3.1', {
+ 'checksums': ['7038d1b7f9e0585beb3dd8c0a956f02b95a346c0b5f24a9e8cc03ebadaf0aa70'],
+ }),
+ (name, version, {
+ 'preinstallopts': "sed -i 's/numpy==1.22/numpy>=1.22/g' setup.cfg && ",
+ 'checksums': ['f4890cb6f20689933e28903dd7d43238aeae32afb53fa225bdf41d4bdcfc2c71'],
+ }),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/e/enchant-2/enchant-2-2.6.5-GCCcore-12.3.0.eb b/easybuild/easyconfigs/e/enchant-2/enchant-2-2.6.5-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..af01c621328
--- /dev/null
+++ b/easybuild/easyconfigs/e/enchant-2/enchant-2-2.6.5-GCCcore-12.3.0.eb
@@ -0,0 +1,49 @@
+# Updated from enchant-1.6.1-intel-2017a.eb
+# Author: J. Sassmannshausen (Imperial College London/UK)
+
+easyblock = 'ConfigureMake'
+
+name = 'enchant-2'
+version = '2.6.5'
+
+homepage = 'https://github.com/AbiWord/enchant'
+description = """Enchant aims to provide a simple but comprehensive abstraction for dealing
+with different spell checking libraries in a consistent way. A client, such
+as a text editor or word processor, need not know anything about a specific
+spell-checker, and since all back-ends are plugins, new spell-checkers can
+be added without needing any change to the program using Enchant."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = ['https://github.com/AbiWord/enchant/releases/download/v%(version)s']
+sources = ['enchant-%(version)s.tar.gz']
+checksums = ['9e8fd28cb65a7b6da3545878a5c2f52a15f03c04933a5ff48db89fe86845728e']
+
+builddependencies = [
+ ('Autotools', '20220317'),
+ ('binutils', '2.40'),
+ ('M4', '1.4.19'),
+ ('pkgconf', '1.9.5'),
+]
+
+preconfigopts = "autoreconf -vfi && "
+
+dependencies = [
+ ('hunspell', '1.7.2'),
+ ('GLib', '2.77.1'),
+]
+
+buildopts = "LIBTOOL='libtool --tag=CC'"
+
+sanity_check_commands = [
+ 'enchant-2 -v',
+ 'enchant-lsmod-2 -v',
+]
+
+sanity_check_paths = {
+ 'files': ['bin/enchant-2', 'bin/enchant-lsmod-2',
+ 'lib/libenchant-2.a', 'lib/libenchant-2.%s' % SHLIB_EXT],
+ 'dirs': ['include/enchant-2', 'lib/enchant-2'],
+}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/e/ensmallen/ensmallen-2.21.1-foss-2023a.eb b/easybuild/easyconfigs/e/ensmallen/ensmallen-2.21.1-foss-2023a.eb
new file mode 100644
index 00000000000..b0a8a512f6d
--- /dev/null
+++ b/easybuild/easyconfigs/e/ensmallen/ensmallen-2.21.1-foss-2023a.eb
@@ -0,0 +1,28 @@
+easyblock = 'CMakeMake'
+
+name = 'ensmallen'
+version = '2.21.1'
+
+homepage = 'https://ensmallen.org/'
+description = """ensmallen is a high-quality C++ library for non-linear numerical optimization"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+source_urls = ['https://github.com/mlpack/ensmallen/archive/refs/tags/']
+sources = ['%(version)s.tar.gz']
+checksums = ['820eee4d8aa32662ff6a7d883a1bcaf4e9bf9ca0a3171d94c5398fe745008750']
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+]
+
+dependencies = [
+ ('Armadillo', '12.6.2'),
+]
+
+sanity_check_paths = {
+ 'files': ['include/ensmallen.hpp', 'include/ensmallen_bits/function.hpp'],
+ 'dirs': ['lib', 'include', 'include/ensmallen_bits/', 'lib/cmake'],
+}
+
+moduleclass = 'numlib'
diff --git a/easybuild/easyconfigs/e/epiScanpy/epiScanpy-0.4.0-foss-2023a.eb b/easybuild/easyconfigs/e/epiScanpy/epiScanpy-0.4.0-foss-2023a.eb
new file mode 100644
index 00000000000..45d4f74af79
--- /dev/null
+++ b/easybuild/easyconfigs/e/epiScanpy/epiScanpy-0.4.0-foss-2023a.eb
@@ -0,0 +1,51 @@
+easyblock = 'PythonBundle'
+
+name = 'epiScanpy'
+version = '0.4.0'
+
+homepage = 'https://github.com/colomemaria/episcanpy'
+description = """EpiScanpy is a toolkit to analyse single-cell open chromatin
+(scATAC-seq) and single-cell DNA methylation (for example scBS-seq)
+data. EpiScanpy is the epigenomic extension of the very popular scRNA-seq
+analysis tool Scanpy (Genome Biology, 2018) [Wolf18]."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+builddependencies = [
+ ('hatchling', '1.18.0'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('Seaborn', '0.13.2'),
+ ('scanpy', '1.9.8'), # includes anndata
+ ('Pysam', '0.22.0'),
+ ('scikit-learn', '1.3.1'),
+ ('statsmodels', '0.14.1'),
+ ('numba', '0.58.1'),
+ ('python-igraph', '0.11.4'),
+ ('tbb', '2021.11.0'),
+]
+
+exts_list = [
+ ('bamnostic', '1.1.10', {
+ 'checksums': ['2f7e7e5cb693c5f933c5b5c3fde49c6c8dee62b608ebd13a4604401573e37017'],
+ }),
+ ('legacy_api_wrap', '1.4', {
+ 'checksums': ['92dfa274cedb26d6e6f70fac85c856fbdcc05058066656d76a665fb4bf11b785'],
+ }),
+ ('kneed', '0.8.5', {
+ 'checksums': ['a4847ac4f1d04852fea278d5de7aa8bfdc3beb7fbca4a182fec0f0efee43f4b1'],
+ }),
+ ('episcanpy', version, {
+ # strip out tbb as required dependency, to ensure that 'pip check' passes
+ 'preinstallopts': "sed -i 's/tbb//' requirements.txt && ",
+ 'checksums': ['95739149db60521b0a14e4579f8ba87d410126ffb7b916abbc2d1aff3df40ce3'],
+ }),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/e/evince/evince-45.0-GCC-12.3.0.eb b/easybuild/easyconfigs/e/evince/evince-45.0-GCC-12.3.0.eb
new file mode 100644
index 00000000000..1e47ac5530e
--- /dev/null
+++ b/easybuild/easyconfigs/e/evince/evince-45.0-GCC-12.3.0.eb
@@ -0,0 +1,63 @@
+# Author: Jasper Grimm (UoY)
+easyblock = 'MesonNinja'
+
+name = 'evince'
+version = '45.0'
+
+homepage = 'https://wiki.gnome.org/Apps/Evince'
+description = """Evince is a document viewer for multiple document formats. The
+ goal of evince is to replace the multiple document viewers that exist on the
+ GNOME Desktop with a single simple application.
+"""
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+
+source_urls = ['https://ftp.gnome.org/pub/GNOME/sources/%(name)s/45']
+sources = [SOURCE_TAR_XZ]
+checksums = ['d18647d4275cbddf0d32817b1d04e307342a85be914ec4dad2d8082aaf8aa4a8']
+
+builddependencies = [
+ ('Meson', '1.1.1'),
+ ('Ninja', '1.11.1'),
+ ('pkgconf', '1.9.5'),
+ ('GI-DocGen', '2023.3'),
+ ('CMake', '3.26.3'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('GLib', '2.77.1'),
+ ('GTK3', '3.24.37'),
+ ('libhandy', '1.8.2'),
+ ('ITSTool', '2.0.7'),
+ ('Gdk-Pixbuf', '2.42.10'),
+ ('cairo', '1.17.8'),
+ ('zlib', '1.2.13'),
+ ('GObject-Introspection', '1.76.1'),
+ ('GStreamer', '1.22.5'),
+ ('gspell', '1.12.2'),
+ ('libspectre', '0.2.12'),
+ ('libarchive', '3.6.2'),
+ ('poppler', '23.09.0'),
+ ('Ghostscript', '10.01.2'),
+ ('LibTIFF', '4.5.0'),
+ ('libgxps', '0.3.2'),
+ ('DBus', '1.15.4'),
+ ('DjVuLibre', '3.5.28'),
+ ('desktop-file-utils', '0.27'),
+ # optional: kpathsea (path searching library for TeX-related files)
+]
+
+_bins = ['bin/%%(name)s%s' % x for x in ['', '-previewer', '-thumbnailer']]
+_incs = ['include/evince', 'lib/evince', 'lib/pkgconfig']
+_libs = ['lib/%s.%s' % (x, SHLIB_EXT) for x in ['libevdocument3', 'libevview3']] + ['libexec/evinced']
+
+sanity_check_paths = {
+ 'files': _bins + _libs,
+ 'dirs': _incs,
+}
+
+sanity_check_commands = ['%(name)s --help']
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/e/exiv2/exiv2-0.28.3-GCCcore-13.3.0.eb b/easybuild/easyconfigs/e/exiv2/exiv2-0.28.3-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..fba04816180
--- /dev/null
+++ b/easybuild/easyconfigs/e/exiv2/exiv2-0.28.3-GCCcore-13.3.0.eb
@@ -0,0 +1,38 @@
+easyblock = 'CMakeMake'
+
+name = 'exiv2'
+version = '0.28.3'
+
+homepage = 'http://www.exiv2.org'
+description = """
+ Exiv2 is a C++ library and a command line utility to manage image metadata. It provides fast and easy read and write
+ access to the Exif, IPTC and XMP metadata of digital images in various formats. Exiv2 is available as free software and
+ with a commercial license, and is used in many projects.
+"""
+
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://github.com/Exiv2/exiv2/archive/refs/tags/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['1315e17d454bf4da3cc0edb857b1d2c143670f3485b537d0f946d9ed31d87b70']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('CMake', '3.29.3'),
+]
+
+dependencies = [
+ ('expat', '2.6.2'),
+ ('Brotli', '1.1.0'),
+ ('inih', '58'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/exiv2', 'lib/libexiv2.%s' % SHLIB_EXT],
+ 'dirs': []
+}
+
+sanity_check_commands = ["exiv2 --help"]
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/e/expat/expat-2.6.2-GCCcore-13.3.0.eb b/easybuild/easyconfigs/e/expat/expat-2.6.2-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..41b5a1340fb
--- /dev/null
+++ b/easybuild/easyconfigs/e/expat/expat-2.6.2-GCCcore-13.3.0.eb
@@ -0,0 +1,31 @@
+easyblock = 'ConfigureMake'
+
+name = 'expat'
+version = '2.6.2'
+
+homepage = 'https://libexpat.github.io'
+
+description = """Expat is an XML parser library written in C. It is a stream-oriented parser
+in which an application registers handlers for things the parser might find
+in the XML document (like start tags)."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/libexpat/libexpat/releases/download/R_%s/' % version.replace('.', '_')]
+sources = [SOURCE_TAR_BZ2]
+checksums = ['9c7c1b5dcbc3c237c500a8fb1493e14d9582146dd9b42aa8d3ffb856a3b927e0']
+
+builddependencies = [('binutils', '2.42')]
+
+# Since expat 2.2.6, docbook2X is needed to produce manpage of xmlwf.
+# Docbook2X needs XML-Parser and XML-Parser needs expat.
+# -> circular dependency. "--without-docbook" breaks this circle.
+configopts = ['--without-docbook']
+
+sanity_check_paths = {
+ 'files': ['include/expat.h', 'lib/libexpat.a', 'lib/libexpat.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/e/expecttest/expecttest-0.2.1-GCCcore-13.2.0.eb b/easybuild/easyconfigs/e/expecttest/expecttest-0.2.1-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..299cb627a4c
--- /dev/null
+++ b/easybuild/easyconfigs/e/expecttest/expecttest-0.2.1-GCCcore-13.2.0.eb
@@ -0,0 +1,29 @@
+easyblock = 'PythonPackage'
+
+name = 'expecttest'
+version = '0.2.1'
+
+homepage = 'https://github.com/ezyang/expecttest'
+description = """This library implements expect tests (also known as "golden" tests). Expect tests are a method of
+ writing tests where instead of hard-coding the expected output of a test, you run the test to get the output, and
+ the test framework automatically populates the expected output. If the output of the test changes, you can rerun
+ the test with the environment variable EXPECTTEST_ACCEPT=1 to automatically update the expected output."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+sources = [SOURCE_TAR_GZ]
+checksums = ['e52b1cf8a6f84506e6962a0bbdd248ea442124d826e849f263ec1c322ebb73f5']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('poetry', '1.6.1'),
+]
+dependencies = [
+ ('Python', '3.11.5'),
+]
+
+download_dep_fail = True
+sanity_pip_check = True
+use_pip = True
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/e/expecttest/expecttest-0.2.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/e/expecttest/expecttest-0.2.1-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..a70bf3973ca
--- /dev/null
+++ b/easybuild/easyconfigs/e/expecttest/expecttest-0.2.1-GCCcore-13.3.0.eb
@@ -0,0 +1,29 @@
+easyblock = 'PythonPackage'
+
+name = 'expecttest'
+version = '0.2.1'
+
+homepage = 'https://github.com/ezyang/expecttest'
+description = """This library implements expect tests (also known as "golden" tests). Expect tests are a method of
+ writing tests where instead of hard-coding the expected output of a test, you run the test to get the output, and
+ the test framework automatically populates the expected output. If the output of the test changes, you can rerun
+ the test with the environment variable EXPECTTEST_ACCEPT=1 to automatically update the expected output."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+sources = [SOURCE_TAR_GZ]
+checksums = ['e52b1cf8a6f84506e6962a0bbdd248ea442124d826e849f263ec1c322ebb73f5']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('poetry', '1.8.3'),
+]
+dependencies = [
+ ('Python', '3.12.3'),
+]
+
+download_dep_fail = True
+sanity_pip_check = True
+use_pip = True
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/f/FASTA/FASTA-36.3.8i-GCC-12.3.0.eb b/easybuild/easyconfigs/f/FASTA/FASTA-36.3.8i-GCC-12.3.0.eb
new file mode 100644
index 00000000000..58fd687455a
--- /dev/null
+++ b/easybuild/easyconfigs/f/FASTA/FASTA-36.3.8i-GCC-12.3.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.3.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/FDMNES/FDMNES-2024-02-29-gomkl-2023a.eb b/easybuild/easyconfigs/f/FDMNES/FDMNES-2024-02-29-gomkl-2023a.eb
new file mode 100644
index 00000000000..f177acda709
--- /dev/null
+++ b/easybuild/easyconfigs/f/FDMNES/FDMNES-2024-02-29-gomkl-2023a.eb
@@ -0,0 +1,61 @@
+easyblock = 'MakeCp'
+
+name = 'FDMNES'
+
+version = '2024-02-29'
+
+homepage = 'https://fdmnes.neel.cnrs.fr'
+description = """X-ray spectroscopies are techniques which probe the electronic and structural
+properties of the materials. Most often performed at synchrotron, they are extensively used
+to analyse all classes of materials. The advances on the experimental side need the complementary
+progress on the theoretical side to extract confidentely all the information the data can furnish.
+
+In this context, the purpose of our FDMNES project is to supply to the community a user friendly
+ab initio code to simulate X-ray absorption and emission spectroscopies as well as resonant x-ray
+scattering and x-ray Raman spectroscopies, among other techniques.
+
+FDMNES, for Finite Difference Method Near Edge Structure, uses the density functional theory (DFT).
+It is thus specially devoted to the simulation of the K edges of all the chemical
+elements and of the L23 edges of the heavy ones.
+For the other edges, it includes advances by the use of the time dependent DFT (TD-DFT)."""
+
+toolchain = {'name': 'gomkl', 'version': '2023a'}
+toolchainopts = {'usempi': True}
+
+sources = [{
+ 'source_urls': ['https://cloud.neel.cnrs.fr/index.php/s/tDpQWmec7S4Ei4G'],
+ 'download_filename': 'download',
+ 'filename': '%(namelower)s_fortran_prog_%(version)s.zip',
+}]
+checksums = ['bcf0928dd8f44bb0098aed4b8d45c8cf4cedf7cee1a598342de6115d7066c2fb']
+
+dependencies = [
+ ('MUMPS', '5.6.1', '-metis-seq'),
+ ('OpenMPI', '4.1.5'),
+ ('SCOTCH', '7.0.3'),
+]
+
+parallel = 1
+
+prebuildopts = "sed -i 's/-llapack -lblas/$LIBLAPACK/g;"
+# to avoid the `/bin/sh: line 1: -lscotch: command not found` error
+prebuildopts += '/-lscotch/d;'
+prebuildopts += 's/lpord \\\\/lpord -lscotch -lscotcherr -lpthread -Wl,--start-group '
+prebuildopts += '-lmkl_gf_lp64 -lmkl_sequential -lmkl_core -Wl,--end-group -lgfortran/g;'
+# to avoid the `undefined reference to 'main_rixs_'` error
+prebuildopts += "s/mat_solve_mumps.o/mat_solve_mumps.o RIXS.o/g' makefile && echo Here && cat makefile && "
+
+buildopts = 'FC="$FC" FFLAGS="-c $FFLAGS -fallow-argument-mismatch -fallow-invalid-boz -I$EBROOTMUMPS/include"'
+
+files_to_copy = [
+ (['%(builddir)s/fdmnes'], 'bin'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/fdmnes'],
+ 'dirs': []
+}
+
+sanity_check_commands = ['fdmnes --help']
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/f/FFAVES/FFAVES-2022.11.1-foss-2022a.eb b/easybuild/easyconfigs/f/FFAVES/FFAVES-2022.11.1-foss-2022a.eb
new file mode 100644
index 00000000000..27f977391e0
--- /dev/null
+++ b/easybuild/easyconfigs/f/FFAVES/FFAVES-2022.11.1-foss-2022a.eb
@@ -0,0 +1,47 @@
+easyblock = 'PythonBundle'
+
+name = 'FFAVES'
+version = '2022.11.1'
+local_commit = '2c1fa89'
+
+homepage = 'https://github.com/aradley/FFAVES'
+description = """Functional Feature Amplification Via Entropy Sorting (FFAVES).
+Use FFAVES to amplify the signal of groups of co-regulating genes in an unsupervised, multivariate manner.
+By amplifying the signal of genes with correlated expression, while filtering out genes that are randomly expressed,
+we can identify a subset of genes more predictive of different cell types.
+The output of FFAVES can then be used in our second algorithm, entropy sort feature weighting (ESFW),
+to create a ranked list of genes that are most likely to pertain to distinct
+sub-populations of cells in an scRNA-seq dataset.
+"""
+
+toolchain = {'name': 'foss', 'version': '2022a'}
+
+dependencies = [
+ ('Python', '3.10.4'),
+ ('SciPy-bundle', '2022.05'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('dill', '0.3.8', {
+ 'checksums': ['3ebe3c479ad625c4553aca177444d89b486b1d84982eeacded644afc0cf797ca'],
+ }),
+ ('multiprocess', '0.70.16', {
+ 'checksums': ['161af703d4652a0e1410be6abccecde4a7ddffd19341be0a7011b94aeb171ac1'],
+ }),
+ (name, version, {
+ 'preinstallopts': "sed -i 's/==/>=/' requirements.txt && ",
+ 'source_urls': ['https://github.com/aradley/FFAVES/archive/'],
+ 'sources': [{'download_filename': '2c1fa89.tar.gz', 'filename': '%(name)s-%(version)s.tar.gz'}],
+ 'checksums': ['b833cc26cc60ad44c48d1b5712ce32b0ceb7f8d7876c06466514f79d357e4f83'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in ['ffaves.py', 'get_gprof', 'get_objgraph', 'undill']],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages/'],
+}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/f/FFLAS-FFPACK/FFLAS-FFPACK-2.2.0-foss-2016a.eb b/easybuild/easyconfigs/f/FFLAS-FFPACK/FFLAS-FFPACK-2.2.0-foss-2016a.eb
index d03b85f906a..9b777550c09 100644
--- a/easybuild/easyconfigs/f/FFLAS-FFPACK/FFLAS-FFPACK-2.2.0-foss-2016a.eb
+++ b/easybuild/easyconfigs/f/FFLAS-FFPACK/FFLAS-FFPACK-2.2.0-foss-2016a.eb
@@ -17,19 +17,19 @@ description = "Finite Field Linear Algebra Subroutines / Package"
toolchain = {'version': '2016a', 'name': 'foss'}
-sources = ['v%(version)s.zip']
source_urls = ['https://github.com/linbox-team/fflas-ffpack/archive']
+sources = ['v%(version)s.zip']
+checksums = ['4110e72004f88e9d6f90e503129a4ef7a3bd55b55aec992e109b3647a8445fa2']
builddependencies = [
('Autotools', '20150215'),
]
dependencies = [
- ('GMP', '6.1.0'),
('Givaro', '4.0.1'),
]
preconfigopts = "env NOCONFIGURE=1 ./autogen.sh && "
-configopts = '--with-gmp=$EBROOTGMP --with-givaro=$EBROOTGIVARO'
+configopts = '--with-givaro=$EBROOTGIVARO'
configopts += ' --with-blas-cflags="-I$BLAS_INC_DIR" --with-blas-libs="-L$BLAS_LIB_DIR $LIBBLAS" --enable-openmp'
sanity_check_paths = {
diff --git a/easybuild/easyconfigs/f/FFLAS-FFPACK/FFLAS-FFPACK-2.5.0-gfbf-2022a.eb b/easybuild/easyconfigs/f/FFLAS-FFPACK/FFLAS-FFPACK-2.5.0-gfbf-2022a.eb
index 75c22cfa096..be9707946a7 100644
--- a/easybuild/easyconfigs/f/FFLAS-FFPACK/FFLAS-FFPACK-2.5.0-gfbf-2022a.eb
+++ b/easybuild/easyconfigs/f/FFLAS-FFPACK/FFLAS-FFPACK-2.5.0-gfbf-2022a.eb
@@ -21,13 +21,13 @@ source_urls = ['https://github.com/linbox-team/fflas-ffpack/releases/download/v%
sources = [SOURCELOWER_TAR_GZ]
checksums = ['dafb4c0835824d28e4f823748579be6e4c8889c9570c6ce9cce1e186c3ebbb23']
+builddependencies = [('pkgconf', '1.8.0')]
dependencies = [
- ('GMP', '6.2.1'),
('Givaro', '4.2.0'),
]
configopts = '--with-blas-libs="$LIBBLAS_MT" --with-blas-cflags="-I$BLAS_INC_DIR" '
-configopts += '--with-gmp=$EBROOTGMP --with-givaro=$EBROOTGIVARO --enable-openmp'
+configopts += '--enable-openmp'
buildopts = " && make autotune "
diff --git a/easybuild/easyconfigs/f/FFLAS-FFPACK/FFLAS-FFPACK-2.5.0-gfbf-2023b.eb b/easybuild/easyconfigs/f/FFLAS-FFPACK/FFLAS-FFPACK-2.5.0-gfbf-2023b.eb
new file mode 100644
index 00000000000..2bd469f7978
--- /dev/null
+++ b/easybuild/easyconfigs/f/FFLAS-FFPACK/FFLAS-FFPACK-2.5.0-gfbf-2023b.eb
@@ -0,0 +1,43 @@
+##
+# This file is an EasyBuild recipe; see https://github.com/easybuilders/easybuild
+#
+# Copyright:: Copyright (c) 2016 Riccardo Murri
+# Authors:: Riccardo Murri
+# License:: GPL
+#
+# Update: Petr Král (INUITS)
+#
+##
+
+easyblock = 'ConfigureMake'
+
+name = 'FFLAS-FFPACK'
+version = '2.5.0'
+
+homepage = 'https://linbox-team.github.io/fflas-ffpack/'
+description = "Finite Field Linear Algebra Subroutines / Package"
+
+toolchain = {'name': 'gfbf', 'version': '2023b'}
+
+source_urls = ['https://github.com/linbox-team/fflas-ffpack/releases/download/v%(version)s']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['dafb4c0835824d28e4f823748579be6e4c8889c9570c6ce9cce1e186c3ebbb23']
+
+dependencies = [
+ ('GMP', '6.3.0'),
+ ('Givaro', '4.2.0'),
+]
+
+configopts = '--with-blas-libs="$LIBBLAS_MT" --with-blas-cflags="-I$BLAS_INC_DIR" '
+configopts += '--with-gmp=$EBROOTGMP --with-givaro=$EBROOTGIVARO --enable-openmp'
+
+buildopts = " && make autotune "
+
+sanity_check_paths = {
+ 'files': ['bin/fflas-ffpack-config', 'include/fflas-ffpack/fflas-ffpack.h'],
+ 'dirs': ['bin', 'include', 'lib'],
+}
+
+sanity_check_commands = ["fflas-ffpack-config --help"]
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/f/FFTW.MPI/FFTW.MPI-3.3.10-gmpich-2024.06.eb b/easybuild/easyconfigs/f/FFTW.MPI/FFTW.MPI-3.3.10-gmpich-2024.06.eb
new file mode 100644
index 00000000000..4b79e9e7c27
--- /dev/null
+++ b/easybuild/easyconfigs/f/FFTW.MPI/FFTW.MPI-3.3.10-gmpich-2024.06.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': 'gmpich', 'version': '2024.06'}
+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.MPI/FFTW.MPI-3.3.10-gompi-2024.05.eb b/easybuild/easyconfigs/f/FFTW.MPI/FFTW.MPI-3.3.10-gompi-2024.05.eb
new file mode 100644
index 00000000000..b6ab2a2d4f0
--- /dev/null
+++ b/easybuild/easyconfigs/f/FFTW.MPI/FFTW.MPI-3.3.10-gompi-2024.05.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': '2024.05'}
+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.MPI/FFTW.MPI-3.3.10-gompi-2024a.eb b/easybuild/easyconfigs/f/FFTW.MPI/FFTW.MPI-3.3.10-gompi-2024a.eb
new file mode 100644
index 00000000000..2ed420c412f
--- /dev/null
+++ b/easybuild/easyconfigs/f/FFTW.MPI/FFTW.MPI-3.3.10-gompi-2024a.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': '2024a'}
+toolchainopts = {'pic': True}
+
+source_urls = [homepage]
+sources = ['fftw-%(version)s.tar.gz']
+checksums = ['56c932549852cddcfafdab3820b0200c7742675be92179e59e6215b340e26467']
+
+dependencies = [('FFTW', '3.3.10')]
+
+runtest = 'check'
+
+moduleclass = 'numlib'
diff --git a/easybuild/easyconfigs/f/FFTW/FFTW-3.3.10-GCC-13.3.0.eb b/easybuild/easyconfigs/f/FFTW/FFTW-3.3.10-GCC-13.3.0.eb
new file mode 100644
index 00000000000..bf18544e701
--- /dev/null
+++ b/easybuild/easyconfigs/f/FFTW/FFTW-3.3.10-GCC-13.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': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = [homepage]
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['56c932549852cddcfafdab3820b0200c7742675be92179e59e6215b340e26467']
+
+runtest = 'check'
+
+moduleclass = 'numlib'
diff --git a/easybuild/easyconfigs/f/FFmpeg/FFmpeg-5.0.1-GCCcore-11.3.0.eb b/easybuild/easyconfigs/f/FFmpeg/FFmpeg-5.0.1-GCCcore-11.3.0.eb
index 5f6462eec21..6a468c1f81d 100644
--- a/easybuild/easyconfigs/f/FFmpeg/FFmpeg-5.0.1-GCCcore-11.3.0.eb
+++ b/easybuild/easyconfigs/f/FFmpeg/FFmpeg-5.0.1-GCCcore-11.3.0.eb
@@ -33,7 +33,7 @@ dependencies = [
configopts = '--enable-pic --enable-shared --enable-gpl --enable-version3 --enable-nonfree --cc="$CC" --cxx="$CXX" '
configopts += '--enable-libx264 --enable-libx265 --enable-libmp3lame --enable-libfreetype --enable-fontconfig '
-configopts += '--enable-libfribidi --enable-sdl2'
+configopts += '--enable-libfribidi --enable-sdl2 --disable-htmlpages'
sanity_check_paths = {
'files': ['bin/ff%s' % x for x in ['mpeg', 'probe', 'play']] +
diff --git a/easybuild/easyconfigs/f/FFmpeg/FFmpeg-5.1.2-GCCcore-12.2.0.eb b/easybuild/easyconfigs/f/FFmpeg/FFmpeg-5.1.2-GCCcore-12.2.0.eb
index b06aee26953..dfe40032efc 100644
--- a/easybuild/easyconfigs/f/FFmpeg/FFmpeg-5.1.2-GCCcore-12.2.0.eb
+++ b/easybuild/easyconfigs/f/FFmpeg/FFmpeg-5.1.2-GCCcore-12.2.0.eb
@@ -33,7 +33,7 @@ dependencies = [
configopts = '--enable-pic --enable-shared --enable-gpl --enable-version3 --enable-nonfree --cc="$CC" --cxx="$CXX" '
configopts += '--enable-libx264 --enable-libx265 --enable-libmp3lame --enable-libfreetype --enable-fontconfig '
-configopts += '--enable-libfribidi --enable-sdl2'
+configopts += '--enable-libfribidi --enable-sdl2 --disable-htmlpages'
sanity_check_paths = {
'files': ['bin/ff%s' % x for x in ['mpeg', 'probe', 'play']] +
diff --git a/easybuild/easyconfigs/f/FFmpeg/FFmpeg-6.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/f/FFmpeg/FFmpeg-6.0-GCCcore-12.3.0.eb
index 4f5fb4a0bc5..caa80fed59d 100644
--- a/easybuild/easyconfigs/f/FFmpeg/FFmpeg-6.0-GCCcore-12.3.0.eb
+++ b/easybuild/easyconfigs/f/FFmpeg/FFmpeg-6.0-GCCcore-12.3.0.eb
@@ -33,7 +33,7 @@ dependencies = [
configopts = '--enable-pic --enable-shared --enable-gpl --enable-version3 --enable-nonfree --cc="$CC" --cxx="$CXX" '
configopts += '--enable-libx264 --enable-libx265 --enable-libmp3lame --enable-libfreetype --enable-fontconfig '
-configopts += '--enable-libfribidi --enable-sdl2'
+configopts += '--enable-libfribidi --enable-sdl2 --disable-htmlpages'
sanity_check_paths = {
'files': ['bin/ff%s' % x for x in ['mpeg', 'probe', 'play']] +
diff --git a/easybuild/easyconfigs/f/FFmpeg/FFmpeg-6.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/f/FFmpeg/FFmpeg-6.0-GCCcore-13.2.0.eb
index fab8972c089..c75695951f6 100644
--- a/easybuild/easyconfigs/f/FFmpeg/FFmpeg-6.0-GCCcore-13.2.0.eb
+++ b/easybuild/easyconfigs/f/FFmpeg/FFmpeg-6.0-GCCcore-13.2.0.eb
@@ -33,7 +33,7 @@ dependencies = [
configopts = '--enable-pic --enable-shared --enable-gpl --enable-version3 --enable-nonfree --cc="$CC" --cxx="$CXX" '
configopts += '--enable-libx264 --enable-libx265 --enable-libmp3lame --enable-libfreetype --enable-fontconfig '
-configopts += '--enable-libfribidi --enable-sdl2'
+configopts += '--enable-libfribidi --enable-sdl2 --disable-htmlpages'
sanity_check_paths = {
'files': ['bin/ff%s' % x for x in ['mpeg', 'probe', 'play']] +
diff --git a/easybuild/easyconfigs/f/FFmpeg/FFmpeg-7.0.2-GCCcore-13.3.0.eb b/easybuild/easyconfigs/f/FFmpeg/FFmpeg-7.0.2-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..246a8306b76
--- /dev/null
+++ b/easybuild/easyconfigs/f/FFmpeg/FFmpeg-7.0.2-GCCcore-13.3.0.eb
@@ -0,0 +1,45 @@
+easyblock = 'ConfigureMake'
+
+name = 'FFmpeg'
+version = '7.0.2'
+
+homepage = 'https://www.ffmpeg.org/'
+description = "A complete, cross-platform solution to record, convert and stream audio and video."
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://%(namelower)s.org/releases/']
+sources = [SOURCELOWER_TAR_BZ2]
+checksums = ['1ed250407ea8f955cca2f1139da3229fbc13032a0802e4b744be195865ff1541']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('pkgconf', '2.2.0'),
+ ('ffnvcodec', '12.2.72.0', '', SYSTEM), # optional nvenc/dec support
+]
+dependencies = [
+ ('NASM', '2.16.03'),
+ ('zlib', '1.3.1'),
+ ('bzip2', '1.0.8'),
+ ('x264', '20240513'),
+ ('LAME', '3.100'),
+ ('x265', '3.6'),
+ ('X11', '20240607'),
+ ('freetype', '2.13.2'),
+ ('fontconfig', '2.15.0'),
+ ('FriBidi', '1.0.15'),
+ ('SDL2', '2.30.6'),
+]
+
+configopts = '--enable-pic --enable-shared --enable-gpl --enable-version3 --enable-nonfree --cc="$CC" --cxx="$CXX" '
+configopts += '--enable-libx264 --enable-libx265 --enable-libmp3lame --enable-libfreetype --enable-fontconfig '
+configopts += '--enable-libfribidi --enable-sdl2 --disable-htmlpages'
+
+sanity_check_paths = {
+ 'files': ['bin/ff%s' % x for x in ['mpeg', 'probe', 'play']] +
+ ['lib/lib%s.%s' % (x, y) for x in ['avdevice', 'avfilter', 'avformat', 'avcodec', 'postproc',
+ 'swresample', 'swscale', 'avutil'] for y in [SHLIB_EXT, 'a']],
+ 'dirs': ['include']
+}
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/f/FLAC/FLAC-1.4.3-GCCcore-13.2.0.eb b/easybuild/easyconfigs/f/FLAC/FLAC-1.4.3-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..a0abaac6ca9
--- /dev/null
+++ b/easybuild/easyconfigs/f/FLAC/FLAC-1.4.3-GCCcore-13.2.0.eb
@@ -0,0 +1,30 @@
+easyblock = 'ConfigureMake'
+
+name = 'FLAC'
+version = '1.4.3'
+
+homepage = 'https://xiph.org/flac/'
+description = """FLAC stands for Free Lossless Audio Codec, an audio format similar to MP3, but lossless, meaning
+that audio is compressed in FLAC without any loss in quality."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+source_urls = ['https://ftp.osuosl.org/pub/xiph/releases/flac/']
+sources = [SOURCELOWER_TAR_XZ]
+checksums = ['6c58e69cd22348f441b861092b825e591d0b822e106de6eb0ee4d05d27205b70']
+
+builddependencies = [('binutils', '2.40')]
+
+dependencies = [('libogg', '1.3.5')]
+
+configopts = '--enable-static --enable-shared'
+
+sanity_check_paths = {
+ 'files': ['bin/flac', 'lib/libFLAC.a', 'lib/libFLAC++.a',
+ 'lib/libFLAC.%s' % SHLIB_EXT, 'lib/libFLAC++.%s' % SHLIB_EXT],
+ 'dirs': ['include/FLAC', 'include/FLAC++'],
+}
+
+sanity_check_commands = ["flac --help"]
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/f/FLAC/FLAC-1.4.3-GCCcore-13.3.0.eb b/easybuild/easyconfigs/f/FLAC/FLAC-1.4.3-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..f767483f7cd
--- /dev/null
+++ b/easybuild/easyconfigs/f/FLAC/FLAC-1.4.3-GCCcore-13.3.0.eb
@@ -0,0 +1,30 @@
+easyblock = 'ConfigureMake'
+
+name = 'FLAC'
+version = '1.4.3'
+
+homepage = 'https://xiph.org/flac/'
+description = """FLAC stands for Free Lossless Audio Codec, an audio format similar to MP3, but lossless, meaning
+that audio is compressed in FLAC without any loss in quality."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://ftp.osuosl.org/pub/xiph/releases/flac/']
+sources = [SOURCELOWER_TAR_XZ]
+checksums = ['6c58e69cd22348f441b861092b825e591d0b822e106de6eb0ee4d05d27205b70']
+
+builddependencies = [('binutils', '2.42')]
+
+dependencies = [('libogg', '1.3.5')]
+
+configopts = '--enable-static --enable-shared'
+
+sanity_check_paths = {
+ 'files': ['bin/flac', 'lib/libFLAC.a', 'lib/libFLAC++.a',
+ 'lib/libFLAC.%s' % SHLIB_EXT, 'lib/libFLAC++.%s' % SHLIB_EXT],
+ 'dirs': ['include/FLAC', 'include/FLAC++'],
+}
+
+sanity_check_commands = ["flac --help"]
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/f/FLANN/FLANN-1.9.2-foss-2022b.eb b/easybuild/easyconfigs/f/FLANN/FLANN-1.9.2-foss-2022b.eb
new file mode 100644
index 00000000000..ce4946fff26
--- /dev/null
+++ b/easybuild/easyconfigs/f/FLANN/FLANN-1.9.2-foss-2022b.eb
@@ -0,0 +1,42 @@
+# Contribution from the NIHR Biomedical Research Centre
+# Guy's and St Thomas' NHS Foundation Trust and King's College London
+# uploaded by J. Sassmannshausen
+
+easyblock = 'CMakeMake'
+
+name = 'FLANN'
+version = '1.9.2'
+
+homepage = 'https://github.com/mariusmuja/flann/'
+description = "FLANN is a library for performing fast approximate nearest neighbor searches in high dimensional spaces."
+
+toolchain = {'name': 'foss', 'version': '2022b'}
+toolchainopts = {'openmp': True}
+
+source_urls = ['https://github.com/mariusmuja/flann/archive/']
+sources = ['%(version)s.tar.gz']
+checksums = ['e26829bb0017f317d9cc45ab83ddcb8b16d75ada1ae07157006c1e7d601c8824']
+
+builddependencies = [
+ ('CMake', '3.24.3'),
+]
+
+dependencies = [
+ ('Python', '3.10.8'),
+ ('SciPy-bundle', '2023.02'),
+ ('lz4', '1.9.4'),
+]
+
+configopts = "-DUSE_OPENMP=ON -DUSE_MPI=ON -DBUILD_PYTHON_BINDINGS=ON -DBUILD_C_BINDINGS=ON"
+
+modextrapaths = {'PYTHONPATH': ['share/flann/python']}
+
+sanity_check_paths = {
+ 'files': ['lib/libflann_cpp_s.a', 'lib/libflann_s.a',
+ 'lib/libflann_cpp.%s' % SHLIB_EXT, 'lib/libflann.%s' % SHLIB_EXT],
+ 'dirs': ['include/flann', 'lib/pkgconfig', 'share/flann/python'],
+}
+
+sanity_check_commands = ["python -c 'import pyflann'"]
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/f/FLANN/FLANN-1.9.2-foss-2023a.eb b/easybuild/easyconfigs/f/FLANN/FLANN-1.9.2-foss-2023a.eb
new file mode 100644
index 00000000000..37143785fe1
--- /dev/null
+++ b/easybuild/easyconfigs/f/FLANN/FLANN-1.9.2-foss-2023a.eb
@@ -0,0 +1,40 @@
+# Contribution from the NIHR Biomedical Research Centre
+# Guy's and St Thomas' NHS Foundation Trust and King's College London
+# uploaded by J. Sassmannshausen
+
+easyblock = 'CMakeMake'
+
+name = 'FLANN'
+version = '1.9.2'
+
+homepage = 'https://github.com/mariusmuja/flann/'
+description = "FLANN is a library for performing fast approximate nearest neighbor searches in high dimensional spaces."
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'openmp': True}
+
+source_urls = ['https://github.com/mariusmuja/flann/archive/']
+sources = ['%(version)s.tar.gz']
+checksums = ['e26829bb0017f317d9cc45ab83ddcb8b16d75ada1ae07157006c1e7d601c8824']
+
+builddependencies = [('CMake', '3.26.3')]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('lz4', '1.9.4'),
+]
+
+configopts = "-DUSE_OPENMP=ON -DUSE_MPI=ON -DBUILD_PYTHON_BINDINGS=ON -DBUILD_C_BINDINGS=ON"
+
+modextrapaths = {'PYTHONPATH': ['share/flann/python']}
+
+sanity_check_paths = {
+ 'files': ['lib/libflann_cpp_s.a', 'lib/libflann_s.a',
+ 'lib/libflann_cpp.%s' % SHLIB_EXT, 'lib/libflann.%s' % SHLIB_EXT],
+ 'dirs': ['include/flann', 'lib/pkgconfig', 'share/flann/python'],
+}
+
+sanity_check_commands = ["python -c 'import pyflann'"]
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/f/FLINT/FLINT-3.1.1-gfbf-2023b.eb b/easybuild/easyconfigs/f/FLINT/FLINT-3.1.1-gfbf-2023b.eb
new file mode 100644
index 00000000000..c5063ad3ef4
--- /dev/null
+++ b/easybuild/easyconfigs/f/FLINT/FLINT-3.1.1-gfbf-2023b.eb
@@ -0,0 +1,45 @@
+easyblock = 'CMakeMake'
+
+name = 'FLINT'
+version = '3.1.1'
+
+homepage = 'https://www.flintlib.org/'
+
+description = """FLINT (Fast Library for Number Theory) is a C library in support of computations
+ in number theory. Operations that can be performed include conversions, arithmetic, computing GCDs,
+ factoring, solving linear systems, and evaluating special functions. In addition, FLINT provides
+ various low-level routines for fast arithmetic. FLINT is extensively documented and tested."""
+
+toolchain = {'name': 'gfbf', 'version': '2023b'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/flintlib/%(namelower)s/releases/download/v%(version)s/']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['161f81d0a809408daab36ec79ba89380346dc3195d3671f97106f1b8774f653a']
+
+builddependencies = [
+ ('CMake', '3.27.6'),
+ ('Python', '3.11.5'),
+]
+
+dependencies = [
+ ('GMP', '6.3.0'),
+ ('MPFR', '4.2.1'),
+ ('NTL', '11.5.1'),
+]
+
+# Make flexiblas the first to be found and used to avoid linking openblas.
+preconfigopts = 'sed -i "s/PATH_SUFFIXES openblas/PATH_SUFFIXES flexiblas openblas/g;'
+preconfigopts += 's/accelerate openblas/accelerate flexiblas openblas/g" '
+preconfigopts += '%(builddir)s/%(namelower)s-%(version)s/CMake/FindCBLAS.cmake && '
+
+configopts = '-DWITH_NTL=on -DBUILD_TESTING=yes'
+
+runtest = 'test'
+
+sanity_check_paths = {
+ 'files': ['lib/lib%%(namelower)s.%s' % SHLIB_EXT],
+ 'dirs': ['include'],
+}
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/f/FLINT/FLINT-3.1.2-gfbf-2024a.eb b/easybuild/easyconfigs/f/FLINT/FLINT-3.1.2-gfbf-2024a.eb
new file mode 100644
index 00000000000..970496a35d0
--- /dev/null
+++ b/easybuild/easyconfigs/f/FLINT/FLINT-3.1.2-gfbf-2024a.eb
@@ -0,0 +1,45 @@
+easyblock = 'CMakeMake'
+
+name = 'FLINT'
+version = '3.1.2'
+
+homepage = 'https://www.flintlib.org/'
+
+description = """FLINT (Fast Library for Number Theory) is a C library in support of computations
+ in number theory. Operations that can be performed include conversions, arithmetic, computing GCDs,
+ factoring, solving linear systems, and evaluating special functions. In addition, FLINT provides
+ various low-level routines for fast arithmetic. FLINT is extensively documented and tested."""
+
+toolchain = {'name': 'gfbf', 'version': '2024a'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://www.flintlib.org']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['fdb3a431a37464834acff3bdc145f4fe8d0f951dd5327c4c6f93f4cbac5c2700']
+
+builddependencies = [
+ ('CMake', '3.29.3'),
+ ('Python', '3.12.3'),
+]
+
+dependencies = [
+ ('GMP', '6.3.0'),
+ ('MPFR', '4.2.1'),
+ ('NTL', '11.5.1'),
+]
+
+# Make flexiblas the first to be found and used to avoid linking openblas.
+preconfigopts = 'sed -i "s/PATH_SUFFIXES openblas/PATH_SUFFIXES flexiblas openblas/g;'
+preconfigopts += 's/accelerate openblas/accelerate flexiblas openblas/g" '
+preconfigopts += '%(builddir)s/%(namelower)s-%(version)s/CMake/FindCBLAS.cmake && '
+
+configopts = '-DWITH_NTL=on -DBUILD_TESTING=yes'
+
+runtest = 'test'
+
+sanity_check_paths = {
+ 'files': ['lib/lib%%(namelower)s.%s' % SHLIB_EXT],
+ 'dirs': ['include'],
+}
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/f/FLTK/FLTK-1.3.9-GCCcore-13.2.0.eb b/easybuild/easyconfigs/f/FLTK/FLTK-1.3.9-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..3afeffc0a2c
--- /dev/null
+++ b/easybuild/easyconfigs/f/FLTK/FLTK-1.3.9-GCCcore-13.2.0.eb
@@ -0,0 +1,43 @@
+easyblock = 'ConfigureMake'
+
+name = 'FLTK'
+version = '1.3.9'
+
+homepage = 'https://www.fltk.org'
+description = """FLTK is a cross-platform C++ GUI toolkit for UNIX/Linux (X11), Microsoft Windows,
+ and MacOS X. FLTK provides modern GUI functionality without the bloat and supports 3D graphics via OpenGL
+ and its built-in GLUT emulation."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://fltk.org/pub/%(namelower)s/%(version)s/']
+sources = ['%(namelower)s-%(version)s-source.tar.gz']
+patches = ['FLTK-1.3.6_fix-LDFLAGS.patch']
+checksums = [
+ {'fltk-1.3.9-source.tar.gz': 'd736b0445c50d607432c03d5ba5e82f3fba2660b10bc1618db8e077a42d9511b'},
+ {'FLTK-1.3.6_fix-LDFLAGS.patch': 'f8af2414a1ee193a186b0d98d1e3567add0ee003f44ec64dce2ce2dfd6d95ebf'},
+]
+
+configopts = '--enable-shared --enable-threads --enable-xft'
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('groff', '1.23.0'),
+]
+
+dependencies = [
+ ('Mesa', '23.1.9'),
+ ('libGLU', '9.0.3'),
+ ('libpng', '1.6.40'),
+ ('libjpeg-turbo', '3.0.1'),
+ ('xprop', '1.2.7'),
+ ('zlib', '1.2.13'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/fltk-config', 'bin/fluid', 'lib/libfltk.a', 'lib/libfltk.%s' % SHLIB_EXT],
+ 'dirs': ['lib'],
+}
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/f/FMM3D/FMM3D-1.0.4-foss-2023a.eb b/easybuild/easyconfigs/f/FMM3D/FMM3D-1.0.4-foss-2023a.eb
new file mode 100644
index 00000000000..19cdbd46743
--- /dev/null
+++ b/easybuild/easyconfigs/f/FMM3D/FMM3D-1.0.4-foss-2023a.eb
@@ -0,0 +1,45 @@
+easyblock = 'ConfigureMake'
+
+name = 'FMM3D'
+version = '1.0.4'
+
+homepage = 'https://fmm3d.readthedocs.io'
+description = """Flatiron Institute Fast Multipole Libraries: a set of libraries to compute N-body
+interactions governed by the Laplace and Helmholtz equations, to a specified precision, in three dimensions, on a
+multi-core shared-memory machine."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'openmp': True}
+
+source_urls = ['https://github.com/flatironinstitute/FMM3D/archive/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['26b16ce6f963bf33011cbd690a27d4cba2c3a3eb9ab8505febe1ca39abcfc40a']
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('Python-bundle-PyPI', '2023.06'),
+]
+
+skipsteps = ['configure', 'build']
+
+installopts = 'FAST_KER=ON PREFIX="%(installdir)s/lib" && '
+installopts += 'export FMM_FLIBS="%(installdir)s/lib/libfmm3d.a $FFLAGS" && '
+# also install Python bindings
+installopts += "make python-dist && pip install --no-deps --ignore-installed --prefix %(installdir)s python/dist/*.whl"
+
+sanity_check_paths = {
+ 'files': ['lib/libfmm3d.a', 'lib/libfmm3d.%s' % SHLIB_EXT],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = [
+ "cd %(builddir)s/FMM3D-* && make test",
+ "python -c 'import fmm3dpy'",
+ "cd %(builddir)s/FMM3D-* && python python/test/test_hfmm.py",
+ "cd %(builddir)s/FMM3D-* && python python/test/test_lfmm.py",
+]
+
+modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/f/FSL/FSL-6.0.5.1-foss-2021a.eb b/easybuild/easyconfigs/f/FSL/FSL-6.0.5.1-foss-2021a.eb
index 490c55164b6..418940cf74a 100644
--- a/easybuild/easyconfigs/f/FSL/FSL-6.0.5.1-foss-2021a.eb
+++ b/easybuild/easyconfigs/f/FSL/FSL-6.0.5.1-foss-2021a.eb
@@ -52,30 +52,38 @@ dependencies = [
('GSL', '2.7'),
('Qwt', '6.2.0'),
('h5py', '3.2.1'),
+ ('NiBabel', '3.2.1'),
]
-modextrapaths = {'PYTHONPATH': ['fsl/lib/python%(pyshortver)s/site-packages']}
-
-# The executable files 'imglob' and 'imcp' come from fslpy
exts_defaultclass = 'PythonPackage'
exts_default_options = {
+ 'buildininstalldir': False,
+ 'source_urls': [PYPI_LOWER_SOURCE],
'download_dep_fail': True,
'use_pip': True,
}
exts_list = [
+ ('dataclasses', '0.8', {
+ 'checksums': ['8479067f342acf957dc82ec415d355ab5edb7e7646b90dc6e2fd1d96ad084c97'],
+ 'preinstallopts': "sed -i '/python_requires/d' setup.py && ",
+ }),
+ # The executable files 'imglob' and 'imcp' come from fslpy
('fslpy', '3.5.3', {
- 'installopts': '--prefix=%(installdir)s/fsl',
- 'source_urls': ['https://pypi.python.org/packages/source/f/fslpy/'],
'checksums': ['f80ef8b7b49f475bfb71946619d33c118a7cbbe106c72f7777aaf14d9e261530'],
+ 'installopts': '--prefix=%(installdir)s/fsl',
}),
]
+modextrapaths = {
+ 'PYTHONPATH': ['fsl/lib/python%(pyshortver)s/site-packages', 'lib/python%(pyshortver)s/site-packages'],
+}
+
modextravars = {
'FSLOUTPUTTYPE': 'NIFTI_GZ',
'FSLMULTIFILEQUIT': 'TRUE',
'FSLTCLSH': 'tclsh',
- 'FSLWISH': 'wish8.6'
+ 'FSLWISH': 'wish8.6',
}
moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/f/FUSE/FUSE-3.14.1-GCCcore-11.3.0.eb b/easybuild/easyconfigs/f/FUSE/FUSE-3.14.1-GCCcore-11.3.0.eb
index 856159422b1..f82d2647ceb 100644
--- a/easybuild/easyconfigs/f/FUSE/FUSE-3.14.1-GCCcore-11.3.0.eb
+++ b/easybuild/easyconfigs/f/FUSE/FUSE-3.14.1-GCCcore-11.3.0.eb
@@ -18,13 +18,15 @@ builddependencies = [
('binutils', '2.38'),
]
-# -Dutils=True only works as root
-configopts = '-Dutils=False'
+# avoid that root permissions are required when installing utils (like fusermount)
+configopts = "-Dinitscriptdir=%(installdir)s/etc/init.d -Dudevrulesdir=%(installdir)s/udev/rules.d -Duseroot=false"
sanity_check_paths = {
- 'files': ['lib64/libfuse%%(version_major)s.%s' % SHLIB_EXT,
- 'lib64/pkgconfig/fuse%(version_major)s.pc'],
- 'dirs': ['include/fuse%(version_major)s'],
+ 'files': ['bin/fusermount3', 'etc/fuse.conf', 'lib/libfuse%%(version_major)s.%s' % SHLIB_EXT,
+ 'lib/pkgconfig/fuse%(version_major)s.pc'],
+ 'dirs': ['include/fuse%(version_major)s', 'share/man'],
}
+sanity_check_commands = ["fusermount3 -h | grep '^fusermount3'"]
+
moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/f/FUSE/FUSE-3.14.1-GCCcore-12.2.0.eb b/easybuild/easyconfigs/f/FUSE/FUSE-3.14.1-GCCcore-12.2.0.eb
index 1be42749206..b16a0debad6 100644
--- a/easybuild/easyconfigs/f/FUSE/FUSE-3.14.1-GCCcore-12.2.0.eb
+++ b/easybuild/easyconfigs/f/FUSE/FUSE-3.14.1-GCCcore-12.2.0.eb
@@ -18,13 +18,15 @@ builddependencies = [
('binutils', '2.39')
]
-# -Dutils=True only works as root
-configopts = '-Dutils=False'
+# avoid that root permissions are required when installing utils (like fusermount)
+configopts = "-Dinitscriptdir=%(installdir)s/etc/init.d -Dudevrulesdir=%(installdir)s/udev/rules.d -Duseroot=false"
sanity_check_paths = {
- 'files': ['lib64/libfuse%%(version_major)s.%s' % SHLIB_EXT,
- 'lib64/pkgconfig/fuse%(version_major)s.pc'],
- 'dirs': ['include/fuse%(version_major)s'],
+ 'files': ['bin/fusermount3', 'etc/fuse.conf', 'lib/libfuse%%(version_major)s.%s' % SHLIB_EXT,
+ 'lib/pkgconfig/fuse%(version_major)s.pc'],
+ 'dirs': ['include/fuse%(version_major)s', 'share/man'],
}
+sanity_check_commands = ["fusermount3 -h | grep '^fusermount3'"]
+
moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/f/FUSE/FUSE-3.16.2-GCCcore-12.3.0.eb b/easybuild/easyconfigs/f/FUSE/FUSE-3.16.2-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..341358950aa
--- /dev/null
+++ b/easybuild/easyconfigs/f/FUSE/FUSE-3.16.2-GCCcore-12.3.0.eb
@@ -0,0 +1,32 @@
+easyblock = 'MesonNinja'
+
+name = 'FUSE'
+version = '3.16.2'
+
+homepage = 'https://github.com/libfuse/libfuse'
+description = "The reference implementation of the Linux FUSE (Filesystem in Userspace) interface"
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = ['https://github.com/libfuse/libfuse/archive/']
+sources = ['fuse-%(version)s.tar.gz']
+checksums = ['1bc306be1a1f4f6c8965fbdd79c9ccca021fdc4b277d501483a711cbd7dbcd6c']
+
+builddependencies = [
+ ('Meson', '1.1.1'),
+ ('Ninja', '1.11.1'),
+ ('binutils', '2.40'),
+]
+
+# avoid that root permissions are required when installing utils (like fusermount)
+configopts = "-Dinitscriptdir=%(installdir)s/etc/init.d -Dudevrulesdir=%(installdir)s/udev/rules.d -Duseroot=false"
+
+sanity_check_paths = {
+ 'files': ['bin/fusermount3', 'etc/fuse.conf', 'lib/libfuse%%(version_major)s.%s' % SHLIB_EXT,
+ 'lib/pkgconfig/fuse%(version_major)s.pc'],
+ 'dirs': ['include/fuse%(version_major)s', 'share/man'],
+}
+
+sanity_check_commands = ["fusermount3 -h | grep '^fusermount3'"]
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/f/Faiss/Faiss-1.7.4-foss-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/f/Faiss/Faiss-1.7.4-foss-2023a-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..1a9b1727bba
--- /dev/null
+++ b/easybuild/easyconfigs/f/Faiss/Faiss-1.7.4-foss-2023a-CUDA-12.1.1.eb
@@ -0,0 +1,70 @@
+# Author: Jasper Grimm (UoY)
+easyblock = 'CMakePythonPackage'
+
+name = 'Faiss'
+version = '1.7.4'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://github.com/facebookresearch/faiss'
+description = """
+Faiss is a library for efficient similarity search and clustering of dense
+ vectors. It contains algorithms that search in sets of vectors of any size, up
+ to ones that possibly do not fit in RAM. It also contains supporting code for
+ evaluation and parameter tuning. Faiss is written in C++ with complete
+ wrappers for Python/numpy. Some of the most useful algorithms are implemented
+ on the GPU. It is developed primarily at Meta's Fundamental AI Research group.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+github_account = 'facebookresearch'
+source_urls = [GITHUB_LOWER_SOURCE]
+sources = ['v%(version)s.tar.gz']
+checksums = ['d9a7b31bf7fd6eb32c10b7ea7ff918160eed5be04fe63bb7b4b4b5f2bbde01ad']
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+ ('SWIG', '4.1.1'),
+]
+
+dependencies = [
+ ('CUDA', '12.1.1', '', SYSTEM),
+ ('Python', '3.11.3'),
+ ('PyTorch', '2.1.2', versionsuffix),
+ ('SciPy-bundle', '2023.07'),
+]
+
+_copts = [
+ '-DFAISS_ENABLE_GPU=ON',
+ '-DFAISS_ENABLE_PYTHON=ON',
+ '-DFAISS_ENABLE_C_API=ON',
+ '-DBUILD_TESTING=ON',
+ '-DBUILD_SHARED_LIBS=ON',
+ '-DPython_EXECUTABLE="${EBROOTPYTHON}/bin/python"',
+ '-DCUDAToolkit_ROOT="${CUDA_ROOT}"',
+ '-DCMAKE_CUDA_ARCHITECTURES="%(cuda_cc_cmake)s"',
+ '-DCMAKE_INSTALL_LIBDIR=%(installdir)s/lib',
+]
+
+configopts = ' '.join(_copts)
+
+buildopts = 'faiss swigfaiss'
+
+postinstallcmds = [
+ ' && '.join([
+ # run a pip install in the 'faiss/python' subdir
+ 'cd ../easybuild_obj/%(namelower)s/python',
+ 'python -m pip install --prefix=%(installdir)s --no-build-isolation .',
+ # for some reason, 'libfaiss_python_callbacks.so' doesn't get installed, so copy this manually
+ 'cp libfaiss_python_callbacks.%s %%(installdir)s/lib/python%%(pyshortver)s/site-packages/faiss' % SHLIB_EXT
+ ])
+]
+
+modextrapaths = {'LD_LIBRARY_PATH': "lib/python%(pyshortver)s/site-packages/faiss"}
+
+sanity_check_paths = {
+ 'files': ['lib/lib%%(namelower)s.%s' % SHLIB_EXT],
+ 'dirs': ['include/%(namelower)s', 'lib/python%(pyshortver)s/site-packages/%(namelower)s'],
+}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/f/FastTree/FastTree-2.1.11-GCCcore-12.2.0.eb b/easybuild/easyconfigs/f/FastTree/FastTree-2.1.11-GCCcore-12.2.0.eb
new file mode 100644
index 00000000000..abb4f293128
--- /dev/null
+++ b/easybuild/easyconfigs/f/FastTree/FastTree-2.1.11-GCCcore-12.2.0.eb
@@ -0,0 +1,42 @@
+# Updated from previous config
+# Author: Pavel Grochal (INUITS)
+# License: GPLv2
+
+easyblock = 'CmdCp'
+
+name = 'FastTree'
+version = '2.1.11'
+
+homepage = 'http://www.microbesonline.org/fasttree/'
+description = """FastTree infers approximately-maximum-likelihood phylogenetic trees from alignments of nucleotide
+ or protein sequences. FastTree can handle alignments with up to a million of sequences in a reasonable amount of
+ time and memory. """
+
+toolchain = {'name': 'GCCcore', 'version': '12.2.0'}
+toolchainopts = {'openmp': True}
+
+# HTTPS cert error:
+# hostname 'www.microbesonline.org' doesn't match either of 'genomics.lbl.gov', 'mojave.qb3.berkeley.edu', ...
+source_urls = ['http://www.microbesonline.org/fasttree/']
+sources = [{'filename': '%(name)s-%(version)s.c', 'extract_cmd': 'cp %s FastTree.c'}]
+checksums = ['9026ae550307374be92913d3098f8d44187d30bea07902b9dcbfb123eaa2050f']
+
+builddependencies = [('binutils', '2.39')]
+
+cmds_map = [('%(name)s-%(version)s.c', '$CC -DOPENMP $CFLAGS $LIBS %%(source)s -o %(name)s')]
+
+files_to_copy = [(['FastTree'], 'bin')]
+
+# as FastTree is built with OpenMP, the correct binary is FastTreeMP
+# the FastTree binary should normally be built without OpenMP, but let’s keep it as is for backward compatibility
+# see http://www.microbesonline.org/fasttree/#OpenMP
+postinstallcmds = ['cd %(installdir)s/bin && ln -s FastTree FastTreeMP']
+
+sanity_check_paths = {
+ 'files': ['bin/FastTree'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ['FastTree 2>&1 | grep "FastTree Version %(version)s"']
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/f/FastTree/FastTree-2.1.11-GCCcore-12.3.0.eb b/easybuild/easyconfigs/f/FastTree/FastTree-2.1.11-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..24ad8b0638c
--- /dev/null
+++ b/easybuild/easyconfigs/f/FastTree/FastTree-2.1.11-GCCcore-12.3.0.eb
@@ -0,0 +1,42 @@
+# Updated from previous config
+# Author: Pavel Grochal (INUITS)
+# License: GPLv2
+
+easyblock = 'CmdCp'
+
+name = 'FastTree'
+version = '2.1.11'
+
+homepage = 'http://www.microbesonline.org/fasttree/'
+description = """FastTree infers approximately-maximum-likelihood phylogenetic trees from alignments of nucleotide
+ or protein sequences. FastTree can handle alignments with up to a million of sequences in a reasonable amount of
+ time and memory. """
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+toolchainopts = {'openmp': True}
+
+# HTTPS cert error:
+# hostname 'www.microbesonline.org' doesn't match either of 'genomics.lbl.gov', 'mojave.qb3.berkeley.edu', ...
+source_urls = ['http://www.microbesonline.org/fasttree/']
+sources = [{'filename': '%(name)s-%(version)s.c', 'extract_cmd': 'cp %s FastTree.c'}]
+checksums = ['9026ae550307374be92913d3098f8d44187d30bea07902b9dcbfb123eaa2050f']
+
+builddependencies = [('binutils', '2.40')]
+
+cmds_map = [('%(name)s-%(version)s.c', '$CC -DOPENMP $CFLAGS $LIBS %%(source)s -o %(name)s')]
+
+files_to_copy = [(['FastTree'], 'bin')]
+
+# as FastTree is built with OpenMP, the correct binary is FastTreeMP
+# the FastTree binary should normally be built without OpenMP, but let’s keep it as is for backward compatibility
+# see http://www.microbesonline.org/fasttree/#OpenMP
+postinstallcmds = ['cd %(installdir)s/bin && ln -s FastTree FastTreeMP']
+
+sanity_check_paths = {
+ 'files': ['bin/FastTree'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ['FastTree 2>&1 | grep "FastTree Version %(version)s"']
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/f/FastTree/FastTree-2.1.11-GCCcore-13.2.0.eb b/easybuild/easyconfigs/f/FastTree/FastTree-2.1.11-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..b44229828a4
--- /dev/null
+++ b/easybuild/easyconfigs/f/FastTree/FastTree-2.1.11-GCCcore-13.2.0.eb
@@ -0,0 +1,42 @@
+# Updated from previous config
+# Author: Pavel Grochal (INUITS)
+# License: GPLv2
+
+easyblock = 'CmdCp'
+
+name = 'FastTree'
+version = '2.1.11'
+
+homepage = 'http://www.microbesonline.org/fasttree/'
+description = """FastTree infers approximately-maximum-likelihood phylogenetic trees from alignments of nucleotide
+ or protein sequences. FastTree can handle alignments with up to a million of sequences in a reasonable amount of
+ time and memory. """
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+toolchainopts = {'openmp': True}
+
+# HTTPS cert error:
+# hostname 'www.microbesonline.org' doesn't match either of 'genomics.lbl.gov', 'mojave.qb3.berkeley.edu', ...
+source_urls = ['http://www.microbesonline.org/fasttree/']
+sources = [{'filename': '%(name)s-%(version)s.c', 'extract_cmd': 'cp %s FastTree.c'}]
+checksums = ['9026ae550307374be92913d3098f8d44187d30bea07902b9dcbfb123eaa2050f']
+
+builddependencies = [('binutils', '2.40')]
+
+cmds_map = [('%(name)s-%(version)s.c', '$CC -DOPENMP $CFLAGS $LIBS %%(source)s -o %(name)s')]
+
+files_to_copy = [(['FastTree'], 'bin')]
+
+# as FastTree is built with OpenMP, the correct binary is FastTreeMP
+# the FastTree binary should normally be built without OpenMP, but let’s keep it as is for backward compatibility
+# see http://www.microbesonline.org/fasttree/#OpenMP
+postinstallcmds = ['cd %(installdir)s/bin && ln -s FastTree FastTreeMP']
+
+sanity_check_paths = {
+ 'files': ['bin/FastTree'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ['FastTree 2>&1 | grep "FastTree Version %(version)s"']
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/f/Fastaq/Fastaq-3.17.0-GCC-12.3.0.eb b/easybuild/easyconfigs/f/Fastaq/Fastaq-3.17.0-GCC-12.3.0.eb
new file mode 100644
index 00000000000..c16c2a13ab3
--- /dev/null
+++ b/easybuild/easyconfigs/f/Fastaq/Fastaq-3.17.0-GCC-12.3.0.eb
@@ -0,0 +1,30 @@
+easyblock = 'PythonPackage'
+
+name = 'Fastaq'
+version = '3.17.0'
+
+homepage = 'https://github.com/sanger-pathogens/Fastaq'
+description = "Python3 scripts to manipulate FASTA and FASTQ files."
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+
+github_account = 'sanger-pathogens'
+source_urls = [GITHUB_SOURCE]
+sources = ['v%(version)s-docker3.tar.gz']
+checksums = ['f65235f5d89f4621cf8e15676448e17d85620c05096cb6413134c4e29717ff5f']
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SAMtools', '1.18'),
+ ('gzip', '1.12'),
+]
+
+use_pip = True
+download_dep_fail = True
+sanity_pip_check = True
+
+sanity_check_commands = ['fastaq version']
+
+options = {'modulename': 'pyfastaq'}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/f/Filtlong/Filtlong-0.2.1-GCC-12.3.0.eb b/easybuild/easyconfigs/f/Filtlong/Filtlong-0.2.1-GCC-12.3.0.eb
new file mode 100644
index 00000000000..25bf2c570f0
--- /dev/null
+++ b/easybuild/easyconfigs/f/Filtlong/Filtlong-0.2.1-GCC-12.3.0.eb
@@ -0,0 +1,39 @@
+# This file is an EasyBuild reciPY as per https://easybuilders.github.io/easybuild/
+# Author: Pablo Escobar Lopez
+# sciCORE - University of Basel
+# SIB Swiss Institute of Bioinformatics
+
+easyblock = 'MakeCp'
+
+name = 'Filtlong'
+version = '0.2.1'
+
+homepage = 'https://github.com/rrwick/Filtlong'
+description = """Filtlong is a tool for filtering long reads by quality. It can take a set
+ of long reads and produce a smaller, better subset. It uses both read length (longer is better)
+ and read identity (higher is better) when choosing which reads pass the filter"""
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+
+source_urls = ['https://github.com/rrwick/Filtlong/archive/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['e6f47675e87f98cf2481a60bef5cad38396f1e4db653a5c1673139f37770273a']
+
+unpack_options = '--strip-components=1'
+
+parallel = 1
+
+dependencies = [
+ ('zlib', '1.2.13'),
+]
+
+files_to_copy = ["*"]
+
+sanity_check_paths = {
+ 'files': ['bin/filtlong'],
+ 'dirs': []
+}
+
+sanity_check_commands = ["filtlong --help"]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/f/Flask/Flask-3.0.3-GCCcore-13.3.0.eb b/easybuild/easyconfigs/f/Flask/Flask-3.0.3-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..46b9452f48b
--- /dev/null
+++ b/easybuild/easyconfigs/f/Flask/Flask-3.0.3-GCCcore-13.3.0.eb
@@ -0,0 +1,65 @@
+easyblock = 'PythonBundle'
+
+name = 'Flask'
+version = '3.0.3'
+
+homepage = 'https://flask.palletsprojects.com/'
+description = """
+Flask is a lightweight WSGI web application framework. It is designed to make
+getting started quick and easy, with the ability to scale up to complex
+applications.
+This module includes the Flask extensions: Flask-Cors"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+dependencies = [
+ ('Python', '3.12.3'),
+ ('Python-bundle-PyPI', '2024.06'),
+]
+
+sanity_pip_check = True
+use_pip = True
+
+exts_list = [
+ ('itsdangerous', '2.2.0', {
+ 'checksums': ['e0050c0b7da1eea53ffaf149c0cfbb5c6e2e2b69c4bef22c81fa6eb73e5f6173'],
+ }),
+ ('werkzeug', '3.0.4', {
+ 'checksums': ['34f2371506b250df4d4f84bfe7b0921e4762525762bbd936614909fe25cd7306'],
+ }),
+ ('asgiref', '3.7.2', {
+ 'checksums': ['9e0ce3aa93a819ba5b45120216b23878cf6e8525eb3848653452b4192b92afed'],
+ }),
+ ('blinker', '1.8.2', {
+ 'checksums': ['8f77b09d3bf7c795e969e9486f39c2c5e9c39d4ee07424be2bc594ece9642d83'],
+ }),
+ ('flask', version, {
+ 'checksums': ['ceb27b0af3823ea2737928a4d99d125a06175b8512c445cbd9a9ce200ef76842'],
+ }),
+ ('msgspec', '0.18.6', {
+ 'checksums': ['a59fc3b4fcdb972d09138cb516dbde600c99d07c38fd9372a6ef500d2d031b4e'],
+ }),
+ ('Flask-Cors', '5.0.0', {
+ 'sources': ['flask_cors-%(version)s.tar.gz'],
+ 'checksums': ['5aadb4b950c4e93745034594d9f3ea6591f734bb3662e16e255ffbf5e89c88ef'],
+ }),
+ ('cachelib', '0.13.0', {
+ 'checksums': ['209d8996e3c57595bee274ff97116d1d73c4980b2fd9a34c7846cd07fd2e1a48'],
+ }),
+ ('Flask-Session', '0.8.0', {
+ 'sources': ['flask_session-%(version)s.tar.gz'],
+ 'checksums': ['20e045eb01103694e70be4a49f3a80dbb1b57296a22dc6f44bbf3f83ef0742ff'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/%(namelower)s'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = ['%(namelower)s --version']
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/f/Flax/Flax-0.8.4-gfbf-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/f/Flax/Flax-0.8.4-gfbf-2023a-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..4aeb0c7d815
--- /dev/null
+++ b/easybuild/easyconfigs/f/Flax/Flax-0.8.4-gfbf-2023a-CUDA-12.1.1.eb
@@ -0,0 +1,44 @@
+easyblock = 'PythonBundle'
+
+name = 'Flax'
+version = '0.8.4'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://flax.readthedocs.io'
+description = """Flax is a high-performance neural network library and ecosystem for JAX that is
+designed for flexibility: Try new forms of training by forking an example and
+by modifying the training loop, not by adding features to a framework."""
+
+toolchain = {'name': 'gfbf', 'version': '2023a'}
+
+dependencies = [
+ ('CUDA', '12.1.1', '', SYSTEM),
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('jax', '0.4.25', versionsuffix),
+ ('Optax', '0.2.2', versionsuffix),
+ ('protobuf-python', '4.24.0'),
+ ('PyYAML', '6.0'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('nest_asyncio', '1.6.0', {
+ 'checksums': ['6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe'],
+ }),
+ ('orbax_checkpoint', '0.5.15', {
+ 'modulename': 'orbax.checkpoint',
+ 'checksums': ['15195e8d1b381b56f23a62a25599a3644f5d08655fa64f60bb1b938b8ffe7ef3'],
+ }),
+ ('tensorstore', '0.1.60', {
+ 'checksums': ['88da8f1978982101b8dbb144fd29ee362e4e8c97fc595c4992d555f80ce62a79'],
+ }),
+ ('flax', '0.8.4', {
+ 'checksums': ['968683f850198e1aa5eb2d9d1e20bead880ef7423c14f042db9d60848cb1c90b'],
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'ai'
diff --git a/easybuild/easyconfigs/f/Flax/Flax-0.8.4-gfbf-2023a.eb b/easybuild/easyconfigs/f/Flax/Flax-0.8.4-gfbf-2023a.eb
new file mode 100644
index 00000000000..dedc08531c3
--- /dev/null
+++ b/easybuild/easyconfigs/f/Flax/Flax-0.8.4-gfbf-2023a.eb
@@ -0,0 +1,42 @@
+easyblock = 'PythonBundle'
+
+name = 'Flax'
+version = '0.8.4'
+
+homepage = 'https://flax.readthedocs.io'
+description = """Flax is a high-performance neural network library and ecosystem for JAX that is
+designed for flexibility: Try new forms of training by forking an example and
+by modifying the training loop, not by adding features to a framework."""
+
+toolchain = {'name': 'gfbf', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('jax', '0.4.25'),
+ ('Optax', '0.2.2'),
+ ('protobuf-python', '4.24.0'),
+ ('PyYAML', '6.0'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('nest_asyncio', '1.6.0', {
+ 'checksums': ['6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe'],
+ }),
+ ('orbax_checkpoint', '0.5.15', {
+ 'modulename': 'orbax.checkpoint',
+ 'checksums': ['15195e8d1b381b56f23a62a25599a3644f5d08655fa64f60bb1b938b8ffe7ef3'],
+ }),
+ ('tensorstore', '0.1.60', {
+ 'checksums': ['88da8f1978982101b8dbb144fd29ee362e4e8c97fc595c4992d555f80ce62a79'],
+ }),
+ ('flax', '0.8.4', {
+ 'checksums': ['968683f850198e1aa5eb2d9d1e20bead880ef7423c14f042db9d60848cb1c90b'],
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'ai'
diff --git a/easybuild/easyconfigs/f/FlexiBLAS/FlexiBLAS-3.4.4-GCC-13.3.0.eb b/easybuild/easyconfigs/f/FlexiBLAS/FlexiBLAS-3.4.4-GCC-13.3.0.eb
new file mode 100644
index 00000000000..9b9f5e8edb2
--- /dev/null
+++ b/easybuild/easyconfigs/f/FlexiBLAS/FlexiBLAS-3.4.4-GCC-13.3.0.eb
@@ -0,0 +1,59 @@
+easyblock = 'Bundle'
+
+name = 'FlexiBLAS'
+version = '3.4.4'
+
+homepage = 'https://gitlab.mpi-magdeburg.mpg.de/software/flexiblas-release'
+description = """FlexiBLAS is a wrapper library that enables the exchange of the BLAS and LAPACK implementation
+used by a program without recompiling or relinking it."""
+
+toolchain = {'name': 'GCC', 'version': '13.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.29.3'),
+ ('Python', '3.12.3'), # required for running the tests
+ ('BLIS', '1.0'),
+]
+
+dependencies = [
+ ('OpenBLAS', '0.3.27'),
+]
+
+# 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.4.4/'],
+ 'sources': [SOURCELOWER_TAR_GZ],
+ 'checksums': ['05040ae092142dd0bf38d1bb9ce33f6b475d9f9bb455e33be997932ae855c22b'],
+ 'backends': local_backends,
+ }),
+ ('LAPACK', '3.12.0', {
+ 'easyblock': 'CMakeMake',
+ 'source_urls': ['https://github.com/Reference-LAPACK/lapack/archive/'],
+ 'sources': ['v%(version)s.tar.gz'],
+ 'checksums': ['eac9570f8e0ad6f30ce4b963f4f033f0f643e7c3912fc9ee6cd99120675ad48b'],
+ '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/FloPy/FloPy-3.8.2-gfbf-2023a.eb b/easybuild/easyconfigs/f/FloPy/FloPy-3.8.2-gfbf-2023a.eb
new file mode 100644
index 00000000000..50f72e07c0d
--- /dev/null
+++ b/easybuild/easyconfigs/f/FloPy/FloPy-3.8.2-gfbf-2023a.eb
@@ -0,0 +1,26 @@
+easyblock = 'PythonBundle'
+
+name = 'FloPy'
+version = '3.8.2'
+homepage = 'https://flopy.readthedocs.io'
+
+description = "FloPy is a Python package to create, run, and post-process MODFLOW-based models"
+
+toolchain = {'name': 'gfbf', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('matplotlib', '3.7.2'),
+]
+
+exts_list = [
+ ('flopy', version, {
+ 'checksums': ['0ce2941f4095df2ca1d510f28df57224bdeb90636a3f3beeb199f09f635ddc62'],
+ }),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+moduleclass = 'geo'
diff --git a/easybuild/easyconfigs/f/Flye/Flye-2.9.3-GCC-10.3.0.eb b/easybuild/easyconfigs/f/Flye/Flye-2.9.3-GCC-10.3.0.eb
new file mode 100644
index 00000000000..906ac5fc08c
--- /dev/null
+++ b/easybuild/easyconfigs/f/Flye/Flye-2.9.3-GCC-10.3.0.eb
@@ -0,0 +1,33 @@
+easyblock = 'PythonPackage'
+
+name = 'Flye'
+version = '2.9.3'
+
+homepage = 'https://github.com/fenderglass/Flye'
+description = """Flye is a de novo assembler for long and noisy reads, such as those produced by PacBio
+ and Oxford Nanopore Technologies."""
+
+toolchain = {'name': 'GCC', 'version': '10.3.0'}
+
+source_urls = ['https://github.com/fenderglass/Flye/archive/']
+sources = ['%(version)s.tar.gz']
+checksums = ['09580390ed0558c131ca0b836a2374d3cc7993cba2a6500024c2ee1d96666edc']
+
+dependencies = [('Python', '3.9.5')]
+
+download_dep_fail = True
+use_pip = True
+
+if ARCH == "aarch64":
+ preinstallopts = 'export arm_neon=1 && export aarch64=1 && '
+
+sanity_check_paths = {
+ 'files': ['bin/flye'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = ['%(namelower)s --help']
+
+sanity_pip_check = True
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/f/Flye/Flye-2.9.3-GCC-12.3.0.eb b/easybuild/easyconfigs/f/Flye/Flye-2.9.3-GCC-12.3.0.eb
new file mode 100644
index 00000000000..efd15addcca
--- /dev/null
+++ b/easybuild/easyconfigs/f/Flye/Flye-2.9.3-GCC-12.3.0.eb
@@ -0,0 +1,33 @@
+easyblock = 'PythonPackage'
+
+name = 'Flye'
+version = '2.9.3'
+
+homepage = 'https://github.com/fenderglass/Flye'
+description = """Flye is a de novo assembler for long and noisy reads, such as those produced by PacBio
+ and Oxford Nanopore Technologies."""
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+
+source_urls = ['https://github.com/fenderglass/Flye/archive/']
+sources = ['%(version)s.tar.gz']
+checksums = ['09580390ed0558c131ca0b836a2374d3cc7993cba2a6500024c2ee1d96666edc']
+
+dependencies = [('Python', '3.11.3')]
+
+download_dep_fail = True
+use_pip = True
+
+if ARCH == "aarch64":
+ preinstallopts = 'export arm_neon=1 && export aarch64=1 && '
+
+sanity_check_paths = {
+ 'files': ['bin/flye'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = ['%(namelower)s --help']
+
+sanity_pip_check = True
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/f/Flye/Flye-2.9.4-GCC-13.2.0.eb b/easybuild/easyconfigs/f/Flye/Flye-2.9.4-GCC-13.2.0.eb
new file mode 100644
index 00000000000..c11373f69a1
--- /dev/null
+++ b/easybuild/easyconfigs/f/Flye/Flye-2.9.4-GCC-13.2.0.eb
@@ -0,0 +1,33 @@
+easyblock = 'PythonPackage'
+
+name = 'Flye'
+version = '2.9.4'
+
+homepage = 'https://github.com/fenderglass/Flye'
+description = """Flye is a de novo assembler for long and noisy reads, such as those produced by PacBio
+ and Oxford Nanopore Technologies."""
+
+toolchain = {'name': 'GCC', 'version': '13.2.0'}
+
+source_urls = ['https://github.com/fenderglass/Flye/archive/']
+sources = ['%(version)s.tar.gz']
+checksums = ['197a2dfe39fc324a39d8e1901af4f539609159c4a64a578ec8e60f73f5ea4696']
+
+dependencies = [('Python', '3.11.5')]
+
+download_dep_fail = True
+use_pip = True
+
+if ARCH == "aarch64":
+ preinstallopts = 'export arm_neon=1 && export aarch64=1 && '
+
+sanity_check_paths = {
+ 'files': ['bin/flye'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = ['%(namelower)s --help']
+
+sanity_pip_check = True
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/f/FragGeneScan/FragGeneScan-1.31-GCCcore-11.3.0.eb b/easybuild/easyconfigs/f/FragGeneScan/FragGeneScan-1.31-GCCcore-11.3.0.eb
new file mode 100644
index 00000000000..915a307b6e7
--- /dev/null
+++ b/easybuild/easyconfigs/f/FragGeneScan/FragGeneScan-1.31-GCCcore-11.3.0.eb
@@ -0,0 +1,38 @@
+easyblock = 'MakeCp'
+
+name = 'FragGeneScan'
+version = '1.31'
+
+homepage = 'https://omics.informatics.indiana.edu/FragGeneScan/'
+description = "FragGeneScan is an application for finding (fragmented) genes in short reads."
+
+toolchain = {'name': 'GCCcore', 'version': '11.3.0'}
+
+source_urls = [SOURCEFORGE_SOURCE]
+sources = ['%(name)s%(version)s.tar.gz']
+checksums = ['cd3212d0f148218eb3b17d24fcd1fc897fb9fee9b2c902682edde29f895f426c']
+
+builddependencies = [('binutils', '2.38')]
+
+dependencies = [('Perl', '5.34.1')]
+
+fix_perl_shebang_for = ['*.pl']
+
+prebuildopts = "make clean && "
+buildopts = 'CC="$CC" CFLAG="$CFLAGS" fgs && chmod -R go+rx *.pl train example'
+
+files_to_copy = ['FragGeneScan', 'run_FragGeneScan.pl', 'example', 'train']
+
+modextrapaths = {'PATH': ['']}
+
+sanity_check_paths = {
+ 'files': ['FragGeneScan', 'run_FragGeneScan.pl'],
+ 'dirs': ['example', 'train'],
+}
+
+sanity_check_commands = [
+ './run_FragGeneScan.pl help',
+ './run_FragGeneScan.pl -genome=./example/NC_000913.fna -out=./example/NC_000913-fgs -complete=1 -train=complete'
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/f/FragGeneScan/FragGeneScan-1.31-GCCcore-12.3.0.eb b/easybuild/easyconfigs/f/FragGeneScan/FragGeneScan-1.31-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..8466e596a3d
--- /dev/null
+++ b/easybuild/easyconfigs/f/FragGeneScan/FragGeneScan-1.31-GCCcore-12.3.0.eb
@@ -0,0 +1,38 @@
+easyblock = 'MakeCp'
+
+name = 'FragGeneScan'
+version = '1.31'
+
+homepage = 'https://omics.informatics.indiana.edu/FragGeneScan/'
+description = "FragGeneScan is an application for finding (fragmented) genes in short reads."
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = [SOURCEFORGE_SOURCE]
+sources = ['%(name)s%(version)s.tar.gz']
+checksums = ['cd3212d0f148218eb3b17d24fcd1fc897fb9fee9b2c902682edde29f895f426c']
+
+builddependencies = [('binutils', '2.40')]
+
+dependencies = [('Perl', '5.36.1')]
+
+fix_perl_shebang_for = ['*.pl']
+
+prebuildopts = "make clean && "
+buildopts = 'CC="$CC" CFLAG="$CFLAGS" fgs && chmod -R go+rx *.pl train example'
+
+files_to_copy = ['FragGeneScan', 'run_FragGeneScan.pl', 'example', 'train']
+
+modextrapaths = {'PATH': ['']}
+
+sanity_check_paths = {
+ 'files': ['FragGeneScan', 'run_FragGeneScan.pl'],
+ 'dirs': ['example', 'train'],
+}
+
+sanity_check_commands = [
+ "run_FragGeneScan.pl help",
+ "run_FragGeneScan.pl -genome=./example/NC_000913.fna -out=./example/NC_000913-fgs -complete=1 -train=complete",
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/f/FreeImage/FreeImage-3.18.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/f/FreeImage/FreeImage-3.18.0-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..3a9b6a21f3a
--- /dev/null
+++ b/easybuild/easyconfigs/f/FreeImage/FreeImage-3.18.0-GCCcore-12.3.0.eb
@@ -0,0 +1,43 @@
+easyblock = 'ConfigureMake'
+
+name = 'FreeImage'
+version = '3.18.0'
+
+homepage = 'http://freeimage.sourceforge.net'
+description = """FreeImage is an Open Source library project for developers who would like to support popular graphics
+image formats like PNG, BMP, JPEG, TIFF and others as needed by today's multimedia applications. FreeImage is easy to
+use, fast, multithreading safe."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+toolchainopts = {'cstd': 'c++14'}
+
+source_urls = [SOURCEFORGE_SOURCE]
+sources = ['%(name)s3180.zip']
+patches = ['%(name)s-%(version)s-fix-makefile.patch']
+checksums = [
+ 'f41379682f9ada94ea7b34fe86bf9ee00935a3147be41b6569c9605a53e438fd', # FreeImage3180.zip
+ '3eaa1eb9562ccfd0cb95a37879bb7e3e8c745166596d75af529478181ef006a0', # %(name)s-%(version)s-fix-makefile.patch
+]
+
+builddependencies = [('binutils', '2.40')]
+
+dependencies = [('zlib', '1.2.13')]
+
+skipsteps = ['configure']
+
+buildopts = ['', '-f Makefile.fip']
+
+installopts = [
+ "INCDIR=%(installdir)s/include INSTALLDIR=%(installdir)s/lib",
+ "-f Makefile.fip INCDIR=%(installdir)s/include INSTALLDIR=%(installdir)s/lib",
+]
+
+_incs = ['include/FreeImage%s.h' % x for x in ['', 'Plus']]
+_libs = ['lib/libfreeimage%s.%s' % (x, y) for x in ['', 'plus'] for y in ['a', SHLIB_EXT]]
+
+sanity_check_paths = {
+ 'files': _incs + _libs,
+ 'dirs': [],
+}
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/f/FriBidi/FriBidi-1.0.10-GCCcore-10.2.0.eb b/easybuild/easyconfigs/f/FriBidi/FriBidi-1.0.10-GCCcore-10.2.0.eb
index 40e6ff91575..c0dd7325a8b 100644
--- a/easybuild/easyconfigs/f/FriBidi/FriBidi-1.0.10-GCCcore-10.2.0.eb
+++ b/easybuild/easyconfigs/f/FriBidi/FriBidi-1.0.10-GCCcore-10.2.0.eb
@@ -23,8 +23,6 @@ builddependencies = [
('pkg-config', '0.29.2'),
]
-configopts = '--disable-docs'
-
sanity_check_paths = {
'files': ['bin/%(namelower)s', 'include/%(namelower)s/%(namelower)s.h',
'lib/lib%%(namelower)s.%s' % SHLIB_EXT],
diff --git a/easybuild/easyconfigs/f/FriBidi/FriBidi-1.0.10-GCCcore-10.3.0.eb b/easybuild/easyconfigs/f/FriBidi/FriBidi-1.0.10-GCCcore-10.3.0.eb
index a278d8bd820..5dd93a16d83 100644
--- a/easybuild/easyconfigs/f/FriBidi/FriBidi-1.0.10-GCCcore-10.3.0.eb
+++ b/easybuild/easyconfigs/f/FriBidi/FriBidi-1.0.10-GCCcore-10.3.0.eb
@@ -24,8 +24,6 @@ builddependencies = [
('pkg-config', '0.29.2'),
]
-configopts = '--disable-docs'
-
sanity_check_paths = {
'files': ['bin/%(namelower)s', 'include/%(namelower)s/%(namelower)s.h',
'lib/lib%%(namelower)s.%s' % SHLIB_EXT],
diff --git a/easybuild/easyconfigs/f/FriBidi/FriBidi-1.0.10-GCCcore-11.2.0.eb b/easybuild/easyconfigs/f/FriBidi/FriBidi-1.0.10-GCCcore-11.2.0.eb
index 4a4084cbfb1..89ac34d49c8 100644
--- a/easybuild/easyconfigs/f/FriBidi/FriBidi-1.0.10-GCCcore-11.2.0.eb
+++ b/easybuild/easyconfigs/f/FriBidi/FriBidi-1.0.10-GCCcore-11.2.0.eb
@@ -21,8 +21,6 @@ builddependencies = [
('pkg-config', '0.29.2'),
]
-configopts = '--disable-docs'
-
sanity_check_paths = {
'files': ['bin/%(namelower)s', 'include/%(namelower)s/%(namelower)s.h',
'lib/lib%%(namelower)s.%s' % SHLIB_EXT],
diff --git a/easybuild/easyconfigs/f/FriBidi/FriBidi-1.0.15-GCCcore-13.3.0.eb b/easybuild/easyconfigs/f/FriBidi/FriBidi-1.0.15-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..a31f21a37dd
--- /dev/null
+++ b/easybuild/easyconfigs/f/FriBidi/FriBidi-1.0.15-GCCcore-13.3.0.eb
@@ -0,0 +1,30 @@
+easyblock = 'ConfigureMake'
+
+name = 'FriBidi'
+version = '1.0.15'
+
+homepage = 'https://github.com/fribidi/fribidi'
+
+description = """
+ The Free Implementation of the Unicode Bidirectional Algorithm.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://github.com/fribidi/fribidi/releases/download/v%(version)s']
+sources = [SOURCELOWER_TAR_XZ]
+checksums = ['0bbc7ff633bfa208ae32d7e369cf5a7d20d5d2557a0b067c9aa98bcbf9967587']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('pkgconf', '2.2.0'),
+ ('Autotools', '20231222'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/%(namelower)s', 'include/%(namelower)s/%(namelower)s.h',
+ 'lib/lib%%(namelower)s.%s' % SHLIB_EXT],
+ 'dirs': []
+}
+
+moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/f/FriBidi/FriBidi-1.0.5-GCCcore-7.3.0.eb b/easybuild/easyconfigs/f/FriBidi/FriBidi-1.0.5-GCCcore-7.3.0.eb
index 5fd4aec115d..ee4077cbb69 100644
--- a/easybuild/easyconfigs/f/FriBidi/FriBidi-1.0.5-GCCcore-7.3.0.eb
+++ b/easybuild/easyconfigs/f/FriBidi/FriBidi-1.0.5-GCCcore-7.3.0.eb
@@ -24,8 +24,6 @@ builddependencies = [
('pkg-config', '0.29.2'),
]
-configopts = '--disable-docs'
-
sanity_check_paths = {
'files': ['bin/%(namelower)s', 'include/%(namelower)s/%(namelower)s.h',
'lib/lib%%(namelower)s.%s' % SHLIB_EXT],
diff --git a/easybuild/easyconfigs/f/FriBidi/FriBidi-1.0.5-GCCcore-8.2.0.eb b/easybuild/easyconfigs/f/FriBidi/FriBidi-1.0.5-GCCcore-8.2.0.eb
index 952a02c3f63..e33daa77d33 100644
--- a/easybuild/easyconfigs/f/FriBidi/FriBidi-1.0.5-GCCcore-8.2.0.eb
+++ b/easybuild/easyconfigs/f/FriBidi/FriBidi-1.0.5-GCCcore-8.2.0.eb
@@ -24,8 +24,6 @@ builddependencies = [
('pkg-config', '0.29.2'),
]
-configopts = '--disable-docs'
-
sanity_check_paths = {
'files': ['bin/%(namelower)s', 'include/%(namelower)s/%(namelower)s.h',
'lib/lib%%(namelower)s.%s' % SHLIB_EXT],
diff --git a/easybuild/easyconfigs/f/FriBidi/FriBidi-1.0.5-GCCcore-8.3.0.eb b/easybuild/easyconfigs/f/FriBidi/FriBidi-1.0.5-GCCcore-8.3.0.eb
index 6c4115fc4e1..213a98ebd30 100644
--- a/easybuild/easyconfigs/f/FriBidi/FriBidi-1.0.5-GCCcore-8.3.0.eb
+++ b/easybuild/easyconfigs/f/FriBidi/FriBidi-1.0.5-GCCcore-8.3.0.eb
@@ -23,8 +23,6 @@ builddependencies = [
('pkg-config', '0.29.2'),
]
-configopts = '--disable-docs'
-
sanity_check_paths = {
'files': ['bin/%(namelower)s', 'include/%(namelower)s/%(namelower)s.h',
'lib/lib%%(namelower)s.%s' % SHLIB_EXT],
diff --git a/easybuild/easyconfigs/f/FriBidi/FriBidi-1.0.9-GCCcore-9.3.0.eb b/easybuild/easyconfigs/f/FriBidi/FriBidi-1.0.9-GCCcore-9.3.0.eb
index cef1dc631bb..34132127d4a 100644
--- a/easybuild/easyconfigs/f/FriBidi/FriBidi-1.0.9-GCCcore-9.3.0.eb
+++ b/easybuild/easyconfigs/f/FriBidi/FriBidi-1.0.9-GCCcore-9.3.0.eb
@@ -23,8 +23,6 @@ builddependencies = [
('pkg-config', '0.29.2'),
]
-configopts = '--disable-docs'
-
sanity_check_paths = {
'files': ['bin/%(namelower)s', 'include/%(namelower)s/%(namelower)s.h',
'lib/lib%%(namelower)s.%s' % SHLIB_EXT],
diff --git a/easybuild/easyconfigs/f/f90wrap/f90wrap-0.2.13-foss-2023a.eb b/easybuild/easyconfigs/f/f90wrap/f90wrap-0.2.13-foss-2023a.eb
new file mode 100644
index 00000000000..153e5ca422f
--- /dev/null
+++ b/easybuild/easyconfigs/f/f90wrap/f90wrap-0.2.13-foss-2023a.eb
@@ -0,0 +1,44 @@
+easyblock = 'PythonPackage'
+
+name = 'f90wrap'
+version = '0.2.13'
+
+homepage = 'https://github.com/jameskermode/f90wrap'
+description = """f90wrap is a tool to automatically generate Python extension modules which
+interface to Fortran code that makes use of derived types. It builds on the
+capabilities of the popular f2py utility by generating a simpler Fortran 90
+interface to the original Fortran code which is then suitable for wrapping with
+f2py, together with a higher-level Pythonic wrapper that makes the existance of
+an additional layer transparent to the final user."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+sources = [SOURCE_TAR_GZ]
+patches = ['f90wrap-0.2.13_fix_old_typing.patch']
+checksums = [
+ {'f90wrap-0.2.13.tar.gz': 'a61b73bb1cf028db54ad4b0c48627080d88e14463803dd55713c70f3e88b911e'},
+ {'f90wrap-0.2.13_fix_old_typing.patch': 'e6fad329e4436b0ad2bd093d0a8dd22bf03fe6128dfe9e38d0db6bd0c2ed79e1'},
+]
+
+builddependencies = [
+ ('meson-python', '0.15.0')
+]
+dependencies = [
+ ('Python', '3.11.3'),
+ ("SciPy-bundle", "2023.07"),
+]
+
+download_dep_fail = True
+use_pip = True
+sanity_pip_check = True
+
+sanity_check_paths = {
+ 'files': ['bin/f2py-f90wrap', 'bin/f90doc', 'bin/f90wrap'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages/%(name)s'],
+}
+
+sanity_check_commands = [
+ ('f90wrap', '--help'),
+]
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/f/f90wrap/f90wrap-0.2.13_fix_old_typing.patch b/easybuild/easyconfigs/f/f90wrap/f90wrap-0.2.13_fix_old_typing.patch
new file mode 100644
index 00000000000..a232ec81e8f
--- /dev/null
+++ b/easybuild/easyconfigs/f/f90wrap/f90wrap-0.2.13_fix_old_typing.patch
@@ -0,0 +1,37 @@
+Fixed old numpy API usage in f90wrap. This has been fixed in commit 108f819 and version 0.2.14
+--- f90wrap/arraydatamodule.c.orig 2024-04-19 14:22:57.488265190 +0200
++++ f90wrap/arraydatamodule.c 2024-04-19 14:30:08.923493156 +0200
+@@ -59,13 +59,13 @@
+ /* Processing variable this */
+ this_Dims[0]=sizeof_fortran_t;
+ capi_this_intent |= F2PY_INTENT_IN;
+- capi_this_tmp = array_from_pyobj(PyArray_INT,this_Dims,this_Rank,capi_this_intent,this_capi);
++ capi_this_tmp = array_from_pyobj(NPY_INT,this_Dims,this_Rank,capi_this_intent,this_capi);
+ if (capi_this_tmp == NULL) {
+ if (!PyErr_Occurred())
+ PyErr_SetString(PyExc_TypeError,"failed in converting 1st argument `this' of get_array to C/Fortran array" );
+ goto fail;
+ } else {
+- this = (int *)(capi_this_tmp->data);
++ this = (int *)(PyArray_DATA(capi_this_tmp));
+ }
+
+ /* Processing variable arrayfunc */
+@@ -107,7 +107,7 @@
+ /* Construct array */
+ descr = PyArray_DescrNewFromType(typenum);
+ array = (PyArrayObject*) PyArray_NewFromDescr(&PyArray_Type, descr, nd, dimensions, NULL,
+- data, NPY_FORTRAN | NPY_WRITEABLE | NPY_ALIGNED, NULL);
++ data, NPY_ARRAY_F_CONTIGUOUS | NPY_ARRAY_WRITEABLE | NPY_ARRAY_ALIGNED, NULL);
+ free(dimensions);
+ if((PyObject *)capi_this_tmp!=this_capi) {
+ Py_XDECREF(capi_this_tmp);
+@@ -125,7 +125,7 @@
+
+ static PyMethodDef arraydata_methods[] = {
+ {"get_array", get_array, METH_VARARGS,
+- "Make an array from integer(sizeof_fortran_t) array containing reference to derived type object,\n and fortran array function.\n\get_array(sizeof_fortran_t, fpointer,array_fobj[,key]) -> array"},
++ "Make an array from integer(sizeof_fortran_t) array containing reference to derived type object,\n and fortran array function.\n\\get_array(sizeof_fortran_t, fpointer,array_fobj[,key]) -> array"},
+ {NULL, NULL}
+ };
+
diff --git a/easybuild/easyconfigs/f/face-recognition/face-recognition-1.3.0-foss-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/f/face-recognition/face-recognition-1.3.0-foss-2023a-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..d06d8172e1d
--- /dev/null
+++ b/easybuild/easyconfigs/f/face-recognition/face-recognition-1.3.0-foss-2023a-CUDA-12.1.1.eb
@@ -0,0 +1,45 @@
+easyblock = 'PythonBundle'
+
+name = 'face-recognition'
+version = '1.3.0'
+versionsuffix = '-CUDA-12.1.1'
+
+homepage = 'https://github.com/ageitgey/face_recognition'
+description = """Recognize and manipulate faces from Python or from the command line with
+ the world’s simplest face recognition library."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('Pillow', '10.0.0'),
+ ('dlib', '19.24.6', versionsuffix),
+]
+
+use_pip = True
+
+exts_list = [
+ ('face-recognition-models', '0.3.0', {
+ 'sources': ['face_recognition_models-%(version)s.tar.gz'],
+ 'checksums': ['b79bd200a88c87c9a9d446c990ae71c5a626d1f3730174e6d570157ff1d896cf'],
+ }),
+ (name, version, {
+ 'sources': ['face_recognition-%(version)s.tar.gz'],
+ 'checksums': ['5e5efdd1686aa566af0d3cc1313b131e4b197657a8ffd03669e6d3fad92705ec'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/face_detection', 'bin/face_recognition'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = [
+ "face_detection --help",
+ "face_recognition --help",
+]
+
+sanity_pip_check = True
+
+moduleclass = 'ai'
diff --git a/easybuild/easyconfigs/f/fastahack/fastahack-1.0.0-GCCcore-12.2.0.eb b/easybuild/easyconfigs/f/fastahack/fastahack-1.0.0-GCCcore-12.2.0.eb
new file mode 100644
index 00000000000..2d430c8a5f2
--- /dev/null
+++ b/easybuild/easyconfigs/f/fastahack/fastahack-1.0.0-GCCcore-12.2.0.eb
@@ -0,0 +1,36 @@
+# Updated: Denis Kristak (INUITS)
+# Updated: Petr Král (INUITS)
+
+easyblock = 'ConfigureMake'
+
+name = 'fastahack'
+version = '1.0.0'
+
+homepage = 'https://github.com/ekg/fastahack'
+description = """Utilities for indexing and sequence extraction from FASTA files."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.2.0'}
+
+github_account = 'ekg'
+source_urls = [GITHUB_SOURCE]
+sources = ['v%(version)s.tar.gz']
+patches = ['%(name)s-%(version)s_build-libs.patch']
+checksums = [
+ 'cc1c04729b0c8ba3647cbb7e15e2b490ce701d73773f30f5892d68c36a1dceae', # v1.0.0.tar.gz
+ '7f804486c6bafd9b1572cb5f86ff28dbebb4d6da551bde1091d6ff8f82748bf4', # fastahack-1.0.0_build-libs.patch
+]
+
+builddependencies = [('binutils', '2.39')]
+
+skipsteps = ['configure']
+
+installopts = 'PREFIX=%(installdir)s '
+
+sanity_check_paths = {
+ 'files': ['bin/%(name)s', 'lib/libfastahack.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+
+sanity_check_commands = ['%(name)s --help']
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/f/fastfilters/fastfilters-0.3-foss-2023a.eb b/easybuild/easyconfigs/f/fastfilters/fastfilters-0.3-foss-2023a.eb
new file mode 100644
index 00000000000..a9d67a03798
--- /dev/null
+++ b/easybuild/easyconfigs/f/fastfilters/fastfilters-0.3-foss-2023a.eb
@@ -0,0 +1,46 @@
+easyblock = 'CMakeMake'
+
+name = 'fastfilters'
+version = '0.3'
+
+homepage = 'https://github.com/ilastik/fastfilters/'
+description = """Fast gaussian and derivative convolutional filters."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'optarch': False}
+
+sources = [{
+ 'filename': 'v%(version)s.tar.gz',
+ 'git_config': {
+ 'url': 'https://github.com/ilastik',
+ 'repo_name': 'fastfilters',
+ 'tag': 'v%(version)s',
+ 'recursive': True,
+ 'keep_git_dir': True,
+ }
+}]
+checksums = [None]
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+]
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('SciPy-bundle', '2023.07'),
+ ('pybind11', '2.11.1'),
+]
+
+configopts = '-DFF_INSTALL_DIR="%(installdir)s/lib/python%(pyshortver)s/site-packages/" '
+configopts += '-DPYTHON_EXECUTABLE="$EBROOTPYTHON/bin/python"'
+
+sanity_check_paths = {
+ 'files': [],
+ 'dirs': ['lib', 'include'],
+}
+
+sanity_check_commands = ["python -c 'import fastfilters'"]
+
+modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/f/fastp/fastp-0.23.4-GCC-13.2.0.eb b/easybuild/easyconfigs/f/fastp/fastp-0.23.4-GCC-13.2.0.eb
new file mode 100644
index 00000000000..49b2a29c4f9
--- /dev/null
+++ b/easybuild/easyconfigs/f/fastp/fastp-0.23.4-GCC-13.2.0.eb
@@ -0,0 +1,38 @@
+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': '13.2.0'}
+
+github_account = 'OpenGene'
+source_urls = [GITHUB_SOURCE]
+sources = ['v%(version)s.tar.gz']
+checksums = ['4fad6db156e769d46071add8a778a13a5cb5186bc1e1a5f9b1ffd499d84d72b5']
+
+dependencies = [
+ ('zlib', '1.2.13'),
+ ('libdeflate', '1.19'),
+ ('ISA-L', '2.31.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/fastparquet/fastparquet-2023.4.0-gfbf-2022b.eb b/easybuild/easyconfigs/f/fastparquet/fastparquet-2023.4.0-gfbf-2022b.eb
index 2320c4b7539..95fbef237e5 100644
--- a/easybuild/easyconfigs/f/fastparquet/fastparquet-2023.4.0-gfbf-2022b.eb
+++ b/easybuild/easyconfigs/f/fastparquet/fastparquet-2023.4.0-gfbf-2022b.eb
@@ -1,4 +1,4 @@
-easyblock = 'PythonBundle'
+easyblock = 'CargoPythonBundle'
name = 'fastparquet'
version = '2023.4.0'
@@ -12,12 +12,77 @@ toolchain = {'name': 'gfbf', 'version': '2022b'}
builddependencies = [
('patchelf', '0.17.2'),
+ ('maturin', '1.1.0'), # for cramjam
]
dependencies = [
('Python', '3.10.8'),
('SciPy-bundle', '2023.02'),
- ('maturin', '1.1.0'),
+]
+
+crates = [
+ ('adler', '1.0.2'),
+ ('ahash', '0.7.6'),
+ ('alloc-no-stdlib', '2.0.4'),
+ ('alloc-stdlib', '0.2.2'),
+ ('autocfg', '1.1.0'),
+ ('bitflags', '1.3.2'),
+ ('brotli', '3.3.4'),
+ ('brotli-decompressor', '2.3.2'),
+ ('bzip2', '0.4.3'),
+ ('bzip2-sys', '0.1.11+1.0.8'),
+ ('cc', '1.0.73'),
+ ('cfg-if', '1.0.0'),
+ ('crc32fast', '1.3.2'),
+ ('flate2', '1.0.23'),
+ ('getrandom', '0.2.8'),
+ ('indoc', '1.0.6'),
+ ('jobserver', '0.1.24'),
+ ('libc', '0.2.126'),
+ ('libmimalloc-sys', '0.1.25'),
+ ('lock_api', '0.4.7'),
+ ('lz4', '1.23.3'),
+ ('lz4-sys', '1.9.4'),
+ ('matrixmultiply', '0.3.2'),
+ ('memoffset', '0.6.5'),
+ ('mimalloc', '0.1.29'),
+ ('miniz_oxide', '0.5.1'),
+ ('ndarray', '0.15.4'),
+ ('num-complex', '0.4.1'),
+ ('num-integer', '0.1.45'),
+ ('num-traits', '0.2.15'),
+ ('numpy', '0.17.2'),
+ ('once_cell', '1.10.0'),
+ ('parking_lot', '0.12.0'),
+ ('parking_lot_core', '0.9.3'),
+ ('pkg-config', '0.3.25'),
+ ('proc-macro2', '1.0.39'),
+ ('pyo3', '0.17.3'),
+ ('pyo3-build-config', '0.17.3'),
+ ('pyo3-ffi', '0.17.3'),
+ ('pyo3-macros', '0.17.3'),
+ ('pyo3-macros-backend', '0.17.3'),
+ ('quote', '1.0.18'),
+ ('rawpointer', '0.2.1'),
+ ('redox_syscall', '0.2.13'),
+ ('scopeguard', '1.1.0'),
+ ('smallvec', '1.8.0'),
+ ('snap', '1.0.5'),
+ ('syn', '1.0.95'),
+ ('target-lexicon', '0.12.3'),
+ ('unicode-ident', '1.0.0'),
+ ('unindent', '0.1.9'),
+ ('version_check', '0.9.4'),
+ ('wasi', '0.11.0+wasi-snapshot-preview1'),
+ ('windows-sys', '0.36.1'),
+ ('windows_aarch64_msvc', '0.36.1'),
+ ('windows_i686_gnu', '0.36.1'),
+ ('windows_i686_msvc', '0.36.1'),
+ ('windows_x86_64_gnu', '0.36.1'),
+ ('windows_x86_64_msvc', '0.36.1'),
+ ('zstd', '0.11.2+zstd.1.5.2'),
+ ('zstd-safe', '5.0.2+zstd.1.5.2'),
+ ('zstd-sys', '2.0.1+zstd.1.5.2'),
]
use_pip = True
diff --git a/easybuild/easyconfigs/f/festival/festival-2.5.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/f/festival/festival-2.5.0-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..ee472d99bd1
--- /dev/null
+++ b/easybuild/easyconfigs/f/festival/festival-2.5.0-GCCcore-12.3.0.eb
@@ -0,0 +1,139 @@
+easyblock = 'ConfigureMake'
+
+name = 'festival'
+version = '2.5.0'
+
+homepage = ['http://festvox.org/festival/']
+
+description = """
+University of Edinburgh's Festival Speech Synthesis Systems is a free software
+multi-lingual speech synthesis workbench that runs on multiple-platforms
+offering black box text to speech, as well as an open architecture for
+research in speech synthesis.
+It designed as a component of large speech technology systems.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = [
+ 'http://festvox.org/packed/festival/%(version_major_minor)s',
+ 'http://festvox.org/packed/festival/%(version_major_minor)s/voices',
+]
+sources = [{
+ 'filename': '%(name)s-%(version)s-release.tar.gz',
+ 'extract_cmd': 'tar xzf %s -C %(installdir)s --strip-components=1',
+}]
+local_sources = [
+ 'festlex_CMU.tar.gz',
+ 'festlex_OALD.tar.gz',
+ 'festlex_POSLEX.tar.gz',
+ 'festvox_cmu_indic_ben_rm_cg.tar.gz',
+ 'festvox_cmu_indic_guj_ad_cg.tar.gz',
+ 'festvox_cmu_indic_guj_dp_cg.tar.gz',
+ 'festvox_cmu_indic_guj_kt_cg.tar.gz',
+ 'festvox_cmu_indic_hin_ab_cg.tar.gz',
+ 'festvox_cmu_indic_kan_plv_cg.tar.gz',
+ 'festvox_cmu_indic_mar_aup_cg.tar.gz',
+ 'festvox_cmu_indic_mar_slp_cg.tar.gz',
+ 'festvox_cmu_indic_pan_amp_cg.tar.gz',
+ 'festvox_cmu_indic_tam_sdr_cg.tar.gz',
+ 'festvox_cmu_indic_tel_kpn_cg.tar.gz',
+ 'festvox_cmu_indic_tel_sk_cg.tar.gz',
+ 'festvox_cmu_indic_tel_ss_cg.tar.gz',
+ 'festvox_cmu_us_aew_cg.tar.gz',
+ 'festvox_cmu_us_ahw_cg.tar.gz',
+ 'festvox_cmu_us_aup_cg.tar.gz',
+ 'festvox_cmu_us_awb_cg.tar.gz',
+ 'festvox_cmu_us_axb_cg.tar.gz',
+ 'festvox_cmu_us_bdl_cg.tar.gz',
+ 'festvox_cmu_us_clb_cg.tar.gz',
+ 'festvox_cmu_us_eey_cg.tar.gz',
+ 'festvox_cmu_us_fem_cg.tar.gz',
+ 'festvox_cmu_us_gka_cg.tar.gz',
+ 'festvox_cmu_us_jmk_cg.tar.gz',
+ 'festvox_cmu_us_ksp_cg.tar.gz',
+ 'festvox_cmu_us_ljm_cg.tar.gz',
+ 'festvox_cmu_us_lnh_cg.tar.gz',
+ 'festvox_cmu_us_rms_cg.tar.gz',
+ 'festvox_cmu_us_rxr_cg.tar.gz',
+ 'festvox_cmu_us_slp_cg.tar.gz',
+ 'festvox_cmu_us_slt_cg.tar.gz',
+ 'festvox_kallpc16k.tar.gz',
+ 'festvox_rablpc16k.tar.gz',
+]
+for local_x in local_sources:
+ local_newfilename = local_x.split('.')
+ local_newfilename[0] = local_newfilename[0] + '-%(version)s'
+ sources.append({
+ 'download_filename': local_x,
+ 'filename': '.'.join(local_newfilename),
+ 'extract_cmd': 'tar xzf %s -C %(installdir)s --strip-components=1',
+ })
+
+patches = ['%(name)s-%(version)s_speech_tools.patch']
+checksums = [
+ '4c9007426b125290599d931df410e2def51e68a8aeebd89b4a61c7c96c09a4b4', # festival-2.5.0-release.tar.gz
+ 'c19430919bca45d5368cd4c82af6153fbcc96a487ebd30b78b5f3c08718b7c07', # festlex_CMU.tar.gz
+ 'e33a345390d4c76f8b987b06a5332bcdd0b168cf67c95ddc3270f9163cbe61f8', # festlex_OALD.tar.gz
+ 'e7c6e3642dbd5b0d64942bc015a986fdd6244a79e51ec2e8309e63d569e49ea3', # festlex_POSLEX.tar.gz
+ '56e2144d5eed6c89a451789ef7f37346dd351efdbb86a0fa650432a19b07367f', # festvox_cmu_indic_ben_rm_cg.tar.gz
+ '4a0ac2d1b15cd41108be803e23f11911be953b50733848a8e67428c642e02ba9', # festvox_cmu_indic_guj_ad_cg.tar.gz
+ '1a4e17d67db50a6d81f7860b64acc8d41245f6f763ccff4c9386ab9ae9923910', # festvox_cmu_indic_guj_dp_cg.tar.gz
+ '666017d8d64737c4fd70b72ab6cf846fd8e13de290a5ba494bd1697249a16e9d', # festvox_cmu_indic_guj_kt_cg.tar.gz
+ '60318e160d994d5174168cc94467c776de81426f91c4f8003206cff953cb79bd', # festvox_cmu_indic_hin_ab_cg.tar.gz
+ 'd87f4ea342e7cb37e90ddf49dde37f19c1470b3c5a09d00cef3212108107cb31', # festvox_cmu_indic_kan_plv_cg.tar.gz
+ '0c7509203483fc97c04b670127b20c2d51723b3a16517124e22d095f379cca7f', # festvox_cmu_indic_mar_aup_cg.tar.gz
+ 'f3be7241d35db1e18d652e2cfa4cb69bae038c3d21c59ed3ce365487894f0d46', # festvox_cmu_indic_mar_slp_cg.tar.gz
+ 'f1e9238c6b8646a2a252ab855f5773c8ebdf8b3df909e0bbe4a99d7b830a4f3e', # festvox_cmu_indic_pan_amp_cg.tar.gz
+ '9a4c088ce3bdbf17867d5df918fc3868597061380ae8daf896ce99d33723e570', # festvox_cmu_indic_tam_sdr_cg.tar.gz
+ '43ad700a82a270530dda44fd4a89b34429c37723cdde130faece4811723ff72b', # festvox_cmu_indic_tel_kpn_cg.tar.gz
+ '0ee102e8093a549171f5e4ff826ebf3f9eaf84e7d43259777e38cafe4c4b6eea', # festvox_cmu_indic_tel_sk_cg.tar.gz
+ 'b2e56ca4722e3d025d831fd1eef679ffbf00fe165b68a44a5596321411ffa1f0', # festvox_cmu_indic_tel_ss_cg.tar.gz
+ '5d9555580b95324fa734b7771c95dced44e7903510358481d24e4fe5c961111c', # festvox_cmu_us_aew_cg.tar.gz
+ '906492478bd86b5201f72ffe701279b98b3ba94ae74816a0d7f2ba20bc2b5bf7', # festvox_cmu_us_ahw_cg.tar.gz
+ '455476e1c5246d90aac090a06afa5a4e90c801aebace6fe357900c8e095be826', # festvox_cmu_us_aup_cg.tar.gz
+ 'b2adbdfeda0cba289bb4da68dd14114d3eb3e7f72049cc8d2cbdfb2df39f6934', # festvox_cmu_us_awb_cg.tar.gz
+ '172c826df9c8f49ecb03f997749b207a23de8678dcf13706709104c2c597ebfb', # festvox_cmu_us_axb_cg.tar.gz
+ '1dc6792af9e2c1660a46fe499aa67af4affa665a0bdc08207cc11719baa62f6d', # festvox_cmu_us_bdl_cg.tar.gz
+ '11c82d1c18ce3db6fb11ca788cc5d84f69f9346aff77c7495f50005d6b042148', # festvox_cmu_us_clb_cg.tar.gz
+ 'af8590f7c1ba7d5dba22ff52c30a7bb3f55592eabca9615cd712fa4da8f83e13', # festvox_cmu_us_eey_cg.tar.gz
+ 'f8788c2af4838bb90e0a859f38da66c95961bdff2572001d5a019a2127c74306', # festvox_cmu_us_fem_cg.tar.gz
+ '47cf21a96adfcad398bd28b4d2548493a2055f75e53cf71344eef3aebc03ab59', # festvox_cmu_us_gka_cg.tar.gz
+ '711db388bc500331cfda86a46a72193ca1e2c9dc7d5ef16dfc86827e499946f2', # festvox_cmu_us_jmk_cg.tar.gz
+ '3b8098ac30995ce245d518c5b8fee825917428cb3ebe0409a0b415c919bdd35f', # festvox_cmu_us_ksp_cg.tar.gz
+ 'aec062c3d0c30719dd7e3e9ee4c427cbaad5e47550e28af2e9f151a41dcad852', # festvox_cmu_us_ljm_cg.tar.gz
+ 'ece81f42379feba4c392ad723fb68374aff9cd78f57cf629f624b0bd0c928d08', # festvox_cmu_us_lnh_cg.tar.gz
+ '3167afa3a6ffb5bbc305c94a1e6b671e40783a87a49372fce04c54942872c421', # festvox_cmu_us_rms_cg.tar.gz
+ 'bf362b6f270b1a4c76be981c3e8bd862fbb17a64e971e5b4a84d970ed5ecec42', # festvox_cmu_us_rxr_cg.tar.gz
+ 'f1d8e601c9631dfb7f8bd05c341d9fce8899dc9547ed9a652c8ded6ab854de9a', # festvox_cmu_us_slp_cg.tar.gz
+ '78cb93e361ab016fd23833c56853ddf21e2f1356310f54eed1c09a9755ce9f43', # festvox_cmu_us_slt_cg.tar.gz
+ '809c4ab5ed9e4df4a658b58d5c56fe35055723f00d81a238168f5a1ebdaed08c', # festvox_kallpc16k.tar.gz
+ 'ecd14b77c528e94dfb076e44050102fe8fba57e5fe813acf78a66629317f52a5', # festvox_rablpc16k.tar.gz
+ '0716ea33c8eccee435ab08464657af2ec2b64cf02409cddb868f8ad869e7e172', # festival-2.5.0_speech_tools.patch
+]
+
+builddependencies = [('binutils', '2.40')]
+
+dependencies = [
+ ('speech_tools', '2.5.0'),
+]
+
+# LIBS environmental variable interfers $EBROOTSPEECH_TOOLS/libs/Makefile
+# line 61: LIBS_ABS=$(subst $(TOP),$$(EST_HOME),$(LIBS))
+prebuildopts = 'unset LIBS &&'
+
+buildininstalldir = True
+
+maxparallel = 1
+
+runtest = 'test'
+
+sanity_check_paths = {
+ 'files': ['bin/festival%s' % x for x in ['', '_client']] +
+ ['lib/%s.scm' % x for x in ['siod', 'web', 'cstr', 'fringe']],
+ 'dirs': ['lib/voices', 'lib/dicts/cmu', 'lib/dicts/oald']
+}
+
+sanity_check_commands = ['festival%s --version' % x for x in ['', '_client']]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/f/ffnvcodec/ffnvcodec-12.2.72.0.eb b/easybuild/easyconfigs/f/ffnvcodec/ffnvcodec-12.2.72.0.eb
new file mode 100644
index 00000000000..cc4461c3a8b
--- /dev/null
+++ b/easybuild/easyconfigs/f/ffnvcodec/ffnvcodec-12.2.72.0.eb
@@ -0,0 +1,32 @@
+easyblock = 'ConfigureMake'
+
+name = 'ffnvcodec'
+version = '12.2.72.0'
+
+homepage = 'https://git.videolan.org/?p=ffmpeg/nv-codec-headers.git'
+
+description = """FFmpeg nvidia headers. Adds support for nvenc and nvdec. Requires Nvidia GPU and drivers to be present
+(picked up dynamically)."""
+
+toolchain = SYSTEM
+
+sources = [{
+ 'git_config': {
+ 'url': 'https://git.videolan.org/git/ffmpeg/',
+ 'repo_name': 'nv-codec-headers',
+ 'tag': 'n%(version)s',
+ },
+ 'filename': SOURCE_TAR_GZ,
+}]
+checksums = [None]
+
+skipsteps = ['configure']
+
+preinstallopts = 'sed -i "s|PREFIX =.*|PREFIX ?= %(installdir)s|" Makefile && '
+
+sanity_check_paths = {
+ 'files': ['include/ffnvcodec/nvEncodeAPI.h', 'lib/pkgconfig/ffnvcodec.pc'],
+ 'dirs': [],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/f/fgbio/fgbio-1.3.0.eb b/easybuild/easyconfigs/f/fgbio/fgbio-1.3.0.eb
index cd6783ca518..b6d55a922a0 100644
--- a/easybuild/easyconfigs/f/fgbio/fgbio-1.3.0.eb
+++ b/easybuild/easyconfigs/f/fgbio/fgbio-1.3.0.eb
@@ -22,21 +22,21 @@ cmds_map = [(
'.*',
'sed -i \'s/scala.sys.process.Process("git rev-parse --short HEAD").lineStream.head/"%(version)s"/\' version.sbt'
' && sbt --sbt-dir "$TMPDIR/sbt" assembly --ivy "$TMPDIR/ivy2"'
- ' && echo -e \'#!/bin/bash\\ncd $(dirname $0) && exec java -jar ../lib/fgbio-%(version)s.jar "$@"\' >> fbgio'
- ' && chmod +x fbgio'
+ ' && echo -e \'#!/bin/bash\\nexec java -jar "${EBROOTFGBIO}/lib/%(name)s-%(version)s.jar" "$@"\' >> %(name)s'
+ ' && chmod +x %(name)s'
)]
files_to_copy = [
- (['fbgio'], 'bin'),
- (['target/scala-*/fgbio-%(version)s.jar'], 'lib'),
+ (['%(name)s'], 'bin'),
+ (['target/scala-*/%(name)s-%(version)s.jar'], 'lib'),
]
sanity_check_paths = {
- 'files': ['bin/fbgio', 'lib/fgbio-%(version)s.jar'],
+ 'files': ['bin/%(name)s', 'lib/%(name)s-%(version)s.jar'],
'dirs': [],
}
# --help, --version, ... all exit with status code one, so we need to check the output
-sanity_check_commands = ['fbgio --help 2>&1 | grep -q Version']
+sanity_check_commands = ['%(name)s --help 2>&1 | grep -q Version']
moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/f/fgbio/fgbio-2.2.1-Java-8.eb b/easybuild/easyconfigs/f/fgbio/fgbio-2.2.1-Java-8.eb
new file mode 100644
index 00000000000..56e28293e92
--- /dev/null
+++ b/easybuild/easyconfigs/f/fgbio/fgbio-2.2.1-Java-8.eb
@@ -0,0 +1,43 @@
+easyblock = 'CmdCp'
+
+name = 'fgbio'
+version = '2.2.1'
+versionsuffix = '-Java-%(javaver)s'
+
+homepage = 'https://fulcrumgenomics.github.io/fgbio'
+description = "A set of tools to analyze genomic data with a focus on Next Generation Sequencing."
+
+toolchain = SYSTEM
+
+source_urls = ['https://github.com/fulcrumgenomics/fgbio/archive/']
+sources = ['%(version)s.zip']
+checksums = ['0810b10365f501bcba1e00e02bd4543270bc8eb8bfb18cca07e89bafedbc2a79']
+
+builddependencies = [
+ ('sbt', '1.3.13', versionsuffix),
+]
+
+dependencies = [('Java', '8')]
+
+cmds_map = [(
+ '.*',
+ 'sed -i \'s/scala.sys.process.Process("git rev-parse --short HEAD").lineStream.head/"%(version)s"/\' version.sbt'
+ ' && sbt --sbt-dir "$TMPDIR/sbt" assembly --ivy "$TMPDIR/ivy2"'
+ ' && echo -e \'#!/bin/bash\\nexec java -jar "${EBROOTFGBIO}/lib/%(name)s-%(version)s.jar" "$@"\' >> %(name)s'
+ ' && chmod +x %(name)s'
+)]
+
+files_to_copy = [
+ (['%(name)s'], 'bin'),
+ (['target/scala-*/%(name)s-%(version)s.jar'], 'lib'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/%(name)s', 'lib/%(name)s-%(version)s.jar'],
+ 'dirs': [],
+}
+
+# --help, --version, ... all exit with status code one, so we need to check the output
+sanity_check_commands = ['%(name)s --help 2>&1 | grep -q Version']
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/f/file/file-5.43-GCCcore-12.2.0.eb b/easybuild/easyconfigs/f/file/file-5.43-GCCcore-12.2.0.eb
new file mode 100644
index 00000000000..b02ba70dd64
--- /dev/null
+++ b/easybuild/easyconfigs/f/file/file-5.43-GCCcore-12.2.0.eb
@@ -0,0 +1,28 @@
+easyblock = 'ConfigureMake'
+
+name = 'file'
+version = '5.43'
+
+homepage = 'https://www.darwinsys.com/file/'
+description = """The file command is 'a file type guesser', that is, a command-line tool
+ that tells you in words what kind of data a file contains."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.2.0'}
+
+source_urls = ['ftp://ftp.astron.com/pub/file/']
+sources = [SOURCE_TAR_GZ]
+checksums = ['8c8015e91ae0e8d0321d94c78239892ef9dbc70c4ade0008c0e95894abfb1991']
+
+builddependencies = [
+ ('Autotools', '20220317'),
+ ('binutils', '2.39'),
+]
+
+preconfigopts = "autoreconf -f -i && "
+
+sanity_check_paths = {
+ 'files': ['bin/file', 'include/magic.h', 'lib/libmagic.%s' % SHLIB_EXT],
+ 'dirs': ['share']
+}
+
+moduleclass = 'system'
diff --git a/easybuild/easyconfigs/f/file/file-5.43-GCCcore-12.3.0.eb b/easybuild/easyconfigs/f/file/file-5.43-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..9c5e6cc3591
--- /dev/null
+++ b/easybuild/easyconfigs/f/file/file-5.43-GCCcore-12.3.0.eb
@@ -0,0 +1,28 @@
+easyblock = 'ConfigureMake'
+
+name = 'file'
+version = '5.43'
+
+homepage = 'https://www.darwinsys.com/file/'
+description = """The file command is 'a file type guesser', that is, a command-line tool
+ that tells you in words what kind of data a file contains."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = ['ftp://ftp.astron.com/pub/file/']
+sources = [SOURCE_TAR_GZ]
+checksums = ['8c8015e91ae0e8d0321d94c78239892ef9dbc70c4ade0008c0e95894abfb1991']
+
+builddependencies = [
+ ('Autotools', '20220317'),
+ ('binutils', '2.40'),
+]
+
+preconfigopts = "autoreconf -f -i && "
+
+sanity_check_paths = {
+ 'files': ['bin/file', 'include/magic.h', 'lib/libmagic.%s' % SHLIB_EXT],
+ 'dirs': ['share']
+}
+
+moduleclass = 'system'
diff --git a/easybuild/easyconfigs/f/file/file-5.43-GCCcore-13.2.0.eb b/easybuild/easyconfigs/f/file/file-5.43-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..dcd8b7cbfa0
--- /dev/null
+++ b/easybuild/easyconfigs/f/file/file-5.43-GCCcore-13.2.0.eb
@@ -0,0 +1,30 @@
+easyblock = 'ConfigureMake'
+
+name = 'file'
+version = '5.43'
+
+homepage = 'https://www.darwinsys.com/file/'
+description = """The file command is 'a file type guesser', that is, a command-line tool
+ that tells you in words what kind of data a file contains."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+source_urls = ['ftp://ftp.astron.com/pub/file/']
+sources = [SOURCE_TAR_GZ]
+checksums = ['8c8015e91ae0e8d0321d94c78239892ef9dbc70c4ade0008c0e95894abfb1991']
+
+builddependencies = [
+ ('Autotools', '20220317'),
+ ('binutils', '2.40'),
+]
+
+preconfigopts = "autoreconf -f -i && "
+
+sanity_check_paths = {
+ 'files': ['bin/file', 'include/magic.h', 'lib/libmagic.%s' % SHLIB_EXT],
+ 'dirs': ['share']
+}
+
+sanity_check_commands = ['%(name)s --help']
+
+moduleclass = 'system'
diff --git a/easybuild/easyconfigs/f/filevercmp/filevercmp-20191210-GCCcore-12.2.0.eb b/easybuild/easyconfigs/f/filevercmp/filevercmp-20191210-GCCcore-12.2.0.eb
new file mode 100644
index 00000000000..f9acad2dfe3
--- /dev/null
+++ b/easybuild/easyconfigs/f/filevercmp/filevercmp-20191210-GCCcore-12.2.0.eb
@@ -0,0 +1,37 @@
+# Updated: Denis Kristak (INUITS)
+# Updated: Petr Král (INUITS)
+
+easyblock = 'ConfigureMake'
+
+name = 'filevercmp'
+version = '20191210'
+local_commit = 'df20dcc'
+
+homepage = 'https://github.com/ekg/filevercmp'
+description = """filevercmp function as in sort --version-sort."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.2.0'}
+
+github_account = 'ekg'
+source_urls = [GITHUB_SOURCE]
+sources = ['%s.tar.gz' % local_commit]
+patches = ['%(name)s-%(version)s_build-libs.patch']
+checksums = [
+ '89835829a7829f7a25783b2cf9d482f1e3c794703343c9214c15c66a8c7f4aae', # df20dcc.tar.gz
+ '051438f76dd04219abfb283f61101c04d748407031e180b7ae3841344416ec4f', # filevercmp-20191210_build-libs.patch
+]
+
+builddependencies = [('binutils', '2.39')]
+
+skipsteps = ['configure']
+
+installopts = 'DESTDIR="" PREFIX=%(installdir)s '
+
+sanity_check_paths = {
+ 'files': ['bin/%(name)s', 'lib/libfilevercmp.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+
+sanity_check_commands = ['%(name)s abca bcac']
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/f/fineRADstructure/fineRADstructure-20210514-GCC-12.3.0.eb b/easybuild/easyconfigs/f/fineRADstructure/fineRADstructure-20210514-GCC-12.3.0.eb
new file mode 100644
index 00000000000..77c8fd539f6
--- /dev/null
+++ b/easybuild/easyconfigs/f/fineRADstructure/fineRADstructure-20210514-GCC-12.3.0.eb
@@ -0,0 +1,27 @@
+easyblock = 'ConfigureMake'
+
+name = 'fineRADstructure'
+version = '20210514'
+
+homepage = 'http://cichlid.gurdon.cam.ac.uk/fineRADstructure.html'
+description = "A package for population structure inference from RAD-seq data"
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+
+source_urls = ['https://github.com/millanek/fineRADstructure/archive/']
+sources = [{'download_filename': '5896b9e.tar.gz', 'filename': SOURCE_TAR_GZ}]
+checksums = ['4f22232bb79dd7b589a1c8a389d7cca23372ea52f55205392ce9ce8f80aea5b2']
+
+dependencies = [
+ ('GSL', '2.7'),
+]
+
+
+_bins = ['finestructure', 'RADpainter']
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in _bins],
+ 'dirs': [],
+}
+sanity_check_commands = ["%s -h" % x for x in _bins]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/f/fio/fio-3.36-GCCcore-12.3.0.eb b/easybuild/easyconfigs/f/fio/fio-3.36-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..b8f16f6e6be
--- /dev/null
+++ b/easybuild/easyconfigs/f/fio/fio-3.36-GCCcore-12.3.0.eb
@@ -0,0 +1,28 @@
+easyblock = 'ConfigureMake'
+
+name = 'fio'
+version = '3.36'
+
+homepage = 'https://github.com/axboe/fio'
+docurls = 'https://fio.readthedocs.io/en/latest/index.html'
+description = 'Flexible I/O tester'
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+github_account = 'axboe'
+source_urls = [GITHUB_SOURCE]
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['b34b8f3c5cd074c09ea487ffe3f444e95565c214b34a73042f35b00cbaab0e17']
+
+builddependencies = [
+ ('binutils', '2.40'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/fio'],
+ 'dirs': ['bin', 'man', 'share'],
+}
+
+sanity_check_commands = ['fio -h']
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/f/fish/fish-3.7.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/f/fish/fish-3.7.1-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..0c7e084ac23
--- /dev/null
+++ b/easybuild/easyconfigs/f/fish/fish-3.7.1-GCCcore-13.3.0.eb
@@ -0,0 +1,36 @@
+easyblock = 'CMakeMake'
+
+name = 'fish'
+
+version = '3.7.1'
+
+homepage = 'https://fishshell.com/'
+description = """
+fish is a smart and user-friendly command line shell for Linux, macOS, and the rest of the family.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://github.com/fish-shell/fish-shell/releases/download/%(version)s/']
+sources = [SOURCELOWER_TAR_XZ]
+checksums = ['614c9f5643cd0799df391395fa6bbc3649427bb839722ce3b114d3bbc1a3b250']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('CMake', '3.29.3')
+]
+
+dependencies = [
+ ('ncurses', '6.5'),
+]
+
+configopts = '-DBUILD_DOCS=off '
+
+sanity_check_paths = {
+ 'files': ['bin/fish'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ['fish --version']
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/f/flash-attention/flash-attention-2.6.3-foss-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/f/flash-attention/flash-attention-2.6.3-foss-2023a-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..754eef2c70e
--- /dev/null
+++ b/easybuild/easyconfigs/f/flash-attention/flash-attention-2.6.3-foss-2023a-CUDA-12.1.1.eb
@@ -0,0 +1,41 @@
+easyblock = 'PythonBundle'
+
+name = 'flash-attention'
+version = '2.6.3'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://github.com/Dao-AILab/flash-attention'
+description = """Fast and memory-efficient exact attention."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+builddependencies = [('Ninja', '1.11.1')]
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('CUDA', '12.1.1', '', SYSTEM),
+ ('PyTorch-bundle', '2.1.2', versionsuffix),
+ ('einops', '0.7.0'),
+ ('CUTLASS', '3.4.0', versionsuffix),
+]
+
+sanity_pip_check = True
+use_pip = True
+
+exts_list = [
+ (name, version, {
+ 'modulename': 'flash_attn',
+ # solves Invalid cross-device link error
+ # https://github.com/Dao-AILab/flash-attention/issues/875
+ 'preinstallopts': "sed -i 's/os.rename/shutil.move/' setup.py && ",
+ 'source_urls': ['https://github.com/Dao-AILab/flash-attention/archive/'],
+ 'sources': ['v%(version)s.tar.gz'],
+ 'checksums': ['136e149165d4c8c67273d16daa957b5cd5e6fc629061ffd39fa5a25224454d6c'],
+ }),
+]
+
+sanity_check_commands = [
+ "python -c 'from flash_attn import flash_attn_qkvpacked_func, flash_attn_func'",
+]
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/f/flatbuffers-python/flatbuffers-python-24.3.25-GCCcore-13.3.0.eb b/easybuild/easyconfigs/f/flatbuffers-python/flatbuffers-python-24.3.25-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..6e3bd315965
--- /dev/null
+++ b/easybuild/easyconfigs/f/flatbuffers-python/flatbuffers-python-24.3.25-GCCcore-13.3.0.eb
@@ -0,0 +1,27 @@
+easyblock = 'PythonPackage'
+
+name = 'flatbuffers-python'
+version = '24.3.25'
+
+homepage = 'https://github.com/google/flatbuffers/'
+description = """Python Flatbuffers runtime library."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://pypi.python.org/packages/source/f/flatbuffers']
+sources = [{'download_filename': 'flatbuffers-%(version)s.tar.gz', 'filename': SOURCE_TAR_GZ}]
+checksums = ['de2ec5b203f21441716617f38443e0a8ebf3d25bf0d9c0bb0ce68fa00ad546a4']
+
+dependencies = [
+ ('binutils', '2.42'),
+ ('Python', '3.12.3'),
+]
+
+download_dep_fail = True
+use_pip = True
+sanity_pip_check = True
+
+preinstallopts = 'VERSION=%(version)s '
+options = {'modulename': 'flatbuffers'}
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/f/flatbuffers/flatbuffers-24.3.25-GCCcore-13.3.0.eb b/easybuild/easyconfigs/f/flatbuffers/flatbuffers-24.3.25-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..42c0b9a28f1
--- /dev/null
+++ b/easybuild/easyconfigs/f/flatbuffers/flatbuffers-24.3.25-GCCcore-13.3.0.eb
@@ -0,0 +1,33 @@
+##
+# Author: Robert Mijakovic
+##
+easyblock = 'CMakeNinja'
+
+name = 'flatbuffers'
+version = '24.3.25'
+
+homepage = 'https://github.com/google/flatbuffers/'
+description = """FlatBuffers: Memory Efficient Serialization Library"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/google/flatbuffers/archive/v%(version)s/']
+sources = [SOURCE_TAR_GZ]
+checksums = ['4157c5cacdb59737c5d627e47ac26b140e9ee28b1102f812b36068aab728c1ed']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('CMake', '3.29.3'),
+ ('Ninja', '1.12.1'),
+ ('Python', '3.12.3'),
+]
+
+configopts = '-DFLATBUFFERS_ENABLE_PCH=ON '
+
+sanity_check_paths = {
+ 'files': ['include/flatbuffers/flatbuffers.h', 'bin/flatc', 'lib/libflatbuffers.a'],
+ 'dirs': ['lib/cmake'],
+}
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/f/flex/flex-2.6.4-GCCcore-13.3.0.eb b/easybuild/easyconfigs/f/flex/flex-2.6.4-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..dda9307eaea
--- /dev/null
+++ b/easybuild/easyconfigs/f/flex/flex-2.6.4-GCCcore-13.3.0.eb
@@ -0,0 +1,34 @@
+name = 'flex'
+version = '2.6.4'
+
+homepage = 'https://github.com/westes/flex'
+
+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': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/westes/flex/releases/download/v%(version)s/']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['e87aae032bf07c26f85ac0ed3250998c37621d95f8bd748b31f15b33c45ee995']
+
+builddependencies = [
+ ('Bison', '3.8.2'),
+ ('help2man', '1.49.3'),
+ # use same binutils version that was used when building GCC toolchain
+ ('binutils', '2.42', '', 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/flex/flex-2.6.4-GCCcore-14.1.0.eb b/easybuild/easyconfigs/f/flex/flex-2.6.4-GCCcore-14.1.0.eb
new file mode 100644
index 00000000000..fc4217d30c2
--- /dev/null
+++ b/easybuild/easyconfigs/f/flex/flex-2.6.4-GCCcore-14.1.0.eb
@@ -0,0 +1,34 @@
+name = 'flex'
+version = '2.6.4'
+
+homepage = 'https://github.com/westes/flex'
+
+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': '14.1.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/westes/flex/releases/download/v%(version)s/']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['e87aae032bf07c26f85ac0ed3250998c37621d95f8bd748b31f15b33c45ee995']
+
+builddependencies = [
+ ('Bison', '3.8.2'),
+ ('help2man', '1.49.3'),
+ # use same binutils version that was used when building GCC toolchain
+ ('binutils', '2.42', '', 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/flex/flex-2.6.4-GCCcore-14.2.0.eb b/easybuild/easyconfigs/f/flex/flex-2.6.4-GCCcore-14.2.0.eb
new file mode 100644
index 00000000000..d91f13aa5d0
--- /dev/null
+++ b/easybuild/easyconfigs/f/flex/flex-2.6.4-GCCcore-14.2.0.eb
@@ -0,0 +1,34 @@
+name = 'flex'
+version = '2.6.4'
+
+homepage = 'https://github.com/westes/flex'
+
+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': '14.2.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.42', '', 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/flit/flit-3.9.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/f/flit/flit-3.9.0-GCCcore-12.3.0.eb
index 15b9ad83d78..a19ba324250 100644
--- a/easybuild/easyconfigs/f/flit/flit-3.9.0-GCCcore-12.3.0.eb
+++ b/easybuild/easyconfigs/f/flit/flit-3.9.0-GCCcore-12.3.0.eb
@@ -17,11 +17,8 @@ dependencies = [
('Python', '3.11.3'),
]
-exts_default_options = {
- 'download_dep_fail': True,
- 'sanity_pip_check': True,
- 'use_pip': True,
-}
+sanity_pip_check = True
+use_pip = True
exts_list = [
('idna', '3.4', {
diff --git a/easybuild/easyconfigs/f/flit/flit-3.9.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/f/flit/flit-3.9.0-GCCcore-13.2.0.eb
index 79b1a625e7e..9ef1de6c8b7 100644
--- a/easybuild/easyconfigs/f/flit/flit-3.9.0-GCCcore-13.2.0.eb
+++ b/easybuild/easyconfigs/f/flit/flit-3.9.0-GCCcore-13.2.0.eb
@@ -18,11 +18,8 @@ dependencies = [
('Python', '3.11.5'),
]
-exts_default_options = {
- 'download_dep_fail': True,
- 'sanity_pip_check': True,
- 'use_pip': True,
-}
+sanity_pip_check = True
+use_pip = True
exts_list = [
('idna', '3.4', {
diff --git a/easybuild/easyconfigs/f/flit/flit-3.9.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/f/flit/flit-3.9.0-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..650b15edaa5
--- /dev/null
+++ b/easybuild/easyconfigs/f/flit/flit-3.9.0-GCCcore-13.3.0.eb
@@ -0,0 +1,72 @@
+easyblock = 'PythonBundle'
+
+name = 'flit'
+version = '3.9.0'
+
+homepage = 'https://github.com/pypa/flit'
+description = "A simple packaging tool for simple packages."
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('hatchling', '1.24.2'),
+]
+
+dependencies = [
+ ('Python', '3.12.3'),
+]
+
+sanity_pip_check = True
+use_pip = True
+
+exts_list = [
+ ('idna', '3.7', {
+ 'checksums': ['028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc'],
+ }),
+ ('certifi', '2024.6.2', {
+ 'checksums': ['3cd43f1c6fa7dedc5899d69d3ad0398fd018ad1a17fba83ddaf78aa46c747516'],
+ }),
+ ('urllib3', '2.2.1', {
+ 'checksums': ['d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19'],
+ }),
+ ('charset-normalizer', '3.3.2', {
+ 'checksums': ['f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5'],
+ }),
+ ('packaging', '24.1', {
+ 'checksums': ['026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002'],
+ }),
+ ('setuptools-scm', '8.1.0', {
+ 'sources': ['setuptools_scm-%(version)s.tar.gz'],
+ 'checksums': ['42dea1b65771cba93b7a515d65a65d8246e560768a66b9106a592c8e7f26c8a7'],
+ }),
+ ('typing-extensions', '4.12.2', {
+ 'sources': ['typing_extensions-%(version)s.tar.gz'],
+ 'checksums': ['1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8'],
+ }),
+ ('flit-scm', '1.7.0', {
+ 'sources': ['flit_scm-%(version)s.tar.gz'],
+ 'checksums': ['961bd6fb24f31bba75333c234145fff88e6de0a90fc0f7e5e7c79deca69f6bb2'],
+ }),
+ ('requests', '2.32.3', {
+ 'checksums': ['55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760'],
+ }),
+ ('docutils', '0.21.2', {
+ 'checksums': ['3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f'],
+ }),
+ ('tomli-w', '1.0.0', {
+ 'sources': ['tomli_w-%(version)s.tar.gz'],
+ 'checksums': ['f463434305e0336248cac9c2dc8076b707d8a12d019dd349f5c1e382dd1ae1b9'],
+ }),
+ (name, version, {
+ 'checksums': ['d75edf5eb324da20d53570a6a6f87f51e606eee8384925cd66a90611140844c7'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/%(namelower)s'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages/%(namelower)s'],
+}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/f/fmt/fmt-10.2.1-GCCcore-13.2.0.eb b/easybuild/easyconfigs/f/fmt/fmt-10.2.1-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..45cfe72e73f
--- /dev/null
+++ b/easybuild/easyconfigs/f/fmt/fmt-10.2.1-GCCcore-13.2.0.eb
@@ -0,0 +1,27 @@
+easyblock = 'CMakeMake'
+
+name = 'fmt'
+version = '10.2.1'
+
+homepage = 'http://fmtlib.net/'
+description = "fmt (formerly cppformat) is an open-source formatting library."
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/fmtlib/fmt/releases/download/%(version)s/']
+sources = ['fmt-%(version)s.zip']
+checksums = ['312151a2d13c8327f5c9c586ac6cf7cddc1658e8f53edae0ec56509c8fa516c9']
+
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('CMake', '3.27.6'),
+]
+
+sanity_check_paths = {
+ 'files': ['lib/libfmt.a'],
+ 'dirs': ['include/fmt', 'lib/cmake'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/f/fmt/fmt-11.0.2-GCCcore-13.3.0.eb b/easybuild/easyconfigs/f/fmt/fmt-11.0.2-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..cfb38383787
--- /dev/null
+++ b/easybuild/easyconfigs/f/fmt/fmt-11.0.2-GCCcore-13.3.0.eb
@@ -0,0 +1,26 @@
+easyblock = 'CMakeMake'
+
+name = 'fmt'
+version = '11.0.2'
+
+homepage = 'http://fmtlib.net/'
+description = "fmt (formerly cppformat) is an open-source formatting library."
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/fmtlib/fmt/releases/download/%(version)s/']
+sources = ['fmt-%(version)s.zip']
+checksums = ['40fc58bebcf38c759e11a7bd8fdc163507d2423ef5058bba7f26280c5b9c5465']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('CMake', '3.29.3'),
+]
+
+sanity_check_paths = {
+ 'files': ['lib/libfmt.a'],
+ 'dirs': ['include/fmt', 'lib/cmake'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/f/fontconfig/fontconfig-2.15.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/f/fontconfig/fontconfig-2.15.0-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..e2586c86e8c
--- /dev/null
+++ b/easybuild/easyconfigs/f/fontconfig/fontconfig-2.15.0-GCCcore-13.3.0.eb
@@ -0,0 +1,40 @@
+easyblock = 'ConfigureMake'
+
+name = 'fontconfig'
+version = '2.15.0'
+
+homepage = 'https://www.freedesktop.org/wiki/Software/fontconfig/'
+
+description = """
+ Fontconfig is a library designed to provide system-wide font configuration,
+ customization and application access.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://www.freedesktop.org/software/fontconfig/release/']
+sources = [SOURCE_TAR_GZ]
+checksums = ['f5f359d6332861bd497570848fcb42520964a9e83d5e3abe397b6b6db9bcaaf4']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('gperf', '3.1'),
+ ('pkgconf', '2.2.0'),
+ ('Python', '3.12.3'),
+]
+
+dependencies = [
+ ('expat', '2.6.2'),
+ ('freetype', '2.13.2'),
+ ('util-linux', '2.40'),
+]
+
+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/fonttools/fonttools-4.53.1-GCCcore-11.3.0.eb b/easybuild/easyconfigs/f/fonttools/fonttools-4.53.1-GCCcore-11.3.0.eb
new file mode 100644
index 00000000000..8453a35a695
--- /dev/null
+++ b/easybuild/easyconfigs/f/fonttools/fonttools-4.53.1-GCCcore-11.3.0.eb
@@ -0,0 +1,27 @@
+easyblock = 'PythonPackage'
+
+name = 'fonttools'
+version = '4.53.1'
+
+homepage = 'https://python-markdown.github.io/'
+description = """
+fontTools is a library for manipulating fonts, written in Python.
+The project includes the TTX tool, that can convert TrueType and OpenType fonts to and from an XML text format,
+which is also called TTX.
+It supports TrueType, OpenType, AFM and to an extent Type 1 and some Mac-specific formats."""
+
+toolchain = {'name': 'GCCcore', 'version': '11.3.0'}
+
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['e128778a8e9bc11159ce5447f76766cefbd876f44bd79aff030287254e4752c4']
+
+builddependencies = [('binutils', '2.38')]
+dependencies = [('Python', '3.10.4')]
+
+download_dep_fail = True
+sanity_pip_check = True
+use_pip = True
+
+options = {'modulename': 'fontTools'}
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/f/fonttools/fonttools-4.53.1-GCCcore-12.2.0.eb b/easybuild/easyconfigs/f/fonttools/fonttools-4.53.1-GCCcore-12.2.0.eb
new file mode 100644
index 00000000000..cfaada6dee8
--- /dev/null
+++ b/easybuild/easyconfigs/f/fonttools/fonttools-4.53.1-GCCcore-12.2.0.eb
@@ -0,0 +1,27 @@
+easyblock = 'PythonPackage'
+
+name = 'fonttools'
+version = '4.53.1'
+
+homepage = 'https://python-markdown.github.io/'
+description = """
+fontTools is a library for manipulating fonts, written in Python.
+The project includes the TTX tool, that can convert TrueType and OpenType fonts to and from an XML text format,
+which is also called TTX.
+It supports TrueType, OpenType, AFM and to an extent Type 1 and some Mac-specific formats."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.2.0'}
+
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['e128778a8e9bc11159ce5447f76766cefbd876f44bd79aff030287254e4752c4']
+
+builddependencies = [('binutils', '2.39')]
+dependencies = [('Python', '3.10.8')]
+
+download_dep_fail = True
+sanity_pip_check = True
+use_pip = True
+
+options = {'modulename': 'fontTools'}
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/f/fonttools/fonttools-4.53.1-GCCcore-12.3.0.eb b/easybuild/easyconfigs/f/fonttools/fonttools-4.53.1-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..bf71a8f341f
--- /dev/null
+++ b/easybuild/easyconfigs/f/fonttools/fonttools-4.53.1-GCCcore-12.3.0.eb
@@ -0,0 +1,27 @@
+easyblock = 'PythonPackage'
+
+name = 'fonttools'
+version = '4.53.1'
+
+homepage = 'https://python-markdown.github.io/'
+description = """
+fontTools is a library for manipulating fonts, written in Python.
+The project includes the TTX tool, that can convert TrueType and OpenType fonts to and from an XML text format,
+which is also called TTX.
+It supports TrueType, OpenType, AFM and to an extent Type 1 and some Mac-specific formats."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['e128778a8e9bc11159ce5447f76766cefbd876f44bd79aff030287254e4752c4']
+
+builddependencies = [('binutils', '2.40')]
+dependencies = [('Python', '3.11.3')]
+
+download_dep_fail = True
+sanity_pip_check = True
+use_pip = True
+
+options = {'modulename': 'fontTools'}
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/f/fonttools/fonttools-4.53.1-GCCcore-13.2.0.eb b/easybuild/easyconfigs/f/fonttools/fonttools-4.53.1-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..0e8a62e088b
--- /dev/null
+++ b/easybuild/easyconfigs/f/fonttools/fonttools-4.53.1-GCCcore-13.2.0.eb
@@ -0,0 +1,27 @@
+easyblock = 'PythonPackage'
+
+name = 'fonttools'
+version = '4.53.1'
+
+homepage = 'https://python-markdown.github.io/'
+description = """
+fontTools is a library for manipulating fonts, written in Python.
+The project includes the TTX tool, that can convert TrueType and OpenType fonts to and from an XML text format,
+which is also called TTX.
+It supports TrueType, OpenType, AFM and to an extent Type 1 and some Mac-specific formats."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['e128778a8e9bc11159ce5447f76766cefbd876f44bd79aff030287254e4752c4']
+
+builddependencies = [('binutils', '2.40')]
+dependencies = [('Python', '3.11.5')]
+
+download_dep_fail = True
+sanity_pip_check = True
+use_pip = True
+
+options = {'modulename': 'fontTools'}
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/f/fonttools/fonttools-4.53.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/f/fonttools/fonttools-4.53.1-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..ed395cfd0ee
--- /dev/null
+++ b/easybuild/easyconfigs/f/fonttools/fonttools-4.53.1-GCCcore-13.3.0.eb
@@ -0,0 +1,27 @@
+easyblock = 'PythonPackage'
+
+name = 'fonttools'
+version = '4.53.1'
+
+homepage = 'https://python-markdown.github.io/'
+description = """
+fontTools is a library for manipulating fonts, written in Python.
+The project includes the TTX tool, that can convert TrueType and OpenType fonts to and from an XML text format,
+which is also called TTX.
+It supports TrueType, OpenType, AFM and to an extent Type 1 and some Mac-specific formats."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['e128778a8e9bc11159ce5447f76766cefbd876f44bd79aff030287254e4752c4']
+
+builddependencies = [('binutils', '2.42')]
+dependencies = [('Python', '3.12.3')]
+
+download_dep_fail = True
+sanity_pip_check = True
+use_pip = True
+
+options = {'modulename': 'fontTools'}
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/f/foss/foss-2024.05.eb b/easybuild/easyconfigs/f/foss/foss-2024.05.eb
new file mode 100644
index 00000000000..0d3f8fac41a
--- /dev/null
+++ b/easybuild/easyconfigs/f/foss/foss-2024.05.eb
@@ -0,0 +1,28 @@
+easyblock = 'Toolchain'
+
+name = 'foss'
+version = '2024.05'
+
+homepage = 'https://easybuild.readthedocs.io/en/master/Common-toolchains.html#foss-toolchain'
+description = """GNU Compiler Collection (GCC) based compiler toolchain, including
+ OpenMPI for MPI support, OpenBLAS (BLAS and LAPACK support), FFTW and ScaLAPACK."""
+
+toolchain = SYSTEM
+
+local_gccver = '13.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', '5.0.3', '', ('GCC', local_gccver)),
+ ('FlexiBLAS', '3.4.4', '', ('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/foss/foss-2024a.eb b/easybuild/easyconfigs/f/foss/foss-2024a.eb
new file mode 100644
index 00000000000..7e9a4ba5112
--- /dev/null
+++ b/easybuild/easyconfigs/f/foss/foss-2024a.eb
@@ -0,0 +1,28 @@
+easyblock = 'Toolchain'
+
+name = 'foss'
+version = '2024a'
+
+homepage = 'https://easybuild.readthedocs.io/en/master/Common-toolchains.html#foss-toolchain'
+description = """GNU Compiler Collection (GCC) based compiler toolchain, including
+ OpenMPI for MPI support, OpenBLAS (BLAS and LAPACK support), FFTW and ScaLAPACK."""
+
+toolchain = SYSTEM
+
+local_gccver = '13.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', '5.0.3', '', ('GCC', local_gccver)),
+ ('FlexiBLAS', '3.4.4', '', ('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/fplll/fplll-5.4.5-GCCcore-13.2.0.eb b/easybuild/easyconfigs/f/fplll/fplll-5.4.5-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..5184f1f3c1e
--- /dev/null
+++ b/easybuild/easyconfigs/f/fplll/fplll-5.4.5-GCCcore-13.2.0.eb
@@ -0,0 +1,32 @@
+easyblock = 'ConfigureMake'
+
+name = 'fplll'
+version = '5.4.5'
+
+homepage = 'https://github.com/fplll/fplll'
+description = """fplll contains implementations of several lattice algorithms.
+ The implementation relies on floating-point orthogonalization, and the 1982 paper from
+Lenstra, Lenstra Jr. and Lovasz (LLL) is central to the code, hence the name."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+source_urls = ['https://github.com/fplll/fplll/releases/download/%(version)s']
+sources = [SOURCE_TAR_GZ]
+checksums = ['76d3778f0326597ed7505bab19493a9bf6b73a5c5ca614e8fb82f42105c57d00']
+
+builddependencies = [
+ ('binutils', '2.40'),
+]
+
+dependencies = [
+ ('MPFR', '4.2.1'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/fplll', 'lib/libfplll.%s' % SHLIB_EXT, 'include/fplll.h'],
+ 'dirs': ['share']
+}
+
+sanity_check_commands = ["fplll --help"]
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/f/fpylll/fpylll-0.6.1-foss-2023b.eb b/easybuild/easyconfigs/f/fpylll/fpylll-0.6.1-foss-2023b.eb
new file mode 100644
index 00000000000..5361252deb7
--- /dev/null
+++ b/easybuild/easyconfigs/f/fpylll/fpylll-0.6.1-foss-2023b.eb
@@ -0,0 +1,26 @@
+easyblock = 'PythonPackage'
+
+name = 'fpylll'
+version = '0.6.1'
+
+homepage = 'https://pypi.org/project/fpylll'
+description = "A Python wrapper for fplll."
+
+# can be moved down to gfbf in more recent toolchain versions
+toolchain = {'name': 'foss', 'version': '2023b'}
+
+sources = [SOURCE_TAR_GZ]
+checksums = ['dfd9529a26c50993a2a716177debd7994312219070574cad31b35b4f0c040a19']
+
+dependencies = [
+ ('Python', '3.11.5'),
+ ('SciPy-bundle', '2023.11'),
+ ('cysignals', '1.11.4'),
+ ('fplll', '5.4.5'),
+]
+
+use_pip = True
+download_dep_fail = True
+sanity_pip_check = True
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/f/freetype-py/freetype-py-2.4.0-GCCcore-11.3.0.eb b/easybuild/easyconfigs/f/freetype-py/freetype-py-2.4.0-GCCcore-11.3.0.eb
new file mode 100644
index 00000000000..88afc9e98b1
--- /dev/null
+++ b/easybuild/easyconfigs/f/freetype-py/freetype-py-2.4.0-GCCcore-11.3.0.eb
@@ -0,0 +1,29 @@
+easyblock = 'PythonPackage'
+
+name = 'freetype-py'
+version = '2.4.0'
+
+homepage = 'https://github.com/rougier/freetype-py'
+description = "Python binding for the freetype library"
+
+toolchain = {'name': 'GCCcore', 'version': '11.3.0'}
+
+sources = [SOURCE_ZIP]
+checksums = ['8ad81195d2f8f339aba61700cebfbd77defad149c51f59b75a2a5e37833ae12e']
+
+builddependencies = [
+ ('binutils', '2.38'),
+]
+
+dependencies = [
+ ('freetype', '2.12.1'),
+ ('Python', '3.10.4'),
+]
+
+use_pip = True
+download_dep_fail = True
+sanity_pip_check = True
+
+options = {'modulename': 'freetype'}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/f/freetype/freetype-2.13.2-GCCcore-13.3.0.eb b/easybuild/easyconfigs/f/freetype/freetype-2.13.2-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..1c6fa03dfa0
--- /dev/null
+++ b/easybuild/easyconfigs/f/freetype/freetype-2.13.2-GCCcore-13.3.0.eb
@@ -0,0 +1,43 @@
+name = 'freetype'
+version = '2.13.2'
+
+homepage = 'https://www.freetype.org'
+
+description = """
+ FreeType 2 is a software font engine that is designed to be small, efficient,
+ highly customizable, and portable while capable of producing high-quality
+ output (glyph images). It can be used in graphics libraries, display servers,
+ font conversion tools, text image generation tools, and many other products
+ as well.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = [
+ GNU_SAVANNAH_SOURCE,
+ SOURCEFORGE_SOURCE,
+]
+sources = [SOURCE_TAR_GZ]
+checksums = ['1ac27e16c134a7f2ccea177faba19801131116fd682efc1f5737037c5db224b5']
+
+builddependencies = [('binutils', '2.42')]
+
+dependencies = [
+ ('bzip2', '1.0.8'),
+ ('libpng', '1.6.43'),
+ ('zlib', '1.3.1'),
+ ('Brotli', '1.1.0'),
+]
+
+configopts = '--enable-freetype-config --with-harfbuzz=no'
+
+sanity_check_paths = {
+ 'files': ['bin/freetype-config', 'lib/libfreetype.a',
+ 'lib/libfreetype.%s' % SHLIB_EXT, 'lib/pkgconfig/freetype2.pc'],
+ 'dirs': ['include/freetype2'],
+}
+
+sanity_check_commands = ["freetype-config --help"]
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/f/freud-analysis/freud-analysis-2.6.2-foss-2021a.eb b/easybuild/easyconfigs/f/freud-analysis/freud-analysis-2.6.2-foss-2021a.eb
new file mode 100644
index 00000000000..8274a709f9f
--- /dev/null
+++ b/easybuild/easyconfigs/f/freud-analysis/freud-analysis-2.6.2-foss-2021a.eb
@@ -0,0 +1,46 @@
+##
+# Author: Robert Mijakovic
+##
+easyblock = 'PythonBundle'
+
+name = 'freud-analysis'
+version = '2.6.2'
+
+homepage = 'https://github.com/glotzerlab/freud'
+description = """The freud Python library provides a simple, flexible, powerful set of tools for analyzing trajectories
+obtained from molecular dynamics or Monte Carlo simulations. High performance, parallelized C++ is used to compute
+standard tools such as radial distribution functions, correlation functions, order parameters, and clusters, as well as
+original analysis methods including potentials of mean force and torque (PMFTs) and local environment matching. The
+freud library supports many input formats and outputs NumPy arrays, enabling integration with the scientific Python
+ecosystem for many typical materials science workflows."""
+
+toolchain = {'name': 'foss', 'version': '2021a'}
+
+builddependencies = [
+ ('pkg-config', '0.29.2'),
+ ('CMake', '3.20.1'),
+ ('scikit-build', '0.11.1'),
+]
+
+dependencies = [
+ ('Python', '3.9.5'),
+ ('SciPy-bundle', '2021.05'),
+ ('tbb', '2020.3'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('rowan', '1.3.0.post1', {
+ 'source_urls': ['https://pypi.python.org/packages/source/r/rowan'],
+ 'checksums': ['8f1d0e3279f80c6ae1ee68a90955301853b5586f64e42ba4c27d85504d525e4f'],
+ }),
+ (name, version, {
+ 'modulename': 'freud',
+ 'source_urls': ['https://pypi.python.org/packages/source/f/freud-analysis'],
+ 'checksums': ['1cc1b95a8a386e0ac7162246b42be800cfdaf335684a614aae02841aa4df6614'],
+ }),
+]
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/f/fsm-lite/fsm-lite-1.0-GCCcore-12.2.0.eb b/easybuild/easyconfigs/f/fsm-lite/fsm-lite-1.0-GCCcore-12.2.0.eb
new file mode 100644
index 00000000000..65a1167d998
--- /dev/null
+++ b/easybuild/easyconfigs/f/fsm-lite/fsm-lite-1.0-GCCcore-12.2.0.eb
@@ -0,0 +1,36 @@
+# This easyconfig was created by the BEAR Software team at the University of Birmingham.
+easyblock = "MakeCp"
+
+name = 'fsm-lite'
+version = '1.0'
+
+homepage = "https://github.com/nvalimak/fsm-lite"
+description = """A singe-core implemetation of frequency-based substring mining."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.2.0'}
+
+source_urls = ['https://github.com/nvalimak/%(name)s/archive/']
+sources = ['v%(version)s-stable.tar.gz']
+checksums = ['f781a9fbab5265bd09b3b5b7e1cba904582ec201c3d30baed36e28a03de3ac61']
+
+builddependencies = [
+ ('CMake', '3.24.3'),
+ ('binutils', '2.39'),
+]
+
+dependencies = [
+ ('sdsl-lite', '2.0.3'),
+]
+
+prebuildopts = "sed -i '1s/.*/SDSL_INSTALL_PREFIX=${EBROOTSDSLMINLITE}/' Makefile && make depend &&"
+
+files_to_copy = [(['fsm-lite'], 'bin')]
+
+sanity_check_paths = {
+ 'files': ['bin/fsm-lite'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["fsm-lite --help 2>&1 | grep usage"]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/f/fsom/fsom-20151117-GCCcore-12.2.0.eb b/easybuild/easyconfigs/f/fsom/fsom-20151117-GCCcore-12.2.0.eb
new file mode 100644
index 00000000000..b9de5b70eff
--- /dev/null
+++ b/easybuild/easyconfigs/f/fsom/fsom-20151117-GCCcore-12.2.0.eb
@@ -0,0 +1,43 @@
+# Updated: Denis Kristak (INUITS)
+# Updated: Petr Král (INUITS)
+
+easyblock = 'ConfigureMake'
+
+name = 'fsom'
+version = '20151117'
+local_commit = '56695e1'
+
+homepage = 'https://github.com/ekg/fsom'
+description = """A tiny C library for managing SOM (Self-Organizing Maps) neural networks."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.2.0'}
+
+github_account = 'ekg'
+
+source_urls = [GITHUB_SOURCE]
+sources = ['%s.tar.gz' % local_commit]
+
+patches = [
+ '%(name)s-%(version)s_build-libs.patch',
+ '%(name)s-20141119_fix-abs-overload.patch'
+]
+
+checksums = [
+ '1ba3360985be781bb9f79d974705c86e7bb0719cb83638955e113b5dd83ec8dd', # 56695e1.tar.gz
+ 'd4e19b2db054cc5d3153ceba88ad2b11e5143e3a3c243103ce1e6994a83c43fe', # fsom-20151117_build-libs.patch
+ '54dd6ae76033535fe1b0231142d8bd41a815950dc3fd269dc321f698d4973639', # fsom-20141119_fix-abs-overload.patch
+]
+
+builddependencies = [('binutils', '2.39')]
+
+skipsteps = ['configure']
+
+installopts = 'PREFIX=%(installdir)s '
+
+sanity_check_paths = {
+ 'files': ['bin/%(name)s', 'lib/libfsom.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+sanity_check_commands = ["%(name)s --help"]
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/f/fugue/fugue-0.8.7-foss-2022a.eb b/easybuild/easyconfigs/f/fugue/fugue-0.8.7-foss-2022a.eb
new file mode 100644
index 00000000000..fd5d8ef5c47
--- /dev/null
+++ b/easybuild/easyconfigs/f/fugue/fugue-0.8.7-foss-2022a.eb
@@ -0,0 +1,62 @@
+easyblock = 'PythonBundle'
+
+name = 'fugue'
+version = '0.8.7'
+homepage = 'https://github.com/fugue-project/fugue'
+description = """Fugue is a unified interface for distributed computing that
+lets users execute Python, Pandas, and SQL code on Spark, Dask, and Ray with minimal rewrites.
+
+Fugue is most commonly used for:
+
+Parallelizing or scaling existing Python and Pandas code by bringing it to
+Spark, Dask, or Ray with minimal rewrites.
+Using FugueSQL to define end-to-end workflows on top of Pandas, Spark, and Dask DataFrames.
+FugueSQL is an enhanced SQL interface that can invoke Python code.
+"""
+toolchain = {'name': 'foss', 'version': '2022a'}
+
+builddependencies = [
+ ('CMake', '3.23.1'),
+]
+dependencies = [
+ ('Python', '3.10.4'),
+ ('SciPy-bundle', '2022.05'),
+ ('Arrow', '8.0.0'),
+]
+
+
+exts_list = [
+ ('adagio', '0.2.4', {
+ 'checksums': ['e58abc4539184a65faf9956957d3787616bedeb1303ac5c9b1a201d8af6b87d7'],
+ }),
+ ('fugue-sql-antlr', '0.2.0', {
+ 'checksums': ['e15433aaf09502c5b0423019d9fa93e161172ceb08e7bd27af0175dadf3cf552'],
+ }),
+ ('antlr4-python3-runtime', '4.11.1', {
+ 'modulename': 'antlr4',
+ 'checksums': ['a53de701312f9bdacc5258a6872cd6c62b90d3a90ae25e494026f76267333b60'],
+ }),
+ ('fs', '2.4.16', {
+ 'checksums': ['ae97c7d51213f4b70b6a958292530289090de3a7e15841e108fbe144f069d313'],
+ }),
+ ('fsspec', '2023.12.2', {
+ 'checksums': ['8548d39e8810b59c38014934f6b31e57f40c1b20f911f4cc2b85389c7e9bf0cb'],
+ }),
+ ('qpd', '0.4.4', {
+ 'checksums': ['e0ed05b88e321ea9935874377bda11339c90f1469f34344e9b41d16b8088e136'],
+ }),
+ ('sqlglot', '20.9.0', {
+ 'checksums': ['0b62ea136dcd5835d1a003e598d834ace36dfc1104d5cbabf5a1429993105de4'],
+ }),
+ ('triad', '0.9.4', {
+ 'checksums': ['580658b7b88f7a1f71be5e69282d2e13dcbfacbb126a4a576187be2b2e673e20'],
+ }),
+ (name, version, {
+ 'checksums': ['4c56946de46083778cdd6ec5b91ac5d37a847164c80790771edc6832bb9a260d'],
+ }),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+moduleclass = 'data'
diff --git a/easybuild/easyconfigs/f/funannotate/funannotate-1.8.13-foss-2021b.eb b/easybuild/easyconfigs/f/funannotate/funannotate-1.8.13-foss-2021b.eb
index 78068a53cc2..18991c61de3 100644
--- a/easybuild/easyconfigs/f/funannotate/funannotate-1.8.13-foss-2021b.eb
+++ b/easybuild/easyconfigs/f/funannotate/funannotate-1.8.13-foss-2021b.eb
@@ -9,6 +9,7 @@ description = """funannotate is a pipeline for genome annotation (built specific
toolchain = {'name': 'foss', 'version': '2021b'}
+# see also https://github.com/nextgenusfs/funannotate/blob/master/docs/dependencies.rst
dependencies = [
('Python', '3.9.6'),
('SciPy-bundle', '2021.10'),
@@ -17,6 +18,41 @@ dependencies = [
('matplotlib', '3.4.3'),
('scikit-learn', '1.0.1'),
('Seaborn', '0.11.2'),
+ ('tbl2asn', '20220427', '-linux64', SYSTEM),
+ ('DBD-mysql', '4.050'),
+ ('CodingQuarry', '2.0'),
+ ('Trinity', '2.15.1'),
+ ('AUGUSTUS', '3.4.0'),
+ ('BamTools', '2.5.2'),
+ ('BEDTools', '2.30.0'),
+ ('BLAST+', '2.12.0'), # provides makeblastdb, tblastn
+ ('BLAT', '3.7'),
+ ('DIAMOND', '2.0.13'),
+ ('eggnog-mapper', '2.1.7'),
+ ('ETE', '3.1.2'),
+ ('Exonerate', '2.4.0'),
+ ('FASTA', '36.3.8i'),
+ ('GlimmerHMM', '3.0.4c'),
+ ('GMAP-GSNAP', '2021-12-17'), # provides gmap
+ ('GeneMark-ET', '4.71'), # provides gmes_petap.pl
+ ('HISAT2', '2.2.1'),
+ ('HMMER', '3.3.2'), # provides hmmscan, hmmsearch
+ ('kallisto', '0.48.0'),
+ ('MAFFT', '7.490', '-with-extensions'),
+ ('minimap2', '2.22'),
+ ('pigz', '2.6'),
+ ('Proteinortho', '6.2.3'),
+ ('Kent_tools', '422'), # provides pslCDnaFilter
+ ('Salmon', '1.4.0'),
+ ('SAMtools', '1.14'),
+ ('SignalP', '6.0g', '-fast'),
+ ('SNAP', '2.0.1'),
+ ('StringTie', '2.2.1'),
+ ('tRNAscan-SE', '2.0.12'),
+ ('tantan', '40'),
+ ('trimAl', '1.4.1'),
+ ('Trimmomatic', '0.39', '-Java-11', SYSTEM),
+ ('BioPerl', '1.7.8'),
]
use_pip = True
@@ -38,7 +74,10 @@ sanity_check_paths = {
'dirs': [],
}
-sanity_check_commands = ["funannotate --help 2>&1 | grep 'Usage:[ ]*funannotate'"]
+sanity_check_commands = [
+ "funannotate --help 2>&1 | grep 'Usage:[ ]*funannotate'",
+ "funannotate check --show-versions",
+]
sanity_pip_check = True
diff --git a/easybuild/easyconfigs/f/funannotate/funannotate-1.8.17-foss-2023a.eb b/easybuild/easyconfigs/f/funannotate/funannotate-1.8.17-foss-2023a.eb
new file mode 100644
index 00000000000..ed9d5580415
--- /dev/null
+++ b/easybuild/easyconfigs/f/funannotate/funannotate-1.8.17-foss-2023a.eb
@@ -0,0 +1,94 @@
+easyblock = 'PythonBundle'
+
+name = 'funannotate'
+version = '1.8.17'
+
+homepage = 'https://funannotate.readthedocs.io'
+description = """funannotate is a pipeline for genome annotation (built specifically for fungi, but will also work
+ with higher eukaryotes)"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+# see also https://github.com/nextgenusfs/funannotate/blob/master/docs/dependencies.rst
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('Biopython', '1.83'),
+ ('GOATOOLS', '1.4.5'),
+ ('matplotlib', '3.7.2'),
+ ('scikit-learn', '1.3.1'),
+ ('Seaborn', '0.13.2'),
+ ('tbl2asn', '20230713'),
+ ('DBD-mysql', '4.050'),
+ ('CodingQuarry', '2.0'),
+ ('Trinity', '2.15.2'),
+ ('AUGUSTUS', '3.5.0'),
+ ('BamTools', '2.5.2'),
+ ('BEDTools', '2.31.0'),
+ ('BLAST+', '2.14.1'), # provides makeblastdb, tblastn
+ ('BLAT', '3.7'),
+ ('DIAMOND', '2.1.8'),
+ ('eggnog-mapper', '2.1.12'),
+ ('ETE', '3.1.3'),
+ ('Exonerate', '2.4.0'),
+ ('FASTA', '36.3.8i'),
+ ('GlimmerHMM', '3.0.4c'),
+ ('GMAP-GSNAP', '2023-04-20'), # provides gmap
+ ('GeneMark-ET', '4.72'), # provides gmes_petap.pl
+ ('HISAT2', '2.2.1'),
+ ('HMMER', '3.4'), # provides hmmscan, hmmsearch
+ ('kallisto', '0.51.1'),
+ ('MAFFT', '7.520', '-with-extensions'),
+ ('minimap2', '2.26'),
+ ('pigz', '2.8'),
+ ('Proteinortho', '6.3.2'),
+ ('Kent_tools', '468'), # provides pslCDnaFilter
+ ('Salmon', '1.10.3'),
+ ('SAMtools', '1.18'),
+ ('SignalP', '6.0h', '-fast'),
+ ('SNAP-HMM', '20221022'),
+ ('StringTie', '2.2.3'),
+ ('tRNAscan-SE', '2.0.12'),
+ ('tantan', '50'),
+ ('trimAl', '1.4.1'),
+ ('Trimmomatic', '0.39', '-Java-11', SYSTEM),
+ ('BioPerl', '1.7.8'),
+ ('EVidenceModeler', '2.1.0'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('distro', '1.9.0', {
+ 'checksums': ['2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed'],
+ }),
+ ('natsort', '8.4.0', {
+ 'checksums': ['45312c4a0e5507593da193dedd04abb1469253b601ecaf63445ad80f0a1ea581'],
+ }),
+ (name, version, {
+ 'checksums': ['bdadfd7a5636383c1c40c26dab37c5908a77e8c4064adced84f1ba9e86187a04'],
+ 'preinstallopts': (
+ """sed -i 's|REQUIRES_PYTHON = ">=3.6.0, <3.10"|REQUIRES_PYTHON = ">=3.6.0"|' setup.py && """
+ """sed -i 's|"biopython<1.80",|"biopython",|' setup.py && """
+ )
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/funannotate'],
+ 'dirs': [],
+}
+
+modextrapaths = {
+ 'GENEMARK_PATH': '$EBROOTGENEMARKMINET',
+}
+
+sanity_check_commands = [
+ "funannotate --help 2>&1 | grep 'Usage:[ ]*funannotate'",
+ "funannotate check --show-versions",
+]
+
+
+sanity_pip_check = True
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/g/GAMESS-US/GAMESS-US-20220930-R2-gompi-2022a.eb b/easybuild/easyconfigs/g/GAMESS-US/GAMESS-US-20220930-R2-gompi-2022a.eb
new file mode 100644
index 00000000000..2b3ea044a2d
--- /dev/null
+++ b/easybuild/easyconfigs/g/GAMESS-US/GAMESS-US-20220930-R2-gompi-2022a.eb
@@ -0,0 +1,44 @@
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+#
+# Copyright:: Copyright 2012-2017 University of Luxembourg / LCSB, Cyprus Institute / CaSToRC,
+# Ghent University / The Francis Crick Institute
+#
+# Authors::
+# * Kenneth Hoste
+# * Ward Poelmans
+# * Oliver Stueker
+# License:: MIT/GPL
+##
+name = 'GAMESS-US'
+version = '20220930-R2'
+
+maxcpus = '1024'
+maxnodes = '1024'
+hyperthreading = False
+
+homepage = 'https://www.msg.chem.iastate.edu/gamess/'
+description = """The General Atomic and Molecular Electronic Structure System (GAMESS)
+is a general ab initio quantum chemistry package.
+This module can be used on a maximum of %s nodes and %s CPUs per node.
+ """ % (maxnodes, maxcpus)
+
+toolchain = {'name': 'gompi', 'version': '2022a'}
+toolchainopts = {'usempi': True, 'openmp': False}
+
+dependencies = [
+ ('OpenBLAS', '0.3.20', '-int8'),
+ ('libxc', '5.2.3'),
+]
+
+download_instructions = """
+1. Manually download via http://www.msg.chem.iastate.edu/gamess/download.html (requires registration)
+2. Rename gamess-current.tar.gz to gamess-%(version)s.tar.gz
+"""
+sources = ['gamess-%(version)s.tar.gz']
+checksums = ['22c8c2dc3ef007c36a32d9ff5a9e1803ac9006f24065455c22de40dd26fb2a7a']
+
+# custom location of gamess workdir
+# scratch_dir = '/path/to/fast/storage'
+# user_scratch_dir = '/path/to/fast/storage'
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/g/GAMESS-US/GAMESS-US-20230630_add_slurm_support_mpi_target.patch b/easybuild/easyconfigs/g/GAMESS-US/GAMESS-US-20230630_add_slurm_support_mpi_target.patch
new file mode 100644
index 00000000000..1f5e924f957
--- /dev/null
+++ b/easybuild/easyconfigs/g/GAMESS-US/GAMESS-US-20230630_add_slurm_support_mpi_target.patch
@@ -0,0 +1,26 @@
+Add support for Slurm scheduler on MPI targets that do not have any nodefile
+given by the user.
+author: Alex Domingo (Vrije Universiteit Brussel)
+--- rungms.orig 2023-07-01 08:04:29.000000000 +0200
++++ rungms 2023-12-13 16:29:19.738351362 +0100
+@@ -188,6 +188,7 @@
+ set SCHED=none
+ if ($?PBS_O_LOGNAME) set SCHED=PBS
+ if ($?SGE_O_LOGNAME) set SCHED=SGE
++if ($?SLURM_JOB_ID) set SCHED=SLURM
+ if ($SCHED == SGE) then
+ set SCR=$TMPDIR
+ echo "SGE has assigned the following compute nodes to this run:"
+@@ -805,6 +806,12 @@
+ set NNODES=$NNODES[1]
+ echo "MPI was given $NNODES nodes by PBS..."
+ breaksw
++ case SLURM:
++ scontrol show hostname "$SLURM_NODELIST" > $HOSTFILE
++ set NNODES=`wc -l $HOSTFILE`
++ set NNODES=$NNODES[1]
++ echo "MPI was given $NNODES nodes by Slurm..."
++ breaksw
+ default:
+ # Use use provided list (a new feature to be tested).
+ if (-e $NCPUS) then
diff --git a/easybuild/easyconfigs/g/GAMESS-US/GAMESS-US-20230930-R2-gompi-2022a.eb b/easybuild/easyconfigs/g/GAMESS-US/GAMESS-US-20230930-R2-gompi-2022a.eb
new file mode 100644
index 00000000000..b396d24c18b
--- /dev/null
+++ b/easybuild/easyconfigs/g/GAMESS-US/GAMESS-US-20230930-R2-gompi-2022a.eb
@@ -0,0 +1,49 @@
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+#
+# Copyright:: Copyright 2012-2017 University of Luxembourg / LCSB, Cyprus Institute / CaSToRC,
+# Ghent University / The Francis Crick Institute
+#
+# Authors::
+# * Kenneth Hoste
+# * Ward Poelmans
+# * Oliver Stueker
+# License:: MIT/GPL
+##
+name = 'GAMESS-US'
+version = '20230930-R2'
+
+maxcpus = '1024'
+maxnodes = '1024'
+hyperthreading = False
+
+homepage = 'https://www.msg.chem.iastate.edu/gamess/'
+description = """The General Atomic and Molecular Electronic Structure System (GAMESS)
+is a general ab initio quantum chemistry package.
+This module can be used on a maximum of %s nodes and %s CPUs per node.
+ """ % (maxnodes, maxcpus)
+
+toolchain = {'name': 'gompi', 'version': '2022a'}
+toolchainopts = {'usempi': True, 'openmp': False}
+
+dependencies = [
+ ('OpenBLAS', '0.3.20', '-int8'),
+ ('libxc', '5.2.3'),
+]
+
+download_instructions = """
+1. Manually download via http://www.msg.chem.iastate.edu/gamess/download.html (requires registration)
+2. Rename gamess-current.tar.gz to gamess-%(version)s.tar.gz
+"""
+sources = ['gamess-%(version)s.tar.gz']
+patches = ['GAMESS-US-20230930_add_slurm_support_mpi_target.patch']
+checksums = [
+ {'gamess-20230930-R2.tar.gz': '2b7cf4af17fb2eab5bf3609bf820437728cd36d87f44857dce25bafa9e9622ad'},
+ {'GAMESS-US-20230930_add_slurm_support_mpi_target.patch':
+ 'ceed5f160678aba3b1885337a3e5955177b9df465c0ef2f50e4c5e52fe11f70d'},
+]
+
+# custom location of gamess workdir
+# scratch_dir = '/path/to/fast/storage'
+# user_scratch_dir = '/path/to/fast/storage'
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/g/GAMESS-US/GAMESS-US-20230930-R2-intel-compilers-2022.1.0.eb b/easybuild/easyconfigs/g/GAMESS-US/GAMESS-US-20230930-R2-intel-compilers-2022.1.0.eb
new file mode 100644
index 00000000000..2a6fc990c6f
--- /dev/null
+++ b/easybuild/easyconfigs/g/GAMESS-US/GAMESS-US-20230930-R2-intel-compilers-2022.1.0.eb
@@ -0,0 +1,50 @@
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+#
+# Copyright:: Copyright 2012-2017 University of Luxembourg / LCSB, Cyprus Institute / CaSToRC,
+# Ghent University / The Francis Crick Institute
+#
+# Authors::
+# * Kenneth Hoste
+# * Ward Poelmans
+# * Oliver Stueker
+# License:: MIT/GPL
+##
+name = 'GAMESS-US'
+version = '20230930-R2'
+
+ddi_comm = 'sockets'
+maxcpus = '1024'
+maxnodes = '1'
+hyperthreading = False
+
+homepage = 'https://www.msg.chem.iastate.edu/gamess/'
+description = """The General Atomic and Molecular Electronic Structure System (GAMESS)
+is a general ab initio quantum chemistry package.
+This module can be used on a maximum of %s nodes and %s CPUs per node.
+ """ % (maxnodes, maxcpus)
+
+toolchain = {'name': 'intel-compilers', 'version': '2022.1.0'}
+toolchainopts = {'openmp': True}
+
+dependencies = [
+ ('imkl', '2022.1.0', '', SYSTEM),
+ ('libxc', '5.2.3'),
+]
+
+download_instructions = """
+1. Manually download via http://www.msg.chem.iastate.edu/gamess/download.html (requires registration)
+2. Rename gamess-current.tar.gz to gamess-%(version)s.tar.gz
+"""
+sources = ['gamess-%(version)s.tar.gz']
+patches = ['GAMESS-US-20230930_add_slurm_support_mpi_target.patch']
+checksums = [
+ {'gamess-20230930-R2.tar.gz': '2b7cf4af17fb2eab5bf3609bf820437728cd36d87f44857dce25bafa9e9622ad'},
+ {'GAMESS-US-20230930_add_slurm_support_mpi_target.patch':
+ 'ceed5f160678aba3b1885337a3e5955177b9df465c0ef2f50e4c5e52fe11f70d'},
+]
+
+# custom location of gamess workdir
+# scratch_dir = '/path/to/fast/storage'
+# user_scratch_dir = '/path/to/fast/storage'
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/g/GAMESS-US/GAMESS-US-20230930_add_slurm_support_mpi_target.patch b/easybuild/easyconfigs/g/GAMESS-US/GAMESS-US-20230930_add_slurm_support_mpi_target.patch
new file mode 100644
index 00000000000..1f5e924f957
--- /dev/null
+++ b/easybuild/easyconfigs/g/GAMESS-US/GAMESS-US-20230930_add_slurm_support_mpi_target.patch
@@ -0,0 +1,26 @@
+Add support for Slurm scheduler on MPI targets that do not have any nodefile
+given by the user.
+author: Alex Domingo (Vrije Universiteit Brussel)
+--- rungms.orig 2023-07-01 08:04:29.000000000 +0200
++++ rungms 2023-12-13 16:29:19.738351362 +0100
+@@ -188,6 +188,7 @@
+ set SCHED=none
+ if ($?PBS_O_LOGNAME) set SCHED=PBS
+ if ($?SGE_O_LOGNAME) set SCHED=SGE
++if ($?SLURM_JOB_ID) set SCHED=SLURM
+ if ($SCHED == SGE) then
+ set SCR=$TMPDIR
+ echo "SGE has assigned the following compute nodes to this run:"
+@@ -805,6 +806,12 @@
+ set NNODES=$NNODES[1]
+ echo "MPI was given $NNODES nodes by PBS..."
+ breaksw
++ case SLURM:
++ scontrol show hostname "$SLURM_NODELIST" > $HOSTFILE
++ set NNODES=`wc -l $HOSTFILE`
++ set NNODES=$NNODES[1]
++ echo "MPI was given $NNODES nodes by Slurm..."
++ breaksw
+ default:
+ # Use use provided list (a new feature to be tested).
+ if (-e $NCPUS) then
diff --git a/easybuild/easyconfigs/g/GATE/GATE-9.4-foss-2023a.eb b/easybuild/easyconfigs/g/GATE/GATE-9.4-foss-2023a.eb
new file mode 100644
index 00000000000..6fd245d2079
--- /dev/null
+++ b/easybuild/easyconfigs/g/GATE/GATE-9.4-foss-2023a.eb
@@ -0,0 +1,29 @@
+name = 'GATE'
+version = '9.4'
+
+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': '2023a'}
+
+source_urls = ['https://github.com/OpenGATE/Gate/archive/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['96c53f6ab1b25c0e540d8f9564bce0049371b378de80a7118a0ff8834c6c117c']
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+]
+dependencies = [
+ ('Geant4', '11.2.2'),
+ ('CLHEP', '2.4.7.1'),
+ ('ROOT', '6.30.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.3.0.0-GCCcore-12.3.0-Java-11.eb b/easybuild/easyconfigs/g/GATK/GATK-4.3.0.0-GCCcore-12.3.0-Java-11.eb
new file mode 100644
index 00000000000..c5247c1cf5a
--- /dev/null
+++ b/easybuild/easyconfigs/g/GATK/GATK-4.3.0.0-GCCcore-12.3.0-Java-11.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.3.0.0'
+versionsuffix = '-Java-%(javaver)s'
+
+homepage = 'https://www.broadinstitute.org/gatk/'
+description = """The Genome Analysis Toolkit or GATK is a software package developed at the Broad Institute
+ to analyse next-generation resequencing data. The toolkit offers a wide variety of tools,
+ with a primary focus on variant discovery and genotyping as well as strong emphasis on
+ data quality assurance. Its robust architecture, powerful processing engine and
+ high-performance computing features make it capable of taking on projects of any size."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = ['https://github.com/broadinstitute/gatk/releases/download/%(version)s/']
+sources = ['gatk-%(version)s.zip']
+checksums = ['e2c27229b34c3e22445964adf00639a0909887bbfcc040f6910079177bc6e2dd']
+
+dependencies = [
+ ('Java', '11', '', SYSTEM),
+ ('Python', '3.11.3'),
+]
+
+modextrapaths = {'PATH': ''}
+
+sanity_check_paths = {
+ 'files': ['gatk'],
+ 'dirs': [],
+}
+
+sanity_check_commands = [
+ "gatk --help",
+ "gatk --list",
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/g/GATK/GATK-4.6.0.0-GCCcore-13.2.0-Java-17.eb b/easybuild/easyconfigs/g/GATK/GATK-4.6.0.0-GCCcore-13.2.0-Java-17.eb
new file mode 100644
index 00000000000..1c700e8eab0
--- /dev/null
+++ b/easybuild/easyconfigs/g/GATK/GATK-4.6.0.0-GCCcore-13.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.6.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': '13.2.0'}
+
+source_urls = ['https://github.com/broadinstitute/gatk/releases/download/%(version)s/']
+sources = ['gatk-%(version)s.zip']
+checksums = ['a5d31e34630f355e5a119894f2587fec47049fedff04300f6633c31ef14c3a66']
+
+dependencies = [
+ ('Java', '17', '', SYSTEM),
+ ('Python', '3.11.5'),
+]
+
+modextrapaths = {'PATH': ''}
+
+sanity_check_paths = {
+ 'files': ['gatk'],
+ 'dirs': [],
+}
+
+sanity_check_commands = [
+ "gatk --help",
+ "gatk --list",
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/g/GCC/GCC-13.3.0.eb b/easybuild/easyconfigs/g/GCC/GCC-13.3.0.eb
new file mode 100644
index 00000000000..3428422c0b9
--- /dev/null
+++ b/easybuild/easyconfigs/g/GCC/GCC-13.3.0.eb
@@ -0,0 +1,22 @@
+easyblock = 'Bundle'
+
+name = 'GCC'
+version = '13.3.0'
+
+homepage = 'https://gcc.gnu.org/'
+description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada,
+ as well as libraries for these languages (libstdc++, libgcj,...)."""
+
+toolchain = SYSTEM
+
+dependencies = [
+ ('GCCcore', version),
+ # binutils built on top of GCCcore, which was built on top of binutils (built with system toolchain)
+ ('binutils', '2.42', '', ('GCCcore', version)),
+]
+
+altroot = 'GCCcore'
+altversion = 'GCCcore'
+
+# this bundle serves as a compiler-only toolchain, so it should be marked as compiler (important for HMNS)
+moduleclass = 'compiler'
diff --git a/easybuild/easyconfigs/g/GCC/GCC-14.1.0.eb b/easybuild/easyconfigs/g/GCC/GCC-14.1.0.eb
new file mode 100644
index 00000000000..5d90c08c99e
--- /dev/null
+++ b/easybuild/easyconfigs/g/GCC/GCC-14.1.0.eb
@@ -0,0 +1,22 @@
+easyblock = 'Bundle'
+
+name = 'GCC'
+version = '14.1.0'
+
+homepage = 'https://gcc.gnu.org/'
+description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada,
+ as well as libraries for these languages (libstdc++, libgcj,...)."""
+
+toolchain = SYSTEM
+
+dependencies = [
+ ('GCCcore', version),
+ # binutils built on top of GCCcore, which was built on top of binutils (built with system toolchain)
+ ('binutils', '2.42', '', ('GCCcore', version)),
+]
+
+altroot = 'GCCcore'
+altversion = 'GCCcore'
+
+# this bundle serves as a compiler-only toolchain, so it should be marked as compiler (important for HMNS)
+moduleclass = 'compiler'
diff --git a/easybuild/easyconfigs/g/GCC/GCC-14.2.0.eb b/easybuild/easyconfigs/g/GCC/GCC-14.2.0.eb
new file mode 100644
index 00000000000..7126db6c52d
--- /dev/null
+++ b/easybuild/easyconfigs/g/GCC/GCC-14.2.0.eb
@@ -0,0 +1,22 @@
+easyblock = 'Bundle'
+
+name = 'GCC'
+version = '14.2.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.42', '', ('GCCcore', version)),
+]
+
+altroot = 'GCCcore'
+altversion = 'GCCcore'
+
+# this bundle serves as a compiler-only toolchain, so it should be marked as compiler (important for HMNS)
+moduleclass = 'compiler'
diff --git a/easybuild/easyconfigs/g/GCCcore/GCCcore-10.3.0.eb b/easybuild/easyconfigs/g/GCCcore/GCCcore-10.3.0.eb
index 7f9079c65c0..26437d79b56 100644
--- a/easybuild/easyconfigs/g/GCCcore/GCCcore-10.3.0.eb
+++ b/easybuild/easyconfigs/g/GCCcore/GCCcore-10.3.0.eb
@@ -17,7 +17,6 @@ source_urls = [
'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
- 'http://isl.gforge.inria.fr/', # original HTTP source for ISL
'https://sourceware.org/pub/newlib/', # for newlib
'https://github.com/MentorEmbedded/nvptx-tools/archive', # for nvptx-tools
]
diff --git a/easybuild/easyconfigs/g/GCCcore/GCCcore-11.1.0.eb b/easybuild/easyconfigs/g/GCCcore/GCCcore-11.1.0.eb
index b89321338eb..b9512e90cc6 100644
--- a/easybuild/easyconfigs/g/GCCcore/GCCcore-11.1.0.eb
+++ b/easybuild/easyconfigs/g/GCCcore/GCCcore-11.1.0.eb
@@ -17,7 +17,6 @@ source_urls = [
'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
- 'http://isl.gforge.inria.fr/', # original HTTP source for ISL
'https://sourceware.org/pub/newlib/', # for newlib
'https://github.com/MentorEmbedded/nvptx-tools/archive', # for nvptx-tools
]
diff --git a/easybuild/easyconfigs/g/GCCcore/GCCcore-11.2.0.eb b/easybuild/easyconfigs/g/GCCcore/GCCcore-11.2.0.eb
index 56cebe7e95f..69d454317bb 100644
--- a/easybuild/easyconfigs/g/GCCcore/GCCcore-11.2.0.eb
+++ b/easybuild/easyconfigs/g/GCCcore/GCCcore-11.2.0.eb
@@ -17,7 +17,6 @@ source_urls = [
'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
- 'http://isl.gforge.inria.fr/', # original HTTP source for ISL
'https://sourceware.org/pub/newlib/', # for newlib
'https://github.com/MentorEmbedded/nvptx-tools/archive', # for nvptx-tools
]
diff --git a/easybuild/easyconfigs/g/GCCcore/GCCcore-12.1.0.eb b/easybuild/easyconfigs/g/GCCcore/GCCcore-12.1.0.eb
index bfbba25110c..38ef50f122c 100644
--- a/easybuild/easyconfigs/g/GCCcore/GCCcore-12.1.0.eb
+++ b/easybuild/easyconfigs/g/GCCcore/GCCcore-12.1.0.eb
@@ -38,6 +38,7 @@ patches = [
'GCCcore-12.1.0_fix-Wuninitialized-in-AVX-headers.patch',
'GCCcore-12.2.0_fix-avx512-misoptimization.patch',
'GCCcore-12.2.0_fix-vectorizer.patch',
+ 'GCCcore-12.x_riscv_multiarch_support.patch',
]
checksums = [
{'gcc-12.1.0.tar.gz': 'e88a004a14697bbbaba311f38a938c716d9a652fd151aaaa4cf1b5b99b90e2de'},
@@ -57,6 +58,7 @@ checksums = [
{'GCCcore-12.2.0_fix-avx512-misoptimization.patch':
'bb3db707727b9975b0005346ef04230a96b3ad896f004a34262a82a244b5d436'},
{'GCCcore-12.2.0_fix-vectorizer.patch': '0b76fc379308fd189ee39c4a3a49facacf8ede08dbec4280f289341083f1632b'},
+ {'GCCcore-12.x_riscv_multiarch_support.patch': '92fc2b17b6943611a657904500fbf3db8160eddbcea320828d4a50a885e2778f'},
]
builddependencies = [
diff --git a/easybuild/easyconfigs/g/GCCcore/GCCcore-12.2.0.eb b/easybuild/easyconfigs/g/GCCcore/GCCcore-12.2.0.eb
index 77c3d798705..50d5b1bcd9c 100644
--- a/easybuild/easyconfigs/g/GCCcore/GCCcore-12.2.0.eb
+++ b/easybuild/easyconfigs/g/GCCcore/GCCcore-12.2.0.eb
@@ -39,6 +39,7 @@ patches = [
'GCCcore-12.2.0_fix-avx512-misoptimization.patch',
'GCCcore-12.2.0_fix-vectorizer.patch',
'GCCcore-12.2.0_improve-cuda-compatibility.patch',
+ 'GCCcore-12.x_riscv_multiarch_support.patch',
]
checksums = [
{'gcc-12.2.0.tar.gz': 'ac6b317eb4d25444d87cf29c0d141dedc1323a1833ec9995211b13e1a851261c'},
@@ -60,6 +61,7 @@ checksums = [
{'GCCcore-12.2.0_fix-vectorizer.patch': '0b76fc379308fd189ee39c4a3a49facacf8ede08dbec4280f289341083f1632b'},
{'GCCcore-12.2.0_improve-cuda-compatibility.patch':
'91d00122554b56381592229398540e63baa26d03633292a7fdf338407a4a62d5'},
+ {'GCCcore-12.x_riscv_multiarch_support.patch': '92fc2b17b6943611a657904500fbf3db8160eddbcea320828d4a50a885e2778f'},
]
builddependencies = [
diff --git a/easybuild/easyconfigs/g/GCCcore/GCCcore-12.3.0.eb b/easybuild/easyconfigs/g/GCCcore/GCCcore-12.3.0.eb
index 91dd99aa90d..222f1b68dc8 100644
--- a/easybuild/easyconfigs/g/GCCcore/GCCcore-12.3.0.eb
+++ b/easybuild/easyconfigs/g/GCCcore/GCCcore-12.3.0.eb
@@ -36,6 +36,8 @@ patches = [
'GCCcore-12.1.0_fix-double-destruct.patch',
'GCCcore-12.2.0_fix-avx512-misoptimization.patch',
'GCCcore-12.2.0_improve-cuda-compatibility.patch',
+ 'GCCcore-12.x_riscv_multiarch_support.patch',
+ 'GCCcore-13.2.0_fix_slp_and_loop_mask_len.patch',
]
checksums = [
{'gcc-12.3.0.tar.gz': '11275aa7bb34cd8ab101d01b341015499f8d9466342a2574ece93f954d92273b'},
@@ -52,6 +54,9 @@ checksums = [
'bb3db707727b9975b0005346ef04230a96b3ad896f004a34262a82a244b5d436'},
{'GCCcore-12.2.0_improve-cuda-compatibility.patch':
'91d00122554b56381592229398540e63baa26d03633292a7fdf338407a4a62d5'},
+ {'GCCcore-12.x_riscv_multiarch_support.patch': '92fc2b17b6943611a657904500fbf3db8160eddbcea320828d4a50a885e2778f'},
+ {'GCCcore-13.2.0_fix_slp_and_loop_mask_len.patch':
+ 'e1d63e04bf494a2f79346ac7454372f117b63288cc18c68876a5b8bdc453cf88'},
]
builddependencies = [
diff --git a/easybuild/easyconfigs/g/GCCcore/GCCcore-12.x_riscv_multiarch_support.patch b/easybuild/easyconfigs/g/GCCcore/GCCcore-12.x_riscv_multiarch_support.patch
new file mode 100644
index 00000000000..ba981cea95c
--- /dev/null
+++ b/easybuild/easyconfigs/g/GCCcore/GCCcore-12.x_riscv_multiarch_support.patch
@@ -0,0 +1,33 @@
+https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=47f95bc4be4eb14730ab3eaaaf8f6e71fda47690
+https://gcc.gnu.org/PR106271
+
+From 47f95bc4be4eb14730ab3eaaaf8f6e71fda47690 Mon Sep 17 00:00:00 2001
+From: Raphael Moreira Zinsly
+Date: Tue, 22 Aug 2023 11:37:04 -0600
+Subject: [PATCH] RISC-V: Add multiarch support on riscv-linux-gnu
+
+This adds multiarch support to the RISC-V port so that bootstraps work with
+Debian out-of-the-box. Without this patch the stage1 compiler is unable to
+find headers/libraries when building the stage1 runtime.
+
+This is functionally (and possibly textually) equivalent to Debian's fix for
+the same problem.
+
+gcc/
+ * config/riscv/t-linux: Add MULTIARCH_DIRNAME.
+---
+ gcc/config/riscv/t-linux | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/gcc/config/riscv/t-linux b/gcc/config/riscv/t-linux
+index 216d2776a18..a6f64f88d25 100644
+--- a/gcc/config/riscv/t-linux
++++ b/gcc/config/riscv/t-linux
+@@ -1,3 +1,5 @@
+ # Only XLEN and ABI affect Linux multilib dir names, e.g. /lib32/ilp32d/
+ MULTILIB_DIRNAMES := $(patsubst rv32%,lib32,$(patsubst rv64%,lib64,$(MULTILIB_DIRNAMES)))
+ MULTILIB_OSDIRNAMES := $(patsubst lib%,../lib%,$(MULTILIB_DIRNAMES))
++
++MULTIARCH_DIRNAME := $(call if_multiarch,$(firstword $(subst -, ,$(target)))-linux-gnu)
+--
+2.39.3
diff --git a/easybuild/easyconfigs/g/GCCcore/GCCcore-13.1.0.eb b/easybuild/easyconfigs/g/GCCcore/GCCcore-13.1.0.eb
index 6b8e8a19de6..d44266b72bf 100644
--- a/easybuild/easyconfigs/g/GCCcore/GCCcore-13.1.0.eb
+++ b/easybuild/easyconfigs/g/GCCcore/GCCcore-13.1.0.eb
@@ -35,6 +35,8 @@ patches = [
'GCCcore-9.3.0_gmp-c99.patch',
'GCCcore-12.1.0_fix-double-destruct.patch',
'GCCcore-12.2.0_fix-avx512-misoptimization.patch',
+ 'GCCcore-12.x_riscv_multiarch_support.patch',
+ 'GCCcore-13.2.0_fix_slp_and_loop_mask_len.patch',
]
checksums = [
{'gcc-13.1.0.tar.gz': 'bacd4c614d8bd5983404585e53478d467a254249e0f1bb747c8bc6d787bd4fa2'},
@@ -49,6 +51,9 @@ checksums = [
{'GCCcore-12.1.0_fix-double-destruct.patch': '2e09c125318b6c15ec60f1807d77fb7d1f32b64a4e5d1c9a3da89ba2ca738d35'},
{'GCCcore-12.2.0_fix-avx512-misoptimization.patch':
'bb3db707727b9975b0005346ef04230a96b3ad896f004a34262a82a244b5d436'},
+ {'GCCcore-12.x_riscv_multiarch_support.patch': '92fc2b17b6943611a657904500fbf3db8160eddbcea320828d4a50a885e2778f'},
+ {'GCCcore-13.2.0_fix_slp_and_loop_mask_len.patch':
+ 'e1d63e04bf494a2f79346ac7454372f117b63288cc18c68876a5b8bdc453cf88'},
]
builddependencies = [
diff --git a/easybuild/easyconfigs/g/GCCcore/GCCcore-13.2.0.eb b/easybuild/easyconfigs/g/GCCcore/GCCcore-13.2.0.eb
index 85c2772cbfa..2876160159d 100644
--- a/easybuild/easyconfigs/g/GCCcore/GCCcore-13.2.0.eb
+++ b/easybuild/easyconfigs/g/GCCcore/GCCcore-13.2.0.eb
@@ -35,6 +35,9 @@ patches = [
'GCCcore-9.3.0_gmp-c99.patch',
'GCCcore-12.1.0_fix-double-destruct.patch',
'GCCcore-12.2.0_fix-avx512-misoptimization.patch',
+ 'GCCcore-13.2.0_fix_slp_and_loop_mask_len.patch',
+ 'GCCcore-12.x_riscv_multiarch_support.patch',
+ 'GCCcore-13.2.0_fix-unguarded-is_convertible-builtin.patch',
]
checksums = [
{'gcc-13.2.0.tar.gz': '8cb4be3796651976f94b9356fa08d833524f62420d6292c5033a9a26af315078'},
@@ -49,6 +52,11 @@ checksums = [
{'GCCcore-12.1.0_fix-double-destruct.patch': '2e09c125318b6c15ec60f1807d77fb7d1f32b64a4e5d1c9a3da89ba2ca738d35'},
{'GCCcore-12.2.0_fix-avx512-misoptimization.patch':
'bb3db707727b9975b0005346ef04230a96b3ad896f004a34262a82a244b5d436'},
+ {'GCCcore-13.2.0_fix_slp_and_loop_mask_len.patch':
+ 'e1d63e04bf494a2f79346ac7454372f117b63288cc18c68876a5b8bdc453cf88'},
+ {'GCCcore-12.x_riscv_multiarch_support.patch': '92fc2b17b6943611a657904500fbf3db8160eddbcea320828d4a50a885e2778f'},
+ {'GCCcore-13.2.0_fix-unguarded-is_convertible-builtin.patch':
+ '8650d6d4f41e32e9f5f23272d27a6d6adce3cd46ff44483f160b1d3bd92b1dbd'},
]
builddependencies = [
diff --git a/easybuild/easyconfigs/g/GCCcore/GCCcore-13.2.0_fix-unguarded-is_convertible-builtin.patch b/easybuild/easyconfigs/g/GCCcore/GCCcore-13.2.0_fix-unguarded-is_convertible-builtin.patch
new file mode 100644
index 00000000000..4e752516115
--- /dev/null
+++ b/easybuild/easyconfigs/g/GCCcore/GCCcore-13.2.0_fix-unguarded-is_convertible-builtin.patch
@@ -0,0 +1,43 @@
+Source: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113241
+
+From 4c66513656775d551db36b53c253cf236f0eeba8 Mon Sep 17 00:00:00 2001
+From: Jonathan Wakely
+Date: Fri, 5 Jan 2024 12:03:22 +0000
+Subject: [PATCH] libstdc++: Do not use __is_convertible unconditionally
+ [PR113241]
+
+The new __is_convertible built-in should only be used after checking
+that it's supported.
+
+libstdc++-v3/ChangeLog:
+
+ PR libstdc++/113241
+ * include/std/type_traits (is_convertible_v): Guard use of
+ built-in with preprocessor check.
+
+(cherry picked from commit 57fa5b60bbbf8038b8a699d2bcebd2a9b2e29aa4)
+---
+ libstdc++-v3/include/std/type_traits | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/libstdc++-v3/include/std/type_traits b/libstdc++-v3/include/std/type_traits
+index 2bd607a8b8f..2b05e371953 100644
+--- a/libstdc++-v3/include/std/type_traits
++++ b/libstdc++-v3/include/std/type_traits
+@@ -3359,8 +3359,13 @@ template
+ #endif
+ template
+ inline constexpr bool is_base_of_v = __is_base_of(_Base, _Derived);
++#if __has_builtin(__is_convertible)
+ template
+ inline constexpr bool is_convertible_v = __is_convertible(_From, _To);
++#else
++template
++ inline constexpr bool is_convertible_v = is_convertible<_From, _To>::value;
++#endif
+ template
+ inline constexpr bool is_invocable_v = is_invocable<_Fn, _Args...>::value;
+ template
+--
+2.39.3
+
diff --git a/easybuild/easyconfigs/g/GCCcore/GCCcore-13.2.0_fix_slp_and_loop_mask_len.patch b/easybuild/easyconfigs/g/GCCcore/GCCcore-13.2.0_fix_slp_and_loop_mask_len.patch
new file mode 100644
index 00000000000..909afb10f3f
--- /dev/null
+++ b/easybuild/easyconfigs/g/GCCcore/GCCcore-13.2.0_fix_slp_and_loop_mask_len.patch
@@ -0,0 +1,114 @@
+This patch fixes an issue where the tree-vectorization fails due to an internal compiler error in [60/11858]
+compute_live_loop_exits on SVE capable AARCH64 architectures
+First encountered on a neoverse_v1 build at https://github.com/EESSI/software-layer/pull/479#issuecomment-1957091774
+Upstream issue https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111478
+Upstream fix from https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=e5f1956498251a4973d52c8aad3faf34d0443169
+Known to work are 13.2.1, 14.0, so the fix probably already made it in there
+
+The second patch is a dependency to make the first one work, as it implements the *-operator used in last_stmt = *si
+
+From: Richard Biener
+Date: Fri, 10 Nov 2023 11:39:11 +0000 (+0100)
+Subject: tree-optimization/110221 - SLP and loop mask/len
+X-Git-Url: https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff_plain;h=e5f1956498251a4973d52c8aad3faf34d0443169;hp=a5922427c29fad177251d89cc946d1c5bfc135eb
+
+tree-optimization/110221 - SLP and loop mask/len
+
+The following fixes the issue that when SLP stmts are internal defs
+but appear invariant because they end up only using invariant defs
+then they get scheduled outside of the loop. This nice optimization
+breaks down when loop masks or lens are applied since those are not
+explicitly tracked as dependences. The following makes sure to never
+schedule internal defs outside of the vectorized loop when the
+loop uses masks/lens.
+
+ PR tree-optimization/110221
+ * tree-vect-slp.cc (vect_schedule_slp_node): When loop
+ masking / len is applied make sure to not schedule
+ intenal defs outside of the loop.
+
+ * gfortran.dg/pr110221.f: New testcase.
+---
+
+diff --git a/gcc/testsuite/gfortran.dg/pr110221.f b/gcc/testsuite/gfortran.dg/pr110221.f
+new file mode 100644
+index 000000000000..8b57384313a7
+--- /dev/null
++++ b/gcc/testsuite/gfortran.dg/pr110221.f
+@@ -0,0 +1,17 @@
++C PR middle-end/68146
++C { dg-do compile }
++C { dg-options "-O2 -w" }
++C { dg-additional-options "-mavx512f --param vect-partial-vector-usage=2" { target avx512f } }
++ SUBROUTINE CJYVB(V,Z,V0,CBJ,CDJ,CBY,CYY)
++ IMPLICIT DOUBLE PRECISION (A,B,G,O-Y)
++ IMPLICIT COMPLEX*16 (C,Z)
++ DIMENSION CBJ(0:*),CDJ(0:*),CBY(0:*)
++ N=INT(V)
++ CALL GAMMA2(VG,GA)
++ DO 65 K=1,N
++ CBY(K)=CYY
++65 CONTINUE
++ CDJ(0)=V0/Z*CBJ(0)-CBJ(1)
++ DO 70 K=1,N
++70 CDJ(K)=-(K+V0)/Z*CBJ(K)+CBJ(K-1)
++ END
+diff --git a/gcc/tree-vect-slp.cc b/gcc/tree-vect-slp.cc
+index 3e5814c3a319..80e279d8f506 100644
+--- a/gcc/tree-vect-slp.cc
++++ b/gcc/tree-vect-slp.cc
+@@ -9081,6 +9081,16 @@ vect_schedule_slp_node (vec_info *vinfo,
+ /* Emit other stmts after the children vectorized defs which is
+ earliest possible. */
+ gimple *last_stmt = NULL;
++ if (auto loop_vinfo = dyn_cast (vinfo))
++ if (LOOP_VINFO_FULLY_MASKED_P (loop_vinfo)
++ || LOOP_VINFO_FULLY_WITH_LENGTH_P (loop_vinfo))
++ {
++ /* But avoid scheduling internal defs outside of the loop when
++ we might have only implicitly tracked loop mask/len defs. */
++ gimple_stmt_iterator si
++ = gsi_after_labels (LOOP_VINFO_LOOP (loop_vinfo)->header);
++ last_stmt = *si;
++ }
+ bool seen_vector_def = false;
+ FOR_EACH_VEC_ELT (SLP_TREE_CHILDREN (node), i, child)
+ if (SLP_TREE_DEF_TYPE (child) == vect_internal_def)
+
+
+From c39cdd9e654540f74cd2478019c40f1611554a44 Mon Sep 17 00:00:00 2001
+From: Richard Biener
+Date: Tue, 18 Apr 2023 16:58:26 +0200
+Subject: [PATCH] Add operator* to gimple_stmt_iterator and gphi_iterator
+
+This allows STL style iterator dereference. It's the same
+as gsi_stmt () or .phi ().
+
+ * gimple-iterator.h (gimple_stmt_iterator::operator*): Add.
+ (gphi_iterator::operator*): Likewise.
+---
+ gcc/gimple-iterator.h | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/gcc/gimple-iterator.h b/gcc/gimple-iterator.h
+index 38352aa95af62..b709923f00dfa 100644
+--- a/gcc/gimple-iterator.h
++++ b/gcc/gimple-iterator.h
+@@ -24,6 +24,8 @@ along with GCC; see the file COPYING3. If not see
+
+ struct gimple_stmt_iterator
+ {
++ gimple *operator * () const { return ptr; }
++
+ /* Sequence node holding the current statement. */
+ gimple_seq_node ptr;
+
+@@ -38,6 +40,8 @@ struct gimple_stmt_iterator
+ /* Iterator over GIMPLE_PHI statements. */
+ struct gphi_iterator : public gimple_stmt_iterator
+ {
++ gphi *operator * () const { return as_a (ptr); }
++
+ gphi *phi () const
+ {
+ return as_a (ptr);
diff --git a/easybuild/easyconfigs/g/GCCcore/GCCcore-13.3.0.eb b/easybuild/easyconfigs/g/GCCcore/GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..77acc578454
--- /dev/null
+++ b/easybuild/easyconfigs/g/GCCcore/GCCcore-13.3.0.eb
@@ -0,0 +1,65 @@
+easyblock = 'EB_GCC'
+
+name = 'GCCcore'
+version = '13.3.0'
+
+homepage = 'https://gcc.gnu.org/'
+description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada,
+ as well as libraries for these languages (libstdc++, libgcj,...)."""
+
+toolchain = SYSTEM
+
+source_urls = [
+ 'https://ftpmirror.gnu.org/gnu/gcc/gcc-%(version)s', # GCC auto-resolving HTTP mirror
+ 'https://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.3.0.tar.bz2',
+ 'mpfr-4.2.1.tar.bz2',
+ 'mpc-1.3.1.tar.gz',
+ 'isl-0.26.tar.bz2',
+ 'newlib-4.4.0.20231231.tar.gz',
+ {'download_filename': '9962793.tar.gz', 'filename': 'nvptx-tools-20240419.tar.gz'},
+]
+patches = [
+ 'GCCcore-6.2.0-fix-find-isl.patch',
+ 'GCCcore-9.3.0_gmp-c99.patch',
+ 'GCCcore-12.x_riscv_multiarch_support.patch',
+]
+checksums = [
+ {'gcc-13.3.0.tar.gz': '3a2b10cab86e32358fdac871546d57e2700e9bdb5875ef33fff5b601265b9e32'},
+ {'gmp-6.3.0.tar.bz2': 'ac28211a7cfb609bae2e2c8d6058d66c8fe96434f740cf6fe2e47b000d1c20cb'},
+ {'mpfr-4.2.1.tar.bz2': 'b9df93635b20e4089c29623b19420c4ac848a1b29df1cfd59f26cab0d2666aa0'},
+ {'mpc-1.3.1.tar.gz': 'ab642492f5cf882b74aa0cb730cd410a81edcdbec895183ce930e706c1c759b8'},
+ {'isl-0.26.tar.bz2': '5eac8664e9d67be6bd0bee5085d6840b8baf738c06814df47eaf4166d9776436'},
+ {'newlib-4.4.0.20231231.tar.gz': '0c166a39e1bf0951dfafcd68949fe0e4b6d3658081d6282f39aeefc6310f2f13'},
+ {'nvptx-tools-20240419.tar.gz': 'a4f65efe0ba960d75a18741faf2b93dbf51c2492a53b734d590ce5da4bd3f237'},
+ {'GCCcore-6.2.0-fix-find-isl.patch': '5ad909606d17d851c6ad629b4fddb6c1621844218b8d139fed18c502a7696c68'},
+ {'GCCcore-9.3.0_gmp-c99.patch': '0e135e1cc7cec701beea9d7d17a61bab34cfd496b4b555930016b98db99f922e'},
+ {'GCCcore-12.x_riscv_multiarch_support.patch': '92fc2b17b6943611a657904500fbf3db8160eddbcea320828d4a50a885e2778f'},
+]
+
+builddependencies = [
+ ('M4', '1.4.19'),
+ ('binutils', '2.42'),
+]
+
+languages = ['c', 'c++', 'fortran']
+
+withisl = True
+withnvptx = True
+
+# Perl is only required when building with NVPTX support
+if withnvptx:
+ osdependencies = ['perl']
+
+moduleclass = 'compiler'
diff --git a/easybuild/easyconfigs/g/GCCcore/GCCcore-14.1.0.eb b/easybuild/easyconfigs/g/GCCcore/GCCcore-14.1.0.eb
new file mode 100644
index 00000000000..fc0025ce01c
--- /dev/null
+++ b/easybuild/easyconfigs/g/GCCcore/GCCcore-14.1.0.eb
@@ -0,0 +1,63 @@
+easyblock = 'EB_GCC'
+
+name = 'GCCcore'
+version = '14.1.0'
+
+homepage = 'https://gcc.gnu.org/'
+description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada,
+ as well as libraries for these languages (libstdc++, libgcj,...)."""
+
+toolchain = SYSTEM
+
+source_urls = [
+ 'https://ftpmirror.gnu.org/gnu/gcc/gcc-%(version)s', # GCC auto-resolving HTTP mirror
+ 'https://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.3.0.tar.bz2',
+ 'mpfr-4.2.1.tar.bz2',
+ 'mpc-1.3.1.tar.gz',
+ 'isl-0.26.tar.bz2',
+ 'newlib-4.4.0.20231231.tar.gz',
+ {'download_filename': '9962793.tar.gz', 'filename': 'nvptx-tools-20240419.tar.gz'},
+]
+patches = [
+ 'GCCcore-6.2.0-fix-find-isl.patch',
+ 'GCCcore-9.3.0_gmp-c99.patch',
+]
+checksums = [
+ {'gcc-14.1.0.tar.gz': 'a0be066c02775002a0fa65ad3c65fb56a8bfd923d072a26ed148c0439ecdb68f'},
+ {'gmp-6.3.0.tar.bz2': 'ac28211a7cfb609bae2e2c8d6058d66c8fe96434f740cf6fe2e47b000d1c20cb'},
+ {'mpfr-4.2.1.tar.bz2': 'b9df93635b20e4089c29623b19420c4ac848a1b29df1cfd59f26cab0d2666aa0'},
+ {'mpc-1.3.1.tar.gz': 'ab642492f5cf882b74aa0cb730cd410a81edcdbec895183ce930e706c1c759b8'},
+ {'isl-0.26.tar.bz2': '5eac8664e9d67be6bd0bee5085d6840b8baf738c06814df47eaf4166d9776436'},
+ {'newlib-4.4.0.20231231.tar.gz': '0c166a39e1bf0951dfafcd68949fe0e4b6d3658081d6282f39aeefc6310f2f13'},
+ {'nvptx-tools-20240419.tar.gz': 'a4f65efe0ba960d75a18741faf2b93dbf51c2492a53b734d590ce5da4bd3f237'},
+ {'GCCcore-6.2.0-fix-find-isl.patch': '5ad909606d17d851c6ad629b4fddb6c1621844218b8d139fed18c502a7696c68'},
+ {'GCCcore-9.3.0_gmp-c99.patch': '0e135e1cc7cec701beea9d7d17a61bab34cfd496b4b555930016b98db99f922e'},
+]
+
+builddependencies = [
+ ('M4', '1.4.19'),
+ ('binutils', '2.42'),
+]
+
+languages = ['c', 'c++', 'fortran']
+
+withisl = True
+withnvptx = True
+
+# Perl is only required when building with NVPTX support
+if withnvptx:
+ osdependencies = ['perl']
+
+moduleclass = 'compiler'
diff --git a/easybuild/easyconfigs/g/GCCcore/GCCcore-14.2.0.eb b/easybuild/easyconfigs/g/GCCcore/GCCcore-14.2.0.eb
new file mode 100644
index 00000000000..438a848145f
--- /dev/null
+++ b/easybuild/easyconfigs/g/GCCcore/GCCcore-14.2.0.eb
@@ -0,0 +1,63 @@
+easyblock = 'EB_GCC'
+
+name = 'GCCcore'
+version = '14.2.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.3.0.tar.bz2',
+ 'mpfr-4.2.1.tar.bz2',
+ 'mpc-1.3.1.tar.gz',
+ 'isl-0.26.tar.bz2',
+ 'newlib-4.4.0.20231231.tar.gz',
+ {'download_filename': '3136cf9.tar.gz', 'filename': 'nvptx-tools-20240801.tar.gz'},
+]
+patches = [
+ 'GCCcore-6.2.0-fix-find-isl.patch',
+ 'GCCcore-9.3.0_gmp-c99.patch',
+]
+checksums = [
+ {'gcc-14.2.0.tar.gz': '7d376d445f93126dc545e2c0086d0f647c3094aae081cdb78f42ce2bc25e7293'},
+ {'gmp-6.3.0.tar.bz2': 'ac28211a7cfb609bae2e2c8d6058d66c8fe96434f740cf6fe2e47b000d1c20cb'},
+ {'mpfr-4.2.1.tar.bz2': 'b9df93635b20e4089c29623b19420c4ac848a1b29df1cfd59f26cab0d2666aa0'},
+ {'mpc-1.3.1.tar.gz': 'ab642492f5cf882b74aa0cb730cd410a81edcdbec895183ce930e706c1c759b8'},
+ {'isl-0.26.tar.bz2': '5eac8664e9d67be6bd0bee5085d6840b8baf738c06814df47eaf4166d9776436'},
+ {'newlib-4.4.0.20231231.tar.gz': '0c166a39e1bf0951dfafcd68949fe0e4b6d3658081d6282f39aeefc6310f2f13'},
+ {'nvptx-tools-20240801.tar.gz': 'a1106bf11b66d12e67194d8aa37196bb96996b614f44b3d3bc1b5854eefec03c'},
+ {'GCCcore-6.2.0-fix-find-isl.patch': '5ad909606d17d851c6ad629b4fddb6c1621844218b8d139fed18c502a7696c68'},
+ {'GCCcore-9.3.0_gmp-c99.patch': '0e135e1cc7cec701beea9d7d17a61bab34cfd496b4b555930016b98db99f922e'},
+]
+
+builddependencies = [
+ ('M4', '1.4.19'),
+ ('binutils', '2.42'),
+]
+
+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-2023a.eb b/easybuild/easyconfigs/g/GCTA/GCTA-1.94.1-gfbf-2023a.eb
new file mode 100644
index 00000000000..ce5b24cd584
--- /dev/null
+++ b/easybuild/easyconfigs/g/GCTA/GCTA-1.94.1-gfbf-2023a.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': '2023a'}
+
+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.26.3'),
+ # Eigen and SpectrA are header-only C++ libraries
+ ('Eigen', '3.4.0'),
+ ('SpectrA', '1.0.1'),
+]
+
+dependencies = [
+ ('Boost', '1.82.0'),
+ ('SQLite', '3.42.0'),
+ ('zstd', '1.5.5'),
+ ('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/GD/GD-2.71-GCCcore-9.3.0.eb b/easybuild/easyconfigs/g/GD/GD-2.71-GCCcore-9.3.0.eb
index a54301ab868..dbaba6f514a 100644
--- a/easybuild/easyconfigs/g/GD/GD-2.71-GCCcore-9.3.0.eb
+++ b/easybuild/easyconfigs/g/GD/GD-2.71-GCCcore-9.3.0.eb
@@ -44,8 +44,8 @@ exts_list = [
]
sanity_check_paths = {
- 'files': ['bin/bdf2gdfont.pl', 'lib/perl5/site_perl/%(perlver)s/x86_64-linux-thread-multi/%(name)s.pm'],
- 'dirs': ['lib/perl5/site_perl/%(perlver)s/x86_64-linux-thread-multi/%(name)s'],
+ 'files': ['bin/bdf2gdfont.pl', 'lib/perl5/site_perl/%(perlver)s/%(arch)s-linux-thread-multi/%(name)s.pm'],
+ 'dirs': ['lib/perl5/site_perl/%(perlver)s/%(arch)s-linux-thread-multi/%(name)s'],
}
modextrapaths = {
diff --git a/easybuild/easyconfigs/g/GD/GD-2.73-GCCcore-10.3.0.eb b/easybuild/easyconfigs/g/GD/GD-2.73-GCCcore-10.3.0.eb
index bf13eba9f37..d796bd89fa9 100644
--- a/easybuild/easyconfigs/g/GD/GD-2.73-GCCcore-10.3.0.eb
+++ b/easybuild/easyconfigs/g/GD/GD-2.73-GCCcore-10.3.0.eb
@@ -46,8 +46,8 @@ exts_list = [
]
sanity_check_paths = {
- 'files': ['bin/bdf2gdfont.pl', 'lib/perl5/site_perl/%(perlver)s/x86_64-linux-thread-multi/%(name)s.pm'],
- 'dirs': ['lib/perl5/site_perl/%(perlver)s/x86_64-linux-thread-multi/%(name)s'],
+ 'files': ['bin/bdf2gdfont.pl', 'lib/perl5/site_perl/%(perlver)s/%(arch)s-linux-thread-multi/%(name)s.pm'],
+ 'dirs': ['lib/perl5/site_perl/%(perlver)s/%(arch)s-linux-thread-multi/%(name)s'],
}
modextrapaths = {
diff --git a/easybuild/easyconfigs/g/GD/GD-2.75-GCCcore-11.3.0.eb b/easybuild/easyconfigs/g/GD/GD-2.75-GCCcore-11.3.0.eb
index d889cb7d1f5..fa02d657bb3 100644
--- a/easybuild/easyconfigs/g/GD/GD-2.75-GCCcore-11.3.0.eb
+++ b/easybuild/easyconfigs/g/GD/GD-2.75-GCCcore-11.3.0.eb
@@ -46,8 +46,8 @@ exts_list = [
]
sanity_check_paths = {
- 'files': ['bin/bdf2gdfont.pl', 'lib/perl5/site_perl/%(perlver)s/x86_64-linux-thread-multi/%(name)s.pm'],
- 'dirs': ['lib/perl5/site_perl/%(perlver)s/x86_64-linux-thread-multi/%(name)s'],
+ 'files': ['bin/bdf2gdfont.pl', 'lib/perl5/site_perl/%(perlver)s/%(arch)s-linux-thread-multi/%(name)s.pm'],
+ 'dirs': ['lib/perl5/site_perl/%(perlver)s/%(arch)s-linux-thread-multi/%(name)s'],
}
modextrapaths = {
diff --git a/easybuild/easyconfigs/g/GDAL/GDAL-2.2.3-foss-2018a-Python-3.6.4.eb b/easybuild/easyconfigs/g/GDAL/GDAL-2.2.3-foss-2018a-Python-3.6.4.eb
index 2e8050c472a..c7f37f1aa94 100644
--- a/easybuild/easyconfigs/g/GDAL/GDAL-2.2.3-foss-2018a-Python-3.6.4.eb
+++ b/easybuild/easyconfigs/g/GDAL/GDAL-2.2.3-foss-2018a-Python-3.6.4.eb
@@ -39,7 +39,7 @@ configopts = '--with-expat=$EBROOTEXPAT --with-libz=$EBROOTLIBZ --with-hdf5=$EBR
configopts += ' --with-xml2=$EBROOTLIBXML2 --with-geos=$EBROOTGEOS/bin/geos-config --with-jpeg=$EBROOTLIBJPEGMINTURBO'
configopts += ' --with-png=$EBROOTLIBPNG --with-sqlite3=$EBROOTSQLITE --with-jasper=$EBROOTJASPER'
configopts += ' --with-libtiff=$EBROOTLIBTIFF --with-pcre=$EBROOTPCRE --with-python=$EBROOTPYTHON/bin/python'
-configopts += ' --with-libgeotiff=$EBROOTLIBGEOTIFF'
+configopts += ' --with-geotiff=$EBROOTLIBGEOTIFF'
modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'}
diff --git a/easybuild/easyconfigs/g/GDAL/GDAL-2.2.3-foss-2018b-Python-2.7.15.eb b/easybuild/easyconfigs/g/GDAL/GDAL-2.2.3-foss-2018b-Python-2.7.15.eb
index a3955f02fc6..f7577ef499c 100644
--- a/easybuild/easyconfigs/g/GDAL/GDAL-2.2.3-foss-2018b-Python-2.7.15.eb
+++ b/easybuild/easyconfigs/g/GDAL/GDAL-2.2.3-foss-2018b-Python-2.7.15.eb
@@ -39,7 +39,7 @@ configopts = '--with-expat=$EBROOTEXPAT --with-libz=$EBROOTLIBZ --with-hdf5=$EBR
configopts += ' --with-xml2=$EBROOTLIBXML2 --with-geos=$EBROOTGEOS/bin/geos-config --with-jpeg=$EBROOTLIBJPEGMINTURBO'
configopts += ' --with-png=$EBROOTLIBPNG --with-sqlite3=$EBROOTSQLITE --with-jasper=$EBROOTJASPER'
configopts += ' --with-libtiff=$EBROOTLIBTIFF --with-pcre=$EBROOTPCRE --with-python=$EBROOTPYTHON/bin/python'
-configopts += ' --with-libgeotiff=$EBROOTLIBGEOTIFF'
+configopts += ' --with-geotiff=$EBROOTLIBGEOTIFF'
modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'}
diff --git a/easybuild/easyconfigs/g/GDAL/GDAL-2.2.3-foss-2018b-Python-3.6.6.eb b/easybuild/easyconfigs/g/GDAL/GDAL-2.2.3-foss-2018b-Python-3.6.6.eb
index 4d5e8a3b166..450fe377a43 100644
--- a/easybuild/easyconfigs/g/GDAL/GDAL-2.2.3-foss-2018b-Python-3.6.6.eb
+++ b/easybuild/easyconfigs/g/GDAL/GDAL-2.2.3-foss-2018b-Python-3.6.6.eb
@@ -39,7 +39,7 @@ configopts = '--with-expat=$EBROOTEXPAT --with-libz=$EBROOTLIBZ --with-hdf5=$EBR
configopts += ' --with-xml2=$EBROOTLIBXML2 --with-geos=$EBROOTGEOS/bin/geos-config --with-jpeg=$EBROOTLIBJPEGMINTURBO'
configopts += ' --with-png=$EBROOTLIBPNG --with-sqlite3=$EBROOTSQLITE --with-jasper=$EBROOTJASPER'
configopts += ' --with-libtiff=$EBROOTLIBTIFF --with-pcre=$EBROOTPCRE --with-python=$EBROOTPYTHON/bin/python'
-configopts += ' --with-libgeotiff=$EBROOTLIBGEOTIFF'
+configopts += ' --with-geotiff=$EBROOTLIBGEOTIFF'
modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'}
diff --git a/easybuild/easyconfigs/g/GDAL/GDAL-2.2.3-intel-2018b-Python-3.6.6.eb b/easybuild/easyconfigs/g/GDAL/GDAL-2.2.3-intel-2018b-Python-3.6.6.eb
index 2523cf04fa3..663815587cf 100644
--- a/easybuild/easyconfigs/g/GDAL/GDAL-2.2.3-intel-2018b-Python-3.6.6.eb
+++ b/easybuild/easyconfigs/g/GDAL/GDAL-2.2.3-intel-2018b-Python-3.6.6.eb
@@ -39,7 +39,7 @@ configopts = '--with-expat=$EBROOTEXPAT --with-libz=$EBROOTLIBZ --with-hdf5=$EBR
configopts += ' --with-xml2=$EBROOTLIBXML2 --with-geos=$EBROOTGEOS/bin/geos-config --with-jpeg=$EBROOTLIBJPEGMINTURBO'
configopts += ' --with-png=$EBROOTLIBPNG --with-sqlite3=$EBROOTSQLITE --with-jasper=$EBROOTJASPER'
configopts += ' --with-libtiff=$EBROOTLIBTIFF --with-pcre=$EBROOTPCRE --with-python=$EBROOTPYTHON/bin/python'
-configopts += ' --with-libgeotiff=$EBROOTLIBGEOTIFF'
+configopts += ' --with-geotiff=$EBROOTLIBGEOTIFF'
modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'}
diff --git a/easybuild/easyconfigs/g/GDAL/GDAL-3.0.0-foss-2019a-Python-2.7.15.eb b/easybuild/easyconfigs/g/GDAL/GDAL-3.0.0-foss-2019a-Python-2.7.15.eb
index 5eb2654fceb..5e3bbcfce52 100644
--- a/easybuild/easyconfigs/g/GDAL/GDAL-3.0.0-foss-2019a-Python-2.7.15.eb
+++ b/easybuild/easyconfigs/g/GDAL/GDAL-3.0.0-foss-2019a-Python-2.7.15.eb
@@ -42,7 +42,7 @@ configopts = '--with-expat=$EBROOTEXPAT --with-libz=$EBROOTLIBZ --with-hdf5=$EBR
configopts += ' --with-xml2=$EBROOTLIBXML2 --with-geos=$EBROOTGEOS/bin/geos-config --with-jpeg=$EBROOTLIBJPEGMINTURBO'
configopts += ' --with-png=$EBROOTLIBPNG --with-sqlite3=$EBROOTSQLITE --with-jasper=$EBROOTJASPER'
configopts += ' --with-libtiff=$EBROOTLIBTIFF --with-pcre=$EBROOTPCRE --with-python=$EBROOTPYTHON/bin/python'
-configopts += ' --with-libgeotiff=$EBROOTLIBGEOTIFF'
+configopts += ' --with-geotiff=$EBROOTLIBGEOTIFF'
modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'}
diff --git a/easybuild/easyconfigs/g/GDAL/GDAL-3.0.0-foss-2019a-Python-3.7.2.eb b/easybuild/easyconfigs/g/GDAL/GDAL-3.0.0-foss-2019a-Python-3.7.2.eb
index c40f8400229..4d2a96f6f1c 100644
--- a/easybuild/easyconfigs/g/GDAL/GDAL-3.0.0-foss-2019a-Python-3.7.2.eb
+++ b/easybuild/easyconfigs/g/GDAL/GDAL-3.0.0-foss-2019a-Python-3.7.2.eb
@@ -42,7 +42,7 @@ configopts = '--with-expat=$EBROOTEXPAT --with-libz=$EBROOTLIBZ --with-hdf5=$EBR
configopts += ' --with-xml2=$EBROOTLIBXML2 --with-geos=$EBROOTGEOS/bin/geos-config --with-jpeg=$EBROOTLIBJPEGMINTURBO'
configopts += ' --with-png=$EBROOTLIBPNG --with-sqlite3=$EBROOTSQLITE --with-jasper=$EBROOTJASPER'
configopts += ' --with-libtiff=$EBROOTLIBTIFF --with-pcre=$EBROOTPCRE --with-python=$EBROOTPYTHON/bin/python'
-configopts += ' --with-libgeotiff=$EBROOTLIBGEOTIFF'
+configopts += ' --with-geotiff=$EBROOTLIBGEOTIFF'
modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'}
diff --git a/easybuild/easyconfigs/g/GDAL/GDAL-3.0.0-intel-2019a-Python-2.7.15.eb b/easybuild/easyconfigs/g/GDAL/GDAL-3.0.0-intel-2019a-Python-2.7.15.eb
index 0aa81a50d9a..1352000d7b6 100644
--- a/easybuild/easyconfigs/g/GDAL/GDAL-3.0.0-intel-2019a-Python-2.7.15.eb
+++ b/easybuild/easyconfigs/g/GDAL/GDAL-3.0.0-intel-2019a-Python-2.7.15.eb
@@ -46,7 +46,7 @@ configopts = '--with-expat=$EBROOTEXPAT --with-libz=$EBROOTLIBZ --with-hdf5=$EBR
configopts += ' --with-xml2=$EBROOTLIBXML2 --with-geos=$EBROOTGEOS/bin/geos-config --with-jpeg=$EBROOTLIBJPEGMINTURBO'
configopts += ' --with-png=$EBROOTLIBPNG --with-sqlite3=$EBROOTSQLITE --with-jasper=$EBROOTJASPER'
configopts += ' --with-libtiff=$EBROOTLIBTIFF --with-pcre=$EBROOTPCRE --with-python=$EBROOTPYTHON/bin/python'
-configopts += ' --with-libgeotiff=$EBROOTLIBGEOTIFF'
+configopts += ' --with-geotiff=$EBROOTLIBGEOTIFF'
prebuildopts = "export LDSHARED='icc -shared' && "
modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'}
diff --git a/easybuild/easyconfigs/g/GDAL/GDAL-3.0.0-intel-2019a-Python-3.7.2.eb b/easybuild/easyconfigs/g/GDAL/GDAL-3.0.0-intel-2019a-Python-3.7.2.eb
index 141c37f1165..9bcb96c48ae 100644
--- a/easybuild/easyconfigs/g/GDAL/GDAL-3.0.0-intel-2019a-Python-3.7.2.eb
+++ b/easybuild/easyconfigs/g/GDAL/GDAL-3.0.0-intel-2019a-Python-3.7.2.eb
@@ -46,7 +46,7 @@ configopts = '--with-expat=$EBROOTEXPAT --with-libz=$EBROOTLIBZ --with-hdf5=$EBR
configopts += ' --with-xml2=$EBROOTLIBXML2 --with-geos=$EBROOTGEOS/bin/geos-config --with-jpeg=$EBROOTLIBJPEGMINTURBO'
configopts += ' --with-png=$EBROOTLIBPNG --with-sqlite3=$EBROOTSQLITE --with-jasper=$EBROOTJASPER'
configopts += ' --with-libtiff=$EBROOTLIBTIFF --with-pcre=$EBROOTPCRE --with-python=$EBROOTPYTHON/bin/python'
-configopts += ' --with-libgeotiff=$EBROOTLIBGEOTIFF'
+configopts += ' --with-geotiff=$EBROOTLIBGEOTIFF'
prebuildopts = "export LDSHARED='icc -shared' && "
modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'}
diff --git a/easybuild/easyconfigs/g/GDAL/GDAL-3.0.2-foss-2019b-Python-3.7.4.eb b/easybuild/easyconfigs/g/GDAL/GDAL-3.0.2-foss-2019b-Python-3.7.4.eb
index 1d2268d9ecd..9080eca50a1 100644
--- a/easybuild/easyconfigs/g/GDAL/GDAL-3.0.2-foss-2019b-Python-3.7.4.eb
+++ b/easybuild/easyconfigs/g/GDAL/GDAL-3.0.2-foss-2019b-Python-3.7.4.eb
@@ -45,7 +45,7 @@ configopts = '--with-expat=$EBROOTEXPAT --with-libz=$EBROOTLIBZ --with-hdf5=$EBR
configopts += ' --with-xml2=$EBROOTLIBXML2 --with-geos=$EBROOTGEOS/bin/geos-config --with-jpeg=$EBROOTLIBJPEGMINTURBO'
configopts += ' --with-png=$EBROOTLIBPNG --with-sqlite3=$EBROOTSQLITE --with-jasper=$EBROOTJASPER'
configopts += ' --with-libtiff=$EBROOTLIBTIFF --with-pcre=$EBROOTPCRE --with-python=$EBROOTPYTHON/bin/python'
-configopts += ' --with-libgeotiff=$EBROOTLIBGEOTIFF --with-hdf4=$EBROOTHDF'
+configopts += ' --with-geotiff=$EBROOTLIBGEOTIFF --with-hdf4=$EBROOTHDF'
modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'}
diff --git a/easybuild/easyconfigs/g/GDAL/GDAL-3.0.2-fosscuda-2019b-Python-3.7.4.eb b/easybuild/easyconfigs/g/GDAL/GDAL-3.0.2-fosscuda-2019b-Python-3.7.4.eb
index 8cbf568debb..233ccbc1518 100644
--- a/easybuild/easyconfigs/g/GDAL/GDAL-3.0.2-fosscuda-2019b-Python-3.7.4.eb
+++ b/easybuild/easyconfigs/g/GDAL/GDAL-3.0.2-fosscuda-2019b-Python-3.7.4.eb
@@ -46,7 +46,7 @@ configopts = '--with-expat=$EBROOTEXPAT --with-libz=$EBROOTLIBZ --with-hdf5=$EBR
configopts += ' --with-xml2=$EBROOTLIBXML2 --with-geos=$EBROOTGEOS/bin/geos-config --with-jpeg=$EBROOTLIBJPEGMINTURBO'
configopts += ' --with-png=$EBROOTLIBPNG --with-sqlite3=$EBROOTSQLITE --with-jasper=$EBROOTJASPER'
configopts += ' --with-libtiff=$EBROOTLIBTIFF --with-pcre=$EBROOTPCRE --with-python=$EBROOTPYTHON/bin/python'
-configopts += ' --with-libgeotiff=$EBROOTLIBGEOTIFF --with-hdf4=$EBROOTHDF'
+configopts += ' --with-geotiff=$EBROOTLIBGEOTIFF --with-hdf4=$EBROOTHDF'
# GPU support
configopts += ' --with-opencl=yes'
diff --git a/easybuild/easyconfigs/g/GDAL/GDAL-3.0.2-intel-2019b-Python-3.7.4.eb b/easybuild/easyconfigs/g/GDAL/GDAL-3.0.2-intel-2019b-Python-3.7.4.eb
index 34d6ebadafb..b63353818cb 100644
--- a/easybuild/easyconfigs/g/GDAL/GDAL-3.0.2-intel-2019b-Python-3.7.4.eb
+++ b/easybuild/easyconfigs/g/GDAL/GDAL-3.0.2-intel-2019b-Python-3.7.4.eb
@@ -45,7 +45,7 @@ configopts = '--with-expat=$EBROOTEXPAT --with-libz=$EBROOTLIBZ --with-hdf5=$EBR
configopts += ' --with-xml2=$EBROOTLIBXML2 --with-geos=$EBROOTGEOS/bin/geos-config --with-jpeg=$EBROOTLIBJPEGMINTURBO'
configopts += ' --with-png=$EBROOTLIBPNG --with-sqlite3=$EBROOTSQLITE --with-jasper=$EBROOTJASPER'
configopts += ' --with-libtiff=$EBROOTLIBTIFF --with-pcre=$EBROOTPCRE --with-python=$EBROOTPYTHON/bin/python'
-configopts += ' --with-libgeotiff=$EBROOTLIBGEOTIFF --with-hdf4=$EBROOTHDF'
+configopts += ' --with-geotiff=$EBROOTLIBGEOTIFF --with-hdf4=$EBROOTHDF'
prebuildopts = "export LDSHARED='icc -shared' && "
diff --git a/easybuild/easyconfigs/g/GDAL/GDAL-3.0.4-foss-2020a-Python-3.8.2.eb b/easybuild/easyconfigs/g/GDAL/GDAL-3.0.4-foss-2020a-Python-3.8.2.eb
index e30c6613eda..761fe352c83 100644
--- a/easybuild/easyconfigs/g/GDAL/GDAL-3.0.4-foss-2020a-Python-3.8.2.eb
+++ b/easybuild/easyconfigs/g/GDAL/GDAL-3.0.4-foss-2020a-Python-3.8.2.eb
@@ -48,7 +48,7 @@ configopts += ' --with-hdf5=$EBROOTHDF5 --with-netcdf=$EBROOTNETCDF'
configopts += ' --with-xml2=$EBROOTLIBXML2 --with-geos=$EBROOTGEOS/bin/geos-config --with-jpeg=$EBROOTLIBJPEGMINTURBO'
configopts += ' --with-png=$EBROOTLIBPNG --with-sqlite3=$EBROOTSQLITE --with-jasper=$EBROOTJASPER'
configopts += ' --with-libtiff=$EBROOTLIBTIFF --with-pcre=$EBROOTPCRE --with-python=$EBROOTPYTHON/bin/python'
-configopts += ' --with-libgeotiff=$EBROOTLIBGEOTIFF --with-hdf4=$EBROOTHDF'
+configopts += ' --with-geotiff=$EBROOTLIBGEOTIFF --with-hdf4=$EBROOTHDF'
modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'}
diff --git a/easybuild/easyconfigs/g/GDAL/GDAL-3.0.4-intel-2020a-Python-3.8.2.eb b/easybuild/easyconfigs/g/GDAL/GDAL-3.0.4-intel-2020a-Python-3.8.2.eb
index 572bd3e1396..107318804f2 100644
--- a/easybuild/easyconfigs/g/GDAL/GDAL-3.0.4-intel-2020a-Python-3.8.2.eb
+++ b/easybuild/easyconfigs/g/GDAL/GDAL-3.0.4-intel-2020a-Python-3.8.2.eb
@@ -48,7 +48,7 @@ configopts += ' --without-hdf4 --with-hdf5=$EBROOTHDF5 --with-netcdf=$EBROOTNETC
configopts += ' --with-xml2=$EBROOTLIBXML2 --with-geos=$EBROOTGEOS/bin/geos-config --with-jpeg=$EBROOTLIBJPEGMINTURBO'
configopts += ' --with-png=$EBROOTLIBPNG --with-sqlite3=$EBROOTSQLITE --with-jasper=$EBROOTJASPER'
configopts += ' --with-libtiff=$EBROOTLIBTIFF --with-pcre=$EBROOTPCRE --with-python=$EBROOTPYTHON/bin/python'
-configopts += ' --with-libgeotiff=$EBROOTLIBGEOTIFF --with-hdf4=$EBROOTHDF'
+configopts += ' --with-geotiff=$EBROOTLIBGEOTIFF --with-hdf4=$EBROOTHDF'
prebuildopts = 'export LDSHARED="$CC -shared" && '
diff --git a/easybuild/easyconfigs/g/GDAL/GDAL-3.5.0-foss-2022a.eb b/easybuild/easyconfigs/g/GDAL/GDAL-3.5.0-foss-2022a.eb
index 6babf890be5..e251ec038b9 100644
--- a/easybuild/easyconfigs/g/GDAL/GDAL-3.5.0-foss-2022a.eb
+++ b/easybuild/easyconfigs/g/GDAL/GDAL-3.5.0-foss-2022a.eb
@@ -33,7 +33,6 @@ dependencies = [
('libxml2', '2.9.13'),
('libpng', '1.6.37'),
('libjpeg-turbo', '2.1.3'),
- ('JasPer', '2.0.33'),
('LibTIFF', '4.3.0'),
('zlib', '1.2.12'),
('cURL', '7.83.0'),
@@ -50,10 +49,12 @@ preconfigopts = r"sed -e 's/-llapack/\$LIBLAPACK/g' -i.eb configure && "
configopts = '--with-expat=$EBROOTEXPAT --with-libz=$EBROOTLIBZ'
configopts += ' --with-hdf5=$EBROOTHDF5 --with-netcdf=$EBROOTNETCDF'
configopts += ' --with-xml2=yes --with-geos=$EBROOTGEOS/bin/geos-config --with-jpeg=$EBROOTLIBJPEGMINTURBO'
-configopts += ' --with-png=$EBROOTLIBPNG --with-sqlite3=$EBROOTSQLITE --with-jasper=$EBROOTJASPER'
+configopts += ' --with-png=$EBROOTLIBPNG --with-sqlite3=$EBROOTSQLITE'
configopts += ' --with-libtiff=$EBROOTLIBTIFF --with-pcre=$EBROOTPCRE --with-python=$EBROOTPYTHON/bin/python'
configopts += ' --with-geotiff=$EBROOTLIBGEOTIFF --with-hdf4=$EBROOTHDF'
+maxparallel = 100
+
modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'}
sanity_check_paths = {
diff --git a/easybuild/easyconfigs/g/GDAL/GDAL-3.6.2-foss-2022b.eb b/easybuild/easyconfigs/g/GDAL/GDAL-3.6.2-foss-2022b.eb
index 7e3c17c850f..576d90e74d6 100644
--- a/easybuild/easyconfigs/g/GDAL/GDAL-3.6.2-foss-2022b.eb
+++ b/easybuild/easyconfigs/g/GDAL/GDAL-3.6.2-foss-2022b.eb
@@ -35,7 +35,6 @@ dependencies = [
('libxml2', '2.10.3'),
('libpng', '1.6.38'),
('libjpeg-turbo', '2.1.4'),
- ('JasPer', '4.0.0'),
('LibTIFF', '4.4.0'),
('zlib', '1.2.12'),
('cURL', '7.86.0'),
@@ -62,9 +61,9 @@ dependencies = [
# common configopts for static, shared library builds
_base_configopts = ' '.join([
'-DGDAL_USE_INTERNAL_LIBS=OFF',
- '-DArrow_DIR=$EBROOTARROW',
'-DGEOTIFF_INCLUDE_DIR=$EBROOTLIBGEOTIFF/include',
'-DPython_ROOT=$EBROOTPYTHON',
+ '-DGDAL_USE_MYSQL=OFF',
])
# iterative build for both static and shared libraries
diff --git a/easybuild/easyconfigs/g/GDAL/GDAL-3.7.1-foss-2023a.eb b/easybuild/easyconfigs/g/GDAL/GDAL-3.7.1-foss-2023a.eb
index 721bd3a5e34..88e35cd4db4 100644
--- a/easybuild/easyconfigs/g/GDAL/GDAL-3.7.1-foss-2023a.eb
+++ b/easybuild/easyconfigs/g/GDAL/GDAL-3.7.1-foss-2023a.eb
@@ -36,7 +36,6 @@ dependencies = [
('libxml2', '2.11.4'),
('libpng', '1.6.39'),
('libjpeg-turbo', '2.1.5.1'),
- ('JasPer', '4.0.0'),
('LibTIFF', '4.5.0'),
('zlib', '1.2.13'),
('cURL', '8.0.1'),
@@ -62,7 +61,7 @@ dependencies = [
]
# iterative build for both static and shared libraries
-local_configopts_common = "-DGDAL_USE_INTERNAL_LIBS=OFF -DArrow_DIR=$EBROOTARROW "
+local_configopts_common = "-DGDAL_USE_INTERNAL_LIBS=OFF -DGDAL_USE_MYSQL=OFF "
local_configopts_common += "-DGEOTIFF_INCLUDE_DIR=$EBROOTLIBGEOTIFF/include -DPython_ROOT=$EBROOTPYTHON "
configopts = [
diff --git a/easybuild/easyconfigs/g/GDAL/GDAL-3.9.0-foss-2023b.eb b/easybuild/easyconfigs/g/GDAL/GDAL-3.9.0-foss-2023b.eb
new file mode 100644
index 00000000000..21299457516
--- /dev/null
+++ b/easybuild/easyconfigs/g/GDAL/GDAL-3.9.0-foss-2023b.eb
@@ -0,0 +1,81 @@
+easyblock = 'CMakeMake'
+
+name = 'GDAL'
+version = '3.9.0'
+
+homepage = 'https://www.gdal.org'
+description = """GDAL is a translator library for raster geospatial data formats that is released under an X/MIT style
+ Open Source license by the Open Source Geospatial Foundation. As a library, it presents a single abstract data model
+ to the calling application for all supported formats. It also comes with a variety of useful commandline utilities for
+ data translation and processing."""
+
+toolchain = {'name': 'foss', 'version': '2023b'}
+toolchainopts = {'usempi': True}
+
+source_urls = ['https://download.osgeo.org/%(namelower)s/%(version)s/']
+sources = [SOURCELOWER_TAR_XZ]
+patches = ['%(name)s-3.6.2_fix-python-CC-CXX.patch']
+checksums = [
+ {'gdal-3.9.0.tar.xz': '577f80e9d14ff7c90b6bfbc34201652b4546700c01543efb4f4c3050e0b3fda2'},
+ {'GDAL-3.6.2_fix-python-CC-CXX.patch': '859b874b0c8ff7626a76d51f008bf05b7f89a35b325bdd1d126d2364154acc63'},
+]
+
+builddependencies = [
+ ('CMake', '3.27.6'),
+ ('pkgconf', '2.0.3'),
+ ('Bison', '3.8.2'),
+]
+dependencies = [
+ ('Python', '3.11.5'),
+ ('netCDF', '4.9.2'),
+ ('expat', '2.5.0'),
+ ('GEOS', '3.12.1'),
+ ('SQLite', '3.43.1'),
+ ('libarchive', '3.7.2'),
+ ('libxml2', '2.11.5'),
+ ('libpng', '1.6.40'),
+ ('libjpeg-turbo', '3.0.1'),
+ ('LibTIFF', '4.6.0'),
+ ('zlib', '1.2.13'),
+ ('cURL', '8.3.0'),
+ ('PCRE', '8.45'),
+ ('PROJ', '9.3.1'),
+ ('libgeotiff', '1.7.3'),
+ ('SciPy-bundle', '2023.11'),
+ ('HDF5', '1.14.3'),
+ ('HDF', '4.2.16-2'),
+ ('Armadillo', '12.8.0'),
+ ('CFITSIO', '4.3.1'),
+ ('zstd', '1.5.5'),
+ ('giflib', '5.2.1'),
+ ('json-c', '0.17'),
+ ('Xerces-C++', '3.2.5'),
+ ('PCRE2', '10.42'),
+ ('OpenEXR', '3.2.0'),
+ ('Brunsli', '0.1'),
+ ('Qhull', '2020.2'),
+ ('LERC', '4.0.0'),
+ ('OpenJPEG', '2.5.0'),
+ ('SWIG', '4.1.1'),
+]
+
+# iterative build for both static and shared libraries
+local_configopts_common = "-DGDAL_USE_INTERNAL_LIBS=OFF -DGDAL_USE_MYSQL=OFF "
+local_configopts_common += "-DGEOTIFF_INCLUDE_DIR=$EBROOTLIBGEOTIFF/include -DPython_ROOT=$EBROOTPYTHON "
+
+configopts = [
+ local_configopts_common + "-DBUILD_SHARED_LIBS=OFF",
+ local_configopts_common
+]
+
+
+sanity_check_paths = {
+ 'files': ['lib/libgdal.a', 'lib/libgdal.%s' % SHLIB_EXT],
+ 'dirs': ['bin', 'include', 'lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = ["python -c 'import osgeo.%(namelower)s'"]
+
+modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'}
+
+moduleclass = 'data'
diff --git a/easybuild/easyconfigs/g/GDB/GDB-14.2-GCCcore-13.3.0.eb b/easybuild/easyconfigs/g/GDB/GDB-14.2-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..7cb65516ac9
--- /dev/null
+++ b/easybuild/easyconfigs/g/GDB/GDB-14.2-GCCcore-13.3.0.eb
@@ -0,0 +1,49 @@
+easyblock = 'ConfigureMake'
+
+name = 'GDB'
+version = '14.2'
+
+homepage = 'https://www.gnu.org/software/gdb/gdb.html'
+description = "The GNU Project Debugger"
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = [GNU_SOURCE]
+sources = [SOURCELOWER_TAR_XZ]
+checksums = ['2d4dd8061d8ded12b6c63f55e45344881e8226105f4d2a9b234040efa5ce7772']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('makeinfo', '7.1'),
+]
+
+dependencies = [
+ ('zlib', '1.3.1'),
+ ('libreadline', '8.2'),
+ ('ncurses', '6.5'),
+ ('expat', '2.6.2'),
+ ('Python', '3.12.3'),
+ ('ISL', '0.26'),
+ ('MPC', '1.3.1'),
+]
+
+preconfigopts = "mkdir obj && cd obj && "
+configure_cmd_prefix = '../'
+prebuildopts = "cd obj && "
+preinstallopts = prebuildopts
+
+configopts = '--with-system-zlib --with-system-readline --with-expat=$EBROOTEXPAT '
+configopts += '--with-python=$EBROOTPYTHON/bin/python --with-isl=$EBROOTISL --with-mpc=$EBROOTMPC '
+configopts += '--enable-tui --enable-plugins --disable-install-libbfd '
+
+sanity_check_paths = {
+ 'files': ['bin/gdb', 'bin/gdbserver'],
+ 'dirs': [],
+}
+
+sanity_check_commands = [
+ 'gdb --help',
+ 'gdbserver --help',
+]
+
+moduleclass = 'debugger'
diff --git a/easybuild/easyconfigs/g/GDGraph/GDGraph-1.56-GCCcore-11.3.0.eb b/easybuild/easyconfigs/g/GDGraph/GDGraph-1.56-GCCcore-11.3.0.eb
index 512c17dc89d..c2bce301db6 100644
--- a/easybuild/easyconfigs/g/GDGraph/GDGraph-1.56-GCCcore-11.3.0.eb
+++ b/easybuild/easyconfigs/g/GDGraph/GDGraph-1.56-GCCcore-11.3.0.eb
@@ -53,12 +53,12 @@ exts_list = [
sanity_check_paths = {
'files': ['bin/bdf2gdfont.pl'],
- 'dirs': ['lib/perl5/site_perl/%(perlver)s/x86_64-linux-thread-multi', 'man'],
+ 'dirs': ['lib/perl5/site_perl/%(perlver)s/%(arch)s-linux-thread-multi', 'man'],
}
modextrapaths = {'PERL5LIB': [
'lib/perl5/site_perl/%(perlver)s',
- 'lib/perl5/site_perl/%(perlver)s/x86_64-linux-thread-multi',
+ 'lib/perl5/site_perl/%(perlver)s/%(arch)s-linux-thread-multi',
]}
moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/g/GDMA/GDMA-2.3.3_20230603-GCC-12.3.0.eb b/easybuild/easyconfigs/g/GDMA/GDMA-2.3.3_20230603-GCC-12.3.0.eb
new file mode 100644
index 00000000000..d22b6d74689
--- /dev/null
+++ b/easybuild/easyconfigs/g/GDMA/GDMA-2.3.3_20230603-GCC-12.3.0.eb
@@ -0,0 +1,42 @@
+easyblock = 'ConfigureMake'
+
+name = 'GDMA'
+version = '2.3.3_20230603'
+_commit = '6b8e81ec'
+
+homepage = 'https://gitlab.com/anthonyjs/gdma'
+description = """
+The GDMA program carries out Distributed Multipole Analysis of wavefunctions
+calculated by the Gaussian system of programs or the Psi4 package, using the
+formatted checkpoint files that they can produce. The result is a set of
+multipole moments at sites defined by the user (usually at the positions of the
+atomic nuclei) which, given an accurate wavefunction, provide an accurate
+description of the electrostatic field of the molecule."""
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+
+sources = [{
+ 'source_urls': ['https://gitlab.com/anthonyjs/gdma/-/archive/'],
+ 'download_filename': '%s.tar.gz' % _commit,
+ 'filename': SOURCE_TAR_GZ,
+}]
+checksums = ['cc008932ae8768e6cbd444337a998e02b2100c123492c260d6020590e76bec1e']
+
+parallel = 1
+
+skipsteps = ['configure']
+
+# avoid using git to obtain the commit: not a cloned repo
+prebuildopts = """sed -i "/^log =/,/^commit =/c commit = '%s'" src/version.py && """ % _commit
+
+preinstallopts = 'mkdir -p %(installdir)s/bin && '
+installopts = 'INSTALL_DIR=%(installdir)s/bin'
+
+sanity_check_paths = {
+ 'files': ['bin/gdma'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ['echo|gdma']
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.1-GCCcore-10.2.0-CUDA-11.1.1.eb b/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.1-GCCcore-10.2.0-CUDA-11.1.1.eb
index c99c15a13e4..915d01b254a 100644
--- a/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.1-GCCcore-10.2.0-CUDA-11.1.1.eb
+++ b/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.1-GCCcore-10.2.0-CUDA-11.1.1.eb
@@ -27,21 +27,21 @@ dependencies = [
('Check', '0.15.2'),
]
-# This easyconfig only installs the library and binaries 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.
+build_info_msg = """This easyconfig only installs the library and binaries 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']
diff --git a/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.1-GCCcore-10.2.0-CUDA-11.2.1.eb b/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.1-GCCcore-10.2.0-CUDA-11.2.1.eb
index accc04a5bde..443bbdd4af7 100644
--- a/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.1-GCCcore-10.2.0-CUDA-11.2.1.eb
+++ b/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.1-GCCcore-10.2.0-CUDA-11.2.1.eb
@@ -27,21 +27,21 @@ dependencies = [
('Check', '0.15.2'),
]
-# This easyconfig only installs the library and binaries 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.
+build_info_msg = """This easyconfig only installs the library and binaries 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']
diff --git a/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.1-GCCcore-9.3.0-CUDA-11.0.2.eb b/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.1-GCCcore-9.3.0-CUDA-11.0.2.eb
index 864159cc441..3c02c5d5c02 100644
--- a/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.1-GCCcore-9.3.0-CUDA-11.0.2.eb
+++ b/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.1-GCCcore-9.3.0-CUDA-11.0.2.eb
@@ -27,21 +27,21 @@ dependencies = [
('Check', '0.15.2'),
]
-# This easyconfig only installs the library and binaries 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.
+build_info_msg = """This easyconfig only installs the library and binaries 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']
diff --git a/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.2-GCCcore-10.2.0.eb b/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.2-GCCcore-10.2.0.eb
index 85810e2394d..f6498b61ef3 100644
--- a/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.2-GCCcore-10.2.0.eb
+++ b/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.2-GCCcore-10.2.0.eb
@@ -20,21 +20,21 @@ builddependencies = [
('pkg-config', '0.29.2'),
]
-# This easyconfig only installs the library of GDRCopy. Please keep in mind
-# that GDRCopy also needs the following kernel modules at runtime:
-#
-# 1. Kernel module for GDRCopy: improves Host to GPU communication
-# https://github.com/NVIDIA/gdrcopy
-# RPM: 'gdrcopy-kmod', DEB: 'gdrdrv-dkms'
-# Requirements: version of GDRCopy kernel module (gdrdrv.ko) >= 2.0
-#
-# 2. (optional) Kernel module for GPUDirect RDMA: improves GPU to GPU communication
-# https://github.com/Mellanox/nv_peer_memory
-# RPM: 'nvidia_peer_memory'
-# Requirements: Mellanox HCA with MLNX_OFED 2.1
-#
-# These kernel modules are not listed as system dependencies to lower the system
-# requirements to build this easyconfig, as they are not needed for the build.
+build_info_msg = """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']
diff --git a/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.2-GCCcore-10.3.0.eb b/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.2-GCCcore-10.3.0.eb
index e9750d55747..cd3d0ee01c6 100644
--- a/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.2-GCCcore-10.3.0.eb
+++ b/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.2-GCCcore-10.3.0.eb
@@ -20,21 +20,21 @@ builddependencies = [
('pkg-config', '0.29.2'),
]
-# This easyconfig only installs the library of GDRCopy. Please keep in mind
-# that GDRCopy also needs the following kernel modules at runtime:
-#
-# 1. Kernel module for GDRCopy: improves Host to GPU communication
-# https://github.com/NVIDIA/gdrcopy
-# RPM: 'gdrcopy-kmod', DEB: 'gdrdrv-dkms'
-# Requirements: version of GDRCopy kernel module (gdrdrv.ko) >= 2.0
-#
-# 2. (optional) Kernel module for GPUDirect RDMA: improves GPU to GPU communication
-# https://github.com/Mellanox/nv_peer_memory
-# RPM: 'nvidia_peer_memory'
-# Requirements: Mellanox HCA with MLNX_OFED 2.1
-#
-# These kernel modules are not listed as system dependencies to lower the system
-# requirements to build this easyconfig, as they are not needed for the build.
+build_info_msg = """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']
diff --git a/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.3-GCCcore-11.2.0.eb b/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.3-GCCcore-11.2.0.eb
index 7074317643e..b6d234c96b7 100644
--- a/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.3-GCCcore-11.2.0.eb
+++ b/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.3-GCCcore-11.2.0.eb
@@ -20,21 +20,21 @@ builddependencies = [
('pkg-config', '0.29.2'),
]
-# This easyconfig only installs the library of GDRCopy. Please keep in mind
-# that GDRCopy also needs the following kernel modules at runtime:
-#
-# 1. Kernel module for GDRCopy: improves Host to GPU communication
-# https://github.com/NVIDIA/gdrcopy
-# RPM: 'gdrcopy-kmod', DEB: 'gdrdrv-dkms'
-# Requirements: version of GDRCopy kernel module (gdrdrv.ko) >= 2.0
-#
-# 2. (optional) Kernel module for GPUDirect RDMA: improves GPU to GPU communication
-# https://github.com/Mellanox/nv_peer_memory
-# RPM: 'nvidia_peer_memory'
-# Requirements: Mellanox HCA with MLNX_OFED 2.1
-#
-# These kernel modules are not listed as system dependencies to lower the system
-# requirements to build this easyconfig, as they are not needed for the build.
+build_info_msg = """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']
diff --git a/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.3-GCCcore-11.3.0.eb b/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.3-GCCcore-11.3.0.eb
index 43ffd95b310..d155d8ae274 100644
--- a/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.3-GCCcore-11.3.0.eb
+++ b/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.3-GCCcore-11.3.0.eb
@@ -20,21 +20,21 @@ builddependencies = [
('pkgconf', '1.8.0'),
]
-# 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.
+build_info_msg = """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']
diff --git a/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.3-GCCcore-12.2.0.eb b/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.3-GCCcore-12.2.0.eb
index c9c58812cf5..44973308cfc 100644
--- a/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.3-GCCcore-12.2.0.eb
+++ b/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.3-GCCcore-12.2.0.eb
@@ -20,21 +20,21 @@ builddependencies = [
('pkgconf', '1.9.3'),
]
-# This easyconfig only installs the library of GDRCopy. Please keep in mind
-# that GDRCopy also needs the following kernel modules at runtime:
-#
-# 1. Kernel module for GDRCopy: improves Host to GPU communication
-# https://github.com/NVIDIA/gdrcopy
-# RPM: 'gdrcopy-kmod', DEB: 'gdrdrv-dkms'
-# Requirements: version of GDRCopy kernel module (gdrdrv.ko) >= 2.0
-#
-# 2. (optional) Kernel module for GPUDirect RDMA: improves GPU to GPU communication
-# https://github.com/Mellanox/nv_peer_memory
-# RPM: 'nvidia_peer_memory'
-# Requirements: Mellanox HCA with MLNX_OFED 2.1
-#
-# These kernel modules are not listed as system dependencies to lower the system
-# requirements to build this easyconfig, as they are not needed for the build.
+build_info_msg = """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']
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
index 9eb358afb3f..b0c0227e952 100644
--- 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
@@ -20,21 +20,21 @@ builddependencies = [
('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.
+build_info_msg = """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']
diff --git a/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.4-GCCcore-13.2.0.eb b/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.4-GCCcore-13.2.0.eb
index d871eaf60d3..56d6902c8a7 100644
--- a/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.4-GCCcore-13.2.0.eb
+++ b/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.4-GCCcore-13.2.0.eb
@@ -20,21 +20,21 @@ builddependencies = [
('pkgconf', '2.0.3'),
]
-# This easyconfig only installs the library of GDRCopy. Please keep in mind
-# that GDRCopy also needs the following kernel modules at runtime:
-#
-# 1. Kernel module for GDRCopy: improves Host to GPU communication
-# https://github.com/NVIDIA/gdrcopy
-# RPM: 'gdrcopy-kmod', DEB: 'gdrdrv-dkms'
-# Requirements: version of GDRCopy kernel module (gdrdrv.ko) >= 2.0
-#
-# 2. (optional) Kernel module for GPUDirect RDMA: improves GPU to GPU communication
-# https://github.com/Mellanox/nv_peer_memory
-# RPM: 'nvidia_peer_memory'
-# Requirements: Mellanox HCA with MLNX_OFED 2.1
-#
-# These kernel modules are not listed as system dependencies to lower the system
-# requirements to build this easyconfig, as they are not needed for the build.
+build_info_msg = """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']
diff --git a/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.4.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.4.1-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..f8e2370943b
--- /dev/null
+++ b/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.4.1-GCCcore-13.3.0.eb
@@ -0,0 +1,52 @@
+easyblock = 'ConfigureMake'
+
+name = 'GDRCopy'
+version = '2.4.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': '13.3.0'}
+toolchainopts = {'pic': True}
+
+github_account = 'NVIDIA'
+source_urls = [GITHUB_SOURCE]
+sources = ['v%(version)s.tar.gz']
+checksums = ['faa7e816e9bad3301e53d6721457f7ef5ab42b7aa3b01ffda51f8e5620bb20ed']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('Autotools', '20231222'),
+ ('pkgconf', '2.2.0'),
+]
+
+build_info_msg = """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/GEOS/GEOS-3.12.1-GCC-13.2.0.eb b/easybuild/easyconfigs/g/GEOS/GEOS-3.12.1-GCC-13.2.0.eb
new file mode 100644
index 00000000000..8dc235ab95c
--- /dev/null
+++ b/easybuild/easyconfigs/g/GEOS/GEOS-3.12.1-GCC-13.2.0.eb
@@ -0,0 +1,26 @@
+easyblock = 'CMakeMake'
+
+name = 'GEOS'
+version = '3.12.1'
+
+homepage = 'https://trac.osgeo.org/geos'
+description = """GEOS (Geometry Engine - Open Source) is a C++ port of the Java Topology Suite (JTS)"""
+
+toolchain = {'name': 'GCC', 'version': '13.2.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://download.osgeo.org/geos/']
+sources = [SOURCELOWER_TAR_BZ2]
+checksums = ['d6ea7e492224b51193e8244fe3ec17c4d44d0777f3c32ca4fb171140549a0d03']
+
+builddependencies = [('CMake', '3.27.6')]
+
+# Build static and shared libraries
+configopts = ['', '-DBUILD_SHARED_LIBS=OFF']
+
+sanity_check_paths = {
+ 'files': ['bin/geos-config', 'lib/libgeos.%s' % SHLIB_EXT, 'lib/libgeos.a', 'include/geos.h'],
+ 'dirs': [],
+}
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/g/GEOS/GEOS-3.12.2-GCC-13.3.0.eb b/easybuild/easyconfigs/g/GEOS/GEOS-3.12.2-GCC-13.3.0.eb
new file mode 100644
index 00000000000..6b174f0bf8a
--- /dev/null
+++ b/easybuild/easyconfigs/g/GEOS/GEOS-3.12.2-GCC-13.3.0.eb
@@ -0,0 +1,27 @@
+easyblock = 'CMakeMake'
+
+name = 'GEOS'
+version = '3.12.2'
+
+homepage = 'https://trac.osgeo.org/geos'
+description = """GEOS (Geometry Engine - Open Source) is a C++ port of the Java Topology Suite (JTS)"""
+
+toolchain = {'name': 'GCC', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://download.osgeo.org/geos/']
+sources = [SOURCELOWER_TAR_BZ2]
+checksums = ['34c7770bf0090ee88488af98767d08e779f124fa33437e0aabec8abd4609fec6']
+
+builddependencies = [('CMake', '3.29.3')]
+
+# Build static and shared libraries
+configopts = ['', '-DBUILD_SHARED_LIBS=OFF']
+
+sanity_check_paths = {
+ 'files': ['bin/geos-config', 'lib/libgeos.%s' % SHLIB_EXT, 'lib/libgeos.a', 'lib/libgeos_c.%s' % SHLIB_EXT,
+ 'include/geos.h'],
+ 'dirs': [],
+}
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/g/GHC/GHC-9.10.1-x86_64.eb b/easybuild/easyconfigs/g/GHC/GHC-9.10.1-x86_64.eb
new file mode 100644
index 00000000000..2074b920ebd
--- /dev/null
+++ b/easybuild/easyconfigs/g/GHC/GHC-9.10.1-x86_64.eb
@@ -0,0 +1,82 @@
+# This is a binary install that requires a './configure' and 'make install' steps for GHC.
+# We pull the centos7 binary tarball as is the one built against oldest system libs,
+# making it upwards compatible with newer distros.
+#
+# To get a functional 'ghc' binary on the SYSTEM toolchain we need
+# gmp headers and ncurses libtinfo.so.5, to avoid requiring extra OS deps for them
+# we include them in this bundle.
+# Binaries obtained with ghc do not require them, so it should be possible to use this bundle
+# just as builddep among different toolchains.
+#
+# For details, see the PR discussion:
+# https://github.com/easybuilders/easybuild-easyconfigs/pull/11310
+
+easyblock = 'Bundle'
+
+name = 'GHC'
+version = '9.10.1'
+versionsuffix = '-x86_64'
+
+homepage = 'https://haskell.org/ghc/'
+description = """The Glorious/Glasgow Haskell Compiler"""
+
+toolchain = SYSTEM
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('M4', '1.4.19'),
+]
+
+default_easyblock = 'ConfigureMake'
+
+local_distro_tarball = 'centos7'
+
+components = [
+ ('GMP', '6.3.0', {
+ 'source_urls': [GNU_SOURCE],
+ 'sources': [SOURCELOWER_TAR_BZ2],
+ 'checksums': ['ac28211a7cfb609bae2e2c8d6058d66c8fe96434f740cf6fe2e47b000d1c20cb'],
+ 'configopts': ' --enable-cxx',
+ 'start_dir': '%(namelower)s-%(version)s',
+ }),
+ ('ncurses', '5.9', {
+ 'source_urls': [GNU_SOURCE],
+ 'sources': [SOURCE_TAR_GZ],
+ 'patches': [
+ 'ncurses-%(version)s_configure_darwin.patch',
+ 'ncurses-%(version)s_fix-missing-const.patch',
+ ],
+ 'checksums': [
+ '9046298fb440324c9d4135ecea7879ffed8546dd1b58e59430ea07a4633f563b',
+ '8c471fc2b1961a6e6e5981b7f7b3512e7fe58fcb04461aa4520157d4c1159998',
+ '027f7bd5876b761b48db624ddbdd106fa1c535dfb2752ef5a0eddeb2a8896cfd',
+ ],
+ 'preconfigopts': "export CPPFLAGS='-P -std=c++14' && ",
+ 'configopts': ' --with-shared --enable-overwrite --with-termlib=tinfo',
+ 'start_dir': '%(namelower)s-%(version)s',
+ }),
+ (name, version, {
+ 'source_urls': ['https://downloads.haskell.org/~ghc/%(version)s/'],
+ 'sources': ['%%(namelower)s-%%(version)s-x86_64-%s-linux.tar.xz' % local_distro_tarball],
+ 'checksums': ['fab143f10f845629cb1b373309b5680667cbaab298cf49827e383ee8a9ddf683'],
+ # ghc-8.6.5-x86_64-centos7-linux.tar.xz
+ 'skipsteps': ['build'],
+ 'preinstallopts': 'LD_LIBRARY_PATH="%(installdir)s/lib:$LD_LIBRARY_PATH" ',
+ 'start_dir': '%(namelower)s-%(version)s-x86_64-unknown-linux',
+ }),
+]
+
+local_ncurses_libs = ["form", "menu", "ncurses", "panel", "tinfo"]
+
+sanity_check_paths = {
+ 'files': ['lib/lib%s.%s' % (x, y) for x in ['gmp', 'gmpxx'] for y in [SHLIB_EXT, 'a']] +
+ ['include/gmp.h', 'include/gmpxx.h'] +
+ ['lib/lib%s%s.a' % (x, y) for x in local_ncurses_libs for y in ['', '_g']] +
+ ['lib/lib%s.%s' % (x, y) for x in local_ncurses_libs for y in [SHLIB_EXT]] +
+ ['bin/ghc', 'bin/ghci', 'bin/ghc-pkg', 'bin/runghc', 'bin/runhaskell'],
+ 'dirs': ['bin', 'lib', 'share', 'include'],
+}
+
+sanity_check_commands = ['ghc --version']
+
+moduleclass = 'compiler'
diff --git a/easybuild/easyconfigs/g/GHC/GHC-9.2.2-x86_64.eb b/easybuild/easyconfigs/g/GHC/GHC-9.2.2-x86_64.eb
index 4ae171a8b3c..e09ebe9ff50 100644
--- a/easybuild/easyconfigs/g/GHC/GHC-9.2.2-x86_64.eb
+++ b/easybuild/easyconfigs/g/GHC/GHC-9.2.2-x86_64.eb
@@ -53,7 +53,7 @@ components = [
'8c471fc2b1961a6e6e5981b7f7b3512e7fe58fcb04461aa4520157d4c1159998',
'027f7bd5876b761b48db624ddbdd106fa1c535dfb2752ef5a0eddeb2a8896cfd',
],
- 'preconfigopts': "export CPPFLAGS='-P' && ",
+ 'preconfigopts': 'export CPPFLAGS="-P" CXXFLAGS="$CXXFLAGS -std=c++14" && ',
'configopts': ' --with-shared --enable-overwrite --with-termlib=tinfo',
}),
(name, version, {
diff --git a/easybuild/easyconfigs/g/GHC/GHC-9.4.6-x86_64.eb b/easybuild/easyconfigs/g/GHC/GHC-9.4.6-x86_64.eb
new file mode 100644
index 00000000000..51f75cd3a9a
--- /dev/null
+++ b/easybuild/easyconfigs/g/GHC/GHC-9.4.6-x86_64.eb
@@ -0,0 +1,84 @@
+# This is a binary install that requires a './configure' and 'make install' steps for GHC.
+# We pull the centos7 binary tarball as is the one built against oldest system libs,
+# making it upwards compatible with newer distros.
+#
+# To get a functional 'ghc' binary on the SYSTEM toolchain we need
+# gmp headers and ncurses libtinfo.so.5, to avoid requiring extra OS deps for them
+# we include them in this bundle.
+# Binaries obtained with ghc do not require them, so it should be possible to use this bundle
+# just as builddep among different toolchains.
+#
+# For details, see the PR discussion:
+# https://github.com/easybuilders/easybuild-easyconfigs/pull/11310
+
+easyblock = 'Bundle'
+
+name = 'GHC'
+version = '9.4.6'
+versionsuffix = '-x86_64'
+
+homepage = 'https://haskell.org/ghc/'
+description = """The Glorious/Glasgow Haskell Compiler"""
+
+toolchain = SYSTEM
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('M4', '1.4.19')
+]
+
+default_easyblock = 'ConfigureMake'
+
+local_distro_tarball = 'centos7'
+
+default_component_specs = {
+ 'start_dir': '%(namelower)s-%(version)s',
+}
+components = [
+ ('GMP', '6.2.1', {
+ 'source_urls': [GNU_SOURCE],
+ 'sources': [SOURCELOWER_TAR_BZ2],
+ 'checksums': ['eae9326beb4158c386e39a356818031bd28f3124cf915f8c5b1dc4c7a36b4d7c'],
+ 'configopts': ' --enable-cxx',
+ 'start_dir': '%(namelower)s-%(version)s',
+ }),
+ ('ncurses', '5.9', {
+ 'source_urls': [GNU_SOURCE],
+ 'sources': [SOURCE_TAR_GZ],
+ 'patches': [
+ 'ncurses-%(version)s_configure_darwin.patch',
+ 'ncurses-%(version)s_fix-missing-const.patch',
+ ],
+ 'checksums': [
+ '9046298fb440324c9d4135ecea7879ffed8546dd1b58e59430ea07a4633f563b',
+ '8c471fc2b1961a6e6e5981b7f7b3512e7fe58fcb04461aa4520157d4c1159998',
+ '027f7bd5876b761b48db624ddbdd106fa1c535dfb2752ef5a0eddeb2a8896cfd',
+ ],
+ 'preconfigopts': "export CPPFLAGS='-P -std=c++14' && ",
+ 'configopts': ' --with-shared --enable-overwrite --with-termlib=tinfo',
+ }),
+ (name, version, {
+ 'source_urls': ['https://downloads.haskell.org/~ghc/%(version)s/'],
+ 'sources': ['%%(namelower)s-%%(version)s-x86_64-%s-linux.tar.xz' % local_distro_tarball],
+ 'checksums': ['13bac0c0cbcfe75982d8b08c51dd5e50116d7760474a07b97bd82a0bd5c2ec18'],
+ # ghc-8.6.5-x86_64-centos7-linux.tar.xz
+ 'skipsteps': ['build'],
+ 'preinstallopts': 'LD_LIBRARY_PATH="%(installdir)s/lib:$LD_LIBRARY_PATH" ',
+ 'start_dir': '%(namelower)s-%(version)s-x86_64-unknown-linux',
+ }),
+]
+
+local_ncurses_libs = ["form", "menu", "ncurses", "panel", "tinfo"]
+
+sanity_check_paths = {
+ 'files': ['lib/lib%s.%s' % (x, y) for x in ['gmp', 'gmpxx'] for y in [SHLIB_EXT, 'a']] +
+ ['include/gmp.h', 'include/gmpxx.h'] +
+ ['lib/lib%s%s.a' % (x, y) for x in local_ncurses_libs for y in ['', '_g']] +
+ ['lib/lib%s.%s' % (x, y) for x in local_ncurses_libs for y in [SHLIB_EXT]] +
+ ['bin/ghc', 'bin/ghci', 'bin/ghc-pkg', 'bin/runghc', 'bin/runhaskell'],
+ 'dirs': ['bin', 'lib', 'share', 'include'],
+}
+
+sanity_check_commands = ['ghc --version']
+
+moduleclass = 'compiler'
diff --git a/easybuild/easyconfigs/g/GI-DocGen/GI-DocGen-2023.3-GCCcore-12.3.0.eb b/easybuild/easyconfigs/g/GI-DocGen/GI-DocGen-2023.3-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..4fae7c08b54
--- /dev/null
+++ b/easybuild/easyconfigs/g/GI-DocGen/GI-DocGen-2023.3-GCCcore-12.3.0.eb
@@ -0,0 +1,48 @@
+# Author: Jasper Grimm (UoY)
+easyblock = 'PythonBundle'
+
+name = 'GI-DocGen'
+version = '2023.3'
+
+homepage = 'https://gitlab.gnome.org/GNOME/gi-docgen'
+description = """
+GI-DocGen is a document generator for GObject-based libraries. GObject is
+the base type system of the GNOME project. GI-Docgen reuses the
+introspection data generated by GObject-based libraries to generate the API
+reference of these libraries, as well as other ancillary documentation.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+builddependencies = [('binutils', '2.40')]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'),
+]
+
+sanity_pip_check = True
+use_pip = True
+
+exts_list = [
+ ('Markdown', '3.5.2', {
+ 'checksums': ['e1ac7b3dc550ee80e602e71c1d168002f062e49f1b11e26a36264dafd4df2ef8'],
+ }),
+ ('typogrify', '2.0.7', {
+ 'checksums': ['8be4668cda434163ce229d87ca273a11922cb1614cb359970b7dc96eed13cb38'],
+ }),
+ ('smartypants', '1.8.3', {
+ 'checksums': ['36dd37a573c74b68ba3614f52ebab0ec7a7ffe4255b7da9c4de46cda3c2e9e68'],
+ }),
+ ('gi-docgen', version, {
+ 'modulename': 'gidocgen',
+ 'checksums': ['977616bcc0e2735bb596c71e8eb34533526680740c666e87f9dfc323acd488f0'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': [],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/g/GKlib-METIS/GKlib-METIS-5.1.1-GCCcore-11.3.0.eb b/easybuild/easyconfigs/g/GKlib-METIS/GKlib-METIS-5.1.1-GCCcore-11.3.0.eb
new file mode 100644
index 00000000000..c5aade36177
--- /dev/null
+++ b/easybuild/easyconfigs/g/GKlib-METIS/GKlib-METIS-5.1.1-GCCcore-11.3.0.eb
@@ -0,0 +1,42 @@
+# This is needed to install newer versions of DGL.
+# The main reason is that the specific version of METIS used in DGL needs is as a
+# third party software and newer versions of DGL don't have that included any more.
+# Author: J. Sassmannshausen (Imperial College Londoni/UK)
+
+easyblock = 'CMakeMake'
+
+name = 'GKlib-METIS'
+version = '5.1.1'
+
+homepage = 'https://github.com/KarypisLab/GKlib'
+description = """A library of various helper routines and frameworks used by
+many of the lab's software"""
+
+toolchain = {'name': 'GCCcore', 'version': '11.3.0'}
+
+sources = [
+ {
+ 'source_urls': ['https://github.com/KarypisLab/GKlib/archive'],
+ 'download_filename': 'METIS-v%(version)s-DistDGL-0.5.tar.gz',
+ 'filename': '%(name)s-v%(version)s-DistDGL-0.5.tar.gz',
+ }
+]
+checksums = ['52aa0d383d42360f4faa0ae9537ba2ca348eeab4db5f2dfd6343192d0ff4b833']
+
+builddependencies = [
+ ('CMake', '3.24.3'),
+ ('binutils', '2.38'),
+]
+
+dependencies = [
+ ('Python', '3.10.4'),
+]
+
+sanity_check_commands = ['gkgraph -help']
+
+sanity_check_paths = {
+ 'files': ['bin/gkgraph'],
+ 'dirs': ['lib', 'include'],
+}
+
+moduleclass = 'ai'
diff --git a/easybuild/easyconfigs/g/GL2PS/GL2PS-1.4.2-GCCcore-12.3.0.eb b/easybuild/easyconfigs/g/GL2PS/GL2PS-1.4.2-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..55df4c13600
--- /dev/null
+++ b/easybuild/easyconfigs/g/GL2PS/GL2PS-1.4.2-GCCcore-12.3.0.eb
@@ -0,0 +1,34 @@
+easyblock = 'CMakeMake'
+
+name = 'GL2PS'
+version = '1.4.2'
+
+homepage = 'https://www.geuz.org/gl2ps/'
+description = """GL2PS: an OpenGL to PostScript printing library"""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = ['https://geuz.org/gl2ps/src/']
+sources = [SOURCELOWER_TGZ]
+checksums = ['8d1c00c1018f96b4b97655482e57dcb0ce42ae2f1d349cd6d4191e7848d9ffe9']
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+ ('binutils', '2.40'),
+]
+
+dependencies = [
+ ('X11', '20230603'),
+ ('Mesa', '23.1.4'),
+ ('libGLU', '9.0.3'),
+ ('freeglut', '3.4.0'),
+ ('libpng', '1.6.39'),
+ ('zlib', '1.2.13'),
+]
+
+sanity_check_paths = {
+ 'files': ['include/gl2ps.h', 'lib/libgl2ps.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/g/GLFW/GLFW-3.4-GCCcore-12.2.0.eb b/easybuild/easyconfigs/g/GLFW/GLFW-3.4-GCCcore-12.2.0.eb
new file mode 100644
index 00000000000..4a154fbe1ee
--- /dev/null
+++ b/easybuild/easyconfigs/g/GLFW/GLFW-3.4-GCCcore-12.2.0.eb
@@ -0,0 +1,39 @@
+easyblock = 'CMakeMake'
+
+name = 'GLFW'
+version = '3.4'
+
+homepage = 'https://www.glfw.org'
+description = """GLFW is an Open Source, multi-platform library for OpenGL,
+OpenGL ES and Vulkan development on the desktop"""
+
+toolchain = {'name': 'GCCcore', 'version': '12.2.0'}
+
+source_urls = ['https://github.com/%(namelower)s/%(namelower)s/archive/']
+sources = ['%(version)s.tar.gz']
+checksums = ['c038d34200234d071fae9345bc455e4a8f2f544ab60150765d7704e08f3dac01']
+
+builddependencies = [
+ ('CMake', '3.24.3'),
+ ('binutils', '2.39'),
+ ('pkgconf', '1.9.3'),
+]
+dependencies = [
+ ('Wayland', '1.22.0'),
+ ('X11', '20221110'),
+]
+
+# build both static and shared libraries
+configopts = [
+ '-DBUILD_SHARED_LIBS=OFF',
+ '-DBUILD_SHARED_LIBS=ON',
+]
+
+
+sanity_check_paths = {
+ 'files': ['include/%(name)s/glfw3.h', 'include/%(name)s/glfw3native.h'] +
+ ['lib/libglfw3.a', 'lib/libglfw.%s' % SHLIB_EXT, 'lib/pkgconfig/glfw3.pc'],
+ 'dirs': ['include/%(name)s', 'lib/cmake/glfw3', 'lib/pkgconfig'],
+}
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/g/GLFW/GLFW-3.4-GCCcore-12.3.0.eb b/easybuild/easyconfigs/g/GLFW/GLFW-3.4-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..dda659e47c2
--- /dev/null
+++ b/easybuild/easyconfigs/g/GLFW/GLFW-3.4-GCCcore-12.3.0.eb
@@ -0,0 +1,39 @@
+easyblock = 'CMakeMake'
+
+name = 'GLFW'
+version = '3.4'
+
+homepage = 'https://www.glfw.org'
+description = """GLFW is an Open Source, multi-platform library for OpenGL,
+OpenGL ES and Vulkan development on the desktop"""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = ['https://github.com/%(namelower)s/%(namelower)s/archive/']
+sources = ['%(version)s.tar.gz']
+checksums = ['c038d34200234d071fae9345bc455e4a8f2f544ab60150765d7704e08f3dac01']
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+ ('binutils', '2.40'),
+ ('pkgconf', '1.9.5'),
+]
+dependencies = [
+ ('Wayland', '1.22.0'),
+ ('X11', '20230603'),
+]
+
+# build both static and shared libraries
+configopts = [
+ '-DBUILD_SHARED_LIBS=OFF',
+ '-DBUILD_SHARED_LIBS=ON',
+]
+
+
+sanity_check_paths = {
+ 'files': ['include/%(name)s/glfw3.h', 'include/%(name)s/glfw3native.h'] +
+ ['lib/libglfw3.a', 'lib/libglfw.%s' % SHLIB_EXT, 'lib/pkgconfig/glfw3.pc'],
+ 'dirs': ['include/%(name)s', 'lib/cmake/glfw3', 'lib/pkgconfig'],
+}
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/g/GLM/GLM-1.0.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/g/GLM/GLM-1.0.1-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..e57a89d030a
--- /dev/null
+++ b/easybuild/easyconfigs/g/GLM/GLM-1.0.1-GCCcore-13.3.0.eb
@@ -0,0 +1,27 @@
+easyblock = 'CMakeMake'
+
+name = 'GLM'
+version = '1.0.1'
+
+homepage = 'https://github.com/g-truc/glm'
+description = """
+OpenGL Mathematics (GLM) is a header only C++ mathematics library for graphics
+software based on the OpenGL Shading Language (GLSL) specifications."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://github.com/g-truc/glm/archive/']
+sources = ['%(version)s.tar.gz']
+checksums = ['9f3174561fd26904b23f0db5e560971cbf9b3cbda0b280f04d5c379d03bf234c']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('CMake', '3.29.3'),
+]
+
+sanity_check_paths = {
+ 'files': [],
+ 'dirs': ['include/glm/gtc', 'include/glm/gtx'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/g/GLPK/GLPK-5.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/g/GLPK/GLPK-5.0-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..b14dcd3409e
--- /dev/null
+++ b/easybuild/easyconfigs/g/GLPK/GLPK-5.0-GCCcore-13.2.0.eb
@@ -0,0 +1,36 @@
+easyblock = 'ConfigureMake'
+
+name = 'GLPK'
+version = '5.0'
+
+homepage = 'https://www.gnu.org/software/glpk/'
+description = """The GLPK (GNU Linear Programming Kit) package is intended for
+ solving large-scale linear programming (LP),
+ mixed integer programming (MIP), and other related problems.
+ It is a set of routines written in ANSI C
+ and organized in the form of a callable library."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+source_urls = [GNU_SOURCE]
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['4a1013eebb50f728fc601bdd833b0b2870333c3b3e5a816eeba921d95bec6f15']
+
+builddependencies = [
+ ('binutils', '2.40'),
+]
+dependencies = [
+ ('GMP', '6.3.0'),
+]
+
+configopts = '--with-gmp'
+
+
+sanity_check_paths = {
+ 'files': ['bin/glpsol', 'include/%(namelower)s.h', 'lib/libglpk.a', 'lib/libglpk.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["glpsol --help"]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/g/GLib/GLib-2.80.4-GCCcore-13.3.0.eb b/easybuild/easyconfigs/g/GLib/GLib-2.80.4-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..f95eacd4a7b
--- /dev/null
+++ b/easybuild/easyconfigs/g/GLib/GLib-2.80.4-GCCcore-13.3.0.eb
@@ -0,0 +1,53 @@
+easyblock = 'MesonNinja'
+
+name = 'GLib'
+version = '2.80.4'
+
+homepage = 'https://www.gtk.org/'
+description = """GLib is one of the base libraries of the GTK+ project"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = [FTPGNOME_SOURCE]
+sources = [SOURCELOWER_TAR_XZ]
+checksums = ['24e029c5dfc9b44e4573697adf33078a9827c48938555004b3b9096fa4ea034f']
+
+builddependencies = [
+ # Python is required for building against GLib, at least when
+ # gdbus-codegen or one of the other python scripts are used.
+ # Since Meson 0.50 and later are Python >=3.5 only we can't build
+ # Python specific versions of GLib that uses Python 2.x
+ # thus Python should not be a runtime dependency for GLib.
+ # Packages that use GLib should either have an explicit
+ # (build)dependency on Python or it will use the system version
+ # EasyBuild itself uses.
+ ('Python', '3.12.3'),
+ ('Meson', '1.4.0'),
+ ('Ninja', '1.12.1'),
+ ('binutils', '2.42'),
+ ('pkgconf', '2.2.0'),
+]
+
+dependencies = [
+ ('libffi', '3.4.5'),
+ ('gettext', '0.22.5'),
+ ('libxml2', '2.12.7'),
+ ('PCRE2', '10.43'),
+ ('util-linux', '2.40'),
+]
+
+# avoid using hardcoded path to Python binary in build step
+preconfigopts = "export PYTHON=python && "
+
+configopts = "--buildtype=release --default-library=both "
+
+fix_python_shebang_for = ['bin/*']
+
+sanity_check_paths = {
+ 'files': ['lib/libglib-%(version_major)s.0.a', 'lib/libglib-%%(version_major)s.0.%s' % SHLIB_EXT],
+ 'dirs': ['bin', 'include'],
+}
+
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/g/GLibmm/GLibmm-2.72.1-GCCcore-11.3.0.eb b/easybuild/easyconfigs/g/GLibmm/GLibmm-2.72.1-GCCcore-11.3.0.eb
new file mode 100644
index 00000000000..728b2ec6a20
--- /dev/null
+++ b/easybuild/easyconfigs/g/GLibmm/GLibmm-2.72.1-GCCcore-11.3.0.eb
@@ -0,0 +1,34 @@
+easyblock = 'MesonNinja'
+
+name = 'GLibmm'
+version = '2.72.1'
+
+homepage = 'https://www.gtk.org/'
+description = """C++ bindings for Glib"""
+
+toolchain = {'name': 'GCCcore', 'version': '11.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://ftp.gnome.org/pub/gnome/sources/glibmm/%(version_major_minor)s/']
+sources = ['%(namelower)s-%(version)s.tar.xz']
+checksums = ['2a7649a28ab5dc53ac4dabb76c9f61599fbc628923ab6a7dd74bf675d9155cd8']
+
+builddependencies = [
+ ('binutils', '2.38'),
+ ('pkgconf', '1.8.0'),
+ ('Meson', '0.62.1'),
+ ('Ninja', '1.10.2'),
+]
+
+dependencies = [
+ ('GLib', '2.72.1'),
+ ('libsigc++', '3.4.0'),
+]
+
+sanity_check_paths = {
+ 'files': ['lib/libglibmm-2.68.%s' % SHLIB_EXT, 'lib/libgiomm-2.68.%s' % SHLIB_EXT,
+ 'include/glibmm-2.68/glibmm.h', 'include/giomm-2.68/giomm.h'],
+ 'dirs': ['lib/pkgconfig'],
+}
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/g/GLibmm/GLibmm-2.75.0-GCCcore-12.2.0.eb b/easybuild/easyconfigs/g/GLibmm/GLibmm-2.75.0-GCCcore-12.2.0.eb
new file mode 100644
index 00000000000..ba2c86f4057
--- /dev/null
+++ b/easybuild/easyconfigs/g/GLibmm/GLibmm-2.75.0-GCCcore-12.2.0.eb
@@ -0,0 +1,34 @@
+easyblock = 'MesonNinja'
+
+name = 'GLibmm'
+version = '2.75.0'
+
+homepage = 'https://www.gtk.org/'
+description = """C++ bindings for Glib"""
+
+toolchain = {'name': 'GCCcore', 'version': '12.2.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://ftp.gnome.org/pub/gnome/sources/glibmm/%(version_major_minor)s/']
+sources = ['%(namelower)s-%(version)s.tar.xz']
+checksums = ['60bb12e66488aa8ce41f0eb2f3612f89f5ddc887e3e4d45498524bf60b266b3d']
+
+builddependencies = [
+ ('binutils', '2.39'),
+ ('pkgconf', '1.9.3'),
+ ('Meson', '0.64.0'),
+ ('Ninja', '1.11.1'),
+]
+
+dependencies = [
+ ('GLib', '2.75.0'),
+ ('libsigc++', '3.6.0'),
+]
+
+sanity_check_paths = {
+ 'files': ['lib/libglibmm-2.68.%s' % SHLIB_EXT, 'lib/libgiomm-2.68.%s' % SHLIB_EXT,
+ 'include/glibmm-2.68/glibmm.h', 'include/giomm-2.68/giomm.h'],
+ 'dirs': ['lib/pkgconfig'],
+}
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/g/GLibmm/GLibmm-2.77.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/g/GLibmm/GLibmm-2.77.0-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..768bdcbb2ed
--- /dev/null
+++ b/easybuild/easyconfigs/g/GLibmm/GLibmm-2.77.0-GCCcore-12.3.0.eb
@@ -0,0 +1,34 @@
+easyblock = 'MesonNinja'
+
+name = 'GLibmm'
+version = '2.77.0'
+
+homepage = 'https://www.gtk.org/'
+description = """C++ bindings for Glib"""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://ftp.gnome.org/pub/gnome/sources/glibmm/%(version_major_minor)s/']
+sources = ['%(namelower)s-%(version)s.tar.xz']
+checksums = ['7cb34684e7ac6dfbf83492a52dff3f919e2fff63eb7810613bf71eb272d5450e']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('pkgconf', '1.9.5'),
+ ('Meson', '1.1.1'),
+ ('Ninja', '1.11.1'),
+]
+
+dependencies = [
+ ('GLib', '2.77.1'),
+ ('libsigc++', '3.6.0'),
+]
+
+sanity_check_paths = {
+ 'files': ['lib/libglibmm-2.68.%s' % SHLIB_EXT, 'lib/libgiomm-2.68.%s' % SHLIB_EXT,
+ 'include/glibmm-2.68/glibmm.h', 'include/giomm-2.68/giomm.h'],
+ 'dirs': ['lib/pkgconfig'],
+}
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/g/GLibmm/GLibmm-2.78.1-GCCcore-13.2.0.eb b/easybuild/easyconfigs/g/GLibmm/GLibmm-2.78.1-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..1cfbeec1c85
--- /dev/null
+++ b/easybuild/easyconfigs/g/GLibmm/GLibmm-2.78.1-GCCcore-13.2.0.eb
@@ -0,0 +1,34 @@
+easyblock = 'MesonNinja'
+
+name = 'GLibmm'
+version = '2.78.1'
+
+homepage = 'https://www.gtk.org/'
+description = """C++ bindings for Glib"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://ftp.gnome.org/pub/gnome/sources/glibmm/%(version_major_minor)s/']
+sources = ['%(namelower)s-%(version)s.tar.xz']
+checksums = ['f473f2975d26c3409e112ed11ed36406fb3843fa975df575c22d4cb843085f61']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('pkgconf', '2.0.3'),
+ ('Meson', '1.2.3'),
+ ('Ninja', '1.11.1'),
+]
+
+dependencies = [
+ ('GLib', '2.78.1'),
+ ('libsigc++', '3.6.0'),
+]
+
+sanity_check_paths = {
+ 'files': ['lib/libglibmm-2.68.%s' % SHLIB_EXT, 'lib/libgiomm-2.68.%s' % SHLIB_EXT,
+ 'include/glibmm-2.68/glibmm.h', 'include/giomm-2.68/giomm.h'],
+ 'dirs': ['lib/pkgconfig'],
+}
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/g/GMAP-GSNAP/GMAP-GSNAP-2023-04-20-GCC-12.3.0.eb b/easybuild/easyconfigs/g/GMAP-GSNAP/GMAP-GSNAP-2023-04-20-GCC-12.3.0.eb
new file mode 100644
index 00000000000..bdd355aef6b
--- /dev/null
+++ b/easybuild/easyconfigs/g/GMAP-GSNAP/GMAP-GSNAP-2023-04-20-GCC-12.3.0.eb
@@ -0,0 +1,55 @@
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+# Author: Pablo Escobar Lopez
+# Swiss Institute of Bioinformatics
+# Biozentrum - University of Basel
+# 2016-11-07 modified by:
+# Adam Huffman
+# The Francis Crick Institute
+
+easyblock = 'ConfigureMake'
+
+name = 'GMAP-GSNAP'
+version = '2023-04-20'
+
+homepage = 'http://research-pub.gene.com/gmap/'
+description = """GMAP: A Genomic Mapping and Alignment Program for mRNA and EST Sequences
+ GSNAP: Genomic Short-read Nucleotide Alignment Program"""
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+
+source_urls = ['http://research-pub.gene.com/gmap/src/']
+sources = [SOURCELOWER_TAR_GZ]
+patches = [
+ 'GMAP-GSNAP-2023-02-17_cleanup-headers.patch',
+ 'GMAP-GSNAP-2023-02-17_fix-typecast.patch',
+]
+checksums = [
+ {'gmap-gsnap-2023-04-20.tar.gz': 'f858bc699cbcc9b3f06751ace55c86bfc21e4ca821a90b10681feac2172b725e'},
+ {'GMAP-GSNAP-2023-02-17_cleanup-headers.patch': '7d17d4cbc717556e3a64475eb931b692e9d564b486acf6c9dbf4c2bf29853832'},
+ {'GMAP-GSNAP-2023-02-17_fix-typecast.patch': 'eafe728cf00cf52320bbf4b710ef76b662df92533d22fa67dc273855c180296f'},
+]
+
+# with these deps you can use standard compressed files
+# details in http://research-pub.gene.com/gmap/src/README
+dependencies = [
+ ('bzip2', '1.0.8'),
+ ('zlib', '1.2.13'),
+]
+
+# 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/GMAP-GSNAP/GMAP-GSNAP-2024-09-18-GCC-13.3.0.eb b/easybuild/easyconfigs/g/GMAP-GSNAP/GMAP-GSNAP-2024-09-18-GCC-13.3.0.eb
new file mode 100644
index 00000000000..25bc1f03a06
--- /dev/null
+++ b/easybuild/easyconfigs/g/GMAP-GSNAP/GMAP-GSNAP-2024-09-18-GCC-13.3.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
+# 2016-11-07 modified by:
+# Adam Huffman
+# The Francis Crick Institute
+
+easyblock = 'ConfigureMake'
+
+name = 'GMAP-GSNAP'
+version = '2024-09-18'
+
+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': '13.3.0'}
+
+source_urls = ['http://research-pub.gene.com/gmap/src/']
+sources = [SOURCELOWER_TAR_GZ]
+patches = [
+ 'GMAP-GSNAP-2024-09-18_fix-source-files-for-haswell.patch',
+]
+checksums = [
+ {'gmap-gsnap-2024-09-18.tar.gz': '00d28c1a8c95295c8edd006cc0d1b5154cabe185de1f5a5dd8ccdb01fab38a18'},
+ {'GMAP-GSNAP-2024-09-18_fix-source-files-for-haswell.patch':
+ 'a7ce5bbc83c16d7d4b5f79cf9d96311943fecb114ecab7c6a45e85e95ba54748'},
+]
+
+# 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.3.1'),
+]
+
+# 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/GMAP-GSNAP/GMAP-GSNAP-2024-09-18_fix-source-files-for-haswell.patch b/easybuild/easyconfigs/g/GMAP-GSNAP/GMAP-GSNAP-2024-09-18_fix-source-files-for-haswell.patch
new file mode 100644
index 00000000000..05112c3e4b5
--- /dev/null
+++ b/easybuild/easyconfigs/g/GMAP-GSNAP/GMAP-GSNAP-2024-09-18_fix-source-files-for-haswell.patch
@@ -0,0 +1,13 @@
+Fix source files for Haswell architecture
+diff -ru gmap-2024-09-18.orig/src/select64-common.h gmap-2024-09-18/src/select64-common.h
+--- gmap-2024-09-18.orig/src/select64-common.h 2023-10-26 02:31:15.000000000 +0200
++++ gmap-2024-09-18/src/select64-common.h 2024-10-15 16:51:04.695772640 +0200
+@@ -67,7 +67,7 @@
+ return place + kSelectInByte[((x >> place) & 0xFF) | (byteRank << 8)];
+ #elif defined(__GNUC__) || defined(__clang__)
+ // GCC and Clang won't inline the intrinsics.
+- uint64_t result = uint64_t(1) << k;
++ uint64_t result = (uint64_t)1 << k;
+
+ asm("pdep %1, %0, %0\n\t"
+ "tzcnt %0, %0"
diff --git a/easybuild/easyconfigs/g/GMP-ECM/GMP-ECM-7.0.5-GCCcore-13.2.0.eb b/easybuild/easyconfigs/g/GMP-ECM/GMP-ECM-7.0.5-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..41f00635646
--- /dev/null
+++ b/easybuild/easyconfigs/g/GMP-ECM/GMP-ECM-7.0.5-GCCcore-13.2.0.eb
@@ -0,0 +1,29 @@
+easyblock = 'ConfigureMake'
+
+name = 'GMP-ECM'
+version = '7.0.5'
+
+homepage = 'https://gitlab.inria.fr/zimmerma/ecm'
+description = "Yet another implementation of the Elliptic Curve Method."
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+source_urls = ['https://gitlab.inria.fr/zimmerma/ecm/uploads/89f6f0d65d3e980cef33dc922004e4b2']
+sources = ['ecm-%(version)s.tar.gz']
+checksums = ['c721dd22e557c4a5dac9ac7e156a400cd2298812dd1f9b56e89966de01471ba8']
+
+builddependencies = [
+ ('M4', '1.4.19'),
+ ('binutils', '2.40'),
+]
+
+dependencies = [('GMP', '6.3.0')]
+
+configopts = "--with-gmp=$EBROOTGMP --enable-shared "
+
+sanity_check_paths = {
+ 'files': ['bin/ecm', 'include/ecm.h'] + ['lib/libecm.%s' % e for e in ['a', SHLIB_EXT]],
+ 'dirs': [],
+}
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/g/GMP/GMP-6.3.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/g/GMP/GMP-6.3.0-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..29f69f73299
--- /dev/null
+++ b/easybuild/easyconfigs/g/GMP/GMP-6.3.0-GCCcore-13.3.0.eb
@@ -0,0 +1,40 @@
+easyblock = 'ConfigureMake'
+
+name = 'GMP'
+version = '6.3.0'
+
+homepage = 'https://gmplib.org/'
+description = """
+ GMP is a free library for arbitrary precision arithmetic, operating on signed
+ integers, rational numbers, and floating point numbers.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'precise': True, 'pic': True}
+
+source_urls = ['https://ftp.gnu.org/gnu/%(namelower)s']
+sources = [SOURCELOWER_TAR_BZ2]
+checksums = ['ac28211a7cfb609bae2e2c8d6058d66c8fe96434f740cf6fe2e47b000d1c20cb']
+
+builddependencies = [
+ ('Autotools', '20231222'),
+ ('binutils', '2.42'),
+]
+
+# 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/GOATOOLS/GOATOOLS-1.4.5-foss-2022b.eb b/easybuild/easyconfigs/g/GOATOOLS/GOATOOLS-1.4.5-foss-2022b.eb
new file mode 100644
index 00000000000..46728a39e63
--- /dev/null
+++ b/easybuild/easyconfigs/g/GOATOOLS/GOATOOLS-1.4.5-foss-2022b.eb
@@ -0,0 +1,73 @@
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+# Author: Denis Kristak
+# Update: Pavel Tománek (Inuits)
+easyblock = 'PythonPackage'
+
+name = 'GOATOOLS'
+version = '1.4.5'
+
+homepage = 'https://github.com/tanghaibao/goatools'
+description = "A Python library for Gene Ontology analyses"
+
+toolchain = {'name': 'foss', 'version': '2022b'}
+
+# must download sources via git to preserve .git directory,
+# since setuptools-scm is used to determine version
+sources = [{
+ 'git_config': {
+ 'url': 'https://github.com/tanghaibao',
+ 'repo_name': 'goatools',
+ 'tag': 'v%(version)s',
+ 'keep_git_dir': True,
+ },
+ 'filename': SOURCE_TAR_GZ,
+}]
+checksums = [None]
+
+builddependencies = [('cURL', '7.86.0')]
+
+dependencies = [
+ ('Python', '3.10.8'),
+ ('SciPy-bundle', '2023.02'),
+ ('XlsxWriter', '3.1.2'),
+ ('statsmodels', '0.14.0'),
+ ('pydot', '2.0.0'),
+ ('openpyxl', '3.1.2'),
+]
+
+exts_defaultclass = 'PythonPackage'
+exts_default_options = {
+ 'source_urls': [PYPI_SOURCE],
+ 'download_dep_fail': True,
+ 'use_pip': True,
+ 'sanity_pip_check': True,
+}
+
+exts_list = [
+ ('ftpretty', '0.4.0', {
+ 'checksums': ['61233b9212f2cceec96ee2c972738fa31cae7248e92d0874c99c04ee739bb5a9'],
+ }),
+]
+
+download_dep_fail = True
+use_pip = True
+
+postinstallcmds = ["cp -a %(builddir)s/goatools/data/ %(installdir)s/"]
+
+sanity_check_paths = {
+ 'files': ['bin/find_enrichment.py'],
+ 'dirs': ['data', 'lib/python%(pyshortver)s/site-packages'],
+}
+
+# example test run, see https://github.com/tanghaibao/goatools/blob/master/run.sh
+sanity_check_commands = [
+ "mkdir -p %(builddir)s",
+ "cd %(builddir)s && curl -OL http://geneontology.org/ontology/go-basic.obo",
+ "cd %(builddir)s && curl -OL http://www.geneontology.org/ontology/subsets/goslim_generic.obo",
+ "cd %(builddir)s && cp -a %(installdir)s/data .",
+ "cd %(builddir)s && find_enrichment.py --pval=0.05 --indent data/study data/population data/association",
+]
+
+sanity_pip_check = True
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/g/GOATOOLS/GOATOOLS-1.4.5-foss-2023a.eb b/easybuild/easyconfigs/g/GOATOOLS/GOATOOLS-1.4.5-foss-2023a.eb
new file mode 100644
index 00000000000..02e35cba627
--- /dev/null
+++ b/easybuild/easyconfigs/g/GOATOOLS/GOATOOLS-1.4.5-foss-2023a.eb
@@ -0,0 +1,72 @@
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+# Author: Denis Kristak
+# Update: Pavel Tománek (Inuits)
+
+easyblock = 'PythonPackage'
+
+name = 'GOATOOLS'
+version = '1.4.5'
+
+homepage = 'https://github.com/tanghaibao/goatools'
+description = "A Python library for Gene Ontology analyses"
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+sources = [{
+ 'git_config': {
+ 'url': 'https://github.com/tanghaibao',
+ 'repo_name': 'goatools',
+ 'tag': 'v%(version)s',
+ 'keep_git_dir': True,
+ },
+ 'filename': SOURCE_TAR_GZ,
+}]
+checksums = [None]
+
+builddependencies = [('cURL', '8.0.1')]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('XlsxWriter', '3.1.3'),
+ ('statsmodels', '0.14.1'),
+ ('pydot', '2.0.0'),
+ ('openpyxl', '3.1.2'),
+]
+
+exts_defaultclass = 'PythonPackage'
+exts_default_options = {
+ 'source_urls': [PYPI_SOURCE],
+ 'download_dep_fail': True,
+ 'use_pip': True,
+ 'sanity_pip_check': True,
+}
+
+exts_list = [
+ ('ftpretty', '0.4.0', {
+ 'checksums': ['61233b9212f2cceec96ee2c972738fa31cae7248e92d0874c99c04ee739bb5a9'],
+ }),
+]
+
+download_dep_fail = True
+use_pip = True
+
+postinstallcmds = ["cp -a %(builddir)s/goatools/data/ %(installdir)s/"]
+
+sanity_check_paths = {
+ 'files': ['bin/find_enrichment.py'],
+ 'dirs': ['data', 'lib/python%(pyshortver)s/site-packages'],
+}
+
+# example test run, see https://github.com/tanghaibao/goatools/blob/master/run.sh
+sanity_check_commands = [
+ "mkdir -p %(builddir)s",
+ "cd %(builddir)s && curl -OL http://geneontology.org/ontology/go-basic.obo",
+ "cd %(builddir)s && curl -OL http://www.geneontology.org/ontology/subsets/goslim_generic.obo",
+ "cd %(builddir)s && cp -a %(installdir)s/data .",
+ "cd %(builddir)s && find_enrichment.py --pval=0.05 --indent data/study data/population data/association",
+]
+
+sanity_pip_check = True
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/g/GOMC/GOMC-2.76-20230613-GCC-11.3.0-CUDA-11.7.0.eb b/easybuild/easyconfigs/g/GOMC/GOMC-2.76-20230613-GCC-11.3.0-CUDA-11.7.0.eb
new file mode 100644
index 00000000000..fbe1458a01a
--- /dev/null
+++ b/easybuild/easyconfigs/g/GOMC/GOMC-2.76-20230613-GCC-11.3.0-CUDA-11.7.0.eb
@@ -0,0 +1,49 @@
+easyblock = 'CMakeMake'
+
+name = 'GOMC'
+version = '2.76-20230613'
+versionsuffix = '-CUDA-%(cudaver)s'
+_commit = '9fc85fb'
+
+homepage = 'https://gomc-wsu.org/'
+description = """GPU Optimized Monte Carlo (GOMC) is a parallel molecular
+simulation code designed for high-performance simulation of large systems."""
+
+toolchain = {'name': 'GCC', 'version': '11.3.0'}
+
+sources = [
+ {
+ 'source_urls': ['https://github.com/GOMC-WSU/GOMC/archive'],
+ 'download_filename': '%s.tar.gz' % _commit,
+ 'filename': SOURCE_TAR_GZ,
+ },
+]
+checksums = ['14725836707e4525cc7daea219a6eb47a8aeb675d01ef6d16ad60a9986dd3c1e']
+
+builddependencies = [
+ ('CMake', '3.23.1'),
+]
+dependencies = [
+ ('CUDA', '11.7.0', '', SYSTEM),
+ ('UCX-CUDA', '1.12.1', versionsuffix),
+]
+
+# default CUDA compute capabilities to use (override via --cuda-compute-capabilities)
+cuda_compute_capabilities = ['6.0', '7.0', '7.5', '8.0', '8.6']
+configopts = '-DCMAKE_CUDA_ARCHITECTURES="%(cuda_cc_cmake)s" '
+
+preinstallopts = 'mkdir %(installdir)s/bin &&'
+install_cmd = 'cp'
+installopts = '%(builddir)s/easybuild_obj/%(name)s_{CPU,GPU}_* %(installdir)s/bin'
+
+_gomc_exe = ['GOMC_CPU_GCMC', 'GOMC_CPU_GEMC', 'GOMC_CPU_NPT', 'GOMC_CPU_NVT', 'GOMC_GPU_GCMC',
+ 'GOMC_GPU_GEMC', 'GOMC_GPU_NPT', 'GOMC_GPU_NVT']
+
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in _gomc_exe],
+ 'dirs': [],
+}
+
+sanity_check_commands = ['%s | grep "Info: GOMC"' % x for x in _gomc_exe]
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/g/GOTCHA/GOTCHA-1.0.7-GCCcore-13.3.0.eb b/easybuild/easyconfigs/g/GOTCHA/GOTCHA-1.0.7-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..4810ca2d6d3
--- /dev/null
+++ b/easybuild/easyconfigs/g/GOTCHA/GOTCHA-1.0.7-GCCcore-13.3.0.eb
@@ -0,0 +1,37 @@
+easyblock = "CMakeMake"
+
+name = "GOTCHA"
+version = "1.0.7"
+
+homepage = "https://gotcha.readthedocs.io/en/latest/"
+description = """Gotcha is a library that wraps functions. Tools can use gotcha to install hooks into other
+libraries, for example putting a wrapper function around libc's malloc. It is similar to LD_PRELOAD, but
+operates via a programmable API. This enables easy methods of accomplishing tasks like code instrumentation
+or wholesale replacement of mechanisms in programs without disrupting their source code."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/LLNL/GOTCHA/archive/']
+sources = ['%(version)s.tar.gz']
+checksums = ['1ecc1917a46ba0a63b75f0668b280e447afcb7623ad171caa35c596355d986f7']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('CMake', '3.29.3'),
+ ('Check', '0.15.2')
+]
+
+configopts = [
+ "-DGOTCHA_ENABLE_TESTS=ON",
+ "-DDEPENDENCIES_PREINSTALLED=ON"
+]
+
+sanity_check_paths = {
+ 'files': [('lib/libgotcha.%s' % SHLIB_EXT, 'lib64/libgotcha.%s' % SHLIB_EXT),
+ 'lib/cmake/gotcha/gotcha-config.cmake',
+ 'include/gotcha/gotcha.h'],
+ 'dirs': []
+}
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.80.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.80.1-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..83ab6981ae3
--- /dev/null
+++ b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.80.1-GCCcore-13.3.0.eb
@@ -0,0 +1,51 @@
+easyblock = 'MesonNinja'
+
+name = 'GObject-Introspection'
+version = '1.80.1'
+
+homepage = 'https://gi.readthedocs.io/en/latest/'
+description = """GObject introspection is a middleware layer between C libraries
+ (using GObject) and language bindings. The C library can be scanned at
+ compile time and generate a metadata file, in addition to the actual
+ native C library. Then at runtime, language bindings can read this
+ metadata and automatically provide bindings to call into the C library."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = [FTPGNOME_SOURCE]
+sources = [SOURCELOWER_TAR_XZ]
+patches = ['GObject-Introspection-1.80.1_install-GLib-GIR-files.patch']
+checksums = [
+ {'gobject-introspection-1.80.1.tar.xz': 'a1df7c424e15bda1ab639c00e9051b9adf5cea1a9e512f8a603b53cd199bc6d8'},
+ {'GObject-Introspection-1.80.1_install-GLib-GIR-files.patch':
+ 'c1909f1b7fd30784ae789ac0b5e45e0ca3dd2456890b864efa86a2f8c2e563aa'},
+]
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('pkgconf', '2.2.0'),
+ ('CMake', '3.29.3'),
+ ('Meson', '1.4.0'),
+ ('Ninja', '1.12.1'),
+ ('Python', '3.12.3'),
+ ('Bison', '3.8.2'),
+ ('cairo', '1.18.0'),
+ ('flex', '2.6.4'),
+]
+
+dependencies = [
+ ('GLib', '2.80.4'),
+ ('libffi', '3.4.5'),
+ ('util-linux', '2.40'),
+]
+
+preconfigopts = "env GI_SCANNER_DISABLE_CACHE=true "
+configopts = "-Dcairo=enabled"
+
+sanity_check_paths = {
+ 'files': ['bin/g-ir-%s' % x for x in ['annotation-tool', 'compiler', 'generate', 'scanner']] +
+ ['lib/libgirepository-1.0.' + SHLIB_EXT],
+ 'dirs': ['include', 'share']
+}
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.80.1_install-GLib-GIR-files.patch b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.80.1_install-GLib-GIR-files.patch
new file mode 100644
index 00000000000..5c09ded1cb2
--- /dev/null
+++ b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.80.1_install-GLib-GIR-files.patch
@@ -0,0 +1,52 @@
+This reverts a commit from upstream
+> build: Do not install generated GLib GIR files
+>
+> GLib 2.79 ships its own introspection data.
+
+However GObject-Introspection requires (optionally) Cairo, which requires GLib
+which requires GLib-Introspection for generating the introspection data.
+
+So there is a cyclic dependency, see https://gitlab.gnome.org/GNOME/gobject-introspection/-/issues/517
+
+Author: Alexander Grund (TU Dresden)
+
+diff --git a/gir/meson.build b/gir/meson.build
+index 3a016831..312aa886 100644
+--- a/gir/meson.build
++++ b/gir/meson.build
+@@ -241,6 +241,8 @@ glib_gir = custom_target('gir-glib',
+ output: 'GLib-2.0.gir',
+ depends: [gir_giscanner_pymod, glib_gir_dep, gdump],
+ depend_files: gir_giscanner_built_files,
++ install: true,
++ install_dir: girdir,
+ env: g_ir_scanner_env,
+ command: glib_command + [
+ '--cflags-begin'] + glib_includes + extra_giscanner_cflags + [
+@@ -308,6 +310,8 @@ gobject_gir = custom_target('gir-gobject',
+ output: 'GObject-2.0.gir',
+ depends: [glib_gir, gir_giscanner_pymod, gobject_gir_dep, gdump],
+ depend_files: gir_giscanner_built_files,
++ install: true,
++ install_dir: girdir,
+ env: g_ir_scanner_env,
+ command: gobject_command + [
+ '--include-uninstalled=' + glib_gir.full_path(),
+@@ -360,6 +364,8 @@ uninstalled_gir_files += custom_target('gir-gmodule',
+ output: 'GModule-2.0.gir',
+ depends: [glib_gir, gir_giscanner_pymod, gmodule_gir_dep, gdump],
+ depend_files: gir_giscanner_built_files,
++ install: true,
++ install_dir: girdir,
+ env: g_ir_scanner_env,
+ command: gmodule_command + [
+ '--include-uninstalled=' + glib_gir.full_path(),
+@@ -455,6 +461,8 @@ gio_gir = custom_target('gir-gio',
+ output: 'Gio-2.0.gir',
+ depends: [gobject_gir, gir_giscanner_pymod, gio_gir_dep, gdump],
+ depend_files: gir_giscanner_built_files,
++ install: true,
++ install_dir: girdir,
+ env: g_ir_scanner_env,
+ command: gio_command + [
+ '--include-uninstalled=' + gobject_gir.full_path(),
diff --git a/easybuild/easyconfigs/g/GPAW-setups/GPAW-setups-24.1.0.eb b/easybuild/easyconfigs/g/GPAW-setups/GPAW-setups-24.1.0.eb
new file mode 100644
index 00000000000..5736c4abcec
--- /dev/null
+++ b/easybuild/easyconfigs/g/GPAW-setups/GPAW-setups-24.1.0.eb
@@ -0,0 +1,27 @@
+easyblock = 'Tarball'
+
+name = 'GPAW-setups'
+version = '24.1.0'
+
+homepage = 'https://wiki.fysik.dtu.dk/gpaw/'
+description = """PAW setups for the GPAW Density Functional Theory package.
+Users can install setups manually using 'gpaw install-data' or use setups from this package.
+The versions of GPAW and GPAW-setups can be intermixed.
+
+Compared to version 0.9.20000, version 24.1.0 contains an new improved Cr setup with 14 electrons,
+which can be manually selected. Otherwise no changes are made, so no results will change.
+"""
+
+toolchain = SYSTEM
+source_urls = ['https://wiki.fysik.dtu.dk/gpaw-files/']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['314d43168f7b57a2d942855d3d5ad21da9ef74e772d37343d416305113a95c23']
+
+modextrapaths = {'GPAW_SETUP_PATH': ''}
+
+moduleclass = 'chem'
+
+sanity_check_paths = {
+ 'files': ['H.LDA.gz'],
+ 'dirs': []
+}
diff --git a/easybuild/easyconfigs/g/GPAW/GPAW-23.9.1-foss-2023a.eb b/easybuild/easyconfigs/g/GPAW/GPAW-23.9.1-foss-2023a.eb
index 25eca6c86b9..60828cc4f31 100644
--- a/easybuild/easyconfigs/g/GPAW/GPAW-23.9.1-foss-2023a.eb
+++ b/easybuild/easyconfigs/g/GPAW/GPAW-23.9.1-foss-2023a.eb
@@ -31,7 +31,7 @@ dependencies = [
('libvdwxc', '0.4.0'),
('ELPA', '2023.05.001'),
('PyYAML', '6.0'),
- ('GPAW-setups', '0.9.20000', '', SYSTEM),
+ ('GPAW-setups', '24.1.0', '', SYSTEM),
]
prebuildopts = 'GPAW_CONFIG=doc/platforms/Linux/EasyBuild/config_foss.py'
diff --git a/easybuild/easyconfigs/g/GPAW/GPAW-24.1.0-foss-2023a.eb b/easybuild/easyconfigs/g/GPAW/GPAW-24.1.0-foss-2023a.eb
index 9c555311a5b..f8e05080924 100644
--- a/easybuild/easyconfigs/g/GPAW/GPAW-24.1.0-foss-2023a.eb
+++ b/easybuild/easyconfigs/g/GPAW/GPAW-24.1.0-foss-2023a.eb
@@ -31,7 +31,7 @@ dependencies = [
('libvdwxc', '0.4.0'),
('ELPA', '2023.05.001'),
('PyYAML', '6.0'),
- ('GPAW-setups', '0.9.20000', '', SYSTEM),
+ ('GPAW-setups', '24.1.0', '', SYSTEM),
]
prebuildopts = 'GPAW_CONFIG=doc/platforms/Linux/EasyBuild/config_foss.py'
diff --git a/easybuild/easyconfigs/g/GPAW/GPAW-24.1.0-intel-2023a.eb b/easybuild/easyconfigs/g/GPAW/GPAW-24.1.0-intel-2023a.eb
new file mode 100644
index 00000000000..b71f0cbdd6e
--- /dev/null
+++ b/easybuild/easyconfigs/g/GPAW/GPAW-24.1.0-intel-2023a.eb
@@ -0,0 +1,49 @@
+easyblock = "PythonPackage"
+
+name = 'GPAW'
+version = '24.1.0'
+
+homepage = 'https://wiki.fysik.dtu.dk/gpaw/'
+description = """GPAW is a density-functional theory (DFT) Python code based on the projector-augmented wave (PAW)
+ method and the atomic simulation environment (ASE). It uses real-space uniform grids and multigrid methods or
+ atom-centered basis-functions."""
+
+toolchain = {'name': 'intel', 'version': '2023a'}
+toolchainopts = {'usempi': True, 'openmp': False}
+
+source_urls = [PYPI_LOWER_SOURCE]
+sources = [SOURCELOWER_TAR_GZ]
+patches = [
+ ('GPAW-20.1.0-Add-Easybuild-configuration-files.patch', 1),
+]
+checksums = [
+ {'gpaw-24.1.0.tar.gz': '14150bdc4b098060164b569699577ff57769a42783d79d37c9eb6cfe9cd506ea'},
+ {'GPAW-20.1.0-Add-Easybuild-configuration-files.patch':
+ '2b337399479bf018a86156ed073dd7a78ec8c0df1f28b015f9284c6bf9fa5f15'},
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('SciPy-bundle', '2023.07'),
+ ('ASE', '3.22.1'),
+ ('libxc', '6.2.2'),
+ ('ELPA', '2023.05.001'),
+ ('PyYAML', '6.0'),
+ ('GPAW-setups', '24.1.0', '', SYSTEM),
+]
+
+prebuildopts = 'GPAW_CONFIG=doc/platforms/Linux/EasyBuild/config_intel.py'
+preinstallopts = prebuildopts
+
+download_dep_fail = True
+use_pip = True
+sanity_pip_check = True
+
+sanity_check_paths = {
+ 'files': ['bin/gpaw%s' % x for x in ['', '-analyse-basis', '-basis', '-plot-parallel-timings',
+ '-runscript', '-setup', '-upfplot']],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages']
+}
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/g/GPAW/GPAW-24.6.0-foss-2023a-ASE-3.23.0.eb b/easybuild/easyconfigs/g/GPAW/GPAW-24.6.0-foss-2023a-ASE-3.23.0.eb
new file mode 100644
index 00000000000..62db4b69440
--- /dev/null
+++ b/easybuild/easyconfigs/g/GPAW/GPAW-24.6.0-foss-2023a-ASE-3.23.0.eb
@@ -0,0 +1,52 @@
+easyblock = "PythonPackage"
+
+name = 'GPAW'
+version = '24.6.0'
+_aseversion = '3.23.0'
+versionsuffix = '-ASE-' + _aseversion
+
+homepage = 'https://wiki.fysik.dtu.dk/gpaw/'
+description = """GPAW is a density-functional theory (DFT) Python code based on the projector-augmented wave (PAW)
+ method and the atomic simulation environment (ASE). It uses real-space uniform grids and multigrid methods or
+ atom-centered basis-functions."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'usempi': True, 'openmp': False}
+
+source_urls = [PYPI_LOWER_SOURCE]
+sources = [SOURCELOWER_TAR_GZ]
+patches = [
+ ('GPAW-20.1.0-Add-Easybuild-configuration-files.patch', 1),
+]
+checksums = [
+ {'gpaw-24.6.0.tar.gz': 'fb48ef0db48c0e321ce5967126a47900bba20c7efb420d6e7b5459983bd8f6f6'},
+ {'GPAW-20.1.0-Add-Easybuild-configuration-files.patch':
+ '2b337399479bf018a86156ed073dd7a78ec8c0df1f28b015f9284c6bf9fa5f15'},
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('SciPy-bundle', '2023.07'),
+ ('ASE', _aseversion),
+ ('libxc', '6.2.2'),
+ ('libvdwxc', '0.4.0'),
+ ('ELPA', '2023.05.001'),
+ ('PyYAML', '6.0'),
+ ('GPAW-setups', '24.1.0', '', SYSTEM),
+]
+
+prebuildopts = 'GPAW_CONFIG=doc/platforms/Linux/EasyBuild/config_foss.py'
+preinstallopts = prebuildopts
+
+download_dep_fail = True
+use_pip = True
+sanity_pip_check = True
+
+sanity_check_paths = {
+ 'files': ['bin/gpaw%s' % x for x in ['', '-analyse-basis', '-basis', '-plot-parallel-timings',
+ '-runscript', '-setup', '-upfplot']],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages']
+}
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/g/GPAW/GPAW-24.6.0-foss-2024a.eb b/easybuild/easyconfigs/g/GPAW/GPAW-24.6.0-foss-2024a.eb
new file mode 100644
index 00000000000..9b8721280c8
--- /dev/null
+++ b/easybuild/easyconfigs/g/GPAW/GPAW-24.6.0-foss-2024a.eb
@@ -0,0 +1,50 @@
+easyblock = "PythonPackage"
+
+name = 'GPAW'
+version = '24.6.0'
+
+homepage = 'https://wiki.fysik.dtu.dk/gpaw/'
+description = """GPAW is a density-functional theory (DFT) Python code based on the projector-augmented wave (PAW)
+ method and the atomic simulation environment (ASE). It uses real-space uniform grids and multigrid methods or
+ atom-centered basis-functions."""
+
+toolchain = {'name': 'foss', 'version': '2024a'}
+toolchainopts = {'usempi': True, 'openmp': False}
+
+source_urls = [PYPI_LOWER_SOURCE]
+sources = [SOURCELOWER_TAR_GZ]
+patches = [
+ ('GPAW-20.1.0-Add-Easybuild-configuration-files.patch', 1),
+]
+checksums = [
+ {'gpaw-24.6.0.tar.gz': 'fb48ef0db48c0e321ce5967126a47900bba20c7efb420d6e7b5459983bd8f6f6'},
+ {'GPAW-20.1.0-Add-Easybuild-configuration-files.patch':
+ '2b337399479bf018a86156ed073dd7a78ec8c0df1f28b015f9284c6bf9fa5f15'},
+]
+
+dependencies = [
+ ('Python', '3.12.3'),
+ ('Python-bundle-PyPI', '2024.06'),
+ ('SciPy-bundle', '2024.05'),
+ ('ASE', '3.23.0'),
+ ('libxc', '6.2.2'),
+ ('libvdwxc', '0.4.0'),
+ ('ELPA', '2024.05.001'),
+ ('PyYAML', '6.0.2'),
+ ('GPAW-setups', '24.1.0', '', SYSTEM),
+]
+
+prebuildopts = 'GPAW_CONFIG=doc/platforms/Linux/EasyBuild/config_foss.py'
+preinstallopts = prebuildopts
+
+download_dep_fail = True
+use_pip = True
+sanity_pip_check = True
+
+sanity_check_paths = {
+ 'files': ['bin/gpaw%s' % x for x in ['', '-analyse-basis', '-basis', '-plot-parallel-timings',
+ '-runscript', '-setup', '-upfplot']],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages']
+}
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/g/GPAW/GPAW-24.6.0-intel-2023a-ASE-3.23.0.eb b/easybuild/easyconfigs/g/GPAW/GPAW-24.6.0-intel-2023a-ASE-3.23.0.eb
new file mode 100644
index 00000000000..dc4091af2d3
--- /dev/null
+++ b/easybuild/easyconfigs/g/GPAW/GPAW-24.6.0-intel-2023a-ASE-3.23.0.eb
@@ -0,0 +1,51 @@
+easyblock = "PythonPackage"
+
+name = 'GPAW'
+version = '24.6.0'
+_aseversion = '3.23.0'
+versionsuffix = '-ASE-' + _aseversion
+
+homepage = 'https://wiki.fysik.dtu.dk/gpaw/'
+description = """GPAW is a density-functional theory (DFT) Python code based on the projector-augmented wave (PAW)
+ method and the atomic simulation environment (ASE). It uses real-space uniform grids and multigrid methods or
+ atom-centered basis-functions."""
+
+toolchain = {'name': 'intel', 'version': '2023a'}
+toolchainopts = {'usempi': True, 'openmp': False}
+
+source_urls = [PYPI_LOWER_SOURCE]
+sources = [SOURCELOWER_TAR_GZ]
+patches = [
+ ('GPAW-20.1.0-Add-Easybuild-configuration-files.patch', 1),
+]
+checksums = [
+ {'gpaw-24.6.0.tar.gz': 'fb48ef0db48c0e321ce5967126a47900bba20c7efb420d6e7b5459983bd8f6f6'},
+ {'GPAW-20.1.0-Add-Easybuild-configuration-files.patch':
+ '2b337399479bf018a86156ed073dd7a78ec8c0df1f28b015f9284c6bf9fa5f15'},
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('SciPy-bundle', '2023.07'),
+ ('ASE', _aseversion),
+ ('libxc', '6.2.2'),
+ ('ELPA', '2023.05.001'),
+ ('PyYAML', '6.0'),
+ ('GPAW-setups', '24.1.0', '', SYSTEM),
+]
+
+prebuildopts = 'GPAW_CONFIG=doc/platforms/Linux/EasyBuild/config_intel.py'
+preinstallopts = prebuildopts
+
+download_dep_fail = True
+use_pip = True
+sanity_pip_check = True
+
+sanity_check_paths = {
+ 'files': ['bin/gpaw%s' % x for x in ['', '-analyse-basis', '-basis', '-plot-parallel-timings',
+ '-runscript', '-setup', '-upfplot']],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages']
+}
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/g/GPflow/GPflow-2.9.2-foss-2022a-CUDA-11.7.0.eb b/easybuild/easyconfigs/g/GPflow/GPflow-2.9.2-foss-2022a-CUDA-11.7.0.eb
new file mode 100644
index 00000000000..8838542f89b
--- /dev/null
+++ b/easybuild/easyconfigs/g/GPflow/GPflow-2.9.2-foss-2022a-CUDA-11.7.0.eb
@@ -0,0 +1,49 @@
+easyblock = 'PythonBundle'
+
+name = 'GPflow'
+version = '2.9.2'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://gpflow.github.io'
+description = """GPflow is a package for building Gaussian process models in Python. It
+implements modern Gaussian process inference for composable kernels and
+likelihoods."""
+
+toolchain = {'name': 'foss', 'version': '2022a'}
+
+dependencies = [
+ ('CUDA', '11.7.0', '', SYSTEM),
+ ('Python', '3.10.4'),
+ ('TensorFlow', '2.11.0', versionsuffix),
+ ('tensorflow-probability', '0.19.0', versionsuffix),
+]
+
+use_pip = True
+
+exts_list = [
+ ('Deprecated', '1.2.14', {
+ 'checksums': ['e5323eb936458dccc2582dc6f9c322c852a775a27065ff2b0c4970b9d53d01b3'],
+ }),
+ ('dropstackframe', '0.1.0', {
+ 'source_tmpl': '%(name)s-%(version)s-py3-none-any.whl',
+ 'checksums': ['d619c7f87d144660f4569d447648830932f7920d570fd14f0dec552c81a0eb22'],
+ }),
+ ('lark', '1.1.9', {
+ 'checksums': ['15fa5236490824c2c4aba0e22d2d6d823575dcaf4cdd1848e34b6ad836240fba'],
+ }),
+ ('check_shapes', '1.1.1', {
+ 'checksums': ['b699fcb1e60bb17e2c97007e444b89eeeea2a9102ff11d61fb52454af5348403'],
+ }),
+ ('multipledispatch', '1.0.0', {
+ 'checksums': ['5c839915465c68206c3e9c473357908216c28383b425361e5d144594bf85a7e0'],
+ }),
+ ('gpflow', version, {
+ 'source_tmpl': 'v%(version)s.tar.gz',
+ 'source_urls': ['https://github.com/GPflow/GPflow/archive/'],
+ 'checksums': ['a32914c2b581b1dd2ac9a6f40352adb5f6f2c32f53028382e542014dd829553e'],
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/g/GPflow/GPflow-2.9.2-foss-2022a.eb b/easybuild/easyconfigs/g/GPflow/GPflow-2.9.2-foss-2022a.eb
new file mode 100644
index 00000000000..b94a4e3bc29
--- /dev/null
+++ b/easybuild/easyconfigs/g/GPflow/GPflow-2.9.2-foss-2022a.eb
@@ -0,0 +1,47 @@
+easyblock = 'PythonBundle'
+
+name = 'GPflow'
+version = '2.9.2'
+
+homepage = 'https://gpflow.github.io'
+description = """GPflow is a package for building Gaussian process models in Python. It
+implements modern Gaussian process inference for composable kernels and
+likelihoods."""
+
+toolchain = {'name': 'foss', 'version': '2022a'}
+
+dependencies = [
+ ('Python', '3.10.4'),
+ ('TensorFlow', '2.11.0'),
+ ('tensorflow-probability', '0.19.0'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('Deprecated', '1.2.14', {
+ 'checksums': ['e5323eb936458dccc2582dc6f9c322c852a775a27065ff2b0c4970b9d53d01b3'],
+ }),
+ ('dropstackframe', '0.1.0', {
+ 'source_tmpl': '%(name)s-%(version)s-py3-none-any.whl',
+ 'checksums': ['d619c7f87d144660f4569d447648830932f7920d570fd14f0dec552c81a0eb22'],
+ }),
+ ('lark', '1.1.9', {
+ 'checksums': ['15fa5236490824c2c4aba0e22d2d6d823575dcaf4cdd1848e34b6ad836240fba'],
+ }),
+ ('check_shapes', '1.1.1', {
+ 'checksums': ['b699fcb1e60bb17e2c97007e444b89eeeea2a9102ff11d61fb52454af5348403'],
+ }),
+ ('multipledispatch', '1.0.0', {
+ 'checksums': ['5c839915465c68206c3e9c473357908216c28383b425361e5d144594bf85a7e0'],
+ }),
+ ('gpflow', version, {
+ 'source_tmpl': 'v%(version)s.tar.gz',
+ 'source_urls': ['https://github.com/GPflow/GPflow/archive/'],
+ 'checksums': ['a32914c2b581b1dd2ac9a6f40352adb5f6f2c32f53028382e542014dd829553e'],
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/g/GPflow/GPflow-2.9.2-foss-2023a.eb b/easybuild/easyconfigs/g/GPflow/GPflow-2.9.2-foss-2023a.eb
new file mode 100644
index 00000000000..a2a0f0a5adc
--- /dev/null
+++ b/easybuild/easyconfigs/g/GPflow/GPflow-2.9.2-foss-2023a.eb
@@ -0,0 +1,51 @@
+easyblock = 'PythonBundle'
+
+name = 'GPflow'
+version = '2.9.2'
+
+homepage = 'https://gpflow.github.io'
+description = """GPflow is a package for building Gaussian process models in Python. It
+implements modern Gaussian process inference for composable kernels and
+likelihoods."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+builddependencies = [
+ ('poetry', '1.7.1'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('TensorFlow', '2.13.0'),
+ ('tensorflow-probability', '0.20.0'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('Deprecated', '1.2.14', {
+ 'checksums': ['e5323eb936458dccc2582dc6f9c322c852a775a27065ff2b0c4970b9d53d01b3'],
+ }),
+ ('dropstackframe', '0.1.0', {
+ 'source_tmpl': '%(name)s-%(version)s-py3-none-any.whl',
+ 'checksums': ['d619c7f87d144660f4569d447648830932f7920d570fd14f0dec552c81a0eb22'],
+ }),
+ ('lark', '1.1.9', {
+ 'checksums': ['15fa5236490824c2c4aba0e22d2d6d823575dcaf4cdd1848e34b6ad836240fba'],
+ }),
+ ('check_shapes', '1.1.1', {
+ 'checksums': ['b699fcb1e60bb17e2c97007e444b89eeeea2a9102ff11d61fb52454af5348403'],
+ }),
+ ('multipledispatch', '1.0.0', {
+ 'checksums': ['5c839915465c68206c3e9c473357908216c28383b425361e5d144594bf85a7e0'],
+ }),
+ ('gpflow', version, {
+ 'source_tmpl': 'v%(version)s.tar.gz',
+ 'source_urls': ['https://github.com/GPflow/GPflow/archive/'],
+ 'checksums': ['a32914c2b581b1dd2ac9a6f40352adb5f6f2c32f53028382e542014dd829553e'],
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/g/GPyOpt/GPyOpt-1.2.6-foss-2023a.eb b/easybuild/easyconfigs/g/GPyOpt/GPyOpt-1.2.6-foss-2023a.eb
new file mode 100644
index 00000000000..ca08a08a88c
--- /dev/null
+++ b/easybuild/easyconfigs/g/GPyOpt/GPyOpt-1.2.6-foss-2023a.eb
@@ -0,0 +1,63 @@
+easyblock = 'PythonBundle'
+
+name = 'GPyOpt'
+version = '1.2.6'
+
+homepage = 'https://sheffieldml.github.io/GPyOpt'
+description = "GPyOpt is a Python open-source library for Bayesian Optimization"
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('matplotlib', '3.7.2'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('paramz', '0.9.6', {
+ 'sources': ['%(name)s-%(version)s-py3-none-any.whl'],
+ 'checksums': ['4916be6f77f457316bcac8460be9c226026aed81fe7be302b32c0ba74e2ac6dd'],
+ }),
+ ('GPy', '1.13.2', {
+ 'modulename': 'GPy',
+ 'checksums': ['a38256b4dda536a5b5e6134a3924b42d454e987ee801fb6fc8b55a922da27920'],
+ }),
+ ('python-dateutil', '2.9.0.post0', {
+ 'modulename': 'dateutil',
+ 'checksums': ['37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3'],
+ }),
+ ('pyDOE', '0.3.8', {
+ 'modulename': '%(name)s',
+ 'sources': ['%(name)s-%(version)s.zip'],
+ 'checksums': ['cbd6f14ae26d3c9f736013205f53ea1191add4567033c3ee77b7dd356566c4b6'],
+ }),
+ ('sobol-seq', '0.2.0', {
+ 'sources': ['sobol_seq-%(version)s.tar.gz'],
+ 'checksums': ['e16e701bd7b03ec6ce65b3a64c9205799f6a2d00c2054dd8c4ff4343f3981172'],
+ }),
+ ('emcee', '2.2.1', {
+ 'checksums': ['b83551e342b37311897906b3b8acf32979f4c5542e0a25786ada862d26241172'],
+ }),
+ (name, version, {
+ 'modulename': 'GPyOpt',
+ 'checksums': ['e714daa035bb529a6db23c53665a762a4ab3456b9329c19ad3b03983f94c9b2a'],
+ }),
+]
+
+local_GPy_file = '%(installdir)s/lib/python%(pyshortver)s/site-packages/GPy/plotting/matplot_dep/plot_definitions.py'
+
+# Fix GPy with matplotlib>=3.4.0
+# see issue 953 and fix from https://github.com/SheffieldML/GPy/pull/960
+postinstallcmds = [
+ 'sed -i '
+ '''-e 's|ax._process_unit_info(xdata=X, ydata=y1)|ax._process_unit_info([("x", X), ("y", y1)], convert=False)|' '''
+ '''-e 's|ax._process_unit_info(ydata=y2)|ax._process_unit_info([("y", y2)], convert=False)|' %s''' % local_GPy_file,
+]
+
+
+sanity_pip_check = True
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/g/GRASP-suite/GRASP-suite-2023-05-09-Java-17.eb b/easybuild/easyconfigs/g/GRASP-suite/GRASP-suite-2023-05-09-Java-17.eb
new file mode 100644
index 00000000000..8182799823d
--- /dev/null
+++ b/easybuild/easyconfigs/g/GRASP-suite/GRASP-suite-2023-05-09-Java-17.eb
@@ -0,0 +1,38 @@
+easyblock = 'JAR'
+
+name = 'GRASP-suite'
+version = '2023-05-09'
+local_commit = '97cceec'
+versionsuffix = '-Java-%(javaver)s'
+
+homepage = 'https://github.com/bodenlab/GRASP-suite/'
+
+description = """GRASP-suite is a collection of tools and tutorials to perform and
+analyse ancestral sequence reconstruction."""
+
+toolchain = SYSTEM
+
+source_urls = ['https://github.com/bodenlab/GRASP-suite/raw/%s/content/project/graspcmd/archive/' % local_commit]
+sources = [{
+ "download_filename": "bnkit.jar",
+ "filename": "%(name)s-%(version)s.jar",
+}]
+checksums = ['7ee4cbc9f23857c8c7cf3e6bd0dde962d9a244974d955aac92212b5b5e29a385']
+
+dependencies = [('Java', '17')]
+
+postinstallcmds = [
+ "mkdir -p %(installdir)s/bin",
+ "echo '#!/bin/sh' > %(installdir)s/bin/grasp",
+ "echo 'java -jar -Xmx16g %(installdir)s/%(name)s-%(version)s.jar $@' >> %(installdir)s/bin/grasp",
+ "chmod a+rx %(installdir)s/bin/grasp"
+]
+
+sanity_check_commands = ["grasp -h"]
+
+sanity_check_paths = {
+ 'files': ['bin/grasp', '%(name)s-%(version)s.jar'],
+ 'dirs': [],
+}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/g/GRASS/GRASS-7.8.3-fosscuda-2019b-Python-3.7.4.eb b/easybuild/easyconfigs/g/GRASS/GRASS-7.8.3-fosscuda-2019b-Python-3.7.4.eb
index 5d64776f29d..cfb982cda75 100644
--- a/easybuild/easyconfigs/g/GRASS/GRASS-7.8.3-fosscuda-2019b-Python-3.7.4.eb
+++ b/easybuild/easyconfigs/g/GRASS/GRASS-7.8.3-fosscuda-2019b-Python-3.7.4.eb
@@ -41,7 +41,6 @@ dependencies = [
('PROJ', '6.2.1'),
('SQLite', '3.29.0'),
('freetype', '2.10.1'),
- ('FFmpeg', '4.2.1'),
('LibTIFF', '4.0.10'),
('cairo', '1.16.0'),
('X11', '20190717'),
@@ -52,21 +51,18 @@ dependencies = [
]
preconfigopts = "sed -e 's/-lblas/$LIBBLAS/g' -e 's/-llapack/$LIBLAPACK/g' -i configure && "
-configopts = '--enable-64bit '
-configopts += '--enable-largefile=yes '
+configopts = '--enable-largefile=yes '
configopts += '--with-cairo=yes '
configopts += '--with-cxx '
-configopts += '--with-ffmpeg --with-ffmpeg-libs=$EBROOTFFMPEG/lib --with-ffmpeg-includes=$EBROOTFFMPEG/include/* '
configopts += '--with-fftw --with-fftw-libs=$EBROOTFFTW/lib --with-fftw-includes=$EBROOTFFTW/include '
configopts += '--with-freetype '
configopts += '--with-freetype-libs=$EBROOTFREETYPE/lib --with-freetype-includes=$EBROOTFREETYPE/include '
configopts += '--with-geos=$EBROOTGEOS/bin/geos-config '
-configopts += '--without-glw '
configopts += '--with-lapack '
-configopts += '--with-lapack-lib=$LAPACK_LIB_DIR '
+configopts += '--with-lapack-libs=$LAPACK_LIB_DIR '
configopts += '--with-lapack-includes=$LAPACK_INC_DIR '
configopts += '--with-blas '
-configopts += '--with-blas-lib=$BLAS_LIB_DIR '
+configopts += '--with-blas-libs=$BLAS_LIB_DIR '
configopts += '--with-blas-includes=$BLAS_INC_DIR '
configopts += '--with-netcdf=$EBROOTNETCDF/bin/nc-config '
configopts += '--without-odbc '
@@ -75,19 +71,17 @@ configopts += '--with-openmp '
configopts += '--with-png '
configopts += '--with-png-libs="$EBROOTLIBPNG/lib $EBROOTZLIB/lib" --with-png-includes=$EBROOTLIBPNG/include '
configopts += '--without-postgres '
-configopts += '--with-proj --with-proj-libs=$EBROOTPROJ/lib '
+configopts += '--with-proj-libs=$EBROOTPROJ/lib '
configopts += '--with-proj-includes=$EBROOTPROJ/include --with-proj-share=$EBROOTPROJ/share/proj '
configopts += '--with-pthread '
-configopts += '--with-python '
configopts += '--with-readline '
configopts += '--with-readline-libs=$EBROOTLIBREADLINE/lib --with-readline-includes=$EBROOTLIBREADLINE/include '
-configopts += '--with-spatialite '
configopts += '--with-sqlite '
configopts += '--with-tiff-libs=$EBROOTLIBTIFF/lib --with-tiff-includes=$EBROOTLIBTIFF/include '
configopts += '--with-wxwidgets=$EBROOTWXPYTHON/bin/wx-config '
configopts += '--with-x '
-configopts += '--with-zlib --with-zlib-libs=$EBROOTZLIB/lib --with-zlib-includes=$EBROOTZLIB/include '
-configopts += '--with-bzlib --with-bzlib-libs=$EBROOTBZIP2/lib --with-ibzlib-includes=$EBROOTBZIP2/include '
+configopts += '--with-zlib-libs=$EBROOTZLIB/lib --with-zlib-includes=$EBROOTZLIB/include '
+configopts += '--with-bzlib --with-bzlib-libs=$EBROOTBZIP2/lib --with-bzlib-includes=$EBROOTBZIP2/include '
configopts += '--with-zstd --with-zstd-libs=$EBROOTZSTD/lib --with-zstd-includes=$EBROOTZSTD/include '
sanity_check_paths = {
diff --git a/easybuild/easyconfigs/g/GRASS/GRASS-8.2.0-foss-2021b.eb b/easybuild/easyconfigs/g/GRASS/GRASS-8.2.0-foss-2021b.eb
index 064972b3a7c..97d62f13261 100644
--- a/easybuild/easyconfigs/g/GRASS/GRASS-8.2.0-foss-2021b.eb
+++ b/easybuild/easyconfigs/g/GRASS/GRASS-8.2.0-foss-2021b.eb
@@ -40,7 +40,6 @@ dependencies = [
('PROJ', '8.1.0'),
('SQLite', '3.36'),
('freetype', '2.11.0'),
- ('FFmpeg', '4.3.2'),
('LibTIFF', '4.3.0'),
('cairo', '1.16.0'),
('X11', '20210802'),
@@ -52,21 +51,18 @@ dependencies = [
preconfigopts = "sed -e 's/-lblas/$LIBBLAS/g' -e 's/-llapack/$LIBLAPACK/g' -i configure && "
-configopts = '--enable-64bit '
-configopts += '--enable-largefile=yes '
+configopts = '--enable-largefile=yes '
configopts += '--with-cairo=yes '
configopts += '--with-cxx '
-configopts += '--with-ffmpeg --with-ffmpeg-libs=$EBROOTFFMPEG/lib --with-ffmpeg-includes=$EBROOTFFMPEG/include/* '
configopts += '--with-fftw --with-fftw-libs=$EBROOTFFTW/lib --with-fftw-includes=$EBROOTFFTW/include '
configopts += '--with-freetype '
configopts += '--with-freetype-libs=$EBROOTFREETYPE/lib --with-freetype-includes=$EBROOTFREETYPE/include '
configopts += '--with-geos=$EBROOTGEOS/bin/geos-config '
-configopts += '--without-glw '
configopts += '--with-lapack '
-configopts += '--with-lapack-lib=$LAPACK_LIB_DIR '
+configopts += '--with-lapack-libs=$LAPACK_LIB_DIR '
configopts += '--with-lapack-includes=$LAPACK_INC_DIR '
configopts += '--with-blas '
-configopts += '--with-blas-lib=$BLAS_LIB_DIR '
+configopts += '--with-blas-libs=$BLAS_LIB_DIR '
configopts += '--with-blas-includes=$BLAS_INC_DIR '
configopts += '--with-netcdf=$EBROOTNETCDF/bin/nc-config '
configopts += '--without-odbc '
@@ -75,19 +71,17 @@ configopts += '--with-openmp '
configopts += '--with-png '
configopts += '--with-png-libs="$EBROOTLIBPNG/lib $EBROOTZLIB/lib" --with-png-includes=$EBROOTLIBPNG/include '
configopts += '--without-postgres '
-configopts += '--with-proj --with-proj-libs=$EBROOTPROJ/lib '
+configopts += '--with-proj-libs=$EBROOTPROJ/lib '
configopts += '--with-proj-includes=$EBROOTPROJ/include --with-proj-share=$EBROOTPROJ/share/proj '
configopts += '--with-pthread '
-configopts += '--with-python '
configopts += '--with-readline '
configopts += '--with-readline-libs=$EBROOTLIBREADLINE/lib --with-readline-includes=$EBROOTLIBREADLINE/include '
-configopts += '--with-spatialite '
configopts += '--with-sqlite '
configopts += '--with-tiff-libs=$EBROOTLIBTIFF/lib --with-tiff-includes=$EBROOTLIBTIFF/include '
configopts += '--with-wxwidgets=$EBROOTWXWIDGET/bin/wx-config '
configopts += '--with-x '
-configopts += '--with-zlib --with-zlib-libs=$EBROOTZLIB/lib --with-zlib-includes=$EBROOTZLIB/include '
-configopts += '--with-bzlib --with-bzlib-libs=$EBROOTBZIP2/lib --with-ibzlib-includes=$EBROOTBZIP2/include '
+configopts += '--with-zlib-libs=$EBROOTZLIB/lib --with-zlib-includes=$EBROOTZLIB/include '
+configopts += '--with-bzlib --with-bzlib-libs=$EBROOTBZIP2/lib --with-bzlib-includes=$EBROOTBZIP2/include '
configopts += '--with-zstd --with-zstd-libs=$EBROOTZSTD/lib --with-zstd-includes=$EBROOTZSTD/include '
postinstallcmds = [
diff --git a/easybuild/easyconfigs/g/GROMACS-LS/GROMACS-LS-2016.3-foss-2023a.eb b/easybuild/easyconfigs/g/GROMACS-LS/GROMACS-LS-2016.3-foss-2023a.eb
new file mode 100644
index 00000000000..e47a07b97f8
--- /dev/null
+++ b/easybuild/easyconfigs/g/GROMACS-LS/GROMACS-LS-2016.3-foss-2023a.eb
@@ -0,0 +1,49 @@
+easyblock = 'EB_GROMACS'
+
+name = 'GROMACS-LS'
+version = '2016.3'
+
+homepage = 'https://vanegaslab.org/software'
+description = """
+GROMACS-LS and the MDStress library enable the calculation of local
+stress fields from molecular dynamics simulations.
+
+This is a double precision only CPU only build.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'openmp': True, 'usempi': True}
+
+source_urls = ['https://vanegaslab.org/files']
+sources = ['gromacs-ls-2016.3-12282019.tar.gz']
+patches = [
+ 'GROMACS-LS-2016.3_fix_typo.patch',
+]
+checksums = [
+ {'gromacs-ls-2016.3-12282019.tar.gz': '20f4d4f255800432be188abe41b7fec923cacc5fc895914b3beac0808ddf1919'},
+ {'GROMACS-LS-2016.3_fix_typo.patch': '4b9945476405a358bc64784984c51f08ab1aa3a598fb981b2dad8e0c61665fe0'},
+]
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+]
+
+dependencies = [
+ ('MDStress', '20191228'),
+]
+
+# GROMACS-LS can only be built with double precision
+single_precision = False
+
+# GROMACS-LS can only handle hwloc version < 2
+configopts = '-DGMX_HWLOC=OFF'
+
+# The tests have not been rewritten to handle the mdstress changes
+skipsteps = ['test']
+
+sanity_check_paths = {
+ 'files': ['bin/gmx_LS', 'lib/libgromacs_LS.a'],
+ 'dirs': [],
+}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/g/GROMACS-LS/GROMACS-LS-2016.3_fix_typo.patch b/easybuild/easyconfigs/g/GROMACS-LS/GROMACS-LS-2016.3_fix_typo.patch
new file mode 100644
index 00000000000..2529da617ed
--- /dev/null
+++ b/easybuild/easyconfigs/g/GROMACS-LS/GROMACS-LS-2016.3_fix_typo.patch
@@ -0,0 +1,38 @@
+Fix a couple of smaller problems
+
+Åke Sandgren, 2024-11-07
+diff -ru gromacs-ls-2016.3.orig/cmake/gmxTestCXX11.cmake gromacs-ls-2016.3/cmake/gmxTestCXX11.cmake
+--- gromacs-ls-2016.3.orig/cmake/gmxTestCXX11.cmake 2019-12-28 15:42:21.000000000 +0100
++++ gromacs-ls-2016.3/cmake/gmxTestCXX11.cmake 2024-11-07 10:45:40.060210373 +0100
+@@ -49,7 +49,7 @@
+ elseif(CYGWIN)
+ set(CXX11_CXX_FLAG "-std=gnu++0x") #required for strdup
+ else()
+- set(CXX11_CXX_FLAG "-std=c++0x")
++ set(CXX11_CXX_FLAG "-std=c++11")
+ endif()
+ CHECK_CXX_COMPILER_FLAG("${CXX11_CXX_FLAG}" CXXFLAG_STD_CXX0X)
+ if(NOT CXXFLAG_STD_CXX0X)
+diff -ru gromacs-ls-2016.3.orig/src/gromacs/mdlib/minimize.cpp gromacs-ls-2016.3/src/gromacs/mdlib/minimize.cpp
+--- gromacs-ls-2016.3.orig/src/gromacs/mdlib/minimize.cpp 2019-12-28 15:42:28.000000000 +0100
++++ gromacs-ls-2016.3/src/gromacs/mdlib/minimize.cpp 2024-11-07 10:55:06.668206192 +0100
+@@ -54,6 +54,7 @@
+
+ #include
+ #include
++#include
+
+ #include "gromacs/commandline/filenm.h"
+ #include "gromacs/domdec/domdec.h"
+diff -ru gromacs-ls-2016.3.orig/src/programs/mdrun/runner.cpp gromacs-ls-2016.3/src/programs/mdrun/runner.cpp
+--- gromacs-ls-2016.3.orig/src/programs/mdrun/runner.cpp 2019-12-28 15:42:30.000000000 +0100
++++ gromacs-ls-2016.3/src/programs/mdrun/runner.cpp 2024-11-07 10:33:22.588969615 +0100
+@@ -175,7 +175,7 @@
+ int localsspatialatom;
+ int localsdispcor;
+ int localspbc;
+- real localsmindihang;
++ real localsmindihangle;
+ unsigned long Flags;
+ };
+
diff --git a/easybuild/easyconfigs/g/GROMACS/GROMACS-2023.3-foss-2023a-PLUMED-2.9.0.eb b/easybuild/easyconfigs/g/GROMACS/GROMACS-2023.3-foss-2023a-PLUMED-2.9.0.eb
new file mode 100644
index 00000000000..943aa4ac839
--- /dev/null
+++ b/easybuild/easyconfigs/g/GROMACS/GROMACS-2023.3-foss-2023a-PLUMED-2.9.0.eb
@@ -0,0 +1,100 @@
+# 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.3'
+_plumedver = '2.9.0'
+versionsuffix = '-PLUMED-%s' % _plumedver
+
+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
+next to PLUMED."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+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-2023.1_set_omp_num_threads_env_for_ntomp_tests.patch',
+ 'GROMACS-2023.1_fix_tests_for_gmx_thread_mpi.patch',
+ '%(name)s-%(version)s_skip_test_for_plumed.patch',
+]
+checksums = [
+ {'gromacs-2023.3.tar.gz': '4ec8f8d0c7af76b13f8fd16db8e2c120e749de439ae9554d9f653f812d78d1cb'},
+ {'GROMACS-2023.1_set_omp_num_threads_env_for_ntomp_tests.patch':
+ '7f41bda16c9c2837624265dda4be252f655d1288ddc4486b1a2422af30d5d199'},
+ {'GROMACS-2023.1_fix_tests_for_gmx_thread_mpi.patch':
+ '6df844bb3bbc51180446a3595c61a4ef195e5f975533a04cef76841aa763aec1'},
+ {'GROMACS-2023.3_skip_test_for_plumed.patch':
+ '6c541ee74f71f6a63950134d9d0e3afb176a2e25e76e017b4d1986a59163c083'},
+]
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+ ('scikit-build', '0.17.6'),
+ ('Doxygen', '1.9.7'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('networkx', '3.1'),
+ ('mpi4py', '3.1.4'),
+ ('PLUMED', _plumedver),
+]
+
+
+configopts = '-DCMAKE_CXX_FLAGS="$CXXFLAGS -fpermissive" '
+
+# PLUMED 2.9.0 is compatible with GROMACS 2023; 2023.3 seems to work fine too
+ignore_plumed_version_check = True
+
+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.2', {
+ 'preinstallopts': 'export CMAKE_ARGS="-Dgmxapi_ROOT=%(installdir)s ' +
+ '-C %(installdir)s/share/cmake/gromacs_mpi/gromacs-hints_mpi.cmake" && ',
+ 'source_tmpl': 'gromacs-2023.3.tar.gz',
+ 'start_dir': 'python_packaging/gmxapi',
+ 'checksums': ['4ec8f8d0c7af76b13f8fd16db8e2c120e749de439ae9554d9f653f812d78d1cb'],
+ }),
+]
+
+modextrapaths = {
+ 'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages',
+}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/g/GROMACS/GROMACS-2024.1-foss-2023b.eb b/easybuild/easyconfigs/g/GROMACS/GROMACS-2024.1-foss-2023b.eb
new file mode 100644
index 00000000000..1aa835572d7
--- /dev/null
+++ b/easybuild/easyconfigs/g/GROMACS/GROMACS-2024.1-foss-2023b.eb
@@ -0,0 +1,90 @@
+# 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