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 e687bf442f8..af2e74ae887 100644
--- a/RELEASE_NOTES
+++ b/RELEASE_NOTES
@@ -3,8 +3,178 @@ 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 19,985 easyconfig files, for 3,552 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)
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/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/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-13.3.0-Java-21.0.2.eb b/easybuild/easyconfigs/a/ANTLR/ANTLR-2.7.7-GCCcore-13.3.0-Java-21.0.2.eb
new file mode 100644
index 00000000000..333a0374279
--- /dev/null
+++ b/easybuild/easyconfigs/a/ANTLR/ANTLR-2.7.7-GCCcore-13.3.0-Java-21.0.2.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': '13.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.42')]
+
+dependencies = [('Java', '21.0.2', '', 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/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/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-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-2025.0.0.eb b/easybuild/easyconfigs/a/Advisor/Advisor-2025.0.0.eb
new file mode 100644
index 00000000000..1f057b7f100
--- /dev/null
+++ b/easybuild/easyconfigs/a/Advisor/Advisor-2025.0.0.eb
@@ -0,0 +1,27 @@
+name = 'Advisor'
+version = '2025.0.0'
+
+homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/advisor.html'
+description = """Vectorization Optimization and Thread Prototyping
+ - Vectorize & thread code or performance “dies”
+ - Easy workflow + data + tips = faster code faster
+ - Prioritize, Prototype & Predict performance gain
+ """
+
+toolchain = SYSTEM
+
+source_urls = [
+ 'https://registrationcenter-download.intel.com/akdlm/IRC_NAS/fe95ae4a-3692-4e31-919d-3e7bdf5832f1/']
+sources = ['intel-advisor-%(version)s.798_offline.sh']
+checksums = ['bf85d4b0bd199a2babdff6b4bd3885ce569a3ad0e992b99b2e14dbb30af88cd4']
+
+dontcreateinstalldir = True
+
+sanity_check_paths = {
+ 'files': ['%(namelower)s/%(version_major_minor)s/bin64/advisor'],
+ 'dirs': ['%(namelower)s/%(version_major_minor)s/bin64',
+ '%(namelower)s/%(version_major_minor)s/lib64',
+ '%(namelower)s/%(version_major_minor)s/include/intel64']
+}
+
+moduleclass = 'perf'
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/Archive-Zip/Archive-Zip-1.68-GCCcore-13.2.0.eb b/easybuild/easyconfigs/a/Archive-Zip/Archive-Zip-1.68-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..389e96b3d06
--- /dev/null
+++ b/easybuild/easyconfigs/a/Archive-Zip/Archive-Zip-1.68-GCCcore-13.2.0.eb
@@ -0,0 +1,31 @@
+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': '13.2.0'}
+
+source_urls = ['https://cpan.metacpan.org/authors/id/P/PH/PHRED/']
+sources = [SOURCE_TAR_GZ]
+checksums = ['984e185d785baf6129c6e75f8eb44411745ac00bf6122fb1c8e822a3861ec650']
+
+builddependencies = [
+ ('binutils', '2.40'),
+]
+dependencies = [
+ ('Perl', '5.38.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/Archive-Zip/Archive-Zip-1.68-GCCcore-13.3.0.eb b/easybuild/easyconfigs/a/Archive-Zip/Archive-Zip-1.68-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..9656cf84761
--- /dev/null
+++ b/easybuild/easyconfigs/a/Archive-Zip/Archive-Zip-1.68-GCCcore-13.3.0.eb
@@ -0,0 +1,31 @@
+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': '13.3.0'}
+
+source_urls = ['https://cpan.metacpan.org/authors/id/P/PH/PHRED/']
+sources = [SOURCE_TAR_GZ]
+checksums = ['984e185d785baf6129c6e75f8eb44411745ac00bf6122fb1c8e822a3861ec650']
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+dependencies = [
+ ('Perl', '5.38.2'),
+ ('UnZip', '6.0'),
+ ('Zip', '3.0'),
+]
+
+options = {'modulename': 'Archive::Zip'}
+
+sanity_check_paths = {
+ 'files': ['bin/crc32'],
+ 'dirs': ['lib/perl5/site_perl/%(perlver)s/Archive/Zip'],
+}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/a/Arrow/Arrow-14.0.1-gfbf-2023a.eb b/easybuild/easyconfigs/a/Arrow/Arrow-14.0.1-gfbf-2023a.eb
index 85715fef495..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,10 +39,10 @@ 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 "
# install Python bindings
_pyarrow_preinstall_opts = "export PKG_CONFIG_PATH=%(installdir)s/lib/pkgconfig:$PKG_CONFIG_PATH && "
@@ -52,7 +52,7 @@ _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_preinstall_opts += "PYARROW_WITH_DATASET=1 PYARROW_WITH_PARQUET=1 PYARROW_WITH_ORC=1 "
exts_defaultclass = 'PythonPackage'
exts_default_options = {
@@ -81,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
index 87862215507..5219bd9c54f 100644
--- a/easybuild/easyconfigs/a/Arrow/Arrow-16.1.0-gfbf-2023b.eb
+++ b/easybuild/easyconfigs/a/Arrow/Arrow-16.1.0-gfbf-2023b.eb
@@ -39,10 +39,10 @@ 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 "
# install Python bindings
_pyarrow_preinstall_opts = "export PKG_CONFIG_PATH=%(installdir)s/lib/pkgconfig:$PKG_CONFIG_PATH && "
@@ -52,7 +52,7 @@ _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_preinstall_opts += "PYARROW_WITH_DATASET=1 PYARROW_WITH_PARQUET=1 PYARROW_WITH_ORC=1 "
exts_defaultclass = 'PythonPackage'
exts_default_options = {
@@ -81,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-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/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/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/absl-py/absl-py-2.1.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/a/absl-py/absl-py-2.1.0-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..fb76611558b
--- /dev/null
+++ b/easybuild/easyconfigs/a/absl-py/absl-py-2.1.0-GCCcore-13.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': '13.3.0'}
+
+builddependencies = [('binutils', '2.42')]
+
+dependencies = [('Python', '3.12.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/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/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/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/anndata/anndata-0.10.5.post1-foss-2023a.eb b/easybuild/easyconfigs/a/anndata/anndata-0.10.5.post1-foss-2023a.eb
index b49190c6e5a..8c520bf7d04 100644
--- 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
@@ -9,11 +9,14 @@ description = """anndata is a Python package for handling annotated data matrice
toolchain = {'name': 'foss', 'version': '2023a'}
+builddependencies = [
+ ('hatchling', '1.18.0'),
+]
+
dependencies = [
('Python', '3.11.3'),
('SciPy-bundle', '2023.07'),
('h5py', '3.9.0'),
- ('hatchling', '1.18.0'),
]
use_pip = True
diff --git a/easybuild/easyconfigs/a/anndata/anndata-0.11.1-foss-2023b.eb b/easybuild/easyconfigs/a/anndata/anndata-0.11.1-foss-2023b.eb
new file mode 100644
index 00000000000..cb2317d16cc
--- /dev/null
+++ b/easybuild/easyconfigs/a/anndata/anndata-0.11.1-foss-2023b.eb
@@ -0,0 +1,45 @@
+easyblock = 'PythonBundle'
+
+name = 'anndata'
+version = '0.11.1'
+
+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': '2023b'}
+
+builddependencies = [
+ ('hatchling', '1.18.0'),
+]
+
+dependencies = [
+ ('Python', '3.11.5'),
+ ('Python-bundle-PyPI', '2023.10'),
+ ('SciPy-bundle', '2023.11'),
+ ('h5py', '3.11.0'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('array_api_compat', '1.9.1', {
+ 'checksums': ['17bab828c93c79a5bb8b867145b71fcb889686607c5672b060aef437e0359ea8'],
+ }),
+ ('natsort', '8.4.0', {
+ 'checksums': ['45312c4a0e5507593da193dedd04abb1469253b601ecaf63445ad80f0a1ea581'],
+ }),
+ (name, version, {
+ 'checksums': ['36bff9a85276fc5f1b9fd01f15aff9aa49408129985f42e0fca4e2c5b7fa909f'],
+ }),
+]
+
+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/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/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/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/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/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/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.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.2.0.eb b/easybuild/easyconfigs/b/BEDTools/BEDTools-2.31.1-GCC-13.2.0.eb
new file mode 100644
index 00000000000..ee6ee7885ea
--- /dev/null
+++ b/easybuild/easyconfigs/b/BEDTools/BEDTools-2.31.1-GCC-13.2.0.eb
@@ -0,0 +1,46 @@
+# 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.2.0'}
+
+source_urls = ['https://github.com/arq5x/bedtools2/archive/refs/tags/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['79a1ba318d309f4e74bfa74258b73ef578dccb1045e270998d7fe9da9f43a50e']
+
+builddependencies = [
+ ('Python', '3.11.5'),
+]
+dependencies = [
+ ('XZ', '5.4.4'),
+ ('zlib', '1.2.13'),
+ ('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/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/BGEN-enkre-1.1.7-GCC-12.3.0.eb b/easybuild/easyconfigs/b/BGEN-enkre/BGEN-enkre-1.1.7-GCC-12.3.0.eb
new file mode 100644
index 00000000000..bf5a35b052b
--- /dev/null
+++ b/easybuild/easyconfigs/b/BGEN-enkre/BGEN-enkre-1.1.7-GCC-12.3.0.eb
@@ -0,0 +1,73 @@
+# 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': '12.3.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 = [
+ ('Python', '3.11.3'),
+]
+
+dependencies = [
+ ('SQLite', '3.42.0'),
+ ('zstd', '1.5.5'),
+ ('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/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/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/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/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-7.4.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/b/Bazel/Bazel-7.4.1-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..1fc72e512e2
--- /dev/null
+++ b/easybuild/easyconfigs/b/Bazel/Bazel-7.4.1-GCCcore-13.3.0.eb
@@ -0,0 +1,26 @@
+name = 'Bazel'
+version = '7.4.1'
+
+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': '13.3.0'}
+
+source_urls = ['https://github.com/bazelbuild/%(namelower)s/releases/download/%(version)s']
+sources = ['%(namelower)s-%(version)s-dist.zip']
+checksums = ['83386618bc489f4da36266ef2620ec64a526c686cf07041332caff7c953afaf5']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('Python', '3.12.3'),
+ ('Zip', '3.0'),
+]
+dependencies = [
+ ('Java', '21.0.2', '', 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/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-13.3.0.eb b/easybuild/easyconfigs/b/Bio-DB-HTS/Bio-DB-HTS-3.01-GCC-13.3.0.eb
new file mode 100644
index 00000000000..490e86bfb7a
--- /dev/null
+++ b/easybuild/easyconfigs/b/Bio-DB-HTS/Bio-DB-HTS-3.01-GCC-13.3.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': '13.3.0'}
+
+source_urls = ['https://cpan.metacpan.org/authors/id/A/AV/AVULLO/']
+sources = ['Bio-DB-HTS-%(version)s.tar.gz']
+checksums = ['12a6bc1f579513cac8b9167cce4e363655cc8eba26b7d9fe1170dfe95e044f42']
+
+builddependencies = [('pkgconf', '2.2.0')]
+
+dependencies = [
+ ('Perl', '5.38.2'),
+ ('BioPerl', '1.7.8'),
+ ('HTSlib', '1.21'),
+]
+
+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/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/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/Boost/Boost-1.55.0-GCC-12.3.0.eb b/easybuild/easyconfigs/b/Boost/Boost-1.55.0-GCC-12.3.0.eb
new file mode 100644
index 00000000000..e7cdaf16fbd
--- /dev/null
+++ b/easybuild/easyconfigs/b/Boost/Boost-1.55.0-GCC-12.3.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': '12.3.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.13'),
+]
+
+configopts = '--without-libraries=python'
+
+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/Brunsli/Brunsli-0.1-GCCcore-10.2.0.eb b/easybuild/easyconfigs/b/Brunsli/Brunsli-0.1-GCCcore-10.2.0.eb
index 22f38cbf5f9..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,7 +21,6 @@ builddependencies = [
dependencies = [
('Brotli', '1.0.9'),
- ('Highway', '0.12.2'),
]
# skip use of third_party directory, since we provide Brotli via a proper dependency
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 301194a32a4..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,7 +22,6 @@ builddependencies = [
dependencies = [
('Brotli', '1.0.9'),
- ('Highway', '0.12.2'),
]
# skip use of third_party directory, since we provide Brotli via a proper dependency
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 7522f1025e3..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,7 +22,6 @@ builddependencies = [
dependencies = [
('Brotli', '1.0.9'),
- ('Highway', '1.0.3'),
]
# skip use of third_party directory, since we provide Brotli via a proper dependency
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 cc914cae6cd..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,7 +22,6 @@ builddependencies = [
dependencies = [
('Brotli', '1.0.9'),
- ('Highway', '1.0.3'),
]
# skip use of third_party directory, since we provide Brotli via a proper dependency
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 22917f651e9..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,7 +22,6 @@ builddependencies = [
dependencies = [
('Brotli', '1.0.9'),
- ('Highway', '1.0.4'),
]
# skip use of third_party directory, since we provide Brotli via a proper dependency
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
index 249b1170411..6481ba231cd 100644
--- 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
@@ -22,7 +22,6 @@ builddependencies = [
dependencies = [
('Brotli', '1.1.0'),
- ('Highway', '1.0.7'),
]
# skip use of third_party directory, since we provide Brotli via a proper dependency
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
index d374a07304a..3afc7fffd75 100644
--- 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
@@ -22,7 +22,6 @@ builddependencies = [
dependencies = [
('Brotli', '1.1.0'),
- ('Highway', '1.2.0'),
]
# skip use of third_party directory, since we provide Brotli via a proper dependency
diff --git a/easybuild/easyconfigs/b/bakta/bakta-1.10.1-foss-2023b.eb b/easybuild/easyconfigs/b/bakta/bakta-1.10.1-foss-2023b.eb
new file mode 100644
index 00000000000..89703e6caf7
--- /dev/null
+++ b/easybuild/easyconfigs/b/bakta/bakta-1.10.1-foss-2023b.eb
@@ -0,0 +1,69 @@
+easyblock = 'PythonBundle'
+
+name = 'bakta'
+version = '1.10.1'
+
+homepage = "https://github.com/oschwengers/bakta"
+description = """Bakta is a tool for the rapid & standardized annotation of bacterial genomes and plasmids
+ from both isolates and MAGs. It provides dbxref-rich, sORF-including and taxon-independent annotations
+ in machine-readable JSON & bioinformatics standard file formats for automated downstream analysis."""
+
+toolchain = {'name': 'foss', 'version': '2023b'}
+
+builddependencies = [
+ ('scikit-build-core', '0.9.3'),
+]
+
+dependencies = [
+ ('Python', '3.11.5'),
+ ('Biopython', '1.84'),
+ ('PyYAML', '6.0.1'),
+ ('PyHMMER', '0.10.15'),
+ ('matplotlib', '3.8.2'),
+ ('python-isal', '1.6.1'),
+ ('zlib-ng', '2.2.2'),
+ ('archspec', '0.2.2'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('about_time', '4.2.1', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['8bbf4c75fe13cbd3d72f49a03b02c5c7dca32169b6d49117c257e7eb3eaee341'],
+ }),
+ ('grapheme', '0.6.0', {
+ 'checksums': ['44c2b9f21bbe77cfb05835fec230bd435954275267fea1858013b102f8603cca'],
+ }),
+ ('alive_progress', '3.2.0', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['0677929f8d3202572e9d142f08170b34dbbe256cc6d2afbf75ef187c7da964a8'],
+ }),
+ ('pyCirclize', '1.7.1', {
+ 'source_tmpl': SOURCELOWER_PY3_WHL,
+ 'checksums': ['e0c049877b1ee47245866cc9968f2aded5fe3ead8a3333841536dc29fd14bc90'],
+ }),
+ ('pyrodigal', '3.6.3', {
+ 'checksums': ['3e226f743c960d4d30c46ae6868aff7e2a6b98f8d837cfbd2637568569b21f78'],
+ }),
+ ('xopen', '2.0.2', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['74e7f7fb7e7f42bd843c798595fa5a52086d7d1bf3de0e8513c6615516431313'],
+ }),
+ (name, version, {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['82967b4eefd2a1084743211fe955fa394972c2d2c878c6682e00b13dabc5a445'],
+ }),
+]
+
+local_bins = ['bakta', 'bakta_db', 'bakta_io', 'bakta_plot', 'bakta_proteins']
+
+sanity_check_paths = {
+ 'files': ['bin/%s' % bin for bin in local_bins],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = ['%s --help' % bin for bin in local_bins]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/b/bamtofastq/bamtofastq-1.4.1-GCCcore-12.3.0.eb b/easybuild/easyconfigs/b/bamtofastq/bamtofastq-1.4.1-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..8759374058b
--- /dev/null
+++ b/easybuild/easyconfigs/b/bamtofastq/bamtofastq-1.4.1-GCCcore-12.3.0.eb
@@ -0,0 +1,220 @@
+easyblock = 'Cargo'
+
+name = 'bamtofastq'
+version = '1.4.1'
+
+homepage = 'https://github.com/10XGenomics/bamtofastq'
+description = """Convert 10x BAM files to the original FASTQs compatible with 10x pipelines."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = ['https://github.com/10XGenomics/bamtofastq/archive/refs/tags']
+sources = [{'download_filename': 'v%(version)s.tar.gz', 'filename': SOURCE_TAR_GZ}]
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('Rust', '1.75.0'),
+ ('CMake', '3.26.3'),
+]
+
+dependencies = [('bzip2', '1.0.8')]
+
+crates = [
+ ('addr2line', '0.17.0'),
+ ('adler', '1.0.2'),
+ ('aho-corasick', '0.7.18'),
+ ('anyhow', '1.0.53'),
+ ('autocfg', '1.0.1'),
+ ('backtrace', '0.3.63'),
+ ('bincode', '1.3.3'),
+ ('bio-types', '0.12.0'),
+ ('bitflags', '1.3.2'),
+ ('bstr', '0.2.17'),
+ ('byteorder', '1.4.3'),
+ ('bzip2-sys', '0.1.11+1.0.8'),
+ ('cc', '1.0.71'),
+ ('cfg-if', '1.0.0'),
+ ('cmake', '0.1.45'),
+ ('crc32fast', '1.2.1'),
+ ('crossbeam-channel', '0.5.1'),
+ ('crossbeam-utils', '0.8.5'),
+ ('csv', '1.1.6'),
+ ('csv-core', '0.1.10'),
+ ('curl-sys', '0.4.49+curl-7.79.1'),
+ ('custom_derive', '0.1.7'),
+ ('derive-new', '0.5.9'),
+ ('docopt', '1.1.1'),
+ ('either', '1.6.1'),
+ ('fastrand', '1.7.0'),
+ ('flate2', '1.0.22'),
+ ('form_urlencoded', '1.0.1'),
+ ('fs-utils', '1.1.4'),
+ ('gimli', '0.26.0'),
+ ('glob', '0.3.0'),
+ ('heck', '0.3.3'),
+ ('hts-sys', '2.0.2'),
+ ('idna', '0.2.3'),
+ ('ieee754', '0.2.6'),
+ ('instant', '0.1.12'),
+ ('itertools', '0.10.3'),
+ ('itoa', '0.4.8'),
+ ('jobserver', '0.1.24'),
+ ('lazy_static', '1.4.0'),
+ ('libc', '0.2.103'),
+ ('libdeflate-sys', '0.5.0'),
+ ('libz-sys', '1.1.3'),
+ ('linear-map', '1.2.0'),
+ ('log', '0.4.14'),
+ ('lz4', '1.23.2'),
+ ('lz4-sys', '1.9.2'),
+ ('lzma-sys', '0.1.17'),
+ ('matches', '0.1.9'),
+ ('memchr', '2.4.1'),
+ ('min-max-heap', '1.3.0'),
+ ('miniz_oxide', '0.4.4'),
+ ('newtype_derive', '0.1.6'),
+ ('object', '0.27.1'),
+ ('openssl-src', '111.16.0+1.1.1l'),
+ ('openssl-sys', '0.9.67'),
+ ('percent-encoding', '2.1.0'),
+ ('pkg-config', '0.3.20'),
+ ('proc-macro2', '1.0.29'),
+ ('quick-error', '1.2.3'),
+ ('quote', '1.0.10'),
+ ('redox_syscall', '0.2.10'),
+ ('regex', '1.5.4'),
+ ('regex-automata', '0.1.10'),
+ ('regex-syntax', '0.6.25'),
+ ('remove_dir_all', '0.5.3'),
+ ('rust-htslib', '0.38.2'),
+ ('rustc-demangle', '0.1.21'),
+ ('rustc_version', '0.1.7'),
+ ('ryu', '1.0.5'),
+ ('semver', '0.1.20'),
+ ('serde', '1.0.135'),
+ ('serde_bytes', '0.11.5'),
+ ('serde_derive', '1.0.135'),
+ ('shardio', '0.8.2'),
+ ('strsim', '0.10.0'),
+ ('strum_macros', '0.20.1'),
+ ('syn', '1.0.80'),
+ ('tempfile', '3.3.0'),
+ ('thiserror', '1.0.29'),
+ ('thiserror-impl', '1.0.29'),
+ ('tinyvec', '1.5.0'),
+ ('tinyvec_macros', '0.1.0'),
+ ('unicode-bidi', '0.3.7'),
+ ('unicode-normalization', '0.1.19'),
+ ('unicode-segmentation', '1.8.0'),
+ ('unicode-xid', '0.2.2'),
+ ('url', '2.2.2'),
+ ('vcpkg', '0.2.15'),
+ ('winapi', '0.3.9'),
+ ('winapi-i686-pc-windows-gnu', '0.4.0'),
+ ('winapi-x86_64-pc-windows-gnu', '0.4.0'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/%(namelower)s'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["%(namelower)s --help"]
+
+checksums = [
+ {'bamtofastq-1.4.1.tar.gz': 'cebf968b0eff8911df65102e2be5884e6cd7312f1cb0aba6718bfc2d9407d543'},
+ {'addr2line-0.17.0.tar.gz': 'b9ecd88a8c8378ca913a680cd98f0f13ac67383d35993f86c90a70e3f137816b'},
+ {'adler-1.0.2.tar.gz': 'f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe'},
+ {'aho-corasick-0.7.18.tar.gz': '1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f'},
+ {'anyhow-1.0.53.tar.gz': '94a45b455c14666b85fc40a019e8ab9eb75e3a124e05494f5397122bc9eb06e0'},
+ {'autocfg-1.0.1.tar.gz': 'cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a'},
+ {'backtrace-0.3.63.tar.gz': '321629d8ba6513061f26707241fa9bc89524ff1cd7a915a97ef0c62c666ce1b6'},
+ {'bincode-1.3.3.tar.gz': 'b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad'},
+ {'bio-types-0.12.0.tar.gz': '3f79d996fbffc59cbaeec4c831f9c1bbf6debdfadd9bb02ff4caf70507159c63'},
+ {'bitflags-1.3.2.tar.gz': 'bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a'},
+ {'bstr-0.2.17.tar.gz': 'ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223'},
+ {'byteorder-1.4.3.tar.gz': '14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610'},
+ {'bzip2-sys-0.1.11+1.0.8.tar.gz': '736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc'},
+ {'cc-1.0.71.tar.gz': '79c2681d6594606957bbb8631c4b90a7fcaaa72cdb714743a437b156d6a7eedd'},
+ {'cfg-if-1.0.0.tar.gz': 'baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd'},
+ {'cmake-0.1.45.tar.gz': 'eb6210b637171dfba4cda12e579ac6dc73f5165ad56133e5d72ef3131f320855'},
+ {'crc32fast-1.2.1.tar.gz': '81156fece84ab6a9f2afdb109ce3ae577e42b1228441eded99bd77f627953b1a'},
+ {'crossbeam-channel-0.5.1.tar.gz': '06ed27e177f16d65f0f0c22a213e17c696ace5dd64b14258b52f9417ccb52db4'},
+ {'crossbeam-utils-0.8.5.tar.gz': 'd82cfc11ce7f2c3faef78d8a684447b40d503d9681acebed6cb728d45940c4db'},
+ {'csv-1.1.6.tar.gz': '22813a6dc45b335f9bade10bf7271dc477e81113e89eb251a0bc2a8a81c536e1'},
+ {'csv-core-0.1.10.tar.gz': '2b2466559f260f48ad25fe6317b3c8dac77b5bdb5763ac7d9d6103530663bc90'},
+ {'curl-sys-0.4.49+curl-7.79.1.tar.gz': 'e0f44960aea24a786a46907b8824ebc0e66ca06bf4e4978408c7499620343483'},
+ {'custom_derive-0.1.7.tar.gz': 'ef8ae57c4978a2acd8b869ce6b9ca1dfe817bff704c220209fdef2c0b75a01b9'},
+ {'derive-new-0.5.9.tar.gz': '3418329ca0ad70234b9735dc4ceed10af4df60eff9c8e7b06cb5e520d92c3535'},
+ {'docopt-1.1.1.tar.gz': '7f3f119846c823f9eafcf953a8f6ffb6ed69bf6240883261a7f13b634579a51f'},
+ {'either-1.6.1.tar.gz': 'e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457'},
+ {'fastrand-1.7.0.tar.gz': 'c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf'},
+ {'flate2-1.0.22.tar.gz': '1e6988e897c1c9c485f43b47a529cef42fde0547f9d8d41a7062518f1d8fc53f'},
+ {'form_urlencoded-1.0.1.tar.gz': '5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191'},
+ {'fs-utils-1.1.4.tar.gz': '6fc7a9dc005c944c98a935e7fd626faf5bf7e5a609f94bc13e42fc4a02e52593'},
+ {'gimli-0.26.0.tar.gz': '81a03ce013ffccead76c11a15751231f777d9295b845cc1266ed4d34fcbd7977'},
+ {'glob-0.3.0.tar.gz': '9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574'},
+ {'heck-0.3.3.tar.gz': '6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c'},
+ {'hts-sys-2.0.2.tar.gz': '72c443906f4bac8b8cfe67e4e9d9ca83a454b70a092e1764133d19d5c5c7c1e2'},
+ {'idna-0.2.3.tar.gz': '418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8'},
+ {'ieee754-0.2.6.tar.gz': '9007da9cacbd3e6343da136e98b0d2df013f553d35bdec8b518f07bea768e19c'},
+ {'instant-0.1.12.tar.gz': '7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c'},
+ {'itertools-0.10.3.tar.gz': 'a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3'},
+ {'itoa-0.4.8.tar.gz': 'b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4'},
+ {'jobserver-0.1.24.tar.gz': 'af25a77299a7f711a01975c35a6a424eb6862092cc2d6c72c4ed6cbc56dfc1fa'},
+ {'lazy_static-1.4.0.tar.gz': 'e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646'},
+ {'libc-0.2.103.tar.gz': 'dd8f7255a17a627354f321ef0055d63b898c6fb27eff628af4d1b66b7331edf6'},
+ {'libdeflate-sys-0.5.0.tar.gz': '21e39efa87b84db3e13ff4e2dfac1e57220abcbd7fe8ec44d238f7f4f787cc1f'},
+ {'libz-sys-1.1.3.tar.gz': 'de5435b8549c16d423ed0c03dbaafe57cf6c3344744f1242520d59c9d8ecec66'},
+ {'linear-map-1.2.0.tar.gz': 'bfae20f6b19ad527b550c223fddc3077a547fc70cda94b9b566575423fd303ee'},
+ {'log-0.4.14.tar.gz': '51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710'},
+ {'lz4-1.23.2.tar.gz': 'aac20ed6991e01bf6a2e68cc73df2b389707403662a8ba89f68511fb340f724c'},
+ {'lz4-sys-1.9.2.tar.gz': 'dca79aa95d8b3226213ad454d328369853be3a1382d89532a854f4d69640acae'},
+ {'lzma-sys-0.1.17.tar.gz': 'bdb4b7c3eddad11d3af9e86c487607d2d2442d185d848575365c4856ba96d619'},
+ {'matches-0.1.9.tar.gz': 'a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f'},
+ {'memchr-2.4.1.tar.gz': '308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a'},
+ {'min-max-heap-1.3.0.tar.gz': '2687e6cf9c00f48e9284cf9fd15f2ef341d03cc7743abf9df4c5f07fdee50b18'},
+ {'miniz_oxide-0.4.4.tar.gz': 'a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b'},
+ {'newtype_derive-0.1.6.tar.gz': 'ac8cd24d9f185bb7223958d8c1ff7a961b74b1953fd05dba7cc568a63b3861ec'},
+ {'object-0.27.1.tar.gz': '67ac1d3f9a1d3616fd9a60c8d74296f22406a238b6a72f5cc1e6f314df4ffbf9'},
+ {'openssl-src-111.16.0+1.1.1l.tar.gz': '7ab2173f69416cf3ec12debb5823d244127d23a9b127d5a5189aa97c5fa2859f'},
+ {'openssl-sys-0.9.67.tar.gz': '69df2d8dfc6ce3aaf44b40dec6f487d5a886516cf6879c49e98e0710f310a058'},
+ {'percent-encoding-2.1.0.tar.gz': 'd4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e'},
+ {'pkg-config-0.3.20.tar.gz': '7c9b1041b4387893b91ee6746cddfc28516aff326a3519fb2adf820932c5e6cb'},
+ {'proc-macro2-1.0.29.tar.gz': 'b9f5105d4fdaab20335ca9565e106a5d9b82b6219b5ba735731124ac6711d23d'},
+ {'quick-error-1.2.3.tar.gz': 'a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0'},
+ {'quote-1.0.10.tar.gz': '38bc8cc6a5f2e3655e0899c1b848643b2562f853f114bfec7be120678e3ace05'},
+ {'redox_syscall-0.2.10.tar.gz': '8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff'},
+ {'regex-1.5.4.tar.gz': 'd07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461'},
+ {'regex-automata-0.1.10.tar.gz': '6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132'},
+ {'regex-syntax-0.6.25.tar.gz': 'f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b'},
+ {'remove_dir_all-0.5.3.tar.gz': '3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7'},
+ {'rust-htslib-0.38.2.tar.gz': '2aca6626496389f6e015e25433b85e2895ad3644b44de91167d847bf2d8c1a1c'},
+ {'rustc-demangle-0.1.21.tar.gz': '7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342'},
+ {'rustc_version-0.1.7.tar.gz': 'c5f5376ea5e30ce23c03eb77cbe4962b988deead10910c372b226388b594c084'},
+ {'ryu-1.0.5.tar.gz': '71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e'},
+ {'semver-0.1.20.tar.gz': 'd4f410fedcf71af0345d7607d246e7ad15faaadd49d240ee3b24e5dc21a820ac'},
+ {'serde-1.0.135.tar.gz': '2cf9235533494ea2ddcdb794665461814781c53f19d87b76e571a1c35acbad2b'},
+ {'serde_bytes-0.11.5.tar.gz': '16ae07dd2f88a366f15bd0632ba725227018c69a1c8550a927324f8eb8368bb9'},
+ {'serde_derive-1.0.135.tar.gz': '8dcde03d87d4c973c04be249e7d8f0b35db1c848c487bd43032808e59dd8328d'},
+ {'shardio-0.8.2.tar.gz': '669590a22936d55698744e4096bc46fc8f935f492fe86b2f09cbdbb6d937b65a'},
+ {'strsim-0.10.0.tar.gz': '73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623'},
+ {'strum_macros-0.20.1.tar.gz': 'ee8bc6b87a5112aeeab1f4a9f7ab634fe6cbefc4850006df31267f4cfb9e3149'},
+ {'syn-1.0.80.tar.gz': 'd010a1623fbd906d51d650a9916aaefc05ffa0e4053ff7fe601167f3e715d194'},
+ {'tempfile-3.3.0.tar.gz': '5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4'},
+ {'thiserror-1.0.29.tar.gz': '602eca064b2d83369e2b2f34b09c70b605402801927c65c11071ac911d299b88'},
+ {'thiserror-impl-1.0.29.tar.gz': 'bad553cc2c78e8de258400763a647e80e6d1b31ee237275d756f6836d204494c'},
+ {'tinyvec-1.5.0.tar.gz': 'f83b2a3d4d9091d0abd7eba4dc2710b1718583bd4d8992e2190720ea38f391f7'},
+ {'tinyvec_macros-0.1.0.tar.gz': 'cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c'},
+ {'unicode-bidi-0.3.7.tar.gz': '1a01404663e3db436ed2746d9fefef640d868edae3cceb81c3b8d5732fda678f'},
+ {'unicode-normalization-0.1.19.tar.gz': 'd54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9'},
+ {'unicode-segmentation-1.8.0.tar.gz': '8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b'},
+ {'unicode-xid-0.2.2.tar.gz': '8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3'},
+ {'url-2.2.2.tar.gz': 'a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c'},
+ {'vcpkg-0.2.15.tar.gz': 'accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426'},
+ {'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'},
+]
+
+moduleclass = 'bio'
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/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/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.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/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/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
index 203b4e4cd9f..743bf47a462 100644
--- a/easybuild/easyconfigs/c/CAMPARI/CAMPARI-4.0-intel-2023a.eb
+++ b/easybuild/easyconfigs/c/CAMPARI/CAMPARI-4.0-intel-2023a.eb
@@ -30,9 +30,10 @@ 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
-configopts = '--enable-compiler=ignore --with-trailing-user-fcflags="$FCFLAGS" '
+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 -ltirpc"'
+configopts += 'LIBS="$LIBS $LIBFFT $LIBBLAS -ltirpc"'
buildopts = 'all'
diff --git a/easybuild/easyconfigs/c/CASTEP/CASTEP-24.1-foss-2023b.eb b/easybuild/easyconfigs/c/CASTEP/CASTEP-24.1-foss-2023b.eb
new file mode 100644
index 00000000000..678f4e7df25
--- /dev/null
+++ b/easybuild/easyconfigs/c/CASTEP/CASTEP-24.1-foss-2023b.eb
@@ -0,0 +1,49 @@
+easyblock = 'ConfigureMake'
+
+name = 'CASTEP'
+version = '24.1'
+
+homepage = 'http://www.castep.org'
+description = """
+CASTEP is an electronic structure materials modelling code based on density
+functional theory (DFT), with functionality including geometry optimization
+molecular dynamics, phonons, NMR chemical shifts and much more.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023b'}
+
+download_instructions = """CASTEP is proprietary software, available under a free-of-charge license for academic use
+only. Visit http://www.castep.org and navigate to "Getting Castep" to apply for a license."""
+
+sources = [SOURCE_TAR_GZ]
+checksums = ['97d77a4f3ce3f5c5b87e812f15a2c2cb23918acd7034c91a872b6d66ea0f7dbb']
+
+dependencies = [
+ ('Perl', '5.38.0'),
+ ('Python', '3.11.5'),
+ ('SciPy-bundle', '2023.11'), # for elastic constants and castepconv utility
+]
+
+skipsteps = ['configure']
+
+_generic_opts = ' COMMS_ARCH=mpi FFT=fftw3 MATH_LIBS="-lflexiblas" '
+
+buildopts = _generic_opts + 'FFTLIBDIR=$FFT_LIB_DIR MATHLIBDIR=$BLAS_LIB_DIR'
+buildopts += ' castep tools utilities'
+
+preinstallopts = 'mkdir -p %(installdir)s/bin &&'
+installopts = _generic_opts + 'INSTALL_DIR="%(installdir)s/bin"'
+installopts += ' install-castep install-tools install-utilities'
+
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in ['castep.mpi', 'optados.mpi', 'orbitals2bands', 'dispersion.pl',
+ 'elastics.py', 'ceteprouts.pm']],
+ 'dirs': [],
+}
+
+sanity_check_commands = [
+ 'castep.mpi --help',
+ 'optados.mpi --help',
+]
+
+moduleclass = 'phys'
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.4.4-gompi-2024a.eb b/easybuild/easyconfigs/c/CDO/CDO-2.4.4-gompi-2024a.eb
new file mode 100644
index 00000000000..57b6de8e609
--- /dev/null
+++ b/easybuild/easyconfigs/c/CDO/CDO-2.4.4-gompi-2024a.eb
@@ -0,0 +1,57 @@
+# 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.4.4'
+
+
+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': '2024a'}
+toolchainopts = {'cstd': 'c++20', 'usempi': True}
+
+source_urls = ['https://code.mpimet.mpg.de/attachments/download/29649/']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['49f50bd18dacd585e9518cfd4f55548f692426edfb3b27ddcd1c653eab53d063']
+
+builddependencies = [
+ ('pkgconf', '2.2.0'),
+]
+
+dependencies = [
+ ('cURL', '8.7.1'),
+ ('ecCodes', '2.38.3'),
+ ('FFTW', '3.3.10'),
+ ('HDF5', '1.14.5'),
+ ('libxml2', '2.12.7'),
+ ('netCDF', '4.9.2'),
+ ('PROJ', '9.4.1'),
+ ('Szip', '2.1.1'),
+ ('UDUNITS', '2.2.28'),
+ ('util-linux', '2.40'),
+]
+
+# 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/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/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/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/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/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-20240319-gfbf-2023a.eb b/easybuild/easyconfigs/c/CREST/CREST-2.12-gfbf-2023b.eb
similarity index 59%
rename from easybuild/easyconfigs/c/CREST/CREST-20240319-gfbf-2023a.eb
rename to easybuild/easyconfigs/c/CREST/CREST-2.12-gfbf-2023b.eb
index 7649571fc62..87ae95876bf 100644
--- a/easybuild/easyconfigs/c/CREST/CREST-20240319-gfbf-2023a.eb
+++ b/easybuild/easyconfigs/c/CREST/CREST-2.12-gfbf-2023b.eb
@@ -5,8 +5,7 @@
easyblock = 'CMakeMake'
name = 'CREST'
-version = '20240319'
-_commit = '2719412edf8bb606cebdd4cd6bbb4cdbd249e1e5'
+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
@@ -16,23 +15,24 @@ description = """CREST is an utility/driver program for the xtb program. Origina
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'}
-
-separate_build_dir = False
+toolchain = {'name': 'gfbf', 'version': '2023b'}
github_account = 'grimme-lab'
source_urls = [GITHUB_LOWER_SOURCE]
-sources = [{'download_filename': '%s.tar.gz' % _commit, 'filename': SOURCE_TAR_GZ}]
-checksums = ['770b7ca72bc47bc4e1ffd8ca56566df7b03f4d3b702b04ec6b83bad9a125884d']
+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.26.3')]
+builddependencies = [('CMake', '3.27.6')]
-dependencies = [('xtb', '6.6.1')] # required to run the program
+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/%%(namelower)s-%s:$PATH && ' % _commit
-test_cmd += 'cd %%(builddir)s/%%(namelower)s-%s/examples/expl-0/ && ./run.sh ' % _commit
+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()],
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.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/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/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/CVXOPT/CVXOPT-1.3.2-foss-2023a.eb b/easybuild/easyconfigs/c/CVXOPT/CVXOPT-1.3.2-foss-2023a.eb
new file mode 100644
index 00000000000..d6793ad49bb
--- /dev/null
+++ b/easybuild/easyconfigs/c/CVXOPT/CVXOPT-1.3.2-foss-2023a.eb
@@ -0,0 +1,49 @@
+easyblock = 'PythonPackage'
+
+name = 'CVXOPT'
+version = '1.3.2'
+
+homepage = 'https://cvxopt.org'
+description = """CVXOPT is a free software package for convex optimization based on the Python programming language.
+ Its main purpose is to make the development of software for convex optimization applications straightforward by
+ building on Python's extensive standard library and on the strengths of Python as a high-level programming language.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'pic': True}
+
+source_urls = [PYPI_LOWER_SOURCE]
+sources = [SOURCELOWER_TAR_GZ]
+
+patches = ['CVXOPT-1.3.1_fix-setup-py.patch']
+
+checksums = [
+ '3461fa42c1b2240ba4da1d985ca73503914157fc4c77417327ed6d7d85acdbe6', # cvxopt-1.3.2.tar.gz
+ '350904c0427d4652fc73b95b7e0d78a17c917cb94ed6c356dbbbfb07f2173849', # CVXOPT-1.3.1_fix-setup-py.patch
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SuiteSparse', '7.1.0'),
+ ('GSL', '2.7'),
+]
+
+use_pip = True
+sanity_pip_check = True
+download_dep_fail = True
+
+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'
+
+sanity_check_commands = ['cd %(builddir)s/%(namelower)s-%(version)s && python -m unittest discover -s tests']
+
+moduleclass = 'math'
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
index 69b70834b9b..bdcee918b8b 100644
--- a/easybuild/easyconfigs/c/Cassiopeia/Cassiopeia-2.0.0-foss-2023a.eb
+++ b/easybuild/easyconfigs/c/Cassiopeia/Cassiopeia-2.0.0-foss-2023a.eb
@@ -11,6 +11,8 @@ 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 = [
@@ -27,7 +29,6 @@ dependencies = [
('PyYAML', '6.0'),
('typing-extensions', '4.9.0'),
('tqdm', '4.66.1'),
- ('hatchling', '1.18.0'),
('BeautifulSoup', '4.12.2'),
('statsmodels', '0.14.1'),
('Seaborn', '0.13.2'),
@@ -39,12 +40,6 @@ use_pip = True
sanity_pip_check = True
exts_list = [
- ('hatch_jupyter_builder', '0.9.1', {
- 'checksums': ['79278198d124c646b799c5e8dca8504aed9dcaaa88d071a09eb0b5c2009a58ad'],
- }),
- ('hatch_nodejs_version', '0.3.2', {
- 'checksums': ['8a7828d817b71e50bbbbb01c9bfc0b329657b7900c56846489b9c958de15b54c'],
- }),
('deprecation', '2.1.0', {
'checksums': ['72b3bde64e5d778694b0cf68178aed03d15e15477116add3fb773e581f9518ff'],
}),
diff --git a/easybuild/easyconfigs/c/Cbc/Cbc-2.10.11-foss-2023b.eb b/easybuild/easyconfigs/c/Cbc/Cbc-2.10.11-foss-2023b.eb
new file mode 100644
index 00000000000..39ee2bbd8f2
--- /dev/null
+++ b/easybuild/easyconfigs/c/Cbc/Cbc-2.10.11-foss-2023b.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': '2023b'}
+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.8'),
+ ('pkgconf', '2.0.3'),
+]
+
+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/CellRanger/CellRanger-9.0.0.eb b/easybuild/easyconfigs/c/CellRanger/CellRanger-9.0.0.eb
new file mode 100644
index 00000000000..b25f6cc0d72
--- /dev/null
+++ b/easybuild/easyconfigs/c/CellRanger/CellRanger-9.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 = '9.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 = ['d57e574630bc0871299ba0e3e3b9a770b572cd35a819c52bfd58403ccd72035d']
+
+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/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/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/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-2023b.eb b/easybuild/easyconfigs/c/Cgl/Cgl-0.60.8-foss-2023b.eb
new file mode 100644
index 00000000000..275169c6992
--- /dev/null
+++ b/easybuild/easyconfigs/c/Cgl/Cgl-0.60.8-foss-2023b.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': '2023b'}
+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.8'),
+ ('pkgconf', '2.0.3'),
+]
+
+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/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-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/Circuitscape/Circuitscape-5.12.3-Julia-1.9.2.eb b/easybuild/easyconfigs/c/Circuitscape/Circuitscape-5.12.3-Julia-1.9.2.eb
index a6649359df9..8e8e7e2f86b 100644
--- a/easybuild/easyconfigs/c/Circuitscape/Circuitscape-5.12.3-Julia-1.9.2.eb
+++ b/easybuild/easyconfigs/c/Circuitscape/Circuitscape-5.12.3-Julia-1.9.2.eb
@@ -403,6 +403,10 @@ exts_list = [
}),
]
-sanity_check_commands = ["julia -e 'using Pkg;Pkg.test(\"Circuitscape\")'"]
+_julia_env = "%(installdir)s/environments/v" + '.'.join(_julia_ver.split('.')[:2])
+
+sanity_check_commands = [
+ """julia -e 'using Pkg; Pkg.activate("%s"); Pkg.test("%%(name)s")'""" % _julia_env,
+]
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/Clp/Clp-1.17.9-foss-2023b.eb b/easybuild/easyconfigs/c/Clp/Clp-1.17.9-foss-2023b.eb
new file mode 100644
index 00000000000..115ff64223e
--- /dev/null
+++ b/easybuild/easyconfigs/c/Clp/Clp-1.17.9-foss-2023b.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': '2023b'}
+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.8'),
+ ('pkgconf', '2.0.3'),
+]
+
+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-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/Cluster-Buster/Cluster-Buster-20240927-GCC-12.3.0.eb b/easybuild/easyconfigs/c/Cluster-Buster/Cluster-Buster-20240927-GCC-12.3.0.eb
new file mode 100644
index 00000000000..752cc55bb94
--- /dev/null
+++ b/easybuild/easyconfigs/c/Cluster-Buster/Cluster-Buster-20240927-GCC-12.3.0.eb
@@ -0,0 +1,26 @@
+easyblock = 'MakeCp'
+
+name = 'Cluster-Buster'
+version = '20240927'
+local_commit = '06fee8b'
+
+homepage = 'https://github.com/weng-lab/cluster-buster'
+description = """Cluster-Buster is a program for finding interesting functional regions,
+ such as transcriptional enhancers, in DNA sequences."""
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+
+source_urls = ['https://github.com/weng-lab/cluster-buster/archive/']
+sources = [{'download_filename': '%s.tar.gz' % local_commit, 'filename': SOURCELOWER_TAR_GZ}]
+checksums = ['a77583ae1f38cc08af551932e5f6b35185fde78db330270bb2eb32ecb4d926cc']
+
+files_to_copy = [(['cbust'], 'bin')]
+
+sanity_check_paths = {
+ 'files': ['bin/cbust'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ['cbust -h']
+
+moduleclass = 'bio'
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-13.2.0.eb b/easybuild/easyconfigs/c/CoinUtils/CoinUtils-2.11.10-GCC-13.2.0.eb
new file mode 100644
index 00000000000..8d9e9c2a4f7
--- /dev/null
+++ b/easybuild/easyconfigs/c/CoinUtils/CoinUtils-2.11.10-GCC-13.2.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': '13.2.0'}
+
+builddependencies = [
+ ('Autotools', '20220317'),
+ ('Doxygen', '1.9.8'),
+ ('pkgconf', '2.0.3'),
+]
+
+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/Compress-Raw-Zlib/Compress-Raw-Zlib-2.213-GCCcore-13.3.0.eb b/easybuild/easyconfigs/c/Compress-Raw-Zlib/Compress-Raw-Zlib-2.213-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..13ea1eaab8d
--- /dev/null
+++ b/easybuild/easyconfigs/c/Compress-Raw-Zlib/Compress-Raw-Zlib-2.213-GCCcore-13.3.0.eb
@@ -0,0 +1,31 @@
+easyblock = 'PerlModule'
+
+name = 'Compress-Raw-Zlib'
+version = '2.213'
+
+homepage = 'https://metacpan.org/pod/Compress::Raw::Zlib'
+description = "Low-Level Interface to zlib or zlib-ng compression library"
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://cpan.metacpan.org/authors/id/P/PM/PMQS/']
+sources = ['%(name)s-%(version)s.tar.gz']
+checksums = ['56b21c99cb3a3a7f7876a74dd05daa3f41fc9143ddd4dc98f8e46710a106af45']
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+
+dependencies = [
+ ('Perl', '5.38.2'),
+ ('zlib', '1.3.1'),
+]
+
+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/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/CubeLib/CubeLib-4.8.2-GCCcore-11.3.0.eb b/easybuild/easyconfigs/c/CubeLib/CubeLib-4.8.2-GCCcore-11.3.0.eb
new file mode 100644
index 00000000000..5d28ebcf501
--- /dev/null
+++ b/easybuild/easyconfigs/c/CubeLib/CubeLib-4.8.2-GCCcore-11.3.0.eb
@@ -0,0 +1,50 @@
+# 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': '11.3.0'}
+source_urls = ['https://apps.fz-juelich.de/scalasca/releases/cube/%(version_major_minor)s/dist']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['d6fdef57b1bc9594f1450ba46cf08f431dd0d4ae595c47e2f3454e17e4ae74f4']
+
+builddependencies = [
+ ('binutils', '2.38'),
+ ('pkgconf', '1.8.0'),
+]
+
+dependencies = [
+ ('zlib', '1.2.12'),
+]
+
+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-12.3.0.eb b/easybuild/easyconfigs/c/CubeLib/CubeLib-4.8.2-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..3039dd547d5
--- /dev/null
+++ b/easybuild/easyconfigs/c/CubeLib/CubeLib-4.8.2-GCCcore-12.3.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': '12.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.40'),
+ ('pkgconf', '1.9.5'),
+]
+
+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-11.3.0.eb b/easybuild/easyconfigs/c/CubeWriter/CubeWriter-4.8.2-GCCcore-11.3.0.eb
new file mode 100644
index 00000000000..17faeb9292b
--- /dev/null
+++ b/easybuild/easyconfigs/c/CubeWriter/CubeWriter-4.8.2-GCCcore-11.3.0.eb
@@ -0,0 +1,50 @@
+# 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': '11.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 = [
+ ('binutils', '2.38'),
+ ('pkgconf', '1.8.0'),
+]
+
+dependencies = [
+ ('zlib', '1.2.12'),
+]
+
+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-12.3.0.eb b/easybuild/easyconfigs/c/CubeWriter/CubeWriter-4.8.2-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..ccb04669874
--- /dev/null
+++ b/easybuild/easyconfigs/c/CubeWriter/CubeWriter-4.8.2-GCCcore-12.3.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': '12.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.40'),
+ ('pkgconf', '1.9.5'),
+]
+
+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.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/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/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/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/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/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/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.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/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/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/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/cppyy/cppyy-3.1.2-GCCcore-13.2.0.eb b/easybuild/easyconfigs/c/cppyy/cppyy-3.1.2-GCCcore-13.2.0.eb
index bcd242d9d23..89c6bc40e3d 100644
--- 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
@@ -21,7 +21,7 @@ dependencies = [
exts_list = [
('cppyy-cling', '6.30.0', {
'modulename': False,
- 'preinstallopts': "export STDCXX=14 && ",
+ 'preinstallopts': 'MAKE_NPROCS=%(parallel)s',
'checksums': ['5d9e0551a4cb618eb3392001b3dc2c6294f02257f02fcd4d868999ba04f92af1'],
}),
('cppyy-backend', '1.15.2', {
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/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/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/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/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/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.7.0-gomkl-2023b.eb b/easybuild/easyconfigs/d/DFT-D4/DFT-D4-3.7.0-gomkl-2023b.eb
new file mode 100644
index 00000000000..02f10d2d9dc
--- /dev/null
+++ b/easybuild/easyconfigs/d/DFT-D4/DFT-D4-3.7.0-gomkl-2023b.eb
@@ -0,0 +1,45 @@
+easyblock = 'MesonNinja'
+
+name = 'DFT-D4'
+version = '3.7.0'
+
+homepage = 'https://www.chemie.uni-bonn.de/pctc/mulliken-center/software/dftd4'
+description = """Generally Applicable Atomic-Charge Dependent London Dispersion Correction."""
+
+toolchain = {'name': 'gomkl', 'version': '2023b'}
+
+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.7.0.tar.gz': 'f00b244759eff2c4f54b80a40673440ce951b6ddfa5eee1f46124297e056f69c'},
+ {'DFT-D4-3.2.0-remove_module_id.patch': '8c3c81338cb57972580e4cf3db307aa2e44b8b3f6d1ba7ae24fa9d807490a93b'},
+]
+
+builddependencies = [
+ ('CMake', '3.27.6'),
+ ('Ninja', '1.11.1'),
+ ('Meson', '1.2.3'),
+ ('pkgconf', '2.0.3'),
+]
+
+dependencies = [
+ ('Python', '3.11.5'),
+ ('cffi', '1.15.1'),
+ ('mstore', '0.3.0'),
+ ('mctc-lib', '0.3.1'),
+ ('multicharge', '0.3.0'),
+]
+
+configopts = '-Dpython=true -Dapi_v2=true '
+# if not intel compiler used, lapack mkl is not found.
+configopts += '-Dlapack=mkl '
+
+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/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-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/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/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-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/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..9fb32627c23
--- /dev/null
+++ b/easybuild/easyconfigs/d/decona/decona-1.4-20240731-foss-2023a.eb
@@ -0,0 +1,42 @@
+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'),
+ ('cutadapt', '4.9'),
+]
+
+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/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/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/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/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/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/ESIpy/ESIpy-20240709-foss-2022a.eb b/easybuild/easyconfigs/e/ESIpy/ESIpy-20240731-foss-2022a.eb
similarity index 85%
rename from easybuild/easyconfigs/e/ESIpy/ESIpy-20240709-foss-2022a.eb
rename to easybuild/easyconfigs/e/ESIpy/ESIpy-20240731-foss-2022a.eb
index 8b8af45bccf..290a85e008e 100644
--- a/easybuild/easyconfigs/e/ESIpy/ESIpy-20240709-foss-2022a.eb
+++ b/easybuild/easyconfigs/e/ESIpy/ESIpy-20240731-foss-2022a.eb
@@ -1,8 +1,8 @@
easyblock = 'Tarball'
name = 'ESIpy'
-version = '20240709'
-_commit = '206f863'
+version = '20240731'
+_commit = '25ff61c'
homepage = 'https://github.com/jgrebol/ESIpy'
description = """Program aimed at the calculation of population analysis and aromaticity
@@ -17,7 +17,7 @@ sources = [
'filename': SOURCE_TAR_GZ,
},
]
-checksums = ['7f963f47558b26f545c8963b2191a78b5b2522347d78ee96f0462dccaa0b4f86']
+checksums = ['d8b7bf723ea37426ba6a3d4ddc07c2e969c75afd1ff4843c7d21b2faa1f035b0']
dependencies = [
('Python', '3.10.4'),
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.7.0-foss-2024a.eb b/easybuild/easyconfigs/e/ESMF/ESMF-8.7.0-foss-2024a.eb
new file mode 100644
index 00000000000..a659656f754
--- /dev/null
+++ b/easybuild/easyconfigs/e/ESMF/ESMF-8.7.0-foss-2024a.eb
@@ -0,0 +1,37 @@
+name = 'ESMF'
+version = '8.7.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': '2024a'}
+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.7.0.tar.gz': 'd7ab266e2af8c8b230721d4df59e61aa03c612a95cc39c07a2d5695746f21f56'},
+ {'ESMF-6.1.1_libopts.patch': '3851627f07c32a7da55d99072d619942bd3a1d9dd002e1557716158e7aacdaf4'},
+]
+
+builddependencies = [('CMake', '3.29.3')]
+
+dependencies = [
+ ('netCDF', '4.9.2'),
+ ('netCDF-Fortran', '4.6.1'),
+ ('netCDF-C++4', '4.3.1'),
+ ('libarchive', '3.7.4'),
+]
+
+# 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/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.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/EvidentialGene/EvidentialGene-2018.01.01-gompi-2023a.eb b/easybuild/easyconfigs/e/EvidentialGene/EvidentialGene-2018.01.01-gompi-2023a.eb
new file mode 100644
index 00000000000..15d8b4dc07c
--- /dev/null
+++ b/easybuild/easyconfigs/e/EvidentialGene/EvidentialGene-2018.01.01-gompi-2023a.eb
@@ -0,0 +1,40 @@
+easyblock = "PackedBinary"
+
+name = "EvidentialGene"
+version = '2018.01.01'
+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 = ['6972108112cdb1fb106da11321d06b09f518b544e4739d0bf19da1984131e221']
+
+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/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/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.38.3-gompi-2024a.eb b/easybuild/easyconfigs/e/ecCodes/ecCodes-2.38.3-gompi-2024a.eb
new file mode 100644
index 00000000000..2aa0915ea2e
--- /dev/null
+++ b/easybuild/easyconfigs/e/ecCodes/ecCodes-2.38.3-gompi-2024a.eb
@@ -0,0 +1,46 @@
+easyblock = 'CMakeMake'
+
+name = 'ecCodes'
+version = '2.38.3'
+
+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': '2024a'}
+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 = ['2f13adc4fbdfa3ea11f75ce4ed8937bf40a8fcedd760a519b15e4e17dedc9424']
+
+builddependencies = [
+ ('CMake', '3.29.3'),
+ ('ecBuild', '3.8.5'),
+]
+dependencies = [
+ ('netCDF', '4.9.2'),
+ ('JasPer', '4.2.4'),
+ ('libjpeg-turbo', '3.0.1'),
+ ('libpng', '1.6.43'),
+ ('zlib', '1.3.1'),
+ ('libaec', '1.1.3'),
+]
+
+# 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/edlib/edlib-1.3.9.post1-GCC-13.3.0.eb b/easybuild/easyconfigs/e/edlib/edlib-1.3.9.post1-GCC-13.3.0.eb
new file mode 100644
index 00000000000..96672c2751b
--- /dev/null
+++ b/easybuild/easyconfigs/e/edlib/edlib-1.3.9.post1-GCC-13.3.0.eb
@@ -0,0 +1,28 @@
+easyblock = 'PythonBundle'
+
+name = 'edlib'
+version = '1.3.9.post1'
+
+homepage = 'https://martinsos.github.io/edlib'
+description = "Lightweight, super fast library for sequence alignment using edit (Levenshtein) distance."
+
+toolchain = {'name': 'GCC', 'version': '13.3.0'}
+
+dependencies = [
+ ('Python', '3.12.3'),
+ ('Python-bundle-PyPI', '2024.06'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('cogapp', '3.4.1', {
+ 'checksums': ['a806d5db9e318a1a2d3fce988008179168e7db13e5e55b19b79763f9bb9d2982'],
+ }),
+ (name, version, {
+ 'checksums': ['b0fb6e85882cab02208ccd6daa46f80cb9ff1d05764e91bf22920a01d7a6fbfa'],
+ }),
+]
+
+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/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
index af01c621328..9f66e2f8724 100644
--- 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
@@ -6,7 +6,7 @@ easyblock = 'ConfigureMake'
name = 'enchant-2'
version = '2.6.5'
-homepage = 'https://github.com/AbiWord/enchant'
+homepage = 'http://rrthomas.github.io/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
@@ -15,7 +15,7 @@ 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']
+source_urls = ['https://github.com/rrthomas/enchant/releases/download/v%(version)s']
sources = ['enchant-%(version)s.tar.gz']
checksums = ['9e8fd28cb65a7b6da3545878a5c2f52a15f03c04933a5ff48db89fe86845728e']
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
index 552e826a3a2..45d4f74af79 100644
--- a/easybuild/easyconfigs/e/epiScanpy/epiScanpy-0.4.0-foss-2023a.eb
+++ b/easybuild/easyconfigs/e/epiScanpy/epiScanpy-0.4.0-foss-2023a.eb
@@ -11,6 +11,10 @@ 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'),
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/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/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.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.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/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
index a55db18bfc6..1a9b1727bba 100644
--- 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
@@ -60,6 +60,8 @@ postinstallcmds = [
])
]
+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'],
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/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/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/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/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/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/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/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/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/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
index ddc99b99a37..650b15edaa5 100644
--- 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
@@ -18,11 +18,8 @@ dependencies = [
('Python', '3.12.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.7', {
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/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/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/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/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/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/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/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
index d098c3c3cbc..4fae7c08b54 100644
--- 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
@@ -21,11 +21,8 @@ dependencies = [
('Python-bundle-PyPI', '2023.06'),
]
-exts_default_options = {
- 'download_dep_fail': True,
- 'sanity_pip_check': True,
- 'use_pip': True,
-}
+sanity_pip_check = True
+use_pip = True
exts_list = [
('Markdown', '3.5.2', {
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.3.0.eb b/easybuild/easyconfigs/g/GLPK/GLPK-5.0-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..ad96183a02b
--- /dev/null
+++ b/easybuild/easyconfigs/g/GLPK/GLPK-5.0-GCCcore-13.3.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.3.0'}
+
+source_urls = [GNU_SOURCE]
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['4a1013eebb50f728fc601bdd833b0b2870333c3b3e5a816eeba921d95bec6f15']
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+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/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/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/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/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/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/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-2023.4-foss-2023a.eb b/easybuild/easyconfigs/g/GROMACS/GROMACS-2023.4-foss-2023a.eb
new file mode 100644
index 00000000000..e8c0d929bd9
--- /dev/null
+++ b/easybuild/easyconfigs/g/GROMACS/GROMACS-2023.4-foss-2023a.eb
@@ -0,0 +1,87 @@
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+#
+# Copyright:: Copyright 2012-2016 University of Luxembourg / LCSB, Cyprus Institute / CaSToRC,
+# Ghent University / The Francis Crick Institute
+# Authors::
+# * Wiktor Jurkowski
+# * Fotis Georgatos
+# * George Tsouloupas
+# * Kenneth Hoste
+# * Adam Huffman
+# * Ake Sandgren
+# * J. Sassmannshausen
+# * Dugan Witherick
+# * Christoph Siegert
+# License:: MIT/GPL
+
+name = 'GROMACS'
+version = '2023.4'
+
+homepage = 'https://www.gromacs.org'
+description = """
+GROMACS is a versatile package to perform molecular dynamics, i.e. simulate the
+Newtonian equations of motion for systems with hundreds to millions of
+particles.
+
+This is a CPU only build, containing both MPI and threadMPI binaries
+for both single and double precision.
+
+It also contains the gmxapi extension for the single precision MPI build.
+"""
+
+toolchain = {'name': 'foss', 'version': '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',
+]
+checksums = [
+ {'gromacs-2023.4.tar.gz': 'e5d6c4d9e7ccacfaccb0888619bd21b5ea8911f82b410e68d6db5d40f695f231'},
+ {'GROMACS-2023.1_set_omp_num_threads_env_for_ntomp_tests.patch':
+ '7f41bda16c9c2837624265dda4be252f655d1288ddc4486b1a2422af30d5d199'},
+ {'GROMACS-2023.1_fix_tests_for_gmx_thread_mpi.patch':
+ '6df844bb3bbc51180446a3595c61a4ef195e5f975533a04cef76841aa763aec1'},
+]
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+ ('scikit-build', '0.17.6'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('networkx', '3.1'),
+ ('mpi4py', '3.1.4'),
+]
+
+exts_defaultclass = 'PythonPackage'
+
+exts_default_options = {
+ 'source_urls': [PYPI_SOURCE],
+ 'use_pip': True,
+ 'download_dep_fail': True,
+ 'sanity_pip_check': True,
+}
+
+exts_list = [
+ ('gmxapi', '0.4.2', {
+ 'preinstallopts': 'export CMAKE_ARGS="-Dgmxapi_ROOT=%(installdir)s ' +
+ '-C %(installdir)s/share/cmake/gromacs_mpi/gromacs-hints_mpi.cmake" && ',
+ 'source_tmpl': 'gromacs-2023.4.tar.gz',
+ 'start_dir': 'python_packaging/gmxapi',
+ 'checksums': ['e5d6c4d9e7ccacfaccb0888619bd21b5ea8911f82b410e68d6db5d40f695f231'],
+ }),
+]
+
+modextrapaths = {
+ 'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages',
+}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/g/GROMACS/GROMACS-2024.3-foss-2023b-PLUMED-2.9.2.eb b/easybuild/easyconfigs/g/GROMACS/GROMACS-2024.3-foss-2023b-PLUMED-2.9.2.eb
new file mode 100644
index 00000000000..9743e8a09a2
--- /dev/null
+++ b/easybuild/easyconfigs/g/GROMACS/GROMACS-2024.3-foss-2023b-PLUMED-2.9.2.eb
@@ -0,0 +1,93 @@
+# 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 = '2024.3'
+_plumedver = '2.9.2'
+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.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023b'}
+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',
+ 'GROMACS-2023.3_skip_test_for_plumed.patch',
+]
+checksums = [
+ {'gromacs-2024.3.tar.gz': 'bbda056ee59390be7d58d84c13a9ec0d4e3635617adf2eb747034922cba1f029'},
+ {'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.27.6'),
+ ('scikit-build-core', '0.9.3'),
+]
+
+dependencies = [
+ ('Python', '3.11.5'),
+ ('SciPy-bundle', '2023.11'),
+ ('networkx', '3.2.1'),
+ ('mpi4py', '3.1.5'),
+ ('PLUMED', _plumedver),
+]
+
+# PLUMED 2.9.2 is compatible with GROMACS 2024.2; 2024.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" && ',
+ 'checksums': ['c746c6498c73a75913d7fcb01c13cc001d4bcb82999e9bf91d63578565ed1a1f'],
+ }),
+]
+
+modextrapaths = {
+ 'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages',
+}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/g/GROMACS/GROMACS-2024.3-foss-2023b.eb b/easybuild/easyconfigs/g/GROMACS/GROMACS-2024.3-foss-2023b.eb
new file mode 100644
index 00000000000..a5ece3769bb
--- /dev/null
+++ b/easybuild/easyconfigs/g/GROMACS/GROMACS-2024.3-foss-2023b.eb
@@ -0,0 +1,85 @@
+# 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 = '2024.3'
+
+homepage = 'https://www.gromacs.org'
+description = """
+GROMACS is a versatile package to perform molecular dynamics, i.e. simulate the
+Newtonian equations of motion for systems with hundreds to millions of
+particles.
+
+This is a CPU only build, containing both MPI and threadMPI binaries
+for both single and double precision.
+
+It also contains the gmxapi extension for the single precision MPI build.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023b'}
+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',
+]
+checksums = [
+ {'gromacs-2024.3.tar.gz': 'bbda056ee59390be7d58d84c13a9ec0d4e3635617adf2eb747034922cba1f029'},
+ {'GROMACS-2023.1_set_omp_num_threads_env_for_ntomp_tests.patch':
+ '7f41bda16c9c2837624265dda4be252f655d1288ddc4486b1a2422af30d5d199'},
+ {'GROMACS-2023.1_fix_tests_for_gmx_thread_mpi.patch':
+ '6df844bb3bbc51180446a3595c61a4ef195e5f975533a04cef76841aa763aec1'},
+]
+
+builddependencies = [
+ ('CMake', '3.27.6'),
+ ('scikit-build-core', '0.9.3'),
+]
+
+dependencies = [
+ ('Python', '3.11.5'),
+ ('SciPy-bundle', '2023.11'),
+ ('networkx', '3.2.1'),
+ ('mpi4py', '3.1.5'),
+]
+
+exts_defaultclass = 'PythonPackage'
+
+exts_default_options = {
+ 'source_urls': [PYPI_SOURCE],
+ 'use_pip': True,
+ 'download_dep_fail': True,
+ 'sanity_pip_check': True,
+}
+
+exts_list = [
+ ('gmxapi', '0.4.2', {
+ 'preinstallopts': 'export CMAKE_ARGS="-Dgmxapi_ROOT=%(installdir)s ' +
+ '-C %(installdir)s/share/cmake/gromacs_mpi/gromacs-hints_mpi.cmake" && ',
+ 'checksums': ['c746c6498c73a75913d7fcb01c13cc001d4bcb82999e9bf91d63578565ed1a1f'],
+ }),
+]
+
+modextrapaths = {
+ 'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages',
+}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/g/GROMACS/GROMACS-2024.4-foss-2023b-CUDA-12.4.0-PLUMED-2.9.2.eb b/easybuild/easyconfigs/g/GROMACS/GROMACS-2024.4-foss-2023b-CUDA-12.4.0-PLUMED-2.9.2.eb
new file mode 100644
index 00000000000..1fc7764f5a7
--- /dev/null
+++ b/easybuild/easyconfigs/g/GROMACS/GROMACS-2024.4-foss-2023b-CUDA-12.4.0-PLUMED-2.9.2.eb
@@ -0,0 +1,98 @@
+# 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 = '2024.4'
+local_plumedver = '2.9.2'
+versionsuffix = '-CUDA-%%(cudaver)s-PLUMED-%s' % local_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 GPU enabled build, containing both MPI and threadMPI binaries.
+
+It also contains the gmxapi extension for the single precision MPI build.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023b'}
+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',
+ 'GROMACS-2023.3_skip_test_for_plumed.patch',
+]
+checksums = [
+ {'gromacs-2024.4.tar.gz': 'ac618ece2e58afa86b536c5a2c4fcb937f0760318f12d18f10346b6bdebd86a8'},
+ {'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.27.6'),
+ ('scikit-build-core', '0.9.3'),
+]
+
+dependencies = [
+ ('CUDA', '12.4.0', '', SYSTEM),
+ ('UCX-CUDA', '1.15.0', '-CUDA-%(cudaver)s'),
+ ('Python', '3.11.5'),
+ ('SciPy-bundle', '2023.11'),
+ ('networkx', '3.2.1'),
+ ('mpi4py', '3.1.5'),
+ ('PLUMED', local_plumedver),
+]
+
+# be a bit more forgiving w.r.t. timeouts for GROMACS test suite,
+# see also https://gitlab.com/gromacs/gromacs/-/issues/5062
+configopts = "-DGMX_TEST_TIMEOUT_FACTOR=3"
+
+# PLUMED 2.9.2 is compatible with GROMACS 2024.2; 2024.4 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" && ',
+ 'checksums': ['c746c6498c73a75913d7fcb01c13cc001d4bcb82999e9bf91d63578565ed1a1f'],
+ }),
+]
+
+modextrapaths = {
+ 'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages',
+}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/g/GROMACS/GROMACS-2024.4-foss-2023b-CUDA-12.4.0.eb b/easybuild/easyconfigs/g/GROMACS/GROMACS-2024.4-foss-2023b-CUDA-12.4.0.eb
new file mode 100644
index 00000000000..d93065bbed6
--- /dev/null
+++ b/easybuild/easyconfigs/g/GROMACS/GROMACS-2024.4-foss-2023b-CUDA-12.4.0.eb
@@ -0,0 +1,91 @@
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+#
+# Copyright:: Copyright 2012-2016 University of Luxembourg / LCSB, Cyprus Institute / CaSToRC,
+# Ghent University / The Francis Crick Institute
+# Authors::
+# * Wiktor Jurkowski
+# * Fotis Georgatos
+# * George Tsouloupas
+# * Kenneth Hoste
+# * Adam Huffman
+# * Ake Sandgren
+# * J. Sassmannshausen
+# * Dugan Witherick
+# * Christoph Siegert
+# License:: MIT/GPL
+
+name = 'GROMACS'
+version = '2024.4'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://www.gromacs.org'
+description = """
+GROMACS is a versatile package to perform molecular dynamics, i.e. simulate the
+Newtonian equations of motion for systems with hundreds to millions of
+particles.
+
+This is a GPU enabled build, containing both MPI and threadMPI binaries.
+
+It also contains the gmxapi extension for the single precision MPI build.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023b'}
+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',
+]
+checksums = [
+ {'gromacs-2024.4.tar.gz': 'ac618ece2e58afa86b536c5a2c4fcb937f0760318f12d18f10346b6bdebd86a8'},
+ {'GROMACS-2023.1_set_omp_num_threads_env_for_ntomp_tests.patch':
+ '7f41bda16c9c2837624265dda4be252f655d1288ddc4486b1a2422af30d5d199'},
+ {'GROMACS-2023.1_fix_tests_for_gmx_thread_mpi.patch':
+ '6df844bb3bbc51180446a3595c61a4ef195e5f975533a04cef76841aa763aec1'},
+]
+
+builddependencies = [
+ ('CMake', '3.27.6'),
+ ('scikit-build-core', '0.9.3'),
+]
+
+dependencies = [
+ ('CUDA', '12.4.0', '', SYSTEM),
+ ('UCX-CUDA', '1.15.0', versionsuffix),
+ ('Python', '3.11.5'),
+ ('SciPy-bundle', '2023.11'),
+ ('networkx', '3.2.1'),
+ ('mpi4py', '3.1.5'),
+]
+
+# be a bit more forgiving w.r.t. timeouts for GROMACS test suite,
+# see also https://gitlab.com/gromacs/gromacs/-/issues/5062
+configopts = "-DGMX_TEST_TIMEOUT_FACTOR=3"
+
+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" && ',
+ 'checksums': ['c746c6498c73a75913d7fcb01c13cc001d4bcb82999e9bf91d63578565ed1a1f'],
+ }),
+]
+
+modextrapaths = {
+ 'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages',
+}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/g/GROMACS/GROMACS-2024.4-foss-2023b-PLUMED-2.9.2.eb b/easybuild/easyconfigs/g/GROMACS/GROMACS-2024.4-foss-2023b-PLUMED-2.9.2.eb
new file mode 100644
index 00000000000..5920405282c
--- /dev/null
+++ b/easybuild/easyconfigs/g/GROMACS/GROMACS-2024.4-foss-2023b-PLUMED-2.9.2.eb
@@ -0,0 +1,97 @@
+# 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 = '2024.4'
+local_plumedver = '2.9.2'
+versionsuffix = '-PLUMED-%s' % local_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.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023b'}
+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',
+ 'GROMACS-2023.3_skip_test_for_plumed.patch',
+]
+checksums = [
+ {'gromacs-2024.4.tar.gz': 'ac618ece2e58afa86b536c5a2c4fcb937f0760318f12d18f10346b6bdebd86a8'},
+ {'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.27.6'),
+ ('scikit-build-core', '0.9.3'),
+]
+
+dependencies = [
+ ('Python', '3.11.5'),
+ ('SciPy-bundle', '2023.11'),
+ ('networkx', '3.2.1'),
+ ('mpi4py', '3.1.5'),
+ ('PLUMED', local_plumedver),
+]
+
+# PLUMED 2.9.2 is compatible with GROMACS 2024.2; 2024.4 seems to work fine too
+ignore_plumed_version_check = True
+
+# be a bit more forgiving w.r.t. timeouts for GROMACS test suite,
+# see also https://gitlab.com/gromacs/gromacs/-/issues/5062
+configopts = "-DGMX_TEST_TIMEOUT_FACTOR=3"
+
+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" && ',
+ 'checksums': ['c746c6498c73a75913d7fcb01c13cc001d4bcb82999e9bf91d63578565ed1a1f'],
+ }),
+]
+
+modextrapaths = {
+ 'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages',
+}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/g/GROMACS/GROMACS-2024.4-foss-2023b.eb b/easybuild/easyconfigs/g/GROMACS/GROMACS-2024.4-foss-2023b.eb
new file mode 100644
index 00000000000..778af16ba08
--- /dev/null
+++ b/easybuild/easyconfigs/g/GROMACS/GROMACS-2024.4-foss-2023b.eb
@@ -0,0 +1,89 @@
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+#
+# Copyright:: Copyright 2012-2016 University of Luxembourg / LCSB, Cyprus Institute / CaSToRC,
+# Ghent University / The Francis Crick Institute
+# Authors::
+# * Wiktor Jurkowski
+# * Fotis Georgatos
+# * George Tsouloupas
+# * Kenneth Hoste
+# * Adam Huffman
+# * Ake Sandgren
+# * J. Sassmannshausen
+# * Dugan Witherick
+# * Christoph Siegert
+# License:: MIT/GPL
+
+name = 'GROMACS'
+version = '2024.4'
+
+homepage = 'https://www.gromacs.org'
+description = """
+GROMACS is a versatile package to perform molecular dynamics, i.e. simulate the
+Newtonian equations of motion for systems with hundreds to millions of
+particles.
+
+This is a CPU only build, containing both MPI and threadMPI binaries
+for both single and double precision.
+
+It also contains the gmxapi extension for the single precision MPI build.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023b'}
+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',
+]
+checksums = [
+ {'gromacs-2024.4.tar.gz': 'ac618ece2e58afa86b536c5a2c4fcb937f0760318f12d18f10346b6bdebd86a8'},
+ {'GROMACS-2023.1_set_omp_num_threads_env_for_ntomp_tests.patch':
+ '7f41bda16c9c2837624265dda4be252f655d1288ddc4486b1a2422af30d5d199'},
+ {'GROMACS-2023.1_fix_tests_for_gmx_thread_mpi.patch':
+ '6df844bb3bbc51180446a3595c61a4ef195e5f975533a04cef76841aa763aec1'},
+]
+
+builddependencies = [
+ ('CMake', '3.27.6'),
+ ('scikit-build-core', '0.9.3'),
+]
+
+dependencies = [
+ ('Python', '3.11.5'),
+ ('SciPy-bundle', '2023.11'),
+ ('networkx', '3.2.1'),
+ ('mpi4py', '3.1.5'),
+]
+
+# be a bit more forgiving w.r.t. timeouts for GROMACS test suite,
+# see also https://gitlab.com/gromacs/gromacs/-/issues/5062
+configopts = "-DGMX_TEST_TIMEOUT_FACTOR=3"
+
+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" && ',
+ 'checksums': ['c746c6498c73a75913d7fcb01c13cc001d4bcb82999e9bf91d63578565ed1a1f'],
+ }),
+]
+
+modextrapaths = {
+ 'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages',
+}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/g/GSL/GSL-2.8-GCC-13.3.0.eb b/easybuild/easyconfigs/g/GSL/GSL-2.8-GCC-13.3.0.eb
new file mode 100644
index 00000000000..251304ed936
--- /dev/null
+++ b/easybuild/easyconfigs/g/GSL/GSL-2.8-GCC-13.3.0.eb
@@ -0,0 +1,25 @@
+easyblock = 'ConfigureMake'
+
+name = 'GSL'
+version = '2.8'
+
+homepage = 'https://www.gnu.org/software/gsl/'
+description = """The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers.
+ The library provides a wide range of mathematical routines such as random number generators, special functions
+ and least-squares fitting."""
+
+toolchain = {'name': 'GCC', 'version': '13.3.0'}
+toolchainopts = {'unroll': True, 'pic': True}
+
+source_urls = [GNU_SOURCE]
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['6a99eeed15632c6354895b1dd542ed5a855c0f15d9ad1326c6fe2b2c9e423190']
+
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in ['gsl-config', 'gsl-histogram', 'gsl-randist']] +
+ ['include/gsl/gsl_types.h'] +
+ ['lib/lib%s.%s' % (x, SHLIB_EXT) for x in ['gsl', 'gslcblas']],
+ 'dirs': [],
+}
+
+moduleclass = 'numlib'
diff --git a/easybuild/easyconfigs/g/GST-plugins-base/GST-plugins-base-1.24.8-GCC-13.2.0.eb b/easybuild/easyconfigs/g/GST-plugins-base/GST-plugins-base-1.24.8-GCC-13.2.0.eb
new file mode 100644
index 00000000000..014fbdb6aba
--- /dev/null
+++ b/easybuild/easyconfigs/g/GST-plugins-base/GST-plugins-base-1.24.8-GCC-13.2.0.eb
@@ -0,0 +1,43 @@
+easyblock = 'MesonNinja'
+
+name = 'GST-plugins-base'
+version = '1.24.8'
+
+homepage = 'https://gstreamer.freedesktop.org/'
+description = """GStreamer is a library for constructing graphs of media-handling
+ components. The applications it supports range from simple
+ Ogg/Vorbis playback, audio/video streaming to complex audio
+ (mixing) and video (non-linear editing) processing."""
+
+toolchain = {'name': 'GCC', 'version': '13.2.0'}
+
+source_urls = ['https://gstreamer.freedesktop.org/src/gst-plugins-base']
+sources = [SOURCELOWER_TAR_XZ]
+checksums = ['10fb31743750ccd498d3933e8aaecda563ebc65596a6ab875b47ee936e4b9599']
+
+builddependencies = [
+ ('Meson', '1.2.3'),
+ ('Ninja', '1.11.1'),
+ ('GObject-Introspection', '1.78.1'),
+ ('gettext', '0.22'),
+ ('pkgconf', '2.0.3'),
+ ('Bison', '3.8.2'),
+]
+
+dependencies = [
+ ('zlib', '1.2.13'),
+ ('GLib', '2.78.1'),
+ ('GStreamer', '1.24.8'),
+ ('Gdk-Pixbuf', '2.42.10'),
+ ('X11', '20231019'),
+ ('Mesa', '23.1.9'),
+ ('Graphene', '1.10.8'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/gst-%s-1.0' % x for x in ['discoverer', 'play', 'device-monitor']] +
+ ['lib/libgst%s-1.0.%s' % (x, SHLIB_EXT) for x in ['app', 'audio', 'video']],
+ 'dirs': ['include', 'share']
+}
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/g/GST-plugins-base/GST-plugins-base-1.24.8-GCC-13.3.0.eb b/easybuild/easyconfigs/g/GST-plugins-base/GST-plugins-base-1.24.8-GCC-13.3.0.eb
new file mode 100644
index 00000000000..13311a9a434
--- /dev/null
+++ b/easybuild/easyconfigs/g/GST-plugins-base/GST-plugins-base-1.24.8-GCC-13.3.0.eb
@@ -0,0 +1,43 @@
+easyblock = 'MesonNinja'
+
+name = 'GST-plugins-base'
+version = '1.24.8'
+
+homepage = 'https://gstreamer.freedesktop.org/'
+description = """GStreamer is a library for constructing graphs of media-handling
+ components. The applications it supports range from simple
+ Ogg/Vorbis playback, audio/video streaming to complex audio
+ (mixing) and video (non-linear editing) processing."""
+
+toolchain = {'name': 'GCC', 'version': '13.3.0'}
+
+source_urls = ['https://gstreamer.freedesktop.org/src/gst-plugins-base']
+sources = [SOURCELOWER_TAR_XZ]
+checksums = ['10fb31743750ccd498d3933e8aaecda563ebc65596a6ab875b47ee936e4b9599']
+
+builddependencies = [
+ ('Meson', '1.4.0'),
+ ('Ninja', '1.12.1'),
+ ('GObject-Introspection', '1.80.1'),
+ ('gettext', '0.22.5'),
+ ('pkgconf', '2.2.0'),
+ ('Bison', '3.8.2'),
+]
+
+dependencies = [
+ ('zlib', '1.3.1'),
+ ('GLib', '2.80.4'),
+ ('GStreamer', '1.24.8'),
+ ('Gdk-Pixbuf', '2.42.11'),
+ ('X11', '20240607'),
+ ('Mesa', '24.1.3'),
+ ('Graphene', '1.10.8'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/gst-%s-1.0' % x for x in ['discoverer', 'play', 'device-monitor']] +
+ ['lib/libgst%s-1.0.%s' % (x, SHLIB_EXT) for x in ['app', 'audio', 'video']],
+ 'dirs': ['include', 'share']
+}
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/g/GStreamer/GStreamer-1.24.8-GCC-13.2.0.eb b/easybuild/easyconfigs/g/GStreamer/GStreamer-1.24.8-GCC-13.2.0.eb
new file mode 100644
index 00000000000..4b2634beaaa
--- /dev/null
+++ b/easybuild/easyconfigs/g/GStreamer/GStreamer-1.24.8-GCC-13.2.0.eb
@@ -0,0 +1,47 @@
+easyblock = 'MesonNinja'
+
+name = 'GStreamer'
+version = '1.24.8'
+
+homepage = 'https://gstreamer.freedesktop.org/'
+description = """GStreamer is a library for constructing graphs of media-handling
+ components. The applications it supports range from simple
+ Ogg/Vorbis playback, audio/video streaming to complex audio
+ (mixing) and video (non-linear editing) processing."""
+
+toolchain = {'name': 'GCC', 'version': '13.2.0'}
+
+source_urls = ['https://%(namelower)s.freedesktop.org/src/%(namelower)s']
+sources = [SOURCELOWER_TAR_XZ]
+patches = ['%(name)s-1.24_fix_bad_suid.patch']
+checksums = ['b807dbf36c5d2b3ce1c604133ed0c737350f9523ce4d8d644a1177c5f9d6ded3', # gstreamer-1.24.8.tar.xz
+ 'e40c8b195cc9d44f2d9b92e57608e097ef8dac6fa761c5610fcb836f88610cb1', # %(name)s-1.24_fix_bad_suid.patch
+ ]
+
+builddependencies = [
+ ('Meson', '1.2.3'),
+ ('Ninja', '1.11.1'),
+ ('Perl', '5.38.0'),
+ ('Bison', '3.8.2'),
+ ('flex', '2.6.4'),
+ ('GObject-Introspection', '1.78.1'),
+ ('gettext', '0.22'),
+ ('pkgconf', '2.0.3'),
+]
+dependencies = [
+ ('Python', '3.11.5'),
+ ('zlib', '1.2.13'),
+ ('GMP', '6.3.0'),
+ ('GSL', '2.7'),
+ ('GLib', '2.78.1'),
+ ('libunwind', '1.6.2'),
+ ('elfutils', '0.190'),
+]
+
+
+sanity_check_paths = {
+ 'files': [],
+ 'dirs': ['include', 'share', 'libexec'],
+}
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/g/GStreamer/GStreamer-1.24.8-GCC-13.3.0.eb b/easybuild/easyconfigs/g/GStreamer/GStreamer-1.24.8-GCC-13.3.0.eb
new file mode 100644
index 00000000000..5c3ef3f7b45
--- /dev/null
+++ b/easybuild/easyconfigs/g/GStreamer/GStreamer-1.24.8-GCC-13.3.0.eb
@@ -0,0 +1,47 @@
+easyblock = 'MesonNinja'
+
+name = 'GStreamer'
+version = '1.24.8'
+
+homepage = 'https://gstreamer.freedesktop.org/'
+description = """GStreamer is a library for constructing graphs of media-handling
+ components. The applications it supports range from simple
+ Ogg/Vorbis playback, audio/video streaming to complex audio
+ (mixing) and video (non-linear editing) processing."""
+
+toolchain = {'name': 'GCC', 'version': '13.3.0'}
+
+source_urls = ['https://%(namelower)s.freedesktop.org/src/%(namelower)s']
+sources = [SOURCELOWER_TAR_XZ]
+patches = ['%(name)s-1.24_fix_bad_suid.patch']
+checksums = ['b807dbf36c5d2b3ce1c604133ed0c737350f9523ce4d8d644a1177c5f9d6ded3', # gstreamer-1.24.8.tar.xz
+ 'e40c8b195cc9d44f2d9b92e57608e097ef8dac6fa761c5610fcb836f88610cb1', # %(name)s-1.24_fix_bad_suid.patch
+ ]
+
+builddependencies = [
+ ('Meson', '1.4.0'),
+ ('Ninja', '1.12.1'),
+ ('Perl', '5.38.2'),
+ ('Bison', '3.8.2'),
+ ('flex', '2.6.4'),
+ ('GObject-Introspection', '1.80.1'),
+ ('gettext', '0.22.5'),
+ ('pkgconf', '2.2.0'),
+]
+dependencies = [
+ ('Python', '3.12.3'),
+ ('zlib', '1.3.1'),
+ ('GMP', '6.3.0'),
+ ('GSL', '2.8'),
+ ('GLib', '2.80.4'),
+ ('libunwind', '1.8.1'),
+ ('elfutils', '0.191'),
+]
+
+
+sanity_check_paths = {
+ 'files': [],
+ 'dirs': ['include', 'share', 'libexec'],
+}
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/g/GStreamer/GStreamer-1.24_fix_bad_suid.patch b/easybuild/easyconfigs/g/GStreamer/GStreamer-1.24_fix_bad_suid.patch
new file mode 100644
index 00000000000..c7497079889
--- /dev/null
+++ b/easybuild/easyconfigs/g/GStreamer/GStreamer-1.24_fix_bad_suid.patch
@@ -0,0 +1,22 @@
+Do NOT make files setuid or try to do setcap.
+That's a recipe for disaster.
+Åke Sandgren, 20221031
+Stefan Wolfsheimer, upated to version 1.24.8
+
+--- gstreamer-1.24.8.orig/libs/gst/helpers/ptp/ptp_helper_post_install.sh 2024-09-19 12:01:21.000000000 +0200
++++ gstreamer-1.24.8/libs/gst/helpers/ptp/ptp_helper_post_install.sh 2024-10-22 17:43:55.971711002 +0200
+@@ -11,14 +11,10 @@
+ setuid-root)
+ echo "$0: permissions before: "
+ ls -l "$ptp_helper"
+- chown root "$ptp_helper" || true
+- chmod u+s "$ptp_helper" || true
+ echo "$0: permissions after: "
+ ls -l "$ptp_helper"
+ ;;
+ capabilities)
+- echo "Calling $setcap cap_sys_nice,cap_net_bind_service,cap_net_admin+ep $ptp_helper"
+- $setcap cap_sys_nice,cap_net_bind_service,cap_net_admin+ep "$ptp_helper" || true
+ ;;
+ none)
+ echo "No perms/caps to set for $ptp_helper"
diff --git a/easybuild/easyconfigs/g/GTDB-Tk/GTDB-Tk-2.4.0-foss-2023a.eb b/easybuild/easyconfigs/g/GTDB-Tk/GTDB-Tk-2.4.0-foss-2023a.eb
index 271be65a5dd..a8f48c5966b 100644
--- a/easybuild/easyconfigs/g/GTDB-Tk/GTDB-Tk-2.4.0-foss-2023a.eb
+++ b/easybuild/easyconfigs/g/GTDB-Tk/GTDB-Tk-2.4.0-foss-2023a.eb
@@ -19,7 +19,7 @@ dependencies = [
('prodigal', '2.6.3'),
('HMMER', '3.4'),
('pplacer', '1.1.alpha19', '', SYSTEM),
- ('FastANI', '1.34'),
+ ('skani', '0.2.2'),
('FastTree', '2.1.11'),
('Mash', '2.3'),
('tqdm', '4.66.1'),
diff --git a/easybuild/easyconfigs/g/GTK3/GTK3-3.24.42-GCCcore-13.3.0.eb b/easybuild/easyconfigs/g/GTK3/GTK3-3.24.42-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..2df9a346d4a
--- /dev/null
+++ b/easybuild/easyconfigs/g/GTK3/GTK3-3.24.42-GCCcore-13.3.0.eb
@@ -0,0 +1,72 @@
+easyblock = 'Bundle'
+
+name = 'GTK3'
+version = '3.24.42'
+
+homepage = 'https://developer.gnome.org/gtk3/stable/'
+description = """GTK+ is the primary library used to construct user interfaces in GNOME. It
+ provides all the user interface controls, or widgets, used in a common
+ graphical application. Its object-oriented API allows you to construct
+ user interfaces without dealing with the low-level details of drawing and
+ device interaction.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('Autotools', '20231222'),
+ ('Meson', '1.4.0'),
+ ('Ninja', '1.12.1'),
+ ('pkgconf', '2.2.0'),
+ ('GObject-Introspection', '1.80.1'),
+]
+
+dependencies = [
+ ('ATK', '2.38.0'),
+ ('at-spi2-atk', '2.38.0'),
+ ('cairo', '1.18.0'),
+ ('Gdk-Pixbuf', '2.42.11'),
+ ('GLib', '2.80.4'),
+ ('Pango', '1.54.0'),
+ ('libepoxy', '1.5.10'),
+ ('X11', '20240607'),
+ ('FriBidi', '1.0.15'),
+ ('Wayland', '1.23.0'),
+]
+
+default_easyblock = 'MesonNinja'
+
+default_component_specs = {
+ 'sources': [SOURCELOWER_TAR_XZ],
+ 'start_dir': '%(namelower)s-%(version)s',
+}
+
+components = [
+ ('GTK+', version, {
+ 'source_urls': [FTPGNOME_SOURCE],
+ 'checksums': ['50f89f615092d4dd01bbd759719f8bd380e5f149f6fd78a94725e2de112377e2'],
+ }),
+ ('hicolor-icon-theme', '0.18', {
+ 'easyblock': 'MesonNinja',
+ 'source_urls': ['https://icon-theme.freedesktop.org/releases/'],
+ 'checksums': ['db0e50a80aa3bf64bb45cbca5cf9f75efd9348cf2ac690b907435238c3cf81d7'],
+ }),
+ ('adwaita-icon-theme', '47.0', {
+ 'source_urls': ['https://ftp.gnome.org/pub/GNOME/sources/%(namelower)s/%(version_major)s'],
+ 'checksums': ['ad088a22958cb8469e41d9f1bba0efb27e586a2102213cd89cc26db2e002bdfe'],
+ }),
+]
+
+postinstallcmds = ['gtk-update-icon-cache']
+
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in ['gtk3-demo', 'gtk3-demo-application', 'gtk3-icon-browser', 'gtk3-widget-factory',
+ 'gtk-builder-tool', 'gtk-launch', 'gtk-query-immodules-3.0', 'gtk-query-settings',
+ 'gtk-update-icon-cache']] +
+ ['lib/%s-%%(version_major)s.%s' % (x, SHLIB_EXT) for x in ['libgailutil', 'libgdk', 'libgtk']],
+ 'dirs': ['include/%s-%%(version_major)s.0' % x for x in ['gail', 'gtk']] +
+ ['share/icons/hicolor', 'share/icons/Adwaita'],
+}
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/g/GTS/GTS-0.7.6-GCCcore-13.3.0.eb b/easybuild/easyconfigs/g/GTS/GTS-0.7.6-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..dd36868a20d
--- /dev/null
+++ b/easybuild/easyconfigs/g/GTS/GTS-0.7.6-GCCcore-13.3.0.eb
@@ -0,0 +1,30 @@
+easyblock = 'ConfigureMake'
+
+name = 'GTS'
+version = '0.7.6'
+
+homepage = 'http://gts.sourceforge.net/'
+description = """GTS stands for the GNU Triangulated Surface Library.
+It is an Open Source Free Software Library intended to provide a set of useful
+functions to deal with 3D surfaces meshed with interconnected triangles."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = [SOURCEFORGE_SOURCE]
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['059c3e13e3e3b796d775ec9f96abdce8f2b3b5144df8514eda0cc12e13e8b81e']
+
+builddependencies = [
+ ('pkgconf', '2.2.0'),
+ ('binutils', '2.42'),
+]
+dependencies = [
+ ('GLib', '2.80.4'),
+]
+
+sanity_check_paths = {
+ 'files': ['lib/libgts.%s' % SHLIB_EXT, 'bin/gts2oogl', 'bin/gtscheck'],
+ 'dirs': [],
+}
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/g/Gdk-Pixbuf/Gdk-Pixbuf-2.42.11-GCCcore-13.3.0.eb b/easybuild/easyconfigs/g/Gdk-Pixbuf/Gdk-Pixbuf-2.42.11-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..2ac4237f4c0
--- /dev/null
+++ b/easybuild/easyconfigs/g/Gdk-Pixbuf/Gdk-Pixbuf-2.42.11-GCCcore-13.3.0.eb
@@ -0,0 +1,46 @@
+easyblock = 'MesonNinja'
+
+name = 'Gdk-Pixbuf'
+version = '2.42.11'
+
+homepage = 'https://docs.gtk.org/gdk-pixbuf/'
+description = """
+ The Gdk Pixbuf is a toolkit for image loading and pixel buffer manipulation.
+ It is used by GTK+ 2 and GTK+ 3 to load and manipulate images. In the past it
+ was distributed as part of GTK+ 2 but it was split off into a separate package
+ in preparation for the change to GTK+ 3.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = [FTPGNOME_SOURCE]
+sources = [SOURCELOWER_TAR_XZ]
+checksums = ['49dcb402388708647e8c321d56b6fb30f21e51e515d0c5a942268d23052a2f00']
+
+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'),
+ ('libjpeg-turbo', '3.0.1'),
+ ('libpng', '1.6.43'),
+ ('LibTIFF', '4.6.0'),
+ ('X11', '20240607'),
+]
+
+configopts = "--buildtype=release --default-library=both "
+configopts += "-Dgio_sniffing=false -Dintrospection=enabled -Dman=false"
+
+sanity_check_paths = {
+ 'files': ['lib/libgdk_pixbuf-%(version_major)s.0.a', 'lib/libgdk_pixbuf-%%(version_major)s.0.%s' % SHLIB_EXT],
+ 'dirs': ['bin', 'include/gdk-pixbuf-%(version_major)s.0', 'lib/gdk-pixbuf-%(version_major)s.0', 'share'],
+}
+
+sanity_check_commands = ["gdk-pixbuf-pixdata --help"]
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/g/Geant4-data/Geant4-data-11.2.eb b/easybuild/easyconfigs/g/Geant4-data/Geant4-data-11.2.eb
new file mode 100644
index 00000000000..a085843d7d2
--- /dev/null
+++ b/easybuild/easyconfigs/g/Geant4-data/Geant4-data-11.2.eb
@@ -0,0 +1,54 @@
+easyblock = 'Tarball'
+name = 'Geant4-data'
+version = '11.2' # version should somewhat match the Geant4 version it should be used in
+
+homepage = 'https://geant4.web.cern.ch/'
+description = """Datasets for Geant4."""
+
+toolchain = SYSTEM
+
+# Pick up the correct sets and versions from cmake/Modules/G4DatasetDefinitions.cmake
+# in the Geant source,
+# see also https://github.com/Geant4/geant4/blob/v11.2.2/cmake/Modules/G4DatasetDefinitions.cmake
+local_datasets = [
+ ('G4NDL', '4.7.1', 'G4NDL', 'G4NEUTRONHPDATA'), # NDL
+ ('G4EMLOW', '8.5', 'G4EMLOW', 'G4LEDATA'), # Low energy electromagnetics
+ ('PhotonEvaporation', '5.7', 'G4PhotonEvaporation', 'G4LEVELGAMMADATA'), # Photon evaporation
+ ('RadioactiveDecay', '5.6', 'G4RadioactiveDecay', 'G4RADIOACTIVEDATA'), # Radioisotopes
+ ('G4SAIDDATA', '2.0', 'G4SAIDDATA', 'G4SAIDXSDATA'), # SAID
+ ('G4PARTICLEXS', '4.0', 'G4PARTICLEXS', 'G4PARTICLEXSDATA'), # Particle XS - replaces Neutron XS
+ ('G4PII', '1.3', 'G4PII', 'G4PIIDATA'), # PII
+ ('RealSurface', '2.2', 'G4RealSurface', 'G4REALSURFACEDATA'), # Optical Surfaces
+ ('G4ABLA', '3.3', 'G4ABLA', 'G4ABLADATA'), # ABLA
+ ('G4INCL', '1.2', 'G4INCL', 'G4INCLDATA'), # INCL
+ ('G4ENSDFSTATE', '2.3', 'G4ENSDFSTATE', 'G4ENSDFSTATEDATA'), # ENSDFSTATE
+ ('G4TENDL', '1.4', 'G4TENDL', 'G4PARTICLEHPDATA'), # TENDL
+]
+
+source_urls = ['https://cern.ch/geant4-data/datasets']
+sources = ['%s.%s.tar.gz' % (x[2], x[1]) for x in local_datasets]
+checksums = [
+ {'G4NDL.4.7.1.tar.gz': 'd3acae48622118d2579de24a54d533fb2416bf0da9dd288f1724df1485a46c7c'},
+ {'G4EMLOW.8.5.tar.gz': '66baca49ac5d45e2ac10c125b4fb266225e511803e66981909ce9cd3e9bcef73'},
+ {'G4PhotonEvaporation.5.7.tar.gz': '761e42e56ffdde3d9839f9f9d8102607c6b4c0329151ee518206f4ee9e77e7e5'},
+ {'G4RadioactiveDecay.5.6.tar.gz': '3886077c9c8e5a98783e6718e1c32567899eeb2dbb33e402d4476bc2fe4f0df1'},
+ {'G4SAIDDATA.2.0.tar.gz': '1d26a8e79baa71e44d5759b9f55a67e8b7ede31751316a9e9037d80090c72e91'},
+ {'G4PARTICLEXS.4.0.tar.gz': '9381039703c3f2b0fd36ab4999362a2c8b4ff9080c322f90b4e319281133ca95'},
+ {'G4PII.1.3.tar.gz': '6225ad902675f4381c98c6ba25fc5a06ce87549aa979634d3d03491d6616e926'},
+ {'G4RealSurface.2.2.tar.gz': '9954dee0012f5331267f783690e912e72db5bf52ea9babecd12ea22282176820'},
+ {'G4ABLA.3.3.tar.gz': '1e041b3252ee9cef886d624f753e693303aa32d7e5ef3bba87b34f36d92ea2b1'},
+ {'G4INCL.1.2.tar.gz': 'f880b16073ee0a92d7494f3276a6d52d4de1d3677a0d4c7c58700396ed0e1a7e'},
+ {'G4ENSDFSTATE.2.3.tar.gz': '9444c5e0820791abd3ccaace105b0e47790fadce286e11149834e79c4a8e9203'},
+ {'G4TENDL.1.4.tar.gz': '4b7274020cc8b4ed569b892ef18c2e088edcdb6b66f39d25585ccee25d9721e0'},
+]
+
+start_dir = '..'
+
+modextrapaths = {x[3]: x[0] + x[1] for x in local_datasets}
+
+sanity_check_paths = {
+ 'files': [],
+ 'dirs': [x[0] + x[1] for x in local_datasets],
+}
+
+moduleclass = 'phys'
diff --git a/easybuild/easyconfigs/g/Geant4/Geant4-11.2.2-GCC-12.3.0.eb b/easybuild/easyconfigs/g/Geant4/Geant4-11.2.2-GCC-12.3.0.eb
new file mode 100644
index 00000000000..d4cdf6c78cb
--- /dev/null
+++ b/easybuild/easyconfigs/g/Geant4/Geant4-11.2.2-GCC-12.3.0.eb
@@ -0,0 +1,48 @@
+name = 'Geant4'
+version = '11.2.2'
+
+homepage = 'https://geant4.web.cern.ch/'
+description = """Geant4 is a toolkit for the simulation of the passage of particles through matter.
+ Its areas of application include high energy, nuclear and accelerator physics,
+ as well as studies in medical and space science."""
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+
+github_account = 'Geant4'
+source_urls = [GITHUB_SOURCE]
+sources = [{'download_filename': 'v%(version)s.tar.gz', 'filename': SOURCELOWER_TAR_GZ}]
+patches = [
+ 'Geant4-11.1.2_use_data_env_vars_from_Geant4-data_module.patch',
+]
+checksums = [
+ {'geant4-11.2.2.tar.gz': '0b0cfce14e9143079c4440d27ee21f889c4c4172ac5ee7586746b940ffcf812a'},
+ {'Geant4-11.1.2_use_data_env_vars_from_Geant4-data_module.patch':
+ '822265b7cbcaacdffd28b1094786a3c94122aff63338e514d5d3810cdf9218a6'},
+]
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+]
+
+dependencies = [
+ ('expat', '2.5.0'),
+ # recommended CLHEP version, see https://geant4.web.cern.ch/download/release-notes/notes-v11.1.0.html
+ ('CLHEP', '2.4.7.1'),
+ ('Xerces-C++', '3.2.4'),
+ ('Qt5', '5.15.10'),
+ ('Geant4-data', '11.2', '', SYSTEM),
+]
+
+_copts = [
+ "-DGEANT4_INSTALL_DATA=OFF",
+ "-DGEANT4_USE_SYSTEM_ZLIB=ON",
+ "-DGEANT4_USE_SYSTEM_EXPAT=ON",
+ "-DGEANT4_USE_SYSTEM_CLHEP=ON",
+ "-DGEANT4_USE_QT=ON",
+ "-DGEANT4_USE_GDML=ON",
+ "-DGEANT4_USE_OPENGL_X11=ON",
+ "-DGEANT4_USE_RAYTRACER_X11=ON",
+]
+configopts = ' '.join(_copts)
+
+moduleclass = 'phys'
diff --git a/easybuild/easyconfigs/g/GeneMark-ET/GeneMark-ET-4.72-GCCcore-12.3.0.eb b/easybuild/easyconfigs/g/GeneMark-ET/GeneMark-ET-4.72-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..75ffcc9f5f7
--- /dev/null
+++ b/easybuild/easyconfigs/g/GeneMark-ET/GeneMark-ET-4.72-GCCcore-12.3.0.eb
@@ -0,0 +1,43 @@
+# updated: Denis Kristak (INUITS)
+# Update: Petr Král (INUITS)
+easyblock = 'Tarball'
+
+name = 'GeneMark-ET'
+version = '4.72'
+
+homepage = 'http://exon.gatech.edu/GeneMark'
+description = "Eukaryotic gene prediction suite with automatic training"
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+sources = ['gmes_linux_64-%(version)s.tar.gz']
+checksums = ['629f430e7262bdb5df8f24413e65d26e35eb10ea34212145b692ee4689591e54']
+
+download_instructions = """
+1. complete the license form: http://exon.gatech.edu/GeneMark/license_download.cgi
+2. rename the tarball: `mv gmes_linux_64.tar.gz gmes_linux_64-%(version)s.tar.gz`
+"""
+
+# To run this code, install the key: copy key "gm_key" into user's home directory as:
+# gunzip gm_key.gz
+# cp gm_key_64 ~/.gm_key
+
+dependencies = [
+ ('Perl', '5.36.1'),
+ ('Perl-bundle-CPAN', '5.36.1'),
+]
+
+fix_perl_shebang_for = ['*.pl']
+
+sanity_check_paths = {
+ 'files': ['gmes.cfg', 'gmes_petap.pl'],
+ 'dirs': ['lib'],
+}
+
+sanity_check_commands = [
+ "gmes_petap.pl | grep 'Usage:'",
+]
+
+modextrapaths = {'PATH': ''}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/g/Ghostscript/Ghostscript-10.03.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/g/Ghostscript/Ghostscript-10.03.1-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..174aec3f515
--- /dev/null
+++ b/easybuild/easyconfigs/g/Ghostscript/Ghostscript-10.03.1-GCCcore-13.3.0.eb
@@ -0,0 +1,58 @@
+easyblock = 'ConfigureMake'
+
+name = 'Ghostscript'
+version = '10.03.1'
+
+homepage = 'https://ghostscript.com'
+description = """Ghostscript is a versatile processor for PostScript data with the ability to render PostScript to
+ different targets. It used to be part of the cups printing stack, but is no longer used for that."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = [
+ 'https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs%s/' % version.replace('.', ''),
+]
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['31cd01682ad23a801cc3bbc222a55f07c4ea3e068bdfb447792d54db21a2e8ad']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('pkgconf', '2.2.0'),
+]
+
+dependencies = [
+ ('zlib', '1.3.1'),
+ ('libpng', '1.6.43'),
+ ('freetype', '2.13.2'),
+ ('libjpeg-turbo', '3.0.1'),
+ ('expat', '2.6.2'),
+ ('GLib', '2.80.4'),
+ ('cairo', '1.18.0'),
+ ('LibTIFF', '4.6.0'),
+]
+
+# Do not use local copies of zlib, jpeg, freetype, and png
+preconfigopts = 'mv zlib zlib.no && mv jpeg jpeg.no && mv freetype freetype.no && '
+preconfigopts += 'mv libpng libpng.no && export LIBS="$LIBS -L$EBROOTZLIB/lib -lz" && '
+configopts = "--with-system-libtiff --enable-dynamic --disable-hidden-visibility"
+
+# also build and install shared libs
+build_cmd_targets = ['', 'so']
+installopts = 'soinstall'
+
+postinstallcmds = [
+ # install header files
+ "mkdir -p %(installdir)s/include/%(namelower)s",
+ "install -v -m644 base/*.h %(installdir)s/include/%(namelower)s",
+ "install -v -m644 psi/*.h %(installdir)s/include/%(namelower)s",
+]
+
+sanity_check_paths = {
+ 'files': ['bin/gs', 'lib/libgs.%s' % SHLIB_EXT],
+ 'dirs': ['lib/%(namelower)s', 'include/%(namelower)s', 'share/man'],
+}
+
+sanity_check_commands = ["gs --help"]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/g/GitPython/GitPython-3.1.43-GCCcore-13.3.0.eb b/easybuild/easyconfigs/g/GitPython/GitPython-3.1.43-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..e6ca0d7b0aa
--- /dev/null
+++ b/easybuild/easyconfigs/g/GitPython/GitPython-3.1.43-GCCcore-13.3.0.eb
@@ -0,0 +1,29 @@
+easyblock = 'PythonBundle'
+
+name = 'GitPython'
+version = '3.1.43'
+
+homepage = 'https://gitpython.readthedocs.org'
+description = """ GitPython is a python library used to interact with Git repositories """
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+builddependencies = [('binutils', '2.42')]
+dependencies = [
+ ('Python', '3.12.3'),
+ ('git', '2.45.1'),
+]
+
+sanity_pip_check = True
+use_pip = True
+
+exts_list = [
+ ('smmap', '5.0.1', {'checksums': ['dceeb6c0028fdb6734471eb07c0cd2aae706ccaecab45965ee83f11c8d3b1f62']}),
+ ('gitdb', '4.0.11', {'checksums': ['bf5421126136d6d0af55bc1e7c1af1c397a34f5b7bd79e776cd3e89785c2b04b']}),
+ (name, version, {
+ 'modulename': 'git',
+ 'checksums': ['35f314a9f878467f5453cc1fee295c3e18e52f1b99f10f6cf5b1682e968a9e7c'],
+ }),
+]
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/g/GlimmerHMM/GlimmerHMM-3.0.4c-GCC-12.3.0.eb b/easybuild/easyconfigs/g/GlimmerHMM/GlimmerHMM-3.0.4c-GCC-12.3.0.eb
new file mode 100644
index 00000000000..ad435033f81
--- /dev/null
+++ b/easybuild/easyconfigs/g/GlimmerHMM/GlimmerHMM-3.0.4c-GCC-12.3.0.eb
@@ -0,0 +1,57 @@
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+
+easyblock = 'MakeCp'
+
+name = 'GlimmerHMM'
+version = '3.0.4c'
+
+homepage = 'https://ccb.jhu.edu/software/glimmerhmm'
+description = """GlimmerHMM is a new gene finder based on a Generalized Hidden Markov Model.
+ Although the gene finder conforms to the overall mathematical framework of a GHMM, additionally
+ it incorporates splice site models adapted from the GeneSplicer program and a decision tree adapted
+ from GlimmerM. It also utilizes Interpolated Markov Models for the coding and noncoding models."""
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://ccb.jhu.edu/software/%(namelower)s/dl']
+sources = [SOURCE_TAR_GZ]
+checksums = ['31ee2ceb8f31338205b2de626d83d0f92d2cd55a04d48a6803193a2d0ad1b4a3']
+
+dependencies = [
+ ('Perl', '5.36.1'),
+]
+
+start_dir = 'sources'
+
+# make sure -O0 is not used as compiler option
+prebuildopts = "ls makefile train/makefile | xargs sed -i 's/-O0 .*//g' && "
+
+# also build in 'train' subdirectory to overwrite pre-compiled binaries
+buildopts = "&& cd ../train && make"
+
+local_train_files = ['build1', 'build2', 'build-icm', 'build-icm-noframe', 'erfapp', 'falsecomp',
+ 'findsites', 'karlin', 'score', 'score2', 'scoreATG', 'scoreATG2', 'scoreSTOP',
+ 'scoreSTOP2', 'splicescore', 'trainGlimmerHMM']
+files_to_copy = [
+ (['sources/%(namelower)s'], 'bin'),
+ (['train/%s' % x for x in local_train_files], 'bin'),
+ (['train/*.pm'], 'lib/perl%(perlmajver)s'),
+ 'trained_dir', 'README', 'train/readme.train',
+]
+
+fix_perl_shebang_for = ['bin/trainGlimmerHMM']
+
+sanity_check_paths = {
+ 'files': ['bin/%(namelower)s'],
+ 'dirs': ['trained_dir'],
+}
+
+sanity_check_commands = [
+ "%(namelower)s -h",
+ r"trainGlimmerHMM -h 2>&1 | grep '^[ ]*Train GlimmerHMM module'",
+]
+
+modextrapaths = {'PERL5LIB': 'lib/perl%(perlmajver)s'}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/g/GlobalArrays/GlobalArrays-5.8.2-intel-2024a.eb b/easybuild/easyconfigs/g/GlobalArrays/GlobalArrays-5.8.2-intel-2024a.eb
new file mode 100644
index 00000000000..40829149482
--- /dev/null
+++ b/easybuild/easyconfigs/g/GlobalArrays/GlobalArrays-5.8.2-intel-2024a.eb
@@ -0,0 +1,30 @@
+easyblock = 'ConfigureMake'
+
+name = 'GlobalArrays'
+version = '5.8.2'
+
+homepage = 'https://hpc.pnl.gov/globalarrays'
+description = "Global Arrays (GA) is a Partitioned Global Address Space (PGAS) programming model"
+
+toolchain = {'name': 'intel', 'version': '2024a'}
+toolchainopts = {'usempi': True}
+
+source_urls = ['https://github.com/%(name)s/ga/releases/download/']
+sources = ['v%(version)s/ga-%(version)s.tar.gz']
+checksums = ['51599e4abfe36f05cecfaffa33be19efbe9e9fa42d035fd3f866469b663c22a2']
+
+configopts = ' --with-mpi --enable-i8'
+configopts += ' --with-blas8="-L$MKLROOT/lib/intel64 -lmkl_sequential -lmkl_intel_ilp64"'
+configopts += ' --with-scalapack="-L$MKLROOT/lib/intel64 -lmkl_scalapack_ilp64 -lmkl_intel_ilp64 '
+configopts += '-lmkl_sequential -lmkl_core -lmkl_blacs_intelmpi_ilp64 -lpthread -lm -ldl"'
+
+# select armci network as (Comex) MPI-1 two-sided
+configopts += ' --with-mpi-ts'
+
+sanity_check_paths = {
+ 'files': ['bin/adjust.x', 'bin/collisions.x', 'bin/ga-config', 'lib/libarmci.a',
+ 'lib/libcomex.a', 'lib/libga.a'],
+ 'dirs': ['include'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/g/Gradio/Gradio-4.19.0-gfbf-2023a.eb b/easybuild/easyconfigs/g/Gradio/Gradio-4.19.0-gfbf-2023a.eb
new file mode 100644
index 00000000000..3f949981b52
--- /dev/null
+++ b/easybuild/easyconfigs/g/Gradio/Gradio-4.19.0-gfbf-2023a.eb
@@ -0,0 +1,119 @@
+easyblock = 'PythonBundle'
+
+name = 'Gradio'
+version = '4.19.0'
+
+homepage = "https://www.gradio.app"
+description = """
+Gradio is an open-source Python package that allows you to quickly build a demo or web
+application for your machine learning model, API, or any arbitrary Python function.
+"""
+
+toolchain = {'name': 'gfbf', 'version': '2023a'}
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('Rust', '1.75.0'),
+ ('maturin', '1.4.0', '-Rust-1.75.0'),
+ ('hatchling', '1.18.0'),
+ ('poetry', '1.5.1'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('PyYAML', '6.0'),
+ ('pydantic', '2.5.3'),
+ ('matplotlib', '3.7.2'),
+ ('Pillow', '10.0.0'),
+ ('tqdm', '4.66.1'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('aiofiles', '23.2.1', {
+ 'checksums': ['84ec2218d8419404abcb9f0c02df3f34c6e0a68ed41072acfb1cef5cbc29051a'],
+ }),
+ ('toolz', '0.12.1', {
+ 'checksums': ['ecca342664893f177a13dac0e6b41cbd8ac25a358e5f215316d43e2100224f4d'],
+ }),
+ ('altair', '5.2.0', {
+ 'checksums': ['2ad7f0c8010ebbc46319cc30febfb8e59ccf84969a201541c207bc3a4fa6cf81'],
+ }),
+ ('starlette', '0.36.3', {
+ 'checksums': ['90a671733cfb35771d8cc605e0b679d23b992f8dcfad48cc60b38cb29aeb7080'],
+ }),
+ ('typing-extensions', '4.8.0', {
+ 'source_tmpl': 'typing_extensions-%(version)s.tar.gz',
+ 'checksums': ['df8e4339e9cb77357558cbdbceca33c303714cf861d1eef15e1070055ae8b7ef'],
+ }),
+ ('fastapi', '0.109.2', {
+ 'checksums': ['f3817eac96fe4f65a2ebb4baa000f394e55f5fccdaf7f75250804bc58f354f73'],
+ }),
+ ('ffmpy', '0.3.2', {
+ 'checksums': ['475ebfff1044661b8d969349dbcd2db9bf56d3ee78c0627e324769b49a27a78f'],
+ }),
+ ('websockets', '11.0.3', {
+ 'checksums': ['88fc51d9a26b10fc331be344f1781224a375b78488fc343620184e95a4b27016'],
+ }),
+ ('gradio-client', '0.10.0', {
+ 'source_tmpl': 'gradio_client-%(version)s.tar.gz',
+ 'checksums': ['feaee70f18363d76f81a7d25fc3456f40ed5f92417e642c8f1bf86dc65e3a981'],
+ }),
+ ('huggingface-hub', '0.20.3', {
+ 'source_tmpl': 'huggingface_hub-%(version)s.tar.gz',
+ 'checksums': ['94e7f8e074475fbc67d6a71957b678e1b4a74ff1b64a644fd6cbb83da962d05d'],
+ }),
+ ('orjson', '3.9.14', {
+ 'checksums': ['06fb40f8e49088ecaa02f1162581d39e2cf3fd9dbbfe411eb2284147c99bad79'],
+ }),
+ ('pydub', '0.25.1', {
+ 'checksums': ['980a33ce9949cab2a569606b65674d748ecbca4f0796887fd6f46173a7b0d30f'],
+ }),
+ ('python-multipart', '0.0.9', {
+ 'modulename': 'multipart',
+ 'source_tmpl': 'python_multipart-%(version)s.tar.gz',
+ 'checksums': ['03f54688c663f1b7977105f021043b0793151e4cb1c1a9d4a11fc13d622c4026'],
+ }),
+ ('ruff', '0.2.1', {
+ 'checksums': ['3b42b5d8677cd0c72b99fcaf068ffc62abb5a19e71b4a3b9cfa50658a0af02f1'],
+ }),
+ ('typer', '0.9.0', {
+ 'checksums': ['50922fd79aea2f4751a8e0408ff10d2662bd0c8bbfa84755a699f3bada2978b2'],
+ }),
+ ('h11', '0.14.0', {
+ 'checksums': ['8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d'],
+ }),
+ ('uvicorn', '0.27.1', {
+ 'checksums': ['3d9a267296243532db80c83a959a3400502165ade2c1338dea4e67915fd4745a'],
+ }),
+ ('anyio', '4.2.0', {
+ 'checksums': ['e1875bb4b4e2de1669f4bc7869b6d3f54231cdced71605e6e64c9be77e3be50f'],
+ }),
+ ('httpcore', '1.0.3', {
+ 'checksums': ['5c0f9546ad17dac4d0772b0808856eb616eb8b48ce94f49ed819fd6982a8a544'],
+ }),
+ ('sniffio', '1.3.0', {
+ 'checksums': ['e60305c5e5d314f5389259b7f22aaa33d8f7dee49763119234af3755c55b9101'],
+ }),
+ ('httpx', '0.26.0', {
+ 'checksums': ['451b55c30d5185ea6b23c2c793abf9bb237d2a7dfb901ced6ff69ad37ec1dfaf'],
+ }),
+ ('importlib-resources', '6.1.1', {
+ 'source_tmpl': 'importlib_resources-%(version)s.tar.gz',
+ 'checksums': ['3893a00122eafde6894c59914446a512f728a0c1a45f9bb9b63721b6bacf0b4a'],
+ }),
+ ('Jinja2', '3.1.3', {
+ 'checksums': ['ac8bd6544d4bb2c9792bf3a159e80bba8fda7f07e81bc3aed565432d5925ba90'],
+ }),
+ ('tomlkit', '0.12.0', {
+ 'checksums': ['01f0477981119c7d8ee0f67ebe0297a7c95b14cf9f4b102b45486deb77018716'],
+ }),
+ ('gradio', version, {
+ 'checksums': ['e77e3ce8a4113865abd1dcf92cc9426d9da4896e0a6fd2824a0c90ec751dd442'],
+ }),
+]
+
+moduleclass = 'ai'
diff --git a/easybuild/easyconfigs/g/Graphene/Graphene-1.10.8-GCCcore-13.3.0.eb b/easybuild/easyconfigs/g/Graphene/Graphene-1.10.8-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..d2ff38adec0
--- /dev/null
+++ b/easybuild/easyconfigs/g/Graphene/Graphene-1.10.8-GCCcore-13.3.0.eb
@@ -0,0 +1,32 @@
+easyblock = 'MesonNinja'
+
+name = 'Graphene'
+version = '1.10.8'
+
+homepage = 'https://ebassi.github.io/graphene/'
+description = "Graphene is a thin layer of types for graphic libraries"
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+github_account = 'ebassi'
+source_urls = [GITHUB_LOWER_SOURCE]
+sources = ['%(version)s.tar.gz']
+checksums = ['922dc109d2dc5dc56617a29bd716c79dd84db31721a8493a13a5f79109a4a4ed']
+
+builddependencies = [
+ ('Meson', '1.4.0'),
+ ('Ninja', '1.12.1'),
+ ('pkgconf', '2.2.0'),
+ ('GObject-Introspection', '1.80.1'),
+ ('binutils', '2.42'),
+]
+dependencies = [('GLib', '2.80.4')]
+
+configopts = "-Dgobject_types=true -Dintrospection=enabled"
+
+sanity_check_paths = {
+ 'files': ['lib/libgraphene-1.0.%s' % SHLIB_EXT, 'share/gir-1.0/Graphene-1.0.gir'],
+ 'dirs': ['include/graphene-1.0', 'lib/pkgconfig'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/g/GraphicsMagick/GraphicsMagick-1.3.45-GCCcore-13.3.0.eb b/easybuild/easyconfigs/g/GraphicsMagick/GraphicsMagick-1.3.45-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..63340e41506
--- /dev/null
+++ b/easybuild/easyconfigs/g/GraphicsMagick/GraphicsMagick-1.3.45-GCCcore-13.3.0.eb
@@ -0,0 +1,51 @@
+easyblock = 'ConfigureMake'
+
+name = 'GraphicsMagick'
+version = '1.3.45'
+
+homepage = 'http://www.graphicsmagick.org/'
+description = """GraphicsMagick is the swiss army knife of image processing."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = [
+ SOURCEFORGE_SOURCE,
+ 'ftp://ftp.graphicsmagick.org/pub/GraphicsMagick/%(version_major_minor)s/',
+]
+sources = [SOURCE_TAR_XZ]
+patches = [
+ 'GraphicsMagick_pkgconfig_libtiff.patch'
+]
+checksums = [
+ {'GraphicsMagick-1.3.45.tar.xz': 'dcea5167414f7c805557de2d7a47a9b3147bcbf617b91f5f0f4afe5e6543026b'},
+ {'GraphicsMagick_pkgconfig_libtiff.patch': '25b4c5361f30e23c809a078ac4b26e670d2b8341496323480037e2095d969294'},
+]
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('Autotools', '20231222'),
+]
+
+dependencies = [
+ ('X11', '20240607'),
+ ('bzip2', '1.0.8'),
+ ('freetype', '2.13.2'),
+ ('libpng', '1.6.43'),
+ ('libjpeg-turbo', '3.0.1'),
+ ('LibTIFF', '4.6.0'),
+ ('libxml2', '2.12.7'),
+ ('XZ', '5.4.5'),
+ ('zlib', '1.3.1'),
+ ('Ghostscript', '10.03.1'),
+]
+
+modextrapaths = {'CPATH': ['include/GraphicsMagick']}
+
+sanity_check_paths = {
+ 'files': ['bin/gm', 'lib/libGraphicsMagick.a', 'lib/libGraphicsMagick++.a',
+ 'lib/libGraphicsMagickWand.a'],
+ 'dirs': ['include/GraphicsMagick', 'lib/pkgconfig'],
+}
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/g/Greenlet/Greenlet-3.1.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/g/Greenlet/Greenlet-3.1.1-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..b54b7ecfcc3
--- /dev/null
+++ b/easybuild/easyconfigs/g/Greenlet/Greenlet-3.1.1-GCCcore-13.3.0.eb
@@ -0,0 +1,28 @@
+easyblock = 'PythonPackage'
+
+name = 'Greenlet'
+version = '3.1.1'
+
+homepage = 'https://github.com/python-greenlet/greenlet'
+
+description = """The greenlet package is a spin-off of Stackless, a version of CPython that
+supports micro-threads called "tasklets". Tasklets run pseudo-concurrently (typically in a single
+or a few OS-level threads) and are synchronized with data exchanges on "channels".
+A "greenlet", on the other hand, is a still more primitive notion of micro-thread with no implicit
+scheduling; coroutines, in other words. This is useful when you want to control exactly when your code runs.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+builddependencies = [('binutils', '2.42')]
+dependencies = [('Python', '3.12.3')]
+
+use_pip = True
+download_dep_fail = True
+sanity_pip_check = True
+
+source_urls = [PYPI_LOWER_SOURCE]
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['4ce3ac6cdb6adf7946475d7ef31777c26d94bccc377e070a7986bd2d5c515467']
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/g/Gubbins/Gubbins-3.3.5-foss-2022b.eb b/easybuild/easyconfigs/g/Gubbins/Gubbins-3.3.5-foss-2022b.eb
index 57a08aeb182..99c52d785fd 100644
--- a/easybuild/easyconfigs/g/Gubbins/Gubbins-3.3.5-foss-2022b.eb
+++ b/easybuild/easyconfigs/g/Gubbins/Gubbins-3.3.5-foss-2022b.eb
@@ -58,8 +58,8 @@ sanity_check_paths = {
sanity_check_commands = [
"gubbins --help",
"run_gubbins.py --version",
- 'python -c "import gubbins"',
- 'python -m pip check',
+ 'python -s -c "import gubbins"',
+ 'PIP_DISABLE_PIP_VERSION_CHECK=true python -s -m pip check',
]
moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/g/Guile/Guile-2.0.14-GCCcore-13.3.0.eb b/easybuild/easyconfigs/g/Guile/Guile-2.0.14-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..06a1dc6a05a
--- /dev/null
+++ b/easybuild/easyconfigs/g/Guile/Guile-2.0.14-GCCcore-13.3.0.eb
@@ -0,0 +1,41 @@
+easyblock = 'ConfigureMake'
+
+name = 'Guile'
+version = '2.0.14'
+
+homepage = 'http://www.gnu.org/software/guile'
+description = """Guile is the GNU Ubiquitous Intelligent Language for Extensions, the official extension language for
+the GNU operating system.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = [GNU_SOURCE]
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['8aeb2f353881282fe01694cce76bb72f7ffdd296a12c7a1a39255c27b0dfe5f1']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('pkgconf', '2.2.0'),
+]
+
+dependencies = [
+ ('gc', '8.2.6'),
+ ('GMP', '6.3.0'),
+ ('libffi', '3.4.5'),
+ ('libunistring', '1.2'),
+ ('libtool', '2.4.7'),
+ ('libreadline', '8.2'),
+ ('XZ', '5.4.5'),
+]
+
+configopts = " --enable-error-on-warning=no"
+
+sanity_check_paths = {
+ 'files': ["bin/%s" % x for x in ["guile", 'guile-config', 'guile-snarf', 'guile-tools']] +
+ ["lib/libguile-%(version_major_minor)s.a",
+ "include/guile/%(version_major_minor)s/libguile.h"],
+ 'dirs': []
+}
+
+moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/g/Gymnasium/Gymnasium-0.29.1-foss-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/g/Gymnasium/Gymnasium-0.29.1-foss-2023a-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..b9248ab9aac
--- /dev/null
+++ b/easybuild/easyconfigs/g/Gymnasium/Gymnasium-0.29.1-foss-2023a-CUDA-12.1.1.eb
@@ -0,0 +1,54 @@
+easyblock = 'PythonBundle'
+
+name = 'Gymnasium'
+version = '0.29.1'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://gymnasium.farama.org/'
+description = """
+Gymnasium is an open source Python library for developing and comparing reinforcement learning
+algorithms by providing a standard API to communicate between learning algorithms and
+environments, as well as a standard set of environments compliant with that API.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+ ('SWIG', '4.1.1'),
+]
+
+dependencies = [
+ ('CUDA', '12.1.1', '', SYSTEM),
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('OpenCV', '4.8.1', versionsuffix + '-contrib'),
+ ('pygame', '2.5.2'),
+ ('MuJoCo', '3.1.4'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('cloudpickle', '3.0.0', {
+ 'checksums': ['996d9a482c6fb4f33c1a35335cf8afd065d2a56e973270364840712d9131a882'],
+ }),
+ ('Farama-Notifications', '0.0.4', {
+ 'checksums': ['13fceff2d14314cf80703c8266462ebf3733c7d165336eee998fc58e545efd18'],
+ }),
+ ('box2d-py', '2.3.8', {
+ 'modulename': 'Box2D',
+ 'checksums': ['bdacfbbc56079bb317548efe49d3d5a86646885cc27f4a2ee97e4b2960921ab7'],
+ }),
+ ('gymnasium', version, {
+ 'use_pip_extras': 'all',
+ 'checksums': ['1a532752efcb7590478b1cc7aa04f608eb7a2fdad5570cd217b66b6a35274bb1'],
+ }),
+]
+
+local_envs = ['box2d', 'classic_control', 'mujoco', 'toy_text']
+sanity_check_commands = ["python -c 'import gymnasium.envs.%s'" % e for e in local_envs]
+
+sanity_pip_check = True
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/g/gensim/gensim-4.3.2-foss-2023a.eb b/easybuild/easyconfigs/g/gensim/gensim-4.3.2-foss-2023a.eb
new file mode 100644
index 00000000000..cb315af1a31
--- /dev/null
+++ b/easybuild/easyconfigs/g/gensim/gensim-4.3.2-foss-2023a.eb
@@ -0,0 +1,31 @@
+easyblock = 'PythonBundle'
+
+name = 'gensim'
+version = '4.3.2'
+
+homepage = 'https://radimrehurek.com/gensim'
+description = """Gensim is a Python library for topic modelling, document indexing and similarity retrieval with
+ large corpora."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('wrapt', '1.15.0'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('smart_open', '7.0.4', {
+ 'checksums': ['62b65852bdd1d1d516839fcb1f6bc50cd0f16e05b4ec44b52f43d38bcb838524'],
+ }),
+ (name, version, {
+ 'checksums': ['99ac6af6ffd40682e70155ed9f92ecbf4384d59fb50af120d343ea5ee1b308ab'],
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/g/gffread/gffread-0.12.7-GCCcore-12.3.0.eb b/easybuild/easyconfigs/g/gffread/gffread-0.12.7-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..eba4233b57f
--- /dev/null
+++ b/easybuild/easyconfigs/g/gffread/gffread-0.12.7-GCCcore-12.3.0.eb
@@ -0,0 +1,34 @@
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+easyblock = 'MakeCp'
+
+name = 'gffread'
+version = '0.12.7'
+
+homepage = 'https://ccb.jhu.edu/software/stringtie/gff.shtml#gffread'
+description = """GFF/GTF parsing utility providing format conversions,
+region filtering, FASTA sequence extraction and more."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/gpertea/%(namelower)s/releases/download/v%(version)s/']
+sources = [SOURCE_TAR_GZ]
+checksums = ['bfde1c857495e578f5b3af3c007a9aa40593e69450eafcc6a42c3e8ef08ed1f5']
+
+builddependencies = [('binutils', '2.40')]
+
+buildopts = " release"
+
+files_to_copy = [
+ (['%(name)s'], 'bin'),
+ 'LICENSE',
+]
+
+sanity_check_paths = {
+ 'files': ['bin/%(name)s'],
+ 'dirs': []
+}
+
+sanity_check_commands = ['%(name)s']
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/g/gffutils/gffutils-0.13-foss-2023a.eb b/easybuild/easyconfigs/g/gffutils/gffutils-0.13-foss-2023a.eb
new file mode 100644
index 00000000000..2b52f3965bc
--- /dev/null
+++ b/easybuild/easyconfigs/g/gffutils/gffutils-0.13-foss-2023a.eb
@@ -0,0 +1,47 @@
+easyblock = 'PythonBundle'
+
+name = 'gffutils'
+version = '0.13'
+
+homepage = 'https://github.com/daler/gffutils'
+description = """Gffutils is a Python package for working with and manipulating
+ the GFF and GTF format files typically used for genomic annotations."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('pyfaidx', '0.8.1.1'),
+ ('Biopython', '1.83'),
+ ('pybedtools', '0.9.1'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('six', '1.16.0', {
+ 'checksums': ['1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926'],
+ }),
+ ('argh', '0.31.3', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['2edac856ff50126f6e47d884751328c9f466bacbbb6cbfdac322053d94705494'],
+ }),
+ ('argcomplete', '3.5.0', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['d4bcf3ff544f51e16e54228a7ac7f486ed70ebf2ecfe49a63a91171c76bf029b'],
+ }),
+ ('simplejson', '3.19.3', {
+ 'checksums': ['8e086896c36210ab6050f2f9f095a5f1e03c83fa0e7f296d6cba425411364680'],
+ }),
+ (name, version, {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['58e7bb579796fff70e728380ef2d8ffd4a3bc895e53e6529855a0cf87ba6a77a'],
+ }),
+]
+
+sanity_check_commands = [
+ "python -c 'from gffutils import helpers'"
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/g/gflags/gflags-2.2.2-GCCcore-12.2.0.eb b/easybuild/easyconfigs/g/gflags/gflags-2.2.2-GCCcore-12.2.0.eb
new file mode 100644
index 00000000000..042dd4fdbf0
--- /dev/null
+++ b/easybuild/easyconfigs/g/gflags/gflags-2.2.2-GCCcore-12.2.0.eb
@@ -0,0 +1,35 @@
+easyblock = 'CMakeMake'
+
+name = 'gflags'
+version = '2.2.2'
+
+homepage = 'https://github.com/gflags/gflags'
+description = """
+The gflags package contains a C++ library that implements commandline flags
+processing. It includes built-in support for standard types such as string
+and the ability to define flags in the source file in which they are used.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '12.2.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/gflags/gflags/archive/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['34af2f15cf7367513b352bdcd2493ab14ce43692d2dcd9dfc499492966c64dcf']
+
+builddependencies = [
+ ('binutils', '2.39'),
+ ('CMake', '3.24.3'),
+]
+
+configopts = '-DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=ON'
+
+sanity_check_paths = {
+ 'files': ['bin/gflags_completions.sh'] +
+ ['lib/%s' % x for x in ['libgflags.%s' % SHLIB_EXT, 'libgflags_nothreads.%s' % SHLIB_EXT,
+ 'libgflags.a', 'libgflags_nothreads.a']] +
+ ['include/gflags/gflags_completions.h'],
+ 'dirs': [],
+}
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/g/gflags/gflags-2.2.2-GCCcore-13.3.0.eb b/easybuild/easyconfigs/g/gflags/gflags-2.2.2-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..de0ad50b22c
--- /dev/null
+++ b/easybuild/easyconfigs/g/gflags/gflags-2.2.2-GCCcore-13.3.0.eb
@@ -0,0 +1,35 @@
+easyblock = 'CMakeMake'
+
+name = 'gflags'
+version = '2.2.2'
+
+homepage = 'https://github.com/gflags/gflags'
+description = """
+The gflags package contains a C++ library that implements commandline flags
+processing. It includes built-in support for standard types such as string
+and the ability to define flags in the source file in which they are used.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/gflags/gflags/archive/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['34af2f15cf7367513b352bdcd2493ab14ce43692d2dcd9dfc499492966c64dcf']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('CMake', '3.29.3'),
+]
+
+configopts = '-DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=ON'
+
+sanity_check_paths = {
+ 'files': ['bin/gflags_completions.sh'] +
+ ['lib/%s' % x for x in ['libgflags.%s' % SHLIB_EXT, 'libgflags_nothreads.%s' % SHLIB_EXT,
+ 'libgflags.a', 'libgflags_nothreads.a']] +
+ ['include/gflags/gflags_completions.h'],
+ 'dirs': [],
+}
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/g/giflib/giflib-5.2.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/g/giflib/giflib-5.2.1-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..66ef70d59ce
--- /dev/null
+++ b/easybuild/easyconfigs/g/giflib/giflib-5.2.1-GCCcore-13.3.0.eb
@@ -0,0 +1,28 @@
+easyblock = 'ConfigureMake'
+
+name = 'giflib'
+version = '5.2.1'
+
+homepage = 'http://giflib.sourceforge.net/'
+description = """giflib is a library for reading and writing gif images.
+It is API and ABI compatible with libungif which was in wide use while
+the LZW compression algorithm was patented."""
+
+source_urls = [SOURCEFORGE_SOURCE]
+sources = [SOURCE_TAR_GZ]
+checksums = ['31da5562f44c5f15d63340a09a4fd62b48c45620cd302f77a6d9acf0077879bd']
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+builddependencies = [('binutils', '2.42')]
+
+skipsteps = ['configure']
+
+installopts = 'PREFIX=%(installdir)s'
+
+sanity_check_paths = {
+ 'files': ['bin/giftool'],
+ 'dirs': []
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/g/giflib/giflib-5.2.2-GCCcore-13.3.0.eb b/easybuild/easyconfigs/g/giflib/giflib-5.2.2-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..d8db77830fe
--- /dev/null
+++ b/easybuild/easyconfigs/g/giflib/giflib-5.2.2-GCCcore-13.3.0.eb
@@ -0,0 +1,31 @@
+easyblock = 'ConfigureMake'
+
+name = 'giflib'
+version = '5.2.2'
+
+homepage = 'http://giflib.sourceforge.net/'
+description = """giflib is a library for reading and writing gif images.
+It is API and ABI compatible with libungif which was in wide use while
+the LZW compression algorithm was patented."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = [SOURCEFORGE_SOURCE]
+sources = [SOURCE_TAR_GZ]
+checksums = ['be7ffbd057cadebe2aa144542fd90c6838c6a083b5e8a9048b8ee3b66b29d5fb']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('ImageMagick', '7.1.1-38'),
+]
+
+skipsteps = ['configure']
+
+installopts = 'PREFIX=%(installdir)s'
+
+sanity_check_paths = {
+ 'files': ['bin/giftool'],
+ 'dirs': [],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/g/git-annex/git-annex-10.20230802-GCCcore-12.2.0.eb b/easybuild/easyconfigs/g/git-annex/git-annex-10.20230802-GCCcore-12.2.0.eb
index 2e2696826f6..0e64dba099a 100644
--- a/easybuild/easyconfigs/g/git-annex/git-annex-10.20230802-GCCcore-12.2.0.eb
+++ b/easybuild/easyconfigs/g/git-annex/git-annex-10.20230802-GCCcore-12.2.0.eb
@@ -16,6 +16,7 @@ dependencies = [
('GHC', '9.2.2', '-x86_64', SYSTEM),
('Stack', '2.11.1', '-x86_64', SYSTEM),
('git', '2.38.1', '-nodocs'),
+ ('libnsl', '2.0.0'),
]
sources = [{
@@ -29,7 +30,7 @@ sources = [{
checksums = [None]
-prebuildopts = "stack setup && stack build && "
+prebuildopts = "export STACK_ROOT=$(mktemp -d) && stack setup && stack build && "
buildopts = "install-bins BUILDER=stack PREFIX=%(builddir)s"
files_to_copy = [
diff --git a/easybuild/easyconfigs/g/git-annex/git-annex-10.20230802-GCCcore-12.3.0.eb b/easybuild/easyconfigs/g/git-annex/git-annex-10.20230802-GCCcore-12.3.0.eb
index 6b6af7f9eba..d21f13320b1 100644
--- a/easybuild/easyconfigs/g/git-annex/git-annex-10.20230802-GCCcore-12.3.0.eb
+++ b/easybuild/easyconfigs/g/git-annex/git-annex-10.20230802-GCCcore-12.3.0.eb
@@ -18,6 +18,7 @@ dependencies = [
('GHC', '9.4.6', '-x86_64', SYSTEM),
('Stack', '2.13.1', '-x86_64', SYSTEM),
('git', '2.41.0', '-nodocs'),
+ ('libnsl', '2.0.1'),
]
sources = [{
@@ -31,7 +32,7 @@ sources = [{
checksums = [None]
-prebuildopts = "stack setup && stack build && "
+prebuildopts = "export STACK_ROOT=$(mktemp -d) && stack setup && stack build && "
buildopts = "install-bins BUILDER=stack PREFIX=%(builddir)s"
files_to_copy = [
diff --git a/easybuild/easyconfigs/g/git-annex/git-annex-10.20240731-GCCcore-13.3.0.eb b/easybuild/easyconfigs/g/git-annex/git-annex-10.20240731-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..9701f4ce94d
--- /dev/null
+++ b/easybuild/easyconfigs/g/git-annex/git-annex-10.20240731-GCCcore-13.3.0.eb
@@ -0,0 +1,49 @@
+easyblock = 'MakeCp'
+
+name = 'git-annex'
+version = '10.20240731'
+
+homepage = 'https://git-annex.branchable.com'
+description = """git-annex allows managing large files with git, without storing the file contents in git. It can sync,
+backup, and archive your data, offline and online. Checksums and encryption keep your data safe and secure. Bring the
+power and distributed nature of git to bear on your large files with git-annex."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+builddependencies = [
+ ('binutils', '2.42')
+]
+
+dependencies = [
+ ('GHC', '9.10.1', '-x86_64', SYSTEM),
+ ('Stack', '3.1.1', '-x86_64', SYSTEM),
+ ('git', '2.45.1'),
+ ('libnsl', '2.0.1'),
+]
+
+sources = [{
+ 'git_config': {'url': 'git://git-annex.branchable.com',
+ 'repo_name': '%(name)s',
+ 'tag': '%(version)s',
+ 'clone_into': '%(name)s-%(version)s',
+ },
+ 'filename': '%(name)s-%(version)s.tar.gz',
+}]
+
+checksums = [None]
+
+prebuildopts = "export STACK_ROOT=$(mktemp -d) && stack setup && stack build && "
+buildopts = "install-bins BUILDER=stack PREFIX=%(builddir)s"
+
+files_to_copy = [
+ (['git-annex', 'git-annex-shell'], 'bin'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/git-annex', 'bin/git-annex-shell'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ['git-annex version']
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/g/glew/glew-2.2.0-GCCcore-12.2.0-egl.eb b/easybuild/easyconfigs/g/glew/glew-2.2.0-GCCcore-12.2.0-egl.eb
new file mode 100644
index 00000000000..7babe095c23
--- /dev/null
+++ b/easybuild/easyconfigs/g/glew/glew-2.2.0-GCCcore-12.2.0-egl.eb
@@ -0,0 +1,43 @@
+easyblock = 'ConfigureMake'
+versionsuffix = '-egl'
+# available: -glx, -osmesa, -egl
+# GLEW does support GLX (onscreen or requiring VirtualGL), EGL (technically can do both onscreen and
+# offscreen), and OSMESA (offscreen software only).
+
+name = 'glew'
+version = '2.2.0'
+
+homepage = 'https://github.com/nigels-com/glew'
+description = """The OpenGL Extension Wrangler Library (GLEW) is a cross-platform open-source
+C/C++ extension loading library. GLEW provides efficient run-time mechanisms
+for determining which OpenGL extensions are supported on the target platform."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.2.0'}
+
+source_urls = ['https://github.com/nigels-com/glew/releases/download/%(name)s-%(version)s/']
+sources = ['%(name)s-%(version)s.tgz']
+checksums = ['d4fc82893cfb00109578d0a1a2337fb8ca335b3ceccf97b97e5cc7f08e4353e1']
+
+builddependencies = [('binutils', '2.39')]
+
+dependencies = [
+ ('Mesa', '22.2.4'),
+ ('X11', '20221110'),
+]
+
+local_system = 'SYSTEM=linux`echo %(versionsuffix)s|sed -e "s/-glx//g"`'
+buildopts = local_system
+
+skipsteps = ['configure']
+
+preinstallopts = 'GLEW_PREFIX=%(installdir)s GLEW_DEST=%(installdir)s '
+install_cmd = 'make install.all ' + local_system
+
+sanity_check_paths = {
+ 'files': ['lib/libGLEW.a', 'lib/libGLEW.%s' % SHLIB_EXT] +
+ ['bin/glewinfo', 'bin/visualinfo'] +
+ ['include/GL/%s.h' % h for h in ['glew', 'glxew', 'wglew']],
+ 'dirs': []
+}
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/g/glog/glog-0.6.0-GCCcore-12.2.0.eb b/easybuild/easyconfigs/g/glog/glog-0.6.0-GCCcore-12.2.0.eb
new file mode 100644
index 00000000000..e3742d09ea3
--- /dev/null
+++ b/easybuild/easyconfigs/g/glog/glog-0.6.0-GCCcore-12.2.0.eb
@@ -0,0 +1,33 @@
+easyblock = 'CMakeMake'
+
+name = 'glog'
+version = '0.6.0'
+
+homepage = 'https://github.com/google/glog'
+description = "A C++ implementation of the Google logging module."
+
+toolchain = {'name': 'GCCcore', 'version': '12.2.0'}
+toolchainopts = {'cstd': 'c++11'}
+
+source_urls = ['https://github.com/google/glog/archive/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['8a83bf982f37bb70825df71a9709fa90ea9f4447fb3c099e1d720a439d88bad6']
+
+builddependencies = [
+ ('binutils', '2.39'),
+ ('CMake', '3.24.3'),
+]
+
+dependencies = [
+ ('gflags', '2.2.2'),
+ ('libunwind', '1.6.2'),
+]
+
+configopts = '-DBUILD_SHARED_LIBS=ON '
+
+sanity_check_paths = {
+ 'files': ['include/glog/logging.h', 'include/glog/raw_logging.h', 'lib/libglog.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/g/gmpy2/gmpy2-2.2.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/g/gmpy2/gmpy2-2.2.0-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..45d90e26d6a
--- /dev/null
+++ b/easybuild/easyconfigs/g/gmpy2/gmpy2-2.2.0-GCCcore-13.3.0.eb
@@ -0,0 +1,29 @@
+easyblock = 'PythonPackage'
+
+name = 'gmpy2'
+version = '2.2.0'
+
+homepage = 'https://github.com/aleaxit/gmpy'
+description = "GMP/MPIR, MPFR, and MPC interface to Python 2.6+ and 3.x"
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+sources = [SOURCE_TAR_GZ]
+checksums = ['e19e62dfeb1e4a57079f0bf51c51dec30633d9fe9e89cb9a083e05e4823afa70']
+
+builddependencies = [
+ ('binutils', '2.42')
+]
+
+dependencies = [
+ ('Python', '3.12.3'),
+ ('GMP', '6.3.0'),
+ ('MPFR', '4.2.1'),
+ ('MPC', '1.3.1'),
+]
+
+download_dep_fail = True
+sanity_pip_check = True
+use_pip = True
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/g/gnuplot/gnuplot-6.0.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/g/gnuplot/gnuplot-6.0.1-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..e27fc37776f
--- /dev/null
+++ b/easybuild/easyconfigs/g/gnuplot/gnuplot-6.0.1-GCCcore-13.3.0.eb
@@ -0,0 +1,51 @@
+easyblock = 'ConfigureMake'
+
+name = 'gnuplot'
+version = '6.0.1'
+
+homepage = 'http://gnuplot.sourceforge.net'
+description = "Portable interactive, function plotting utility"
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = [('https://sourceforge.net/projects/%(name)s/files/%(name)s/%(version)s', 'download')]
+sources = [SOURCE_TAR_GZ]
+checksums = ['e85a660c1a2a1808ff24f7e69981ffcbac66a45c9dcf711b65610b26ea71379a']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('pkgconf', '2.2.0'),
+ ('Autotools', '20231222'),
+]
+dependencies = [
+ ('ncurses', '6.5'),
+ ('cairo', '1.18.0'),
+ ('libjpeg-turbo', '3.0.1'),
+ ('libpng', '1.6.43'),
+ ('libgd', '2.3.3'),
+ ('Pango', '1.54.0'),
+ ('libcerf', '2.4'),
+ ('X11', '20240607'),
+ ('Qt6', '6.7.2'),
+ ('Lua', '5.4.7'),
+]
+
+preconfigopts = 'autoreconf && '
+
+# make sure that right Lua library is used (bypassing pkg-config)
+preconfigopts += 'export LUA_CFLAGS="-I$EBROOTLUA/include" && export LUA_LIBS="$EBROOTLUA/lib/liblua.a" && '
+
+# fix undefined reference to symbol 'libiconv_open'
+preconfigopts += ' export LDFLAGS="-Wl,--copy-dt-needed-entries" && '
+
+configopts = "--without-latex --disable-wxwidgets"
+
+sanity_check_paths = {
+ 'files': ['bin/%(name)s'],
+ 'dirs': [],
+}
+
+# make sure that pdf terminal type is available
+sanity_check_commands = ["%(name)s -e 'set terminal pdf'"]
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/g/gomkl/gomkl-2023b.eb b/easybuild/easyconfigs/g/gomkl/gomkl-2023b.eb
new file mode 100644
index 00000000000..d5b856a6fe9
--- /dev/null
+++ b/easybuild/easyconfigs/g/gomkl/gomkl-2023b.eb
@@ -0,0 +1,19 @@
+easyblock = "Toolchain"
+
+name = 'gomkl'
+version = '2023b'
+
+homepage = '(none)'
+description = """GNU Compiler Collection (GCC) based compiler toolchain with OpenMPI and MKL"""
+
+toolchain = SYSTEM
+
+local_comp = ('GCC', '13.2.0')
+
+dependencies = [
+ local_comp,
+ ('OpenMPI', '4.1.6', '', local_comp),
+ ('imkl', '2023.2.0', '', ('gompi', version)),
+]
+
+moduleclass = 'toolchain'
diff --git a/easybuild/easyconfigs/g/gperftools/gperftools-2.16-GCCcore-13.3.0.eb b/easybuild/easyconfigs/g/gperftools/gperftools-2.16-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..1a31ffabd1b
--- /dev/null
+++ b/easybuild/easyconfigs/g/gperftools/gperftools-2.16-GCCcore-13.3.0.eb
@@ -0,0 +1,37 @@
+easyblock = 'ConfigureMake'
+
+name = 'gperftools'
+version = '2.16'
+
+homepage = 'https://github.com/gperftools/gperftools'
+description = """
+gperftools is a collection of a high-performance multi-threaded malloc()
+implementation, plus some pretty nifty performance analysis tools.
+Includes TCMalloc, heap-checker, heap-profiler and cpu-profiler.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+github_account = '%(name)s'
+source_urls = [GITHUB_SOURCE]
+sources = [SOURCE_TAR_GZ]
+checksums = ['737be182b4e42f5c7f595da2a7aa59ce0489a73d336d0d16847f2aa52d5221b4']
+
+builddependencies = [
+ ('Autotools', '20231222'),
+ ('binutils', '2.42'),
+]
+dependencies = [
+ ('libunwind', '1.8.1'),
+]
+
+preconfigopts = "autoreconf -f -i && "
+configopts = '--enable-libunwind'
+
+sanity_check_paths = {
+ 'files': ['bin/pprof', 'lib/libprofiler.a', 'lib/libprofiler.%s' % SHLIB_EXT,
+ 'lib/libtcmalloc.a', 'lib/libtcmalloc.%s' % SHLIB_EXT],
+ 'dirs': ['include'],
+}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/g/graphite2/graphite2-1.3.14-GCCcore-13.3.0.eb b/easybuild/easyconfigs/g/graphite2/graphite2-1.3.14-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..7e199ecf26b
--- /dev/null
+++ b/easybuild/easyconfigs/g/graphite2/graphite2-1.3.14-GCCcore-13.3.0.eb
@@ -0,0 +1,27 @@
+easyblock = 'CMakeMake'
+
+name = 'graphite2'
+version = '1.3.14'
+
+homepage = 'https://scripts.sil.org/cms/scripts/page.php?site_id=projects&item_id=graphite_home'
+description = """Graphite is a "smart font" system developed specifically to
+ handle the complexities of lesser-known languages of the world."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://github.com/silnrsi/graphite/archive/']
+sources = ['%(version)s.zip']
+checksums = ['36e15981af3bf7a3ca3daf53295c8ffde04cf7d163e3474e4d0836e2728b4149']
+
+builddependencies = [
+ ('CMake', '3.29.3'),
+ ('binutils', '2.42'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/gr2fonttest'] +
+ ['lib/lib%%(name)s.%s' % x for x in [SHLIB_EXT, 'la']],
+ 'dirs': ['include/%(name)s', 'share']
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/g/gtk-doc/gtk-doc-1.34.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/g/gtk-doc/gtk-doc-1.34.0-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..dd18263d557
--- /dev/null
+++ b/easybuild/easyconfigs/g/gtk-doc/gtk-doc-1.34.0-GCCcore-12.3.0.eb
@@ -0,0 +1,51 @@
+easyblock = 'MesonNinja'
+
+name = 'gtk-doc'
+version = '1.34.0'
+
+homepage = 'https://gitlab.gnome.org/GNOME/gtk-doc'
+description = """Documentation tool for public library API"""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = ['https://gitlab.gnome.org/GNOME/gtk-doc/-/archive/%(version)s/']
+sources = [SOURCE_TAR_GZ]
+checksums = ['e1d544fa70ae60014a241b674c9d989f4ad6a96554652ebf73bbe94b4da1aa35']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('yelp-tools', '42.1'),
+ ('Ninja', '1.11.1'),
+ ('Meson', '1.1.1'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Pygments', '2.18.0'),
+ ('GLib', '2.77.1'),
+]
+
+sanity_check_paths = {
+ 'files': [
+ 'bin/gtkdoc-depscan',
+ 'bin/gtkdoc-fixxref',
+ 'bin/gtkdoc-check',
+ 'bin/gtkdocize',
+ 'bin/gtkdoc-mkdb',
+ 'bin/gtkdoc-mkhtml',
+ 'bin/gtkdoc-mkhtml2',
+ 'bin/gtkdoc-mkman',
+ 'bin/gtkdoc-mkpdf',
+ 'bin/gtkdoc-rebase',
+ 'bin/gtkdoc-scan',
+ 'bin/gtkdoc-scangobj',
+ ],
+ 'dirs': [
+ 'lib/cmake/GtkDoc',
+ 'share/%(name)s',
+ ],
+}
+
+sanity_check_commands = ['gtkdoc-depscan']
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/g/gym-pybullet-drones/gym-pybullet-drones-2.0.0-3d7b12e-foss-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/g/gym-pybullet-drones/gym-pybullet-drones-2.0.0-3d7b12e-foss-2023a-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..3f1a7405848
--- /dev/null
+++ b/easybuild/easyconfigs/g/gym-pybullet-drones/gym-pybullet-drones-2.0.0-3d7b12e-foss-2023a-CUDA-12.1.1.eb
@@ -0,0 +1,45 @@
+easyblock = 'PythonBundle'
+
+name = 'gym-pybullet-drones'
+local_commit = '3d7b12edd4915a27e6cec9f2c0eb4b5479f7735e'
+version = '2.0.0-%s' % local_commit[:7]
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://utiasdsl.github.io/gym-pybullet-drones/'
+description = """PyBullet-based Gym for single and multi-agent
+reinforcement learning with nano-quadcopters"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+builddependencies = [
+ ('poetry', '1.7.1'),
+ ('pytest', '7.4.2'),
+]
+
+dependencies = [
+ ('CUDA', '12.1.1', '', SYSTEM),
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('matplotlib', '3.7.2'),
+ ('Gymnasium', '0.29.1', versionsuffix),
+ ('PyBullet', '3.2.6'),
+ ('Stable-Baselines3', '2.3.2', versionsuffix),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('transforms3d', '0.4.2', {
+ 'checksums': ['e8b5df30eaedbee556e81c6938e55aab5365894e47d0a17615d7db7fd2393680'],
+ }),
+ (name, version, {
+ 'preinstallopts': """sed -i -e 's/gymnasium.*/gymnasium="*"/' """
+ """-e 's/transforms3d.*/transforms3d="*"/' pyproject.toml && """,
+ 'source_urls': ['https://github.com/utiasDSL/gym-pybullet-drones/archive'],
+ 'sources': [{'download_filename': '%s.tar.gz' % local_commit, 'filename': '%(name)s-%(version)s.tar.gz'}],
+ 'checksums': ['8ff745f590328e2a8fc4701c90d77056d7041f09f28e0ccb821efcc599ae0d8e'],
+ }),
+]
+
+moduleclass = 'ai'
diff --git a/easybuild/easyconfigs/g/gym-pybullet-drones/gym-pybullet-drones-2.0.0-3d7b12e-foss-2023a.eb b/easybuild/easyconfigs/g/gym-pybullet-drones/gym-pybullet-drones-2.0.0-3d7b12e-foss-2023a.eb
new file mode 100644
index 00000000000..7f2f12c79bc
--- /dev/null
+++ b/easybuild/easyconfigs/g/gym-pybullet-drones/gym-pybullet-drones-2.0.0-3d7b12e-foss-2023a.eb
@@ -0,0 +1,43 @@
+easyblock = 'PythonBundle'
+
+name = 'gym-pybullet-drones'
+local_commit = '3d7b12edd4915a27e6cec9f2c0eb4b5479f7735e'
+version = '2.0.0-%s' % local_commit[:7]
+
+homepage = 'https://utiasdsl.github.io/gym-pybullet-drones/'
+description = """PyBullet-based Gym for single and multi-agent
+reinforcement learning with nano-quadcopters"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+builddependencies = [
+ ('poetry', '1.7.1'),
+ ('pytest', '7.4.2'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('matplotlib', '3.7.2'),
+ ('Gymnasium', '0.29.1'),
+ ('PyBullet', '3.2.6'),
+ ('Stable-Baselines3', '2.3.2'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('transforms3d', '0.4.2', {
+ 'checksums': ['e8b5df30eaedbee556e81c6938e55aab5365894e47d0a17615d7db7fd2393680'],
+ }),
+ (name, version, {
+ 'preinstallopts': """sed -i -e 's/gymnasium.*/gymnasium="*"/' """
+ """-e 's/transforms3d.*/transforms3d="*"/' pyproject.toml && """,
+ 'source_urls': ['https://github.com/utiasDSL/gym-pybullet-drones/archive'],
+ 'sources': [{'download_filename': '%s.tar.gz' % local_commit, 'filename': '%(name)s-%(version)s.tar.gz'}],
+ 'checksums': ['8ff745f590328e2a8fc4701c90d77056d7041f09f28e0ccb821efcc599ae0d8e'],
+ }),
+]
+
+moduleclass = 'ai'
diff --git a/easybuild/easyconfigs/h/HDBSCAN/HDBSCAN-0.8.38.post1-foss-2023a.eb b/easybuild/easyconfigs/h/HDBSCAN/HDBSCAN-0.8.38.post1-foss-2023a.eb
new file mode 100644
index 00000000000..b260708eab8
--- /dev/null
+++ b/easybuild/easyconfigs/h/HDBSCAN/HDBSCAN-0.8.38.post1-foss-2023a.eb
@@ -0,0 +1,27 @@
+easyblock = 'PythonPackage'
+
+name = 'HDBSCAN'
+version = '0.8.38.post1'
+
+homepage = 'http://hdbscan.readthedocs.io/en/latest/'
+description = """The hdbscan library is a suite of tools to use unsupervised learning to find clusters, or dense
+ regions, of a dataset. The primary algorithm is HDBSCAN* as proposed by Campello, Moulavi, and Sander. The library
+ provides a high performance implementation of this algorithm, along with tools for analysing the resulting
+ clustering."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['5fbdba2ffb5a99a8b52fa2915658ced6bed59f4d0d5f40b1c673646c928aac0b']
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('scikit-learn', '1.3.1'),
+]
+
+download_dep_fail = True
+use_pip = True
+sanity_pip_check = True
+
+moduleclass = 'data'
diff --git a/easybuild/easyconfigs/h/HDF/HDF-4.2.11-intel-2016a.eb b/easybuild/easyconfigs/h/HDF/HDF-4.2.11-intel-2016a.eb
index e115932f8ee..3e25fa94133 100644
--- a/easybuild/easyconfigs/h/HDF/HDF-4.2.11-intel-2016a.eb
+++ b/easybuild/easyconfigs/h/HDF/HDF-4.2.11-intel-2016a.eb
@@ -3,15 +3,16 @@ easyblock = 'ConfigureMake'
name = 'HDF'
version = '4.2.11'
-homepage = 'http://www.hdfgroup.org/products/hdf4/'
+homepage = 'http://support.hdfgroup.org/products/hdf4/'
description = """HDF (also known as HDF4) is a library and multi-object file format for storing and managing data
between machines."""
toolchain = {'name': 'intel', 'version': '2016a'}
toolchainopts = {'pic': True}
+source_urls = ['http://support.hdfgroup.org/ftp/HDF/releases/HDF%(version)s/src/']
sources = [SOURCELOWER_TAR_GZ]
-source_urls = ['http://www.hdfgroup.org/ftp/HDF/releases/HDF%(version)s/src/']
+checksums = ['c3f7753b2fb9b27d09eced4d2164605f111f270c9a60b37a578f7de02de86d24']
builddependencies = [
('flex', '2.6.0'),
diff --git a/easybuild/easyconfigs/h/HDF/HDF-4.2.12-intel-2017a.eb b/easybuild/easyconfigs/h/HDF/HDF-4.2.12-intel-2017a.eb
index 36b03f18536..5fade2d2248 100644
--- a/easybuild/easyconfigs/h/HDF/HDF-4.2.12-intel-2017a.eb
+++ b/easybuild/easyconfigs/h/HDF/HDF-4.2.12-intel-2017a.eb
@@ -3,15 +3,16 @@ easyblock = 'ConfigureMake'
name = 'HDF'
version = '4.2.12'
-homepage = 'http://www.hdfgroup.org/products/hdf4/'
+homepage = 'http://support.hdfgroup.org/products/hdf4/'
description = """HDF (also known as HDF4) is a library and multi-object file format for storing and managing data
between machines."""
toolchain = {'name': 'intel', 'version': '2017a'}
toolchainopts = {'pic': True}
+source_urls = ['http://support.hdfgroup.org/ftp/HDF/releases/HDF%(version)s/src/']
sources = [SOURCELOWER_TAR_GZ]
-source_urls = ['http://www.hdfgroup.org/ftp/HDF/releases/HDF%(version)s/src/']
+checksums = ['dd419c55e85d1a0e13f3ea5ed35d00710033ccb16c85df088eb7925d486e040c']
builddependencies = [
('flex', '2.6.3'),
diff --git a/easybuild/easyconfigs/h/HDF/HDF-4.2.13-GCCcore-6.4.0.eb b/easybuild/easyconfigs/h/HDF/HDF-4.2.13-GCCcore-6.4.0.eb
index f1b4395af48..39dc5507935 100644
--- a/easybuild/easyconfigs/h/HDF/HDF-4.2.13-GCCcore-6.4.0.eb
+++ b/easybuild/easyconfigs/h/HDF/HDF-4.2.13-GCCcore-6.4.0.eb
@@ -3,7 +3,7 @@ easyblock = 'ConfigureMake'
name = 'HDF'
version = '4.2.13'
-homepage = 'http://www.hdfgroup.org/products/hdf4/'
+homepage = 'http://support.hdfgroup.org/products/hdf4/'
description = """
HDF (also known as HDF4) is a library and multi-object file format for
@@ -14,7 +14,7 @@ toolchain = {'name': 'GCCcore', 'version': '6.4.0'}
toolchainopts = {'pic': True}
sources = [SOURCELOWER_TAR_GZ]
-source_urls = ['http://www.hdfgroup.org/ftp/HDF/releases/HDF%(version)s/src/']
+source_urls = ['http://support.hdfgroup.org/ftp/HDF/releases/HDF%(version)s/src/']
checksums = ['be9813c1dc3712c2df977d4960e1f13f20f447dfa8c3ce53331d610c1f470483']
builddependencies = [
diff --git a/easybuild/easyconfigs/h/HDF/HDF-4.2.13-intel-2017a-no-netcdf.eb b/easybuild/easyconfigs/h/HDF/HDF-4.2.13-intel-2017a-no-netcdf.eb
index 84bff2749e9..74e44dbfc26 100644
--- a/easybuild/easyconfigs/h/HDF/HDF-4.2.13-intel-2017a-no-netcdf.eb
+++ b/easybuild/easyconfigs/h/HDF/HDF-4.2.13-intel-2017a-no-netcdf.eb
@@ -4,7 +4,7 @@ name = 'HDF'
version = '4.2.13'
versionsuffix = '-no-netcdf'
-homepage = 'http://www.hdfgroup.org/products/hdf4/'
+homepage = 'http://support.hdfgroup.org/products/hdf4/'
description = """HDF (also known as HDF4) is a library and multi-object file format for storing and managing data
between machines. This version suppresses the netcdf api, that gives issues with some applications"""
@@ -12,7 +12,7 @@ toolchain = {'name': 'intel', 'version': '2017a'}
toolchainopts = {'pic': True}
sources = [SOURCELOWER_TAR_GZ]
-source_urls = ['http://www.hdfgroup.org/ftp/HDF/releases/HDF%(version)s/src/']
+source_urls = ['http://support.hdfgroup.org/ftp/HDF/releases/HDF%(version)s/src/']
checksums = ['be9813c1dc3712c2df977d4960e1f13f20f447dfa8c3ce53331d610c1f470483']
builddependencies = [
diff --git a/easybuild/easyconfigs/h/HDF/HDF-4.2.14-GCCcore-6.4.0.eb b/easybuild/easyconfigs/h/HDF/HDF-4.2.14-GCCcore-6.4.0.eb
index 1f31e675f7a..56e705f36a2 100644
--- a/easybuild/easyconfigs/h/HDF/HDF-4.2.14-GCCcore-6.4.0.eb
+++ b/easybuild/easyconfigs/h/HDF/HDF-4.2.14-GCCcore-6.4.0.eb
@@ -3,7 +3,7 @@ easyblock = 'ConfigureMake'
name = 'HDF'
version = '4.2.14'
-homepage = 'http://www.hdfgroup.org/products/hdf4/'
+homepage = 'http://support.hdfgroup.org/products/hdf4/'
description = """
HDF (also known as HDF4) is a library and multi-object file format for
@@ -13,7 +13,7 @@ description = """
toolchain = {'name': 'GCCcore', 'version': '6.4.0'}
toolchainopts = {'pic': True}
-source_urls = ['http://www.hdfgroup.org/ftp/HDF/releases/HDF%(version)s/src/']
+source_urls = ['http://support.hdfgroup.org/ftp/HDF/releases/HDF%(version)s/src/']
sources = [SOURCELOWER_TAR_GZ]
checksums = ['2d383e87c8a0ca6a5352adbd1d5546e6cc43dc21ff7d90f93efa644d85c0b14a']
diff --git a/easybuild/easyconfigs/h/HDF/HDF-4.2.14-GCCcore-7.3.0.eb b/easybuild/easyconfigs/h/HDF/HDF-4.2.14-GCCcore-7.3.0.eb
index 204d917a179..51b65acec93 100644
--- a/easybuild/easyconfigs/h/HDF/HDF-4.2.14-GCCcore-7.3.0.eb
+++ b/easybuild/easyconfigs/h/HDF/HDF-4.2.14-GCCcore-7.3.0.eb
@@ -3,7 +3,7 @@ easyblock = 'ConfigureMake'
name = 'HDF'
version = '4.2.14'
-homepage = 'https://www.hdfgroup.org/products/hdf4/'
+homepage = 'https://support.hdfgroup.org/products/hdf4/'
description = """
HDF (also known as HDF4) is a library and multi-object file format for
@@ -13,7 +13,7 @@ description = """
toolchain = {'name': 'GCCcore', 'version': '7.3.0'}
toolchainopts = {'pic': True}
-source_urls = ['https://www.hdfgroup.org/ftp/HDF/releases/HDF%(version)s/src/']
+source_urls = ['https://support.hdfgroup.org/ftp/HDF/releases/HDF%(version)s/src/']
sources = [SOURCELOWER_TAR_GZ]
checksums = ['2d383e87c8a0ca6a5352adbd1d5546e6cc43dc21ff7d90f93efa644d85c0b14a']
diff --git a/easybuild/easyconfigs/h/HDF/HDF-4.2.14-GCCcore-8.2.0.eb b/easybuild/easyconfigs/h/HDF/HDF-4.2.14-GCCcore-8.2.0.eb
index bf3fff366f2..a78efd6cee2 100644
--- a/easybuild/easyconfigs/h/HDF/HDF-4.2.14-GCCcore-8.2.0.eb
+++ b/easybuild/easyconfigs/h/HDF/HDF-4.2.14-GCCcore-8.2.0.eb
@@ -3,7 +3,7 @@ easyblock = 'ConfigureMake'
name = 'HDF'
version = '4.2.14'
-homepage = 'https://www.hdfgroup.org/products/hdf4/'
+homepage = 'https://support.hdfgroup.org/products/hdf4/'
description = """
HDF (also known as HDF4) is a library and multi-object file format for
@@ -13,7 +13,7 @@ description = """
toolchain = {'name': 'GCCcore', 'version': '8.2.0'}
toolchainopts = {'pic': True}
-source_urls = ['http://www.hdfgroup.org/ftp/HDF/releases/HDF%(version)s/src/']
+source_urls = ['http://support.hdfgroup.org/ftp/HDF/releases/HDF%(version)s/src/']
sources = [SOURCELOWER_TAR_GZ]
checksums = ['2d383e87c8a0ca6a5352adbd1d5546e6cc43dc21ff7d90f93efa644d85c0b14a']
diff --git a/easybuild/easyconfigs/h/HDF/HDF-4.2.14-GCCcore-8.3.0.eb b/easybuild/easyconfigs/h/HDF/HDF-4.2.14-GCCcore-8.3.0.eb
index ff08dc71e80..fdee3ff0383 100644
--- a/easybuild/easyconfigs/h/HDF/HDF-4.2.14-GCCcore-8.3.0.eb
+++ b/easybuild/easyconfigs/h/HDF/HDF-4.2.14-GCCcore-8.3.0.eb
@@ -3,7 +3,7 @@ easyblock = 'ConfigureMake'
name = 'HDF'
version = '4.2.14'
-homepage = 'https://www.hdfgroup.org/products/hdf4/'
+homepage = 'https://support.hdfgroup.org/products/hdf4/'
description = """
HDF (also known as HDF4) is a library and multi-object file format for
@@ -13,7 +13,7 @@ description = """
toolchain = {'name': 'GCCcore', 'version': '8.3.0'}
toolchainopts = {'pic': True}
-source_urls = ['http://www.hdfgroup.org/ftp/HDF/releases/HDF%(version)s/src/']
+source_urls = ['http://support.hdfgroup.org/ftp/HDF/releases/HDF%(version)s/src/']
sources = [SOURCELOWER_TAR_GZ]
checksums = ['2d383e87c8a0ca6a5352adbd1d5546e6cc43dc21ff7d90f93efa644d85c0b14a']
diff --git a/easybuild/easyconfigs/h/HDF/HDF-4.2.15-GCCcore-10.2.0.eb b/easybuild/easyconfigs/h/HDF/HDF-4.2.15-GCCcore-10.2.0.eb
index bdb2cb878ee..91e084fc238 100644
--- a/easybuild/easyconfigs/h/HDF/HDF-4.2.15-GCCcore-10.2.0.eb
+++ b/easybuild/easyconfigs/h/HDF/HDF-4.2.15-GCCcore-10.2.0.eb
@@ -3,7 +3,7 @@ easyblock = 'ConfigureMake'
name = 'HDF'
version = '4.2.15'
-homepage = 'https://www.hdfgroup.org/products/hdf4/'
+homepage = 'https://support.hdfgroup.org/products/hdf4/'
description = """
HDF (also known as HDF4) is a library and multi-object file format for
@@ -13,7 +13,7 @@ description = """
toolchain = {'name': 'GCCcore', 'version': '10.2.0'}
toolchainopts = {'pic': True}
-source_urls = ['http://www.hdfgroup.org/ftp/HDF/releases/HDF%(version)s/src/']
+source_urls = ['http://support.hdfgroup.org/ftp/HDF/releases/HDF%(version)s/src/']
sources = [SOURCELOWER_TAR_GZ]
patches = ['HDF-4.2.15_fix-aarch64.patch']
checksums = [
diff --git a/easybuild/easyconfigs/h/HDF/HDF-4.2.15-GCCcore-10.3.0.eb b/easybuild/easyconfigs/h/HDF/HDF-4.2.15-GCCcore-10.3.0.eb
index 869a6a796a2..7fff3f348bb 100644
--- a/easybuild/easyconfigs/h/HDF/HDF-4.2.15-GCCcore-10.3.0.eb
+++ b/easybuild/easyconfigs/h/HDF/HDF-4.2.15-GCCcore-10.3.0.eb
@@ -3,7 +3,7 @@ easyblock = 'ConfigureMake'
name = 'HDF'
version = '4.2.15'
-homepage = 'https://www.hdfgroup.org/products/hdf4/'
+homepage = 'https://support.hdfgroup.org/products/hdf4/'
description = """
HDF (also known as HDF4) is a library and multi-object file format for
@@ -13,7 +13,7 @@ description = """
toolchain = {'name': 'GCCcore', 'version': '10.3.0'}
toolchainopts = {'pic': True}
-source_urls = ['http://www.hdfgroup.org/ftp/HDF/releases/HDF%(version)s/src/']
+source_urls = ['http://support.hdfgroup.org/ftp/HDF/releases/HDF%(version)s/src/']
sources = [SOURCELOWER_TAR_GZ]
patches = ['HDF-4.2.15_fix-aarch64.patch']
checksums = [
diff --git a/easybuild/easyconfigs/h/HDF/HDF-4.2.15-GCCcore-11.2.0.eb b/easybuild/easyconfigs/h/HDF/HDF-4.2.15-GCCcore-11.2.0.eb
index fc36bb04673..7acaaafc09d 100644
--- a/easybuild/easyconfigs/h/HDF/HDF-4.2.15-GCCcore-11.2.0.eb
+++ b/easybuild/easyconfigs/h/HDF/HDF-4.2.15-GCCcore-11.2.0.eb
@@ -3,7 +3,7 @@ easyblock = 'ConfigureMake'
name = 'HDF'
version = '4.2.15'
-homepage = 'https://www.hdfgroup.org/products/hdf4/'
+homepage = 'https://support.hdfgroup.org/products/hdf4/'
description = """
HDF (also known as HDF4) is a library and multi-object file format for
@@ -13,7 +13,7 @@ description = """
toolchain = {'name': 'GCCcore', 'version': '11.2.0'}
toolchainopts = {'pic': True}
-source_urls = ['http://www.hdfgroup.org/ftp/HDF/releases/HDF%(version)s/src/']
+source_urls = ['http://support.hdfgroup.org/ftp/HDF/releases/HDF%(version)s/src/']
sources = [SOURCELOWER_TAR_GZ]
patches = ['HDF-4.2.15_fix-aarch64.patch']
checksums = [
diff --git a/easybuild/easyconfigs/h/HDF/HDF-4.2.15-GCCcore-11.3.0.eb b/easybuild/easyconfigs/h/HDF/HDF-4.2.15-GCCcore-11.3.0.eb
index 682e5e20b6c..4af8d274164 100644
--- a/easybuild/easyconfigs/h/HDF/HDF-4.2.15-GCCcore-11.3.0.eb
+++ b/easybuild/easyconfigs/h/HDF/HDF-4.2.15-GCCcore-11.3.0.eb
@@ -3,7 +3,7 @@ easyblock = 'ConfigureMake'
name = 'HDF'
version = '4.2.15'
-homepage = 'https://www.hdfgroup.org/products/hdf4/'
+homepage = 'https://support.hdfgroup.org/products/hdf4/'
description = """
HDF (also known as HDF4) is a library and multi-object file format for
@@ -13,7 +13,7 @@ description = """
toolchain = {'name': 'GCCcore', 'version': '11.3.0'}
toolchainopts = {'pic': True}
-source_urls = ['http://www.hdfgroup.org/ftp/HDF/releases/HDF%(version)s/src/']
+source_urls = ['http://support.hdfgroup.org/ftp/HDF/releases/HDF%(version)s/src/']
sources = [SOURCELOWER_TAR_GZ]
patches = ['HDF-4.2.15_fix-aarch64.patch']
checksums = [
diff --git a/easybuild/easyconfigs/h/HDF/HDF-4.2.15-GCCcore-12.2.0.eb b/easybuild/easyconfigs/h/HDF/HDF-4.2.15-GCCcore-12.2.0.eb
index f0286cd30bd..abab2d962f5 100644
--- a/easybuild/easyconfigs/h/HDF/HDF-4.2.15-GCCcore-12.2.0.eb
+++ b/easybuild/easyconfigs/h/HDF/HDF-4.2.15-GCCcore-12.2.0.eb
@@ -3,7 +3,7 @@ easyblock = 'ConfigureMake'
name = 'HDF'
version = '4.2.15'
-homepage = 'https://www.hdfgroup.org/products/hdf4/'
+homepage = 'https://support.hdfgroup.org/products/hdf4/'
description = """
HDF (also known as HDF4) is a library and multi-object file format for
@@ -13,7 +13,7 @@ description = """
toolchain = {'name': 'GCCcore', 'version': '12.2.0'}
toolchainopts = {'pic': True}
-source_urls = ['http://www.hdfgroup.org/ftp/HDF/releases/HDF%(version)s/src/']
+source_urls = ['http://support.hdfgroup.org/ftp/HDF/releases/HDF%(version)s/src/']
sources = [SOURCELOWER_TAR_GZ]
patches = ['HDF-4.2.15_fix-aarch64.patch']
checksums = [
diff --git a/easybuild/easyconfigs/h/HDF/HDF-4.2.15-GCCcore-9.3.0.eb b/easybuild/easyconfigs/h/HDF/HDF-4.2.15-GCCcore-9.3.0.eb
index fd6e6693977..7e6b5eefbe8 100644
--- a/easybuild/easyconfigs/h/HDF/HDF-4.2.15-GCCcore-9.3.0.eb
+++ b/easybuild/easyconfigs/h/HDF/HDF-4.2.15-GCCcore-9.3.0.eb
@@ -3,7 +3,7 @@ easyblock = 'ConfigureMake'
name = 'HDF'
version = '4.2.15'
-homepage = 'https://www.hdfgroup.org/products/hdf4/'
+homepage = 'https://support.hdfgroup.org/products/hdf4/'
description = """
HDF (also known as HDF4) is a library and multi-object file format for
@@ -13,7 +13,7 @@ description = """
toolchain = {'name': 'GCCcore', 'version': '9.3.0'}
toolchainopts = {'pic': True}
-source_urls = ['http://www.hdfgroup.org/ftp/HDF/releases/HDF%(version)s/src/']
+source_urls = ['http://support.hdfgroup.org/ftp/HDF/releases/HDF%(version)s/src/']
sources = [SOURCELOWER_TAR_GZ]
patches = ['HDF-4.2.15_fix-aarch64.patch']
checksums = [
diff --git a/easybuild/easyconfigs/h/HDF/HDF-4.2.16-2-GCCcore-12.3.0.eb b/easybuild/easyconfigs/h/HDF/HDF-4.2.16-2-GCCcore-12.3.0.eb
index a6094f7f816..175aaba4731 100644
--- a/easybuild/easyconfigs/h/HDF/HDF-4.2.16-2-GCCcore-12.3.0.eb
+++ b/easybuild/easyconfigs/h/HDF/HDF-4.2.16-2-GCCcore-12.3.0.eb
@@ -3,7 +3,7 @@ easyblock = 'ConfigureMake'
name = 'HDF'
version = '4.2.16-2'
-homepage = 'https://www.hdfgroup.org/products/hdf4/'
+homepage = 'https://support.hdfgroup.org/products/hdf4/'
description = """
HDF (also known as HDF4) is a library and multi-object file format for
storing and managing data between machines.
diff --git a/easybuild/easyconfigs/h/HDF/HDF-4.2.16-2-GCCcore-13.2.0.eb b/easybuild/easyconfigs/h/HDF/HDF-4.2.16-2-GCCcore-13.2.0.eb
index 5b868a7fe58..f2c20e888b9 100644
--- a/easybuild/easyconfigs/h/HDF/HDF-4.2.16-2-GCCcore-13.2.0.eb
+++ b/easybuild/easyconfigs/h/HDF/HDF-4.2.16-2-GCCcore-13.2.0.eb
@@ -3,7 +3,7 @@ easyblock = 'ConfigureMake'
name = 'HDF'
version = '4.2.16-2'
-homepage = 'https://www.hdfgroup.org/products/hdf4/'
+homepage = 'https://support.hdfgroup.org/products/hdf4/'
description = """
HDF (also known as HDF4) is a library and multi-object file format for
storing and managing data between machines.
diff --git a/easybuild/easyconfigs/h/HDF/HDF-4.2.16-GCCcore-12.3.0.eb b/easybuild/easyconfigs/h/HDF/HDF-4.2.16-GCCcore-12.3.0.eb
index 630c4aa2dc2..fd9d8d3d4ea 100644
--- a/easybuild/easyconfigs/h/HDF/HDF-4.2.16-GCCcore-12.3.0.eb
+++ b/easybuild/easyconfigs/h/HDF/HDF-4.2.16-GCCcore-12.3.0.eb
@@ -3,7 +3,7 @@ easyblock = 'ConfigureMake'
name = 'HDF'
version = '4.2.16'
-homepage = 'https://www.hdfgroup.org/products/hdf4/'
+homepage = 'https://support.hdfgroup.org/products/hdf4/'
description = """
HDF (also known as HDF4) is a library and multi-object file format for
diff --git a/easybuild/easyconfigs/h/HDF/HDF-4.3.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/h/HDF/HDF-4.3.0-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..de3ac32380a
--- /dev/null
+++ b/easybuild/easyconfigs/h/HDF/HDF-4.3.0-GCCcore-13.3.0.eb
@@ -0,0 +1,58 @@
+easyblock = 'ConfigureMake'
+
+name = 'HDF'
+version = '4.3.0'
+
+homepage = 'https://support.hdfgroup.org/products/hdf4/'
+description = """
+ HDF (also known as HDF4) is a library and multi-object file format for
+ storing and managing data between machines.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/HDFGroup/hdf4/archive/refs/tags/']
+sources = ['%(namelower)s%(version)s.tar.gz']
+checksums = ['a6639a556650e6ea8632a17b8188a69de844bdff54ce121a1fd5b92c8dd06cb1']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('Bison', '3.8.2'),
+ ('flex', '2.6.4'),
+]
+
+dependencies = [
+ ('libjpeg-turbo', '3.0.1'),
+ ('Szip', '2.1.1'),
+ ('zlib', '1.3.1'),
+ ('libtirpc', '1.3.5'),
+]
+
+preconfigopts = "LIBS='-ltirpc' "
+
+local_common_configopts = '--with-szlib=$EBROOTSZIP CFLAGS="$CFLAGS -I$EBROOTLIBTIRPC/include/tirpc" '
+local_common_configopts += '--includedir=%(installdir)s/include/%(namelower)s '
+
+configopts = [
+ local_common_configopts,
+ # Cannot build shared libraries and Fortran...
+ # https://trac.osgeo.org/gdal/wiki/HDF#IncompatibilitywithNetCDFLibraries
+ # netcdf must be disabled to allow HDF to be used by GDAL
+ local_common_configopts + "--enable-shared --disable-fortran --disable-netcdf",
+]
+
+
+sanity_check_paths = {
+ 'files': ['bin/h4cc', 'bin/ncdump', 'lib/libdf.a', 'lib/libhdf4.settings', 'lib/libmfhdf.a', 'lib/libmfhdf.so'],
+ 'dirs': ['include/%(namelower)s'],
+}
+
+sanity_check_commands = [
+ "h4cc --help",
+ "ncdump -V",
+]
+
+modextrapaths = {'CPATH': 'include/%(namelower)s'}
+
+moduleclass = 'data'
diff --git a/easybuild/easyconfigs/h/HDF5/HDF5-1.14.3-gompi-2023b.eb b/easybuild/easyconfigs/h/HDF5/HDF5-1.14.3-gompi-2023b.eb
index f2aab3663a3..5cb05f4a4a1 100644
--- a/easybuild/easyconfigs/h/HDF5/HDF5-1.14.3-gompi-2023b.eb
+++ b/easybuild/easyconfigs/h/HDF5/HDF5-1.14.3-gompi-2023b.eb
@@ -12,7 +12,11 @@ toolchainopts = {'pic': True, 'usempi': True}
source_urls = ['https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-%(version_major_minor)s/hdf5-%(version)s/src']
sources = [SOURCELOWER_TAR_GZ]
-checksums = ['09cdb287aa7a89148c1638dd20891fdbae08102cf433ef128fd345338aa237c7']
+patches = ['HDF5-1.14.3_suppress_fp_exceptions.patch']
+checksums = [
+ {'hdf5-1.14.3.tar.gz': '09cdb287aa7a89148c1638dd20891fdbae08102cf433ef128fd345338aa237c7'},
+ {'HDF5-1.14.3_suppress_fp_exceptions.patch': 'bf33e579c93a16043c54b266321bbe95e4a8797f7fe6d096a13ce905ed2ffde7'},
+]
# replace src include path with installation dir for $H5BLD_CPPFLAGS
_regex = 's, -I[^[:space:]]+H5FDsubfiling , -I%(installdir)s/include ,g'
diff --git a/easybuild/easyconfigs/h/HDF5/HDF5-1.14.3-iimpi-2023b.eb b/easybuild/easyconfigs/h/HDF5/HDF5-1.14.3-iimpi-2023b.eb
index 77fa0c12ab9..e180d8619ee 100644
--- a/easybuild/easyconfigs/h/HDF5/HDF5-1.14.3-iimpi-2023b.eb
+++ b/easybuild/easyconfigs/h/HDF5/HDF5-1.14.3-iimpi-2023b.eb
@@ -12,7 +12,11 @@ toolchainopts = {'pic': True, 'usempi': True}
source_urls = ['https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-%(version_major_minor)s/hdf5-%(version)s/src']
sources = [SOURCELOWER_TAR_GZ]
-checksums = ['09cdb287aa7a89148c1638dd20891fdbae08102cf433ef128fd345338aa237c7']
+patches = ['HDF5-1.14.3_suppress_fp_exceptions.patch']
+checksums = [
+ {'hdf5-1.14.3.tar.gz': '09cdb287aa7a89148c1638dd20891fdbae08102cf433ef128fd345338aa237c7'},
+ {'HDF5-1.14.3_suppress_fp_exceptions.patch': 'bf33e579c93a16043c54b266321bbe95e4a8797f7fe6d096a13ce905ed2ffde7'},
+]
# replace src include path with installation dir for $H5BLD_CPPFLAGS
_regex = 's, -I[^[:space:]]+H5FDsubfiling , -I%(installdir)s/include ,g'
diff --git a/easybuild/easyconfigs/h/HDF5/HDF5-1.14.3_suppress_fp_exceptions.patch b/easybuild/easyconfigs/h/HDF5/HDF5-1.14.3_suppress_fp_exceptions.patch
new file mode 100644
index 00000000000..420125db46d
--- /dev/null
+++ b/easybuild/easyconfigs/h/HDF5/HDF5-1.14.3_suppress_fp_exceptions.patch
@@ -0,0 +1,223 @@
+See: https://github.com/HDFGroup/hdf5/commit/e0d095ebf020706ec7d7c82e6674b18f1a0a2d5b
+
+Created using
+git checkout hdf5-1_14_3
+git cherry-pick e0d095ebf020706ec7d7c82e6674b18f1a0a2d5b
+
+commit 7c58dd64db0a6c04dea46dee1c7effbe8103ae82
+Author: Dana Robinson <43805+derobins@users.noreply.github.com>
+Date: Tue Nov 7 08:13:30 2023 -0800
+
+ Disable FP exceptions in H5T init code (#3837)
+
+ The H5T floating-point datatype initialization code can raise exceptions when handling signaling NaNs. This change disables FE_INVALID exceptions during initialization.
+
+ Also removes the -ieee=full change for NAG Fortran as that shouldn't be necessary anymore.
+
+ Fixes #3831
+
+diff --git a/config/linux-gnulibc1 b/config/linux-gnulibc1
+index 328f8d3cec..079f08d96c 100644
+--- a/config/linux-gnulibc1
++++ b/config/linux-gnulibc1
+@@ -173,10 +173,7 @@ case $FC_BASENAME in
+ nagfor)
+
+ F9XSUFFIXFLAG=""
+- # NOTE: The default is -ieee=stop, which will cause problems
+- # when the H5T module performs floating-point type
+- # introspection
+- AM_FCFLAGS="$AM_FCFLAGS -ieee=full"
++ AM_FCFLAGS="$AM_FCFLAGS"
+ FSEARCH_DIRS=""
+
+ # Production
+diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt
+index 200576332b..7de2a56974 100644
+--- a/release_docs/RELEASE.txt
++++ b/release_docs/RELEASE.txt
+@@ -250,6 +250,29 @@ Bug Fixes since HDF5-1.14.2 release
+ ===================================
+ Library
+ -------
++ - Suppressed floating-point exceptions in H5T init code
++
++ The floating-point datatype initialization code in H5Tinit_float.c
++ could raise FE_INVALID exceptions while munging bits and performing
++ comparisons that might involve NaN. This was not a problem when the
++ initialization code was executed in H5detect at compile time (prior
++ to 1.14.3), but now that the code is executed at library startup
++ (1.14.3+), these exceptions can be caught by user code, as is the
++ default in the NAG Fortran compiler.
++
++ Starting in 1.14.4, we now suppress floating-point exceptions while
++ initializing the floating-point types and clear FE_INVALID before
++ restoring the original environment.
++
++ Fixes GitHub #3831
++
++ - Fixed a file handle leak in the core VFD
++
++ When opening a file with the core VFD and a file image, if the file
++ already exists, the file check would leak the POSIX file handle.
++
++ Fixes GitHub issue #635
++
+ - Fixed some issues with chunk index metadata not getting read
+ collectively when collective metadata reads are enabled
+
+@@ -619,12 +642,6 @@ Known Problems
+ this release with link errors. As a result, Windows binaries for this release
+ will not include Fortran. The problem will be addressed in HDF5 1.14.4.
+
+- IEEE standard arithmetic enables software to raise exceptions such as overflow,
+- division by zero, and other illegal operations without interrupting or halting
+- the program flow. The HDF5 C library intentionally performs these exceptions.
+- Therefore, the "-ieee=full" nagfor switch is necessary when compiling a program
+- to avoid stopping on an exception.
+-
+ CMake files do not behave correctly with paths containing spaces.
+ Do not use spaces in paths because the required escaping for handling spaces
+ results in very complex and fragile build files.
+diff --git a/src/H5Tinit_float.c b/src/H5Tinit_float.c
+index 3b9e127fe4..3213f00fec 100644
+--- a/src/H5Tinit_float.c
++++ b/src/H5Tinit_float.c
+@@ -51,19 +51,23 @@
+ * Function: DETECT_F
+ *
+ * Purpose: This macro takes a floating point type like `double' and
+- * a base name like `natd' and detects byte order, mantissa
+- * location, exponent location, sign bit location, presence or
+- * absence of implicit mantissa bit, and exponent bias and
+- * initializes a detected_t structure with those properties.
++ * and detects byte order, mantissa location, exponent location,
++ * sign bit location, presence or absence of implicit mantissa
++ * bit, and exponent bias and initializes a detected_t structure
++ * with those properties.
++ *
++ * Note that these operations can raise floating-point
++ * exceptions and building with some compiler options
++ * (especially Fortran) can cause problems.
+ *-------------------------------------------------------------------------
+ */
+-#define DETECT_F(TYPE, VAR, INFO) \
++#define DETECT_F(TYPE, INFO) \
+ do { \
+- TYPE _v1, _v2, _v3; \
+- unsigned char _buf1[sizeof(TYPE)], _buf3[sizeof(TYPE)]; \
+- unsigned char _pad_mask[sizeof(TYPE)]; \
+- unsigned char _byte_mask; \
+- int _i, _j, _last = (-1); \
++ TYPE _v1, _v2, _v3; \
++ uint8_t _buf1[sizeof(TYPE)], _buf3[sizeof(TYPE)]; \
++ uint8_t _pad_mask[sizeof(TYPE)]; \
++ uint8_t _byte_mask; \
++ int _i, _j, _last = -1; \
+ \
+ memset(&INFO, 0, sizeof(INFO)); \
+ INFO.size = sizeof(TYPE); \
+@@ -81,7 +85,7 @@
+ _v1 = (TYPE)4.0L; \
+ H5MM_memcpy(_buf1, (const void *)&_v1, sizeof(TYPE)); \
+ for (_i = 0; _i < (int)sizeof(TYPE); _i++) \
+- for (_byte_mask = (unsigned char)1; _byte_mask; _byte_mask = (unsigned char)(_byte_mask << 1)) { \
++ for (_byte_mask = (uint8_t)1; _byte_mask; _byte_mask = (uint8_t)(_byte_mask << 1)) { \
+ _buf1[_i] ^= _byte_mask; \
+ H5MM_memcpy((void *)&_v2, (const void *)_buf1, sizeof(TYPE)); \
+ H5_GCC_CLANG_DIAG_OFF("float-equal") \
+@@ -118,7 +122,7 @@
+ _v1 = (TYPE)1.0L; \
+ _v2 = (TYPE)-1.0L; \
+ if (H5T__bit_cmp(sizeof(TYPE), INFO.perm, &_v1, &_v2, _pad_mask, &(INFO.sign)) < 0) \
+- HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "failed to detect byte order"); \
++ HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "failed to determine sign bit"); \
+ \
+ /* Mantissa */ \
+ INFO.mpos = 0; \
+@@ -126,12 +130,11 @@
+ _v1 = (TYPE)1.0L; \
+ _v2 = (TYPE)1.5L; \
+ if (H5T__bit_cmp(sizeof(TYPE), INFO.perm, &_v1, &_v2, _pad_mask, &(INFO.msize)) < 0) \
+- HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "failed to detect byte order"); \
++ HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "failed to determine mantissa"); \
+ INFO.msize += 1 + (unsigned)(INFO.imp ? 0 : 1) - INFO.mpos; \
+ \
+ /* Exponent */ \
+- INFO.epos = INFO.mpos + INFO.msize; \
+- \
++ INFO.epos = INFO.mpos + INFO.msize; \
+ INFO.esize = INFO.sign - INFO.epos; \
+ \
+ _v1 = (TYPE)1.0L; \
+@@ -456,17 +459,24 @@ H5T__set_precision(H5T_fpoint_det_t *d)
+ herr_t H5_NO_UBSAN
+ H5T__init_native_float_types(void)
+ {
++ fenv_t saved_fenv;
+ H5T_fpoint_det_t det;
+ H5T_t *dt = NULL;
+ herr_t ret_value = SUCCEED;
+
+ FUNC_ENTER_PACKAGE
+
++ /* Turn off floating-point exceptions while initializing to avoid
++ * tripping over signaling NaNs while looking at "don't care" bits.
++ */
++ if (feholdexcept(&saved_fenv) != 0)
++ HSYS_GOTO_ERROR(H5E_DATATYPE, H5E_CANTSET, FAIL, "can't save floating-point environment");
++
+ /* H5T_NATIVE_FLOAT */
+
+ /* Get the type's characteristics */
+ memset(&det, 0, sizeof(H5T_fpoint_det_t));
+- DETECT_F(float, FLOAT, det);
++ DETECT_F(float, det);
+
+ /* Allocate and fill type structure */
+ if (NULL == (dt = H5T__alloc()))
+@@ -497,7 +507,7 @@ H5T__init_native_float_types(void)
+
+ /* Get the type's characteristics */
+ memset(&det, 0, sizeof(H5T_fpoint_det_t));
+- DETECT_F(double, DOUBLE, det);
++ DETECT_F(double, det);
+
+ /* Allocate and fill type structure */
+ if (NULL == (dt = H5T__alloc()))
+@@ -528,7 +538,7 @@ H5T__init_native_float_types(void)
+
+ /* Get the type's characteristics */
+ memset(&det, 0, sizeof(H5T_fpoint_det_t));
+- DETECT_F(long double, LDOUBLE, det);
++ DETECT_F(long double, det);
+
+ /* Allocate and fill type structure */
+ if (NULL == (dt = H5T__alloc()))
+@@ -561,6 +571,14 @@ H5T__init_native_float_types(void)
+ H5T_native_order_g = det.order;
+
+ done:
++ /* Clear any FE_INVALID exceptions from NaN handling */
++ if (feclearexcept(FE_INVALID) != 0)
++ HSYS_GOTO_ERROR(H5E_DATATYPE, H5E_CANTSET, FAIL, "can't clear floating-point exceptions");
++
++ /* Restore the original environment */
++ if (feupdateenv(&saved_fenv) != 0)
++ HSYS_GOTO_ERROR(H5E_DATATYPE, H5E_CANTSET, FAIL, "can't restore floating-point environment");
++
+ if (ret_value < 0) {
+ if (dt != NULL) {
+ dt->shared = H5FL_FREE(H5T_shared_t, dt->shared);
+diff --git a/src/H5private.h b/src/H5private.h
+index 14a0ac3225..3aaa0d5245 100644
+--- a/src/H5private.h
++++ b/src/H5private.h
+@@ -26,6 +26,7 @@
+ #include
+ #include
+ #include
++#include
+ #include
+ #include
+ #include
diff --git a/easybuild/easyconfigs/h/HDF5/HDF5-1.14.5-gompi-2024a.eb b/easybuild/easyconfigs/h/HDF5/HDF5-1.14.5-gompi-2024a.eb
new file mode 100644
index 00000000000..59171962924
--- /dev/null
+++ b/easybuild/easyconfigs/h/HDF5/HDF5-1.14.5-gompi-2024a.eb
@@ -0,0 +1,27 @@
+name = 'HDF5'
+# Note: Odd minor releases are only RCs and should not be used.
+version = '1.14.5'
+
+homepage = 'https://portal.hdfgroup.org/display/support'
+description = """HDF5 is a data model, library, and file format for storing and managing data.
+ It supports an unlimited variety of datatypes, and is designed for flexible
+ and efficient I/O and for high volume and complex data."""
+
+toolchain = {'name': 'gompi', 'version': '2024a'}
+toolchainopts = {'pic': True, 'usempi': True}
+
+source_urls = ['https://github.com/HDFGroup/hdf5/archive']
+sources = ['hdf5_%(version)s.tar.gz']
+checksums = ['c83996dc79080a34e7b5244a1d5ea076abfd642ec12d7c25388e2fdd81d26350']
+
+dependencies = [
+ ('zlib', '1.3.1'),
+ ('Szip', '2.1.1'),
+]
+
+postinstallcmds = [
+ 'sed -i -r "s, -I[^[:space:]]+H5FDsubfiling , -I%(installdir)s/include ,g" %(installdir)s/bin/h5c++',
+ 'sed -i -r "s, -I[^[:space:]]+H5FDsubfiling , -I%(installdir)s/include ,g" %(installdir)s/bin/h5pcc',
+]
+
+moduleclass = 'data'
diff --git a/easybuild/easyconfigs/h/HDF5/HDF5-1.14.5-iimpi-2024a.eb b/easybuild/easyconfigs/h/HDF5/HDF5-1.14.5-iimpi-2024a.eb
new file mode 100644
index 00000000000..153463a2234
--- /dev/null
+++ b/easybuild/easyconfigs/h/HDF5/HDF5-1.14.5-iimpi-2024a.eb
@@ -0,0 +1,26 @@
+name = 'HDF5'
+# Note: Odd minor releases are only RCs and should not be used.
+version = '1.14.5'
+
+homepage = 'https://portal.hdfgroup.org/display/support'
+description = """HDF5 is a data model, library, and file format for storing and managing data.
+ It supports an unlimited variety of datatypes, and is designed for flexible
+ and efficient I/O and for high volume and complex data."""
+
+toolchain = {'name': 'iimpi', 'version': '2024a'}
+toolchainopts = {'pic': True, 'usempi': True}
+
+source_urls = ['https://github.com/HDFGroup/hdf5/archive']
+sources = ['hdf5_%(version)s.tar.gz']
+checksums = ['c83996dc79080a34e7b5244a1d5ea076abfd642ec12d7c25388e2fdd81d26350']
+
+# replace src include path with installation dir for $H5BLD_CPPFLAGS
+_regex = 's, -I[^[:space:]]+H5FDsubfiling , -I%(installdir)s/include ,g'
+postinstallcmds = ['sed -i -r "%s" %%(installdir)s/bin/%s' % (_regex, x) for x in ['h5c++', 'h5pcc']]
+
+dependencies = [
+ ('zlib', '1.3.1'),
+ ('Szip', '2.1.1'),
+]
+
+moduleclass = 'data'
diff --git a/easybuild/easyconfigs/h/HERRO/HERRO-0.1.0_20240808-foss-2023a.eb b/easybuild/easyconfigs/h/HERRO/HERRO-0.1.0_20240808-foss-2023a.eb
new file mode 100644
index 00000000000..a4057965c49
--- /dev/null
+++ b/easybuild/easyconfigs/h/HERRO/HERRO-0.1.0_20240808-foss-2023a.eb
@@ -0,0 +1,382 @@
+easyblock = 'Cargo'
+
+name = 'HERRO'
+version = '0.1.0_20240808'
+local_commit = 'deccc46'
+
+homepage = 'https://github.com/lbcb-sci/herro'
+description = """
+HERRO is a highly-accurate, haplotype-aware, deep-learning tool for error correction of Nanopore R10.4.1 or
+R9.4.1 reads (read length of >= 10 kbps is recommended).
+"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+source_urls = ['https://github.com/lbcb-sci/herro/archive/']
+sources = [{'download_filename': '%s.tar.gz' % local_commit, 'filename': SOURCE_TAR_GZ}]
+
+builddependencies = [
+ ('Rust', '1.75.0'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('bzip2', '1.0.8'),
+ ('libffi', '3.4.4'),
+ ('libnsl', '2.0.1'),
+ ('SQLite', '3.42.0'),
+ ('util-linux', '2.39'),
+ ('zlib', '1.2.13'),
+ ('ncurses', '6.4'),
+ ('libreadline', '8.2'),
+ ('SeqKit', '2.3.1', '', SYSTEM),
+ ('Tk', '8.6.13'),
+ ('XZ', '5.4.2'),
+ ('matplotlib', '3.7.2'),
+ ('edlib', '1.3.9'),
+ ('h5py', '3.9.0'),
+ ('duplex-tools', '0.3.3'),
+ ('PyTorch', '2.1.2'),
+ ('Pillow', '10.0.0'),
+ ('zstd', '1.5.5'),
+ ('parasail', '2.6.2'),
+]
+
+exts_defaultclass = 'PythonPackage'
+exts_default_options = {
+ 'source_urls': [PYPI_SOURCE],
+ 'download_dep_fail': True,
+ 'use_pip': True,
+ 'sanity_pip_check': True,
+ 'preinstallopts': '',
+ 'installopts': '',
+}
+
+exts_list = [
+ ('zstandard', '0.22.0', {
+ 'checksums': ['8226a33c542bcb54cd6bd0a366067b610b41713b64c9abec1bc4533d69f51e70'],
+ }),
+ ('Porechop', '20240119', {
+ 'modulename': 'porechop',
+ 'source_urls': ['https://github.com/dehui333/Porechop/archive/'],
+ 'sources': [{'download_filename': 'd2e77c6.tar.gz', 'filename': SOURCE_TAR_GZ}],
+ 'checksums': ['6e5ff3a780fc2855b0101b4a6102437d9a0fc201e40ffabc44c0c67d7c9ad621'],
+ }),
+]
+
+# use tch version 0.14.0 - compatible with PyTorch 2.1
+local_torch_opts = "sed -i 's/tch = \"0.13.0\"/tch = \"0.14.0\"/' Cargo.toml && "
+local_torch_opts += 'export LIBTORCH_BYPASS_VERSION_CHECK=1 && export LIBTORCH_USE_PYTORCH=1 && '
+local_torch_opts += 'export LIBTORCH=$EBROOTPYTORCH/lib && RUSTFLAGS="-Ctarget-cpu=native"'
+prebuildopts = pretestopts = preinstallopts = local_torch_opts
+
+# copy scripts to /bin to be easier to run scripts for users
+postinstallcmds = [
+ 'cp -a %(start_dir)s/scripts/* %(installdir)s/bin',
+ 'rm %(installdir)s/bin/herro-env.yml',
+ "chmod a+rx %(installdir)s/bin/*.sh",
+ "chmod a-x %(installdir)s/bin/*.py",
+]
+
+_bins = [
+ 'herro',
+ 'porechop',
+ 'no_split.sh',
+ 'postprocess_corrected.sh',
+ 'create_batched_alignments.sh',
+ 'porechop_with_split.sh',
+ 'preprocess.sh',
+ 'batch.py',
+ 'create_clusters.py',
+]
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in _bins],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = ["herro --help"]
+
+modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'}
+
+modloadmsg = """
+To run scripts from /scripts directory just run .sh
+Do not run it as scripts/.sh
+For example - run preprocess.sh as:
+ $ preprocess.sh
+"""
+
+crates = [
+ ('adler2', '2.0.0'),
+ ('aes', '0.8.4'),
+ ('anstream', '0.6.15'),
+ ('anstyle', '1.0.8'),
+ ('anstyle-parse', '0.2.5'),
+ ('anstyle-query', '1.1.1'),
+ ('anstyle-wincon', '3.0.4'),
+ ('anyhow', '1.0.86'),
+ ('approx', '0.5.1'),
+ ('autocfg', '1.3.0'),
+ ('base64ct', '1.6.0'),
+ ('block-buffer', '0.10.4'),
+ ('buffer-redux', '1.0.2'),
+ ('bytecount', '0.6.8'),
+ ('byteorder', '1.5.0'),
+ ('bzip2', '0.4.4'),
+ ('bzip2-sys', '0.1.11+1.0.8'),
+ ('cc', '1.1.13'),
+ ('cfg-if', '1.0.0'),
+ ('cipher', '0.4.4'),
+ ('clap', '4.4.18'),
+ ('clap_builder', '4.4.18'),
+ ('clap_derive', '4.4.7'),
+ ('clap_lex', '0.6.0'),
+ ('colorchoice', '1.0.2'),
+ ('console', '0.15.8'),
+ ('constant_time_eq', '0.1.5'),
+ ('cpufeatures', '0.2.13'),
+ ('crc32fast', '1.4.2'),
+ ('crossbeam-channel', '0.5.13'),
+ ('crossbeam-utils', '0.8.20'),
+ ('crunchy', '0.2.2'),
+ ('crypto-common', '0.1.6'),
+ ('deranged', '0.3.11'),
+ ('digest', '0.10.7'),
+ ('either', '1.13.0'),
+ ('encode_unicode', '0.3.6'),
+ ('flate2', '1.0.32'),
+ ('generic-array', '0.14.7'),
+ ('getrandom', '0.2.15'),
+ ('glob', '0.3.1'),
+ ('half', '2.4.1'),
+ ('heck', '0.4.1'),
+ ('hmac', '0.12.1'),
+ ('indicatif', '0.17.8'),
+ ('inout', '0.1.3'),
+ ('instant', '0.1.13'),
+ ('is_terminal_polyfill', '1.70.1'),
+ ('itertools', '0.12.1'),
+ ('itoa', '1.0.11'),
+ ('jemalloc-sys', '0.5.4+5.3.0-patched'),
+ ('jemallocator', '0.5.4'),
+ ('jobserver', '0.1.32'),
+ ('lazy_static', '1.5.0'),
+ ('libc', '0.2.158'),
+ ('lzma-sys', '0.1.20'),
+ ('matrixmultiply', '0.3.9'),
+ ('memchr', '2.7.4'),
+ ('miniz_oxide', '0.8.0'),
+ ('ndarray', '0.15.6'),
+ ('needletail', '0.5.1'),
+ ('npyz', '0.8.3'),
+ ('npyz-derive', '0.7.0'),
+ ('num-bigint', '0.4.6'),
+ ('num-complex', '0.4.6'),
+ ('num-conv', '0.1.0'),
+ ('num-integer', '0.1.46'),
+ ('num-traits', '0.2.19'),
+ ('number_prefix', '0.4.0'),
+ ('once_cell', '1.19.0'),
+ ('ordered-float', '4.2.2'),
+ ('password-hash', '0.4.2'),
+ ('pbkdf2', '0.11.0'),
+ ('pest', '2.7.11'),
+ ('pest_derive', '2.7.11'),
+ ('pest_generator', '2.7.11'),
+ ('pest_meta', '2.7.11'),
+ ('pkg-config', '0.3.30'),
+ ('portable-atomic', '1.7.0'),
+ ('powerfmt', '0.2.0'),
+ ('ppv-lite86', '0.2.20'),
+ ('proc-macro2', '1.0.86'),
+ ('py_literal', '0.4.0'),
+ ('quote', '1.0.36'),
+ ('rand', '0.8.5'),
+ ('rand_chacha', '0.3.1'),
+ ('rand_core', '0.6.4'),
+ ('rawpointer', '0.2.1'),
+ ('rustc-hash', '1.1.0'),
+ ('ryu', '1.0.18'),
+ ('safetensors', '0.3.3'),
+ ('serde', '1.0.208'),
+ ('serde_derive', '1.0.208'),
+ ('serde_json', '1.0.125'),
+ ('sha1', '0.10.6'),
+ ('sha2', '0.10.8'),
+ ('shlex', '1.3.0'),
+ ('strsim', '0.10.0'),
+ ('subtle', '2.6.1'),
+ ('syn', '1.0.109'),
+ ('syn', '2.0.75'),
+ ('tch', '0.14.0'),
+ ('thiserror', '1.0.63'),
+ ('thiserror-impl', '1.0.63'),
+ ('time', '0.3.36'),
+ ('time-core', '0.1.2'),
+ ('torch-sys', '0.14.0'),
+ ('typenum', '1.17.0'),
+ ('ucd-trie', '0.1.6'),
+ ('unicode-ident', '1.0.12'),
+ ('unicode-width', '0.1.13'),
+ ('utf8parse', '0.2.2'),
+ ('version_check', '0.9.5'),
+ ('wasi', '0.11.0+wasi-snapshot-preview1'),
+ ('windows-sys', '0.52.0'),
+ ('windows-targets', '0.52.6'),
+ ('windows_aarch64_gnullvm', '0.52.6'),
+ ('windows_aarch64_msvc', '0.52.6'),
+ ('windows_i686_gnu', '0.52.6'),
+ ('windows_i686_gnullvm', '0.52.6'),
+ ('windows_i686_msvc', '0.52.6'),
+ ('windows_x86_64_gnu', '0.52.6'),
+ ('windows_x86_64_gnullvm', '0.52.6'),
+ ('windows_x86_64_msvc', '0.52.6'),
+ ('xz2', '0.1.7'),
+ ('zerocopy', '0.7.35'),
+ ('zerocopy-derive', '0.7.35'),
+ ('zip', '0.6.6'),
+ ('zstd', '0.11.2+zstd.1.5.2'),
+ ('zstd', '0.13.2'),
+ ('zstd-safe', '5.0.2+zstd.1.5.2'),
+ ('zstd-safe', '7.2.1'),
+ ('zstd-sys', '2.0.13+zstd.1.5.6'),
+]
+
+checksums = [
+ {'HERRO-0.1.0_20240808.tar.gz': '885f64ab097c89cf8ec8ec38625c6325271997e89636de756aa12fb68aab7598'},
+ {'adler2-2.0.0.tar.gz': '512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627'},
+ {'aes-0.8.4.tar.gz': 'b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0'},
+ {'anstream-0.6.15.tar.gz': '64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526'},
+ {'anstyle-1.0.8.tar.gz': '1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1'},
+ {'anstyle-parse-0.2.5.tar.gz': 'eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb'},
+ {'anstyle-query-1.1.1.tar.gz': '6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a'},
+ {'anstyle-wincon-3.0.4.tar.gz': '5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8'},
+ {'anyhow-1.0.86.tar.gz': 'b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da'},
+ {'approx-0.5.1.tar.gz': 'cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6'},
+ {'autocfg-1.3.0.tar.gz': '0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0'},
+ {'base64ct-1.6.0.tar.gz': '8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b'},
+ {'block-buffer-0.10.4.tar.gz': '3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71'},
+ {'buffer-redux-1.0.2.tar.gz': '4e8acf87c5b9f5897cd3ebb9a327f420e0cae9dd4e5c1d2e36f2c84c571a58f1'},
+ {'bytecount-0.6.8.tar.gz': '5ce89b21cab1437276d2650d57e971f9d548a2d9037cc231abdc0562b97498ce'},
+ {'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.1.13.tar.gz': '72db2f7947ecee9b03b510377e8bb9077afa27176fdbff55c51027e976fdcc48'},
+ {'cfg-if-1.0.0.tar.gz': 'baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd'},
+ {'cipher-0.4.4.tar.gz': '773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad'},
+ {'clap-4.4.18.tar.gz': '1e578d6ec4194633722ccf9544794b71b1385c3c027efe0c55db226fc880865c'},
+ {'clap_builder-4.4.18.tar.gz': '4df4df40ec50c46000231c914968278b1eb05098cf8f1b3a518a95030e71d1c7'},
+ {'clap_derive-4.4.7.tar.gz': 'cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442'},
+ {'clap_lex-0.6.0.tar.gz': '702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1'},
+ {'colorchoice-1.0.2.tar.gz': 'd3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0'},
+ {'console-0.15.8.tar.gz': '0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb'},
+ {'constant_time_eq-0.1.5.tar.gz': '245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc'},
+ {'cpufeatures-0.2.13.tar.gz': '51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad'},
+ {'crc32fast-1.4.2.tar.gz': 'a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3'},
+ {'crossbeam-channel-0.5.13.tar.gz': '33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2'},
+ {'crossbeam-utils-0.8.20.tar.gz': '22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80'},
+ {'crunchy-0.2.2.tar.gz': '7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7'},
+ {'crypto-common-0.1.6.tar.gz': '1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3'},
+ {'deranged-0.3.11.tar.gz': 'b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4'},
+ {'digest-0.10.7.tar.gz': '9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292'},
+ {'either-1.13.0.tar.gz': '60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0'},
+ {'encode_unicode-0.3.6.tar.gz': 'a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f'},
+ {'flate2-1.0.32.tar.gz': '9c0596c1eac1f9e04ed902702e9878208b336edc9d6fddc8a48387349bab3666'},
+ {'generic-array-0.14.7.tar.gz': '85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a'},
+ {'getrandom-0.2.15.tar.gz': 'c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7'},
+ {'glob-0.3.1.tar.gz': 'd2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b'},
+ {'half-2.4.1.tar.gz': '6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888'},
+ {'heck-0.4.1.tar.gz': '95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8'},
+ {'hmac-0.12.1.tar.gz': '6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e'},
+ {'indicatif-0.17.8.tar.gz': '763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3'},
+ {'inout-0.1.3.tar.gz': 'a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5'},
+ {'instant-0.1.13.tar.gz': 'e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222'},
+ {'is_terminal_polyfill-1.70.1.tar.gz': '7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf'},
+ {'itertools-0.12.1.tar.gz': 'ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569'},
+ {'itoa-1.0.11.tar.gz': '49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b'},
+ {'jemalloc-sys-0.5.4+5.3.0-patched.tar.gz': 'ac6c1946e1cea1788cbfde01c993b52a10e2da07f4bac608228d1bed20bfebf2'},
+ {'jemallocator-0.5.4.tar.gz': 'a0de374a9f8e63150e6f5e8a60cc14c668226d7a347d8aee1a45766e3c4dd3bc'},
+ {'jobserver-0.1.32.tar.gz': '48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0'},
+ {'lazy_static-1.5.0.tar.gz': 'bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe'},
+ {'libc-0.2.158.tar.gz': 'd8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439'},
+ {'lzma-sys-0.1.20.tar.gz': '5fda04ab3764e6cde78b9974eec4f779acaba7c4e84b36eca3cf77c581b85d27'},
+ {'matrixmultiply-0.3.9.tar.gz': '9380b911e3e96d10c1f415da0876389aaf1b56759054eeb0de7df940c456ba1a'},
+ {'memchr-2.7.4.tar.gz': '78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3'},
+ {'miniz_oxide-0.8.0.tar.gz': 'e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1'},
+ {'ndarray-0.15.6.tar.gz': 'adb12d4e967ec485a5f71c6311fe28158e9d6f4bc4a447b474184d0f91a8fa32'},
+ {'needletail-0.5.1.tar.gz': 'db05a5ab397f64070d8c998fa0fbb84e484b81f95752af317dac183a82d9295d'},
+ {'npyz-0.8.3.tar.gz': '13f27ea175875c472b3df61ece89a6d6ef4e0627f43704e400c782f174681ebd'},
+ {'npyz-derive-0.7.0.tar.gz': 'a285bd6c2f2a9a4b12b0f3813ad3e01a37e02d3de508c6d80a009f5e1af69aed'},
+ {'num-bigint-0.4.6.tar.gz': 'a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9'},
+ {'num-complex-0.4.6.tar.gz': '73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495'},
+ {'num-conv-0.1.0.tar.gz': '51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9'},
+ {'num-integer-0.1.46.tar.gz': '7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f'},
+ {'num-traits-0.2.19.tar.gz': '071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841'},
+ {'number_prefix-0.4.0.tar.gz': '830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3'},
+ {'once_cell-1.19.0.tar.gz': '3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92'},
+ {'ordered-float-4.2.2.tar.gz': '4a91171844676f8c7990ce64959210cd2eaef32c2612c50f9fae9f8aaa6065a6'},
+ {'password-hash-0.4.2.tar.gz': '7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700'},
+ {'pbkdf2-0.11.0.tar.gz': '83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917'},
+ {'pest-2.7.11.tar.gz': 'cd53dff83f26735fdc1ca837098ccf133605d794cdae66acfc2bfac3ec809d95'},
+ {'pest_derive-2.7.11.tar.gz': '2a548d2beca6773b1c244554d36fcf8548a8a58e74156968211567250e48e49a'},
+ {'pest_generator-2.7.11.tar.gz': '3c93a82e8d145725dcbaf44e5ea887c8a869efdcc28706df2d08c69e17077183'},
+ {'pest_meta-2.7.11.tar.gz': 'a941429fea7e08bedec25e4f6785b6ffaacc6b755da98df5ef3e7dcf4a124c4f'},
+ {'pkg-config-0.3.30.tar.gz': 'd231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec'},
+ {'portable-atomic-1.7.0.tar.gz': 'da544ee218f0d287a911e9c99a39a8c9bc8fcad3cb8db5959940044ecfc67265'},
+ {'powerfmt-0.2.0.tar.gz': '439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391'},
+ {'ppv-lite86-0.2.20.tar.gz': '77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04'},
+ {'proc-macro2-1.0.86.tar.gz': '5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77'},
+ {'py_literal-0.4.0.tar.gz': '102df7a3d46db9d3891f178dcc826dc270a6746277a9ae6436f8d29fd490a8e1'},
+ {'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'},
+ {'rawpointer-0.2.1.tar.gz': '60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3'},
+ {'rustc-hash-1.1.0.tar.gz': '08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2'},
+ {'ryu-1.0.18.tar.gz': 'f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f'},
+ {'safetensors-0.3.3.tar.gz': 'd93279b86b3de76f820a8854dd06cbc33cfa57a417b19c47f6a25280112fb1df'},
+ {'serde-1.0.208.tar.gz': 'cff085d2cb684faa248efb494c39b68e522822ac0de72ccf08109abde717cfb2'},
+ {'serde_derive-1.0.208.tar.gz': '24008e81ff7613ed8e5ba0cfaf24e2c2f1e5b8a0495711e44fcd4882fca62bcf'},
+ {'serde_json-1.0.125.tar.gz': '83c8e735a073ccf5be70aa8066aa984eaf2fa000db6c8d0100ae605b366d31ed'},
+ {'sha1-0.10.6.tar.gz': 'e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba'},
+ {'sha2-0.10.8.tar.gz': '793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8'},
+ {'shlex-1.3.0.tar.gz': '0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64'},
+ {'strsim-0.10.0.tar.gz': '73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623'},
+ {'subtle-2.6.1.tar.gz': '13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292'},
+ {'syn-1.0.109.tar.gz': '72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237'},
+ {'syn-2.0.75.tar.gz': 'f6af063034fc1935ede7be0122941bafa9bacb949334d090b77ca98b5817c7d9'},
+ {'tch-0.14.0.tar.gz': '0ed5dddab3812892bf5fb567136e372ea49f31672931e21cec967ca68aec03da'},
+ {'thiserror-1.0.63.tar.gz': 'c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724'},
+ {'thiserror-impl-1.0.63.tar.gz': 'a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261'},
+ {'time-0.3.36.tar.gz': '5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885'},
+ {'time-core-0.1.2.tar.gz': 'ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3'},
+ {'torch-sys-0.14.0.tar.gz': '803446f89fb877a117503dbfb8375b6a29fa8b0e0f44810fac3863c798ecef22'},
+ {'typenum-1.17.0.tar.gz': '42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825'},
+ {'ucd-trie-0.1.6.tar.gz': 'ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9'},
+ {'unicode-ident-1.0.12.tar.gz': '3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b'},
+ {'unicode-width-0.1.13.tar.gz': '0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d'},
+ {'utf8parse-0.2.2.tar.gz': '06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821'},
+ {'version_check-0.9.5.tar.gz': '0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a'},
+ {'wasi-0.11.0+wasi-snapshot-preview1.tar.gz': '9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423'},
+ {'windows-sys-0.52.0.tar.gz': '282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d'},
+ {'windows-targets-0.52.6.tar.gz': '9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973'},
+ {'windows_aarch64_gnullvm-0.52.6.tar.gz': '32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3'},
+ {'windows_aarch64_msvc-0.52.6.tar.gz': '09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469'},
+ {'windows_i686_gnu-0.52.6.tar.gz': '8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b'},
+ {'windows_i686_gnullvm-0.52.6.tar.gz': '0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66'},
+ {'windows_i686_msvc-0.52.6.tar.gz': '240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66'},
+ {'windows_x86_64_gnu-0.52.6.tar.gz': '147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78'},
+ {'windows_x86_64_gnullvm-0.52.6.tar.gz': '24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d'},
+ {'windows_x86_64_msvc-0.52.6.tar.gz': '589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec'},
+ {'xz2-0.1.7.tar.gz': '388c44dc09d76f1536602ead6d325eb532f5c122f17782bd57fb47baeeb767e2'},
+ {'zerocopy-0.7.35.tar.gz': '1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0'},
+ {'zerocopy-derive-0.7.35.tar.gz': 'fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e'},
+ {'zip-0.6.6.tar.gz': '760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261'},
+ {'zstd-0.11.2+zstd.1.5.2.tar.gz': '20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4'},
+ {'zstd-0.13.2.tar.gz': 'fcf2b778a664581e31e389454a7072dab1647606d44f7feea22cd5abb9c9f3f9'},
+ {'zstd-safe-5.0.2+zstd.1.5.2.tar.gz': '1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db'},
+ {'zstd-safe-7.2.1.tar.gz': '54a3ab4db68cea366acc5c897c7b4d4d1b8994a9cd6e6f841f8964566a419059'},
+ {'zstd-sys-2.0.13+zstd.1.5.6.tar.gz': '38ff0f21cfee8f97d94cef41359e0c89aa6113028ab0291aa8ca0038995a95aa'},
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/h/HISAT2/HISAT2-2.2.1-gompi-2023a.eb b/easybuild/easyconfigs/h/HISAT2/HISAT2-2.2.1-gompi-2023a.eb
new file mode 100644
index 00000000000..89974da79ff
--- /dev/null
+++ b/easybuild/easyconfigs/h/HISAT2/HISAT2-2.2.1-gompi-2023a.eb
@@ -0,0 +1,61 @@
+##
+# This is a contribution from DeepThought HPC Service, Flinders University, Adelaide, Australia
+# Homepage: https://staff.flinders.edu.au/research/deep-thought
+#
+# Authors:: Robert Qiao
+# License:: GPLv3.0
+#
+# Notes::
+# 2.2.1 - changes from Adam Huffman
+# Bumped to foss-2021b
+# J. Sassmannshausen
+
+easyblock = 'MakeCp'
+
+name = 'HISAT2'
+version = '2.2.1'
+
+homepage = 'https://daehwankimlab.github.io/hisat2'
+description = """HISAT2 is a fast and sensitive alignment program for mapping next-generation sequencing reads
+ (both DNA and RNA) against the general human population (as well as against a single reference genome)."""
+
+toolchain = {'name': 'gompi', 'version': '2023a'}
+
+sources = [{
+ 'source_urls': ['https://cloud.biohpc.swmed.edu/index.php/s/fE9QCsX3NH4QwBi'],
+ 'download_filename': 'download',
+ 'filename': '%(namelower)s-%(version)s-source.zip',
+}]
+patches = [
+ 'hisat2-libname-fix.patch',
+]
+checksums = [
+ {'hisat2-2.2.1-source.zip': '48e933330d4d8470d2b3dfe7ec3918f2e98a75f7381891e23b7df1fb4f135eb1'},
+ {'hisat2-libname-fix.patch': '8aa91d1dd6455b96c10ce48827f8313b006241d815fbe6382422dbae3b610726'},
+]
+
+dependencies = [
+ ('ncbi-vdb', '3.0.10'),
+ ('SRA-Toolkit', '3.0.10'), # provides NGS
+]
+
+buildopts = 'CC="$CC" CPP="$CXX" RELEASE_FLAGS="$CFLAGS" '
+buildopts += 'USE_SRA=1 NCBI_NGS_DIR="$EBROOTSRAMINTOOLKIT" NCBI_VDB_DIR="$EBROOTNCBIMINVDB" '
+# add new libncbi-ngs from the NGS merge into SRA-Toolkit v3
+buildopts += 'SRA_LIB="-lncbi-ngs-c++ -lngs-c++ -lncbi-ngs -lncbi-vdb -ldl"'
+
+local_executables = ['hisat2', 'hisat2-align-l', 'hisat2-align-s', 'hisat2-build', 'hisat2-build-l', 'hisat2-build-s',
+ 'hisat2-inspect', 'hisat2-inspect-s', 'hisat2-inspect-l', 'hisat2-repeat', 'extract_exons.py',
+ 'extract_splice_sites.py', 'hisat2_extract_exons.py', 'hisat2_extract_snps_haplotypes_UCSC.py',
+ 'hisat2_extract_snps_haplotypes_VCF.py', 'hisat2_extract_splice_sites.py',
+ 'hisat2_read_statistics.py', 'hisat2_simulate_reads.py']
+files_to_copy = [(local_executables, 'bin'), 'scripts', 'example']
+
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in local_executables],
+ 'dirs': ['scripts', 'example'],
+}
+
+sanity_check_commands = ["hisat2 --help"]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/h/HMMER/HMMER-3.4-gompi-2023b.eb b/easybuild/easyconfigs/h/HMMER/HMMER-3.4-gompi-2023b.eb
new file mode 100644
index 00000000000..bb76dc1e937
--- /dev/null
+++ b/easybuild/easyconfigs/h/HMMER/HMMER-3.4-gompi-2023b.eb
@@ -0,0 +1,78 @@
+##
+# EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+#
+# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA
+# Authors:: Nils Christian ,
+# Fotis Georgatos
+# Updated by: Filip Kružík (INUITS)
+# License:: MIT/GPL
+# $Id$
+#
+# This work implements a part of the HPCBIOS project and is a
+# component of the policy:
+# https://hpcbios.readthedocs.org/en/latest/HPCBIOS_2012-94.html
+##
+
+easyblock = 'ConfigureMake'
+
+name = 'HMMER'
+version = '3.4'
+
+homepage = 'http://hmmer.org/'
+description = """HMMER is used for searching sequence databases for homologs
+ of protein sequences, and for making protein sequence alignments. It
+ implements methods using probabilistic models called profile hidden Markov
+ models (profile HMMs). Compared to BLAST, FASTA, and other sequence
+ alignment and database search tools based on older scoring methodology,
+ HMMER aims to be significantly more accurate and more able to detect remote
+ homologs because of the strength of its underlying mathematical models. In the
+ past, this strength came at significant computational expense, but in the new
+ HMMER3 project, HMMER is now essentially as fast as BLAST."""
+
+toolchain = {'name': 'gompi', 'version': '2023b'}
+
+source_urls = [
+ 'http://eddylab.org/software/hmmer/',
+ 'http://eddylab.org/software/hmmer%(version_major)s/%(version)s/',
+]
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['ca70d94fd0cf271bd7063423aabb116d42de533117343a9b27a65c17ff06fbf3']
+
+builddependencies = [
+ ('Python', '3.11.5'),
+ ('Perl', '5.38.0'),
+]
+
+# replace hardcoded /usr/bin/perl shebang lines with '/usr/bin/env perl' across all files
+preconfigopts = "grep '/usr/bin/perl' . | cut -f1 -d: | xargs echo sed -i 's@/usr/bin/perl@/usr/bin/env perl@g' && "
+
+configopts = '--enable-mpi'
+
+buildopts = ' V=1 '
+
+testopts = buildopts
+runtest = 'check'
+
+installopts = ' && cd easel && make install'
+
+local_bin_files = ['alimask', 'esl-afetch', 'esl-alimanip', 'esl-alimap', 'esl-alimask',
+ 'esl-alimerge', 'esl-alipid', 'esl-alirev', 'esl-alistat', 'esl-compalign',
+ 'esl-compstruct', 'esl-construct', 'esl-histplot', 'esl-mask', 'esl-reformat',
+ 'esl-selectn', 'esl-seqrange', 'esl-seqstat', 'esl-sfetch', 'esl-shuffle',
+ 'esl-ssdraw', 'esl-translate', 'esl-weight', 'hmmalign', 'hmmbuild',
+ 'hmmconvert', 'hmmemit', 'hmmfetch', 'hmmlogo', 'hmmpgmd', 'hmmpress',
+ 'hmmscan', 'hmmsearch', 'hmmsim', 'hmmstat', 'jackhmmer', 'makehmmerdb',
+ 'nhmmer', 'nhmmscan', 'phmmer']
+
+sanity_check_paths = {
+ 'files': ["bin/%s" % x for x in local_bin_files],
+ 'dirs': ['bin', 'share'],
+}
+
+sanity_check_commands = [
+ "esl-construct -h",
+ "hmmsearch -h",
+ "nhmmer -h",
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/h/HOLE2/HOLE2-2.3.1-GCCcore-12.3.0.eb b/easybuild/easyconfigs/h/HOLE2/HOLE2-2.3.1-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..addf2b3cf87
--- /dev/null
+++ b/easybuild/easyconfigs/h/HOLE2/HOLE2-2.3.1-GCCcore-12.3.0.eb
@@ -0,0 +1,43 @@
+easyblock = 'ConfigureMake'
+
+name = 'HOLE2'
+version = '2.3.1'
+
+homepage = 'https://www.holeprogram.org/'
+description = """HOLE is a program that allows the analysis and visualisation of
+the pore dimensions of the holes through molecular structures of ion channels"""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = ['https://github.com/osmart/hole2/archive/refs/tags/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['1109dd3d15a63b6c72833314f3ef0fcfdf56341e634fbd2195df7427e6b435ae']
+
+builddependencies = [
+ ('binutils', '2.40'),
+]
+
+skipsteps = ['configure']
+
+prebuildopts = "".join([
+ "source source.apache && ",
+ "cd src && ",
+])
+
+preinstallopts = prebuildopts
+install_cmd = "make install-all PREFIX=%(installdir)s"
+
+parallel = 1
+
+local_binary = [
+ 'bln2gnu', 'capost2gnu', 'grd2gnu', 'hole', 'labqpt', 'make_post2gnu',
+ 'make_post_map', 'qplot', 'qpt_conv', 'sos_triangle', 'sph_process',
+ 'vdwdot', 'vmd_triangles_to_lines'
+]
+
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in local_binary],
+ 'dirs': ['bin', 'share/hole2/rad'],
+}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/h/HPDBSCAN/HPDBSCAN-20210826-foss-2020b.eb b/easybuild/easyconfigs/h/HPDBSCAN/HPDBSCAN-20210826-foss-2020b.eb
index b96581acb3c..5a0f068b7d1 100644
--- a/easybuild/easyconfigs/h/HPDBSCAN/HPDBSCAN-20210826-foss-2020b.eb
+++ b/easybuild/easyconfigs/h/HPDBSCAN/HPDBSCAN-20210826-foss-2020b.eb
@@ -12,7 +12,11 @@ toolchainopts = {'usempi': True}
source_urls = ['https://github.com/Markus-Goetz/hpdbscan/archive/']
sources = [{'download_filename': '%s.tar.gz' % local_commit, 'filename': '%(name)s-%(version)s.tar.gz'}]
-checksums = ['52ff343f77aeea5a425a911d88a57314c6bc877c18209eb53819d114421a868d']
+patches = ['HPDBSCAN-20210826_fix-numpy-headers.patch']
+checksums = [
+ {'HPDBSCAN-20210826.tar.gz': '52ff343f77aeea5a425a911d88a57314c6bc877c18209eb53819d114421a868d'},
+ {'HPDBSCAN-20210826_fix-numpy-headers.patch': 'cceb6a8cc15cb9bfbf92e5944f0398c1ac9db85a04fea3f7b1e0a0595fb530b1'},
+]
builddependencies = [
('CMake', '3.18.4'),
diff --git a/easybuild/easyconfigs/h/HPDBSCAN/HPDBSCAN-20210826_fix-numpy-headers.patch b/easybuild/easyconfigs/h/HPDBSCAN/HPDBSCAN-20210826_fix-numpy-headers.patch
new file mode 100644
index 00000000000..bbc6f3764ba
--- /dev/null
+++ b/easybuild/easyconfigs/h/HPDBSCAN/HPDBSCAN-20210826_fix-numpy-headers.patch
@@ -0,0 +1,81 @@
+Fix finding numpy includes such as ``.
+Fixes failing compilation unless the numpy headers are in the compilers search path (e.g. $CPATH)
+See https://github.com/Markus-Goetz/hpdbscan/pull/12
+
+Author: Alexander Grund (TU Dresden)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 6c3e450..b25c597 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -44,7 +44,7 @@ TARGET_COMPILE_OPTIONS(hpdbscan-bin PRIVATE ${OpenMP_CXX_FLAGS})
+
+ ## hdf5
+ FIND_PACKAGE(HDF5 1.8.10 REQUIRED)
+-INCLUDE_DIRECTORIES("${HDF5_INCLUDE_DIRS}")
++TARGET_INCLUDE_DIRECTORIES(hpdbscan-bin PRIVATE "${HDF5_INCLUDE_DIRS}")
+ TARGET_LINK_LIBRARIES(hpdbscan-bin PRIVATE "${HDF5_LIBRARIES}")
+
+ ## swig and python detection for optional bindings
+@@ -57,10 +57,9 @@ IF(SWIG_FOUND)
+ MESSAGE("PYTHON HEADERS NOT FOUND, BUILDING WITHOUT BINDINGS")
+ MESSAGE("TRY INSTALLING THE python-dev OR python-devel PACKAGE")
+ ELSE()
+- INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_DIRS})
+ FIND_PACKAGE(NumPy)
+- IF(NUMPY_FOUND)
+- EXECUTE_PROCESS(COMMAND swig -c++ -python -I"${PYTHON_INCLUDE_DIRS}" -I"${NUMPY_INCLUDE_DIRS}" -o "${CMAKE_CURRENT_BINARY_DIR}/hpdbscan_wrap.cpp" "${CMAKE_CURRENT_SOURCE_DIR}/swig/hpdbscan.i")
++ IF(NumPy_FOUND)
++ EXECUTE_PROCESS(COMMAND swig -c++ -python -o "${CMAKE_CURRENT_BINARY_DIR}/hpdbscan_wrap.cpp" "${CMAKE_CURRENT_SOURCE_DIR}/swig/hpdbscan.i")
+ ADD_LIBRARY(hpdbscan-binding SHARED ${CMAKE_CURRENT_BINARY_DIR}/hpdbscan_wrap.cpp)
+ IF(MPI_FOUND)
+ FIND_PACKAGE(MPI4PY)
+@@ -71,8 +70,10 @@ IF(SWIG_FOUND)
+ MESSAGE("MPI FOUND, BUT MPI4PY MISSING, BINDING WILL BE BUILT WITHOUT MPI SUPPORT")
+ ENDIF()
+ ENDIF()
++ TARGET_INCLUDE_DIRECTORIES(hpdbscan-binding PRIVATE ${PYTHON_INCLUDE_DIRS} ${NUMPY_INCLUDE_DIRS})
+ TARGET_LINK_LIBRARIES(hpdbscan-binding PRIVATE ${OpenMP_CXX_FLAGS})
+ TARGET_COMPILE_OPTIONS(hpdbscan-binding PRIVATE ${OpenMP_CXX_FLAGS})
++ TARGET_INCLUDE_DIRECTORIES(hpdbscan-binding PRIVATE "${HDF5_INCLUDE_DIRS}")
+ TARGET_LINK_LIBRARIES(hpdbscan-binding PRIVATE "${HDF5_LIBRARIES}")
+
+ # rename the library
+diff --git a/cmake/FindNumPy.cmake b/cmake/FindNumPy.cmake
+index ba0d7fd..8e353b5 100644
+--- a/cmake/FindNumPy.cmake
++++ b/cmake/FindNumPy.cmake
+@@ -1,28 +1,15 @@
+ # modified from https://github.com/live-clones/xdmf/blob/master/CMake/FindMPI4PY.cmake
+
+-IF(NOT NUMPY_INCLUDE_DIR)
++IF(NOT NUMPY_INCLUDE_DIRS)
+ EXECUTE_PROCESS(COMMAND
+ "${PYTHON_EXECUTABLE}" "-c" "import numpy as np; print(np.get_include())"
+- OUTPUT_VARIABLE NUMPY_INCLUDE_DIR
++ OUTPUT_VARIABLE NUMPY_COMMAND_OUTPUT
+ RESULT_VARIABLE NUMPY_COMMAND_RESULT
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+- IF(NUMPY_COMMAND_RESULT)
+- MESSAGE("numpy not found")
+- SET(NUMPY_FOUND FALSE)
+- ELSE()
+- IF(NUMPY_INCLUDE_DIR MATCHES "Traceback")
+- MESSAGE("numpy matches traceback")
+- ## Did not successfully include NUMPY
+- SET(NUMPY_FOUND FALSE)
+- ELSE()
+- ## successful
+- SET(NUMPY_FOUND TRUE)
+- SET(NUMPY_INCLUDE_DIR ${NUMPY_INCLUDE_DIR} CACHE STRING "numpy include path")
+- ENDIF()
++ IF(NOT NUMPY_COMMAND_RESULT AND NOT NUMPY_COMMAND_OUTPUT MATCHES "Traceback")
++ SET(NUMPY_INCLUDE_DIRS ${NUMPY_COMMAND_OUTPUT} CACHE STRING "numpy include path")
+ ENDIF()
+-ELSE()
+- SET(NUMPY_FOUND TRUE)
+ ENDIF()
+
+ INCLUDE(FindPackageHandleStandardArgs)
+-FIND_PACKAGE_HANDLE_STANDARD_ARGS(NUMPY DEFAULT_MSG NUMPY_INCLUDE_DIR)
++FIND_PACKAGE_HANDLE_STANDARD_ARGS(NumPy DEFAULT_MSG NUMPY_INCLUDE_DIRS)
diff --git a/easybuild/easyconfigs/h/HPX/HPX-1.10.0-foss-2024a.eb b/easybuild/easyconfigs/h/HPX/HPX-1.10.0-foss-2024a.eb
new file mode 100644
index 00000000000..110ca403b7c
--- /dev/null
+++ b/easybuild/easyconfigs/h/HPX/HPX-1.10.0-foss-2024a.eb
@@ -0,0 +1,78 @@
+# #
+# Author: Benjamin Czaja (benjamin.czaja@surf.nl)
+# Institute: SURF(sara)
+#
+# #
+easyblock = 'CMakeNinja'
+
+name = 'HPX'
+version = '1.10.0'
+
+homepage = 'http://stellar-group.org/libraries/hpx/'
+description = """HPX (High Performance ParalleX) is a general purpose C++ runtime system
+ for parallel and distributed applications of any scale."""
+
+toolchain = {'name': 'foss', 'version': '2024a'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/STEllAR-GROUP/%(namelower)s/archive']
+sources = ['v%(version)s.tar.gz']
+checksums = ['5720ed7d2460fa0b57bd8cb74fa4f70593fe8675463897678160340526ec3c19']
+
+builddependencies = [
+ ('CMake', '3.29.3'),
+ ('Ninja', '1.12.1'),
+ ('pkgconf', '2.2.0'),
+]
+dependencies = [
+ ('HDF5', '1.14.5'),
+ ('Boost', '1.85.0'),
+ ('hwloc', '2.10.0'),
+ ('gperftools', '2.16'),
+]
+
+configopts = '-DCMAKE_CXX_COMPILER=g++ '
+configopts += '-DHPX_WITH_MALLOC=tcmalloc '
+configopts += '-DHPX_WITH_HWLOC=TRUE '
+configopts += '-DHPX_WITH_GOOGLE_PERFTOOLS=TRUE '
+configopts += '-DHPX_WITH_NETWORKING=TRUE '
+configopts += '-DHPX_WITH_PARCELPORT_TCP=FALSE '
+configopts += '-DHPX_WITH_PARCELPORT_MPI=TRUE '
+configopts += '-DHPX_WITH_TESTS=FALSE '
+configopts += '-DHPX_WITH_EXAMPLES=TRUE '
+# configopts += '-DHPX_WITH_MAX_CPU_COUNT=128' #this should be handled by a hook for the system
+# configopts += '-DHPX_WITH_MAX_CPU_COUNT=' + os.cpu_count()
+configopts += '-DHPX_WITH_FETCH_ASIO=TRUE '
+
+bin_lib_subdirs = ['lib/%(namelower)s/']
+
+local_lib_names = [
+ 'libhpx_accumulator.%s' % SHLIB_EXT,
+ 'libhpx_cancelable_action.%s' % SHLIB_EXT,
+ 'libhpx_component_storage.%s' % SHLIB_EXT,
+ 'libhpx_core.%s' % SHLIB_EXT,
+ 'libhpx_iostreams.%s' % SHLIB_EXT,
+ 'libhpx_jacobi.%s' % SHLIB_EXT,
+ 'libhpx_nqueen.%s' % SHLIB_EXT,
+ 'libhpx_partitioned_vector.%s' % SHLIB_EXT,
+ 'libhpx_process.%s' % SHLIB_EXT,
+ 'libhpx_random_mem_access.%s' % SHLIB_EXT,
+ 'libhpx_simple_central_tuplespace.%s' % SHLIB_EXT,
+ 'libhpx.%s' % SHLIB_EXT,
+ 'libhpx_startup_shutdown.%s' % SHLIB_EXT,
+ 'libhpx_template_accumulator.%s' % SHLIB_EXT,
+ 'libhpx_template_function_accumulator.%s' % SHLIB_EXT,
+ 'libhpx_throttle.%s' % SHLIB_EXT,
+ 'libhpx_unordered.%s' % SHLIB_EXT,
+]
+
+sanity_check_paths = {
+ 'files': ['lib/%s' % lib for lib in local_lib_names] +
+ ['include/asio.hpp', 'include/hpx/hpx.hpp'] +
+ ['bin/hpxcxx', 'bin/hpxrun.py'],
+ 'dirs': ['bin', 'lib'] + bin_lib_subdirs,
+}
+
+modextrapaths = {'LD_LIBRARY_PATH': bin_lib_subdirs}
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/h/HTSlib/HTSlib-1.21-GCC-13.3.0.eb b/easybuild/easyconfigs/h/HTSlib/HTSlib-1.21-GCC-13.3.0.eb
new file mode 100644
index 00000000000..2f35f9fa5a2
--- /dev/null
+++ b/easybuild/easyconfigs/h/HTSlib/HTSlib-1.21-GCC-13.3.0.eb
@@ -0,0 +1,41 @@
+# 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
+# 1.4 modified by:
+# Adam Huffman, Jonas Demeulemeester
+# The Francis Crick Institute
+# Updated to 1.14
+# J. Sassmannshausen /GSTT
+# Updated to 1.21 jpecar EMBL
+
+easyblock = 'ConfigureMake'
+
+name = 'HTSlib'
+version = '1.21'
+
+homepage = 'https://www.htslib.org/'
+description = """A C library for reading/writing high-throughput sequencing data.
+ This package includes the utilities bgzip and tabix"""
+
+toolchain = {'name': 'GCC', 'version': '13.3.0'}
+
+source_urls = ['https://github.com/samtools/%(namelower)s/releases/download/%(version)s/']
+sources = [SOURCELOWER_TAR_BZ2]
+checksums = ['84b510e735f4963641f26fd88c8abdee81ff4cb62168310ae716636aac0f1823']
+
+# cURL added for S3 support
+dependencies = [
+ ('zlib', '1.3.1'),
+ ('bzip2', '1.0.8'),
+ ('XZ', '5.4.5'),
+ ('cURL', '8.7.1'),
+]
+
+
+sanity_check_paths = {
+ 'files': ['bin/bgzip', 'bin/tabix', 'lib/libhts.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/h/HTSplotter/HTSplotter-2.11-foss-2023a.eb b/easybuild/easyconfigs/h/HTSplotter/HTSplotter-2.11-foss-2023a.eb
new file mode 100644
index 00000000000..75808cd8e7a
--- /dev/null
+++ b/easybuild/easyconfigs/h/HTSplotter/HTSplotter-2.11-foss-2023a.eb
@@ -0,0 +1,64 @@
+easyblock = 'PythonBundle'
+
+name = 'HTSplotter'
+version = '2.11'
+
+homepage = 'https://github.com/CBIGR/HTSplotter'
+description = """HTSplotter allows an end-to-end data processing and analysis of chemical and genetic in vitro
+perturbation screens."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'pic': True}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('matplotlib', '3.7.2'),
+ ('h5py', '3.9.0'),
+ ('Seaborn', '0.13.2'),
+ ('tqdm', '4.66.1'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('argon2-cffi-bindings', '21.2.0', {
+ 'modulename': '_argon2_cffi_bindings',
+ 'checksums': ['bb89ceffa6c791807d1305ceb77dbfacc5aa499891d2c55661c6459651fc39e3'],
+ }),
+ ('argon2_cffi', '23.1.0', {
+ 'modulename': 'argon2',
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['c670642b78ba29641818ab2e68bd4e6a78ba53b7eff7b4c3815ae16abf91c7ea'],
+ }),
+ ('minio', '7.2.9', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['fe5523d9c4a4d6cfc07e96905852841bccdb22b22770e1efca4bf5ae8b65774b'],
+ }),
+ ('pypdf', '5.0.0', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['67603e2e96cdf70e676564520933c017d450f16075b9966be5fee128812ace8c'],
+ }),
+ ('pypdf2', '3.0.1', {
+ 'modulename': 'PyPDF2',
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['d16e4205cfee272fbdc0568b68d82be796540b1537508cef59388f839c191928'],
+ }),
+ ('PyPDF3', '1.0.6', {
+ 'modulename': 'PyPDF3',
+ 'checksums': ['c946f3273419e37258e35e72273f49904ab15723d87a761c1115ef99799f8c5f'],
+ }),
+ (name, version, {
+ 'modulename': 'HTSplotter',
+ # Fixes the following error.
+ # `TypeError: rv_generic_interval() missing 1 required positional argument: 'confidence'`
+ # see https://github.com/KatherLab/marugoto/issues/14
+ # see also scipy release notes https://docs.scipy.org/doc/scipy/release/1.9.0-notes.html#deprecated-features
+ 'preinstallopts': "sed -i 's/alpha/confidence/g' HTSplotter/save_hdf5brfiles.py && ",
+ 'checksums': ['51c0cee4e8eeecfd03f32dd707e0fa433cec91abb9334ec1d28e7f82615dbe29'],
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/h/HarfBuzz/HarfBuzz-9.0.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/h/HarfBuzz/HarfBuzz-9.0.0-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..40540c3fcdc
--- /dev/null
+++ b/easybuild/easyconfigs/h/HarfBuzz/HarfBuzz-9.0.0-GCCcore-13.3.0.eb
@@ -0,0 +1,51 @@
+easyblock = 'MesonNinja'
+
+name = 'HarfBuzz'
+version = '9.0.0'
+
+homepage = 'https://www.freedesktop.org/wiki/Software/HarfBuzz'
+description = """HarfBuzz is an OpenType text shaping engine."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+github_account = 'harfbuzz'
+source_urls = [GITHUB_SOURCE]
+sources = ['%(version)s.tar.gz']
+patches = ['HarfBuzz-9.0.0_fix-subset-test.patch']
+checksums = [
+ {'9.0.0.tar.gz': 'b7e481b109d19aefdba31e9f5888aa0cdfbe7608fed9a43494c060ce1f8a34d2'},
+ {'HarfBuzz-9.0.0_fix-subset-test.patch': '1635505c27c312dca507863f2a865eb88d42e35ff4cc241cfa0e90c0ade8b790'},
+]
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('GObject-Introspection', '1.80.1'),
+ ('pkgconf', '2.2.0'),
+ ('Ninja', '1.12.1'),
+ ('Meson', '1.4.0'),
+ ('fonttools', '4.53.1'), # For tests
+]
+
+dependencies = [
+ ('GLib', '2.80.4'),
+ ('ICU', '75.1'),
+ ('cairo', '1.18.0'),
+ ('freetype', '2.13.2'),
+]
+
+configopts = '--default-library=both' # static and shared library
+configopts += ' -Dgobject=enabled -Dintrospection=enabled'
+configopts += ' -Dglib=enabled'
+configopts += ' -Dicu=enabled'
+configopts += ' -Dcairo=enabled'
+configopts += ' -Dfreetype=enabled'
+
+runtest = 'meson'
+testopts = 'test -C %(builddir)s/easybuild_obj -t 60'
+
+sanity_check_paths = {
+ 'files': ['lib/libharfbuzz.%s' % SHLIB_EXT, 'bin/hb-view'],
+ 'dirs': []
+}
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/h/HarfBuzz/HarfBuzz-9.0.0_fix-subset-test.patch b/easybuild/easyconfigs/h/HarfBuzz/HarfBuzz-9.0.0_fix-subset-test.patch
new file mode 100644
index 00000000000..25a2b619fc8
--- /dev/null
+++ b/easybuild/easyconfigs/h/HarfBuzz/HarfBuzz-9.0.0_fix-subset-test.patch
@@ -0,0 +1,26 @@
+The test "feature_variation_instance_collect_lookups" fails when run in environments
+where the decimal separator is not a dot (".").
+Fix this by using the C locale.
+See https://github.com/harfbuzz/harfbuzz/pull/4857
+
+Author: Alexander Grund (TU Dresden)
+
+diff --git a/test/subset/run-tests.py b/test/subset/run-tests.py
+index 9e09d95d1d9..c0c256d8974 100755
+--- a/test/subset/run-tests.py
++++ b/test/subset/run-tests.py
+@@ -135,10 +135,13 @@ def check_ots (path):
+
+ has_ots = has_ots()
+
++env = os.environ.copy()
++env['LC_ALL'] = 'C'
+ process = subprocess.Popen ([hb_subset, '--batch'],
+ stdin=subprocess.PIPE,
+ stdout=subprocess.PIPE,
+- stderr=sys.stdout)
++ stderr=sys.stdout,
++ env=env)
+
+ fails = 0
+ for path in args:
diff --git a/easybuild/easyconfigs/h/HeFFTe/HeFFTe-2.4.1-foss-2023b.eb b/easybuild/easyconfigs/h/HeFFTe/HeFFTe-2.4.1-foss-2023b.eb
new file mode 100644
index 00000000000..7d38225fc55
--- /dev/null
+++ b/easybuild/easyconfigs/h/HeFFTe/HeFFTe-2.4.1-foss-2023b.eb
@@ -0,0 +1,33 @@
+easyblock = 'CMakeMake'
+
+name = 'HeFFTe'
+version = '2.4.1'
+
+homepage = 'https://icl.utk.edu/fft'
+description = "Highly Efficient FFT for Exascale (HeFFTe) library"
+
+toolchain = {'name': 'foss', 'version': '2023b'}
+
+source_urls = ['https://github.com/icl-utk-edu/heffte/archive/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['de2cf26df5d61baac7841525db3f393cb007f79612ac7534fd4757f154ba3e6c']
+
+builddependencies = [
+ ('CMake', '3.27.6'),
+]
+
+build_shared_libs = True
+
+configopts = "-DHeffte_ENABLE_FFTW=ON -DFFTW_ROOT=$EBROOTFFTW -DHeffte_ENABLE_CUDA=OFF -DHeffte_ENABLE_MKL=OFF"
+
+# allow oversubscription of MPI ranks to cores, tests are hardcoded to use up to 12 MPI ranks
+pretestopts = "export OMPI_MCA_rmaps_base_oversubscribe=true && "
+
+runtest = 'test'
+
+sanity_check_paths = {
+ 'files': ['lib/libheffte.%s' % SHLIB_EXT],
+ 'dirs': ['include', 'lib/cmake/Heffte', 'share/heffte/examples'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/h/h4toh5/h4toh5-2.2.3-foss-2018b.eb b/easybuild/easyconfigs/h/h4toh5/h4toh5-2.2.3-foss-2018b.eb
index 0b79b7cfc94..605d20f196f 100644
--- a/easybuild/easyconfigs/h/h4toh5/h4toh5-2.2.3-foss-2018b.eb
+++ b/easybuild/easyconfigs/h/h4toh5/h4toh5-2.2.3-foss-2018b.eb
@@ -3,13 +3,13 @@ easyblock = 'ConfigureMake'
name = 'h4toh5'
version = '2.2.3'
-homepage = 'http://www.hdfgroup.org/h4toh5/'
+homepage = "https://docs.hdfgroup.org/archive/support/products/hdf5_tools/h4toh5/index.html"
description = """The h4toh5 software consists of the h4toh5 and h5toh4 command-line utilities,
as well as a conversion library for converting between individual HDF4 and HDF5 objects."""
toolchain = {'name': 'foss', 'version': '2018b'}
-source_urls = ['http://www.hdfgroup.org/ftp/HDF5/tools/%s/src' % name]
+source_urls = ['http://support.hdfgroup.org/ftp/HDF5/tools/%s/src' % name]
sources = ['h4h5tools-%(version)s.tar.gz']
checksums = ['ba167d9e5ec1f9014a95e3f5d0621f814caa6e83508e235ce60cfd315e3a9d3f']
diff --git a/easybuild/easyconfigs/h/h4toh5/h4toh5-2.2.3-gompi-2019b.eb b/easybuild/easyconfigs/h/h4toh5/h4toh5-2.2.3-gompi-2019b.eb
index 81636ad6de3..079d5eb7de1 100644
--- a/easybuild/easyconfigs/h/h4toh5/h4toh5-2.2.3-gompi-2019b.eb
+++ b/easybuild/easyconfigs/h/h4toh5/h4toh5-2.2.3-gompi-2019b.eb
@@ -3,13 +3,13 @@ easyblock = 'ConfigureMake'
name = 'h4toh5'
version = '2.2.3'
-homepage = 'http://www.hdfgroup.org/h4toh5/'
+homepage = "https://docs.hdfgroup.org/archive/support/products/hdf5_tools/h4toh5/index.html"
description = """The h4toh5 software consists of the h4toh5 and h5toh4 command-line utilities,
as well as a conversion library for converting between individual HDF4 and HDF5 objects."""
toolchain = {'name': 'gompi', 'version': '2019b'}
-source_urls = ['http://www.hdfgroup.org/ftp/HDF5/tools/%s/src' % name]
+source_urls = ['http://support.hdfgroup.org/ftp/HDF5/tools/%s/src' % name]
sources = ['h4h5tools-%(version)s%(versionsuffix)s.tar.gz']
checksums = ['ba167d9e5ec1f9014a95e3f5d0621f814caa6e83508e235ce60cfd315e3a9d3f']
diff --git a/easybuild/easyconfigs/h/h4toh5/h4toh5-2.2.3-gompi-2020b.eb b/easybuild/easyconfigs/h/h4toh5/h4toh5-2.2.3-gompi-2020b.eb
index 8e8e8c7f705..50fe19e455a 100644
--- a/easybuild/easyconfigs/h/h4toh5/h4toh5-2.2.3-gompi-2020b.eb
+++ b/easybuild/easyconfigs/h/h4toh5/h4toh5-2.2.3-gompi-2020b.eb
@@ -3,13 +3,13 @@ easyblock = 'ConfigureMake'
name = 'h4toh5'
version = '2.2.3'
-homepage = 'http://www.hdfgroup.org/h4toh5/'
+homepage = "https://docs.hdfgroup.org/archive/support/products/hdf5_tools/h4toh5/index.html"
description = """The h4toh5 software consists of the h4toh5 and h5toh4 command-line utilities,
as well as a conversion library for converting between individual HDF4 and HDF5 objects."""
toolchain = {'name': 'gompi', 'version': '2020b'}
-source_urls = ['http://www.hdfgroup.org/ftp/HDF5/tools/%s/src' % name]
+source_urls = ['http://support.hdfgroup.org/ftp/HDF5/tools/%s/src' % name]
sources = ['h4h5tools-%(version)s%(versionsuffix)s.tar.gz']
checksums = ['ba167d9e5ec1f9014a95e3f5d0621f814caa6e83508e235ce60cfd315e3a9d3f']
diff --git a/easybuild/easyconfigs/h/h4toh5/h4toh5-2.2.5-gompi-2022a.eb b/easybuild/easyconfigs/h/h4toh5/h4toh5-2.2.5-gompi-2022a.eb
index 1a825bc8ed8..28d67776a1b 100644
--- a/easybuild/easyconfigs/h/h4toh5/h4toh5-2.2.5-gompi-2022a.eb
+++ b/easybuild/easyconfigs/h/h4toh5/h4toh5-2.2.5-gompi-2022a.eb
@@ -3,7 +3,7 @@ easyblock = 'ConfigureMake'
name = 'h4toh5'
version = '2.2.5'
-homepage = 'http://www.hdfgroup.org/h4toh5/'
+homepage = "https://docs.hdfgroup.org/archive/support/products/hdf5_tools/h4toh5/index.html"
description = """The h4toh5 software consists of the h4toh5 and h5toh4 command-line utilities,
as well as a conversion library for converting between individual HDF4 and HDF5 objects."""
diff --git a/easybuild/easyconfigs/h/hatch-jupyter-builder/hatch-jupyter-builder-0.9.1-GCCcore-12.3.0.eb b/easybuild/easyconfigs/h/hatch-jupyter-builder/hatch-jupyter-builder-0.9.1-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..071c33cd4b1
--- /dev/null
+++ b/easybuild/easyconfigs/h/hatch-jupyter-builder/hatch-jupyter-builder-0.9.1-GCCcore-12.3.0.eb
@@ -0,0 +1,35 @@
+easyblock = 'PythonBundle'
+
+name = 'hatch-jupyter-builder'
+version = "0.9.1"
+
+homepage = 'https://hatch-jupyter-builder.readthedocs.io'
+description = """Hatch Jupyter Builder is a plugin for the hatchling Python build backend. It is
+primarily targeted for package authors who are providing JavaScript as part of
+their Python packages.
+Typical use cases are Jupyter Lab Extensions and Jupyter Widgets."""
+
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+builddependencies = [
+ ('binutils', '2.40'),
+]
+dependencies = [
+ ('Python', '3.11.3'),
+ ('hatchling', '1.18.0'),
+]
+
+sanity_pip_check = True
+use_pip = True
+
+exts_list = [
+ ('hatch_nodejs_version', '0.3.2', {
+ 'checksums': ['8a7828d817b71e50bbbbb01c9bfc0b329657b7900c56846489b9c958de15b54c'],
+ }),
+ ('hatch_jupyter_builder', '0.9.1', {
+ 'checksums': ['79278198d124c646b799c5e8dca8504aed9dcaaa88d071a09eb0b5c2009a58ad'],
+ }),
+]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/h/hatch-jupyter-builder/hatch-jupyter-builder-0.9.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/h/hatch-jupyter-builder/hatch-jupyter-builder-0.9.1-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..f4483b94edd
--- /dev/null
+++ b/easybuild/easyconfigs/h/hatch-jupyter-builder/hatch-jupyter-builder-0.9.1-GCCcore-13.3.0.eb
@@ -0,0 +1,35 @@
+easyblock = 'PythonBundle'
+
+name = 'hatch-jupyter-builder'
+version = "0.9.1"
+
+homepage = 'https://hatch-jupyter-builder.readthedocs.io'
+description = """Hatch Jupyter Builder is a plugin for the hatchling Python build backend. It is
+primarily targeted for package authors who are providing JavaScript as part of
+their Python packages.
+Typical use cases are Jupyter Lab Extensions and Jupyter Widgets."""
+
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+dependencies = [
+ ('Python', '3.12.3'),
+ ('hatchling', '1.24.2'),
+]
+
+sanity_pip_check = True
+use_pip = True
+
+exts_list = [
+ ('hatch_nodejs_version', '0.3.2', {
+ 'checksums': ['8a7828d817b71e50bbbbb01c9bfc0b329657b7900c56846489b9c958de15b54c'],
+ }),
+ ('hatch_jupyter_builder', version, {
+ 'checksums': ['79278198d124c646b799c5e8dca8504aed9dcaaa88d071a09eb0b5c2009a58ad'],
+ }),
+]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/h/hic-straw/hic-straw-1.3.1-foss-2023b.eb b/easybuild/easyconfigs/h/hic-straw/hic-straw-1.3.1-foss-2023b.eb
new file mode 100644
index 00000000000..4a9b159e99b
--- /dev/null
+++ b/easybuild/easyconfigs/h/hic-straw/hic-straw-1.3.1-foss-2023b.eb
@@ -0,0 +1,29 @@
+easyblock = 'PythonPackage'
+
+name = 'hic-straw'
+version = '1.3.1'
+
+homepage = 'https://github.com/aidenlab/straw'
+description = "Straw is a library which allows rapid streaming of contact data from .hic files."
+
+toolchain = {'name': 'foss', 'version': '2023b'}
+
+sources = [SOURCE_TAR_GZ]
+checksums = ['fb0f878127f6b1d096303c67793477c83fddf3f4a1a8e29a9d92952634989876']
+
+builddependencies = [('pybind11', '2.11.1')]
+
+dependencies = [
+ ('Python', '3.11.5'),
+ ('Python-bundle-PyPI', '2023.10'),
+ ('SciPy-bundle', '2023.11'),
+ ('cURL', '8.3.0'),
+]
+
+use_pip = True
+sanity_pip_check = True
+download_dep_fail = True
+
+options = {'modulename': 'hicstraw'}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/h/hiredis/hiredis-1.2.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/h/hiredis/hiredis-1.2.0-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..bc3a5a1c715
--- /dev/null
+++ b/easybuild/easyconfigs/h/hiredis/hiredis-1.2.0-GCCcore-13.3.0.eb
@@ -0,0 +1,41 @@
+# Author: Alexander Grund (TU Dresden)
+# Based on EC by J. Sassmannshausen (Imperial College London)
+
+easyblock = 'CMakeMake'
+
+name = 'hiredis'
+version = '1.2.0'
+
+homepage = 'https://github.com/redis/hiredis'
+description = """Hiredis is a minimalistic C client library for the Redis database.
+
+It is minimalistic because it just adds minimal support for the protocol,
+but at the same time it uses a high level printf-alike API in order to
+make it much higher level than otherwise suggested by its minimal code base
+and the lack of explicit bindings for every Redis command."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+github_account = 'redis'
+source_urls = [GITHUB_SOURCE]
+sources = ['v%(version)s.tar.gz']
+checksums = ['82ad632d31ee05da13b537c124f819eb88e18851d9cb0c30ae0552084811588c']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('CMake', '3.29.3'),
+]
+
+dependencies = [
+ ('OpenSSL', '3', '', SYSTEM),
+]
+
+configopts = ['-DBUILD_SHARED_LIBS=ON', '-DBUILD_SHARED_LIBS=OFF']
+
+sanity_check_paths = {
+ 'files': ['lib/libhiredis.a', 'lib/libhiredis.%s' % SHLIB_EXT],
+ 'dirs': ['include'],
+}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/i/IJulia/IJulia-1.24.2-Julia-1.10.3.eb b/easybuild/easyconfigs/i/IJulia/IJulia-1.24.2-Julia-1.10.3.eb
new file mode 100644
index 00000000000..f2072785aa5
--- /dev/null
+++ b/easybuild/easyconfigs/i/IJulia/IJulia-1.24.2-Julia-1.10.3.eb
@@ -0,0 +1,84 @@
+easyblock = 'JuliaBundle'
+
+name = 'IJulia'
+version = '1.24.2'
+_julia_ver = '1.10.3'
+versionsuffix = "-Julia-%s" % _julia_ver
+
+homepage = 'https://github.com/JuliaLang/IJulia.jl'
+description = "Julia kernel for Jupyter"
+
+toolchain = SYSTEM
+
+dependencies = [
+ ('Julia', _julia_ver, '-linux-%s' % ARCH, SYSTEM),
+]
+
+exts_list = [
+ ('Preferences', '1.4.3', {
+ 'source_urls': ['https://github.com/JuliaPackaging/Preferences.jl/archive/'],
+ 'checksums': ['02b995891818b91266f98bcb46eefc513dfb66b177b5a6a0d1cff97be3e4582d'],
+ }),
+ ('JLLWrappers', '1.5.0', {
+ 'source_urls': ['https://github.com/JuliaPackaging/JLLWrappers.jl/archive/'],
+ 'checksums': ['6e83b81afd0c57636e80bcf52ad51f6ba43d98643cac999727b958d9ab3d4a01'],
+ }),
+ ('SnoopPrecompile', '2.10.8', {
+ 'source_urls': ['https://github.com/timholy/SnoopCompile.jl/archive/'],
+ 'start_dir': '%(name)s',
+ 'checksums': ['9b3204ce72fa3d0f1a359428e9f2ae43db2ee91f7ba77407056aced39d74d9d6'],
+ }),
+ ('PrecompileTools', '1.2.1', {
+ 'source_urls': ['https://github.com/JuliaLang/PrecompileTools.jl/archive/'],
+ 'checksums': ['af58b384e08b488b2da5ad19e72817b8b0ddb026997f8cf85f2964cc2c26cd34'],
+ }),
+ ('Parsers', '2.8.1', {
+ 'source_urls': ['https://github.com/JuliaData/Parsers.jl/archive/'],
+ 'checksums': ['6ea035be48ef5daaecdff62ac8f29c6110aaf20f3349058a4f96e2503f55b693'],
+ }),
+ ('JSON', '0.21.4', {
+ 'source_urls': ['https://github.com/JuliaIO/JSON.jl/archive/'],
+ 'checksums': ['c6b620ad4150ec5a154367f50c9579af800e3a89a6d8f9cb5dd30215a5d3f552'],
+ }),
+ ('MbedTLS', '1.1.9', {
+ 'source_urls': ['https://github.com/JuliaLang/MbedTLS.jl/archive/'],
+ 'checksums': ['d421bb36f9eb7f8840bd7108c2c33a9a5532454ac9465861e2f7797f89c1f56b'],
+ }),
+ ('VersionParsing', '1.3.0', {
+ 'source_urls': ['https://github.com/JuliaInterop/VersionParsing.jl/archive/'],
+ 'checksums': ['f90fe419e1a40ef0eccfaaed1d1b7792d9115a059a82d0c23e3c04c944d0f8ca'],
+ }),
+ ('Conda', '1.10.0', {
+ 'source_urls': ['https://github.com/JuliaPy/Conda.jl/archive/'],
+ 'checksums': ['2007170cad58d6f27626500abd52bd782023b8ecb7a7d05a678d7aec3c0f9948'],
+ }),
+ ('SoftGlobalScope', '1.1.0', {
+ 'source_urls': ['https://github.com/stevengj/SoftGlobalScope.jl/archive/'],
+ 'checksums': ['8d4264386c859403938498cd9ddd5e94e10181deba4a3e71d391b16750e3848b'],
+ }),
+ ('libsodium_jll', '1.0.20+0', {
+ 'source_urls': ['https://github.com/JuliaBinaryWrappers/libsodium_jll.jl/archive/'],
+ 'sources': [{'filename': 'libsodium-v%(version)s.tar.gz'}],
+ 'checksums': ['f7c3a17acc3a478ec10a4a49a0dd04694140f4483644ec9db638706ea9844aba'],
+ }),
+ ('ZeroMQ_jll', '4.3.5+0', {
+ 'source_urls': ['https://github.com/JuliaBinaryWrappers/ZeroMQ_jll.jl/archive/'],
+ 'sources': [{'filename': 'ZeroMQ-v%(version)s.tar.gz'}],
+ 'checksums': ['29d1f35e48c1436743a6da28518cb7aeccb32af4b439c3976df1967c6a252e87'],
+ }),
+ ('ZMQ', '1.2.4', {
+ 'source_urls': ['https://github.com/JuliaInterop/ZMQ.jl/archive/'],
+ 'checksums': ['a15fe752d2b049ad7521d03909ae8ad6c28e4cf46fc823f666cbc1cc6f5795ba'],
+ }),
+ (name, version, {
+ 'preinstallopts': "mkdir -p %(installdir)s/jupyter && export JUPYTER_DATA_DIR=%(installdir)s/jupyter && ",
+ 'source_urls': ['https://github.com/JuliaLang/IJulia.jl/archive/'],
+ 'checksums': ['de215348c7c41e1ca15c0d21f5f9a78bedce77b02ef89d67f38702c4d57ee80d'],
+ }),
+]
+
+modextrapaths = {
+ 'JUPYTER_PATH': 'jupyter',
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/i/IPython/IPython-8.14.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/i/IPython/IPython-8.14.0-GCCcore-12.3.0.eb
index 78aaf35586a..c43ce71e9a8 100644
--- a/easybuild/easyconfigs/i/IPython/IPython-8.14.0-GCCcore-12.3.0.eb
+++ b/easybuild/easyconfigs/i/IPython/IPython-8.14.0-GCCcore-12.3.0.eb
@@ -20,6 +20,7 @@ builddependencies = [
dependencies = [
('Python', '3.11.3'),
('Python-bundle-PyPI', '2023.06'),
+ ('jedi', '0.19.0'),
('ZeroMQ', '4.3.4'),
('lxml', '4.9.2'),
]
@@ -58,12 +59,6 @@ exts_list = [
'modulename': False,
'checksums': ['f887e5f10ba98e8d2b150ddcf4702c1e5f8b3a20005eb0f74bfdbd360ee6f304']
}),
- ('parso', '0.8.3', {
- 'checksums': ['8c07be290bb59f03588915921e29e8a50002acaf2cdc5fa0e0114f91709fafa0']
- }),
- ('jedi', '0.19.0', {
- 'checksums': ['bcf9894f1753969cbac8022a8c2eaee06bfa3724e4192470aaffe7eb6272b0c4']
- }),
('backcall', '0.2.0', {
'checksums': ['5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e']
}),
diff --git a/easybuild/easyconfigs/i/IPython/IPython-8.27.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/i/IPython/IPython-8.27.0-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..a85e58910e9
--- /dev/null
+++ b/easybuild/easyconfigs/i/IPython/IPython-8.27.0-GCCcore-13.3.0.eb
@@ -0,0 +1,80 @@
+easyblock = 'PythonBundle'
+
+name = 'IPython'
+version = '8.27.0'
+
+homepage = 'https://ipython.org/index.html'
+description = """IPython provides a rich architecture for interactive computing with:
+ Powerful interactive shells (terminal and Qt-based).
+ A browser-based notebook with support for code, text, mathematical expressions, inline plots and other rich media.
+ Support for interactive data visualization and use of GUI toolkits.
+ Flexible, embeddable interpreters to load into your own projects.
+ Easy to use, high performance tools for parallel computing."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('hatchling', '1.24.2'),
+]
+
+dependencies = [
+ ('Python', '3.12.3'),
+ ('Python-bundle-PyPI', '2024.06'),
+ ('ZeroMQ', '4.3.5'),
+ ('lxml', '5.3.0'),
+ ('jedi', '0.19.1')
+]
+
+sanity_pip_check = True
+use_pip = True
+
+# for the matplotlib-inline required extention we avoid the import sanity check
+# as it will fail without matplotlib in the environment, but ipython devs prefer not to make
+# matplotlib a required dep (https://github.com/ipython/matplotlib-inline/issues/4)
+# we follow the same convention and we not set matplotlib as dependency
+
+# Last updated 20240917
+exts_list = [
+ ('traitlets', '5.14.3', {
+ 'checksums': ['9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7'],
+ }),
+ ('pure_eval', '0.2.3', {
+ 'checksums': ['5f4e983f40564c576c7c8635ae88db5956bb2229d7e9237d03b3c0b0190eaf42'],
+ }),
+ ('executing', '2.1.0', {
+ 'checksums': ['8ea27ddd260da8150fa5a708269c4a10e76161e2496ec3e587da9e3c0fe4b9ab'],
+ }),
+ ('asttokens', '2.4.1', {
+ 'checksums': ['b03869718ba9a6eb027e134bfdf69f38a236d681c83c160d510768af11254ba0'],
+ }),
+ ('stack_data', '0.6.3', {
+ 'checksums': ['836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9'],
+ }),
+ ('prompt_toolkit', '3.0.47', {
+ 'checksums': ['1e1b29cb58080b1e69f207c893a1a7bf16d127a5c30c9d17a25a5d77792e5360'],
+ }),
+ ('pickleshare', '0.7.5', {
+ 'checksums': ['87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca'],
+ }),
+ ('matplotlib-inline', '0.1.6', {
+ 'modulename': False,
+ 'checksums': ['f887e5f10ba98e8d2b150ddcf4702c1e5f8b3a20005eb0f74bfdbd360ee6f304'],
+ }),
+ ('backcall', '0.2.0', {
+ 'checksums': ['5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e'],
+ }),
+ ('ipython', version, {
+ 'modulename': 'IPython',
+ 'checksums': ['0b99a2dc9f15fd68692e898e5568725c6d49c527d36a9fb5960ffbdeaa82ff7e'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/%(namelower)s'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages/%(name)s'],
+}
+
+sanity_check_commands = ['%(namelower)s -h']
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/i/IPython/IPython-8.28.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/i/IPython/IPython-8.28.0-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..163d831276b
--- /dev/null
+++ b/easybuild/easyconfigs/i/IPython/IPython-8.28.0-GCCcore-13.3.0.eb
@@ -0,0 +1,79 @@
+easyblock = 'PythonBundle'
+
+name = 'IPython'
+version = '8.28.0'
+
+homepage = 'https://ipython.org/index.html'
+description = """IPython provides a rich architecture for interactive computing with:
+ Powerful interactive shells (terminal and Qt-based).
+ A browser-based notebook with support for code, text, mathematical expressions, inline plots and other rich media.
+ Support for interactive data visualization and use of GUI toolkits.
+ Flexible, embeddable interpreters to load into your own projects.
+ Easy to use, high performance tools for parallel computing."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('hatchling', '1.24.2'),
+]
+
+dependencies = [
+ ('Python', '3.12.3'),
+ ('Python-bundle-PyPI', '2024.06'),
+ ('ZeroMQ', '4.3.5'),
+ ('lxml', '5.3.0'),
+ ('jedi', '0.19.1')
+]
+
+sanity_pip_check = True
+use_pip = True
+
+# for the matplotlib-inline required extention we avoid the import sanity check
+# as it will fail without matplotlib in the environment, but ipython devs prefer not to make
+# matplotlib a required dep (https://github.com/ipython/matplotlib-inline/issues/4)
+# we follow the same convention and we not set matplotlib as dependency
+
+exts_list = [
+ ('traitlets', '5.13.0', {
+ 'checksums': ['9b232b9430c8f57288c1024b34a8f0251ddcc47268927367a0dd3eeaca40deb5'],
+ }),
+ ('pure_eval', '0.2.2', {
+ 'checksums': ['2b45320af6dfaa1750f543d714b6d1c520a1688dec6fd24d339063ce0aaa9ac3'],
+ }),
+ ('executing', '2.0.1', {
+ 'checksums': ['35afe2ce3affba8ee97f2d69927fa823b08b472b7b994e36a52a964b93d16147'],
+ }),
+ ('asttokens', '2.4.1', {
+ 'checksums': ['b03869718ba9a6eb027e134bfdf69f38a236d681c83c160d510768af11254ba0'],
+ }),
+ ('stack_data', '0.6.3', {
+ 'checksums': ['836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9'],
+ }),
+ ('prompt_toolkit', '3.0.41', {
+ 'checksums': ['941367d97fc815548822aa26c2a269fdc4eb21e9ec05fc5d447cf09bad5d75f0'],
+ }),
+ ('pickleshare', '0.7.5', {
+ 'checksums': ['87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca'],
+ }),
+ ('matplotlib-inline', '0.1.6', {
+ 'modulename': False,
+ 'checksums': ['f887e5f10ba98e8d2b150ddcf4702c1e5f8b3a20005eb0f74bfdbd360ee6f304'],
+ }),
+ ('backcall', '0.2.0', {
+ 'checksums': ['5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e'],
+ }),
+ ('ipython', version, {
+ 'modulename': 'IPython',
+ 'checksums': ['0d0d15ca1e01faeb868ef56bc7ee5a0de5bd66885735682e8a322ae289a13d1a'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/%(namelower)s'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages/%(name)s'],
+}
+
+sanity_check_commands = ['%(namelower)s -h']
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/i/IQ-TREE/IQ-TREE-2.3.6-gompi-2023a.eb b/easybuild/easyconfigs/i/IQ-TREE/IQ-TREE-2.3.6-gompi-2023a.eb
new file mode 100644
index 00000000000..7f78472bcea
--- /dev/null
+++ b/easybuild/easyconfigs/i/IQ-TREE/IQ-TREE-2.3.6-gompi-2023a.eb
@@ -0,0 +1,56 @@
+# Updated to v2.1.3 by
+# R.QIAO
+# DeepThought, Flinders University
+# Update: Petr Král (INUITS)
+
+easyblock = 'CMakeMake'
+
+name = 'IQ-TREE'
+version = '2.3.6'
+
+# HTTPS is not working
+homepage = 'http://www.iqtree.org/'
+description = """Efficient phylogenomic software by maximum likelihood"""
+
+toolchain = {'name': 'gompi', 'version': '2023a'}
+# Including 'usempi' will take precedence and override IQTREE_FLAGS and produces only 'iqtree-mpi' binary
+
+source_urls = ['https://github.com/iqtree/iqtree2/archive/refs/tags/']
+sources = ['v%(version)s.tar.gz']
+patches = [
+ 'IQ-TREE-2.3.5_use_EB_LSD2.patch',
+]
+checksums = [
+ {'v2.3.6.tar.gz': '2d389ea74e19773496363cd68270b341ac7cc47c60e7f32859682403b34744cf'},
+ {'IQ-TREE-2.3.5_use_EB_LSD2.patch': 'b4578b01f06ae52b94b332622c0f6630497cd29cb61010f58f7c5018c2c32a5f'},
+]
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+ ('Eigen', '3.4.0'),
+]
+dependencies = [
+ ('zlib', '1.2.13'),
+ ('Boost', '1.82.0'),
+ ('LSD2', '2.4.1'),
+]
+
+local_conf_opts = ' -DUSE_LSD2=ON '
+configopts = [
+ '-DIQTREE_FLAGS=omp' + local_conf_opts,
+ '-DIQTREE_FLAGS=mpi -DCMAKE_C_COMPILER="$MPICC" -DCMAKE_CXX_COMPILER="$MPICXX"' + local_conf_opts,
+]
+
+sanity_check_paths = {
+ 'files': ['bin/iqtree2', 'bin/iqtree2-mpi'],
+ 'dirs': [],
+}
+
+sanity_check_commands = [
+ "iqtree2 --help",
+ "mkdir -p $TMPDIR/{test-omp,test-mpi}",
+ "cd $TMPDIR/test-omp && cp -a %(installdir)s/example.phy . && iqtree2 -s example.phy -redo",
+ "cd $TMPDIR/test-mpi && cp -a %(installdir)s/example.phy . && mpirun -np 1 iqtree2-mpi -s example.phy -redo",
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/i/ISA-L/ISA-L-2.31.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/i/ISA-L/ISA-L-2.31.0-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..1e79d2b10db
--- /dev/null
+++ b/easybuild/easyconfigs/i/ISA-L/ISA-L-2.31.0-GCCcore-13.3.0.eb
@@ -0,0 +1,45 @@
+# Author: Jasper Grimm (UoY)
+
+easyblock = 'ConfigureMake'
+
+name = 'ISA-L'
+version = '2.31.0'
+
+homepage = 'https://github.com/intel/isa-l'
+description = "Intelligent Storage Acceleration Library"
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+github_account = 'intel'
+source_urls = [GITHUB_LOWER_SOURCE]
+sources = ['v%(version)s.tar.gz']
+checksums = ['e218b7b2e241cfb8e8b68f54a6e5eed80968cc387c4b1af03708b54e9fb236f1']
+
+builddependencies = [
+ ('Autotools', '20231222'),
+ ('binutils', '2.42'),
+ ('pkgconf', '2.2.0'),
+]
+dependencies = [('NASM', '2.16.03')]
+
+preconfigopts = "autoreconf -i -f &&"
+
+runtest = 'check'
+
+local_bins = ['bin/igzip']
+local_includes = ['include/%(namelower)s.h']
+local_includes += ['include/isa-l/%s.h' % i for i in ['crc64', 'crc', 'erasure_code', 'gf_vect_mul', 'igzip_lib',
+ 'mem_routines', 'raid', 'test']]
+local_libs = ['lib/libisal.%s' % k for k in ['a', 'la', SHLIB_EXT]]
+
+sanity_check_paths = {
+ 'files': local_bins + local_includes + local_libs,
+ 'dirs': ['bin', 'include', 'lib', 'share'],
+}
+
+sanity_check_commands = [
+ "igzip --help",
+ "igzip --version",
+]
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/i/ISCE2/ISCE2-2.6.3-foss-2023a.eb b/easybuild/easyconfigs/i/ISCE2/ISCE2-2.6.3-foss-2023a.eb
new file mode 100644
index 00000000000..ceae2b31949
--- /dev/null
+++ b/easybuild/easyconfigs/i/ISCE2/ISCE2-2.6.3-foss-2023a.eb
@@ -0,0 +1,48 @@
+easyblock = 'CMakeMake'
+
+name = 'ISCE2'
+version = '2.6.3'
+
+homepage = 'https://github.com/isce-framework/isce2'
+description = """ISCE is a framework designed for the purpose of processing Interferometric Synthetic
+ Aperture Radar (InSAR) data. The framework aspects of it have been designed as a general software
+ development framework. It may have additional utility in a general sense for building other
+ types of software packages. In its InSAR aspect ISCE supports data from many space-borne
+ satellites and one air-borne platform."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'openmp': True}
+
+source_urls = ['https://github.com/isce-framework/isce2/archive/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['13fd55ffcadcdd723b61053241d5e49905157b0b0ac6ed8532e4faccaa6d77f1']
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+ ('FFTW', '3.3.10'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Cython', '3.0.8'),
+ ('GDAL', '3.7.1'),
+ ('motif', '2.3.8'),
+ ('OpenCV', '4.8.1', '-contrib'),
+ ('pybind11', '2.11.1'),
+]
+
+fix_python_shebang_for = ['bin/*.py']
+
+modextrapaths = {'PYTHONPATH': 'packages'}
+
+sanity_check_paths = {
+ 'files': ['bin/stripmapApp.py'],
+ 'dirs': ['packages'],
+}
+
+sanity_check_commands = [
+ "python -c 'import isce'",
+ "stripmapApp.py --help 2>&1 | grep 'ISCE VERSION = %(version)s'",
+]
+
+moduleclass = 'phys'
diff --git a/easybuild/easyconfigs/i/ImageMagick/ImageMagick-7.1.1-38-GCCcore-13.3.0.eb b/easybuild/easyconfigs/i/ImageMagick/ImageMagick-7.1.1-38-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..776471b14b2
--- /dev/null
+++ b/easybuild/easyconfigs/i/ImageMagick/ImageMagick-7.1.1-38-GCCcore-13.3.0.eb
@@ -0,0 +1,50 @@
+easyblock = 'ConfigureMake'
+
+name = 'ImageMagick'
+version = '7.1.1-38'
+
+homepage = 'https://www.imagemagick.org/'
+description = "ImageMagick is a software suite to create, edit, compose, or convert bitmap images"
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://github.com/%(name)s/%(name)s/archive/']
+sources = ['%(version)s.tar.gz']
+patches = ['ImageMagick-7.1.1-38_fix-linking.patch']
+checksums = [
+ {'7.1.1-38.tar.gz': '5e449530ccec8b85ae2bfd1ad773184fb7a4737d40fd9439db8a5d4beee4403e'},
+ {'ImageMagick-7.1.1-38_fix-linking.patch': '0fbe8e3b6621e3e0d1efec59949fecb45924bc6e65851b9b6399bb3eff8d55d9'},
+]
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('pkgconf', '2.2.0'),
+]
+dependencies = [
+ ('bzip2', '1.0.8'),
+ ('X11', '20240607'),
+ ('Ghostscript', '10.03.1'),
+ ('JasPer', '4.2.4'),
+ ('libjpeg-turbo', '3.0.1'),
+ ('LibTIFF', '4.6.0'),
+ ('LittleCMS', '2.16'),
+ ('Pango', '1.54.0'),
+ ('pixman', '0.43.4'),
+ ('FriBidi', '1.0.15'),
+]
+
+preconfigopts = 'PKG_CONFIG=$EBROOTPKGCONF/bin/pkgconf'
+configopts = "--with-gslib --with-x"
+
+sanity_check_paths = {
+ 'files': ['bin/magick'],
+ 'dirs': ['etc/%(name)s-%(version_major)s', 'include/%(name)s-%(version_major)s', 'lib', 'share'],
+}
+
+sanity_check_commands = [
+ 'magick --help',
+]
+
+modextravars = {'MAGICK_HOME': '%(installdir)s'}
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/i/ImageMagick/ImageMagick-7.1.1-38_fix-linking.patch b/easybuild/easyconfigs/i/ImageMagick/ImageMagick-7.1.1-38_fix-linking.patch
new file mode 100644
index 00000000000..2c9d54a4ac0
--- /dev/null
+++ b/easybuild/easyconfigs/i/ImageMagick/ImageMagick-7.1.1-38_fix-linking.patch
@@ -0,0 +1,27 @@
+The configure script sets this to a path inside the install location which is empty during build.
+However this path(s) is/are used by the compiler/linker to find libraries. `pkg-config` used during configure assumes this is the same during build as on invocation of itself and omits any path already contained in the variable.
+
+This combination causes build failures due to dependent libraries not being found in the link step unless there happens to be some other way the paths get pulled in. E.g. if HarfBuzz is built using (the deprecated) configure&make it has `*.la` files which contain the required link flags. If HarfBuzz is built using the new Meson build system those files are no longer present and the linker paths will be missing.
+
+As there doesn't seem to be a specific reason for the variable to be set to an empty directory in the Makefile just remove it.
+
+See https://github.com/ImageMagick/ImageMagick/pull/7613
+
+Author: Alexander Grund (TU Dresden)
+
+---
+ Makefile.in | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index 47b78566f0c..3a9761cfd5b 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -3288,7 +3288,6 @@ LIBOBJS = @LIBOBJS@
+ LIBOPENJP2_CFLAGS = @LIBOPENJP2_CFLAGS@
+ LIBOPENJP2_LIBS = @LIBOPENJP2_LIBS@
+ LIBRARY_EXTRA_CPPFLAGS = @LIBRARY_EXTRA_CPPFLAGS@
+-LIBRARY_PATH = @LIBRARY_PATH@
+ LIBS = @LIBS@
+ LIBSTDCLDFLAGS = @LIBSTDCLDFLAGS@
+ LIBTOOL = @LIBTOOL@
diff --git a/easybuild/easyconfigs/i/Imath/Imath-3.1.11-GCCcore-13.3.0.eb b/easybuild/easyconfigs/i/Imath/Imath-3.1.11-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..05efb6d6c62
--- /dev/null
+++ b/easybuild/easyconfigs/i/Imath/Imath-3.1.11-GCCcore-13.3.0.eb
@@ -0,0 +1,28 @@
+easyblock = 'CMakeMake'
+
+name = 'Imath'
+version = '3.1.11'
+
+homepage = 'https://imath.readthedocs.io/en/latest/'
+description = """
+Imath is a C++ and python library of 2D and 3D vector, matrix, and math operations for computer graphics
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/AcademySoftwareFoundation/%(namelower)s/archive/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['9057849585e49b8b85abe7cc1e76e22963b01bfdc3b6d83eac90c499cd760063']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('CMake', '3.29.3'),
+]
+
+sanity_check_paths = {
+ 'files': ['lib/libImath.%s' % SHLIB_EXT],
+ 'dirs': ['include/Imath'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/i/Infernal/Infernal-1.1.5-foss-2023a.eb b/easybuild/easyconfigs/i/Infernal/Infernal-1.1.5-foss-2023a.eb
new file mode 100644
index 00000000000..7a89f4503eb
--- /dev/null
+++ b/easybuild/easyconfigs/i/Infernal/Infernal-1.1.5-foss-2023a.eb
@@ -0,0 +1,39 @@
+##
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+#
+# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA
+# Authors:: Cedric Laczny , Fotis Georgatos
+# License:: MIT/GPL
+# Updated:: Denis Kristak (INUITS)
+# $Id$
+#
+# This work implements a part of the HPCBIOS project and is a component of the policy:
+# http://hpcbios.readthedocs.org/en/latest/HPCBIOS_2012-94.html
+##
+
+easyblock = 'ConfigureMake'
+
+name = 'Infernal'
+version = "1.1.5"
+
+homepage = 'http://eddylab.org/infernal/'
+description = """Infernal ("INFERence of RNA ALignment") is for searching DNA sequence databases
+ for RNA structure and sequence similarities."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'pic': True}
+
+source_urls = ['http://eddylab.org/%(namelower)s']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['ad4ddae02f924ca7c85bc8c4a79c9f875af8df96aeb726702fa985cbe752497f']
+
+local_bins = ['align', 'build', 'calibrate', 'convert', 'emit', 'fetch', 'press', 'scan', 'search', 'stat']
+
+sanity_check_paths = {
+ 'files': ['bin/cm%s' % x for x in local_bins],
+ 'dirs': []
+}
+
+sanity_check_commands = ['cm%s -h' % x for x in local_bins]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/i/Inspector/Inspector-2024.2.0.eb b/easybuild/easyconfigs/i/Inspector/Inspector-2024.2.0.eb
new file mode 100644
index 00000000000..0d345bc2c5e
--- /dev/null
+++ b/easybuild/easyconfigs/i/Inspector/Inspector-2024.2.0.eb
@@ -0,0 +1,19 @@
+
+name = 'Inspector'
+version = '2024.2.0'
+
+homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/inspector.html'
+description = """Intel Inspector is a dynamic memory and threading error
+ checking tool for users developing serial and parallel applications"""
+
+toolchain = SYSTEM
+
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/1549c5b3-cf23-4595-9593-b5d0460a8dcd/']
+sources = ['l_inspector_oneapi_p_%(version)s.22_offline.sh']
+checksums = ['e2aab9b1b428d0c23184beae8caac55fa3d3f973ac51a6b6908eb38b0d9097ed']
+
+dontcreateinstalldir = True
+
+requires_runtime_license = False
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/i/IsoQuant/IsoQuant-3.5.0-foss-2023a.eb b/easybuild/easyconfigs/i/IsoQuant/IsoQuant-3.5.0-foss-2023a.eb
new file mode 100644
index 00000000000..41248bcbf73
--- /dev/null
+++ b/easybuild/easyconfigs/i/IsoQuant/IsoQuant-3.5.0-foss-2023a.eb
@@ -0,0 +1,45 @@
+easyblock = 'Tarball'
+
+name = 'IsoQuant'
+version = '3.5.0'
+
+homepage = 'https://github.com/ablab/IsoQuant'
+description = """IsoQuant is a tool for the genome-based analysis of long RNA reads,
+ such as PacBio or Oxford Nanopores. IsoQuant allows to reconstruct and quantify
+ transcript models with high precision and decent recall. If the reference annotation is given,
+ IsoQuant also assigns reads to the annotated isoforms based on their intron and exon structure.
+ IsoQuant further performs annotated gene, isoform, exon and intron quantification.
+ If reads are grouped (e.g. according to cell type), counts are reported according to the provided grouping."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+source_urls = ['https://github.com/ablab/%(name)s/archive/']
+sources = [{'download_filename': 'v%(version)s.tar.gz', 'filename': '%(name)s-%(version)s.tar.gz'}]
+checksums = ['8cbba80b5eb0ed85fe0b519693157eb97820bc1d79ff44435736bf799af85c1f']
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('gffutils', '0.13'),
+ ('Biopython', '1.83'),
+ ('SciPy-bundle', '2023.07'),
+ ('pybedtools', '0.9.1'),
+ ('Pysam', '0.22.0'),
+ ('pyfaidx', '0.8.1.1'),
+ ('minimap2', '2.26'),
+ ('SAMtools', '1.18'),
+ ('PyYAML', '6.0'),
+]
+
+modextrapaths = {
+ 'PATH': '',
+ 'PYTHONPATH': '',
+}
+
+sanity_check_paths = {
+ 'files': ['isoquant.py'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["mkdir -p %(builddir)s && cd %(builddir)s && isoquant.py --test"]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/i/ilastik-napari/ilastik-napari-0.2.4-foss-2023a.eb b/easybuild/easyconfigs/i/ilastik-napari/ilastik-napari-0.2.4-foss-2023a.eb
new file mode 100644
index 00000000000..64e20f93f38
--- /dev/null
+++ b/easybuild/easyconfigs/i/ilastik-napari/ilastik-napari-0.2.4-foss-2023a.eb
@@ -0,0 +1,37 @@
+easyblock = 'PythonBundle'
+
+name = 'ilastik-napari'
+version = '0.2.4'
+
+homepage = 'https://github.com/ilastik/ilastik-napari/'
+description = "Napari plugin for interactive pixel classification."
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('SciPy-bundle', '2023.07'),
+ ('napari', '0.4.18'),
+ ('QtPy', '2.4.1'),
+ ('scikit-learn', '1.3.1'),
+ ('numba', '0.58.1'),
+ ('fastfilters', '0.3'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('sparse', '0.15.4', {
+ 'source_tmpl': '%(name)s-%(version)s-py2.py3-none-any.whl',
+ 'checksums': ['76ec76fee2aee82a84eb97155dd530a9644e3b1fdea2406bc4b454698b36d938'],
+ }),
+ (name, version, {
+ 'source_tmpl': 'ilastik_napari-%(version)s.tar.gz',
+ 'modulename': 'ilastik',
+ 'checksums': ['8e971a70389f9257eaca7561637301f996f316fdff2cb223c5828d162970bec4'],
+ }),
+]
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/i/imgaug/imgaug-0.4.1-foss-2023a.eb b/easybuild/easyconfigs/i/imgaug/imgaug-0.4.1-foss-2023a.eb
new file mode 100644
index 00000000000..2b1f0c837e5
--- /dev/null
+++ b/easybuild/easyconfigs/i/imgaug/imgaug-0.4.1-foss-2023a.eb
@@ -0,0 +1,34 @@
+easyblock = 'PythonPackage'
+
+name = 'imgaug'
+version = '0.4.1'
+
+homepage = 'https://imgaug.readthedocs.io/en/latest/'
+description = """ This python library helps you with augmenting images for your machine learning projects.
+ It converts a set of input images into a new, much larger set of slightly altered images. """
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Pillow', '10.0.0'),
+ ('matplotlib', '3.7.2'),
+ ('scikit-image', '0.22.0'),
+ ('OpenCV', '4.8.1', '-contrib'),
+ ('Shapely', '2.0.1'),
+ ('imageio', '2.33.1'),
+]
+
+source_urls = ['https://github.com/nsetzer/imgaug/archive/']
+sources = ['%(version)s.tar.gz']
+patches = ['imgaug-0.4.1_openvc_requirement.patch']
+checksums = [
+ {'0.4.1.tar.gz': 'dd9655f8d871da35c37cf674ba35c76175a77aeac517e8dafe6673c8f853115f'},
+ {'imgaug-0.4.1_openvc_requirement.patch': '0e0993322184c56115ea04262f8eacef4a86a9aa7b26c8cd67258ccaa441d8a7'},
+]
+
+download_dep_fail = True
+sanity_pip_check = True
+use_pip = True
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/i/imkl/imkl-2023.2.0-gompi-2023b.eb b/easybuild/easyconfigs/i/imkl/imkl-2023.2.0-gompi-2023b.eb
new file mode 100644
index 00000000000..e194f389253
--- /dev/null
+++ b/easybuild/easyconfigs/i/imkl/imkl-2023.2.0-gompi-2023b.eb
@@ -0,0 +1,18 @@
+name = 'imkl'
+version = '2023.2.0'
+
+homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onemkl.html'
+description = "Intel oneAPI Math Kernel Library"
+
+toolchain = {'name': 'gompi', 'version': '2023b'}
+
+# see https://software.intel.com/content/www/us/en/develop/articles/oneapi-standalone-components.html
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/adb8a02c-4ee7-4882-97d6-a524150da358/']
+sources = ['l_onemkl_p_%(version)s.49497_offline.sh']
+checksums = ['4a0d93da85a94d92e0ad35dc0fc3b3ab7f040bd55ad374c4d5ec81a57a2b872b']
+
+interfaces = False
+
+installopts = "--download-cache=%(builddir)s/cache --download-dir=%(builddir)s/download --log-dir=%(builddir)s/log"
+
+moduleclass = 'numlib'
diff --git a/easybuild/easyconfigs/i/inferCNV/inferCNV-1.21.0-foss-2023a-R-4.3.2.eb b/easybuild/easyconfigs/i/inferCNV/inferCNV-1.21.0-foss-2023a-R-4.3.2.eb
new file mode 100644
index 00000000000..7404bfe1502
--- /dev/null
+++ b/easybuild/easyconfigs/i/inferCNV/inferCNV-1.21.0-foss-2023a-R-4.3.2.eb
@@ -0,0 +1,59 @@
+easyblock = 'Bundle'
+
+name = 'inferCNV'
+version = '1.21.0'
+versionsuffix = '-R-%(rver)s'
+local_biocver = '3.18'
+local_commit = '124eec089e5d9ab5a2a2352461d03db6cdcf0ea0'
+github_account = 'broadinstitute'
+
+homepage = 'https://github.com/broadinstitute/inferCNV/wiki'
+description = """InferCNV is used to explore tumor single cell RNA-Seq data to identify evidence
+ for somatic large-scale chromosomal copy number alterations, such as gains or
+ deletions of entire chromosomes or large segments of chromosomes."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('R', '4.3.2'),
+ ('R-bundle-Bioconductor', local_biocver, '-R-%(rver)s'),
+ ('rjags', '4-15', '-R-%(rver)s'),
+]
+
+exts_default_options = {
+ 'source_urls': [
+ 'https://bioconductor.org/packages/release/bioc/src/contrib/', # current version of packages
+ 'https://bioconductor.org/packages/%s/bioc/src/contrib/' % local_biocver,
+ 'https://bioconductor.org/packages/%s/bioc/src/contrib/Archive/%%(name)s' % local_biocver,
+ 'https://bioconductor.org/packages/%s/data/annotation/src/contrib/' % local_biocver,
+ 'https://bioconductor.org/packages/%s/data/experiment/src/contrib/' % local_biocver,
+ 'https://cran.r-project.org/src/contrib/Archive/%(name)s', # package archive
+ 'https://cran.r-project.org/src/contrib/', # current version of packages
+ 'https://cran.freestatistics.org/src/contrib', # mirror alternative for current packages
+ ],
+ 'source_tmpl': '%(name)s_%(version)s.tar.gz'
+}
+
+exts_defaultclass = 'RPackage'
+
+exts_list = [
+ ('phyclust', '0.1-34', {
+ 'checksums': ['d2047030e9f24c5dc8bbb378867fbcb8e71d1f1c2ab77e9285f79f670568f5f3'],
+ }),
+ (name, version, {
+ 'modulename': '%(namelower)s',
+ 'source_urls': ['https://github.com/%(github_account)s/%(name)s/archive'],
+ 'sources': [{'download_filename': '%s.tar.gz' % local_commit, 'filename': '%(name)s-%(version)s.tar.gz'}],
+ 'checksums': ['c8886c0a7c292e28a5fb0acaab3ae00eb2b3906aa0a1d146d5931819a37daefb'],
+ }),
+]
+
+modextrapaths = {'R_LIBS_SITE': ''}
+
+sanity_check_paths = {
+ 'files': [],
+ 'dirs': ['infercnv'],
+}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/i/inih/inih-58-GCCcore-13.3.0.eb b/easybuild/easyconfigs/i/inih/inih-58-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..0837277c267
--- /dev/null
+++ b/easybuild/easyconfigs/i/inih/inih-58-GCCcore-13.3.0.eb
@@ -0,0 +1,30 @@
+easyblock = 'MesonNinja'
+
+name = 'inih'
+version = '58'
+
+homepage = 'https://dri.freedesktop.org'
+description = """Direct Rendering Manager runtime library."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://github.com/benhoyt/inih/archive/refs/tags/']
+sources = ['r%(version)s.tar.gz']
+checksums = ['e79216260d5dffe809bda840be48ab0eec7737b2bb9f02d2275c1b46344ea7b7']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('pkgconf', '2.2.0'),
+ ('Meson', '1.4.0'),
+ ('Ninja', '1.12.1'),
+]
+
+# installing manpages requires an extra build dependency (docbook xsl)
+# configopts = '-Dman-pages=disabled'
+
+sanity_check_paths = {
+ 'files': ['lib/libinih.%s' % SHLIB_EXT, 'include/ini.h'],
+ 'dirs': ['include', 'lib'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2025.0.0.eb b/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2025.0.0.eb
new file mode 100644
index 00000000000..34a1074639e
--- /dev/null
+++ b/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2025.0.0.eb
@@ -0,0 +1,37 @@
+name = 'intel-compilers'
+version = '2025.0.0'
+
+homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/hpc-toolkit.html'
+description = "Intel C, C++ & Fortran compilers"
+
+toolchain = SYSTEM
+
+# see https://software.intel.com/content/www/us/en/develop/articles/oneapi-standalone-components.html
+sources = [
+ {
+ 'source_urls': [
+ 'https://registrationcenter-download.intel.com/akdlm/IRC_NAS/ac92f2bb-4818-4e53-a432-f8b34d502f23/'
+ ],
+ 'filename': 'intel-dpcpp-cpp-compiler-%(version)s.740_offline.sh',
+ },
+ {
+ 'source_urls': [
+ 'https://registrationcenter-download.intel.com/akdlm/IRC_NAS/69f79888-2d6c-4b20-999e-e99d72af68d4/'
+ ],
+ 'filename': 'intel-fortran-compiler-%(version)s.723_offline.sh',
+ },
+]
+checksums = [
+ {'intel-dpcpp-cpp-compiler-2025.0.0.740_offline.sh':
+ '04fadf63789acee731895e631db63f65a98b8279db3d0f48bdf0d81e6103bdd8'},
+ {'intel-fortran-compiler-2025.0.0.723_offline.sh':
+ '2be6d607ce84f35921228595b118fbc516d28587cbc4e6dcf6b7219e5cd1a9a9'},
+]
+
+local_gccver = '14.2.0'
+dependencies = [
+ ('GCCcore', local_gccver),
+ ('binutils', '2.42', '', ('GCCcore', local_gccver)),
+]
+
+moduleclass = 'compiler'
diff --git a/easybuild/easyconfigs/j/JACUSA2helper/JACUSA2helper-1.9.9.9675-foss-2023a.eb b/easybuild/easyconfigs/j/JACUSA2helper/JACUSA2helper-1.9.9.9675-foss-2023a.eb
new file mode 100644
index 00000000000..4b3003c89ec
--- /dev/null
+++ b/easybuild/easyconfigs/j/JACUSA2helper/JACUSA2helper-1.9.9.9675-foss-2023a.eb
@@ -0,0 +1,36 @@
+easyblock = 'Bundle'
+
+name = 'JACUSA2helper'
+version = '1.9.9.9675'
+
+homepage = 'https://dieterich-lab.github.io/JACUSA2helper/'
+description = "Auxiliary R package for assessment of JACUSA2 results"
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('R', '4.3.2'),
+ ('R-bundle-CRAN', '2023.12'),
+ ('R-bundle-Bioconductor', '3.18', '-R-%(rver)s'),
+]
+
+exts_defaultclass = 'RPackage'
+
+exts_list = [
+ (name, version, {
+ 'source_urls': ['https://github.com/dieterich-lab/JACUSA2helper/archive/refs/tags/'],
+ 'source_tmpl': 'v%(version)s.tar.gz',
+ 'checksums': ['5c8edb96a5691c7fb2895e50eb992ebe375f8d97234039da3f5540a7a9cb4816'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': [],
+ 'dirs': [name],
+}
+
+sanity_check_commands = ['Rscript -e "library(%(name)s)"']
+
+modextrapaths = {'R_LIBS_SITE': ''}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/j/JAGS/JAGS-4.3.2-foss-2024a.eb b/easybuild/easyconfigs/j/JAGS/JAGS-4.3.2-foss-2024a.eb
new file mode 100644
index 00000000000..1077c8fc2a9
--- /dev/null
+++ b/easybuild/easyconfigs/j/JAGS/JAGS-4.3.2-foss-2024a.eb
@@ -0,0 +1,38 @@
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+# Author: Pablo Escobar Lopez
+# Swiss Institute of Bioinformatics
+# Biozentrum - University of Basel
+
+easyblock = 'ConfigureMake'
+
+name = 'JAGS'
+version = '4.3.2'
+
+homepage = 'http://mcmc-jags.sourceforge.net/'
+description = """JAGS is Just Another Gibbs Sampler. It is a program for analysis
+ of Bayesian hierarchical models using Markov Chain Monte Carlo (MCMC) simulation """
+
+toolchain = {'name': 'foss', 'version': '2024a'}
+
+source_urls = [
+ ('https://sourceforge.net/projects/mcmc-%(namelower)s/files/%(name)s/%(version_major)s.x/Source/', 'download'),
+]
+sources = [SOURCE_TAR_GZ]
+checksums = ['871f556af403a7c2ce6a0f02f15cf85a572763e093d26658ebac55c4ab472fc8']
+
+configopts = ' --with-blas="$LIBBLAS" --with-lapack="$LIBLAPACK"'
+
+
+sanity_check_paths = {
+ 'files': ['bin/%(namelower)s', 'libexec/%(namelower)s-terminal', 'lib/libjags.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["echo 'list modules' | %(namelower)s"]
+
+modextrapaths = {
+ 'JAGS_INCLUDE': 'include/%(name)s',
+ 'JAGS_LIB': 'lib',
+}
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/j/JasPer/JasPer-4.2.4-GCCcore-13.3.0.eb b/easybuild/easyconfigs/j/JasPer/JasPer-4.2.4-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..14ce45ca6ad
--- /dev/null
+++ b/easybuild/easyconfigs/j/JasPer/JasPer-4.2.4-GCCcore-13.3.0.eb
@@ -0,0 +1,36 @@
+easyblock = 'CMakeMake'
+
+name = 'JasPer'
+version = '4.2.4'
+
+homepage = 'https://www.ece.uvic.ca/~frodo/jasper/'
+
+description = """
+ The JasPer Project is an open-source initiative to provide a free
+ software-based reference implementation of the codec specified in
+ the JPEG-2000 Part-1 standard.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+github_account = 'jasper-software'
+source_urls = [GITHUB_SOURCE]
+sources = ['version-%(version)s.tar.gz']
+checksums = ['23a3d58cdeacf3abdf9fa1d81dcefee58da6ab330940790c0f27019703bfd2cd']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('CMake', '3.29.3'),
+]
+
+configopts = '-DJAS_ENABLE_DOC=OFF '
+
+sanity_check_paths = {
+ 'files': ['bin/jasper', ('lib/libjasper.%s' % SHLIB_EXT, 'lib64/libjasper.%s' % SHLIB_EXT)],
+ 'dirs': ['include'],
+}
+
+sanity_check_commands = ['jasper --version']
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/j/Java/Java-21.0.5.eb b/easybuild/easyconfigs/j/Java/Java-21.0.5.eb
new file mode 100644
index 00000000000..932318fd336
--- /dev/null
+++ b/easybuild/easyconfigs/j/Java/Java-21.0.5.eb
@@ -0,0 +1,32 @@
+name = 'Java'
+version = '21.0.5'
+local_build = '11'
+
+homepage = 'https://openjdk.org'
+description = """Java Platform, Standard Edition (Java SE) lets you develop and deploy
+Java applications on desktops and servers."""
+
+toolchain = SYSTEM
+
+local_tarball_tmpl = 'OpenJDK%%(version_major)sU-jdk_%s_linux_hotspot_%%(version)s_%s.tar.gz'
+
+# Using the Adoptium Eclipse Temurin builds, recommended by https://whichjdk.com/#distributions
+
+source_urls = ['https://github.com/adoptium/temurin%%(version_major)s-binaries/releases/download/jdk-%%(version)s+%s/'
+ % local_build]
+sources = [local_tarball_tmpl % ('%(jdkarch)s', local_build)]
+
+checksums = [
+ {
+ local_tarball_tmpl % ('x64', local_build):
+ '3c654d98404c073b8a7e66bffb27f4ae3e7ede47d13284c132d40a83144bfd8c',
+ local_tarball_tmpl % ('aarch64', local_build):
+ '6482639ed9fd22aa2e704cc366848b1b3e1586d2bf1213869c43e80bca58fe5c',
+ local_tarball_tmpl % ('ppc64le', local_build):
+ '3c6f4c358facfb6c19d90faf02bfe0fc7512d6b0e80ac18146bbd7e0d01deeef',
+ local_tarball_tmpl % ('riscv64', local_build):
+ '2f1b3e401e36de803398dfb9818861f9f14ca8ae7db650ea0946ab048fefe3b9',
+ }
+]
+
+moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/j/Java/Java-21.eb b/easybuild/easyconfigs/j/Java/Java-21.eb
index 46e84105b35..c7aef391c20 100644
--- a/easybuild/easyconfigs/j/Java/Java-21.eb
+++ b/easybuild/easyconfigs/j/Java/Java-21.eb
@@ -9,6 +9,6 @@ Java applications on desktops and servers."""
toolchain = SYSTEM
-dependencies = [('Java', '%(version)s.0.2')]
+dependencies = [('Java', '%(version)s.0.5')]
moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/j/Jellyfish/Jellyfish-2.3.1-GCC-12.3.0.eb b/easybuild/easyconfigs/j/Jellyfish/Jellyfish-2.3.1-GCC-12.3.0.eb
new file mode 100644
index 00000000000..82821a0cc38
--- /dev/null
+++ b/easybuild/easyconfigs/j/Jellyfish/Jellyfish-2.3.1-GCC-12.3.0.eb
@@ -0,0 +1,40 @@
+##
+# This is a contribution from DeepThought HPC Service, Flinders University, Adelaide, Australia
+# Homepage: https://staff.flinders.edu.au/research/deep-thought
+#
+# Authors:: Robert Qiao
+# License:: GPLv3.0
+#
+# Notes::
+##
+
+easyblock = 'ConfigureMake'
+
+name = 'Jellyfish'
+version = '2.3.1'
+
+homepage = 'http://www.genome.umd.edu/jellyfish.html'
+description = "Jellyfish is a tool for fast, memory-efficient counting of k-mers in DNA."
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+
+source_urls = ['https://github.com/gmarcais/Jellyfish/releases/download/v%(version)s']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['ee032b57257948ca0f0610883099267572c91a635eecbd88ae5d8974c2430fcd']
+
+parallel = 1
+
+# The tests for the Bloom filter are statistical tests and can randomly fail,
+# they actually don't make a lot of sense
+runtest = "check GTEST_FILTER=-'*Bloom*'"
+
+postinstallcmds = ["cp config.h %(installdir)s/include/%(namelower)s-%(version)s/%(namelower)s/"]
+
+sanity_check_paths = {
+ 'files': ['bin/jellyfish'],
+ 'dirs': []
+}
+
+modextrapaths = {'CPATH': 'include/%(namelower)s-%(version)s'}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/j/JsonCpp/JsonCpp-1.9.5-GCCcore-13.3.0.eb b/easybuild/easyconfigs/j/JsonCpp/JsonCpp-1.9.5-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..b1d3f620566
--- /dev/null
+++ b/easybuild/easyconfigs/j/JsonCpp/JsonCpp-1.9.5-GCCcore-13.3.0.eb
@@ -0,0 +1,29 @@
+easyblock = "CMakeNinja"
+
+name = 'JsonCpp'
+version = '1.9.5'
+
+homepage = 'https://open-source-parsers.github.io/jsoncpp-docs/doxygen/index.html'
+description = """ JsonCpp is a C++ library that allows manipulating JSON values,
+ including serialization and deserialization to and from strings. It can also preserve existing comment in
+ unserialization/serialization steps, making it a convenient format to store user input files. """
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://github.com/open-source-parsers/jsoncpp/archive']
+sources = ['%(version)s.tar.gz']
+checksums = ['f409856e5920c18d0c2fb85276e24ee607d2a09b5e7d5f0a371368903c275da2']
+
+builddependencies = [
+ ('CMake', '3.29.3'),
+ ('Ninja', '1.12.1'),
+ ('pkgconf', '2.2.0'),
+ ('binutils', '2.42'),
+]
+
+sanity_check_paths = {
+ 'files': ['include/json/json.h', 'lib/libjsoncpp.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/j/Judy/Judy-1.0.5-GCCcore-13.3.0.eb b/easybuild/easyconfigs/j/Judy/Judy-1.0.5-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..ad7805e7167
--- /dev/null
+++ b/easybuild/easyconfigs/j/Judy/Judy-1.0.5-GCCcore-13.3.0.eb
@@ -0,0 +1,34 @@
+easyblock = 'ConfigureMake'
+
+name = 'Judy'
+version = '1.0.5'
+
+homepage = 'http://judy.sourceforge.net/'
+description = "A C library that implements a dynamic array."
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['http://downloads.sourceforge.net/judy']
+sources = ['%(name)s-%(version)s.tar.gz']
+patches = ['Judy-1.0.5_parallel-make.patch'] # fix Make dependencies, so parallel build also works
+
+builddependencies = [
+ ('Autotools', '20231222'),
+ ('binutils', '2.42'),
+]
+checksums = [
+ 'd2704089f85fdb6f2cd7e77be21170ced4b4375c03ef1ad4cf1075bd414a63eb', # Judy-1.0.5.tar.gz
+ '14c2eba71088f3db9625dc4605c6d7183d72412d75ef6c9fd9b95186165cf009', # Judy-1.0.5_parallel-make.patch
+]
+
+preconfigopts = "sed -i 's/AM_CONFIG_HEADER/AC_CONFIG_HEADERS/g' configure.ac && "
+preconfigopts += "autoreconf -i && "
+
+configopts = '--enable-shared --enable-static'
+
+sanity_check_paths = {
+ 'files': ["include/%(name)s.h", "lib/lib%(name)s.a", "lib/lib%(name)s.la", "lib/lib%%(name)s.%s" % SHLIB_EXT],
+ 'dirs': ["share/man"]
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/j/Julia/Julia-1.10.3-linux-x86_64.eb b/easybuild/easyconfigs/j/Julia/Julia-1.10.3-linux-x86_64.eb
new file mode 100644
index 00000000000..599edfd33ea
--- /dev/null
+++ b/easybuild/easyconfigs/j/Julia/Julia-1.10.3-linux-x86_64.eb
@@ -0,0 +1,30 @@
+easyblock = 'Tarball'
+
+name = 'Julia'
+version = '1.10.3'
+versionsuffix = '-linux-x86_64'
+
+homepage = 'https://julialang.org'
+description = "Julia is a high-level, high-performance dynamic programming language for numerical computing"
+
+toolchain = SYSTEM
+
+source_urls = ['https://julialang-s3.julialang.org/bin/linux/x64/%(version_major_minor)s/']
+sources = ['%(namelower)s-%(version)s%(versionsuffix)s.tar.gz']
+patches = [('julia.wrapper', 'bin/')]
+checksums = [
+ {'julia-1.10.3-linux-x86_64.tar.gz': '81b910c922fff0e27ae1f256f2cc803db81f3960215281eddd2d484721928c70'},
+ {'julia.wrapper': 'd10aeaff53cca9875f7b0ce9218eae3bd21870b654e26c4c52aa8bfcc9da702d'},
+]
+
+# install wrapper with linking safeguards for Julia libraries
+postinstallcmds = ["cd %(installdir)s/bin && mv julia julia.bin && mv julia.wrapper julia"]
+
+sanity_check_paths = {
+ 'files': ['bin/julia', 'bin/julia.bin', 'include/julia/julia.h', 'lib/libjulia.%s' % SHLIB_EXT],
+ 'dirs': ['bin', 'etc', 'include', 'lib', 'lib/julia', 'share']
+}
+
+sanity_check_commands = ['julia --help']
+
+moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/j/Julia/Julia-1.10.4-linux-x86_64.eb b/easybuild/easyconfigs/j/Julia/Julia-1.10.4-linux-x86_64.eb
new file mode 100644
index 00000000000..767a23c33a4
--- /dev/null
+++ b/easybuild/easyconfigs/j/Julia/Julia-1.10.4-linux-x86_64.eb
@@ -0,0 +1,37 @@
+# This file is an EasyBuild reciPY as per https://easybuilders.github.io/easybuild/
+# Author: Pablo Escobar Lopez
+# sciCORE - University of Basel
+# SIB Swiss Institute of Bioinformatics
+# Updated by: Dugan Witherick, University of Warwick
+# Robert Mijakovic
+# Wahid Mainassara
+
+easyblock = 'Tarball'
+
+name = 'Julia'
+version = '1.10.4'
+versionsuffix = '-linux-x86_64'
+
+homepage = 'https://julialang.org'
+description = "Julia is a high-level, high-performance dynamic programming language for numerical computing"
+
+toolchain = SYSTEM
+
+source_urls = ['https://julialang-s3.julialang.org/bin/linux/x64/%(version_major_minor)s/']
+sources = ['%(namelower)s-%(version)s%(versionsuffix)s.tar.gz']
+patches = [('julia.wrapper', 'bin/')]
+checksums = [
+ {'julia-1.10.4-linux-x86_64.tar.gz': '079f61757c3b5b40d2ade052b3cc4816f50f7ef6df668825772562b3746adff1'},
+ {'julia.wrapper': 'd10aeaff53cca9875f7b0ce9218eae3bd21870b654e26c4c52aa8bfcc9da702d'},
+]
+
+# install wrapper with linking safeguards for Julia libraries
+postinstallcmds = ["cd %(installdir)s/bin && mv julia julia.bin && mv julia.wrapper julia"]
+
+sanity_check_paths = {
+ 'files': ['bin/julia', 'bin/julia.bin', 'include/julia/julia.h', 'lib/libjulia.%s' % SHLIB_EXT],
+ 'dirs': ['bin', 'etc', 'include', 'lib', 'lib/julia', 'share']
+}
+sanity_check_commands = ['julia --help']
+
+moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/j/Julia/Julia-1.10.5-linux-x86_64.eb b/easybuild/easyconfigs/j/Julia/Julia-1.10.5-linux-x86_64.eb
new file mode 100644
index 00000000000..4c623699101
--- /dev/null
+++ b/easybuild/easyconfigs/j/Julia/Julia-1.10.5-linux-x86_64.eb
@@ -0,0 +1,38 @@
+# This file is an EasyBuild reciPY as per https://easybuilders.github.io/easybuild/
+# Author: Pablo Escobar Lopez
+# sciCORE - University of Basel
+# SIB Swiss Institute of Bioinformatics
+# Updated by: Dugan Witherick, University of Warwick
+# Robert Mijakovic
+# Wahid Mainassara
+# Paul Melis
+
+easyblock = 'Tarball'
+
+name = 'Julia'
+version = '1.10.5'
+versionsuffix = '-linux-x86_64'
+
+homepage = 'https://julialang.org'
+description = "Julia is a high-level, high-performance dynamic programming language for numerical computing"
+
+toolchain = SYSTEM
+
+source_urls = ['https://julialang-s3.julialang.org/bin/linux/x64/%(version_major_minor)s/']
+sources = ['%(namelower)s-%(version)s%(versionsuffix)s.tar.gz']
+patches = [('julia.wrapper', 'bin/')]
+checksums = [
+ {'julia-1.10.5-linux-x86_64.tar.gz': '33497b93cf9dd65e8431024fd1db19cbfbe30bd796775a59d53e2df9a8de6dc0'},
+ {'julia.wrapper': 'd10aeaff53cca9875f7b0ce9218eae3bd21870b654e26c4c52aa8bfcc9da702d'},
+]
+
+# install wrapper with linking safeguards for Julia libraries
+postinstallcmds = ["cd %(installdir)s/bin && mv julia julia.bin && mv julia.wrapper julia"]
+
+sanity_check_paths = {
+ 'files': ['bin/julia', 'bin/julia.bin', 'include/julia/julia.h', 'lib/libjulia.%s' % SHLIB_EXT],
+ 'dirs': ['bin', 'etc', 'include', 'lib', 'lib/julia', 'share']
+}
+sanity_check_commands = ['julia --help']
+
+moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/j/Jupyter-bundle/Jupyter-bundle-20240522-GCCcore-13.2.0.eb b/easybuild/easyconfigs/j/Jupyter-bundle/Jupyter-bundle-20240522-GCCcore-13.2.0.eb
index d6ac6ce1ad0..e58d22ce229 100644
--- a/easybuild/easyconfigs/j/Jupyter-bundle/Jupyter-bundle-20240522-GCCcore-13.2.0.eb
+++ b/easybuild/easyconfigs/j/Jupyter-bundle/Jupyter-bundle-20240522-GCCcore-13.2.0.eb
@@ -19,7 +19,7 @@ dependencies = [
('JupyterNotebook', '7.2.0'),
('nbclassic', '1.0.0'),
('jupyter-server-proxy', '4.1.2'),
- # ('jupyterlmod', '5.0.0'), -- not ready yet, waiting for https://github.com/cmd-ntrf/jupyter-lmod/pull/70
+ ('jupyterlmod', '5.2.1'),
('jupyter-resource-usage', '1.0.2'),
]
diff --git a/easybuild/easyconfigs/j/JupyterLab/JupyterLab-4.2.5-GCCcore-13.3.0.eb b/easybuild/easyconfigs/j/JupyterLab/JupyterLab-4.2.5-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..abe825dfa69
--- /dev/null
+++ b/easybuild/easyconfigs/j/JupyterLab/JupyterLab-4.2.5-GCCcore-13.3.0.eb
@@ -0,0 +1,78 @@
+easyblock = 'PythonBundle'
+
+name = 'JupyterLab'
+version = '4.2.5'
+
+homepage = 'https://jupyter.org/'
+description = """JupyterLab is the next-generation user interface for Project Jupyter offering all the familiar
+ building blocks of the classic Jupyter Notebook (notebook, terminal, text editor, file browser, rich outputs,
+ etc.) in a flexible and powerful user interface. JupyterLab will eventually replace the classic Jupyter
+ Notebook."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('hatch-jupyter-builder', '0.9.1'),
+]
+dependencies = [
+ ('Python', '3.12.3'),
+ ('IPython', '8.28.0'),
+ ('jupyter-server', '2.14.2'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('json5', '0.9.25', {
+ 'checksums': ['548e41b9be043f9426776f05df8635a00fe06104ea51ed24b67f908856e151ae'],
+ }),
+ ('jupyterlab_server', '2.27.3', {
+ 'checksums': ['eb36caca59e74471988f0ae25c77945610b887f777255aa21f8065def9e51ed4'],
+ }),
+ ('jupyter-lsp', '2.2.5', {
+ 'checksums': ['793147a05ad446f809fd53ef1cd19a9f5256fd0a2d6b7ce943a982cb4f545001'],
+ }),
+ ('async-lru', '2.0.4', {
+ 'checksums': ['b8a59a5df60805ff63220b2a0c5b5393da5521b113cd5465a44eb037d81a5627'],
+ }),
+ ('h11', '0.14.0', {
+ 'checksums': ['8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d'],
+ }),
+ ('httpcore', '1.0.6', {
+ 'checksums': ['73f6dbd6eb8c21bbf7ef8efad555481853f5f6acdeaff1edb0694289269ee17f'],
+ }),
+ ('httpx', '0.27.2', {
+ 'checksums': ['f7c2be1d2f3c3c3160d441802406b206c2b76f5947b11115e6df10c6c65e66c2'],
+ }),
+ ('jupyterlab', version, {
+ 'checksums': ['ae7f3a1b8cb88b4f55009ce79fa7c06f99d70cd63601ee4aa91815d054f46f75'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/jupyter-lab', 'bin/jupyter-labextension', 'bin/jupyter-labhub'],
+ 'dirs': ['etc/jupyter', 'share/jupyter'],
+}
+
+sanity_check_commands = ['jupyter lab --help']
+
+modextrapaths = {'EB_ENV_JUPYTER_ROOT': ''}
+modextravars = {
+ # only one path allowed as JUPYTERLAB_DIR
+ 'JUPYTERLAB_DIR': '%(installdir)s/share/jupyter/lab',
+}
+
+# keep user's configuration in their home directory
+# note: '~' is not expanded by JupyterLab
+modluafooter = """
+setenv("JUPYTERLAB_SETTINGS_DIR", pathJoin(os.getenv("HOME"), ".jupyter", "lab", "user-settings"))
+setenv("JUPYTERLAB_WORKSPACES_DIR", pathJoin(os.getenv("HOME"), ".jupyter", "lab", "workspaces"))
+"""
+modtclfooter = """
+setenv JUPYTERLAB_SETTINGS_DIR "$::env(HOME)/.jupyter/lab/user-settings"
+setenv JUPYTERLAB_WORKSPACES_DIR "$::env(HOME)/.jupyter/lab/workspaces"
+"""
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/j/jax/jax-0.4.25-gfbf-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/j/jax/jax-0.4.25-gfbf-2023a-CUDA-12.1.1.eb
index c193b35c83b..75355c6c842 100644
--- a/easybuild/easyconfigs/j/jax/jax-0.4.25-gfbf-2023a-CUDA-12.1.1.eb
+++ b/easybuild/easyconfigs/j/jax/jax-0.4.25-gfbf-2023a-CUDA-12.1.1.eb
@@ -1,6 +1,7 @@
# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
# Author: Denis Kristak
# Updated by: Alex Domingo (Vrije Universiteit Brussel)
+# Updated by: Pavel Tománek (INUITS)
# Updated by: Thomas Hoffmann (EMBL Heidelberg)
easyblock = 'PythonBundle'
@@ -8,7 +9,7 @@ name = 'jax'
version = '0.4.25'
versionsuffix = '-CUDA-%(cudaver)s'
-homepage = 'https://pypi.python.org/pypi/jax'
+homepage = 'https://jax.readthedocs.io/'
description = """Composable transformations of Python+NumPy programs:
differentiate, vectorize, JIT to GPU/TPU, and more"""
@@ -18,8 +19,7 @@ cuda_compute_capabilities = ["5.0", "6.0", "6.1", "7.0", "7.5", "8.0", "8.6", "9
builddependencies = [
('Bazel', '6.3.1'),
('pytest-xdist', '3.3.1'),
- # git 2.x required to fetch repository 'io_bazel_rules_docker'
- ('git', '2.41.0', '-nodocs'),
+ ('git', '2.41.0', '-nodocs'), # bazel uses git to fetch repositories
('matplotlib', '3.7.2'), # required for tests/lobpcg_test.py
('poetry', '1.5.1'),
('pybind11', '2.11.1'),
@@ -29,23 +29,65 @@ dependencies = [
('CUDA', '12.1.1', '', SYSTEM),
('cuDNN', '8.9.2.26', versionsuffix, SYSTEM),
('NCCL', '2.18.3', versionsuffix),
- ('zlib', '1.2.13'),
('Python', '3.11.3'),
('SciPy-bundle', '2023.07'),
+ ('absl-py', '2.1.0'),
('flatbuffers-python', '23.5.26'),
('ml_dtypes', '0.3.2'),
+ ('zlib', '1.2.13'),
]
# downloading xla and other tarballs to avoid that Bazel downloads it during the build
-# note: this *must* be the exact same commit as used in third_party/{xla,"other"}/workspace.bzl
+local_extract_cmd = 'mkdir -p %(builddir)s/archives && cp %s %(builddir)s/archives'
+# note: following commits *must* be the exact same onces used upstream
+# XLA_COMMIT from jax-jaxlib: third_party/xla/workspace.bzl
local_xla_commit = '4ccfe33c71665ddcbca5b127fefe8baa3ed632d4'
+# TFRT_COMMIT from xla: third_party/tsl/third_party/tf_runtime/workspace.bzl
local_tfrt_commit = '0aeefb1660d7e37964b2bb71b1f518096bda9a25'
-local_extract_cmd = 'mkdir -p %(builddir)s/archives && cp %s %(builddir)s/archives'
-local_repo_opt = '--bazel_options="--distdir=%(builddir)s/archives" '
-local_repo_opt += '--bazel_options="--action_env=TF_SYSTEM_LIBS=pybind11" '
-local_repo_opt += '--bazel_options="--action_env=CPATH=$EBROOTPYBIND11/include" '
+# Use sources downloaded by EasyBuild
+_jaxlib_buildopts = '--bazel_options="--distdir=%(builddir)s/archives" '
+# Use dependencies from EasyBuild
+_jaxlib_buildopts += '--bazel_options="--action_env=TF_SYSTEM_LIBS=pybind11" '
+_jaxlib_buildopts += '--bazel_options="--action_env=CPATH=$EBROOTPYBIND11/include" '
+# Avoid warning (treated as error) in upb/table.c
+_jaxlib_buildopts += '--bazel_options="--copt=-Wno-maybe-uninitialized" '
+components = [
+ ('jaxlib', version, {
+ 'sources': [
+ {
+ 'source_urls': ['https://github.com/google/jax/archive/'],
+ 'filename': '%(name)s-v%(version)s.tar.gz',
+ },
+ {
+ 'source_urls': ['https://github.com/openxla/xla/archive'],
+ 'download_filename': '%s.tar.gz' % local_xla_commit,
+ 'filename': 'xla-%s.tar.gz' % local_xla_commit[:8],
+ 'extract_cmd': local_extract_cmd,
+ },
+ {
+ 'source_urls': ['https://github.com/tensorflow/runtime/archive'],
+ 'download_filename': '%s.tar.gz' % local_tfrt_commit,
+ 'filename': 'tf_runtime-%s.tar.gz' % local_tfrt_commit[:8],
+ 'extract_cmd': local_extract_cmd,
+ },
+ ],
+ 'patches': ['jax-0.4.25_fix-pybind11-systemlib.patch'],
+ 'checksums': [
+ {'jaxlib-v0.4.25.tar.gz':
+ 'fc1197c401924942eb14185a61688d0c476e3e81ff71f9dc95e620b57c06eec8'},
+ {'xla-4ccfe33c.tar.gz':
+ '8a59b9af7d0850059d7043f7043c780066d61538f3af536e8a10d3d717f35089'},
+ {'tf_runtime-0aeefb16.tar.gz':
+ 'a3df827d7896774cb1d80bf4e1c79ab05c268f29bd4d3db1fb5a4b9c2079d8e3'},
+ {'jax-0.4.25_fix-pybind11-systemlib.patch':
+ 'daad5b726d1a138431b05eb60ecf4c89c7b5148eb939721800bdf43d804ca033'},
+ ],
+ 'start_dir': 'jax-jaxlib-v%(version)s',
+ 'buildopts': _jaxlib_buildopts
+ }),
+]
# Some tests require an isolated run:
local_isolated_tests = [
@@ -74,71 +116,20 @@ local_test += ' && '.join(['pytest -vv %s' % x for x in local_isolated_tests])
use_pip = True
-default_easyblock = 'PythonPackage'
-default_component_specs = {
- 'sources': [SOURCE_TAR_GZ],
- 'source_urls': [PYPI_SOURCE],
- 'start_dir': '%(name)s-%(version)s',
- 'use_pip': True,
- 'sanity_pip_check': True,
- 'download_dep_fail': True,
-}
-
-components = [
- ('absl-py', '2.1.0', {
- 'options': {'modulename': 'absl'},
- 'checksums': ['7820790efbb316739cde8b4e19357243fc3608a152024288513dd968d7d959ff'],
- }),
- ('jaxlib', version, {
- 'sources': [
- '%(name)s-v%(version)s.tar.gz',
- {
- 'download_filename': '%s.tar.gz' % local_xla_commit,
- 'filename': 'xla-%s.tar.gz' % local_xla_commit,
- 'extract_cmd': local_extract_cmd,
- },
- {
- 'download_filename': '%s.tar.gz' % local_tfrt_commit,
- 'filename': 'tf_runtime-%s.tar.gz' % local_tfrt_commit,
- 'extract_cmd': local_extract_cmd,
- },
- ],
- 'source_urls': [
- 'https://github.com/google/jax/archive/',
- 'https://github.com/tensorflow/runtime/archive',
- 'https://github.com/openxla/xla/archive'
- ],
- 'patches': ['jax-0.4.25_fix-pybind11-systemlib.patch'],
- 'checksums': [
- {'jaxlib-v0.4.25.tar.gz':
- 'fc1197c401924942eb14185a61688d0c476e3e81ff71f9dc95e620b57c06eec8'},
- {'xla-4ccfe33c71665ddcbca5b127fefe8baa3ed632d4.tar.gz':
- '8a59b9af7d0850059d7043f7043c780066d61538f3af536e8a10d3d717f35089'},
- {'tf_runtime-0aeefb1660d7e37964b2bb71b1f518096bda9a25.tar.gz':
- 'a3df827d7896774cb1d80bf4e1c79ab05c268f29bd4d3db1fb5a4b9c2079d8e3'},
- {'jax-0.4.25_fix-pybind11-systemlib.patch':
- 'daad5b726d1a138431b05eb60ecf4c89c7b5148eb939721800bdf43d804ca033'},
- ],
- 'start_dir': 'jax-jaxlib-v%(version)s',
- # Avoid warning (treated as error) in upb/table.c
- 'buildopts': local_repo_opt + ' --bazel_options="--copt=-Wno-maybe-uninitialized"'
- }),
-]
-
exts_list = [
(name, version, {
- 'patches': ['jax-0.4.25_fix_env_test_no_log_spam.patch'],
- 'runtest': local_test,
'source_tmpl': '%(name)s-v%(version)s.tar.gz',
'source_urls': ['https://github.com/google/jax/archive/'],
+ 'patches': ['jax-0.4.25_fix_env_test_no_log_spam.patch'],
'checksums': [
{'jax-v0.4.25.tar.gz': '8b30af49688c0c13b82c6f5ce992727c00b5fc6d04a4c6962012f4246fa664eb'},
{'jax-0.4.25_fix_env_test_no_log_spam.patch':
'a18b5f147569d9ad41025124333a0f04fd0d0e0f9e4309658d7f6b9b838e2e2a'},
],
+ 'runtest': local_test,
}),
]
sanity_pip_check = True
-moduleclass = 'tools'
+moduleclass = 'ai'
diff --git a/easybuild/easyconfigs/j/jax/jax-0.4.25-foss-2023a.eb b/easybuild/easyconfigs/j/jax/jax-0.4.25-gfbf-2023a.eb
similarity index 53%
rename from easybuild/easyconfigs/j/jax/jax-0.4.25-foss-2023a.eb
rename to easybuild/easyconfigs/j/jax/jax-0.4.25-gfbf-2023a.eb
index 64a723ffe37..a4a86382ad6 100644
--- a/easybuild/easyconfigs/j/jax/jax-0.4.25-foss-2023a.eb
+++ b/easybuild/easyconfigs/j/jax/jax-0.4.25-gfbf-2023a.eb
@@ -1,8 +1,8 @@
# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
# Author: Denis Kristak
-# Updated by: Alex Domingo (Vrije Universiteit Brussel), Pavel Tománek (INUITS)
-# Update v0.4.25 based on: https://github.com/easybuilders/easybuild-easyconfigs/pull/20119
-
+# Updated by: Alex Domingo (Vrije Universiteit Brussel)
+# Updated by: Pavel Tománek (INUITS)
+# Updated by: Thomas Hoffmann (EMBL Heidelberg)
easyblock = 'PythonBundle'
name = 'jax'
@@ -12,14 +12,13 @@ homepage = 'https://jax.readthedocs.io/'
description = """Composable transformations of Python+NumPy programs:
differentiate, vectorize, JIT to GPU/TPU, and more"""
-toolchain = {'name': 'foss', 'version': '2023a'}
+toolchain = {'name': 'gfbf', 'version': '2023a'}
builddependencies = [
('Bazel', '6.3.1'),
('pytest-xdist', '3.3.1'),
- # git 2.x required to fetch repository 'io_bazel_rules_docker'
- ('git', '2.41.0', '-nodocs'),
- ('matplotlib', '3.7.2'),
+ ('git', '2.41.0', '-nodocs'), # bazel uses git to fetch repositories
+ ('matplotlib', '3.7.2'), # required for tests/lobpcg_test.py
('poetry', '1.5.1'),
('pybind11', '2.11.1'),
]
@@ -27,86 +26,84 @@ builddependencies = [
dependencies = [
('Python', '3.11.3'),
('SciPy-bundle', '2023.07'),
- ('zlib', '1.2.13'),
+ ('absl-py', '2.1.0'),
('flatbuffers-python', '23.5.26'),
('ml_dtypes', '0.3.2'),
+ ('zlib', '1.2.13'),
]
-use_pip = True
-
+# downloading xla and other tarballs to avoid that Bazel downloads it during the build
+local_extract_cmd = 'mkdir -p %(builddir)s/archives && cp %s %(builddir)s/archives'
+# note: following commits *must* be the exact same onces used upstream
+# XLA_COMMIT from jax-jaxlib: third_party/xla/workspace.bzl
local_xla_commit = '4ccfe33c71665ddcbca5b127fefe8baa3ed632d4'
+# TFRT_COMMIT from xla: third_party/tsl/third_party/tf_runtime/workspace.bzl
local_tfrt_commit = '0aeefb1660d7e37964b2bb71b1f518096bda9a25'
-local_extract_cmd = 'cp %s %(builddir)s/archives'
-
-local_repo_opt = '--bazel_options="--distdir=%(builddir)s/archives" '
-local_repo_opt += '--bazel_options="--action_env=TF_SYSTEM_LIBS=pybind11" '
-local_repo_opt += '--bazel_options="--action_env=CPATH=$EBROOTPYBIND11/include" '
-
-default_easyblock = 'PythonPackage'
-default_component_specs = {
- 'sources': [SOURCE_TAR_GZ],
- 'source_urls': [PYPI_SOURCE],
- 'start_dir': '%(name)s-%(version)s',
- 'use_pip': True,
- 'sanity_pip_check': True,
- 'download_dep_fail': True,
-}
+# Use sources downloaded by EasyBuild
+_jaxlib_buildopts = '--bazel_options="--distdir=%(builddir)s/archives" '
+# Use dependencies from EasyBuild
+_jaxlib_buildopts += '--bazel_options="--action_env=TF_SYSTEM_LIBS=pybind11" '
+_jaxlib_buildopts += '--bazel_options="--action_env=CPATH=$EBROOTPYBIND11/include" '
+# Avoid warning (treated as error) in upb/table.c
+_jaxlib_buildopts += '--bazel_options="--copt=-Wno-maybe-uninitialized" '
components = [
- ('absl-py', '2.1.0', {
- 'options': {'modulename': 'absl'},
- 'checksums': ['7820790efbb316739cde8b4e19357243fc3608a152024288513dd968d7d959ff'],
- }),
('jaxlib', version, {
'sources': [
- '%(name)s-v%(version)s.tar.gz',
{
+ 'source_urls': ['https://github.com/google/jax/archive/'],
+ 'filename': '%(name)s-v%(version)s.tar.gz',
+ },
+ {
+ 'source_urls': ['https://github.com/openxla/xla/archive'],
'download_filename': '%s.tar.gz' % local_xla_commit,
- 'filename': 'xla-%s.tar.gz' % local_xla_commit,
+ 'filename': 'xla-%s.tar.gz' % local_xla_commit[:8],
'extract_cmd': local_extract_cmd,
},
{
+ 'source_urls': ['https://github.com/tensorflow/runtime/archive'],
'download_filename': '%s.tar.gz' % local_tfrt_commit,
- 'filename': 'tf_runtime-%s.tar.gz' % local_tfrt_commit,
+ 'filename': 'tf_runtime-%s.tar.gz' % local_tfrt_commit[:8],
'extract_cmd': local_extract_cmd,
},
],
- 'source_urls': [
- 'https://github.com/google/jax/archive/',
- 'https://github.com/tensorflow/runtime/archive',
- 'https://github.com/openxla/xla/archive'
- ],
'patches': ['jax-0.4.25_fix-pybind11-systemlib.patch'],
'checksums': [
{'jaxlib-v0.4.25.tar.gz':
'fc1197c401924942eb14185a61688d0c476e3e81ff71f9dc95e620b57c06eec8'},
- {'xla-4ccfe33c71665ddcbca5b127fefe8baa3ed632d4.tar.gz':
+ {'xla-4ccfe33c.tar.gz':
'8a59b9af7d0850059d7043f7043c780066d61538f3af536e8a10d3d717f35089'},
- {'tf_runtime-0aeefb1660d7e37964b2bb71b1f518096bda9a25.tar.gz':
+ {'tf_runtime-0aeefb16.tar.gz':
'a3df827d7896774cb1d80bf4e1c79ab05c268f29bd4d3db1fb5a4b9c2079d8e3'},
{'jax-0.4.25_fix-pybind11-systemlib.patch':
'daad5b726d1a138431b05eb60ecf4c89c7b5148eb939721800bdf43d804ca033'},
],
'start_dir': 'jax-jaxlib-v%(version)s',
- # Avoid warning (treated as error) in upb/table.c
- 'buildopts': local_repo_opt + ' --bazel_options="--copt=-Wno-maybe-uninitialized"'
+ 'buildopts': _jaxlib_buildopts
}),
]
+use_pip = True
+
exts_list = [
(name, version, {
+ 'sources': [
+ {
+ 'source_urls': ['https://github.com/google/jax/archive/'],
+ 'filename': '%(name)s-v%(version)s.tar.gz',
+ },
+ ],
'patches': ['jax-0.4.25_fix_env_test_no_log_spam.patch'],
- 'source_tmpl': '%(name)s-v%(version)s.tar.gz',
- 'source_urls': ['https://github.com/google/jax/archive/'],
'checksums': [
{'jax-v0.4.25.tar.gz': '8b30af49688c0c13b82c6f5ce992727c00b5fc6d04a4c6962012f4246fa664eb'},
{'jax-0.4.25_fix_env_test_no_log_spam.patch':
'a18b5f147569d9ad41025124333a0f04fd0d0e0f9e4309658d7f6b9b838e2e2a'},
],
+ 'runtest': "pytest -n %(parallel)s tests",
}),
]
sanity_pip_check = True
-moduleclass = 'tools'
+moduleclass = 'ai'
diff --git a/easybuild/easyconfigs/j/jedi/jedi-0.18.1-GCCcore-11.3.0.eb b/easybuild/easyconfigs/j/jedi/jedi-0.18.1-GCCcore-11.3.0.eb
index 5b2a8950603..daf043bb1a5 100644
--- a/easybuild/easyconfigs/j/jedi/jedi-0.18.1-GCCcore-11.3.0.eb
+++ b/easybuild/easyconfigs/j/jedi/jedi-0.18.1-GCCcore-11.3.0.eb
@@ -3,9 +3,11 @@ easyblock = 'PythonBundle'
name = 'jedi'
version = "0.18.1"
-homepage = 'https://jedi.readthedocs.io/en/latest/'
+homepage = 'https://github.com/davidhalter/jedi'
description = """
- Jedi is a static analysis tool for Python that is typically used in IDEs/editors plugins.
+ Jedi - an awesome autocompletion, static analysis and refactoring library for Python.
+ It is typically used in IDEs/editors plugins. Jedi has a focus on autocompletion and goto functionality.
+ Other features include refactoring, code search and finding references.
"""
toolchain = {'name': 'GCCcore', 'version': '11.3.0'}
@@ -29,9 +31,4 @@ exts_list = [
}),
]
-sanity_check_paths = {
- 'files': [],
- 'dirs': ['lib'],
-}
-
moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/j/jedi/jedi-0.19.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/j/jedi/jedi-0.19.0-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..fcdb1b6305b
--- /dev/null
+++ b/easybuild/easyconfigs/j/jedi/jedi-0.19.0-GCCcore-12.3.0.eb
@@ -0,0 +1,34 @@
+easyblock = 'PythonBundle'
+
+name = 'jedi'
+version = "0.19.0"
+
+homepage = 'https://github.com/davidhalter/jedi'
+description = """
+ Jedi - an awesome autocompletion, static analysis and refactoring library for Python.
+ It is typically used in IDEs/editors plugins. Jedi has a focus on autocompletion and goto functionality.
+ Other features include refactoring, code search and finding references.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+builddependencies = [
+ ('binutils', '2.40'),
+]
+dependencies = [
+ ('Python', '3.11.3'),
+]
+
+sanity_pip_check = True
+use_pip = True
+
+exts_list = [
+ ('parso', '0.8.3', {
+ 'checksums': ['8c07be290bb59f03588915921e29e8a50002acaf2cdc5fa0e0114f91709fafa0'],
+ }),
+ (name, version, {
+ 'checksums': ['bcf9894f1753969cbac8022a8c2eaee06bfa3724e4192470aaffe7eb6272b0c4'],
+ }),
+]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/j/jedi/jedi-0.19.1-GCCcore-13.2.0.eb b/easybuild/easyconfigs/j/jedi/jedi-0.19.1-GCCcore-13.2.0.eb
index eca3a2e905d..a0891f77c33 100644
--- a/easybuild/easyconfigs/j/jedi/jedi-0.19.1-GCCcore-13.2.0.eb
+++ b/easybuild/easyconfigs/j/jedi/jedi-0.19.1-GCCcore-13.2.0.eb
@@ -6,6 +6,8 @@ version = "0.19.1"
homepage = 'https://github.com/davidhalter/jedi'
description = """
Jedi - an awesome autocompletion, static analysis and refactoring library for Python.
+ It is typically used in IDEs/editors plugins. Jedi has a focus on autocompletion and goto functionality.
+ Other features include refactoring, code search and finding references.
"""
toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
@@ -29,9 +31,4 @@ exts_list = [
}),
]
-sanity_check_paths = {
- 'files': [],
- 'dirs': ['lib/python3.11/site-packages/jedi'],
-}
-
moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/j/jedi/jedi-0.19.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/j/jedi/jedi-0.19.1-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..b477ad70774
--- /dev/null
+++ b/easybuild/easyconfigs/j/jedi/jedi-0.19.1-GCCcore-13.3.0.eb
@@ -0,0 +1,32 @@
+easyblock = 'PythonBundle'
+
+name = 'jedi'
+version = "0.19.1"
+
+homepage = 'https://github.com/davidhalter/jedi'
+description = """
+ Jedi - an awesome autocompletion, static analysis and refactoring library for Python.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+dependencies = [
+ ('Python', '3.12.3'),
+]
+
+sanity_pip_check = True
+use_pip = True
+
+exts_list = [
+ ('parso', '0.8.3', {
+ 'checksums': ['8c07be290bb59f03588915921e29e8a50002acaf2cdc5fa0e0114f91709fafa0'],
+ }),
+ (name, version, {
+ 'checksums': ['cf0496f3651bc65d7174ac1b7d043eff454892c708a87d1b683e57b569927ffd'],
+ }),
+]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/j/jemalloc/jemalloc-5.3.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/j/jemalloc/jemalloc-5.3.0-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..023c3001dd3
--- /dev/null
+++ b/easybuild/easyconfigs/j/jemalloc/jemalloc-5.3.0-GCCcore-13.3.0.eb
@@ -0,0 +1,37 @@
+easyblock = 'ConfigureMake'
+
+name = 'jemalloc'
+version = '5.3.0'
+
+homepage = 'http://jemalloc.net'
+description = """jemalloc is a general purpose malloc(3) implementation that emphasizes fragmentation avoidance and
+ scalable concurrency support."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://github.com/jemalloc/jemalloc/archive']
+sources = ['%(version)s.tar.gz']
+checksums = ['ef6f74fd45e95ee4ef7f9e19ebe5b075ca6b7fbe0140612b2a161abafb7ee179']
+
+builddependencies = [
+ ('Autotools', '20231222'),
+ ('binutils', '2.42'),
+]
+
+# From version 5.2.1 (or maybe earlier) it does no longer build,
+# nor try to install, documentation if xsltproc is missing.
+# So we can use normal installation.
+preconfigopts = "./autogen.sh && "
+configopts = "--with-version=%(version)s-0-g0000 " # build with version info
+
+sanity_check_paths = {
+ 'files': ['bin/jeprof', 'lib/libjemalloc.a', 'lib/libjemalloc_pic.a', 'lib/libjemalloc.%s' % SHLIB_EXT,
+ 'include/jemalloc/jemalloc.h'],
+ 'dirs': [],
+}
+
+# jemalloc can be used via $LD_PRELOAD, but we don't enable this by
+# default, you need to opt-in to it
+# modextrapaths = {'LD_PRELOAD': ['lib/libjemalloc.%s' % SHLIB_EXT]}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/j/joypy/joypy-0.2.6-foss-2023a.eb b/easybuild/easyconfigs/j/joypy/joypy-0.2.6-foss-2023a.eb
new file mode 100644
index 00000000000..db6e77ea520
--- /dev/null
+++ b/easybuild/easyconfigs/j/joypy/joypy-0.2.6-foss-2023a.eb
@@ -0,0 +1,28 @@
+# Author: Pavel Grochal (INUITS)
+# License: GPLv2
+# Update: Petr Král (INUITS)
+
+easyblock = 'PythonPackage'
+
+name = 'joypy'
+version = '0.2.6'
+
+homepage = 'https://github.com/sbebo/joypy'
+description = "Joyplots in Python with matplotlib & pandas"
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+sources = [SOURCE_WHL]
+checksums = ['fffe882e8281e56e08b374a3148436cb448562ba39e4d566204c7e8ee2caddab']
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('matplotlib', '3.7.2'),
+]
+
+download_dep_fail = True
+use_pip = True
+sanity_pip_check = True
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/j/json-c/json-c-0.17-GCCcore-13.3.0.eb b/easybuild/easyconfigs/j/json-c/json-c-0.17-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..87642888aa1
--- /dev/null
+++ b/easybuild/easyconfigs/j/json-c/json-c-0.17-GCCcore-13.3.0.eb
@@ -0,0 +1,32 @@
+easyblock = 'CMakeMake'
+
+name = 'json-c'
+version = '0.17'
+local_suff = '-20230812'
+
+homepage = 'https://github.com/json-c/json-c'
+description = """JSON-C implements a reference counting object model that allows you to easily construct JSON objects
+ in C, output them as JSON formatted strings and parse JSON formatted strings back into the C representation of JSON
+objects."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://github.com/json-c/json-c/archive/']
+sources = ['json-c-%%(version)s%s.tar.gz' % local_suff]
+checksums = ['024d302a3aadcbf9f78735320a6d5aedf8b77876c8ac8bbb95081ca55054c7eb']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('CMake', '3.29.3'),
+]
+
+# disable using Valgrind during the tests to avoid failures caused by using an OS Valgrind
+pretestopts = 'USE_VALGRIND=0 '
+runtest = 'test'
+
+sanity_check_paths = {
+ 'files': ['lib/libjson-c.a', 'lib/libjson-c.%s' % SHLIB_EXT, 'lib/pkgconfig/json-c.pc'],
+ 'dirs': ['include/json-c'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/j/json-fortran/json-fortran-9.0.2-GCC-12.3.0.eb b/easybuild/easyconfigs/j/json-fortran/json-fortran-9.0.2-GCC-12.3.0.eb
new file mode 100644
index 00000000000..03dceec3b87
--- /dev/null
+++ b/easybuild/easyconfigs/j/json-fortran/json-fortran-9.0.2-GCC-12.3.0.eb
@@ -0,0 +1,32 @@
+# J. Sassmannshausen (Imperial College London/UK)
+
+easyblock = 'CMakeMake'
+
+name = 'json-fortran'
+version = '9.0.2'
+
+homepage = 'https://github.com/jacobwilliams/json-fortran'
+description = "JSON-Fortran: A Modern Fortran JSON API"
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+
+source_urls = ['https://github.com/jacobwilliams/json-fortran/archive/']
+sources = ['%(version)s.tar.gz']
+checksums = ['a599a77e406e59cdb7672d780e69156b6ce57cb8ce515d21d1744c4065a85976']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('CMake', '3.26.3'),
+]
+
+configopts = '-DUSE_GNU_INSTALL_CONVENTION=TRUE'
+
+runtest = 'check'
+
+sanity_check_paths = {
+ 'files': ['lib/libjsonfortran.a', 'lib/libjsonfortran.%s' % SHLIB_EXT,
+ 'include/json_module.mod', 'include/json_parameters.mod'],
+ 'dirs': ['include'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/j/json-fortran/json-fortran-9.0.2-GCC-13.2.0.eb b/easybuild/easyconfigs/j/json-fortran/json-fortran-9.0.2-GCC-13.2.0.eb
new file mode 100644
index 00000000000..3b32a332d54
--- /dev/null
+++ b/easybuild/easyconfigs/j/json-fortran/json-fortran-9.0.2-GCC-13.2.0.eb
@@ -0,0 +1,32 @@
+# J. Sassmannshausen (Imperial College London/UK)
+
+easyblock = 'CMakeMake'
+
+name = 'json-fortran'
+version = '9.0.2'
+
+homepage = 'https://github.com/jacobwilliams/json-fortran'
+description = "JSON-Fortran: A Modern Fortran JSON API"
+
+toolchain = {'name': 'GCC', 'version': '13.2.0'}
+
+source_urls = ['https://github.com/jacobwilliams/json-fortran/archive/']
+sources = ['%(version)s.tar.gz']
+checksums = ['a599a77e406e59cdb7672d780e69156b6ce57cb8ce515d21d1744c4065a85976']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('CMake', '3.27.6'),
+]
+
+configopts = '-DUSE_GNU_INSTALL_CONVENTION=TRUE'
+
+runtest = 'check'
+
+sanity_check_paths = {
+ 'files': ['lib/libjsonfortran.a', 'lib/libjsonfortran.%s' % SHLIB_EXT,
+ 'include/json_module.mod', 'include/json_parameters.mod'],
+ 'dirs': ['include'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/j/junos-eznc/junos-eznc-2.7.1-GCCcore-12.3.0.eb b/easybuild/easyconfigs/j/junos-eznc/junos-eznc-2.7.1-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..ceaec648de3
--- /dev/null
+++ b/easybuild/easyconfigs/j/junos-eznc/junos-eznc-2.7.1-GCCcore-12.3.0.eb
@@ -0,0 +1,54 @@
+easyblock = 'PythonBundle'
+
+name = 'junos-eznc'
+version = '2.7.1'
+
+homepage = 'https://github.com/Juniper/py-junos-eznc'
+description = "Python library for Junos automation."
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+builddependencies = [('binutils', '2.40')]
+dependencies = [
+ ('Python', '3.11.3'),
+ ('lxml', '4.9.2'),
+ ('PyYAML', '6.0'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('bcrypt', '4.0.1'),
+]
+
+exts_list = [
+ ('yamlordereddictloader', '0.4.2', {
+ 'checksums': ['36af2f6210fcff5da4fc4c12e1d815f973dceb41044e795e1f06115d634bca13'],
+ }),
+ ('transitions', '0.9.2', {
+ 'checksums': ['2f8490dbdbd419366cef1516032ab06d07ccb5839ef54905e842a472692d4204'],
+ }),
+ ('scp', '0.15.0', {
+ 'checksums': ['f1b22e9932123ccf17eebf19e0953c6e9148f589f93d91b872941a696305c83f'],
+ }),
+ ('pyserial', '3.5', {
+ 'modulename': 'serial',
+ 'checksums': ['3c77e014170dfffbd816e6ffc205e9842efb10be9f58ec16d3e8675b4925cddb'],
+ }),
+ ('ncclient', '0.6.15', {
+ 'checksums': ['6757cb41bc9160dfe47f22f5de8cf2f1adf22f27463fb50453cc415ab96773d8'],
+ }),
+ ('paramiko', '3.4.0', {
+ # Juniper fork of paramiko - compatible with junos-eznc
+ 'source_urls': ['https://github.com/Juniper/paramiko/archive/'],
+ 'sources': [{'download_filename': 'v%(version)s-JNPR.tar.gz', 'filename': '%(name)s-%(version)s-JNPR.tar.gz'}],
+ 'checksums': ['6b3b62e18a2b693169eaa50a7cdd2ab5637fc423205ce85e109cb37722f9eeda'],
+ }),
+ (name, version, {
+ 'modulename': 'jnpr.junos',
+ # delete 'os.system("pip install git+https://github.com/Juniper/paramiko.git@v3.4.0-JNPR")' from setup.py
+ 'preinstallopts': "sed -i '/pip install/d' setup.py && ",
+ 'checksums': ['371f0298bf03e0cb4c017c43f6f4122263584eda0d690d0112e93f13daae41ac'],
+ }),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/j/jupyter-server/jupyter-server-2.14.2-GCCcore-13.3.0.eb b/easybuild/easyconfigs/j/jupyter-server/jupyter-server-2.14.2-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..e7bc1dceeb0
--- /dev/null
+++ b/easybuild/easyconfigs/j/jupyter-server/jupyter-server-2.14.2-GCCcore-13.3.0.eb
@@ -0,0 +1,185 @@
+easyblock = 'PythonBundle'
+
+name = 'jupyter-server'
+version = "2.14.2"
+
+homepage = 'https://jupyter.org/'
+description = """The Jupyter Server provides the backend (i.e. the core services, APIs, and REST
+endpoints) for Jupyter web applications like Jupyter notebook, JupyterLab, and
+Voila."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('maturin', '1.6.0'), # needed by rpds_py
+ ('hatch-jupyter-builder', '0.9.1'),
+]
+dependencies = [
+ ('Python', '3.12.3'),
+ ('IPython', '8.28.0'),
+ ('PyYAML', '6.0.2'),
+ ('PyZMQ', '26.2.0'),
+ ('tornado', '6.4.1'),
+ ('BeautifulSoup', '4.12.3'), # needed by nbconvert
+]
+
+sanity_pip_check = True
+use_pip = True
+
+# WARNING: the versions of ipywidgets, widgetsnbextension and jupyterlab_widgets are tied between them
+# use the versions published in a single release commit instead of blindly pushing to last available version,
+# see for instance https://github.com/jupyter-widgets/ipywidgets/commit/b728926f58ed3ffef08f716998ac6c226dafc1aa
+
+exts_list = [
+ ('websocket_client', '1.8.0', {
+ 'modulename': 'websocket',
+ 'checksums': ['3239df9f44da632f96012472805d40a23281a991027ce11d2f45a6f24ac4c3da'],
+ }),
+ ('terminado', '0.18.1', {
+ 'checksums': ['de09f2c4b85de4765f7714688fff57d3e75bad1f909b589fde880460c753fd2e'],
+ }),
+ ('Send2Trash', '1.8.3', {
+ 'checksums': ['b18e7a3966d99871aefeb00cfbcfdced55ce4871194810fc71f4aa484b953abf'],
+ }),
+ ('prometheus_client', '0.21.0', {
+ 'checksums': ['96c83c606b71ff2b0a433c98889d275f51ffec6c5e267de37c7a2b5c9aa9233e'],
+ }),
+ ('overrides', '7.7.0', {
+ 'checksums': ['55158fa3d93b98cc75299b1e67078ad9003ca27945c76162c1c0766d6f91820a'],
+ }),
+ ('jupyter_core', '5.7.2', {
+ 'patches': ['jupyter-core-%(version)s_fix_jupyter_path.patch'],
+ 'checksums': [
+ {'jupyter_core-5.7.2.tar.gz': 'aa5f8d32bbf6b431ac830496da7392035d6f61b4f54872f15c4bd2a9c3f536d9'},
+ {'jupyter-core-5.7.2_fix_jupyter_path.patch':
+ '1ed5088728c1ad49687b66e31ed23965c36645ad285693785b2b96c4ff1b2f93'},
+ ],
+ }),
+ ('fastjsonschema', '2.20.0', {
+ 'checksums': ['3d48fc5300ee96f5d116f10fe6f28d938e6008f59a6a025c2649475b87f76a23'],
+ }),
+ ('tinycss2', '1.3.0', {
+ 'checksums': ['152f9acabd296a8375fbca5b84c961ff95971fcfc32e79550c8df8e29118c54d'],
+ }),
+ ('pandocfilters', '1.5.1', {
+ 'checksums': ['002b4a555ee4ebc03f8b66307e287fa492e4a77b4ea14d3f934328297bb4939e'],
+ }),
+ ('mistune', '3.0.2', {
+ 'checksums': ['fc7f93ded930c92394ef2cb6f04a8aabab4117a91449e72dcc8dfa646a508be8'],
+ }),
+ ('deprecation', '2.1.0', {
+ 'checksums': ['72b3bde64e5d778694b0cf68178aed03d15e15477116add3fb773e581f9518ff'],
+ }),
+ ('jupyter_packaging', '0.12.3', {
+ 'checksums': ['9d9b2b63b97ffd67a8bc5391c32a421bc415b264a32c99e4d8d8dd31daae9cf4'],
+ }),
+ ('jupyterlab_pygments', '0.3.0', {
+ 'checksums': ['721aca4d9029252b11cfa9d185e5b5af4d54772bb8072f9b7036f4170054d35d'],
+ }),
+ ('defusedxml', '0.7.1', {
+ 'checksums': ['1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69'],
+ }),
+ ('bleach', '6.1.0', {
+ 'checksums': ['0a31f1837963c41d46bbf1331b8778e1308ea0791db03cc4e7357b97cf42a8fe'],
+ }),
+ ('nbformat', '5.10.4', {
+ 'checksums': ['322168b14f937a5d11362988ecac2a4952d3d8e3a2cbeb2319584631226d5b3a'],
+ }),
+ ('nbclient', '0.10.0', {
+ 'checksums': ['4b3f1b7dba531e498449c4db4f53da339c91d449dc11e9af3a43b4eb5c5abb09'],
+ }),
+ ('jupyter_client', '8.6.3', {
+ 'checksums': ['35b3a0947c4a6e9d589eb97d7d4cd5e90f910ee73101611f01283732bd6d9419'],
+ }),
+ ('nbconvert', '7.16.4', {
+ 'checksums': ['86ca91ba266b0a448dc96fa6c5b9d98affabde2867b363258703536807f9f7f4'],
+ }),
+ ('jupyter_server_terminals', '0.5.3', {
+ 'checksums': ['5ae0295167220e9ace0edcfdb212afd2b01ee8d179fe6f23c899590e9b8a5269'],
+ }),
+ ('rfc3986_validator', '0.1.1', {
+ 'checksums': ['3d44bde7921b3b9ec3ae4e3adca370438eccebc676456449b145d533b240d055'],
+ }),
+ ('rfc3339_validator', '0.1.4', {
+ 'checksums': ['138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b'],
+ }),
+ ('rpds_py', '0.20.0', {
+ 'modulename': 'rpds',
+ 'checksums': ['d72a210824facfdaf8768cf2d7ca25a042c30320b3020de2fa04640920d4e121'],
+ }),
+ ('referencing', '0.35.1', {
+ 'checksums': ['25b42124a6c8b632a425174f24087783efb348a6f1e0008e63cd4466fedf703c'],
+ }),
+ ('python-json-logger', '2.0.7', {
+ 'modulename': 'pythonjsonlogger',
+ 'checksums': ['23e7ec02d34237c5aa1e29a070193a4ea87583bb4e7f8fd06d3de8264c4b2e1c'],
+ }),
+ ('jsonschema_specifications', '2024.10.1', {
+ 'checksums': ['0f38b83639958ce1152d02a7f062902c41c8fd20d558b0c34344292d417ae272'],
+ }),
+ ('jsonschema', '4.23.0', {
+ 'checksums': ['d71497fef26351a33265337fa77ffeb82423f3ea21283cd9467bb03999266bc4'],
+ }),
+ ('jupyter_events', '0.10.0', {
+ 'checksums': ['670b8229d3cc882ec782144ed22e0d29e1c2d639263f92ca8383e66682845e22'],
+ }),
+ ('argon2-cffi-bindings', '21.2.0', {
+ 'modulename': '_argon2_cffi_bindings',
+ 'checksums': ['bb89ceffa6c791807d1305ceb77dbfacc5aa499891d2c55661c6459651fc39e3'],
+ }),
+ ('argon2_cffi', '23.1.0', {
+ 'modulename': 'argon2',
+ 'checksums': ['879c3e79a2729ce768ebb7d36d4609e3a78a4ca2ec3a9f12286ca057e3d0db08'],
+ }),
+ ('sniffio', '1.3.1', {
+ 'checksums': ['f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc'],
+ }),
+ ('anyio', '4.3.0', {
+ 'checksums': ['f75253795a87df48568485fd18cdd2a3fa5c4f7c5be8e5e36637733fce06fed6'],
+ }),
+ ('jupyter_server', version, {
+ 'checksums': ['66095021aa9638ced276c248b1d81862e4c50f292d575920bbe960de1c56b12b'],
+ }),
+ ('jupyterlab_widgets', '3.0.13', {
+ 'checksums': ['a2966d385328c1942b683a8cd96b89b8dd82c8b8f81dda902bb2bc06d46f5bed'],
+ }),
+ ('widgetsnbextension', '4.0.13', {
+ 'checksums': ['ffcb67bc9febd10234a362795f643927f4e0c05d9342c727b65d2384f8feacb6'],
+ }),
+ ('comm', '0.2.2', {
+ 'checksums': ['3fd7a84065306e07bea1773df6eb8282de51ba82f77c72f9c85716ab11fe980e'],
+ }),
+ ('ipywidgets', '8.1.5', {
+ 'checksums': ['870e43b1a35656a80c18c9503bbf2d16802db1cb487eec6fab27d683381dde17'],
+ }),
+ # The following few extensions are needed for e.g. JupyterLab but also nbclassic.
+ # Avoid duplication by making it part of this bundle
+ ('notebook_shim', '0.2.4', {
+ 'checksums': ['b4b2cfa1b65d98307ca24361f5b30fe785b53c3fd07b7a47e89acb5e6ac638cb'],
+ }),
+ ('nest_asyncio', '1.6.0', {
+ 'checksums': ['6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe'],
+ }),
+ ('ipykernel', '6.29.5', {
+ 'checksums': ['f093a22c4a40f8828f8e330a9c297cb93dcab13bd9678ded6de8e5cf81c56215'],
+ }),
+ ('ipython_genutils', '0.2.0', {
+ 'checksums': ['eb2e116e75ecef9d4d228fdc66af54269afa26ab4463042e33785b887c628ba8'],
+ }),
+ ('debugpy', '1.8.7', {
+ 'source_tmpl': '%(name)s-%(version)s-py2.py3-none-any.whl',
+ 'checksums': ['57b00de1c8d2c84a61b90880f7e5b6deaf4c312ecbde3a0e8912f2a56c4ac9ae'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/jupyter'],
+ 'dirs': ['share/jupyter', 'etc/jupyter'],
+}
+
+sanity_check_commands = ['jupyter --help']
+
+modextrapaths = {'EB_ENV_JUPYTER_ROOT': ''}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/j/jupyterlmod/jupyterlmod-5.2.1-GCCcore-13.2.0.eb b/easybuild/easyconfigs/j/jupyterlmod/jupyterlmod-5.2.1-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..2f0f8aabd7f
--- /dev/null
+++ b/easybuild/easyconfigs/j/jupyterlmod/jupyterlmod-5.2.1-GCCcore-13.2.0.eb
@@ -0,0 +1,43 @@
+easyblock = 'PythonBundle'
+
+name = 'jupyterlmod'
+version = '5.2.1'
+
+# This easyconfig installs the notebook and lab extension of Jupyter Lmod
+
+homepage = 'https://github.com/cmd-ntrf/jupyter-lmod'
+description = """Jupyter interactive notebook server extension that allows users to interact with
+environment modules before launching kernels. The extension uses Lmod's Python
+interface to accomplish module-related tasks like loading, unloading, saving
+collections, etc."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+builddependencies = [
+ ('binutils', '2.40'),
+]
+
+dependencies = [
+ ('Python', '3.11.5'),
+ ('JupyterNotebook', '7.2.0'),
+]
+
+use_pip = True
+
+exts_list = [
+ (name, version, {
+ 'sources': ['%(name)s-%(version)s-py3-none-any.whl'],
+ 'checksums': ['6f9c94d80b813792a6b63aeff5f2672f7d485ce43a7fd5bb7f6fce1c0907cad5'],
+ }),
+]
+
+sanity_pip_check = True
+
+sanity_check_paths = {
+ 'files': [],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages', 'share/jupyter'],
+}
+
+modextrapaths = {'EB_ENV_JUPYTER_ROOT': ''}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/k/KMCLib/KMCLib-2.0-a2-foss-2023a-Python-2.7.18.eb b/easybuild/easyconfigs/k/KMCLib/KMCLib-2.0-a2-foss-2023a-Python-2.7.18.eb
new file mode 100644
index 00000000000..12cf687bb00
--- /dev/null
+++ b/easybuild/easyconfigs/k/KMCLib/KMCLib-2.0-a2-foss-2023a-Python-2.7.18.eb
@@ -0,0 +1,51 @@
+easyblock = 'CMakeMake'
+
+name = 'KMCLib'
+version = '2.0-a2'
+versionsuffix = '-Python-%(pyver)s'
+
+homepage = 'https://github.com/leetmaa/KMCLib'
+description = """KMCLib - a general framework for lattice kinetic Monte Carlo (KMC) simulations"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+source_urls = ['https://github.com/leetmaa/KMCLib/archive/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['796620a67ad010df4b11734f703151c17441f82cef026f3d56386a34056d0213']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('CMake', '3.26.3'),
+ ('SWIG', '4.1.1'),
+]
+
+dependencies = [
+ ('Python', '2.7.18'),
+ ('numpy', '1.16.6', versionsuffix),
+]
+
+start_dir = 'c++'
+
+preconfigopts = 'cd ../%(name)s-%(version)s/c++/externals && '
+preconfigopts += 'make CC="$CC" CXX="$CXX" CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" && cd - && '
+
+prebuildopts = 'export CPATH=$EBROOTPYTHON/include/python%(pyshortver)s:$CPATH && '
+
+buildopts = ' && cp wrap/Backend.py wrap/_Backend.so wrap/Custom.py wrap/_Custom.so'
+buildopts += ' "%(builddir)s/%(name)s-%(version)s/python/src/KMCLib/Backend/"'
+
+test_cmd = 'export PYTHONPATH="%(builddir)s/%(name)s-%(version)s/python/src:$PYTHONPATH" && '
+test_cmd += 'python "%(builddir)s/%(name)s-%(version)s/python/unittest/utest.py"'
+
+install_cmd = 'cp -r "%(builddir)s/%(name)s-%(version)s/python/src/KMCLib" "%(installdir)s/"'
+
+modextrapaths = {'PYTHONPATH': ''}
+
+sanity_check_paths = {
+ 'files': [],
+ 'dirs': ['KMCLib/Backend'],
+}
+
+sanity_check_commands = ["python -c 'from KMCLib import *'"]
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/k/Kaleido/Kaleido-0.2.1-GCCcore-12.3.0.eb b/easybuild/easyconfigs/k/Kaleido/Kaleido-0.2.1-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..231466bb169
--- /dev/null
+++ b/easybuild/easyconfigs/k/Kaleido/Kaleido-0.2.1-GCCcore-12.3.0.eb
@@ -0,0 +1,32 @@
+easyblock = 'PythonBundle'
+
+name = 'Kaleido'
+version = '0.2.1'
+
+homepage = 'https://github.com/plotly/Kaleido'
+description = "Fast static image export for web-based visualization libraries with zero dependencies"
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+builddependencies = [
+ ('binutils', '2.40'),
+]
+
+dependencies = [('Python', '3.11.3')]
+
+if ARCH == 'x86_64':
+ local_source_tmpl = '%(namelower)s-%(version)s-py2.py3-none-manylinux1_%(arch)s.whl'
+elif ARCH == 'aarch64':
+ local_source_tmpl = '%(namelower)s-%(version)s-py2.py3-none-manylinux2014_%(arch)s.whl'
+
+exts_list = [
+ (name, version, {
+ 'source_tmpl': local_source_tmpl,
+ 'checksums': ['aa21cf1bf1c78f8fa50a9f7d45e1003c387bd3d6fe0a767cfbbf344b95bdc3a8'],
+ }),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/k/Kaleido/Kaleido-0.2.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/k/Kaleido/Kaleido-0.2.1-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..7413eeebb71
--- /dev/null
+++ b/easybuild/easyconfigs/k/Kaleido/Kaleido-0.2.1-GCCcore-13.3.0.eb
@@ -0,0 +1,25 @@
+easyblock = 'PythonPackage'
+
+name = 'Kaleido'
+version = '0.2.1'
+
+homepage = 'https://github.com/plotly/Kaleido'
+description = "Fast static image export for web-based visualization libraries with zero dependencies"
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+sources = ['%(namelower)s-%(version)s-py2.py3-none-manylinux1_%(arch)s.whl']
+checksums = ['aa21cf1bf1c78f8fa50a9f7d45e1003c387bd3d6fe0a767cfbbf344b95bdc3a8']
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+dependencies = [
+ ('Python', '3.12.3'),
+]
+
+download_dep_fail = True
+sanity_pip_check = True
+use_pip = True
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/k/kallisto/kallisto-0.51.1-gompi-2023a.eb b/easybuild/easyconfigs/k/kallisto/kallisto-0.51.1-gompi-2023a.eb
new file mode 100644
index 00000000000..ae831c08a64
--- /dev/null
+++ b/easybuild/easyconfigs/k/kallisto/kallisto-0.51.1-gompi-2023a.eb
@@ -0,0 +1,46 @@
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+
+easyblock = 'CMakeMake'
+
+name = 'kallisto'
+version = '0.51.1'
+
+homepage = 'https://pachterlab.github.io/kallisto/'
+description = """kallisto is a program for quantifying abundances of transcripts from RNA-Seq data, or more generally
+ of target sequences using high-throughput sequencing reads."""
+
+toolchain = {'name': 'gompi', 'version': '2023a'}
+toolchainopts = {'pic': True, 'usempi': True}
+
+github_account = 'pachterlab'
+source_urls = [GITHUB_SOURCE]
+sources = ['v%(version)s.tar.gz']
+checksums = ['a8bcc23bca6ac758f15e30bb77e9e169e628beff2da3be2e34a53e1d42253516']
+
+builddependencies = [
+ ('Autotools', '20220317'),
+ ('CMake', '3.26.3'),
+ ('zlib', '1.2.13'),
+]
+
+dependencies = [
+ ('HDF5', '1.14.0'),
+ ('HTSlib', '1.18'),
+]
+
+parallel = 1
+
+configopts = '-DUSE_HDF5=ON'
+
+sanity_check_paths = {
+ 'files': ['bin/%(name)s'],
+ 'dirs': [],
+}
+
+sanity_check_commands = [
+ "kallisto version",
+ "cd %(builddir)s/%(name)s-%(version)s/test && kallisto index -i ts.idx transcripts.fasta.gz",
+ "cd %(builddir)s/%(name)s-%(version)s/test && kallisto quant -i ts.idx -o out -b 100 reads_{1,2}.fastq.gz",
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/k/kallisto/kallisto-0.51.1-gompi-2023b.eb b/easybuild/easyconfigs/k/kallisto/kallisto-0.51.1-gompi-2023b.eb
new file mode 100644
index 00000000000..68cf98992dd
--- /dev/null
+++ b/easybuild/easyconfigs/k/kallisto/kallisto-0.51.1-gompi-2023b.eb
@@ -0,0 +1,46 @@
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+
+easyblock = 'CMakeMake'
+
+name = 'kallisto'
+version = '0.51.1'
+
+homepage = 'https://pachterlab.github.io/kallisto/'
+description = """kallisto is a program for quantifying abundances of transcripts from RNA-Seq data, or more generally
+ of target sequences using high-throughput sequencing reads."""
+
+toolchain = {'name': 'gompi', 'version': '2023b'}
+toolchainopts = {'pic': True, 'usempi': True}
+
+github_account = 'pachterlab'
+source_urls = [GITHUB_SOURCE]
+sources = ['v%(version)s.tar.gz']
+checksums = ['a8bcc23bca6ac758f15e30bb77e9e169e628beff2da3be2e34a53e1d42253516']
+
+builddependencies = [
+ ('Autotools', '20220317'),
+ ('CMake', '3.27.6'),
+ ('zlib', '1.2.13'),
+]
+
+dependencies = [
+ ('HDF5', '1.14.3'),
+ ('HTSlib', '1.19.1'),
+]
+
+parallel = 1
+
+configopts = '-DUSE_HDF5=ON'
+
+sanity_check_paths = {
+ 'files': ['bin/%(name)s'],
+ 'dirs': [],
+}
+
+sanity_check_commands = [
+ "kallisto version",
+ "cd %(builddir)s/%(name)s-%(version)s/test && kallisto index -i ts.idx transcripts.fasta.gz",
+ "cd %(builddir)s/%(name)s-%(version)s/test && kallisto quant -i ts.idx -o out -b 100 reads_{1,2}.fastq.gz",
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/k/kim-api/kim-api-2.3.0-GCC-13.2.0.eb b/easybuild/easyconfigs/k/kim-api/kim-api-2.3.0-GCC-13.2.0.eb
new file mode 100644
index 00000000000..5b1bf9a4cd6
--- /dev/null
+++ b/easybuild/easyconfigs/k/kim-api/kim-api-2.3.0-GCC-13.2.0.eb
@@ -0,0 +1,43 @@
+easyblock = 'CMakeMake'
+
+name = 'kim-api'
+version = '2.3.0'
+
+homepage = 'https://openkim.org/'
+description = """Open Knowledgebase of Interatomic Models.
+
+KIM is an API and OpenKIM is a collection of interatomic models (potentials) for
+atomistic simulations. This is a library that can be used by simulation programs
+to get access to the models in the OpenKIM database.
+
+This EasyBuild only installs the API, the models can be installed with the
+package openkim-models, or the user can install them manually by running
+ kim-api-collections-management install user MODELNAME
+or
+ kim-api-collections-management install user OpenKIM
+to install them all.
+ """
+
+toolchain = {'name': 'GCC', 'version': '13.2.0'}
+
+source_urls = ['https://s3.openkim.org/kim-api/']
+sources = ['%(name)s-%(version)s.txz']
+checksums = ['93673bb8fbc0625791f2ee67915d1672793366d10cabc63e373196862c14f991']
+
+dependencies = [
+ ('CMake', '3.27.6'), # Also needed to install models, thus not just a builddependency.
+]
+
+parallel = 1
+separate_build_dir = True
+
+modextravars = {
+ 'KIM_API_CMAKE_PREFIX_DIR': '%(installdir)s/lib64'
+}
+
+sanity_check_paths = {
+ 'files': ['bin/kim-api-collections-management', 'lib64/libkim-api.%s' % SHLIB_EXT],
+ 'dirs': []
+}
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/k/kineto/kineto-0.4.0-GCC-12.3.0.eb b/easybuild/easyconfigs/k/kineto/kineto-0.4.0-GCC-12.3.0.eb
new file mode 100644
index 00000000000..4dd6b4afdf1
--- /dev/null
+++ b/easybuild/easyconfigs/k/kineto/kineto-0.4.0-GCC-12.3.0.eb
@@ -0,0 +1,35 @@
+easyblock = 'CMakeMake'
+
+name = 'kineto'
+version = '0.4.0'
+
+homepage = 'https://github.com/pytorch/kineto'
+description = "A CPU+GPU Profiling library that provides access to timeline traces and hardware performance counters"
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+
+source_urls = ['https://github.com/pytorch/kineto/archive/']
+sources = [{
+ 'git_config': {
+ 'url': 'https://github.com/pytorch',
+ 'repo_name': name,
+ 'tag': 'v%(version)s',
+ 'recursive': True,
+ },
+ 'filename': SOURCE_TAR_GZ,
+}]
+checksums = [None]
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+ ('Python', '3.11.3'),
+]
+
+start_dir = 'libkineto'
+
+sanity_check_paths = {
+ 'files': ['lib/libkineto.a'],
+ 'dirs': ['include/kineto'],
+}
+
+moduleclass = 'perf'
diff --git a/easybuild/easyconfigs/k/kyber/kyber-0.4.0-GCC-12.3.0.eb b/easybuild/easyconfigs/k/kyber/kyber-0.4.0-GCC-12.3.0.eb
new file mode 100644
index 00000000000..14fa1faab67
--- /dev/null
+++ b/easybuild/easyconfigs/k/kyber/kyber-0.4.0-GCC-12.3.0.eb
@@ -0,0 +1,452 @@
+easyblock = 'Cargo'
+
+name = 'kyber'
+version = '0.4.0'
+
+homepage = 'https://github.com/wdecoster/kyber'
+description = """Tool to quickly make a minimalistic 600x600 pixels
+ heatmap image of read length (log-transformed) and read accuracy."""
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+
+source_urls = ['https://github.com/wdecoster/kyber/archive/']
+sources = ['v%(version)s.tar.gz']
+patches = ['kyber-0.4.0_requirements.patch']
+checksums = [
+ {'v0.4.0.tar.gz': '1a89538d2795e5f589fd18280de4443d3311454ed70f595b3e6611bd8d8811e1'},
+ {'ab_glyph_rasterizer-0.1.8.tar.gz': 'c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046'},
+ {'adler-1.0.2.tar.gz': 'f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe'},
+ {'aho-corasick-0.7.20.tar.gz': 'cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac'},
+ {'approx-0.5.1.tar.gz': 'cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6'},
+ {'autocfg-1.1.0.tar.gz': 'd468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa'},
+ {'bio-types-0.13.0.tar.gz': 'dfa990f40a28735fa598dc3dd58d73e62e6b41458959d623903b927ba7b04c80'},
+ {'bit_field-0.10.2.tar.gz': 'dc827186963e592360843fb5ba4b973e145841266c1357f7180c43526f2e5b61'},
+ {'bitflags-1.3.2.tar.gz': 'bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a'},
+ {'bumpalo-3.12.0.tar.gz': '0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535'},
+ {'bytemuck-1.13.1.tar.gz': '17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea'},
+ {'byteorder-1.4.3.tar.gz': '14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610'},
+ {'bzip2-sys-0.1.11+1.0.8.tar.gz': '736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc'},
+ {'cc-1.0.79.tar.gz': '50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f'},
+ {'cfg-if-1.0.0.tar.gz': 'baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd'},
+ {'clap-4.5.0.tar.gz': '80c21025abd42669a92efc996ef13cfb2c5c627858421ea58d5c3b331a6c134f'},
+ {'clap_builder-4.5.0.tar.gz': '458bf1f341769dfcf849846f65dffdf9146daa56bcd2a47cb4e1de9915567c99'},
+ {'anstream-0.6.7.tar.gz': '4cd2405b3ac1faab2990b74d728624cd9fd115651fcecc7c2d8daf01376275ba'},
+ {'anstyle-1.0.2.tar.gz': '15c4c2c83f81532e5845a733998b6971faca23490340a418e9b72a3ec9de12ea'},
+ {'anstyle-parse-0.2.1.tar.gz': '938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333'},
+ {'anstyle-query-1.0.0.tar.gz': '5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b'},
+ {'anstyle-wincon-3.0.2.tar.gz': '1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7'},
+ {'colorchoice-1.0.0.tar.gz': 'acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7'},
+ {'utf8parse-0.2.1.tar.gz': '711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a'},
+ {'humantime-2.1.0.tar.gz': '9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4'},
+ {'clap_derive-4.5.0.tar.gz': '307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47'},
+ {'shlex-1.3.0.tar.gz': '0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64'},
+ {'snapbox-0.4.16.tar.gz': '73145a30df4935f50a7b13c1882bce7d194d7071ad0bcc36e7cacbf9ef16e3ec'},
+ {'escargot-0.5.7.tar.gz': 'f5584ba17d7ab26a8a7284f13e5bd196294dd2f2d79773cff29b9e9edef601a6'},
+ {'dunce-1.0.4.tar.gz': '56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b'},
+ {'content_inspector-0.2.4.tar.gz': 'b7bda66e858c683005a53a9a60c69a4aca7eeaa45d124526e389f7aec8e62f38'},
+ {'filetime-0.2.22.tar.gz': 'd4029edd3e734da6fe05b6cd7bd2960760a616bd2ddd0d59a0124746d6272af0'},
+ {'normalize-line-endings-0.3.0.tar.gz': '61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be'},
+ {'os_pipe-1.1.4.tar.gz': '0ae859aa07428ca9a929b936690f8b12dc5f11dd8c6992a18ca93919f28bc177'},
+ {'similar-2.2.0.tar.gz': '62ac7f900db32bf3fd12e0117dd3dc4da74bc52ebaac97f39668446d89694803'},
+ {'snapbox-macros-0.3.7.tar.gz': '78ccde059aad940984ff696fe8c280900f7ea71a6fb45fce65071a3f2c40b667'},
+ {'tempfile-3.9.0.tar.gz': '01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa'},
+ {'wait-timeout-0.2.0.tar.gz': '9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6'},
+ {'walkdir-2.4.0.tar.gz': 'd71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee'},
+ {'clap_lex-0.7.0.tar.gz': '98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce'},
+ {'cmake-0.1.49.tar.gz': 'db34956e100b30725f2eb215f90d4871051239535632f84fea3bc92722c66b7c'},
+ {'color_quant-1.1.0.tar.gz': '3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b'},
+ {'conv-0.3.3.tar.gz': '78ff10625fd0ac447827aa30ea8b861fead473bb60aeb73af6c1c58caf0d1299'},
+ {'crc32fast-1.3.2.tar.gz': 'b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d'},
+ {'crossbeam-channel-0.5.7.tar.gz': 'cf2b3e8478797446514c91ef04bafcb59faba183e621ad488df88983cc14128c'},
+ {'crossbeam-deque-0.8.3.tar.gz': 'ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef'},
+ {'crossbeam-epoch-0.9.14.tar.gz': '46bd5f3f85273295a9d14aedfb86f6aadbff6d8f5295c4a9edb08e819dcf5695'},
+ {'crossbeam-utils-0.8.15.tar.gz': '3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b'},
+ {'crunchy-0.2.2.tar.gz': '7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7'},
+ {'ctor-0.2.0.tar.gz': 'dd4056f63fce3b82d852c3da92b08ea59959890813a7f4ce9c0ff85b10cf301b'},
+ {'curl-sys-0.4.60+curl-7.88.1.tar.gz': '717abe2cb465a5da6ce06617388a3980c9a2844196734bec8ccb8e575250f13f'},
+ {'custom_derive-0.1.7.tar.gz': 'ef8ae57c4978a2acd8b869ce6b9ca1dfe817bff704c220209fdef2c0b75a01b9'},
+ {'derive-new-0.5.9.tar.gz': '3418329ca0ad70234b9735dc4ceed10af4df60eff9c8e7b06cb5e520d92c3535'},
+ {'either-1.8.1.tar.gz': '7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91'},
+ {'env_logger-0.10.0.tar.gz': '85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0'},
+ {'errno-0.2.8.tar.gz': 'f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1'},
+ {'errno-dragonfly-0.1.2.tar.gz': 'aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf'},
+ {'exr-1.6.3.tar.gz': 'bdd2162b720141a91a054640662d3edce3d50a944a50ffca5313cd951abb35b4'},
+ {'flate2-1.0.25.tar.gz': 'a8a2db397cb1c8772f31494cb8917e48cd1e64f0fa7efac59fbd741a0a8ce841'},
+ {'flume-0.10.14.tar.gz': '1657b4441c3403d9f7b3409e47575237dac27b1b5726df654a6ecbf92f0f7577'},
+ {'form_urlencoded-1.1.0.tar.gz': 'a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8'},
+ {'fs-utils-1.1.4.tar.gz': '6fc7a9dc005c944c98a935e7fd626faf5bf7e5a609f94bc13e42fc4a02e52593'},
+ {'futures-core-0.3.27.tar.gz': '86d7a0c1aa76363dac491de0ee99faf6941128376f1cf96f07db7603b7de69dd'},
+ {'futures-sink-0.3.27.tar.gz': 'ec93083a4aecafb2a80a885c9de1f0ccae9dbd32c2bb54b0c3a65690e0b8d2f2'},
+ {'getrandom-0.1.16.tar.gz': '8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce'},
+ {'getrandom-0.2.8.tar.gz': 'c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31'},
+ {'gif-0.11.4.tar.gz': '3edd93c6756b4dfaf2709eafcc345ba2636565295c198a9cfbf75fa5e3e00b06'},
+ {'glob-0.3.1.tar.gz': 'd2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b'},
+ {'half-2.2.1.tar.gz': '02b4af3693f1b705df946e9fe5631932443781d0aabb423b62fcd4d73f6d2fd0'},
+ {'heck-0.4.1.tar.gz': '95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8'},
+ {'hermit-abi-0.2.6.tar.gz': 'ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7'},
+ {'hermit-abi-0.3.1.tar.gz': 'fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286'},
+ {'hts-sys-2.0.3.tar.gz': '0dba4fc406d3686926c84f98fd53026b625319d119e6056a40313862a6e3c4eb'},
+ {'idna-0.3.0.tar.gz': 'e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6'},
+ {'ieee754-0.2.6.tar.gz': '9007da9cacbd3e6343da136e98b0d2df013f553d35bdec8b518f07bea768e19c'},
+ {'image-0.24.5.tar.gz': '69b7ea949b537b0fd0af141fff8c77690f2ce96f4f41f042ccb6c69c6c965945'},
+ {'imageproc-0.23.0.tar.gz': 'b6aee993351d466301a29655d628bfc6f5a35a0d062b6160ca0808f425805fd7'},
+ {'io-lifetimes-1.0.6.tar.gz': 'cfa919a82ea574332e2de6e74b4c36e74d41982b335080fa59d4ef31be20fdf3'},
+ {'is-terminal-0.4.4.tar.gz': '21b6b32576413a8e69b90e952e4a026476040d81017b80445deda5f2d3921857'},
+ {'itertools-0.10.5.tar.gz': 'b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473'},
+ {'jobserver-0.1.26.tar.gz': '936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2'},
+ {'jpeg-decoder-0.3.0.tar.gz': 'bc0000e42512c92e31c2252315bda326620a4e034105e900c98ec492fa077b3e'},
+ {'js-sys-0.3.61.tar.gz': '445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730'},
+ {'lazy_static-1.4.0.tar.gz': 'e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646'},
+ {'lebe-0.5.2.tar.gz': '03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8'},
+ {'libc-0.2.140.tar.gz': '99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c'},
+ {'libz-sys-1.1.8.tar.gz': '9702761c3935f8cc2f101793272e202c72b99da8f4224a19ddcf1279a6450bbf'},
+ {'linear-map-1.2.0.tar.gz': 'bfae20f6b19ad527b550c223fddc3077a547fc70cda94b9b566575423fd303ee'},
+ {'linux-raw-sys-0.1.4.tar.gz': 'f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4'},
+ {'lock_api-0.4.9.tar.gz': '435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df'},
+ {'log-0.4.17.tar.gz': 'abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e'},
+ {'lzma-sys-0.1.20.tar.gz': '5fda04ab3764e6cde78b9974eec4f779acaba7c4e84b36eca3cf77c581b85d27'},
+ {'matrixmultiply-0.3.2.tar.gz': 'add85d4dd35074e6fedc608f8c8f513a3548619a9024b751949ef0e8e45a4d84'},
+ {'memchr-2.5.0.tar.gz': '2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d'},
+ {'memoffset-0.8.0.tar.gz': 'd61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1'},
+ {'miniz_oxide-0.6.2.tar.gz': 'b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa'},
+ {'nalgebra-0.30.1.tar.gz': '4fb2d0de08694bed883320212c18ee3008576bfe8c306f4c3c4a58b4876998be'},
+ {'nanorand-0.7.0.tar.gz': '6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3'},
+ {'ndarray-0.15.6.tar.gz': 'adb12d4e967ec485a5f71c6311fe28158e9d6f4bc4a447b474184d0f91a8fa32'},
+ {'newtype_derive-0.1.6.tar.gz': 'ac8cd24d9f185bb7223958d8c1ff7a961b74b1953fd05dba7cc568a63b3861ec'},
+ {'num-0.4.0.tar.gz': '43db66d1170d347f9a065114077f7dccb00c1b9478c89384490a3425279a4606'},
+ {'num-bigint-0.4.3.tar.gz': 'f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f'},
+ {'num-complex-0.4.3.tar.gz': '02e0d21255c828d6f128a1e41534206671e8c3ea0c62f32291e808dc82cff17d'},
+ {'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.15.tar.gz': '578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd'},
+ {'num_cpus-1.15.0.tar.gz': '0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b'},
+ {'once_cell-1.17.1.tar.gz': 'b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3'},
+ {'openssl-src-111.25.1+1.1.1t.tar.gz': '1ef9a9cc6ea7d9d5e7c4a913dc4b48d0e359eddf01af1dfec96ba7064b4aba10'},
+ {'openssl-sys-0.9.81.tar.gz': '176be2629957c157240f68f61f2d0053ad3a4ecfdd9ebf1e6521d18d9635cf67'},
+ {'os_str_bytes-6.4.1.tar.gz': '9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee'},
+ {'owned_ttf_parser-0.15.2.tar.gz': '05e6affeb1632d6ff6a23d2cd40ffed138e82f1532571a26f527c8a284bb2fbb'},
+ {'paste-1.0.12.tar.gz': '9f746c4065a8fa3fe23974dd82f15431cc8d40779821001404d10d2e79ca7d79'},
+ {'percent-encoding-2.2.0.tar.gz': '478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e'},
+ {'pin-project-1.0.12.tar.gz': 'ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc'},
+ {'pin-project-internal-1.0.12.tar.gz': '069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55'},
+ {'pkg-config-0.3.26.tar.gz': '6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160'},
+ {'png-0.17.7.tar.gz': '5d708eaf860a19b19ce538740d2b4bdeeb8337fa53f7738455e706623ad5c638'},
+ {'ppv-lite86-0.2.17.tar.gz': '5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de'},
+ {'proc-macro-error-1.0.4.tar.gz': 'da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c'},
+ {'proc-macro-error-attr-1.0.4.tar.gz': 'a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869'},
+ {'proc-macro2-1.0.70.tar.gz': '39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b'},
+ {'quick-error-1.2.3.tar.gz': 'a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0'},
+ {'quote-1.0.26.tar.gz': '4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc'},
+ {'rand-0.7.3.tar.gz': '6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03'},
+ {'rand_chacha-0.2.2.tar.gz': 'f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402'},
+ {'rand_core-0.5.1.tar.gz': '90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19'},
+ {'rand_distr-0.2.2.tar.gz': '96977acbdd3a6576fb1d27391900035bf3863d4a16422973a409b488cf29ffb2'},
+ {'rand_hc-0.2.0.tar.gz': 'ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c'},
+ {'rawpointer-0.2.1.tar.gz': '60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3'},
+ {'rayon-1.7.0.tar.gz': '1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b'},
+ {'rayon-core-1.11.0.tar.gz': '4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d'},
+ {'regex-1.7.1.tar.gz': '48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733'},
+ {'regex-syntax-0.6.28.tar.gz': '456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848'},
+ {'rust-htslib-0.43.1.tar.gz': '53881800f22b91fa893cc3f6d70e6e9aa96d200133bfe112e36aee37aad70bf5'},
+ {'rustc_version-0.1.7.tar.gz': 'c5f5376ea5e30ce23c03eb77cbe4962b988deead10910c372b226388b594c084'},
+ {'rustix-0.36.9.tar.gz': 'fd5c6ff11fecd55b40746d1995a02f2eb375bf8c00d192d521ee09f42bef37bc'},
+ {'rusttype-0.9.3.tar.gz': '3ff8374aa04134254b7995b63ad3dc41c7f7236f69528b28553da7d72efaa967'},
+ {'rustversion-1.0.12.tar.gz': '4f3208ce4d8448b3f3e7d168a73f5e0c43a61e32930de3bceeccedb388b6bf06'},
+ {'safe_arch-0.6.0.tar.gz': '794821e4ccb0d9f979512f9c1973480123f9bd62a90d74ab0f9426fcf8f4a529'},
+ {'scoped_threadpool-0.1.9.tar.gz': '1d51f5df5af43ab3f1360b429fa5e0152ac5ce8c0bd6485cae490332e96846a8'},
+ {'scopeguard-1.1.0.tar.gz': 'd29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd'},
+ {'semver-0.1.20.tar.gz': 'd4f410fedcf71af0345d7607d246e7ad15faaadd49d240ee3b24e5dc21a820ac'},
+ {'simba-0.7.3.tar.gz': '2f3fd720c48c53cace224ae62bef1bbff363a70c68c4802a78b5cc6159618176'},
+ {'simd-adler32-0.3.5.tar.gz': '238abfbb77c1915110ad968465608b68e869e0772622c9656714e73e5a1a522f'},
+ {'smallvec-1.10.0.tar.gz': 'a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0'},
+ {'spin-0.9.6.tar.gz': 'b5d6e0250b93c8427a177b849d144a96d5acc57006149479403d7861ab721e34'},
+ {'strsim-0.11.0.tar.gz': '5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01'},
+ {'strum_macros-0.24.3.tar.gz': '1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59'},
+ {'syn-1.0.109.tar.gz': '72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237'},
+ {'syn-2.0.12.tar.gz': '79d9531f94112cfc3e4c8f5f02cb2b58f72c97b7efd85f70203cc6d8efda5927'},
+ {'termcolor-1.2.0.tar.gz': 'be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6'},
+ {'thiserror-1.0.39.tar.gz': 'a5ab016db510546d856297882807df8da66a16fb8c4101cb8b30054b0d5b2d9c'},
+ {'thiserror-impl-1.0.39.tar.gz': '5420d42e90af0c38c3290abcca25b9b3bdf379fc9f55c528f53a269d9c9a267e'},
+ {'tiff-0.8.1.tar.gz': '7449334f9ff2baf290d55d73983a7d6fa15e01198faef72af07e2a8db851e471'},
+ {'tinyvec-1.6.0.tar.gz': '87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50'},
+ {'tinyvec_macros-0.1.1.tar.gz': '1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20'},
+ {'ttf-parser-0.15.2.tar.gz': '7b3e06c9b9d80ed6b745c7159c40b311ad2916abb34a49e9be2653b90db0d8dd'},
+ {'typenum-1.16.0.tar.gz': '497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba'},
+ {'unicode-bidi-0.3.11.tar.gz': '524b68aca1d05e03fdf03fcdce2c6c94b6daf6d16861ddaa7e4f2b6638a9052c'},
+ {'unicode-ident-1.0.8.tar.gz': 'e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4'},
+ {'unicode-normalization-0.1.22.tar.gz': '5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921'},
+ {'url-2.3.1.tar.gz': '0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643'},
+ {'vcpkg-0.2.15.tar.gz': 'accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426'},
+ {'version_check-0.9.4.tar.gz': '49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f'},
+ {'wasi-0.9.0+wasi-snapshot-preview1.tar.gz': 'cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519'},
+ {'wasi-0.11.0+wasi-snapshot-preview1.tar.gz': '9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423'},
+ {'wasm-bindgen-0.2.84.tar.gz': '31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b'},
+ {'wasm-bindgen-backend-0.2.84.tar.gz': '95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9'},
+ {'wasm-bindgen-macro-0.2.84.tar.gz': '4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5'},
+ {'wasm-bindgen-macro-support-0.2.84.tar.gz': '2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6'},
+ {'wasm-bindgen-shared-0.2.84.tar.gz': '0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d'},
+ {'weezl-0.1.7.tar.gz': '9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb'},
+ {'wide-0.7.8.tar.gz': 'b689b6c49d6549434bf944e6b0f39238cf63693cb7a147e9d887507fffa3b223'},
+ {'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.45.0.tar.gz': '75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0'},
+ {'windows-sys-0.48.0.tar.gz': '677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9'},
+ {'windows-sys-0.52.0.tar.gz': '282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d'},
+ {'windows-targets-0.42.2.tar.gz': '8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071'},
+ {'windows-targets-0.48.5.tar.gz': '9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c'},
+ {'windows-targets-0.52.0.tar.gz': '8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd'},
+ {'windows_aarch64_gnullvm-0.42.2.tar.gz': '597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8'},
+ {'windows_aarch64_gnullvm-0.48.5.tar.gz': '2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8'},
+ {'windows_aarch64_gnullvm-0.52.0.tar.gz': 'cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea'},
+ {'windows_aarch64_msvc-0.42.2.tar.gz': 'e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43'},
+ {'windows_aarch64_msvc-0.48.5.tar.gz': 'dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc'},
+ {'windows_aarch64_msvc-0.52.0.tar.gz': 'bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef'},
+ {'windows_i686_gnu-0.42.2.tar.gz': 'c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f'},
+ {'windows_i686_gnu-0.48.5.tar.gz': 'a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e'},
+ {'windows_i686_gnu-0.52.0.tar.gz': 'a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313'},
+ {'windows_i686_msvc-0.42.2.tar.gz': '44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060'},
+ {'windows_i686_msvc-0.48.5.tar.gz': '8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406'},
+ {'windows_i686_msvc-0.52.0.tar.gz': 'ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a'},
+ {'windows_x86_64_gnu-0.42.2.tar.gz': '8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36'},
+ {'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.42.2.tar.gz': '26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3'},
+ {'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.42.2.tar.gz': '9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0'},
+ {'windows_x86_64_msvc-0.48.5.tar.gz': 'ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538'},
+ {'windows_x86_64_msvc-0.52.0.tar.gz': 'dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04'},
+ {'zune-inflate-0.2.51.tar.gz': 'a01728b79fb9b7e28a8c11f715e1cd8dc2cda7416a007d66cac55cebb3a8ac6b'},
+ {'kyber-0.4.0_requirements.patch': '25c454d67914ccfe1f80ac4edf19629806c7d9d06135201053f73b0a4c10c0eb'},
+]
+
+crates = [
+ ('ab_glyph_rasterizer', '0.1.8'),
+ ('adler', '1.0.2'),
+ ('aho-corasick', '0.7.20'),
+ ('approx', '0.5.1'),
+ ('autocfg', '1.1.0'),
+ ('bio-types', '0.13.0'),
+ ('bit_field', '0.10.2'),
+ ('bitflags', '1.3.2'),
+ ('bumpalo', '3.12.0'),
+ ('bytemuck', '1.13.1'),
+ ('byteorder', '1.4.3'),
+ ('bzip2-sys', '0.1.11+1.0.8'),
+ ('cc', '1.0.79'),
+ ('cfg-if', '1.0.0'),
+ ('clap', '4.5.0'),
+ ('clap_builder', '4.5.0'),
+ ('anstream', '0.6.7'),
+ ('anstyle', '1.0.2'),
+ ('anstyle-parse', '0.2.1'),
+ ('anstyle-query', '1.0.0'),
+ ('anstyle-wincon', '3.0.2'),
+ ('colorchoice', '1.0.0'),
+ ('utf8parse', '0.2.1'),
+ ('humantime', '2.1.0'),
+ ('clap_derive', '4.5.0'),
+ ('shlex', '1.3.0'),
+ ('snapbox', '0.4.16'),
+ ('escargot', '0.5.7'),
+ ('dunce', '1.0.4'),
+ ('content_inspector', '0.2.4'),
+ ('filetime', '0.2.22'),
+ ('normalize-line-endings', '0.3.0'),
+ ('os_pipe', '1.1.4'),
+ ('similar', '2.2.0'),
+ ('snapbox-macros', '0.3.7'),
+ ('tempfile', '3.9.0'),
+ ('wait-timeout', '0.2.0'),
+ ('walkdir', '2.4.0'),
+ ('clap_lex', '0.7.0'),
+ ('cmake', '0.1.49'),
+ ('color_quant', '1.1.0'),
+ ('conv', '0.3.3'),
+ ('crc32fast', '1.3.2'),
+ ('crossbeam-channel', '0.5.7'),
+ ('crossbeam-deque', '0.8.3'),
+ ('crossbeam-epoch', '0.9.14'),
+ ('crossbeam-utils', '0.8.15'),
+ ('crunchy', '0.2.2'),
+ ('ctor', '0.2.0'),
+ ('curl-sys', '0.4.60+curl-7.88.1'),
+ ('custom_derive', '0.1.7'),
+ ('derive-new', '0.5.9'),
+ ('either', '1.8.1'),
+ ('env_logger', '0.10.0'),
+ ('errno', '0.2.8'),
+ ('errno-dragonfly', '0.1.2'),
+ ('exr', '1.6.3'),
+ ('flate2', '1.0.25'),
+ ('flume', '0.10.14'),
+ ('form_urlencoded', '1.1.0'),
+ ('fs-utils', '1.1.4'),
+ ('futures-core', '0.3.27'),
+ ('futures-sink', '0.3.27'),
+ ('getrandom', '0.1.16'),
+ ('getrandom', '0.2.8'),
+ ('gif', '0.11.4'),
+ ('glob', '0.3.1'),
+ ('half', '2.2.1'),
+ ('heck', '0.4.1'),
+ ('hermit-abi', '0.2.6'),
+ ('hermit-abi', '0.3.1'),
+ ('hts-sys', '2.0.3'),
+ ('idna', '0.3.0'),
+ ('ieee754', '0.2.6'),
+ ('image', '0.24.5'),
+ ('imageproc', '0.23.0'),
+ ('io-lifetimes', '1.0.6'),
+ ('is-terminal', '0.4.4'),
+ ('itertools', '0.10.5'),
+ ('jobserver', '0.1.26'),
+ ('jpeg-decoder', '0.3.0'),
+ ('js-sys', '0.3.61'),
+ ('lazy_static', '1.4.0'),
+ ('lebe', '0.5.2'),
+ ('libc', '0.2.140'),
+ ('libz-sys', '1.1.8'),
+ ('linear-map', '1.2.0'),
+ ('linux-raw-sys', '0.1.4'),
+ ('lock_api', '0.4.9'),
+ ('log', '0.4.17'),
+ ('lzma-sys', '0.1.20'),
+ ('matrixmultiply', '0.3.2'),
+ ('memchr', '2.5.0'),
+ ('memoffset', '0.8.0'),
+ ('miniz_oxide', '0.6.2'),
+ ('nalgebra', '0.30.1'),
+ ('nanorand', '0.7.0'),
+ ('ndarray', '0.15.6'),
+ ('newtype_derive', '0.1.6'),
+ ('num', '0.4.0'),
+ ('num-bigint', '0.4.3'),
+ ('num-complex', '0.4.3'),
+ ('num-integer', '0.1.45'),
+ ('num-iter', '0.1.43'),
+ ('num-rational', '0.4.1'),
+ ('num-traits', '0.2.15'),
+ ('num_cpus', '1.15.0'),
+ ('once_cell', '1.17.1'),
+ ('openssl-src', '111.25.1+1.1.1t'),
+ ('openssl-sys', '0.9.81'),
+ ('os_str_bytes', '6.4.1'),
+ ('owned_ttf_parser', '0.15.2'),
+ ('paste', '1.0.12'),
+ ('percent-encoding', '2.2.0'),
+ ('pin-project', '1.0.12'),
+ ('pin-project-internal', '1.0.12'),
+ ('pkg-config', '0.3.26'),
+ ('png', '0.17.7'),
+ ('ppv-lite86', '0.2.17'),
+ ('proc-macro-error', '1.0.4'),
+ ('proc-macro-error-attr', '1.0.4'),
+ ('proc-macro2', '1.0.70'),
+ ('quick-error', '1.2.3'),
+ ('quote', '1.0.26'),
+ ('rand', '0.7.3'),
+ ('rand_chacha', '0.2.2'),
+ ('rand_core', '0.5.1'),
+ ('rand_distr', '0.2.2'),
+ ('rand_hc', '0.2.0'),
+ ('rawpointer', '0.2.1'),
+ ('rayon', '1.7.0'),
+ ('rayon-core', '1.11.0'),
+ ('regex', '1.7.1'),
+ ('regex-syntax', '0.6.28'),
+ ('rust-htslib', '0.43.1'),
+ ('rustc_version', '0.1.7'),
+ ('rustix', '0.36.9'),
+ ('rusttype', '0.9.3'),
+ ('rustversion', '1.0.12'),
+ ('safe_arch', '0.6.0'),
+ ('scoped_threadpool', '0.1.9'),
+ ('scopeguard', '1.1.0'),
+ ('semver', '0.1.20'),
+ ('simba', '0.7.3'),
+ ('simd-adler32', '0.3.5'),
+ ('smallvec', '1.10.0'),
+ ('spin', '0.9.6'),
+ ('strsim', '0.11.0'),
+ ('strum_macros', '0.24.3'),
+ ('syn', '1.0.109'),
+ ('syn', '2.0.12'),
+ ('termcolor', '1.2.0'),
+ ('thiserror', '1.0.39'),
+ ('thiserror-impl', '1.0.39'),
+ ('tiff', '0.8.1'),
+ ('tinyvec', '1.6.0'),
+ ('tinyvec_macros', '0.1.1'),
+ ('ttf-parser', '0.15.2'),
+ ('typenum', '1.16.0'),
+ ('unicode-bidi', '0.3.11'),
+ ('unicode-ident', '1.0.8'),
+ ('unicode-normalization', '0.1.22'),
+ ('url', '2.3.1'),
+ ('vcpkg', '0.2.15'),
+ ('version_check', '0.9.4'),
+ ('wasi', '0.9.0+wasi-snapshot-preview1'),
+ ('wasi', '0.11.0+wasi-snapshot-preview1'),
+ ('wasm-bindgen', '0.2.84'),
+ ('wasm-bindgen-backend', '0.2.84'),
+ ('wasm-bindgen-macro', '0.2.84'),
+ ('wasm-bindgen-macro-support', '0.2.84'),
+ ('wasm-bindgen-shared', '0.2.84'),
+ ('weezl', '0.1.7'),
+ ('wide', '0.7.8'),
+ ('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.45.0'),
+ ('windows-sys', '0.48.0'),
+ ('windows-sys', '0.52.0'),
+ ('windows-targets', '0.42.2'),
+ ('windows-targets', '0.48.5'),
+ ('windows-targets', '0.52.0'),
+ ('windows_aarch64_gnullvm', '0.42.2'),
+ ('windows_aarch64_gnullvm', '0.48.5'),
+ ('windows_aarch64_gnullvm', '0.52.0'),
+ ('windows_aarch64_msvc', '0.42.2'),
+ ('windows_aarch64_msvc', '0.48.5'),
+ ('windows_aarch64_msvc', '0.52.0'),
+ ('windows_i686_gnu', '0.42.2'),
+ ('windows_i686_gnu', '0.48.5'),
+ ('windows_i686_gnu', '0.52.0'),
+ ('windows_i686_msvc', '0.42.2'),
+ ('windows_i686_msvc', '0.48.5'),
+ ('windows_i686_msvc', '0.52.0'),
+ ('windows_x86_64_gnu', '0.42.2'),
+ ('windows_x86_64_gnu', '0.48.5'),
+ ('windows_x86_64_gnu', '0.52.0'),
+ ('windows_x86_64_gnullvm', '0.42.2'),
+ ('windows_x86_64_gnullvm', '0.48.5'),
+ ('windows_x86_64_gnullvm', '0.52.0'),
+ ('windows_x86_64_msvc', '0.42.2'),
+ ('windows_x86_64_msvc', '0.48.5'),
+ ('windows_x86_64_msvc', '0.52.0'),
+ ('zune-inflate', '0.2.51'),
+]
+
+builddependencies = [
+ ('Rust', '1.75.0'),
+ ('CMake', '3.26.3'),
+]
+
+dependencies = [
+ ('bzip2', '1.0.8'),
+ ('OpenSSL', '1.1', '', SYSTEM),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/%(name)s'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["%(name)s --version"]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/k/kyber/kyber-0.4.0_requirements.patch b/easybuild/easyconfigs/k/kyber/kyber-0.4.0_requirements.patch
new file mode 100644
index 00000000000..4f59f4a0e8e
--- /dev/null
+++ b/easybuild/easyconfigs/k/kyber/kyber-0.4.0_requirements.patch
@@ -0,0 +1,521 @@
+Use newer `proc-macro2` to avoid the `proc_macro_span_shrink` error.
+see https://github.com/dtolnay/proc-macro2/issues/356 + https://github.com/rust-lang/rust/issues/113152
+Author: Petr Král (INUITS)
+diff -u Cargo.lock.orig Cargo.lock
+--- Cargo.lock.orig 2024-09-23 12:04:03.201953274 +0200
++++ Cargo.lock 2024-10-15 11:28:46.785202683 +0200
+@@ -109,42 +109,256 @@
+
+ [[package]]
+ name = "clap"
+-version = "4.1.8"
++version = "4.5.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c3d7ae14b20b94cb02149ed21a86c423859cbe18dc7ed69845cace50e52b40a5"
++checksum = "80c21025abd42669a92efc996ef13cfb2c5c627858421ea58d5c3b331a6c134f"
+ dependencies = [
+- "bitflags",
++ "clap_builder 4.5.0",
+ "clap_derive",
+- "clap_lex",
+- "is-terminal",
+- "once_cell",
+- "strsim",
+- "termcolor",
++ "humantime",
++ "rustversion",
++ "shlex",
++ "snapbox",
++ "trybuild",
++ "trycmd",
++]
++
++[[package]]
++name = "clap_builder"
++version = "4.5.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "458bf1f341769dfcf849846f65dffdf9146daa56bcd2a47cb4e1de9915567c99"
++dependencies = [
++ "anstream",
++ "anstyle",
++ "backtrace",
++ "clap_lex 0.7.0",
++ "color-print",
++ "static_assertions",
++ "strsim 0.11.0",
++ "terminal_size 0.3.0",
++ "unic-emoji-char",
++ "unicase",
++ "unicode-width",
+ ]
+
+ [[package]]
++name = "anstream"
++version = "0.6.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4cd2405b3ac1faab2990b74d728624cd9fd115651fcecc7c2d8daf01376275ba"
++dependencies = [
++ "anstyle",
++ "anstyle-parse",
++ "anstyle-query",
++ "anstyle-wincon",
++ "colorchoice",
++ "utf8parse",
++]
++
++[[package]]
++name = "anstyle"
++version = "1.0.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "15c4c2c83f81532e5845a733998b6971faca23490340a418e9b72a3ec9de12ea"
++
++[[package]]
++name = "anstyle-parse"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333"
++dependencies = [
++ "utf8parse",
++]
++
++[[package]]
++name = "anstyle-query"
++version = "1.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b"
++dependencies = [
++ "windows-sys 0.48.0",
++]
++
++[[package]]
++name = "anstyle-wincon"
++version = "3.0.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7"
++dependencies = [
++ "anstyle",
++ "windows-sys 0.52.0",
++]
++
++[[package]]
++name = "colorchoice"
++version = "1.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
++
++[[package]]
++name = "utf8parse"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
++
++[[package]]
++name = "humantime"
++version = "2.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
++
++[[package]]
+ name = "clap_derive"
+-version = "4.1.8"
++version = "4.5.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "44bec8e5c9d09e439c4335b1af0abaab56dcf3b94999a936e1bb47b9134288f0"
++checksum = "307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47"
+ dependencies = [
+ "heck",
+- "proc-macro-error",
+ "proc-macro2",
+ "quote",
+- "syn 1.0.109",
++ "syn 2.0.48",
+ ]
+
+ [[package]]
+-name = "clap_lex"
+-version = "0.3.2"
++name = "shlex"
++version = "1.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
++
++[[package]]
++name = "snapbox"
++version = "0.4.16"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "73145a30df4935f50a7b13c1882bce7d194d7071ad0bcc36e7cacbf9ef16e3ec"
++dependencies = [
++ "anstream",
++ "anstyle",
++ "content_inspector",
++ "dunce",
++ "escargot",
++ "filetime",
++ "libc",
++ "normalize-line-endings",
++ "os_pipe",
++ "similar",
++ "snapbox-macros",
++ "tempfile",
++ "wait-timeout",
++ "walkdir",
++ "windows-sys 0.52.0",
++]
++
++[[package]]
++name = "escargot"
++version = "0.5.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f5584ba17d7ab26a8a7284f13e5bd196294dd2f2d79773cff29b9e9edef601a6"
++dependencies = [
++ "log",
++ "once_cell",
++ "serde",
++ "serde_json",
++]
++
++[[package]]
++name = "dunce"
++version = "1.0.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b"
++
++[[package]]
++name = "content_inspector"
++version = "0.2.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b7bda66e858c683005a53a9a60c69a4aca7eeaa45d124526e389f7aec8e62f38"
++dependencies = [
++ "memchr",
++]
++
++[[package]]
++name = "filetime"
++version = "0.2.22"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d4029edd3e734da6fe05b6cd7bd2960760a616bd2ddd0d59a0124746d6272af0"
++dependencies = [
++ "cfg-if",
++ "libc",
++ "redox_syscall 0.3.5",
++ "windows-sys 0.48.0",
++]
++
++[[package]]
++name = "normalize-line-endings"
++version = "0.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be"
++
++[[package]]
++name = "os_pipe"
++version = "1.1.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0ae859aa07428ca9a929b936690f8b12dc5f11dd8c6992a18ca93919f28bc177"
++dependencies = [
++ "libc",
++ "windows-sys 0.48.0",
++]
++
++[[package]]
++name = "similar"
++version = "2.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "62ac7f900db32bf3fd12e0117dd3dc4da74bc52ebaac97f39668446d89694803"
++
++
++[[package]]
++name = "snapbox-macros"
++version = "0.3.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "78ccde059aad940984ff696fe8c280900f7ea71a6fb45fce65071a3f2c40b667"
++dependencies = [
++ "anstream",
++]
++
++[[package]]
++name = "tempfile"
++version = "3.9.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "350b9cf31731f9957399229e9b2adc51eeabdfbe9d71d9a0552275fd12710d09"
++checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa"
+ dependencies = [
+- "os_str_bytes",
++ "cfg-if",
++ "fastrand",
++ "redox_syscall 0.4.1",
++ "rustix 0.38.30",
++ "windows-sys 0.52.0",
++]
++
++[[package]]
++name = "wait-timeout"
++version = "0.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6"
++dependencies = [
++ "libc",
++]
++
++[[package]]
++name = "walkdir"
++version = "2.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee"
++dependencies = [
++ "same-file",
++ "winapi-util",
+ ]
+
+ [[package]]
++name = "clap_lex"
++version = "0.7.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
++
++[[package]]
+ name = "cmake"
+ version = "0.1.49"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+@@ -464,12 +678,6 @@
+ ]
+
+ [[package]]
+-name = "humantime"
+-version = "2.1.0"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+-
+-[[package]]
+ name = "idna"
+ version = "0.3.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+@@ -959,9 +1167,9 @@
+
+ [[package]]
+ name = "proc-macro2"
+-version = "1.0.52"
++version = "1.0.70"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "1d0e1ae9e836cc3beddd63db0df682593d7e2d3d891ae8c9083d2113e1744224"
++checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b"
+ dependencies = [
+ "unicode-ident",
+ ]
+@@ -1199,9 +1407,9 @@
+
+ [[package]]
+ name = "strsim"
+-version = "0.10.0"
++version = "0.11.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
++checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01"
+
+ [[package]]
+ name = "strum_macros"
+@@ -1468,7 +1676,25 @@
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
+ dependencies = [
+- "windows-targets",
++ "windows-targets 0.42.2",
++]
++
++[[package]]
++name = "windows-sys"
++version = "0.48.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
++dependencies = [
++ "windows-targets 0.48.5",
++]
++
++[[package]]
++name = "windows-sys"
++version = "0.52.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
++dependencies = [
++ "windows-targets 0.52.0",
+ ]
+
+ [[package]]
+@@ -1477,13 +1703,43 @@
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
+ dependencies = [
+- "windows_aarch64_gnullvm",
+- "windows_aarch64_msvc",
+- "windows_i686_gnu",
+- "windows_i686_msvc",
+- "windows_x86_64_gnu",
+- "windows_x86_64_gnullvm",
+- "windows_x86_64_msvc",
++ "windows_aarch64_gnullvm 0.42.2",
++ "windows_aarch64_msvc 0.42.2",
++ "windows_i686_gnu 0.42.2",
++ "windows_i686_msvc 0.42.2",
++ "windows_x86_64_gnu 0.42.2",
++ "windows_x86_64_gnullvm 0.42.2",
++ "windows_x86_64_msvc 0.42.2",
++]
++
++[[package]]
++name = "windows-targets"
++version = "0.48.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
++dependencies = [
++ "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",
++]
++
++[[package]]
++name = "windows-targets"
++version = "0.52.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
++dependencies = [
++ "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",
+ ]
+
+ [[package]]
+@@ -1493,42 +1749,126 @@
+ checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
+
+ [[package]]
++name = "windows_aarch64_gnullvm"
++version = "0.48.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
++
++[[package]]
++name = "windows_aarch64_gnullvm"
++version = "0.52.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
++
++[[package]]
+ name = "windows_aarch64_msvc"
+ version = "0.42.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
+
+ [[package]]
++name = "windows_aarch64_msvc"
++version = "0.48.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
++
++[[package]]
++name = "windows_aarch64_msvc"
++version = "0.52.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
++
++[[package]]
+ name = "windows_i686_gnu"
+ version = "0.42.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
+
+ [[package]]
++name = "windows_i686_gnu"
++version = "0.48.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
++
++[[package]]
++name = "windows_i686_gnu"
++version = "0.52.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
++
++[[package]]
+ name = "windows_i686_msvc"
+ version = "0.42.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
+
+ [[package]]
++name = "windows_i686_msvc"
++version = "0.48.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
++
++[[package]]
++name = "windows_i686_msvc"
++version = "0.52.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
++
++[[package]]
+ name = "windows_x86_64_gnu"
+ version = "0.42.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
+
+ [[package]]
++name = "windows_x86_64_gnu"
++version = "0.48.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
++
++[[package]]
++name = "windows_x86_64_gnu"
++version = "0.52.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
++
++[[package]]
+ name = "windows_x86_64_gnullvm"
+ version = "0.42.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
+
+ [[package]]
++name = "windows_x86_64_gnullvm"
++version = "0.48.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
++
++[[package]]
++name = "windows_x86_64_gnullvm"
++version = "0.52.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
++
++[[package]]
+ name = "windows_x86_64_msvc"
+ version = "0.42.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
+
+ [[package]]
++name = "windows_x86_64_msvc"
++version = "0.48.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
++
++[[package]]
++name = "windows_x86_64_msvc"
++version = "0.52.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
++
++[[package]]
+ name = "zune-inflate"
+ version = "0.2.51"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
diff --git a/easybuild/easyconfigs/l/LAME/LAME-3.100-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/LAME/LAME-3.100-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..1fa3ca78fd9
--- /dev/null
+++ b/easybuild/easyconfigs/l/LAME/LAME-3.100-GCCcore-13.3.0.eb
@@ -0,0 +1,36 @@
+easyblock = 'ConfigureMake'
+
+name = 'LAME'
+version = '3.100'
+
+homepage = 'http://lame.sourceforge.net/'
+description = """LAME is a high quality MPEG Audio Layer III (MP3) encoder licensed under the LGPL."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://sourceforge.net/projects/lame/files/lame/%(version_major_minor)s/']
+sources = [SOURCELOWER_TAR_GZ]
+patches = ['LAME-3.99.5_check-tgetent.patch']
+checksums = [
+ 'ddfe36cab873794038ae2c1210557ad34857a4b6bdc515785d1da9e175b1da1e', # lame-3.100.tar.gz
+ '8bfb6a73f2db1511baf90fbd7174f11043ec4b592a4917edc30ccfb53bf37256', # LAME-3.99.5_check-tgetent.patch
+]
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('Autotools', '20231222'),
+]
+
+dependencies = [('ncurses', '6.5')]
+
+preconfigopts = "autoconf && "
+
+# configure is broken: add workaround to find libncurses...
+preconfigopts += "FRONTEND_LDADD='-L${EBROOTNCURSES}/lib' "
+
+sanity_check_paths = {
+ 'files': ['bin/lame', 'include/lame/lame.h', 'lib/libmp3lame.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+
+moduleclass = 'data'
diff --git a/easybuild/easyconfigs/l/LAMMPS/LAMMPS-29Aug2024-foss-2023b-kokkos.eb b/easybuild/easyconfigs/l/LAMMPS/LAMMPS-29Aug2024-foss-2023b-kokkos.eb
new file mode 100644
index 00000000000..177e6b4d2ce
--- /dev/null
+++ b/easybuild/easyconfigs/l/LAMMPS/LAMMPS-29Aug2024-foss-2023b-kokkos.eb
@@ -0,0 +1,177 @@
+name = 'LAMMPS'
+version = '29Aug2024'
+versionsuffix = '-kokkos'
+
+homepage = 'https://www.lammps.org'
+description = """LAMMPS is a classical molecular dynamics code, and an acronym
+for Large-scale Atomic/Molecular Massively Parallel Simulator. LAMMPS has
+potentials for solid-state materials (metals, semiconductors) and soft matter
+(biomolecules, polymers) and coarse-grained or mesoscopic systems. It can be
+used to model atoms or, more generically, as a parallel particle simulator at
+the atomic, meso, or continuum scale. LAMMPS runs on single processors or in
+parallel using message-passing techniques and a spatial-decomposition of the
+simulation domain. The code is designed to be easy to modify or extend with new
+functionality.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023b'}
+toolchainopts = {'openmp': True, 'usempi': True}
+
+# 'https://github.com/lammps/lammps/archive/'
+source_urls = [GITHUB_LOWER_SOURCE]
+sources = ['stable_%(version)s.tar.gz']
+patches = [
+ 'LAMMPS-2Aug2023_install_lammps_python_package_in_eb_software_module.patch',
+]
+checksums = [
+ {'stable_29Aug2024.tar.gz': '6112e0cc352c3140a4874c7f74db3c0c8e30134024164509ecf3772b305fde2e'},
+ {'LAMMPS-2Aug2023_install_lammps_python_package_in_eb_software_module.patch':
+ '723c944b62b9d28427d25e80a7a67049631702d344df49268a6846aa0cd0fe04'},
+]
+
+builddependencies = [
+ ('CMake', '3.27.6'),
+ ('pkgconf', '2.0.3'),
+ ('archspec', '0.2.2'),
+]
+dependencies = [
+ ('Python', '3.11.5'),
+ ('libpng', '1.6.40'),
+ ('libjpeg-turbo', '3.0.1'),
+ ('netCDF', '4.9.2'),
+ ('GSL', '2.7'),
+ ('zlib', '1.2.13'),
+ ('gzip', '1.13'),
+ ('cURL', '8.3.0'),
+ ('HDF5', '1.14.3'),
+ ('PCRE', '8.45'),
+ ('libxml2', '2.11.5'),
+ ('FFmpeg', '6.0'),
+ ('Voro++', '0.4.6'),
+ ('kim-api', '2.3.0'),
+ ('Eigen', '3.4.0'),
+ ('PLUMED', '2.9.2'),
+ ('SciPy-bundle', '2023.11'),
+ # VTK package is auto-disabled if this dep is not available
+ ('VTK', '9.3.0'),
+ # We use a custom build of MDI
+ ('MDI', '1.4.29'),
+]
+if ARCH == 'x86_64':
+ # TBB and ScaFaCos are an optional dependency when building on Intel arch
+ dependencies += [
+ ('tbb', '2021.13.0'),
+ ('ScaFaCoS', '1.0.4'),
+ ]
+
+# To use additional custom configuration options, use the 'configopts' easyconfig parameter
+# See docs and lammps easyblock for more information.
+# https://github.com/lammps/lammps/blob/master/cmake/README.md#lammps-configuration-options
+
+# OpenMP-Kokkos build is default in the current easyblock. One can switch to serial backend of Kokkos,
+# which is claimed to be faster in pure MPI calculations
+# configopts = "-DKokkos_ENABLE_SERIAL=yes "
+
+
+# packages auto-enabled by easyblock
+# 'GPU' - if cuda package is present and kokkos is disabled
+# 'KOKKOS' - if kokkos is enabled (by default)
+# 'INTEL' - if builing on Intel CPU
+# 'OPENMP' - if OpenMP swithed on in 'toolchainopts'
+
+# include the following extra packages into the build
+general_packages = [
+ 'AMOEBA',
+ 'ASPHERE',
+ 'ATC',
+ 'AWPMD',
+ 'BOCS',
+ 'BODY',
+ 'BPM',
+ 'BROWNIAN',
+ 'CG-DNA',
+ 'CG-SPICA',
+ 'CLASS2',
+ 'COLLOID',
+ 'COLVARS',
+ 'COMPRESS',
+ 'CORESHELL',
+ 'DIELECTRIC',
+ 'DIFFRACTION',
+ 'DIPOLE',
+ 'DPD-BASIC',
+ 'DPD-MESO',
+ 'DPD-REACT',
+ 'DPD-SMOOTH',
+ 'DRUDE',
+ 'EFF',
+ 'ELECTRODE',
+ 'EXTRA-COMPUTE',
+ 'EXTRA-DUMP',
+ 'EXTRA-FIX',
+ 'EXTRA-MOLECULE',
+ 'EXTRA-PAIR',
+ 'FEP',
+ 'GRANULAR',
+ 'H5MD',
+ 'INTERLAYER',
+ 'KIM',
+ 'KSPACE',
+ 'LATBOLTZ',
+ 'LEPTON',
+ 'MACHDYN',
+ 'MANIFOLD',
+ 'MANYBODY',
+ 'MC',
+ 'MDI',
+ 'MEAM',
+ 'MGPT',
+ 'MISC',
+ 'ML-IAP',
+ 'ML-PACE',
+ 'ML-POD',
+ 'ML-RANN',
+ 'ML-SNAP',
+ 'MOFFF',
+ 'MOLECULE',
+ 'MOLFILE',
+ 'MPIIO',
+ 'NETCDF',
+ 'OPT',
+ 'ORIENT',
+ 'PERI',
+ 'PHONON',
+ 'PLUGIN',
+ 'PLUMED',
+ 'POEMS',
+ 'PTM',
+ 'PYTHON',
+ 'QEQ',
+ 'QTB',
+ 'REACTION',
+ 'REAXFF',
+ 'REPLICA',
+ 'RIGID',
+ 'SCAFACOS',
+ 'SHOCK',
+ 'SMTBQ',
+ 'SPH',
+ 'SPIN',
+ 'SRD',
+ 'TALLY',
+ 'UEF',
+ 'VORONOI',
+ 'VTK',
+ 'YAFF',
+]
+
+# Excluded packages due to requiring additional (non-trivial) deps
+# - ADIOS
+# - LATTE
+# - MESONT (requires very large files downloaded during build)
+# - ML-HDNNP (requires N2P2)
+# - ML-QUIP
+# - MSCG
+# - QMMM (setup seems complex)
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/l/LDC/LDC-1.39.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/l/LDC/LDC-1.39.0-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..f0d3a361152
--- /dev/null
+++ b/easybuild/easyconfigs/l/LDC/LDC-1.39.0-GCCcore-13.2.0.eb
@@ -0,0 +1,39 @@
+easyblock = 'CMakeNinja'
+
+name = 'LDC'
+version = '1.39.0'
+
+homepage = 'https://wiki.dlang.org/LDC'
+description = "The LLVM-based D Compiler"
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+source_urls = ['https://github.com/ldc-developers/ldc/releases/download/v%(version)s']
+sources = ['ldc-%(version)s-src.tar.gz']
+checksums = ['839bac36f6073318e36f0b163767e03bdbd3f57d99256b97494ac439b59a4562']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('CMake', '3.27.6'),
+ ('Ninja', '1.11.1'),
+ # building LDC from source requires LDC
+ ('LDC', '1.24.0', '-%(arch)s', SYSTEM),
+]
+
+dependencies = [
+ ('LLVM', '16.0.6'),
+]
+
+configopts = "-DLLVM_ROOT_DIR=$EBROOTLLVM"
+
+sanity_check_paths = {
+ 'files': ['bin/ldc2', 'bin/ldmd2'],
+ 'dirs': ['include/d', 'lib'],
+}
+
+sanity_check_commands = [
+ "ldc2 --help",
+ "ldmd2 --help",
+]
+
+moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/l/LERC/LERC-4.0.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/LERC/LERC-4.0.0-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..f4d5e9a50be
--- /dev/null
+++ b/easybuild/easyconfigs/l/LERC/LERC-4.0.0-GCCcore-13.3.0.eb
@@ -0,0 +1,45 @@
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+# Updated: Denis Kristak
+# Updated: Thomas Hoffmann (EMBL)
+easyblock = 'CMakeMake'
+
+name = 'LERC'
+version = '4.0.0'
+
+homepage = 'https://github.com/Esri/lerc'
+description = """LERC is an open-source image or raster format which supports rapid encoding and decoding
+for any pixel type (not just RGB or Byte). Users set the maximum compression error per pixel while encoding,
+so the precision of the original input image is preserved (within user defined error bounds)."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://github.com/Esri/lerc/archive/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['91431c2b16d0e3de6cbaea188603359f87caed08259a645fd5a3805784ee30a0']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('CMake', '3.29.3'),
+]
+
+configopts = '-DCMAKE_INSTALL_LIBDIR=lib'
+
+postinstallcmds = [
+ # copy the LercTest source file to a LercTest subdir in the installation directory and compile it
+ # (needs to be done here instead of in the sanity check, else it won't work when RPATH linking is enabled)
+ "cd %(builddir)s/lerc-%(version)s/src/LercTest && sed -i -e 's@../LercLib/include/@@' main.cpp",
+ "mkdir %(installdir)s/LercTest",
+ "cp %(builddir)s/lerc-%(version)s/src/LercTest/main.cpp %(installdir)s/LercTest/main.cpp",
+ "cd %(installdir)s/LercTest && ${CXX} ${CXXFLAGS} main.cpp -o LercTest -I../include -L../lib -lLerc",
+]
+
+sanity_check_commands = [
+ "%(installdir)s/LercTest/LercTest",
+]
+
+sanity_check_paths = {
+ 'files': ['include/Lerc_c_api.h', 'include/Lerc_types.h', 'lib/libLerc.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/l/LIME/LIME-1.3.2-GCCcore-12.3.0.eb b/easybuild/easyconfigs/l/LIME/LIME-1.3.2-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..11dbbfa5025
--- /dev/null
+++ b/easybuild/easyconfigs/l/LIME/LIME-1.3.2-GCCcore-12.3.0.eb
@@ -0,0 +1,53 @@
+easyblock = 'ConfigureMake'
+
+name = "LIME"
+version = "1.3.2"
+
+homepage = "http://usqcd-software.github.io/c-lime/"
+description = """LIME (which can stand for Lattice QCD Interchange Message Encapsulation or more generally,
+Large Internet Message Encapsulation) is a simple packaging scheme for combining records containing ASCII
+and/or binary data. Its ancestors are the Unix cpio and tar formats and the Microsoft Corporation DIME
+(Direct Internet Message Encapsulation) format. It is simpler and allows record sizes up to $2^{63}$ bytes,
+making chunking unnecessary for the foreseeable future. Unlike tar and cpio, the records are not associated
+with Unix files. They are identified only by a record-type (LIME type) character string, analogous to the
+familiar MIME application type. The LIME software package consists of a C-language API for creating, reading,
+writing, and manipulating LIME files and a small set of utilities for examining, packing and unpacking LIME files."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+builddependencies = [
+ ('binutils', '2.40')
+]
+
+sources = [SOURCELOWER_TAR_GZ]
+source_urls = ['http://usqcd-software.github.io/downloads/c-lime/']
+
+checksums = ['db5c07a72a152244f94a84c8bcc7395ec6fa084b8979ca1c8788b99a2870c881']
+
+buildopts = "all"
+
+sanity_check_paths = {
+ 'files': [
+ "bin/lime_pack",
+ "bin/lime_unpack",
+ "bin/lime_contents",
+ "bin/lime_extract_record",
+ "bin/lime_extract_type",
+ "lib/liblime.a",
+ "include/dcap-overload.h",
+ "include/lime_binary_header.h",
+ "include/lime_config.h",
+ "include/lime_config_internal.h",
+ "include/lime_defs.h",
+ "include/lime_fixed_types.h",
+ "include/lime_fseeko.h",
+ "include/lime.h",
+ "include/lime_header.h",
+ "include/lime_reader.h",
+ "include/lime_utils.h",
+ "include/lime_writer.h",
+ ],
+ 'dirs': [],
+}
+
+moduleclass = 'phys'
diff --git a/easybuild/easyconfigs/l/LIME/LIME-1.3.2-GCCcore-13.2.0.eb b/easybuild/easyconfigs/l/LIME/LIME-1.3.2-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..cd8ac72a902
--- /dev/null
+++ b/easybuild/easyconfigs/l/LIME/LIME-1.3.2-GCCcore-13.2.0.eb
@@ -0,0 +1,53 @@
+easyblock = 'ConfigureMake'
+
+name = "LIME"
+version = "1.3.2"
+
+homepage = "http://usqcd-software.github.io/c-lime/"
+description = """LIME (which can stand for Lattice QCD Interchange Message Encapsulation or more generally,
+Large Internet Message Encapsulation) is a simple packaging scheme for combining records containing ASCII
+and/or binary data. Its ancestors are the Unix cpio and tar formats and the Microsoft Corporation DIME
+(Direct Internet Message Encapsulation) format. It is simpler and allows record sizes up to $2^{63}$ bytes,
+making chunking unnecessary for the foreseeable future. Unlike tar and cpio, the records are not associated
+with Unix files. They are identified only by a record-type (LIME type) character string, analogous to the
+familiar MIME application type. The LIME software package consists of a C-language API for creating, reading,
+writing, and manipulating LIME files and a small set of utilities for examining, packing and unpacking LIME files."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+builddependencies = [
+ ('binutils', '2.40')
+]
+
+sources = [SOURCELOWER_TAR_GZ]
+source_urls = ['http://usqcd-software.github.io/downloads/c-lime/']
+
+checksums = ['db5c07a72a152244f94a84c8bcc7395ec6fa084b8979ca1c8788b99a2870c881']
+
+buildopts = "all"
+
+sanity_check_paths = {
+ 'files': [
+ "bin/lime_pack",
+ "bin/lime_unpack",
+ "bin/lime_contents",
+ "bin/lime_extract_record",
+ "bin/lime_extract_type",
+ "lib/liblime.a",
+ "include/dcap-overload.h",
+ "include/lime_binary_header.h",
+ "include/lime_config.h",
+ "include/lime_config_internal.h",
+ "include/lime_defs.h",
+ "include/lime_fixed_types.h",
+ "include/lime_fseeko.h",
+ "include/lime.h",
+ "include/lime_header.h",
+ "include/lime_reader.h",
+ "include/lime_utils.h",
+ "include/lime_writer.h",
+ ],
+ 'dirs': [],
+}
+
+moduleclass = 'phys'
diff --git a/easybuild/easyconfigs/l/LIME/LIME-1.3.2-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/LIME/LIME-1.3.2-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..d36f23151c8
--- /dev/null
+++ b/easybuild/easyconfigs/l/LIME/LIME-1.3.2-GCCcore-13.3.0.eb
@@ -0,0 +1,53 @@
+easyblock = 'ConfigureMake'
+
+name = "LIME"
+version = "1.3.2"
+
+homepage = "http://usqcd-software.github.io/c-lime/"
+description = """LIME (which can stand for Lattice QCD Interchange Message Encapsulation or more generally,
+Large Internet Message Encapsulation) is a simple packaging scheme for combining records containing ASCII
+and/or binary data. Its ancestors are the Unix cpio and tar formats and the Microsoft Corporation DIME
+(Direct Internet Message Encapsulation) format. It is simpler and allows record sizes up to $2^{63}$ bytes,
+making chunking unnecessary for the foreseeable future. Unlike tar and cpio, the records are not associated
+with Unix files. They are identified only by a record-type (LIME type) character string, analogous to the
+familiar MIME application type. The LIME software package consists of a C-language API for creating, reading,
+writing, and manipulating LIME files and a small set of utilities for examining, packing and unpacking LIME files."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+builddependencies = [
+ ('binutils', '2.42')
+]
+
+sources = [SOURCELOWER_TAR_GZ]
+source_urls = ['http://usqcd-software.github.io/downloads/c-lime/']
+
+checksums = ['db5c07a72a152244f94a84c8bcc7395ec6fa084b8979ca1c8788b99a2870c881']
+
+buildopts = "all"
+
+sanity_check_paths = {
+ 'files': [
+ "bin/lime_pack",
+ "bin/lime_unpack",
+ "bin/lime_contents",
+ "bin/lime_extract_record",
+ "bin/lime_extract_type",
+ "lib/liblime.a",
+ "include/dcap-overload.h",
+ "include/lime_binary_header.h",
+ "include/lime_config.h",
+ "include/lime_config_internal.h",
+ "include/lime_defs.h",
+ "include/lime_fixed_types.h",
+ "include/lime_fseeko.h",
+ "include/lime.h",
+ "include/lime_header.h",
+ "include/lime_reader.h",
+ "include/lime_utils.h",
+ "include/lime_writer.h",
+ ],
+ 'dirs': [],
+}
+
+moduleclass = 'phys'
diff --git a/easybuild/easyconfigs/l/LMDB/LMDB-0.9.31-GCCcore-13.2.0.eb b/easybuild/easyconfigs/l/LMDB/LMDB-0.9.31-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..946dd8e0961
--- /dev/null
+++ b/easybuild/easyconfigs/l/LMDB/LMDB-0.9.31-GCCcore-13.2.0.eb
@@ -0,0 +1,38 @@
+easyblock = 'MakeCp'
+
+name = 'LMDB'
+version = '0.9.31'
+
+homepage = 'https://symas.com/lmdb'
+description = """LMDB is a fast, memory-efficient database. With memory-mapped files, it has the read performance
+ of a pure in-memory database while retaining the persistence of standard disk-based databases."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+source_urls = ['https://github.com/LMDB/lmdb/archive/']
+sources = ['%(name)s_%(version)s.tar.gz']
+checksums = ['dd70a8c67807b3b8532b3e987b0a4e998962ecc28643e1af5ec77696b081c9b0']
+
+builddependencies = [('binutils', '2.40')]
+
+buildopts = 'CC="$CC" OPT="$CFLAGS"'
+
+runtest = 'test'
+
+local_binaries = ['mdb_copy', 'mdb_dump', 'mdb_load', 'mdb_stat']
+
+files_to_copy = [
+ (['lmdb.h', 'midl.h'], 'include'),
+ (local_binaries, 'bin'),
+ (['liblmdb.a', 'liblmdb.%s' % SHLIB_EXT], 'lib'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/mdb_copy', 'bin/mdb_dump', 'bin/mdb_load', 'bin/mdb_stat', 'include/lmdb.h',
+ 'include/midl.h', 'lib/liblmdb.a', 'lib/liblmdb.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["%s -V" % x for x in local_binaries]
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/l/LMDB/LMDB-0.9.31-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/LMDB/LMDB-0.9.31-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..a10be56a891
--- /dev/null
+++ b/easybuild/easyconfigs/l/LMDB/LMDB-0.9.31-GCCcore-13.3.0.eb
@@ -0,0 +1,38 @@
+easyblock = 'MakeCp'
+
+name = 'LMDB'
+version = '0.9.31'
+
+homepage = 'https://symas.com/lmdb'
+description = """LMDB is a fast, memory-efficient database. With memory-mapped files, it has the read performance
+ of a pure in-memory database while retaining the persistence of standard disk-based databases."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://github.com/LMDB/lmdb/archive/']
+sources = ['%(name)s_%(version)s.tar.gz']
+checksums = ['dd70a8c67807b3b8532b3e987b0a4e998962ecc28643e1af5ec77696b081c9b0']
+
+builddependencies = [('binutils', '2.42')]
+
+buildopts = 'CC="$CC" OPT="$CFLAGS"'
+
+runtest = 'test'
+
+local_binaries = ['mdb_copy', 'mdb_dump', 'mdb_load', 'mdb_stat']
+
+files_to_copy = [
+ (['lmdb.h', 'midl.h'], 'include'),
+ (local_binaries, 'bin'),
+ (['liblmdb.a', 'liblmdb.%s' % SHLIB_EXT], 'lib'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/mdb_copy', 'bin/mdb_dump', 'bin/mdb_load', 'bin/mdb_stat', 'include/lmdb.h',
+ 'include/midl.h', 'lib/liblmdb.a', 'lib/liblmdb.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["%s -V" % x for x in local_binaries]
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/l/LRBinner/LRBinner-0.1-foss-2023a.eb b/easybuild/easyconfigs/l/LRBinner/LRBinner-0.1-foss-2023a.eb
new file mode 100644
index 00000000000..143e59d35c5
--- /dev/null
+++ b/easybuild/easyconfigs/l/LRBinner/LRBinner-0.1-foss-2023a.eb
@@ -0,0 +1,44 @@
+easyblock = 'PythonBundle'
+
+name = 'LRBinner'
+version = '0.1'
+
+homepage = 'https://github.com/anuradhawick/LRBinner'
+description = "LRBinner is a long-read binning tool published in WABI 2021 proceedings and AMB. "
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('HMMER', '3.4'),
+ ('Seaborn', '0.13.2'),
+ ('h5py', '3.9.0'),
+ ('PyTorch', '2.1.2'),
+ ('tqdm', '4.66.1'),
+ ('Biopython', '1.83'),
+ ('scikit-learn', '1.3.1'),
+ ('FragGeneScan', '1.31'),
+ ('HDBSCAN', '0.8.38.post1'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('tabulate', '0.9.0', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['024ca478df22e9340661486f85298cff5f6dcdba14f3813e8830015b9ed1948f'],
+ }),
+ (name, version, {
+ 'modulename': 'mbcclr_utils',
+ 'preinstallopts': "sed -i 's/pytorch/torch/g' setup.py && ",
+ 'source_urls': ['https://github.com/anuradhawick/LRBinner/archive/'],
+ 'sources': ['v%(version)s.tar.gz'],
+ 'checksums': ['2d77dde8ab1272c432b20eb18a352326c622e929261562ef6d680c6638cc4bd1'],
+ }),
+]
+
+sanity_check_commands = ['LRBinner --help']
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/l/LZO/LZO-2.10-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/LZO/LZO-2.10-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..4d8ccd20b1f
--- /dev/null
+++ b/easybuild/easyconfigs/l/LZO/LZO-2.10-GCCcore-13.3.0.eb
@@ -0,0 +1,27 @@
+easyblock = 'ConfigureMake'
+
+name = 'LZO'
+version = '2.10'
+
+homepage = 'https://www.oberhumer.com/opensource/lzo/'
+description = "Portable lossless data compression library"
+
+source_urls = [homepage + 'download/']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['c0f892943208266f9b6543b3ae308fab6284c5c90e627931446fb49b4221a072']
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+builddependencies = [('binutils', '2.42')]
+
+configopts = '--enable-shared'
+
+runtest = 'test'
+
+sanity_check_paths = {
+ 'files': ['lib/liblzo2.a', 'lib/liblzo2.%s' % SHLIB_EXT],
+ 'dirs': ['include']
+}
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/l/Leptonica/Leptonica-1.84.1-GCCcore-12.3.0.eb b/easybuild/easyconfigs/l/Leptonica/Leptonica-1.84.1-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..ee92fb98c62
--- /dev/null
+++ b/easybuild/easyconfigs/l/Leptonica/Leptonica-1.84.1-GCCcore-12.3.0.eb
@@ -0,0 +1,32 @@
+easyblock = 'ConfigureMake'
+
+name = 'Leptonica'
+version = '1.84.1'
+
+homepage = 'http://www.leptonica.org'
+description = """Leptonica is a collection of pedagogically-oriented open source software
+ that is broadly useful for image processing and image analysis applications."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = ['https://github.com/DanBloomberg/leptonica/releases/download/%(version)s/']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['2b3e1254b1cca381e77c819b59ca99774ff43530209b9aeb511e1d46588a64f6']
+
+builddependencies = [('binutils', '2.40')]
+
+dependencies = [
+ ('libpng', '1.6.39'),
+ ('LibTIFF', '4.5.0'),
+ ('libjpeg-turbo', '2.1.5.1'),
+ ('giflib', '5.2.1'),
+ ('libwebp', '1.3.1'),
+ ('zlib', '1.2.13'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/convertformat'],
+ 'dirs': ['include/leptonica', 'lib/pkgconfig']
+}
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/l/LevelDB/LevelDB-1.22-GCCcore-11.3.0.eb b/easybuild/easyconfigs/l/LevelDB/LevelDB-1.22-GCCcore-11.3.0.eb
index 35889241c08..cf2d0aace66 100644
--- a/easybuild/easyconfigs/l/LevelDB/LevelDB-1.22-GCCcore-11.3.0.eb
+++ b/easybuild/easyconfigs/l/LevelDB/LevelDB-1.22-GCCcore-11.3.0.eb
@@ -47,6 +47,6 @@ sanity_check_paths = {
'dirs': ['lib/python%(pyshortver)s/site-packages'],
}
-sanity_check_commands = ["pip check"]
+sanity_check_commands = ["PIP_DISABLE_PIP_VERSION_CHECK=true python -s -m pip check"]
moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/l/LightGBM/LightGBM-4.5.0-foss-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/l/LightGBM/LightGBM-4.5.0-foss-2023a-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..638330e8866
--- /dev/null
+++ b/easybuild/easyconfigs/l/LightGBM/LightGBM-4.5.0-foss-2023a-CUDA-12.1.1.eb
@@ -0,0 +1,56 @@
+easyblock = 'PythonBundle'
+
+name = "LightGBM"
+version = "4.5.0"
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = "https://lightgbm.readthedocs.io"
+description = """A fast, distributed, high performance gradient boosting (GBT, GBDT, GBRT, GBM
+or MART) framework based on decision tree algorithms, used for ranking,
+classification and many other machine learning tasks."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+builddependencies = [
+ ('scikit-build-core', '0.9.3'),
+ ('wget', '1.24.5'),
+]
+
+dependencies = [
+ ('CUDA', '12.1.1', '', SYSTEM),
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('Arrow', '14.0.1'), # optional
+ ('dask', '2023.9.2'), # optional
+ ('scikit-learn', '1.3.1'), # optional
+]
+
+use_pip = True
+
+# example files are not distributed with the sources
+_test_repo_url = "https://raw.githubusercontent.com/microsoft/LightGBM/refs/tags/v%(version)s/examples"
+_test_cmds_pre = " && ".join([
+ "mkdir regression",
+ "wget -P regression %s/regression/regression.test" % _test_repo_url,
+ "wget -P regression %s/regression/regression.train" % _test_repo_url,
+ "mkdir test",
+ "cd test",
+ "wget %s/python-guide/simple_example.py" % _test_repo_url,
+ "",
+])
+
+exts_list = [
+ ('lightgbm', version, {
+ 'checksums': ['e1cd7baf0318d4e308a26575a63a4635f08df866ad3622a9d8e3d71d9637a1ba'],
+ 'installopts': "--config-settings=cmake.define.USE_CUDA=ON",
+ 'use_pip_extras': "arrow,dask,pandas,scikit-learn",
+ 'pretestopts': _test_cmds_pre,
+ 'runtest': 'python',
+ 'testopts': "simple_example.py",
+ 'testinstall': True,
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'ai'
diff --git a/easybuild/easyconfigs/l/LightGBM/LightGBM-4.5.0-foss-2023a.eb b/easybuild/easyconfigs/l/LightGBM/LightGBM-4.5.0-foss-2023a.eb
new file mode 100644
index 00000000000..b6a03faf9ca
--- /dev/null
+++ b/easybuild/easyconfigs/l/LightGBM/LightGBM-4.5.0-foss-2023a.eb
@@ -0,0 +1,54 @@
+easyblock = 'PythonBundle'
+
+name = "LightGBM"
+version = "4.5.0"
+
+homepage = "https://lightgbm.readthedocs.io"
+description = """A fast, distributed, high performance gradient boosting (GBT, GBDT, GBRT, GBM
+or MART) framework based on decision tree algorithms, used for ranking,
+classification and many other machine learning tasks."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+builddependencies = [
+ ('scikit-build-core', '0.9.3'),
+ ('wget', '1.24.5'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('Arrow', '14.0.1'), # optional
+ ('dask', '2023.9.2'), # optional
+ ('scikit-learn', '1.3.1'), # optional
+]
+
+use_pip = True
+
+# example files are not distributed with the sources
+_test_repo_url = "https://raw.githubusercontent.com/microsoft/LightGBM/refs/tags/v%(version)s/examples"
+_test_cmds_pre = " && ".join([
+ "mkdir regression",
+ "wget -P regression %s/regression/regression.test" % _test_repo_url,
+ "wget -P regression %s/regression/regression.train" % _test_repo_url,
+ "mkdir test",
+ "cd test",
+ "wget %s/python-guide/simple_example.py" % _test_repo_url,
+ "",
+])
+
+exts_list = [
+ ('lightgbm', version, {
+ 'checksums': ['e1cd7baf0318d4e308a26575a63a4635f08df866ad3622a9d8e3d71d9637a1ba'],
+ 'installopts': "--config-settings=cmake.define.USE_MPI=ON",
+ 'use_pip_extras': "arrow,dask,pandas,scikit-learn",
+ 'pretestopts': _test_cmds_pre,
+ 'runtest': 'python',
+ 'testopts': "simple_example.py",
+ 'testinstall': True,
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'ai'
diff --git a/easybuild/easyconfigs/l/Lightning/Lightning-2.2.1-foss-2023a.eb b/easybuild/easyconfigs/l/Lightning/Lightning-2.2.1-foss-2023a.eb
new file mode 100644
index 00000000000..5635e783f7c
--- /dev/null
+++ b/easybuild/easyconfigs/l/Lightning/Lightning-2.2.1-foss-2023a.eb
@@ -0,0 +1,31 @@
+easyblock = 'PythonPackage'
+
+name = 'Lightning'
+version = '2.2.1'
+
+homepage = 'https://github.com/Lightning-AI/pytorch-lightning'
+description = """
+The deep learning framework to pretrain, finetune and deploy AI models.
+Lightning has 4 core packages:
+ PyTorch Lightning: Train and deploy PyTorch at scale.
+ Lightning Fabric: Expert control.
+ Lightning Data: Blazing fast, distributed streaming of training data from cloud storage.
+ Lightning Apps: Build AI products and ML workflows.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['b3e46d596b32cafd1fb9b21fdba1b1767df97b1af5cc702693d1c51df60b19aa']
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('PyTorch', '2.1.2'),
+ ('PyTorch-Lightning', version),
+]
+
+download_dep_fail = True
+use_pip = True
+sanity_pip_check = True
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/l/LittleCMS/LittleCMS-2.16-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/LittleCMS/LittleCMS-2.16-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..121d33200a2
--- /dev/null
+++ b/easybuild/easyconfigs/l/LittleCMS/LittleCMS-2.16-GCCcore-13.3.0.eb
@@ -0,0 +1,26 @@
+easyblock = 'ConfigureMake'
+
+name = 'LittleCMS'
+version = '2.16'
+
+homepage = 'https://www.littlecms.com/'
+description = """ Little CMS intends to be an OPEN SOURCE small-footprint color management engine,
+ with special focus on accuracy and performance. """
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://sourceforge.net/projects/lcms/files/lcms/%s/' % '.'.join(version.split('.')[:2])]
+sources = ['lcms2-%(version)s.tar.gz']
+checksums = ['d873d34ad8b9b4cea010631f1a6228d2087475e4dc5e763eb81acc23d9d45a51']
+
+builddependencies = [('binutils', '2.42')]
+
+dependencies = [('libjpeg-turbo', '3.0.1')]
+
+sanity_check_paths = {
+ 'files': ['bin/jpgicc', 'bin/linkicc', 'bin/psicc', 'bin/transicc', 'include/lcms2.h', 'include/lcms2_plugin.h',
+ 'lib/liblcms2.a', 'lib/liblcms2.%s' % SHLIB_EXT, 'lib/pkgconfig/lcms2.pc'],
+ 'dirs': ['share/man'],
+}
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/l/Longshot/Longshot-1.0.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/l/Longshot/Longshot-1.0.0-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..0a67a58490f
--- /dev/null
+++ b/easybuild/easyconfigs/l/Longshot/Longshot-1.0.0-GCCcore-12.3.0.eb
@@ -0,0 +1,331 @@
+easyblock = 'Cargo'
+
+name = 'Longshot'
+version = '1.0.0'
+
+homepage = 'https://github.com/pjedge/longshot'
+description = """Longshot is a variant calling tool for diploid genomes using long error prone reads such as Pacific
+ Biosciences (PacBio) SMRT and Oxford Nanopore Technologies (ONT). It takes as input an aligned BAM file and outputs
+ a phased VCF file with variants and haplotype information. It can also output haplotype-separated BAM files that can
+ be used for downstream analysis. Currently, it only calls single nucleotide variants (SNVs)."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+crates = [
+ ('addr2line', '0.24.2'),
+ ('adler2', '2.0.0'),
+ ('ahash', '0.7.8'),
+ ('aho-corasick', '1.1.3'),
+ ('android-tzdata', '0.1.1'),
+ ('android_system_properties', '0.1.5'),
+ ('ansi_term', '0.12.1'),
+ ('approx', '0.3.2'),
+ ('atty', '0.2.14'),
+ ('autocfg', '1.4.0'),
+ ('backtrace', '0.3.74'),
+ ('bio', '0.25.0'),
+ ('bio-types', '1.0.4'),
+ ('bit-set', '0.5.3'),
+ ('bit-vec', '0.6.3'),
+ ('bitflags', '1.3.2'),
+ ('bumpalo', '3.16.0'),
+ ('bv', '0.10.0'),
+ ('bytecount', '0.3.2'),
+ ('byteorder', '1.5.0'),
+ ('bzip2-sys', '0.1.11+1.0.8'),
+ ('cc', '1.1.30'),
+ ('cfg-if', '1.0.0'),
+ ('chrono', '0.4.38'),
+ ('clap', '2.34.0'),
+ ('cmake', '0.1.51'),
+ ('core-foundation-sys', '0.8.7'),
+ ('csv', '1.3.0'),
+ ('csv-core', '0.1.11'),
+ ('curl-sys', '0.4.77+curl-8.10.1'),
+ ('custom_derive', '0.1.7'),
+ ('derive-new', '0.5.9'),
+ ('derive-new', '0.6.0'),
+ ('either', '1.13.0'),
+ ('error-chain', '0.12.4'),
+ ('feature-probe', '0.1.1'),
+ ('fishers_exact', '1.0.1'),
+ ('fnv', '1.0.7'),
+ ('form_urlencoded', '1.2.1'),
+ ('fs-utils', '1.1.4'),
+ ('fuchsia-cprng', '0.1.1'),
+ ('fxhash', '0.2.1'),
+ ('getrandom', '0.2.15'),
+ ('gimli', '0.31.1'),
+ ('glob', '0.3.1'),
+ ('hashbrown', '0.11.2'),
+ ('heck', '0.5.0'),
+ ('hermit-abi', '0.1.19'),
+ ('hts-sys', '2.1.4'),
+ ('iana-time-zone', '0.1.61'),
+ ('iana-time-zone-haiku', '0.1.2'),
+ ('idna', '0.5.0'),
+ ('ieee754', '0.2.6'),
+ ('itertools', '0.7.11'),
+ ('itertools-num', '0.1.3'),
+ ('itoa', '1.0.11'),
+ ('jobserver', '0.1.32'),
+ ('js-sys', '0.3.72'),
+ ('lazy_static', '1.5.0'),
+ ('libc', '0.2.159'),
+ ('libz-sys', '1.1.20'),
+ ('linear-map', '1.2.0'),
+ ('log', '0.4.22'),
+ ('lzma-sys', '0.1.20'),
+ ('matrixmultiply', '0.1.15'),
+ ('memchr', '2.7.4'),
+ ('miniz_oxide', '0.8.0'),
+ ('multimap', '0.4.0'),
+ ('ndarray', '0.12.1'),
+ ('newtype_derive', '0.1.6'),
+ ('num-complex', '0.2.4'),
+ ('num-integer', '0.1.46'),
+ ('num-traits', '0.2.19'),
+ ('object', '0.36.5'),
+ ('once_cell', '1.20.2'),
+ ('openssl-src', '300.3.2+3.3.2'),
+ ('openssl-sys', '0.9.104'),
+ ('ordered-float', '1.1.1'),
+ ('percent-encoding', '2.3.1'),
+ ('pkg-config', '0.3.31'),
+ ('ppv-lite86', '0.2.20'),
+ ('proc-macro2', '1.0.88'),
+ ('quick-error', '1.2.3'),
+ ('quote', '1.0.37'),
+ ('rand', '0.3.23'),
+ ('rand', '0.4.6'),
+ ('rand', '0.8.5'),
+ ('rand_chacha', '0.3.1'),
+ ('rand_core', '0.3.1'),
+ ('rand_core', '0.4.2'),
+ ('rand_core', '0.6.4'),
+ ('rawpointer', '0.1.0'),
+ ('rdrand', '0.4.0'),
+ ('regex', '1.11.0'),
+ ('regex-automata', '0.4.8'),
+ ('regex-syntax', '0.8.5'),
+ ('rust-htslib', '0.38.2'),
+ ('rustc-demangle', '0.1.24'),
+ ('rustc_version', '0.1.7'),
+ ('rustversion', '1.0.18'),
+ ('ryu', '1.0.18'),
+ ('semver', '0.1.20'),
+ ('serde', '1.0.210'),
+ ('serde_derive', '1.0.210'),
+ ('shlex', '1.3.0'),
+ ('statrs', '0.9.0'),
+ ('strsim', '0.8.0'),
+ ('strum_macros', '0.26.4'),
+ ('syn', '1.0.109'),
+ ('syn', '2.0.79'),
+ ('textwrap', '0.11.0'),
+ ('thiserror', '1.0.64'),
+ ('thiserror-impl', '1.0.64'),
+ ('tinyvec', '1.8.0'),
+ ('tinyvec_macros', '0.1.1'),
+ ('unicode-bidi', '0.3.17'),
+ ('unicode-ident', '1.0.13'),
+ ('unicode-normalization', '0.1.24'),
+ ('unicode-width', '0.1.14'),
+ ('url', '2.5.2'),
+ ('vcpkg', '0.2.15'),
+ ('vec_map', '0.8.2'),
+ ('version_check', '0.9.5'),
+ ('wasi', '0.11.0+wasi-snapshot-preview1'),
+ ('wasm-bindgen', '0.2.95'),
+ ('wasm-bindgen-backend', '0.2.95'),
+ ('wasm-bindgen-macro', '0.2.95'),
+ ('wasm-bindgen-macro-support', '0.2.95'),
+ ('wasm-bindgen-shared', '0.2.95'),
+ ('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.52.0'),
+ ('windows-targets', '0.52.6'),
+ ('windows_aarch64_gnullvm', '0.52.6'),
+ ('windows_aarch64_msvc', '0.52.6'),
+ ('windows_i686_gnu', '0.52.6'),
+ ('windows_i686_gnullvm', '0.52.6'),
+ ('windows_i686_msvc', '0.52.6'),
+ ('windows_x86_64_gnu', '0.52.6'),
+ ('windows_x86_64_gnullvm', '0.52.6'),
+ ('windows_x86_64_msvc', '0.52.6'),
+ ('zerocopy', '0.7.35'),
+ ('zerocopy-derive', '0.7.35'),
+]
+source_urls = ['https://github.com/pjedge/longshot/archive']
+sources = ['v%(version)s.tar.gz']
+checksums = [
+ {'v1.0.0.tar.gz': 'f6981892beb966eef40986c46928301dec1fef38591cc291e00a546f9866c5e2'},
+ {'addr2line-0.24.2.tar.gz': 'dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1'},
+ {'adler2-2.0.0.tar.gz': '512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627'},
+ {'ahash-0.7.8.tar.gz': '891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9'},
+ {'aho-corasick-1.1.3.tar.gz': '8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916'},
+ {'android-tzdata-0.1.1.tar.gz': 'e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0'},
+ {'android_system_properties-0.1.5.tar.gz': '819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311'},
+ {'ansi_term-0.12.1.tar.gz': 'd52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2'},
+ {'approx-0.3.2.tar.gz': 'f0e60b75072ecd4168020818c0107f2857bb6c4e64252d8d3983f6263b40a5c3'},
+ {'atty-0.2.14.tar.gz': 'd9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8'},
+ {'autocfg-1.4.0.tar.gz': 'ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26'},
+ {'backtrace-0.3.74.tar.gz': '8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a'},
+ {'bio-0.25.0.tar.gz': '83fb5223acf893048c6ad04e325eee1233882e76687615bf0d43a6dd9b8d6cc1'},
+ {'bio-types-1.0.4.tar.gz': 'f4dcf54f8b7f51450207d54780bab09c05f30b8b0caa991545082842e466ad7e'},
+ {'bit-set-0.5.3.tar.gz': '0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1'},
+ {'bit-vec-0.6.3.tar.gz': '349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb'},
+ {'bitflags-1.3.2.tar.gz': 'bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a'},
+ {'bumpalo-3.16.0.tar.gz': '79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c'},
+ {'bv-0.10.0.tar.gz': '0d6ef54f583d35d34319ac74510aa2136929e97db601660b250178e7e68b1be4'},
+ {'bytecount-0.3.2.tar.gz': 'f861d9ce359f56dbcb6e0c2a1cb84e52ad732cadb57b806adeb3c7668caccbd8'},
+ {'byteorder-1.5.0.tar.gz': '1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b'},
+ {'bzip2-sys-0.1.11+1.0.8.tar.gz': '736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc'},
+ {'cc-1.1.30.tar.gz': 'b16803a61b81d9eabb7eae2588776c4c1e584b738ede45fdbb4c972cec1e9945'},
+ {'cfg-if-1.0.0.tar.gz': 'baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd'},
+ {'chrono-0.4.38.tar.gz': 'a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401'},
+ {'clap-2.34.0.tar.gz': 'a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c'},
+ {'cmake-0.1.51.tar.gz': 'fb1e43aa7fd152b1f968787f7dbcdeb306d1867ff373c69955211876c053f91a'},
+ {'core-foundation-sys-0.8.7.tar.gz': '773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b'},
+ {'csv-1.3.0.tar.gz': 'ac574ff4d437a7b5ad237ef331c17ccca63c46479e5b5453eb8e10bb99a759fe'},
+ {'csv-core-0.1.11.tar.gz': '5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70'},
+ {'curl-sys-0.4.77+curl-8.10.1.tar.gz': 'f469e8a5991f277a208224f6c7ad72ecb5f986e36d09ae1f2c1bb9259478a480'},
+ {'custom_derive-0.1.7.tar.gz': 'ef8ae57c4978a2acd8b869ce6b9ca1dfe817bff704c220209fdef2c0b75a01b9'},
+ {'derive-new-0.5.9.tar.gz': '3418329ca0ad70234b9735dc4ceed10af4df60eff9c8e7b06cb5e520d92c3535'},
+ {'derive-new-0.6.0.tar.gz': 'd150dea618e920167e5973d70ae6ece4385b7164e0d799fe7c122dd0a5d912ad'},
+ {'either-1.13.0.tar.gz': '60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0'},
+ {'error-chain-0.12.4.tar.gz': '2d2f06b9cac1506ece98fe3231e3cc9c4410ec3d5b1f24ae1c8946f0742cdefc'},
+ {'feature-probe-0.1.1.tar.gz': '835a3dc7d1ec9e75e2b5fb4ba75396837112d2060b03f7d43bc1897c7f7211da'},
+ {'fishers_exact-1.0.1.tar.gz': '64993467e77edcbfce160dae38337b4c538aa0e8027039c6eabba8fa335c7b1e'},
+ {'fnv-1.0.7.tar.gz': '3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1'},
+ {'form_urlencoded-1.2.1.tar.gz': 'e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456'},
+ {'fs-utils-1.1.4.tar.gz': '6fc7a9dc005c944c98a935e7fd626faf5bf7e5a609f94bc13e42fc4a02e52593'},
+ {'fuchsia-cprng-0.1.1.tar.gz': 'a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba'},
+ {'fxhash-0.2.1.tar.gz': 'c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c'},
+ {'getrandom-0.2.15.tar.gz': 'c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7'},
+ {'gimli-0.31.1.tar.gz': '07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f'},
+ {'glob-0.3.1.tar.gz': 'd2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b'},
+ {'hashbrown-0.11.2.tar.gz': 'ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e'},
+ {'heck-0.5.0.tar.gz': '2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea'},
+ {'hermit-abi-0.1.19.tar.gz': '62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33'},
+ {'hts-sys-2.1.4.tar.gz': 'e9f348d14cb4e50444e39fcd6b00302fe2ed2bc88094142f6278391d349a386d'},
+ {'iana-time-zone-0.1.61.tar.gz': '235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220'},
+ {'iana-time-zone-haiku-0.1.2.tar.gz': 'f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f'},
+ {'idna-0.5.0.tar.gz': '634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6'},
+ {'ieee754-0.2.6.tar.gz': '9007da9cacbd3e6343da136e98b0d2df013f553d35bdec8b518f07bea768e19c'},
+ {'itertools-0.7.11.tar.gz': '0d47946d458e94a1b7bcabbf6521ea7c037062c81f534615abcad76e84d4970d'},
+ {'itertools-num-0.1.3.tar.gz': 'a872a22f9e6f7521ca557660adb96dd830e54f0f490fa115bb55dd69d38b27e7'},
+ {'itoa-1.0.11.tar.gz': '49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b'},
+ {'jobserver-0.1.32.tar.gz': '48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0'},
+ {'js-sys-0.3.72.tar.gz': '6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9'},
+ {'lazy_static-1.5.0.tar.gz': 'bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe'},
+ {'libc-0.2.159.tar.gz': '561d97a539a36e26a9a5fad1ea11a3039a67714694aaa379433e580854bc3dc5'},
+ {'libz-sys-1.1.20.tar.gz': 'd2d16453e800a8cf6dd2fc3eb4bc99b786a9b90c663b8559a5b1a041bf89e472'},
+ {'linear-map-1.2.0.tar.gz': 'bfae20f6b19ad527b550c223fddc3077a547fc70cda94b9b566575423fd303ee'},
+ {'log-0.4.22.tar.gz': 'a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24'},
+ {'lzma-sys-0.1.20.tar.gz': '5fda04ab3764e6cde78b9974eec4f779acaba7c4e84b36eca3cf77c581b85d27'},
+ {'matrixmultiply-0.1.15.tar.gz': 'dcad67dcec2d58ff56f6292582377e6921afdf3bfbd533e26fb8900ae575e002'},
+ {'memchr-2.7.4.tar.gz': '78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3'},
+ {'miniz_oxide-0.8.0.tar.gz': 'e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1'},
+ {'multimap-0.4.0.tar.gz': '2eb04b9f127583ed176e163fb9ec6f3e793b87e21deedd5734a69386a18a0151'},
+ {'ndarray-0.12.1.tar.gz': '7cf380a8af901ad627594013a3bbac903ae0a6f94e176e47e46b5bbc1877b928'},
+ {'newtype_derive-0.1.6.tar.gz': 'ac8cd24d9f185bb7223958d8c1ff7a961b74b1953fd05dba7cc568a63b3861ec'},
+ {'num-complex-0.2.4.tar.gz': 'b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95'},
+ {'num-integer-0.1.46.tar.gz': '7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f'},
+ {'num-traits-0.2.19.tar.gz': '071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841'},
+ {'object-0.36.5.tar.gz': 'aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e'},
+ {'once_cell-1.20.2.tar.gz': '1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775'},
+ {'openssl-src-300.3.2+3.3.2.tar.gz': 'a211a18d945ef7e648cc6e0058f4c548ee46aab922ea203e0d30e966ea23647b'},
+ {'openssl-sys-0.9.104.tar.gz': '45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741'},
+ {'ordered-float-1.1.1.tar.gz': '3305af35278dd29f46fcdd139e0b1fbfae2153f0e5928b39b035542dd31e37b7'},
+ {'percent-encoding-2.3.1.tar.gz': 'e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e'},
+ {'pkg-config-0.3.31.tar.gz': '953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2'},
+ {'ppv-lite86-0.2.20.tar.gz': '77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04'},
+ {'proc-macro2-1.0.88.tar.gz': '7c3a7fc5db1e57d5a779a352c8cdb57b29aa4c40cc69c3a68a7fedc815fbf2f9'},
+ {'quick-error-1.2.3.tar.gz': 'a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0'},
+ {'quote-1.0.37.tar.gz': 'b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af'},
+ {'rand-0.3.23.tar.gz': '64ac302d8f83c0c1974bf758f6b041c6c8ada916fbb44a609158ca8b064cc76c'},
+ {'rand-0.4.6.tar.gz': '552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293'},
+ {'rand-0.8.5.tar.gz': '34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404'},
+ {'rand_chacha-0.3.1.tar.gz': 'e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88'},
+ {'rand_core-0.3.1.tar.gz': '7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b'},
+ {'rand_core-0.4.2.tar.gz': '9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc'},
+ {'rand_core-0.6.4.tar.gz': 'ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c'},
+ {'rawpointer-0.1.0.tar.gz': 'ebac11a9d2e11f2af219b8b8d833b76b1ea0e054aa0e8d8e9e4cbde353bdf019'},
+ {'rdrand-0.4.0.tar.gz': '678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2'},
+ {'regex-1.11.0.tar.gz': '38200e5ee88914975b69f657f0801b6f6dccafd44fd9326302a4aaeecfacb1d8'},
+ {'regex-automata-0.4.8.tar.gz': '368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3'},
+ {'regex-syntax-0.8.5.tar.gz': '2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c'},
+ {'rust-htslib-0.38.2.tar.gz': '2aca6626496389f6e015e25433b85e2895ad3644b44de91167d847bf2d8c1a1c'},
+ {'rustc-demangle-0.1.24.tar.gz': '719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f'},
+ {'rustc_version-0.1.7.tar.gz': 'c5f5376ea5e30ce23c03eb77cbe4962b988deead10910c372b226388b594c084'},
+ {'rustversion-1.0.18.tar.gz': '0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248'},
+ {'ryu-1.0.18.tar.gz': 'f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f'},
+ {'semver-0.1.20.tar.gz': 'd4f410fedcf71af0345d7607d246e7ad15faaadd49d240ee3b24e5dc21a820ac'},
+ {'serde-1.0.210.tar.gz': 'c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a'},
+ {'serde_derive-1.0.210.tar.gz': '243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f'},
+ {'shlex-1.3.0.tar.gz': '0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64'},
+ {'statrs-0.9.0.tar.gz': '7d8c8660e3867d1a0578cbf7fd9532f1368b7460bd00b080e2d4669618a9bec7'},
+ {'strsim-0.8.0.tar.gz': '8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a'},
+ {'strum_macros-0.26.4.tar.gz': '4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be'},
+ {'syn-1.0.109.tar.gz': '72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237'},
+ {'syn-2.0.79.tar.gz': '89132cd0bf050864e1d38dc3bbc07a0eb8e7530af26344d3d2bbbef83499f590'},
+ {'textwrap-0.11.0.tar.gz': 'd326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060'},
+ {'thiserror-1.0.64.tar.gz': 'd50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84'},
+ {'thiserror-impl-1.0.64.tar.gz': '08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3'},
+ {'tinyvec-1.8.0.tar.gz': '445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938'},
+ {'tinyvec_macros-0.1.1.tar.gz': '1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20'},
+ {'unicode-bidi-0.3.17.tar.gz': '5ab17db44d7388991a428b2ee655ce0c212e862eff1768a455c58f9aad6e7893'},
+ {'unicode-ident-1.0.13.tar.gz': 'e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe'},
+ {'unicode-normalization-0.1.24.tar.gz': '5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956'},
+ {'unicode-width-0.1.14.tar.gz': '7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af'},
+ {'url-2.5.2.tar.gz': '22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c'},
+ {'vcpkg-0.2.15.tar.gz': 'accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426'},
+ {'vec_map-0.8.2.tar.gz': 'f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191'},
+ {'version_check-0.9.5.tar.gz': '0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a'},
+ {'wasi-0.11.0+wasi-snapshot-preview1.tar.gz': '9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423'},
+ {'wasm-bindgen-0.2.95.tar.gz': '128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e'},
+ {'wasm-bindgen-backend-0.2.95.tar.gz': 'cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358'},
+ {'wasm-bindgen-macro-0.2.95.tar.gz': 'e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56'},
+ {'wasm-bindgen-macro-support-0.2.95.tar.gz': '26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68'},
+ {'wasm-bindgen-shared-0.2.95.tar.gz': '65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d'},
+ {'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.52.0.tar.gz': '282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d'},
+ {'windows-targets-0.52.6.tar.gz': '9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973'},
+ {'windows_aarch64_gnullvm-0.52.6.tar.gz': '32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3'},
+ {'windows_aarch64_msvc-0.52.6.tar.gz': '09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469'},
+ {'windows_i686_gnu-0.52.6.tar.gz': '8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b'},
+ {'windows_i686_gnullvm-0.52.6.tar.gz': '0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66'},
+ {'windows_i686_msvc-0.52.6.tar.gz': '240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66'},
+ {'windows_x86_64_gnu-0.52.6.tar.gz': '147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78'},
+ {'windows_x86_64_gnullvm-0.52.6.tar.gz': '24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d'},
+ {'windows_x86_64_msvc-0.52.6.tar.gz': '589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec'},
+ {'zerocopy-0.7.35.tar.gz': '1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0'},
+ {'zerocopy-derive-0.7.35.tar.gz': 'fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e'},
+]
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('Rust', '1.75.0'),
+ ('Clang', '16.0.6'),
+ ('Perl', '5.36.1'),
+ ('CMake', '3.26.3'),
+]
+
+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/l/Lua/Lua-5.4.7-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/Lua/Lua-5.4.7-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..98e622129cd
--- /dev/null
+++ b/easybuild/easyconfigs/l/Lua/Lua-5.4.7-GCCcore-13.3.0.eb
@@ -0,0 +1,28 @@
+name = 'Lua'
+version = '5.4.7'
+
+homepage = 'https://www.lua.org/'
+description = """Lua is a powerful, fast, lightweight, embeddable scripting language.
+ Lua combines simple procedural syntax with powerful data description constructs based
+ on associative arrays and extensible semantics. Lua is dynamically typed,
+ runs by interpreting bytecode for a register-based virtual machine,
+ and has automatic memory management with incremental garbage collection,
+ making it ideal for configuration, scripting, and rapid prototyping."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://www.%(namelower)s.org/ftp/']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['9fbf5e28ef86c69858f6d3d34eccc32e911c1a28b4120ff3e84aaa70cfbf1e30']
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+dependencies = [
+ ('ncurses', '6.5'),
+ ('libreadline', '8.2'),
+]
+
+
+moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/l/libGLU/libGLU-9.0.3-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/libGLU/libGLU-9.0.3-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..8a01a3ac439
--- /dev/null
+++ b/easybuild/easyconfigs/l/libGLU/libGLU-9.0.3-GCCcore-13.3.0.eb
@@ -0,0 +1,30 @@
+easyblock = 'MesonNinja'
+
+name = 'libGLU'
+version = '9.0.3'
+
+homepage = 'https://mesa.freedesktop.org/archive/glu/'
+description = """The OpenGL Utility Library (GLU) is a computer graphics library for OpenGL. """
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://mesa.freedesktop.org/archive/glu/']
+sources = ['glu-%(version)s.tar.xz']
+checksums = ['bd43fe12f374b1192eb15fe20e45ff456b9bc26ab57f0eee919f96ca0f8a330f']
+
+builddependencies = [
+ ('pkgconf', '2.2.0'),
+ ('binutils', '2.42'),
+ ('Ninja', '1.12.1'),
+ ('Meson', '1.4.0'),
+]
+
+dependencies = [('Mesa', '24.1.3')]
+
+sanity_check_paths = {
+ 'files': ['lib/libGLU.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/l/libaec/libaec-1.1.3-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/libaec/libaec-1.1.3-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..267acc5aa3d
--- /dev/null
+++ b/easybuild/easyconfigs/l/libaec/libaec-1.1.3-GCCcore-13.3.0.eb
@@ -0,0 +1,36 @@
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+# Author: Denis Kristak
+easyblock = 'CMakeMake'
+
+name = 'libaec'
+version = '1.1.3'
+
+homepage = 'https://gitlab.dkrz.de/k202009/libaec'
+description = """Libaec provides fast lossless compression of 1 up to 32 bit wide signed or unsigned integers
+(samples). The library achieves best results for low entropy data as often encountered in space imaging
+instrument data or numerical model output from weather or climate simulations. While floating point representations
+are not directly supported, they can also be efficiently coded by grouping exponents and mantissa."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://gitlab.dkrz.de/k202009/%(namelower)s/-/archive/v%(version)s']
+sources = [SOURCELOWER_TAR_GZ]
+patches = ["libaec-1.1.3_install_binary.patch"]
+
+checksums = ['453de44eb6ea2500843a4cf4d2e97d1be251d2df7beae6c2ebe374edcb11e378',
+ '52fcdeacd9c27108dffafd8109012902fa63fb2e39803670a3ba16f313628f4c']
+
+builddependencies = [
+ ('CMake', '3.29.3'),
+ ('binutils', '2.42'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/graec', 'include/%(name)s.h', 'include/szlib.h',
+ 'lib/libaec.a', 'lib/libaec.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+
+sanity_check_commands = ['graec --help']
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/l/libaec/libaec-1.1.3_install_binary.patch b/easybuild/easyconfigs/l/libaec/libaec-1.1.3_install_binary.patch
new file mode 100644
index 00000000000..29d7f8e0c7b
--- /dev/null
+++ b/easybuild/easyconfigs/l/libaec/libaec-1.1.3_install_binary.patch
@@ -0,0 +1,11 @@
+# The binary is not installed by default which caused the sanity check to fail
+# @author Stefan Wolfsheimer, SURF
+
+diff -uNr libaec-v1.1.3.orig/src/CMakeLists.txt libaec-v1.1.3/src/CMakeLists.txt
+--- libaec-v1.1.3.orig/src/CMakeLists.txt 2024-11-15 14:21:05.177185441 +0100
++++ libaec-v1.1.3/src/CMakeLists.txt 2024-11-15 14:21:39.702841450 +0100
+@@ -76,3 +76,4 @@
+ COMPILE_DEFINITIONS "${libaec_COMPILE_DEFINITIONS}")
+
+ install(TARGETS aec_static aec_shared sz_static sz_shared)
++install(TARGETS graec RUNTIME DESTINATION bin)
diff --git a/easybuild/easyconfigs/l/libaio/libaio-0.3.113-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/libaio/libaio-0.3.113-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..b76bc3cecc4
--- /dev/null
+++ b/easybuild/easyconfigs/l/libaio/libaio-0.3.113-GCCcore-13.3.0.eb
@@ -0,0 +1,39 @@
+easyblock = 'MakeCp'
+
+name = 'libaio'
+version = '0.3.113'
+_libversion = '1.0.2'
+
+homepage = 'https://pagure.io/libaio'
+description = "Asynchronous input/output library that uses the kernels native interface."
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://pagure.io/%(name)s/archive/%(name)s-%(version)s/']
+sources = ['%(name)s-%(version)s.tar.gz']
+checksums = ['1c561c20670c5c09cc8437a622008c0693c6a7816c1f30332da3796953b2f454']
+
+builddependencies = [('binutils', '2.42')]
+
+_soname = "libaio.%s.%s" % (SHLIB_EXT, _libversion)
+
+files_to_copy = [
+ (["src/libaio.a", "src/%s" % _soname], "lib"),
+ (["src/libaio.h"], "include"),
+]
+
+# links to the shared library with generic names
+_solinks = [
+ "libaio.%s" % SHLIB_EXT,
+ "libaio.%s.1" % SHLIB_EXT,
+]
+
+postinstallcmds = ["cd %%(installdir)s/lib && ln -s %s %s" % (_soname, l) for l in _solinks]
+
+sanity_check_paths = {
+ 'files': ['lib/%s' % l for l in ['libaio.a', _soname] + _solinks] + ['include/libaio.h'],
+ 'dirs': [],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/l/libcerf/libcerf-2.4-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/libcerf/libcerf-2.4-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..2714c4d2765
--- /dev/null
+++ b/easybuild/easyconfigs/l/libcerf/libcerf-2.4-GCCcore-13.3.0.eb
@@ -0,0 +1,32 @@
+easyblock = 'CMakeMake'
+
+name = 'libcerf'
+version = '2.4'
+
+homepage = 'https://jugit.fz-juelich.de/mlz/libcerf'
+
+description = """
+ libcerf is a self-contained numeric library that provides an efficient and
+ accurate implementation of complex error functions, along with Dawson,
+ Faddeeva, and Voigt functions.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://jugit.fz-juelich.de/mlz/libcerf/-/archive/v%(version)s/']
+sources = ['libcerf-v%(version)s.tar.gz']
+checksums = ['080b30ae564c3dabe3b89264522adaf5647ec754021572bee54929697b276cdc']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('CMake', '3.29.3'),
+ ('Perl', '5.38.2'), # required for pod2html
+]
+
+sanity_check_paths = {
+ 'files': ['lib/libcerf.%s' % SHLIB_EXT],
+ 'dirs': []
+}
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/l/libcint/libcint-5.4.0-gfbf-2023a-pypzpx.eb b/easybuild/easyconfigs/l/libcint/libcint-5.4.0-gfbf-2023a-pypzpx.eb
new file mode 100644
index 00000000000..0bc083652f0
--- /dev/null
+++ b/easybuild/easyconfigs/l/libcint/libcint-5.4.0-gfbf-2023a-pypzpx.eb
@@ -0,0 +1,39 @@
+easyblock = 'CMakeMake'
+
+name = 'libcint'
+version = '5.4.0'
+versionsuffix = '-pypzpx'
+
+homepage = 'https://github.com/sunqm/libcint'
+description = """libcint is an open source library for analytical Gaussian integrals.
+This module of libcint uses the P orbitals convention (py, pz, px)"""
+
+toolchain = {'name': 'gfbf', 'version': '2023a'}
+
+source_urls = ['https://github.com/sunqm/%(name)s/archive/']
+sources = ['v%(version)s.tar.gz']
+patches = ['%(name)s-4.4.0_remove_pyscftest.patch']
+checksums = [
+ '42a8f2e9244e4575437e426e32cd1e60ef9559971c42a41f860c870efc745d99', # v5.4.0.tar.gz
+ '6449297a6aee30fef3d6a268aa892dea8dd5c3ca9669a50ae694ab9bcf17842d', # libcint-4.4.0_remove_pyscftest.patch
+]
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+]
+
+configopts = "-DWITH_RANGE_COULOMB=on -DWITH_COULOMB_ERF=on -DWITH_F12=on -DENABLE_TEST=on -DPYPZPX=1"
+
+buildopts = 'VERBOSE=1'
+
+runtest = "test "
+separate_build_dir = False # Must use the same directory for tests
+
+sanity_check_paths = {
+ 'files': ['include/cint.h', 'lib/%%(name)s.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/l/libcint/libcint-6.1.2-gfbf-2024a.eb b/easybuild/easyconfigs/l/libcint/libcint-6.1.2-gfbf-2024a.eb
new file mode 100644
index 00000000000..ec3812fdaec
--- /dev/null
+++ b/easybuild/easyconfigs/l/libcint/libcint-6.1.2-gfbf-2024a.eb
@@ -0,0 +1,42 @@
+easyblock = 'CMakeMake'
+
+name = 'libcint'
+version = '6.1.2'
+
+homepage = 'https://github.com/sunqm/libcint'
+description = "libcint is an open source library for analytical Gaussian integrals."
+
+toolchain = {'name': 'gfbf', 'version': '2024a'}
+
+source_urls = ['https://github.com/sunqm/%(name)s/archive/']
+sources = ['v%(version)s.tar.gz']
+patches = [
+ '%(name)s-4.4.0_remove_pyscftest.patch',
+ 'libcint-6.1.2_fix_tests.patch',
+]
+
+checksums = [
+ {'v6.1.2.tar.gz': '8287e1eaf2b8c8e19eb7a8ea92fd73898f0884023c503b84624610400adb25c4'},
+ {'libcint-4.4.0_remove_pyscftest.patch': '6449297a6aee30fef3d6a268aa892dea8dd5c3ca9669a50ae694ab9bcf17842d'},
+ {'libcint-6.1.2_fix_tests.patch': '2776dbe2320a44733f01e6d2baaf190d3af19fe9148ce656b449e09f65497be7'},
+]
+
+builddependencies = [
+ ('CMake', '3.29.3'),
+ ('Python', '3.12.3'),
+ ('SciPy-bundle', '2024.05'),
+]
+
+configopts = "-DWITH_RANGE_COULOMB=on -DWITH_COULOMB_ERF=on -DWITH_F12=on -DENABLE_TEST=on"
+
+buildopts = 'VERBOSE=1'
+
+runtest = "test "
+separate_build_dir = False # Must use the same directory for tests
+
+sanity_check_paths = {
+ 'files': ['include/cint.h', 'lib/%(name)s.so'],
+ 'dirs': [],
+}
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/l/libcint/libcint-6.1.2_fix_tests.patch b/easybuild/easyconfigs/l/libcint/libcint-6.1.2_fix_tests.patch
new file mode 100644
index 00000000000..f9f8927990b
--- /dev/null
+++ b/easybuild/easyconfigs/l/libcint/libcint-6.1.2_fix_tests.patch
@@ -0,0 +1,147 @@
+What: Fix incorrect path to the shared library
+Author: maxim-mnasterov (SURF)
+
+diff -Nru libcint-6.1.2.orig/testsuite/test_3c2e.py libcint-6.1.2/testsuite/test_3c2e.py
+--- libcint-6.1.2.orig/testsuite/test_3c2e.py 2024-10-04 16:09:36.042124000 +0200
++++ libcint-6.1.2/testsuite/test_3c2e.py 2024-10-04 16:12:57.158040824 +0200
+@@ -13,7 +13,7 @@
+ import ctypes
+ import numpy
+
+-_cint = ctypes.CDLL(os.path.abspath(os.path.join(__file__, '../../build/libcint.so')))
++_cint = ctypes.CDLL(os.path.abspath(os.path.join(__file__, '../../libcint.so')))
+
+ PTR_LIGHT_SPEED = 0
+ PTR_COMMON_ORIG = 1
+diff -Nru libcint-6.1.2.orig/testsuite/test_c2s.py libcint-6.1.2/testsuite/test_c2s.py
+--- libcint-6.1.2.orig/testsuite/test_c2s.py 2024-10-04 16:09:36.042595000 +0200
++++ libcint-6.1.2/testsuite/test_c2s.py 2024-10-04 16:13:11.143154981 +0200
+@@ -3,7 +3,7 @@
+ import ctypes
+ import numpy
+
+-_cint = numpy.ctypeslib.load_library('libcint', os.path.abspath(os.path.join(__file__, '../../build')))
++_cint = numpy.ctypeslib.load_library('libcint', os.path.abspath(os.path.join(__file__, '../..')))
+
+
+ PTR_EXPCUTOFF = 0
+diff -Nru libcint-6.1.2.orig/testsuite/test_cart2sph.py libcint-6.1.2/testsuite/test_cart2sph.py
+--- libcint-6.1.2.orig/testsuite/test_cart2sph.py 2024-10-04 16:09:36.043003000 +0200
++++ libcint-6.1.2/testsuite/test_cart2sph.py 2024-10-04 16:13:35.057998480 +0200
+@@ -10,7 +10,7 @@
+ sys.path.insert(0, os.path.abspath(os.path.join(__file__, '../../scripts')))
+ import cart2sph
+
+-_cint = ctypes.CDLL(os.path.abspath(os.path.join(__file__, '../../build/libcint.so')))
++_cint = ctypes.CDLL(os.path.abspath(os.path.join(__file__, '../../libcint.so')))
+
+ pauli = np.array([[[0., 1.],
+ [1., 0.]], # x
+diff -Nru libcint-6.1.2.orig/testsuite/test_cint4c1e.py libcint-6.1.2/testsuite/test_cint4c1e.py
+--- libcint-6.1.2.orig/testsuite/test_cint4c1e.py 2024-10-04 16:09:36.043792000 +0200
++++ libcint-6.1.2/testsuite/test_cint4c1e.py 2024-10-04 16:13:48.171695000 +0200
+@@ -13,7 +13,7 @@
+ import ctypes
+ import numpy
+
+-_cint = numpy.ctypeslib.load_library('libcint', os.path.abspath(os.path.join(__file__, '../../build')))
++_cint = numpy.ctypeslib.load_library('libcint', os.path.abspath(os.path.join(__file__, '../..')))
+
+
+ PTR_LIGHT_SPEED = 0
+diff -Nru libcint-6.1.2.orig/testsuite/test_cint.py libcint-6.1.2/testsuite/test_cint.py
+--- libcint-6.1.2.orig/testsuite/test_cint.py 2024-10-04 16:09:36.043395000 +0200
++++ libcint-6.1.2/testsuite/test_cint.py 2024-10-04 16:12:23.988960299 +0200
+@@ -13,7 +13,7 @@
+ import ctypes
+ import numpy
+
+-_cint = ctypes.CDLL(os.path.abspath(os.path.join(__file__, '../../build/libcint.so')))
++_cint = ctypes.CDLL(os.path.abspath(os.path.join(__file__, '../../libcint.so')))
+
+
+ PTR_EXPCUTOFF = 0
+diff -Nru libcint-6.1.2.orig/testsuite/test_int1e_grids.py libcint-6.1.2/testsuite/test_int1e_grids.py
+--- libcint-6.1.2.orig/testsuite/test_int1e_grids.py 2024-10-04 16:09:36.045513000 +0200
++++ libcint-6.1.2/testsuite/test_int1e_grids.py 2024-10-04 16:14:20.427552000 +0200
+@@ -13,7 +13,7 @@
+ import ctypes
+ import numpy
+
+-_cint = ctypes.CDLL(os.path.abspath(os.path.join(__file__, '../../build/libcint.so')))
++_cint = ctypes.CDLL(os.path.abspath(os.path.join(__file__, '../../libcint.so')))
+
+ PTR_EXPCUTOFF = 0
+ PTR_COMMON_ORIG = 1
+diff -Nru libcint-6.1.2.orig/testsuite/test_int1e.py libcint-6.1.2/testsuite/test_int1e.py
+--- libcint-6.1.2.orig/testsuite/test_int1e.py 2024-10-04 16:09:36.045015000 +0200
++++ libcint-6.1.2/testsuite/test_int1e.py 2024-10-04 16:14:31.649911000 +0200
+@@ -5,7 +5,7 @@
+ import ctypes
+ import numpy
+
+-_cint = numpy.ctypeslib.load_library('libcint', os.path.abspath(os.path.join(__file__, '../../build')))
++_cint = numpy.ctypeslib.load_library('libcint', os.path.abspath(os.path.join(__file__, '../..')))
+ #_cint4 = ctypes.cdll.LoadLibrary('libcint.so.4')
+
+ from pyscf import gto, lib
+diff -Nru libcint-6.1.2.orig/testsuite/test_int2c2e.py libcint-6.1.2/testsuite/test_int2c2e.py
+--- libcint-6.1.2.orig/testsuite/test_int2c2e.py 2024-10-04 16:09:36.045952547 +0200
++++ libcint-6.1.2/testsuite/test_int2c2e.py 2024-10-04 16:14:45.424744884 +0200
+@@ -3,7 +3,7 @@
+ import ctypes
+ import numpy
+
+-_cint = ctypes.CDLL(os.path.abspath(os.path.join(__file__, '../../build/libcint.so')))
++_cint = ctypes.CDLL(os.path.abspath(os.path.join(__file__, '../../libcint.so')))
+
+ from pyscf import gto, lib
+
+diff -Nru libcint-6.1.2.orig/testsuite/test_int2e_f12_etc.py libcint-6.1.2/testsuite/test_int2e_f12_etc.py
+--- libcint-6.1.2.orig/testsuite/test_int2e_f12_etc.py 2024-10-04 16:09:36.046726088 +0200
++++ libcint-6.1.2/testsuite/test_int2e_f12_etc.py 2024-10-04 16:14:57.223888132 +0200
+@@ -3,7 +3,7 @@
+ import ctypes
+ import numpy
+
+-_cint = ctypes.CDLL(os.path.abspath(os.path.join(__file__, '../../build/libcint.so')))
++_cint = ctypes.CDLL(os.path.abspath(os.path.join(__file__, '../../libcint.so')))
+
+ from pyscf import gto, lib
+
+diff -Nru libcint-6.1.2.orig/testsuite/test_int2e.py libcint-6.1.2/testsuite/test_int2e.py
+--- libcint-6.1.2.orig/testsuite/test_int2e.py 2024-10-04 16:09:36.046362000 +0200
++++ libcint-6.1.2/testsuite/test_int2e.py 2024-10-04 16:15:10.386953000 +0200
+@@ -5,7 +5,7 @@
+ import ctypes
+ import numpy
+
+-_cint = numpy.ctypeslib.load_library('libcint', os.path.abspath(os.path.join(__file__, '../../build')))
++_cint = numpy.ctypeslib.load_library('libcint', os.path.abspath(os.path.join(__file__, '../..')))
+ #_cint4 = ctypes.cdll.LoadLibrary('libcint.so.4')
+
+ from pyscf import gto, lib
+diff -Nru libcint-6.1.2.orig/testsuite/test_int3c1e.py libcint-6.1.2/testsuite/test_int3c1e.py
+--- libcint-6.1.2.orig/testsuite/test_int3c1e.py 2024-10-04 16:09:36.047153000 +0200
++++ libcint-6.1.2/testsuite/test_int3c1e.py 2024-10-04 16:15:23.148032000 +0200
+@@ -3,7 +3,7 @@
+ import ctypes
+ import numpy
+
+-_cint = numpy.ctypeslib.load_library('libcint', os.path.abspath(os.path.join(__file__, '../../build')))
++_cint = numpy.ctypeslib.load_library('libcint', os.path.abspath(os.path.join(__file__, '../..')))
+ #_cint4 = ctypes.cdll.LoadLibrary('libcint.so.4')
+
+ from pyscf import gto, lib
+diff -Nru libcint-6.1.2.orig/testsuite/test_int3c2e.py libcint-6.1.2/testsuite/test_int3c2e.py
+--- libcint-6.1.2.orig/testsuite/test_int3c2e.py 2024-10-04 16:09:36.047561000 +0200
++++ libcint-6.1.2/testsuite/test_int3c2e.py 2024-10-04 16:15:33.932008000 +0200
+@@ -3,7 +3,7 @@
+ import ctypes
+ import numpy
+
+-_cint = ctypes.CDLL(os.path.abspath(os.path.join(__file__, '../../build/libcint.so')))
++_cint = ctypes.CDLL(os.path.abspath(os.path.join(__file__, '../../libcint.so')))
+
+ from pyscf import gto, lib
+
diff --git a/easybuild/easyconfigs/l/libcircle/libcircle-0.3-gompi-2024a.eb b/easybuild/easyconfigs/l/libcircle/libcircle-0.3-gompi-2024a.eb
new file mode 100644
index 00000000000..1ea2630b327
--- /dev/null
+++ b/easybuild/easyconfigs/l/libcircle/libcircle-0.3-gompi-2024a.eb
@@ -0,0 +1,38 @@
+##
+# Authors:
+# * Petar Forai
+# * Robert Mijakovic
+##
+easyblock = 'ConfigureMake'
+
+name = 'libcircle'
+version = '0.3'
+
+homepage = 'https://github.com/hpc/libcircle/'
+
+description = """
+ An API to provide an efficient distributed queue on a cluster. libcircle is an
+ API for distributing embarrassingly parallel workloads using self-stabilization.
+"""
+
+toolchain = {'name': 'gompi', 'version': '2024a'}
+toolchainopts = {'usempi': True, 'pic': True}
+
+github_account = 'hpc'
+source_urls = [GITHUB_SOURCE]
+sources = ['v%(version)s.tar.gz']
+checksums = ['fd8bc6e4dcc6fdec9d2a3d1c78a4060948ae4f11f0b278792610d6c05d53e14c']
+
+builddependencies = [
+ ('Autotools', '20231222'),
+ ('pkgconf', '2.2.0'),
+]
+
+preconfigopts = './autogen.sh && '
+
+sanity_check_paths = {
+ 'files': ['include/%(name)s.h', 'lib/%(name)s.a', 'lib/%%(name)s.%s' % SHLIB_EXT],
+ 'dirs': ['lib/pkgconfig'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/l/libcroco/libcroco-0.6.13-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/libcroco/libcroco-0.6.13-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..21b015fd6ed
--- /dev/null
+++ b/easybuild/easyconfigs/l/libcroco/libcroco-0.6.13-GCCcore-13.3.0.eb
@@ -0,0 +1,32 @@
+easyblock = 'ConfigureMake'
+
+name = 'libcroco'
+version = '0.6.13'
+
+homepage = 'https://gitlab.gnome.org/Archive/libcroco'
+description = """Libcroco is a standalone css2 parsing and manipulation library."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://download.gnome.org/sources/libcroco/%(version_major_minor)s/']
+sources = [SOURCE_TAR_XZ]
+checksums = ['767ec234ae7aa684695b3a735548224888132e063f92db585759b422570621d4']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('pkgconf', '2.2.0'),
+]
+
+dependencies = [
+ ('zlib', '1.3.1'),
+ ('libxml2', '2.12.7'),
+ ('GLib', '2.80.4'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/csslint-%(version_major_minor)s', 'lib/libcroco-%%(version_major_minor)s.%s' % SHLIB_EXT,
+ 'lib/libcroco-%(version_major_minor)s.a'],
+ 'dirs': ['include/libcroco-%(version_major_minor)s', 'share']
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/l/libdap/libdap-3.20.11-GCCcore-11.3.0.eb b/easybuild/easyconfigs/l/libdap/libdap-3.20.11-GCCcore-11.3.0.eb
index 237260a43f7..063ce985f47 100644
--- a/easybuild/easyconfigs/l/libdap/libdap-3.20.11-GCCcore-11.3.0.eb
+++ b/easybuild/easyconfigs/l/libdap/libdap-3.20.11-GCCcore-11.3.0.eb
@@ -9,14 +9,15 @@ description = """A C++ SDK which contains an implementation of DAP 2.0 and
toolchain = {'name': 'GCCcore', 'version': '11.3.0'}
-source_urls = ['https://www.opendap.org/pub/source/']
-sources = [SOURCE_TAR_GZ]
-checksums = ['850debf6ee6991350bf31051308093bee35ddd2121e4002be7e130a319de1415']
+source_urls = ['https://github.com/OPENDAP/libdap4/archive/refs/tags/']
+sources = ['%(version)s.tar.gz']
+checksums = ['319e9771d037b6c796f04e6a96bb27db1706bc5931ca149c78347c623a747771']
builddependencies = [
('binutils', '2.38'),
('Bison', '3.8.2'),
('flex', '2.6.4'),
+ ('Autotools', '20220317'),
]
dependencies = [
@@ -27,6 +28,7 @@ dependencies = [
('util-linux', '2.38'),
]
+preconfigopts = "autoreconf -fi && "
configopts = 'TIRPC_LIBS="-ltirpc"'
sanity_check_paths = {
diff --git a/easybuild/easyconfigs/l/libdap/libdap-3.20.11-GCCcore-12.3.0.eb b/easybuild/easyconfigs/l/libdap/libdap-3.20.11-GCCcore-12.3.0.eb
index 39e628f1d97..a6dbd52797f 100644
--- a/easybuild/easyconfigs/l/libdap/libdap-3.20.11-GCCcore-12.3.0.eb
+++ b/easybuild/easyconfigs/l/libdap/libdap-3.20.11-GCCcore-12.3.0.eb
@@ -9,14 +9,15 @@ description = """A C++ SDK which contains an implementation of DAP 2.0 and
toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
-source_urls = ['https://www.opendap.org/pub/source/']
-sources = [SOURCE_TAR_GZ]
-checksums = ['850debf6ee6991350bf31051308093bee35ddd2121e4002be7e130a319de1415']
+source_urls = ['https://github.com/OPENDAP/libdap4/archive/refs/tags/']
+sources = ['%(version)s.tar.gz']
+checksums = ['319e9771d037b6c796f04e6a96bb27db1706bc5931ca149c78347c623a747771']
builddependencies = [
('binutils', '2.40'),
('Bison', '3.8.2'),
('flex', '2.6.4'),
+ ('Autotools', '20220317'),
]
dependencies = [
@@ -27,6 +28,7 @@ dependencies = [
('util-linux', '2.39'),
]
+preconfigopts = "autoreconf -fi && "
configopts = 'TIRPC_LIBS="-ltirpc"'
diff --git a/easybuild/easyconfigs/l/libdap/libdap-3.20.7-GCCcore-10.3.0.eb b/easybuild/easyconfigs/l/libdap/libdap-3.20.7-GCCcore-10.3.0.eb
index e2bb8f718ab..c1cb33551f7 100644
--- a/easybuild/easyconfigs/l/libdap/libdap-3.20.7-GCCcore-10.3.0.eb
+++ b/easybuild/easyconfigs/l/libdap/libdap-3.20.7-GCCcore-10.3.0.eb
@@ -9,14 +9,15 @@ description = """A C++ SDK which contains an implementation of DAP 2.0 and
toolchain = {'name': 'GCCcore', 'version': '10.3.0'}
-source_urls = ['https://www.opendap.org/pub/source/']
-sources = [SOURCE_TAR_GZ]
-checksums = ['6856813d0b29e70a36e8a53e9cf20ad680d21d615952263e9c6586704539e78c']
+source_urls = ['https://github.com/OPENDAP/libdap4/archive/refs/tags/']
+sources = ['%(version)s.tar.gz']
+checksums = ['f6e907ea7a9f878965a3af2a858423450dde389d851fc67a33b0096b8b9b6085']
builddependencies = [
('binutils', '2.36.1'),
('Bison', '3.7.6'),
('flex', '2.6.4'),
+ ('Autotools', '20210128'),
]
dependencies = [
@@ -27,6 +28,7 @@ dependencies = [
('util-linux', '2.36'),
]
+preconfigopts = "autoreconf -fi && "
configopts = 'TIRPC_LIBS="-ltirpc"'
sanity_check_paths = {
diff --git a/easybuild/easyconfigs/l/libdap/libdap-3.20.8-GCCcore-11.2.0.eb b/easybuild/easyconfigs/l/libdap/libdap-3.20.8-GCCcore-11.2.0.eb
index b48c3f1b6bc..1172b66d8f2 100644
--- a/easybuild/easyconfigs/l/libdap/libdap-3.20.8-GCCcore-11.2.0.eb
+++ b/easybuild/easyconfigs/l/libdap/libdap-3.20.8-GCCcore-11.2.0.eb
@@ -9,14 +9,15 @@ description = """A C++ SDK which contains an implementation of DAP 2.0 and
toolchain = {'name': 'GCCcore', 'version': '11.2.0'}
-source_urls = ['https://www.opendap.org/pub/source/']
-sources = [SOURCE_TAR_GZ]
-checksums = ['65eb5c8f693cf74d58eece5eaa2e7c3c65f368926b1bffab0cf5b207757b94eb']
+source_urls = ['https://github.com/OPENDAP/libdap4/archive/refs/tags/']
+sources = ['%(version)s.tar.gz']
+checksums = ['e59b48f48bb37b36dcf9618043881e1d4150abd9b2ea3fa7474647c4ad622ccc']
builddependencies = [
('binutils', '2.37'),
('Bison', '3.7.6'),
('flex', '2.6.4'),
+ ('Autotools', '20210726'),
]
dependencies = [
@@ -27,6 +28,7 @@ dependencies = [
('util-linux', '2.37'),
]
+preconfigopts = "autoreconf -fi && "
configopts = 'TIRPC_LIBS="-ltirpc"'
sanity_check_paths = {
diff --git a/easybuild/easyconfigs/l/libdap/libdap-3.21.0-131-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/libdap/libdap-3.21.0-131-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..ef7029f258f
--- /dev/null
+++ b/easybuild/easyconfigs/l/libdap/libdap-3.21.0-131-GCCcore-13.3.0.eb
@@ -0,0 +1,40 @@
+easyblock = 'ConfigureMake'
+
+name = 'libdap'
+version = '3.21.0-131'
+
+homepage = 'https://www.opendap.org/software/libdap'
+description = """A C++ SDK which contains an implementation of DAP 2.0 and
+ DAP4.0. This includes both Client- and Server-side support classes."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://github.com/OPENDAP/libdap4/archive/refs/tags/']
+sources = ['%(version)s.tar.gz']
+checksums = ['c06b30e108608bc40dcb15df57302af4511023801dca004edb3f2df2cc0a72cc']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('Bison', '3.8.2'),
+ ('flex', '2.6.4'),
+ ('Autotools', '20231222'),
+]
+
+dependencies = [
+ ('cURL', '8.7.1'),
+ ('libxml2', '2.12.7'),
+ ('libtirpc', '1.3.5'),
+ ('PCRE', '8.45'),
+ ('util-linux', '2.40'),
+]
+
+preconfigopts = "autoreconf -fi && "
+configopts = 'TIRPC_LIBS="-ltirpc"'
+
+
+sanity_check_paths = {
+ 'files': ['bin/getdap', 'bin/getdap4', 'bin/dap-config', 'lib/libdap.a', 'lib/libdap.%s' % SHLIB_EXT],
+ 'dirs': ['include'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/l/libdap/libdap-3.21.0-27-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/libdap/libdap-3.21.0-27-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..707b32da095
--- /dev/null
+++ b/easybuild/easyconfigs/l/libdap/libdap-3.21.0-27-GCCcore-13.3.0.eb
@@ -0,0 +1,37 @@
+easyblock = 'ConfigureMake'
+
+name = 'libdap'
+version = '3.21.0-27'
+
+homepage = 'https://www.opendap.org/software/libdap'
+description = """A C++ SDK which contains an implementation of DAP 2.0 and
+ DAP4.0. This includes both Client- and Server-side support classes."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://www.opendap.org/pub/source/']
+sources = [SOURCE_TAR_GZ]
+checksums = ['b5b8229d3aa97fea9bba4a0b11b1ee1c6446bd5f7ad2cff591f86064f465eacf']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('Bison', '3.8.2'),
+ ('flex', '2.6.4'),
+]
+
+dependencies = [
+ ('cURL', '8.7.1'),
+ ('libxml2', '2.12.7'),
+ ('libtirpc', '1.3.5'),
+ ('PCRE', '8.45'),
+ ('util-linux', '2.40'),
+]
+
+configopts = 'TIRPC_LIBS="-ltirpc"'
+
+sanity_check_paths = {
+ 'files': ['bin/getdap', 'bin/getdap4', 'bin/dap-config', 'lib/libdap.a', 'lib/libdap.%s' % SHLIB_EXT],
+ 'dirs': ['include'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/l/libepoxy/libepoxy-1.5.10-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/libepoxy/libepoxy-1.5.10-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..bca992c268a
--- /dev/null
+++ b/easybuild/easyconfigs/l/libepoxy/libepoxy-1.5.10-GCCcore-13.3.0.eb
@@ -0,0 +1,37 @@
+easyblock = 'MesonNinja'
+
+name = 'libepoxy'
+version = '1.5.10'
+
+homepage = 'https://github.com/anholt/libepoxy'
+description = "Epoxy is a library for handling OpenGL function pointer management for you"
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+github_account = 'anholt'
+source_urls = [GITHUB_LOWER_SOURCE]
+sources = ['%(version)s.tar.gz']
+checksums = ['a7ced37f4102b745ac86d6a70a9da399cc139ff168ba6b8002b4d8d43c900c15']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('Meson', '1.4.0'),
+ ('Ninja', '1.12.1'),
+ ('pkgconf', '2.2.0'),
+]
+
+dependencies = [
+ ('X11', '20240607'),
+ ('Mesa', '24.1.3'),
+]
+
+configopts = '-Degl=yes --libdir %(installdir)s/lib '
+
+sanity_check_paths = {
+ 'files': ['include/epoxy/%s.h' % x for x in ['common', 'egl_generated', 'egl', 'gl_generated',
+ 'gl', 'glx_generated', 'glx']] +
+ ['lib/libepoxy.%s' % SHLIB_EXT],
+ 'dirs': ['lib']
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/l/libffi/libffi-3.4.5.eb b/easybuild/easyconfigs/l/libffi/libffi-3.4.5.eb
new file mode 100644
index 00000000000..df82da05952
--- /dev/null
+++ b/easybuild/easyconfigs/l/libffi/libffi-3.4.5.eb
@@ -0,0 +1,25 @@
+easyblock = 'ConfigureMake'
+
+name = 'libffi'
+version = '3.4.5'
+
+homepage = 'https://sourceware.org/libffi/'
+description = """The libffi library provides a portable, high level programming interface to
+ various calling conventions. This allows a programmer to call any function
+ specified by a call interface description at run-time."""
+
+toolchain = SYSTEM
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/libffi/libffi/releases/download/v%(version)s/']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['96fff4e589e3b239d888d9aa44b3ff30693c2ba1617f953925a70ddebcc102b2']
+
+configopts = '--disable-exec-static-tramp '
+
+sanity_check_paths = {
+ 'files': ['lib/libffi.a', 'lib/libffi.%s' % SHLIB_EXT],
+ 'dirs': ['include', 'share'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/l/libgd/libgd-2.3.3-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/libgd/libgd-2.3.3-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..2c03aa92105
--- /dev/null
+++ b/easybuild/easyconfigs/l/libgd/libgd-2.3.3-GCCcore-13.3.0.eb
@@ -0,0 +1,36 @@
+easyblock = 'ConfigureMake'
+
+name = 'libgd'
+version = '2.3.3'
+
+homepage = 'https://libgd.github.io'
+description = "GD is an open source code library for the dynamic creation of images by programmers."
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/%(name)s/%(name)s/releases/download/gd-%(version)s/']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['dd3f1f0bb016edcc0b2d082e8229c822ad1d02223511997c80461481759b1ed2']
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+dependencies = [
+ ('fontconfig', '2.15.0'),
+ ('libjpeg-turbo', '3.0.1'),
+ ('libpng', '1.6.43'),
+ ('zlib', '1.3.1'),
+]
+
+configopts = "--with-fontconfig=$EBROOTFONTCONFIG --with-jpeg=$EBROOTLIBJPEGMINTURBO "
+configopts += "--with-png=$EBROOTLIBPNG --with-zlib=$EBROOTZLIB"
+
+sanity_check_paths = {
+ 'files': ['lib/%(name)s.a', 'lib/%(name)s.so'],
+ 'dirs': ['bin', 'include'],
+}
+
+sanity_check_commands = ['webpng --help']
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/l/libgeotiff/libgeotiff-1.7.3-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/libgeotiff/libgeotiff-1.7.3-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..41cba249999
--- /dev/null
+++ b/easybuild/easyconfigs/l/libgeotiff/libgeotiff-1.7.3-GCCcore-13.3.0.eb
@@ -0,0 +1,36 @@
+easyblock = 'ConfigureMake'
+
+name = 'libgeotiff'
+version = '1.7.3'
+
+homepage = 'https://directory.fsf.org/wiki/Libgeotiff'
+description = """Library for reading and writing coordinate system information from/to GeoTIFF files"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://download.osgeo.org/geotiff/libgeotiff']
+sources = [SOURCE_TAR_GZ]
+checksums = ['ba23a3a35980ed3de916e125c739251f8e3266be07540200125a307d7cf5a704']
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+
+dependencies = [
+ ('PROJ', '9.4.1'),
+ ('libjpeg-turbo', '3.0.1'),
+ ('zlib', '1.3.1'),
+ ('SQLite', '3.45.3'),
+ ('LibTIFF', '4.6.0'),
+ ('cURL', '8.7.1'),
+]
+
+configopts = ' --with-libtiff=$EBROOTLIBTIFF --with-proj=$EBROOTPROJ --with-zlib=$EBROOTZLIB'
+configopts += ' --with-jpeg=$EBROOTLIBJPEGMINTURBO'
+
+sanity_check_paths = {
+ 'files': ['bin/listgeo', 'lib/libgeotiff.a', 'lib/libgeotiff.%s' % SHLIB_EXT],
+ 'dirs': ['include', 'share'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/l/libgit2/libgit2-1.8.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/libgit2/libgit2-1.8.1-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..07da30e2a80
--- /dev/null
+++ b/easybuild/easyconfigs/l/libgit2/libgit2-1.8.1-GCCcore-13.3.0.eb
@@ -0,0 +1,34 @@
+easyblock = 'CMakeMake'
+
+name = 'libgit2'
+version = '1.8.1'
+
+homepage = 'https://libgit2.org/'
+description = """libgit2 is a portable, pure C implementation of the Git core methods provided as a re-entrant
+linkable library with a solid API, allowing you to write native speed custom Git applications in any language
+which supports C bindings."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = [GITHUB_SOURCE]
+sources = [{'download_filename': 'v%(version)s.tar.gz', 'filename': SOURCE_TAR_GZ}]
+checksums = ['8c1eaf0cf07cba0e9021920bfba9502140220786ed5d8a8ec6c7ad9174522f8e']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('CMake', '3.29.3'),
+ ('pkgconf', '2.2.0'),
+]
+dependencies = [
+ ('PCRE2', '10.43'),
+ ('OpenSSL', '3', '', SYSTEM),
+]
+
+configopts = '-DREGEX_BACKEND=pcre2'
+
+sanity_check_paths = {
+ 'files': ['include/git2.h', 'lib64/%%(name)s.%s' % SHLIB_EXT, 'lib64/pkgconfig/%(name)s.pc'],
+ 'dirs': [],
+}
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/l/libmad/libmad-0.15.1b-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/libmad/libmad-0.15.1b-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..982f59275b1
--- /dev/null
+++ b/easybuild/easyconfigs/l/libmad/libmad-0.15.1b-GCCcore-13.3.0.eb
@@ -0,0 +1,27 @@
+easyblock = 'ConfigureMake'
+
+name = 'libmad'
+version = '0.15.1b'
+
+homepage = 'https://www.underbit.com/products/mad/'
+description = """MAD is a high-quality MPEG audio decoder."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://sourceforge.net/projects/mad/files/%(name)s/%(version)s/']
+sources = [SOURCELOWER_TAR_GZ]
+patches = ['libmad-0.15.1b-remove-depreciated-gcc-option.patch']
+checksums = [
+ 'bbfac3ed6bfbc2823d3775ebb931087371e142bb0e9bb1bee51a76a6e0078690', # libmad-0.15.1b.tar.gz
+ # libmad-0.15.1b-remove-depreciated-gcc-option.patch
+ '8f96a23a22ba66e62f32e20064d01f4c7f6a18ba0aab85d3be9ce63794b2c678',
+]
+
+builddependencies = [('binutils', '2.42')]
+
+sanity_check_paths = {
+ 'files': ['include/mad.h', 'lib/libmad.a', 'lib/libmad.la', 'lib/libmad.%s' % SHLIB_EXT],
+ 'dirs': ['include', 'lib', 'lib64']
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/l/libmatheval/003-guile2.0.patch b/easybuild/easyconfigs/l/libmatheval/003-guile2.0.patch
new file mode 100644
index 00000000000..3f592cadb0d
--- /dev/null
+++ b/easybuild/easyconfigs/l/libmatheval/003-guile2.0.patch
@@ -0,0 +1,402 @@
+Description: Increase precision of floating point tests
+ guile-2.0 has increased the precision of the floating point maths returns,
+ so the test suite needs to allow for the correct values to be returned
+ with higher precision. Thanks to Dave Pigott
+ Also adapt the configure script to build against guile-2.0 - patch from
+ Hilo Bengen .
+ .
+ libmatheval (1.1.11+dfsg-1.1) unstable; urgency=low
+ .
+ * Non-maintainer upload.
+ * Migrate to guile-2.0 - patch from Hilo Bengen,
+ extended to support higher precision of return values
+ by guile-2.0. (Closes: #746013)
+Author: Neil Williams
+Bug-Debian: https://bugs.debian.org/746013
+
+---
+
+--- libmatheval-1.1.11+dfsg.orig/configure.in
++++ libmatheval-1.1.11+dfsg/configure.in
+@@ -60,10 +60,11 @@ dnl Checks for library functions.
+ AC_CHECK_FUNCS([bzero memset], [break])
+
+ dnl Additional Guile feature checks.
++CFLAGS="$CFLAGS $GUILE_CFLAGS"
+ AC_CHECK_TYPE([scm_t_bits], [AC_DEFINE([HAVE_SCM_T_BITS], [1], [Define to 1 if you have the `scm_t_bits' type.])], [], [#include ])
+-AC_CHECK_LIB([guile], [scm_c_define_gsubr], [AC_DEFINE([HAVE_SCM_C_DEFINE_GSUBR], [1], [Define to 1 if you have the `scm_c_define_gsubr' function.])], [], [$GUILE_LDFLAGS])
+-AC_CHECK_LIB([guile], [scm_make_gsubr], [AC_DEFINE([HAVE_SCM_MAKE_GSUBR], [1], [Define to 1 if you have the `scm_make_gsubr' function.])], [], [$GUILE_LDFLAGS])
+-AC_CHECK_LIB([guile], [scm_num2dbl], [AC_DEFINE([HAVE_SCM_NUM2DBL], [1], [Define to 1 if you have the `scm_num2dbl' function.])], [], [$GUILE_LDFLAGS])
++AC_CHECK_LIB([guile-2.0], [scm_c_define_gsubr], [AC_DEFINE([HAVE_SCM_C_DEFINE_GSUBR], [1], [Define to 1 if you have the `scm_c_define_gsubr' function.])], [], [$GUILE_LDFLAGS])
++AC_CHECK_LIB([guile-2.0], [scm_make_gsubr], [AC_DEFINE([HAVE_SCM_MAKE_GSUBR], [1], [Define to 1 if you have the `scm_make_gsubr' function.])], [], [$GUILE_LDFLAGS])
++AC_CHECK_LIB([guile-2.0], [scm_num2dbl], [AC_DEFINE([HAVE_SCM_NUM2DBL], [1], [Define to 1 if you have the `scm_num2dbl' function.])], [], [$GUILE_LDFLAGS])
+
+ AC_CONFIG_FILES([Makefile doc/Makefile lib/Makefile])
+ AC_OUTPUT(libmatheval.pc)
+--- libmatheval-1.1.11+dfsg.orig/tests/basics.at
++++ libmatheval-1.1.11+dfsg/tests/basics.at
+@@ -62,7 +62,7 @@ AT_DATA([basics.scm],
+ (display (evaluator-evaluate-x f 0))
+ ]])
+
+-AT_CHECK([matheval.sh basics.scm], [ignore], [10.0], [ignore])
++AT_CHECK([matheval.sh basics.scm], [ignore], [10.000000000000002], [ignore])
+
+ AT_DATA([basics.scm],
+ [[
+@@ -70,7 +70,7 @@ AT_DATA([basics.scm],
+ (display (evaluator-evaluate-x f 0.7))
+ ]])
+
+-AT_CHECK([matheval.sh basics.scm], [ignore], [0.220966666722528], [ignore])
++AT_CHECK([matheval.sh basics.scm], [ignore], [0.22096666672252796], [ignore])
+
+ AT_DATA([basics.scm],
+ [[
+@@ -78,7 +78,7 @@ AT_DATA([basics.scm],
+ (display (evaluator-evaluate-x-y f 0.4 -0.7))
+ ]])
+
+-AT_CHECK([matheval.sh basics.scm], [ignore], [-1.14962406520749], [ignore])
++AT_CHECK([matheval.sh basics.scm], [ignore], [-1.1496240652074883], [ignore])
+
+ AT_DATA([basics.scm],
+ [[
+@@ -86,7 +86,7 @@ AT_DATA([basics.scm],
+ (display (evaluator-evaluate-x-y-z f 11.2 0.41 -0.66))
+ ]])
+
+-AT_CHECK([matheval.sh basics.scm], [ignore], [3.99876152571934], [ignore])
++AT_CHECK([matheval.sh basics.scm], [ignore], [3.9987615257193383], [ignore])
+
+ AT_DATA([basics.scm],
+ [[
+--- libmatheval-1.1.11+dfsg.orig/tests/constants.at
++++ libmatheval-1.1.11+dfsg/tests/constants.at
+@@ -29,7 +29,7 @@ AT_DATA([constant.scm],
+ (display (evaluator-evaluate-x f 0))
+ ]])
+
+-AT_CHECK([matheval.sh constant.scm], [ignore], [2.71828182845905], [ignore])
++AT_CHECK([matheval.sh constant.scm], [ignore], [2.718281828459045], [ignore])
+
+ AT_DATA([constant.scm],
+ [[
+@@ -37,7 +37,7 @@ AT_DATA([constant.scm],
+ (display (evaluator-evaluate-x f 0))
+ ]])
+
+-AT_CHECK([matheval.sh constant.scm], [ignore], [1.44269504088896], [ignore])
++AT_CHECK([matheval.sh constant.scm], [ignore], [1.4426950408889634], [ignore])
+
+ AT_DATA([constant.scm],
+ [[
+@@ -45,7 +45,7 @@ AT_DATA([constant.scm],
+ (display (evaluator-evaluate-x f 0))
+ ]])
+
+-AT_CHECK([matheval.sh constant.scm], [ignore], [0.434294481903252], [ignore])
++AT_CHECK([matheval.sh constant.scm], [ignore], [0.4342944819032518], [ignore])
+
+ AT_DATA([constant.scm],
+ [[
+@@ -53,7 +53,7 @@ AT_DATA([constant.scm],
+ (display (evaluator-evaluate-x f 0))
+ ]])
+
+-AT_CHECK([matheval.sh constant.scm], [ignore], [0.693147180559945], [ignore])
++AT_CHECK([matheval.sh constant.scm], [ignore], [0.6931471805599453], [ignore])
+
+ AT_DATA([constant.scm],
+ [[
+@@ -61,7 +61,7 @@ AT_DATA([constant.scm],
+ (display (evaluator-evaluate-x f 0))
+ ]])
+
+-AT_CHECK([matheval.sh constant.scm], [ignore], [2.30258509299405], [ignore])
++AT_CHECK([matheval.sh constant.scm], [ignore], [2.302585092994046], [ignore])
+
+ AT_DATA([constant.scm],
+ [[
+@@ -69,7 +69,7 @@ AT_DATA([constant.scm],
+ (display (evaluator-evaluate-x f 0))
+ ]])
+
+-AT_CHECK([matheval.sh constant.scm], [ignore], [3.14159265358979], [ignore])
++AT_CHECK([matheval.sh constant.scm], [ignore], [3.141592653589793], [ignore])
+
+ AT_DATA([constant.scm],
+ [[
+@@ -77,7 +77,7 @@ AT_DATA([constant.scm],
+ (display (evaluator-evaluate-x f 0))
+ ]])
+
+-AT_CHECK([matheval.sh constant.scm], [ignore], [1.5707963267949], [ignore])
++AT_CHECK([matheval.sh constant.scm], [ignore], [1.5707963267948966], [ignore])
+
+ AT_DATA([constant.scm],
+ [[
+@@ -85,7 +85,7 @@ AT_DATA([constant.scm],
+ (display (evaluator-evaluate-x f 0))
+ ]])
+
+-AT_CHECK([matheval.sh constant.scm], [ignore], [0.785398163397448], [ignore])
++AT_CHECK([matheval.sh constant.scm], [ignore], [0.7853981633974483], [ignore])
+
+ AT_DATA([constant.scm],
+ [[
+@@ -93,7 +93,7 @@ AT_DATA([constant.scm],
+ (display (evaluator-evaluate-x f 0))
+ ]])
+
+-AT_CHECK([matheval.sh constant.scm], [ignore], [0.318309886183791], [ignore])
++AT_CHECK([matheval.sh constant.scm], [ignore], [0.3183098861837907], [ignore])
+
+ AT_DATA([constant.scm],
+ [[
+@@ -101,7 +101,7 @@ AT_DATA([constant.scm],
+ (display (evaluator-evaluate-x f 0))
+ ]])
+
+-AT_CHECK([matheval.sh constant.scm], [ignore], [0.636619772367581], [ignore])
++AT_CHECK([matheval.sh constant.scm], [ignore], [0.6366197723675814], [ignore])
+
+ AT_DATA([constant.scm],
+ [[
+@@ -109,7 +109,7 @@ AT_DATA([constant.scm],
+ (display (evaluator-evaluate-x f 0))
+ ]])
+
+-AT_CHECK([matheval.sh constant.scm], [ignore], [1.12837916709551], [ignore])
++AT_CHECK([matheval.sh constant.scm], [ignore], [1.1283791670955126], [ignore])
+
+ AT_DATA([constant.scm],
+ [[
+@@ -117,7 +117,7 @@ AT_DATA([constant.scm],
+ (display (evaluator-evaluate-x f 0))
+ ]])
+
+-AT_CHECK([matheval.sh constant.scm], [ignore], [1.4142135623731], [ignore])
++AT_CHECK([matheval.sh constant.scm], [ignore], [1.4142135623730951], [ignore])
+
+ AT_DATA([constant.scm],
+ [[
+@@ -125,7 +125,7 @@ AT_DATA([constant.scm],
+ (display (evaluator-evaluate-x f 0))
+ ]])
+
+-AT_CHECK([matheval.sh constant.scm], [ignore], [0.707106781186548], [ignore])
++AT_CHECK([matheval.sh constant.scm], [ignore], [0.7071067811865476], [ignore])
+
+ AT_DATA([constant.scm],
+ [[
+@@ -133,7 +133,7 @@ AT_DATA([constant.scm],
+ (display (evaluator-evaluate-x f 0))
+ ]])
+
+-AT_CHECK([matheval.sh constant.scm], [ignore], [10.0], [ignore])
++AT_CHECK([matheval.sh constant.scm], [ignore], [10.000000000000002], [ignore])
+
+ AT_DATA([constant.scm],
+ [[
+--- libmatheval-1.1.11+dfsg.orig/tests/functions.at
++++ libmatheval-1.1.11+dfsg/tests/functions.at
+@@ -29,7 +29,7 @@ AT_DATA([function.scm],
+ (display (evaluator-evaluate-x f 1))
+ ]])
+
+-AT_CHECK([matheval.sh function.scm], [ignore], [2.71828182845905], [ignore])
++AT_CHECK([matheval.sh function.scm], [ignore], [2.718281828459045], [ignore])
+
+ AT_DATA([function.scm],
+ [[
+@@ -80,7 +80,7 @@ AT_DATA([function.scm],
+ (display (evaluator-evaluate-x f 1))
+ ]])
+
+-AT_CHECK([matheval.sh function.scm], [ignore], [0.841470984807897], [ignore])
++AT_CHECK([matheval.sh function.scm], [ignore], [0.8414709848078965], [ignore])
+
+ AT_DATA([function.scm],
+ [[
+@@ -97,7 +97,7 @@ AT_DATA([function.scm],
+ (display (evaluator-evaluate-x f 1))
+ ]])
+
+-AT_CHECK([matheval.sh function.scm], [ignore], [0.54030230586814], [ignore])
++AT_CHECK([matheval.sh function.scm], [ignore], [0.5403023058681398], [ignore])
+
+ AT_DATA([function.scm],
+ [[
+@@ -114,7 +114,7 @@ AT_DATA([function.scm],
+ (display (evaluator-evaluate-x f 1))
+ ]])
+
+-AT_CHECK([matheval.sh function.scm], [ignore], [1.5574077246549], [ignore])
++AT_CHECK([matheval.sh function.scm], [ignore], [1.5574077246549023], [ignore])
+
+ AT_DATA([function.scm],
+ [[
+@@ -131,7 +131,7 @@ AT_DATA([function.scm],
+ (display (evaluator-evaluate-x f 1))
+ ]])
+
+-AT_CHECK([matheval.sh function.scm], [ignore], [0.642092615934331], [ignore])
++AT_CHECK([matheval.sh function.scm], [ignore], [0.6420926159343306], [ignore])
+
+ AT_DATA([function.scm],
+ [[
+@@ -148,7 +148,7 @@ AT_DATA([function.scm],
+ (display (evaluator-evaluate-x f 1))
+ ]])
+
+-AT_CHECK([matheval.sh function.scm], [ignore], [1.85081571768093], [ignore])
++AT_CHECK([matheval.sh function.scm], [ignore], [1.8508157176809255], [ignore])
+
+ AT_DATA([function.scm],
+ [[
+@@ -165,7 +165,7 @@ AT_DATA([function.scm],
+ (display (evaluator-evaluate-x f 1))
+ ]])
+
+-AT_CHECK([matheval.sh function.scm], [ignore], [1.18839510577812], [ignore])
++AT_CHECK([matheval.sh function.scm], [ignore], [1.1883951057781212], [ignore])
+
+ AT_DATA([function.scm],
+ [[
+@@ -182,7 +182,7 @@ AT_DATA([function.scm],
+ (display (evaluator-evaluate-x f 1))
+ ]])
+
+-AT_CHECK([matheval.sh function.scm], [ignore], [1.5707963267949], [ignore])
++AT_CHECK([matheval.sh function.scm], [ignore], [1.5707963267948966], [ignore])
+
+ AT_DATA([function.scm],
+ [[
+@@ -216,7 +216,7 @@ AT_DATA([function.scm],
+ (display (evaluator-evaluate-x f 1))
+ ]])
+
+-AT_CHECK([matheval.sh function.scm], [ignore], [0.785398163397448], [ignore])
++AT_CHECK([matheval.sh function.scm], [ignore], [0.7853981633974483], [ignore])
+
+ AT_DATA([function.scm],
+ [[
+@@ -233,7 +233,7 @@ AT_DATA([function.scm],
+ (display (evaluator-evaluate-x f 1))
+ ]])
+
+-AT_CHECK([matheval.sh function.scm], [ignore], [0.785398163397448], [ignore])
++AT_CHECK([matheval.sh function.scm], [ignore], [0.7853981633974483], [ignore])
+
+ AT_DATA([function.scm],
+ [[
+@@ -267,7 +267,7 @@ AT_DATA([function.scm],
+ (display (evaluator-evaluate-x f 1))
+ ]])
+
+-AT_CHECK([matheval.sh function.scm], [ignore], [1.5707963267949], [ignore])
++AT_CHECK([matheval.sh function.scm], [ignore], [1.5707963267948966], [ignore])
+
+ AT_DATA([function.scm],
+ [[
+@@ -284,7 +284,7 @@ AT_DATA([function.scm],
+ (display (evaluator-evaluate-x f 1))
+ ]])
+
+-AT_CHECK([matheval.sh function.scm], [ignore], [1.1752011936438], [ignore])
++AT_CHECK([matheval.sh function.scm], [ignore], [1.1752011936438014], [ignore])
+
+ AT_DATA([function.scm],
+ [[
+@@ -301,7 +301,7 @@ AT_DATA([function.scm],
+ (display (evaluator-evaluate-x f 1))
+ ]])
+
+-AT_CHECK([matheval.sh function.scm], [ignore], [1.54308063481524], [ignore])
++AT_CHECK([matheval.sh function.scm], [ignore], [1.5430806348152437], [ignore])
+
+ AT_DATA([function.scm],
+ [[
+@@ -318,7 +318,7 @@ AT_DATA([function.scm],
+ (display (evaluator-evaluate-x f 1))
+ ]])
+
+-AT_CHECK([matheval.sh function.scm], [ignore], [0.761594155955765], [ignore])
++AT_CHECK([matheval.sh function.scm], [ignore], [0.7615941559557649], [ignore])
+
+ AT_DATA([function.scm],
+ [[
+@@ -335,7 +335,7 @@ AT_DATA([function.scm],
+ (display (evaluator-evaluate-x f 1))
+ ]])
+
+-AT_CHECK([matheval.sh function.scm], [ignore], [1.31303528549933], [ignore])
++AT_CHECK([matheval.sh function.scm], [ignore], [1.3130352854993315], [ignore])
+
+ AT_DATA([function.scm],
+ [[
+@@ -352,7 +352,7 @@ AT_DATA([function.scm],
+ (display (evaluator-evaluate-x f 1))
+ ]])
+
+-AT_CHECK([matheval.sh function.scm], [ignore], [0.648054273663885], [ignore])
++AT_CHECK([matheval.sh function.scm], [ignore], [0.6480542736638855], [ignore])
+
+ AT_DATA([function.scm],
+ [[
+@@ -368,7 +368,7 @@ AT_DATA([function.scm],
+ (display (evaluator-evaluate-x f 1))
+ ]])
+
+-AT_CHECK([matheval.sh function.scm], [ignore], [0.850918128239322], [ignore])
++AT_CHECK([matheval.sh function.scm], [ignore], [0.8509181282393216], [ignore])
+
+ AT_DATA([function.scm],
+ [[
+@@ -385,7 +385,7 @@ AT_DATA([function.scm],
+ (display (evaluator-evaluate-x f 1))
+ ]])
+
+-AT_CHECK([matheval.sh function.scm], [ignore], [0.881373587019543], [ignore])
++AT_CHECK([matheval.sh function.scm], [ignore], [0.8813735870195429], [ignore])
+
+ AT_DATA([function.scm],
+ [[
+@@ -419,7 +419,7 @@ AT_DATA([function.scm],
+ (display (evaluator-evaluate-x f 0.5))
+ ]])
+
+-AT_CHECK([matheval.sh function.scm], [ignore], [0.549306144334055], [ignore])
++AT_CHECK([matheval.sh function.scm], [ignore], [0.5493061443340549], [ignore])
+
+ AT_DATA([function.scm],
+ [[
+@@ -436,7 +436,7 @@ AT_DATA([function.scm],
+ (display (evaluator-evaluate-x f 2))
+ ]])
+
+-AT_CHECK([matheval.sh function.scm], [ignore], [0.549306144334055], [ignore])
++AT_CHECK([matheval.sh function.scm], [ignore], [0.5493061443340549], [ignore])
+
+ AT_DATA([function.scm],
+ [[
+@@ -470,7 +470,7 @@ AT_DATA([function.scm],
+ (display (evaluator-evaluate-x f 1))
+ ]])
+
+-AT_CHECK([matheval.sh function.scm], [ignore], [0.881373587019543], [ignore])
++AT_CHECK([matheval.sh function.scm], [ignore], [0.8813735870195429], [ignore])
+
+ AT_DATA([function.scm],
+ [[
+--- libmatheval-1.1.11+dfsg.orig/tests/numbers.at
++++ libmatheval-1.1.11+dfsg/tests/numbers.at
+@@ -53,6 +53,6 @@ AT_DATA([number.scm],
+ (display (evaluator-evaluate-x f 0))
+ ]])
+
+-AT_CHECK([matheval.sh number.scm], [ignore], [0.644394014977254], [ignore])
++AT_CHECK([matheval.sh number.scm], [ignore], [0.6443940149772542], [ignore])
+
+ AT_CLEANUP
diff --git a/easybuild/easyconfigs/l/libmatheval/libmatheval-1.1.11-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/libmatheval/libmatheval-1.1.11-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..b8bf07966b1
--- /dev/null
+++ b/easybuild/easyconfigs/l/libmatheval/libmatheval-1.1.11-GCCcore-13.3.0.eb
@@ -0,0 +1,45 @@
+easyblock = 'ConfigureMake'
+
+name = 'libmatheval'
+version = '1.1.11' # still the latest version available on the ftp mirror
+
+homepage = 'https://www.gnu.org/software/libmatheval/'
+description = """GNU libmatheval is a library (callable from C and Fortran) to parse
+ and evaluate symbolic expressions input as text.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = [GNU_SOURCE]
+sources = [SOURCELOWER_TAR_GZ]
+patches = [
+ '003-guile2.0.patch',
+ 'libmatheval-1.1.11_fix-matheval-test.patch'
+]
+checksums = [
+ {'libmatheval-1.1.11.tar.gz': '474852d6715ddc3b6969e28de5e1a5fbaff9e8ece6aebb9dc1cc63e9e88e89ab'},
+ {'003-guile2.0.patch': 'd0ad39d54800153cbaa26c01448f040d405f09e9fd57e1357eab170a274a9b5c'},
+ {'libmatheval-1.1.11_fix-matheval-test.patch': '2888ee1ba32bb864b655e53e13b06eafc23b598faed80b90585d41c98e2ae073'},
+]
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('flex', '2.6.4'),
+ ('Bison', '3.8.2'),
+ ('byacc', '2.0.20240109'),
+ # guile 2.2.X, 3.0.7 removed scm_num2dbl (among others), which are needed for libmatheval (at least for 1.1.11)
+ ('Guile', '2.0.14')
+]
+
+configopts = '--with-pic '
+
+# fix for guile-config being broken because shebang line contains full path to bin/guile
+configopts += 'GUILE_CONFIG="$EBROOTGUILE/bin/guile -e main -s $EBROOTGUILE/bin/guile-config"'
+
+sanity_check_paths = {
+ 'files': ['lib/libmatheval.a', 'include/matheval.h'],
+ 'dirs': [],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/l/libmbd/libmbd-0.12.6-foss-2022a.eb b/easybuild/easyconfigs/l/libmbd/libmbd-0.12.6-foss-2022a.eb
new file mode 100644
index 00000000000..e0e689460f9
--- /dev/null
+++ b/easybuild/easyconfigs/l/libmbd/libmbd-0.12.6-foss-2022a.eb
@@ -0,0 +1,59 @@
+easyblock = 'CMakeMake'
+
+name = 'libmbd'
+version = '0.12.6'
+
+homepage = 'https://libmbd.github.io/index.html'
+description = """
+Libmbd implements the many-body dispersion (MBD) method in several programming languages and frameworks:
+
+ - The Fortran implementation is the reference, most advanced implementation, with support for analytical
+ gradients and distributed parallelism, and additional functionality beyond the MBD method itself.
+ It provides a low-level and a high-level Fortran API, as well as a C API. Furthermore, Python bindings
+ to the C API are provided.
+ - The Python/Numpy implementation is intended for prototyping, and as a high-level language reference.
+ - The Python/Tensorflow implementation is an experiment that should enable rapid prototyping of machine
+ learning applications with MBD.
+
+The Python-based implementations as well as Python bindings to the Libmbd C API are accessible from the
+Python package called Pymbd.
+"""
+
+toolchain = {'name': 'foss', 'version': '2022a'}
+toolchainopts = {'usempi': True, 'pic': True}
+
+github_account = 'libmbd'
+source_urls = [GITHUB_SOURCE]
+sources = ['%(version)s.tar.gz']
+checksums = ['9f8154b6b2f57e78a8e33d3b315a244185e8e5ecb03661a469808af7512e761e']
+
+builddependencies = [
+ ('CMake', '3.23.1'),
+ ('pkgconf', '1.8.0'),
+]
+
+dependencies = [
+ ('Python', '3.10.4'),
+ ('SciPy-bundle', '2022.05'),
+ ('ELSI', '2.9.1', '-PEXSI'),
+]
+
+# build scripts expect either a git repo or a defined version string in a file
+_versiontag_file = '%(builddir)s/%(name)s-%(version)s/cmake/LibmbdVersionTag.cmake'
+preconfigopts = "echo 'set(VERSION_TAG \"%%(version)s\")' > %s && " % _versiontag_file
+
+configopts = "-DENABLE_SCALAPACK_MPI=ON -DENABLE_ELSI=ON "
+configopts += "-DMPIEXEC_MAX_NUMPROCS=1 " # number of procs in the tests
+
+# make sure that built libraries (libmbd.so) in build directory are picked when running tests
+# this is required when RPATH linking is used
+pretestopts = "export LD_LIBRARY_PATH=%(builddir)s/easybuild_obj:$LD_LIBRARY_PATH && "
+
+runtest = 'test'
+
+sanity_check_paths = {
+ 'files': ['lib/libmbd.%s' % SHLIB_EXT, 'include/mbd/mbd.h', 'include/mbd/mbd.mod'],
+ 'dirs': ['lib/cmake/mbd'],
+}
+
+moduleclass = 'phys'
diff --git a/easybuild/easyconfigs/l/libmbd/libmbd-0.12.6-foss-2023a.eb b/easybuild/easyconfigs/l/libmbd/libmbd-0.12.6-foss-2023a.eb
new file mode 100644
index 00000000000..260ecb98ddb
--- /dev/null
+++ b/easybuild/easyconfigs/l/libmbd/libmbd-0.12.6-foss-2023a.eb
@@ -0,0 +1,59 @@
+easyblock = 'CMakeMake'
+
+name = 'libmbd'
+version = '0.12.6'
+
+homepage = 'https://libmbd.github.io/index.html'
+description = """
+Libmbd implements the many-body dispersion (MBD) method in several programming languages and frameworks:
+
+ - The Fortran implementation is the reference, most advanced implementation, with support for analytical
+ gradients and distributed parallelism, and additional functionality beyond the MBD method itself.
+ It provides a low-level and a high-level Fortran API, as well as a C API. Furthermore, Python bindings
+ to the C API are provided.
+ - The Python/Numpy implementation is intended for prototyping, and as a high-level language reference.
+ - The Python/Tensorflow implementation is an experiment that should enable rapid prototyping of machine
+ learning applications with MBD.
+
+The Python-based implementations as well as Python bindings to the Libmbd C API are accessible from the
+Python package called Pymbd.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'usempi': True, 'pic': True}
+
+github_account = 'libmbd'
+source_urls = [GITHUB_SOURCE]
+sources = ['%(version)s.tar.gz']
+checksums = ['9f8154b6b2f57e78a8e33d3b315a244185e8e5ecb03661a469808af7512e761e']
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+ ('pkgconf', '1.9.5'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('ELSI', '2.11.0', '-PEXSI'),
+]
+
+# build scripts expect either a git repo or a defined version string in a file
+_versiontag_file = '%(builddir)s/%(name)s-%(version)s/cmake/LibmbdVersionTag.cmake'
+preconfigopts = "echo 'set(VERSION_TAG \"%%(version)s\")' > %s && " % _versiontag_file
+
+configopts = "-DENABLE_SCALAPACK_MPI=ON -DENABLE_ELSI=ON "
+configopts += "-DMPIEXEC_MAX_NUMPROCS=1 " # number of procs in the tests
+
+# make sure that built libraries (libmbd.so) in build directory are picked when running tests
+# this is required when RPATH linking is used
+pretestopts = "export LD_LIBRARY_PATH=%(builddir)s/easybuild_obj:$LD_LIBRARY_PATH && "
+
+runtest = 'test'
+
+sanity_check_paths = {
+ 'files': ['lib/libmbd.%s' % SHLIB_EXT, 'include/mbd/mbd.h', 'include/mbd/mbd.mod'],
+ 'dirs': ['lib/cmake/mbd'],
+}
+
+moduleclass = 'phys'
diff --git a/easybuild/easyconfigs/l/libnsl/libnsl-2.0.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/libnsl/libnsl-2.0.1-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..818f1687a15
--- /dev/null
+++ b/easybuild/easyconfigs/l/libnsl/libnsl-2.0.1-GCCcore-13.3.0.eb
@@ -0,0 +1,33 @@
+easyblock = 'ConfigureMake'
+
+name = 'libnsl'
+version = '2.0.1'
+
+homepage = 'https://github.com/thkukuk/libnsl'
+description = """The libnsl package contains the public client interface for NIS(YP)."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://github.com/thkukuk/%(name)s/releases/download/v%(version)s/']
+sources = [SOURCE_TAR_XZ]
+checksums = ['5c9e470b232a7acd3433491ac5221b4832f0c71318618dc6aa04dd05ffcd8fd9']
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+
+dependencies = [
+ ('libtirpc', '1.3.5'),
+]
+
+# Provide a symlink for libnsl.so.1, which used to be part of glibc.
+# This new version of libnsl should be backwards compatible.
+postinstallcmds = ['ln -s libnsl.so %(installdir)s/lib/libnsl.so.1']
+
+sanity_check_paths = {
+ 'files': ['include/rpcsvc/yp.h', 'lib/libnsl.a',
+ 'lib/libnsl.%s' % SHLIB_EXT, 'lib/libnsl.%s.1' % SHLIB_EXT],
+ 'dirs': ['include']
+}
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/l/libogg/libogg-1.3.5-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/libogg/libogg-1.3.5-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..810ddbe1169
--- /dev/null
+++ b/easybuild/easyconfigs/l/libogg/libogg-1.3.5-GCCcore-13.3.0.eb
@@ -0,0 +1,25 @@
+easyblock = 'ConfigureMake'
+
+name = 'libogg'
+version = '1.3.5'
+
+homepage = 'https://xiph.org/ogg/'
+description = """Ogg is a multimedia container format, and the native file and stream format for the Xiph.org
+multimedia codecs."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://ftp.osuosl.org/pub/xiph/releases/ogg/']
+sources = [SOURCELOWER_TAR_XZ]
+checksums = ['c4d91be36fc8e54deae7575241e03f4211eb102afb3fc0775fbbc1b740016705']
+
+builddependencies = [('binutils', '2.42')]
+
+configopts = '--enable-static --enable-shared'
+
+sanity_check_paths = {
+ 'files': ['lib/libogg.a', 'lib/libogg.%s' % SHLIB_EXT],
+ 'dirs': ['include/ogg'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/l/libopus/libopus-1.5.2-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/libopus/libopus-1.5.2-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..c09615c86f8
--- /dev/null
+++ b/easybuild/easyconfigs/l/libopus/libopus-1.5.2-GCCcore-13.3.0.eb
@@ -0,0 +1,30 @@
+easyblock = 'ConfigureMake'
+
+name = 'libopus'
+version = '1.5.2'
+
+homepage = 'https://www.opus-codec.org/'
+description = """Opus is a totally open, royalty-free, highly versatile audio codec. Opus is unmatched for interactive
+ speech and music transmission over the Internet, but is also intended for storage and streaming applications. It is
+ standardized by the Internet Engineering Task Force (IETF) as RFC 6716 which incorporated technology from Skype’s
+ SILK codec and Xiph.Org’s CELT codec."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://downloads.xiph.org/releases/opus/']
+sources = ['opus-%(version)s.tar.gz']
+checksums = ['65c1d2f78b9f2fb20082c38cbe47c951ad5839345876e46941612ee87f9a7ce1']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('pkgconf', '2.2.0'),
+]
+
+configopts = '--enable-static --enable-shared'
+
+sanity_check_paths = {
+ 'files': ['lib/libopus.a', 'lib/libopus.%s' % SHLIB_EXT],
+ 'dirs': ['include/opus'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/l/librosa/librosa-0.10.1-foss-2023a.eb b/easybuild/easyconfigs/l/librosa/librosa-0.10.1-foss-2023a.eb
index 444e2ba800d..c26fed6c2e3 100644
--- a/easybuild/easyconfigs/l/librosa/librosa-0.10.1-foss-2023a.eb
+++ b/easybuild/easyconfigs/l/librosa/librosa-0.10.1-foss-2023a.eb
@@ -27,7 +27,6 @@ use_pip = True
exts_list = [
('soxr', '0.3.7', {
- 'preinstallopts': 'python -m build && ',
'checksums': ['436ddff00c6eb2c75b79c19cfdca7527b1e31b5fad738652f044045ba6258593'],
}),
('audioread', '3.0.1', {
diff --git a/easybuild/easyconfigs/l/librsvg/librsvg-2.58.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/l/librsvg/librsvg-2.58.0-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..1391bcb955e
--- /dev/null
+++ b/easybuild/easyconfigs/l/librsvg/librsvg-2.58.0-GCCcore-12.3.0.eb
@@ -0,0 +1,41 @@
+easyblock = 'ConfigureMake'
+
+name = 'librsvg'
+version = '2.58.0'
+
+homepage = 'https://wiki.gnome.org/Projects/LibRsvg'
+description = "Librsvg is a library to render SVG files using cairo."
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = ['https://download.gnome.org/sources/librsvg/%(version_major_minor)s/']
+sources = [SOURCE_TAR_XZ]
+checksums = ['d7c444a926406b59790be0deae196e18ed26059da573fa1aa9ec9ca7658a559c']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('pkgconf', '1.9.5'),
+ ('Rust', '1.75.0'),
+]
+
+dependencies = [
+ ('cairo', '1.17.8'),
+ ('freetype', '2.13.0'),
+ ('Gdk-Pixbuf', '2.42.10'),
+ ('HarfBuzz', '5.3.1'),
+ ('Pango', '1.50.14'),
+ ('GObject-Introspection', '1.76.1'),
+]
+
+# don't GdkPixbuf loader (which gets added to the Gdk-Pixbuf installation directory)
+configopts = "--disable-pixbuf-loader"
+
+sanity_check_paths = {
+ 'files': ['bin/rsvg-convert', 'lib/librsvg-%(version_major)s.a', 'lib/librsvg-%%(version_major)s.%s' % SHLIB_EXT,
+ 'lib/pkgconfig/librsvg-%(version_major)s.0.pc'],
+ 'dirs': ['include/librsvg-%(version_major)s.0/librsvg', 'share'],
+}
+
+sanity_check_commands = ["rsvg-convert --help"]
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/l/libsndfile/libsndfile-1.2.2-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/libsndfile/libsndfile-1.2.2-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..e60ad09d1a1
--- /dev/null
+++ b/easybuild/easyconfigs/l/libsndfile/libsndfile-1.2.2-GCCcore-13.3.0.eb
@@ -0,0 +1,39 @@
+easyblock = 'CMakeMake'
+
+name = 'libsndfile'
+version = '1.2.2'
+
+homepage = 'http://www.mega-nerd.com/libsndfile'
+description = """Libsndfile is a C library for reading and writing files containing sampled sound
+ (such as MS Windows WAV and the Apple/SGI AIFF format) through one standard library interface."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://github.com/%(name)s/%(name)s/releases/download/%(version)s/']
+sources = [SOURCE_TAR_XZ]
+checksums = ['3799ca9924d3125038880367bf1468e53a1b7e3686a934f098b7e1d286cdb80e']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('pkgconf', '2.2.0'),
+ ('CMake', '3.29.3'),
+]
+dependencies = [
+ ('FLAC', '1.4.3'),
+ ('libvorbis', '1.3.7'),
+ ('libopus', '1.5.2'),
+ ('LAME', '3.100'),
+]
+
+configopts = [
+ '',
+ '-DBUILD_SHARED_LIBS=ON',
+]
+
+
+sanity_check_paths = {
+ 'files': ['include/sndfile.h', 'include/sndfile.hh', 'lib/%(name)s.a', 'lib/%(name)s.so'],
+ 'dirs': ['bin'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/l/libsodium/libsodium-1.0.20-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/libsodium/libsodium-1.0.20-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..e98d28304a8
--- /dev/null
+++ b/easybuild/easyconfigs/l/libsodium/libsodium-1.0.20-GCCcore-13.3.0.eb
@@ -0,0 +1,33 @@
+easyblock = 'ConfigureMake'
+
+name = 'libsodium'
+version = '1.0.20'
+
+homepage = 'https://doc.libsodium.org/'
+description = """
+ Sodium is a modern, easy-to-use software library for encryption, decryption,
+ signatures, password hashing and more.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = [
+ 'https://download.%(name)s.org/%(name)s/releases/',
+ 'https://download.%(name)s.org/%(name)s/releases/old/',
+ 'https://download.%(name)s.org/%(name)s/releases/old/unsupported/',
+]
+sources = [SOURCE_TAR_GZ]
+checksums = ['ebb65ef6ca439333c2bb41a0c1990587288da07f6c7fd07cb3a18cc18d30ce19']
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+
+
+sanity_check_paths = {
+ 'files': ['include/sodium.h', 'lib/%%(name)s.%s' % SHLIB_EXT, 'lib/%(name)s.a'],
+ 'dirs': ['include/sodium', 'lib/pkgconfig'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/l/libspatialindex/libspatialindex-2.0.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/libspatialindex/libspatialindex-2.0.0-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..1752b337b05
--- /dev/null
+++ b/easybuild/easyconfigs/l/libspatialindex/libspatialindex-2.0.0-GCCcore-13.3.0.eb
@@ -0,0 +1,25 @@
+easyblock = 'CMakeMake'
+
+name = 'libspatialindex'
+version = '2.0.0'
+
+homepage = 'https://libspatialindex.org'
+description = "C++ implementation of R*-tree, an MVR-tree and a TPR-tree with C API"
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://github.com/%(name)s/%(name)s/releases/download/%(version)s/']
+sources = ['spatialindex-src-%(version)s.tar.gz']
+checksums = ['f1d5a369681fa6ac3301a54db412ccf3180fc17163ebc3252f32c752f77345de']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('CMake', '3.29.3'),
+]
+
+sanity_check_paths = {
+ 'files': ['lib/%s.%s' % (name, SHLIB_EXT)],
+ 'dirs': ['include/spatialindex'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/l/libtirpc/libtirpc-1.3.5-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/libtirpc/libtirpc-1.3.5-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..a9fc2a5d749
--- /dev/null
+++ b/easybuild/easyconfigs/l/libtirpc/libtirpc-1.3.5-GCCcore-13.3.0.eb
@@ -0,0 +1,28 @@
+easyblock = 'ConfigureMake'
+
+name = 'libtirpc'
+version = '1.3.5'
+
+homepage = 'https://sourceforge.net/projects/libtirpc/'
+description = "Libtirpc is a port of Suns Transport-Independent RPC library to Linux."
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = [SOURCEFORGE_SOURCE]
+sources = [SOURCE_TAR_BZ2]
+checksums = ['9b31370e5a38d3391bf37edfa22498e28fe2142467ae6be7a17c9068ec0bf12f']
+
+configopts = '--enable-static --enable-shared --disable-gssapi'
+
+builddependencies = [
+ ('binutils', '2.42')
+]
+
+sanity_check_paths = {
+ 'files': ['lib/libtirpc.%s' % (x,) for x in ['a', SHLIB_EXT]],
+ 'dirs': ['include/tirpc', 'lib'],
+}
+
+modextrapaths = {'CPATH': 'include/tirpc'}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.3.2-foss-2018b.eb b/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.3.2-foss-2018b.eb
index df2d4d407fe..411ee1867d8 100644
--- a/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.3.2-foss-2018b.eb
+++ b/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.3.2-foss-2018b.eb
@@ -3,7 +3,7 @@ easyblock = 'ConfigureMake'
name = 'libvdwxc'
version = '0.3.2'
-homepage = 'http://libvdwxc.org'
+homepage = 'https://libvdwxc.materialsmodeling.org/'
description = """libvdwxc is a general library for evaluating energy and potential for
exchange-correlation (XC) functionals from the vdW-DF family that can be used with various
of density functional theory (DFT) codes."""
diff --git a/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-foss-2019a.eb b/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-foss-2019a.eb
index 99914532433..b750b9a414f 100644
--- a/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-foss-2019a.eb
+++ b/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-foss-2019a.eb
@@ -3,7 +3,7 @@ easyblock = 'ConfigureMake'
name = 'libvdwxc'
version = '0.4.0'
-homepage = 'http://libvdwxc.org'
+homepage = 'https://libvdwxc.materialsmodeling.org/'
description = """libvdwxc is a general library for evaluating energy and potential for
exchange-correlation (XC) functionals from the vdW-DF family that can be used with various
of density functional theory (DFT) codes."""
diff --git a/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-foss-2019b.eb b/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-foss-2019b.eb
index c9f93a8ff91..a04a99002a9 100644
--- a/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-foss-2019b.eb
+++ b/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-foss-2019b.eb
@@ -3,7 +3,7 @@ easyblock = 'ConfigureMake'
name = 'libvdwxc'
version = '0.4.0'
-homepage = 'https://libvdwxc.org'
+homepage = 'https://libvdwxc.materialsmodeling.org/'
description = """libvdwxc is a general library for evaluating energy and potential for
exchange-correlation (XC) functionals from the vdW-DF family that can be used with various
of density functional theory (DFT) codes."""
diff --git a/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-foss-2020a.eb b/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-foss-2020a.eb
index c6769e53157..dd9797af734 100644
--- a/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-foss-2020a.eb
+++ b/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-foss-2020a.eb
@@ -3,7 +3,7 @@ easyblock = 'ConfigureMake'
name = 'libvdwxc'
version = '0.4.0'
-homepage = 'https://libvdwxc.org'
+homepage = 'https://libvdwxc.materialsmodeling.org/'
description = """libvdwxc is a general library for evaluating energy and potential for
exchange-correlation (XC) functionals from the vdW-DF family that can be used with various
of density functional theory (DFT) codes."""
diff --git a/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-foss-2020b.eb b/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-foss-2020b.eb
index 9dee6b6ef26..0e414c5d729 100644
--- a/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-foss-2020b.eb
+++ b/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-foss-2020b.eb
@@ -3,7 +3,7 @@ easyblock = 'ConfigureMake'
name = 'libvdwxc'
version = '0.4.0'
-homepage = 'https://libvdwxc.org'
+homepage = 'https://libvdwxc.materialsmodeling.org/'
description = """libvdwxc is a general library for evaluating energy and potential for
exchange-correlation (XC) functionals from the vdW-DF family that can be used with various
of density functional theory (DFT) codes."""
diff --git a/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-foss-2021a.eb b/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-foss-2021a.eb
index eb7dd54a47d..843a00aaac2 100644
--- a/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-foss-2021a.eb
+++ b/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-foss-2021a.eb
@@ -3,7 +3,7 @@ easyblock = 'ConfigureMake'
name = 'libvdwxc'
version = '0.4.0'
-homepage = 'https://libvdwxc.org'
+homepage = 'https://libvdwxc.materialsmodeling.org/'
description = """libvdwxc is a general library for evaluating energy and potential for
exchange-correlation (XC) functionals from the vdW-DF family that can be used with various
of density functional theory (DFT) codes."""
diff --git a/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-foss-2021b.eb b/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-foss-2021b.eb
index c5a0fad835b..1050fbf314f 100644
--- a/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-foss-2021b.eb
+++ b/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-foss-2021b.eb
@@ -3,7 +3,7 @@ easyblock = 'ConfigureMake'
name = 'libvdwxc'
version = '0.4.0'
-homepage = 'https://libvdwxc.org'
+homepage = 'https://libvdwxc.materialsmodeling.org/'
description = """libvdwxc is a general library for evaluating energy and potential for
exchange-correlation (XC) functionals from the vdW-DF family that can be used with various
of density functional theory (DFT) codes."""
diff --git a/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-foss-2022a.eb b/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-foss-2022a.eb
index b1785ef119b..3b14a5ca707 100644
--- a/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-foss-2022a.eb
+++ b/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-foss-2022a.eb
@@ -3,7 +3,7 @@ easyblock = 'ConfigureMake'
name = 'libvdwxc'
version = '0.4.0'
-homepage = 'https://libvdwxc.org'
+homepage = 'https://libvdwxc.materialsmodeling.org/'
description = """libvdwxc is a general library for evaluating energy and potential for
exchange-correlation (XC) functionals from the vdW-DF family that can be used with various
of density functional theory (DFT) codes."""
diff --git a/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-foss-2023a.eb b/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-foss-2023a.eb
index 9cf45cc3abe..7c8c009c9d0 100644
--- a/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-foss-2023a.eb
+++ b/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-foss-2023a.eb
@@ -3,7 +3,7 @@ easyblock = 'ConfigureMake'
name = 'libvdwxc'
version = '0.4.0'
-homepage = 'https://libvdwxc.org'
+homepage = 'https://libvdwxc.materialsmodeling.org/'
description = """libvdwxc is a general library for evaluating energy and potential for
exchange-correlation (XC) functionals from the vdW-DF family that can be used with various
of density functional theory (DFT) codes."""
diff --git a/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-foss-2024a.eb b/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-foss-2024a.eb
new file mode 100644
index 00000000000..de1dca5e394
--- /dev/null
+++ b/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-foss-2024a.eb
@@ -0,0 +1,27 @@
+easyblock = 'ConfigureMake'
+
+name = 'libvdwxc'
+version = '0.4.0'
+
+homepage = 'https://libvdwxc.materialsmodeling.org/'
+description = """libvdwxc is a general library for evaluating energy and potential for
+exchange-correlation (XC) functionals from the vdW-DF family that can be used with various
+of density functional theory (DFT) codes."""
+
+toolchain = {'name': 'foss', 'version': '2024a'}
+
+source_urls = ['https://launchpad.net/libvdwxc/stable/%(version)s/+download/']
+sources = [SOURCE_TAR_GZ]
+checksums = ['3524feb5bb2be86b4688f71653502146b181e66f3f75b8bdaf23dd1ae4a56b33']
+
+preconfigopts = 'unset CC && unset FC && '
+
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in ['libvdwxc_fdtest', 'libvdwxc_maintest',
+ 'libvdwxc_q0test', 'libvdwxc_q0test2']] +
+ ['lib/lib%s.%s' % (x, y) for x in ['vdwxc', 'vdwxcfort']
+ for y in ['a', SHLIB_EXT]],
+ 'dirs': ['include'],
+}
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-intel-2020b.eb b/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-intel-2020b.eb
index 751488a0728..a610d3ec773 100644
--- a/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-intel-2020b.eb
+++ b/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-intel-2020b.eb
@@ -3,7 +3,7 @@ easyblock = 'ConfigureMake'
name = 'libvdwxc'
version = '0.4.0'
-homepage = 'https://libvdwxc.org'
+homepage = 'https://libvdwxc.materialsmodeling.org/'
description = """libvdwxc is a general library for evaluating energy and potential for
exchange-correlation (XC) functionals from the vdW-DF family that can be used with various
of density functional theory (DFT) codes."""
diff --git a/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-intel-2021a.eb b/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-intel-2021a.eb
index cdc3abd5a19..e137148b85c 100644
--- a/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-intel-2021a.eb
+++ b/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-intel-2021a.eb
@@ -3,7 +3,7 @@ easyblock = 'ConfigureMake'
name = 'libvdwxc'
version = '0.4.0'
-homepage = 'https://libvdwxc.org'
+homepage = 'https://libvdwxc.materialsmodeling.org/'
description = """libvdwxc is a general library for evaluating energy and potential for
exchange-correlation (XC) functionals from the vdW-DF family that can be used with various
of density functional theory (DFT) codes."""
diff --git a/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-intel-2021b.eb b/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-intel-2021b.eb
index c8c0d2a8644..5df0f660f1d 100644
--- a/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-intel-2021b.eb
+++ b/easybuild/easyconfigs/l/libvdwxc/libvdwxc-0.4.0-intel-2021b.eb
@@ -3,7 +3,7 @@ easyblock = 'ConfigureMake'
name = 'libvdwxc'
version = '0.4.0'
-homepage = 'https://libvdwxc.org'
+homepage = 'https://libvdwxc.materialsmodeling.org/'
description = """libvdwxc is a general library for evaluating energy and potential for
exchange-correlation (XC) functionals from the vdW-DF family that can be used with various
of density functional theory (DFT) codes."""
diff --git a/easybuild/easyconfigs/l/libvips/libvips-8.15.2-GCC-12.3.0.eb b/easybuild/easyconfigs/l/libvips/libvips-8.15.2-GCC-12.3.0.eb
new file mode 100644
index 00000000000..088bc0e8299
--- /dev/null
+++ b/easybuild/easyconfigs/l/libvips/libvips-8.15.2-GCC-12.3.0.eb
@@ -0,0 +1,49 @@
+easyblock = 'MesonNinja'
+
+name = 'libvips'
+version = '8.15.2'
+
+homepage = 'https://github.com/libvips/libvips'
+description = 'libvips is a demand-driven, horizontally threaded image processing library.'
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+
+github_account = 'libvips'
+source_urls = [GITHUB_LOWER_SOURCE]
+sources = [{'download_filename': 'v%(version)s.tar.gz', 'filename': SOURCE_TAR_GZ}]
+checksums = ['8c3ece7be367636fd676573a8ff22170c07e95e81fd94f2d1eb9966800522e1f']
+
+builddependencies = [
+ ('Meson', '1.1.1'),
+ ('Ninja', '1.11.1'),
+ ('pkgconf', '1.9.5'),
+]
+
+dependencies = [
+ ('GLib', '2.77.1'),
+ ('expat', '2.5.0'),
+ ('libjpeg-turbo', '2.1.5.1'),
+ ('FFTW', '3.3.10'),
+ ('libarchive', '3.6.2'),
+ ('libpng', '1.6.39'),
+ ('ImageMagick', '7.1.1-15'),
+ ('Highway', '1.0.4'),
+ ('MATIO', '1.5.26'),
+ ('libwebp', '1.3.1'),
+ ('CFITSIO', '4.3.0'),
+ ('OpenEXR', '3.1.7'),
+ ('OpenJPEG', '2.5.0'),
+ ('OpenSlide', '3.4.1', '-largefiles', ('GCCcore', '12.3.0')),
+]
+
+runtest = 'meson test'
+testopts = ''
+
+sanity_check_paths = {
+ 'files': ['bin/vips', 'include/vips/vips.h'],
+ 'dirs': ['share'],
+}
+
+sanity_check_commands = ['vips --help']
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/l/libvorbis/libvorbis-1.3.7-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/libvorbis/libvorbis-1.3.7-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..7e32c5c3a99
--- /dev/null
+++ b/easybuild/easyconfigs/l/libvorbis/libvorbis-1.3.7-GCCcore-13.3.0.eb
@@ -0,0 +1,30 @@
+easyblock = 'ConfigureMake'
+
+name = 'libvorbis'
+version = '1.3.7'
+
+homepage = 'https://xiph.org/vorbis/'
+description = """Ogg Vorbis is a fully open, non-proprietary, patent-and-royalty-free, general-purpose compressed
+audio format"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://ftp.osuosl.org/pub/xiph/releases/vorbis/']
+sources = [SOURCE_TAR_XZ]
+checksums = ['b33cc4934322bcbf6efcbacf49e3ca01aadbea4114ec9589d1b1e9d20f72954b']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('pkgconf', '2.2.0'),
+]
+
+dependencies = [('libogg', '1.3.5')]
+
+configopts = '--enable-static --enable-shared'
+
+sanity_check_paths = {
+ 'files': ['lib/libvorbis.a', 'lib/libvorbis.%s' % SHLIB_EXT],
+ 'dirs': ['include/vorbis'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/l/libwebp/libwebp-1.4.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/libwebp/libwebp-1.4.0-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..70084689c61
--- /dev/null
+++ b/easybuild/easyconfigs/l/libwebp/libwebp-1.4.0-GCCcore-13.3.0.eb
@@ -0,0 +1,45 @@
+easyblock = 'ConfigureMake'
+
+name = 'libwebp'
+version = '1.4.0'
+
+homepage = 'https://developers.google.com/speed/webp/'
+description = """WebP is a modern image format that provides superior
+lossless and lossy compression for images on the web. Using WebP,
+webmasters and web developers can create smaller, richer images that
+make the web faster."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://storage.googleapis.com/downloads.webmproject.org/releases/webp']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['61f873ec69e3be1b99535634340d5bde750b2e4447caa1db9f61be3fd49ab1e5']
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+dependencies = [
+ ('libjpeg-turbo', '3.0.1'),
+ ('libpng', '1.6.43'),
+ ('LibTIFF', '4.6.0'),
+ ('giflib', '5.2.1'),
+]
+
+configopts = '--enable-libwebpmux'
+
+local_headers, local_libs = (
+ ['decode.h', 'demux.h', 'encode.h', 'mux.h', 'mux_types.h', 'types.h'],
+ ['webp', 'webpdemux', 'webpmux']
+)
+
+sanity_check_paths = {
+ 'files': (
+ ['include/webp/%s' % h for h in local_headers] +
+ ['lib/lib%s.a' % s for s in local_libs] +
+ ['lib/lib%s.%s' % (s, SHLIB_EXT) for s in local_libs]
+ ),
+ 'dirs': ['lib/']
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/l/libxc/libxc-6.2.2-GCC-13.2.0-nofhc.eb b/easybuild/easyconfigs/l/libxc/libxc-6.2.2-GCC-13.2.0-nofhc.eb
new file mode 100644
index 00000000000..709703f2949
--- /dev/null
+++ b/easybuild/easyconfigs/l/libxc/libxc-6.2.2-GCC-13.2.0-nofhc.eb
@@ -0,0 +1,53 @@
+easyblock = 'CMakeMake'
+
+name = 'libxc'
+version = '6.2.2'
+versionsuffix = '-nofhc'
+
+homepage = 'https://libxc.gitlab.io'
+description = """Libxc is a library of exchange-correlation functionals for density-functional theory.
+ The aim is to provide a portable, well tested and reliable set of exchange and correlation functionals."""
+
+toolchain = {'name': 'GCC', 'version': '13.2.0'}
+
+source_urls = ['https://gitlab.com/libxc/libxc/-/archive/%(version)s/']
+sources = [SOURCE_TAR_GZ]
+checksums = [('a0f6f1bba7ba5c0c85b2bfe65aca1591025f509a7f11471b4cd651a79491b045',
+ '3b0523924579cf494cafc6fea92945257f35692b004217d3dfd3ea7ca780e8dc')]
+
+builddependencies = [
+ ('CMake', '3.27.6'),
+ ('Perl', '5.38.0'),
+]
+
+local_common_configopts = "-DENABLE_FORTRAN=ON -DENABLE_XHOST=OFF "
+
+# don't disable building of third and fourth derivates, since it's required by some software that depends on libxc
+# (like ABINIT, which requires "3rd derivatives of energy")
+# see also https://github.com/pyscf/pyscf/issues/1103
+local_common_configopts += "-DDISABLE_KXC=OFF -DDISABLE_LXC=OFF"
+
+# Disable fhc, this needs to support codes (like VASP) relying on the projector augmented wave (PAW) approach
+local_common_configopts += ' -DDISABLE_FHC=ON'
+
+# perform iterative build to get both static and shared libraries
+configopts = [
+ local_common_configopts + ' -DBUILD_SHARED_LIBS=OFF',
+ local_common_configopts + ' -DBUILD_SHARED_LIBS=ON',
+]
+
+# make sure that built libraries (libxc*.so*) in build directory are picked when running tests
+# this is required when RPATH linking is used
+pretestopts = "export LD_LIBRARY_PATH=%(builddir)s/easybuild_obj:$LD_LIBRARY_PATH && "
+
+runtest = 'test'
+
+sanity_check_paths = {
+ 'files': ['bin/xc-info'] +
+ ['lib/libxc%s.%s' % (x, y) for x in ['', 'f03', 'f90'] for y in ['a', SHLIB_EXT]],
+ 'dirs': ['include', 'lib/pkgconfig', 'lib/cmake/Libxc'],
+}
+
+sanity_check_commands = ['xc-info 1']
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/l/libxc/libxc-6.2.2-GCC-13.3.0.eb b/easybuild/easyconfigs/l/libxc/libxc-6.2.2-GCC-13.3.0.eb
new file mode 100644
index 00000000000..9e4de5e8082
--- /dev/null
+++ b/easybuild/easyconfigs/l/libxc/libxc-6.2.2-GCC-13.3.0.eb
@@ -0,0 +1,52 @@
+easyblock = 'CMakeMake'
+
+name = 'libxc'
+version = '6.2.2'
+
+homepage = 'https://libxc.gitlab.io'
+description = """Libxc is a library of exchange-correlation functionals for density-functional theory.
+ The aim is to provide a portable, well tested and reliable set of exchange and correlation functionals."""
+
+toolchain = {'name': 'GCC', 'version': '13.3.0'}
+
+source_urls = ['https://gitlab.com/%(name)s/%(name)s/-/archive/%(version)s/']
+sources = [SOURCE_TAR_GZ]
+checksums = [
+ ('a0f6f1bba7ba5c0c85b2bfe65aca1591025f509a7f11471b4cd651a79491b045',
+ '3b0523924579cf494cafc6fea92945257f35692b004217d3dfd3ea7ca780e8dc',
+ 'd1b65ef74615a1e539d87a0e6662f04baf3a2316706b4e2e686da3193b26b20f'),
+]
+
+builddependencies = [
+ ('CMake', '3.29.3'),
+ ('Perl', '5.38.2'),
+]
+
+local_common_configopts = "-DENABLE_FORTRAN=ON -DENABLE_XHOST=OFF "
+
+# don't disable building of third and fourth derivates, since it's required by some software that depends on libxc
+# (like ABINIT, which requires "3rd derivatives of energy")
+# see also https://github.com/pyscf/pyscf/issues/1103
+local_common_configopts += "-DDISABLE_KXC=OFF -DDISABLE_LXC=OFF"
+
+# perform iterative build to get both static and shared libraries
+configopts = [
+ local_common_configopts + ' -DBUILD_SHARED_LIBS=OFF',
+ local_common_configopts + ' -DBUILD_SHARED_LIBS=ON',
+]
+
+# make sure that built libraries (libxc*.so*) in build directory are picked when running tests
+# this is required when RPATH linking is used
+pretestopts = "export LD_LIBRARY_PATH=%(builddir)s/easybuild_obj:$LD_LIBRARY_PATH && "
+
+runtest = 'test'
+
+sanity_check_paths = {
+ 'files': ['bin/xc-info'] +
+ ['lib/libxc%s.%s' % (x, y) for x in ['', 'f03', 'f90'] for y in ['a', SHLIB_EXT]],
+ 'dirs': ['include', 'lib/pkgconfig', 'lib/cmake/Libxc'],
+}
+
+sanity_check_commands = ['xc-info 1']
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/l/libxml2/libxml2-2.13.4-GCCcore-14.2.0.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.13.4-GCCcore-14.2.0.eb
new file mode 100644
index 00000000000..5b194eb5a3b
--- /dev/null
+++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.13.4-GCCcore-14.2.0.eb
@@ -0,0 +1,27 @@
+name = 'libxml2'
+version = '2.13.4'
+
+homepage = 'http://xmlsoft.org/'
+
+description = """
+ Libxml2 is the XML C parser and toolchain developed for the Gnome project
+ (but usable outside of the Gnome platform).
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '14.2.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://download.gnome.org/sources/libxml2/%(version_major_minor)s/']
+sources = [SOURCE_TAR_XZ]
+checksums = ['65d042e1c8010243e617efb02afda20b85c2160acdbfbcb5b26b80cec6515650']
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+
+dependencies = [
+ ('XZ', '5.6.3'),
+ ('zlib', '1.3.1'),
+]
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/l/libxslt/libxslt-1.1.42-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/libxslt/libxslt-1.1.42-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..a38c53ef841
--- /dev/null
+++ b/easybuild/easyconfigs/l/libxslt/libxslt-1.1.42-GCCcore-13.3.0.eb
@@ -0,0 +1,36 @@
+easyblock = 'ConfigureMake'
+
+name = 'libxslt'
+version = '1.1.42'
+
+homepage = 'http://xmlsoft.org/'
+description = """Libxslt is the XSLT C library developed for the GNOME project
+ (but usable outside of the Gnome platform)."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://download.gnome.org/sources/libxslt/%(version_major_minor)s/']
+sources = [SOURCE_TAR_XZ]
+checksums = ['85ca62cac0d41fc77d3f6033da9df6fd73d20ea2fc18b0a3609ffb4110e1baeb']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('pkgconf', '2.2.0'),
+]
+
+dependencies = [
+ ('zlib', '1.3.1'),
+ ('libxml2', '2.12.7'),
+]
+
+# Make sure it doesn't pick up OS installed libgcrypt or Python
+# enable building static libs
+configopts = '--with-crypto=no --with-python=no --enable-static=yes '
+
+sanity_check_paths = {
+ 'files': ['bin/xsltproc', 'include/libxslt/xslt.h', 'lib/%%(name)s.%s' % SHLIB_EXT, 'lib/%(name)s.a',
+ 'lib/libexslt.%s' % SHLIB_EXT, 'lib/libexslt.a'],
+ 'dirs': ['include/libxslt', 'include/libexslt'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/l/likwid/likwid-5.3.0-GCC-13.3.0.eb b/easybuild/easyconfigs/l/likwid/likwid-5.3.0-GCC-13.3.0.eb
new file mode 100644
index 00000000000..b9d22fc36dc
--- /dev/null
+++ b/easybuild/easyconfigs/l/likwid/likwid-5.3.0-GCC-13.3.0.eb
@@ -0,0 +1,54 @@
+easyblock = 'ConfigureMake'
+
+name = 'likwid'
+version = '5.3.0'
+
+homepage = 'https://github.com/RRZE-HPC/likwid'
+
+description = """
+Likwid stands for Like I knew what I am doing. This project contributes easy
+to use command line tools for Linux to support programmers in developing high
+performance multi threaded programs.
+"""
+
+toolchain = {'name': 'GCC', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/RRZE-HPC/%(name)s/archive/']
+sources = ['v%(version)s.tar.gz']
+
+checksums = ['c290e554c4253124ac2ab8b056e14ee4d23966b8c9fbfa10ba81f75ae543ce4e']
+
+builddependencies = [
+ ('Perl', '5.38.2'),
+]
+dependencies = [
+ ('hwloc', '2.10.0'),
+]
+
+skipsteps = ['configure']
+
+# include_GCC.mk is using ifort by default.
+# Changing it to gfortran, to be consistent with GCC toolchain
+prebuildopts = """sed -i 's@FC = ifort@FC = gfortran@g' make/include_GCC.mk && """
+prebuildopts += """sed -i 's@FCFLAGS = -module ./ # ifort@FCFLAGS = -J ./ -fsyntax-only #gfortran@g' """
+prebuildopts += """ make/include_GCC.mk && """
+
+buildopts = 'CC="$CC" CFLAGS="$CFLAGS -std=c99" PREFIX=%(installdir)s BUILDFREQ="" ACCESSMODE=perf_event '
+buildopts += 'FORTRAN_INTERFACE=true '
+buildopts += 'CFG_FILE_PATH=%(installdir)s/etc/likwid.cfg TOPO_FILE_PATH=%(installdir)s/etc/likwid_topo.cfg '
+buildopts += 'HWLOC_INCLUDE_DIR=$EBROOTHWLOC/include HWLOC_LIB_DIR=$EBROOTHWLOC/lib HWLOC_LIB_NAME=hwloc '
+
+maxparallel = 1
+
+installopts = buildopts + 'INSTALL_CHOWN="" '
+
+sanity_check_paths = {
+ 'files': ['bin/likwid-memsweeper', 'bin/likwid-mpirun', 'bin/likwid-perfctr',
+ 'bin/likwid-perfscope', 'bin/likwid-pin', 'bin/likwid-powermeter',
+ 'bin/likwid-topology', 'lib/liblikwidpin.%s' % SHLIB_EXT,
+ 'lib/liblikwid.%s' % SHLIB_EXT, 'include/likwid.mod'],
+ 'dirs': ['man/man1']
+}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/l/longread_umi/longread_umi-0.3.2-foss-2023a.eb b/easybuild/easyconfigs/l/longread_umi/longread_umi-0.3.2-foss-2023a.eb
new file mode 100644
index 00000000000..03393fb1618
--- /dev/null
+++ b/easybuild/easyconfigs/l/longread_umi/longread_umi-0.3.2-foss-2023a.eb
@@ -0,0 +1,84 @@
+easyblock = 'Bundle'
+
+name = 'longread_umi'
+version = '0.3.2'
+
+homepage = 'https://github.com/SorenKarst/longread_umi'
+description = "A collection of scripts for processing longread UMI data."
+github_account = 'SorenKarst'
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('cutadapt', '4.9'),
+ ('BCFtools', '1.18'),
+ ('BWA', '0.7.17'),
+ ('Filtlong', '0.2.1'),
+ ('gawk', '5.3.0'),
+ ('medaka', '1.11.3'),
+ ('minimap2', '2.26'),
+ ('parallel', '20230722'),
+ ('Pysam', '0.22.0'),
+ ('Racon', '1.5.0'),
+ ('SAMtools', '1.18'),
+ ('seqtk', '1.4'),
+ ('VSEARCH', '2.25.0'),
+]
+
+components = [
+ (name, version, {
+ 'easyblock': 'Tarball',
+ 'source_urls': [GITHUB_LOWER_SOURCE],
+ 'sources': [{'download_filename': 'v%(version)s.tar.gz', 'filename': SOURCE_TAR_GZ}],
+ 'checksums': ['62b8e156c00c0ec10fa8eae1cde5430922462f167fc537417ce0b47cd50a20cb'],
+ 'start_dir': '%(name)s-%(version)s',
+ }),
+ # PythonPackage executes Bundle-level postinstallcmds for some reason,
+ # which rely on both components being installed, so Porechop is installed second
+ ('Porechop', '0.2.4', {
+ 'easyblock': 'PythonPackage',
+ 'source_urls': ['https://github.com/rrwick/Porechop/archive'],
+ 'sources': [{'download_filename': 'v%(version)s.tar.gz', 'filename': SOURCE_TAR_GZ}],
+ 'checksums': ['44b499157d933be43f702cec198d1d693dcb9276e3c545669be63c2612493299'],
+ 'start_dir': '%(name)s-%(version)s',
+ 'use_pip': True,
+ 'download_dep_fail': True,
+ 'sanity_pip_check': True,
+ }),
+]
+
+# Adapt the built-in tool check but make it fail on error, replace usearch with vsearch and use our version
+local_deps_patch = (
+ "sed -i "
+ "-e '2s;^;set -e ;' "
+ "-e 's/USEARCH=usearch/USEARCH=vsearch/' "
+ "-e 's;$(git --git-dir ${LONGREAD_UMI_PATH}/.git describe --tag);%(version)s;' "
+ "%(installdir)s/scripts/dependencies.sh"
+)
+
+postinstallcmds = [
+ 'find %(installdir)s -name "*.sh" -exec chmod +x {} \\;',
+ 'ln -s %(installdir)s/longread_umi.sh %(installdir)s/bin/longread_umi',
+ # Part of the installation process; longread uses porechop with custom adapters
+ 'cp %(installdir)s/scripts/adapters.py %(installdir)s/lib/python%(pyshortver)s/site-packages/porechop/',
+ local_deps_patch,
+ # -minsize option not supported by 'vsearch -cluster_fast', and probably not needed
+ "sed -i 's/-minsize 1//g' %(installdir)s/scripts/umi_binning.sh",
+]
+
+sanity_check_paths = {
+ 'files': ['bin/longread_umi'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+sanity_check_commands = [
+ 'longread_umi -h | grep qc_pipeline',
+ 'longread_umi nanopore_pipeline -h | grep rrna_operon',
+ 'source %(installdir)s/scripts/dependencies.sh && longread_umi_version_dump',
+]
+
+modextrapaths = {
+ 'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages']
+}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/l/lpsolve/lpsolve-5.5.2.11-GCC-12.3.0.eb b/easybuild/easyconfigs/l/lpsolve/lpsolve-5.5.2.11-GCC-12.3.0.eb
new file mode 100644
index 00000000000..7681d5bf0a9
--- /dev/null
+++ b/easybuild/easyconfigs/l/lpsolve/lpsolve-5.5.2.11-GCC-12.3.0.eb
@@ -0,0 +1,33 @@
+easyblock = 'CmdCp'
+
+name = 'lpsolve'
+version = '5.5.2.11'
+
+homepage = 'https://sourceforge.net/projects/lpsolve/'
+description = "Mixed Integer Linear Programming (MILP) solver"
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+
+source_urls = [SOURCEFORGE_SOURCE]
+sources = ['lp_solve_%(version)s_source.tar.gz']
+checksums = ['6d4abff5cc6aaa933ae8e6c17a226df0fc0b671c438f69715d41d09fe81f902f']
+
+local_lpsolve_ver = '%(version_major)s%(version_minor)s'
+start_dir = 'lpsolve%s' % local_lpsolve_ver
+
+local_comp_cmd = 'sed -i "s/^c=.*/c=\'$CC\'/g" ccc && sed -i "s/^opts=.*/opts=\'$CFLAGS\'/g" ccc && '
+local_comp_cmd += "sh ccc"
+cmds_map = [('.*', local_comp_cmd)]
+
+local_lpsolve_libname = 'liblpsolve%s' % local_lpsolve_ver
+files_to_copy = [
+ (['bin/ux64/%s.a' % local_lpsolve_libname, 'bin/ux64/%s.%s' % (local_lpsolve_libname, SHLIB_EXT)], 'lib'),
+ (['../lp*.h'], 'include'),
+]
+
+sanity_check_paths = {
+ 'files': ['lib/%s.a' % local_lpsolve_libname, 'lib/%s.%s' % (local_lpsolve_libname, SHLIB_EXT)],
+ 'dirs': ['include'],
+}
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/l/lpsolve/lpsolve-5.5.2.11-GCC-13.2.0.eb b/easybuild/easyconfigs/l/lpsolve/lpsolve-5.5.2.11-GCC-13.2.0.eb
new file mode 100644
index 00000000000..03ed0716827
--- /dev/null
+++ b/easybuild/easyconfigs/l/lpsolve/lpsolve-5.5.2.11-GCC-13.2.0.eb
@@ -0,0 +1,33 @@
+easyblock = 'CmdCp'
+
+name = 'lpsolve'
+version = '5.5.2.11'
+
+homepage = 'https://sourceforge.net/projects/lpsolve/'
+description = "Mixed Integer Linear Programming (MILP) solver"
+
+toolchain = {'name': 'GCC', 'version': '13.2.0'}
+
+source_urls = [SOURCEFORGE_SOURCE]
+sources = ['lp_solve_%(version)s_source.tar.gz']
+checksums = ['6d4abff5cc6aaa933ae8e6c17a226df0fc0b671c438f69715d41d09fe81f902f']
+
+local_lpsolve_ver = '%(version_major)s%(version_minor)s'
+start_dir = 'lpsolve%s' % local_lpsolve_ver
+
+local_comp_cmd = 'sed -i "s/^c=.*/c=\'$CC\'/g" ccc && sed -i "s/^opts=.*/opts=\'$CFLAGS\'/g" ccc && '
+local_comp_cmd += "sh ccc"
+cmds_map = [('.*', local_comp_cmd)]
+
+local_lpsolve_libname = 'liblpsolve%s' % local_lpsolve_ver
+files_to_copy = [
+ (['bin/ux64/%s.a' % local_lpsolve_libname, 'bin/ux64/%s.%s' % (local_lpsolve_libname, SHLIB_EXT)], 'lib'),
+ (['../lp*.h'], 'include'),
+]
+
+sanity_check_paths = {
+ 'files': ['lib/%s.a' % local_lpsolve_libname, 'lib/%s.%s' % (local_lpsolve_libname, SHLIB_EXT)],
+ 'dirs': ['include'],
+}
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/l/lrcalc/lrcalc-2.1-GCCcore-13.2.0.eb b/easybuild/easyconfigs/l/lrcalc/lrcalc-2.1-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..aa14572bef6
--- /dev/null
+++ b/easybuild/easyconfigs/l/lrcalc/lrcalc-2.1-GCCcore-13.2.0.eb
@@ -0,0 +1,31 @@
+easyblock = 'ConfigureMake'
+
+name = 'lrcalc'
+version = '2.1'
+
+homepage = 'https://sites.math.rutgers.edu/~asbuch/lrcalc/'
+description = """The Littlewood-Richardson Calculator is a program
+ designed to compute Littlewood-Richardson coefficients."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+source_urls = ['https://math.rutgers.edu/~asbuch/lrcalc/']
+sources = [SOURCE_TAR_GZ]
+checksums = ['996ac00e6ea8321ef09b34478f5379f613933c3254aeba624b6419b8afa5df57']
+
+builddependencies = [
+ ('binutils', '2.40'),
+]
+
+sanity_check_paths = {
+ 'files': [
+ 'bin/lrcalc',
+ 'lib/liblrcalc.%s' % SHLIB_EXT,
+ 'include/lrcalc/ivector.h',
+ ],
+ 'dirs': []
+}
+
+sanity_check_commands = ["lrcalc 2>&1 | grep '^Usage:'"]
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/l/lwgrp/lwgrp-1.0.6-gompi-2024a.eb b/easybuild/easyconfigs/l/lwgrp/lwgrp-1.0.6-gompi-2024a.eb
new file mode 100644
index 00000000000..c36ee58b273
--- /dev/null
+++ b/easybuild/easyconfigs/l/lwgrp/lwgrp-1.0.6-gompi-2024a.eb
@@ -0,0 +1,36 @@
+#
+# Author: Robert Mijakovic
+#
+easyblock = 'ConfigureMake'
+
+name = 'lwgrp'
+version = '1.0.6'
+
+homepage = 'https://github.com/LLNL/lwgrp'
+description = """The light-weight group library defines data structures and collective operations to
+group MPI processes as an ordered set. Such groups are useful as substitutes for MPI communicators
+when the overhead of communicator creation is too costly. For example, certain sorting algorithms
+recursively divide processes into subgroups as the sort algorithm progresses. These groups may be
+different with each invocation, so that it is inefficient to create and destroy communicators during
+the sort routine."""
+
+toolchain = {'name': 'gompi', 'version': '2024a'}
+
+github_account = 'LLNL'
+source_urls = [GITHUB_SOURCE]
+sources = ['v%(version)s.tar.gz']
+checksums = ['108e622441028b7f88223244c9117d5de18a91fd7c246bfa48802b5c585557d0']
+
+builddependencies = [
+ ('Autotools', '20231222'),
+ ('pkgconf', '2.2.0'),
+]
+
+preconfigopts = './autogen.sh && '
+
+sanity_check_paths = {
+ 'files': ['include/%(name)s.h', 'lib/lib%%(name)s.%s' % SHLIB_EXT],
+ 'dirs': ['share/%(name)s'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/l/lxml/lxml-5.3.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/lxml/lxml-5.3.0-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..0af2dcbed3f
--- /dev/null
+++ b/easybuild/easyconfigs/l/lxml/lxml-5.3.0-GCCcore-13.3.0.eb
@@ -0,0 +1,28 @@
+easyblock = 'PythonPackage'
+
+name = 'lxml'
+version = '5.3.0'
+
+homepage = 'https://lxml.de/'
+description = """The lxml XML toolkit is a Pythonic binding for the C libraries libxml2 and libxslt."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+sources = [SOURCE_TAR_GZ]
+checksums = ['4e109ca30d1edec1ac60cdbe341905dc3b8f55b16855e03a54aaf59e51ec8c6f']
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+
+dependencies = [
+ ('Python', '3.12.3'),
+ ('libxml2', '2.12.7'),
+ ('libxslt', '1.1.42'),
+]
+
+download_dep_fail = True
+use_pip = True
+sanity_pip_check = True
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/m/MAFFT/MAFFT-7.526-GCC-13.2.0-with-extensions.eb b/easybuild/easyconfigs/m/MAFFT/MAFFT-7.526-GCC-13.2.0-with-extensions.eb
new file mode 100644
index 00000000000..175e1013f56
--- /dev/null
+++ b/easybuild/easyconfigs/m/MAFFT/MAFFT-7.526-GCC-13.2.0-with-extensions.eb
@@ -0,0 +1,51 @@
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+# Author: Pablo Escobar Lopez (Swiss Institute of Bioinformatics, Biozentrum - University of Basel)
+# 7.305 modified by:
+# Adam Huffman (The Francis Crick Institute)
+# 7.453 switch to Bundle by:
+# Alex Domingo (Vrije Universiteit Brussel)
+# Thomas Eylenbosch (Gluo NV)
+# J. Sassmannshausen (Imperial College London/UK)
+
+easyblock = 'Bundle'
+
+name = 'MAFFT'
+version = '7.526'
+versionsuffix = '-with-extensions'
+local_commit = 'ee9799916df6a5d5103d46d54933f8eb6d28e244'
+
+homepage = 'https://mafft.cbrc.jp/alignment/software/source.html'
+description = """MAFFT is a multiple sequence alignment program for unix-like operating systems.
+It offers a range of multiple alignment methods, L-INS-i (accurate; for alignment
+of <∼200 sequences), FFT-NS-2 (fast; for alignment of <∼30,000 sequences), etc."""
+
+toolchain = {'name': 'GCC', 'version': '13.2.0'}
+
+default_easyblock = 'ConfigureMake'
+default_component_specs = {
+ 'source_urls': ['https://gitlab.com/sysimm/mafft/-/archive/v%(version)s/'],
+ 'sources': ['mafft-%(version)s.tar.gz'],
+ 'checksums': ['6f536ec957b76f4e38e869d935d6626d318361ef8ee95e71c795b924f639ee10'],
+ 'skipsteps': ['configure'],
+ 'installopts': 'PREFIX=%(installdir)s',
+}
+
+components = [
+ (name, version, {
+ 'start_dir': 'mafft-v%%(version)s-%s/core' % local_commit,
+ }),
+ ('%s Extensions' % name, version, {
+ 'start_dir': 'mafft-v%%(version)s-%s/extensions' % local_commit,
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/mafft', 'libexec/mafft/mxscarnamod'], # mxscarnamod installed by MAFFT Extensions
+ 'dirs': ['libexec/mafft'],
+}
+
+sanity_check_commands = ['mafft --version']
+
+modextrapaths = {'MAFFT_BINARIES': 'libexec/mafft'}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/m/MATES/MATES-0.1.2-20240813-foss-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/m/MATES/MATES-0.1.2-20240813-foss-2023a-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..dbba96ddf2f
--- /dev/null
+++ b/easybuild/easyconfigs/m/MATES/MATES-0.1.2-20240813-foss-2023a-CUDA-12.1.1.eb
@@ -0,0 +1,58 @@
+easyblock = 'PythonBundle'
+
+name = 'MATES'
+version = '0.1.2-20240813'
+local_commit = 'd5ee15b'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://github.com/mcgilldinglab/MATES'
+description = "A Deep Learning-Based Model for Quantifying Transposable Elements in Single-Cell Sequencing Data."
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('CUDA', '12.1.1', '', SYSTEM),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('SciPy-bundle', '2023.07'),
+ ('matplotlib', '3.7.2'),
+ ('anndata', '0.10.5.post1'),
+ ('SAMtools', '1.18'),
+ ('pybedtools', '0.9.1'),
+ ('PyTorch-bundle', '2.1.2', versionsuffix),
+ ('Pysam', '0.22.0'),
+ ('tqdm', '4.66.1'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('sorted_nearest', '0.0.39', {
+ 'checksums': ['16a51d5db87ae226b47ace43c176bb672477a1b7ba8052ea9291a6356c9c69b1'],
+ }),
+ ('ncls', '0.0.68', {
+ 'checksums': ['81aaa5abb123bb21797ed2f8ef921e20222db14a3ecbc61ccf447532f2b7ba93'],
+ }),
+ ('natsort', '8.4.0', {
+ 'checksums': ['45312c4a0e5507593da193dedd04abb1469253b601ecaf63445ad80f0a1ea581'],
+ }),
+ ('pyranges', '0.0.129', {
+ 'checksums': ['bee83b4fad0062be9586668c6b0fc4270d5e761951975e018202993680071fb3'],
+ }),
+ (name, version, {
+ 'modulename': 'MATES',
+ # unpin exact versions of dependencies
+ 'preinstallopts': r"sed -i 's/==.*//g' requirements.txt && sed -i 's/==.*/\",/g' setup.py && ",
+ 'source_urls': ['https://github.com/mcgilldinglab/MATES/archive'],
+ 'sources': [{'download_filename': '%s.tar.gz' % local_commit, 'filename': SOURCE_TAR_GZ}],
+ 'checksums': ['aca36b2b99ebed975fdf61670a9b551c1ab7882ff2b9d4ed3f25f2e13805652c'],
+ }),
+]
+
+sanity_check_commands = [
+ "python -c 'from MATES import bam_processor, data_processor, MATES_model'",
+ "python -c 'from MATES import TE_quantifier, TE_quantifier_LongRead, TE_quantifier_Intronic'",
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/m/MATES/MATES-0.1.2-20240813-foss-2023a.eb b/easybuild/easyconfigs/m/MATES/MATES-0.1.2-20240813-foss-2023a.eb
new file mode 100644
index 00000000000..e7e73a89e80
--- /dev/null
+++ b/easybuild/easyconfigs/m/MATES/MATES-0.1.2-20240813-foss-2023a.eb
@@ -0,0 +1,56 @@
+easyblock = 'PythonBundle'
+
+name = 'MATES'
+version = '0.1.2-20240813'
+local_commit = 'd5ee15b'
+
+homepage = 'https://github.com/mcgilldinglab/MATES'
+description = "A Deep Learning-Based Model for Quantifying Transposable Elements in Single-Cell Sequencing Data."
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('SciPy-bundle', '2023.07'),
+ ('matplotlib', '3.7.2'),
+ ('anndata', '0.10.5.post1'),
+ ('SAMtools', '1.18'),
+ ('pybedtools', '0.9.1'),
+ ('PyTorch-bundle', '2.1.2'),
+ ('Pysam', '0.22.0'),
+ ('tqdm', '4.66.1'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('sorted_nearest', '0.0.39', {
+ 'checksums': ['16a51d5db87ae226b47ace43c176bb672477a1b7ba8052ea9291a6356c9c69b1'],
+ }),
+ ('ncls', '0.0.68', {
+ 'checksums': ['81aaa5abb123bb21797ed2f8ef921e20222db14a3ecbc61ccf447532f2b7ba93'],
+ }),
+ ('natsort', '8.4.0', {
+ 'checksums': ['45312c4a0e5507593da193dedd04abb1469253b601ecaf63445ad80f0a1ea581'],
+ }),
+ ('pyranges', '0.0.129', {
+ 'checksums': ['bee83b4fad0062be9586668c6b0fc4270d5e761951975e018202993680071fb3'],
+ }),
+ (name, version, {
+ 'modulename': 'MATES',
+ # unpin exact versions of dependencies
+ 'preinstallopts': r"sed -i 's/==.*//g' requirements.txt && sed -i 's/==.*/\",/g' setup.py && ",
+ 'source_urls': ['https://github.com/mcgilldinglab/MATES/archive'],
+ 'sources': [{'download_filename': '%s.tar.gz' % local_commit, 'filename': SOURCE_TAR_GZ}],
+ 'checksums': ['aca36b2b99ebed975fdf61670a9b551c1ab7882ff2b9d4ed3f25f2e13805652c'],
+ }),
+]
+
+sanity_check_commands = [
+ "python -c 'from MATES import bam_processor, data_processor, MATES_model'",
+ "python -c 'from MATES import TE_quantifier, TE_quantifier_LongRead, TE_quantifier_Intronic'",
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/m/MATES/MATES-0.1.5-20241121-foss-2023b.eb b/easybuild/easyconfigs/m/MATES/MATES-0.1.5-20241121-foss-2023b.eb
new file mode 100644
index 00000000000..2c87d3d09bf
--- /dev/null
+++ b/easybuild/easyconfigs/m/MATES/MATES-0.1.5-20241121-foss-2023b.eb
@@ -0,0 +1,53 @@
+easyblock = 'PythonBundle'
+
+name = 'MATES'
+version = '0.1.5-20241121'
+local_commit = '3846ad5'
+
+homepage = 'https://github.com/mcgilldinglab/MATES'
+description = "A Deep Learning-Based Model for Quantifying Transposable Elements in Single-Cell Sequencing Data."
+
+toolchain = {'name': 'foss', 'version': '2023b'}
+
+dependencies = [
+ ('Python', '3.11.5'),
+ ('Python-bundle-PyPI', '2023.10'),
+ ('SciPy-bundle', '2023.11'),
+ ('matplotlib', '3.8.2'),
+ ('anndata', '0.11.1'),
+ ('pybedtools', '0.10.0'),
+ ('PyTorch', '2.1.2'),
+ ('Pysam', '0.22.0'),
+ ('tqdm', '4.66.2'),
+ ('SAMtools', '1.19.2'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('sorted_nearest', '0.0.39', {
+ 'checksums': ['16a51d5db87ae226b47ace43c176bb672477a1b7ba8052ea9291a6356c9c69b1'],
+ }),
+ ('ncls', '0.0.68', {
+ 'checksums': ['81aaa5abb123bb21797ed2f8ef921e20222db14a3ecbc61ccf447532f2b7ba93'],
+ }),
+ ('pyranges', '0.0.129', {
+ 'checksums': ['bee83b4fad0062be9586668c6b0fc4270d5e761951975e018202993680071fb3'],
+ }),
+ (name, version, {
+ 'modulename': 'MATES',
+ # unpin exact versions of dependencies
+ 'preinstallopts': """sed -i 's/==.*//g' requirements.txt && sed -i 's/==.*/\",/g' setup.py && """,
+ 'source_urls': ['https://github.com/mcgilldinglab/MATES/archive'],
+ 'sources': [{'download_filename': '%s.tar.gz' % local_commit, 'filename': SOURCE_TAR_GZ}],
+ 'checksums': ['40fbb87dd72ca4c9e5347f2e984f9c0a0caa817d4eee692476be71e733e76f61'],
+ }),
+]
+
+sanity_check_commands = [
+ "python -c 'from MATES import bam_processor, data_processor, MATES_model'",
+ "python -c 'from MATES import TE_quantifier, TE_quantifier_LongRead, TE_quantifier_Intronic'",
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/m/MATLAB/MATLAB-2024b.eb b/easybuild/easyconfigs/m/MATLAB/MATLAB-2024b.eb
new file mode 100644
index 00000000000..c53c320205f
--- /dev/null
+++ b/easybuild/easyconfigs/m/MATLAB/MATLAB-2024b.eb
@@ -0,0 +1,28 @@
+name = 'MATLAB'
+version = '2024b'
+
+homepage = 'https://www.mathworks.com/products/matlab'
+description = """MATLAB is a high-level language and interactive environment
+ that enables you to perform computationally intensive tasks faster than with
+ traditional programming languages such as C, C++, and Fortran."""
+
+toolchain = SYSTEM
+
+sources = ['R%s_Linux.iso' % (version)]
+checksums = ['4e4499d93b4909b750ee2a6444af107cd5c1c62e75020c3e1625e946c6693573']
+
+download_instructions = 'Download %s from mathworks.com' % sources[0]
+
+java_options = '-Xmx2048m'
+
+osdependencies = [('p7zip-plugins', 'p7zip-full')] # for extracting iso-files
+
+# Use EB_MATLAB_KEY environment variable or uncomment and modify license key
+# key = '00000-00000-00000-00000-00000-00000-00000-00000-00000-00000-00000-00000'
+
+# Use EB_MATLAB_LICENSE_SERVER and EB_MATLAB_LICENSE_SERVER_PORT environment variables or
+# uncomment and modify the following variables for installation with floating license server
+# license_file = 'my-license-file'
+# license_server_port = 'XXXXX'
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/m/MCR/MCR-R2022b.10.eb b/easybuild/easyconfigs/m/MCR/MCR-R2022b.10.eb
new file mode 100644
index 00000000000..43dcfb25294
--- /dev/null
+++ b/easybuild/easyconfigs/m/MCR/MCR-R2022b.10.eb
@@ -0,0 +1,18 @@
+name = 'MCR'
+version = 'R2022b' # runtime version 9.13
+local_update = '10'
+versionsuffix = '.%s' % local_update
+
+homepage = 'https://www.mathworks.com/products/compiler/mcr/'
+description = """The MATLAB Runtime is a standalone set of shared libraries
+ that enables the execution of compiled MATLAB applications
+ or components on computers that do not have MATLAB installed."""
+
+toolchain = SYSTEM
+
+source_urls = ['https://ssd.mathworks.com/supportfiles/downloads/%%(version)s/Release/%s/deployment_files/'
+ 'installer/complete/glnxa64/' % local_update]
+sources = ['MATLAB_Runtime_%%(version)s_Update_%s_glnxa64.zip' % local_update]
+checksums = ['5bcee3f2be7a4ccb6ed0b7d8938eca7b33e4a0d81ec5351d6eb06150a89245eb']
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/m/MCR/MCR-R2023b.9.eb b/easybuild/easyconfigs/m/MCR/MCR-R2023b.9.eb
new file mode 100644
index 00000000000..b6832290ecb
--- /dev/null
+++ b/easybuild/easyconfigs/m/MCR/MCR-R2023b.9.eb
@@ -0,0 +1,18 @@
+name = 'MCR'
+version = 'R2023b' # runtime version 23.2
+local_update = '9'
+versionsuffix = '.%s' % local_update
+
+homepage = 'https://www.mathworks.com/products/compiler/mcr/'
+description = """The MATLAB Runtime is a standalone set of shared libraries
+ that enables the execution of compiled MATLAB applications
+ or components on computers that do not have MATLAB installed."""
+
+toolchain = SYSTEM
+
+source_urls = ['https://ssd.mathworks.com/supportfiles/downloads/%%(version)s/Release/%s/deployment_files/'
+ 'installer/complete/glnxa64/' % local_update]
+sources = ['MATLAB_Runtime_%%(version)s_Update_%s_glnxa64.zip' % local_update]
+checksums = ['ef69a624806aa3864d692a88a67d969e3b641ae296b4a091969185ef056f13bd']
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/m/MCR/MCR-R2024b.eb b/easybuild/easyconfigs/m/MCR/MCR-R2024b.eb
new file mode 100644
index 00000000000..17ad8df12f6
--- /dev/null
+++ b/easybuild/easyconfigs/m/MCR/MCR-R2024b.eb
@@ -0,0 +1,17 @@
+name = 'MCR'
+version = 'R2024b' # runtime version 24.2
+local_update = '0'
+
+homepage = 'https://www.mathworks.com/products/compiler/mcr/'
+description = """The MATLAB Runtime is a standalone set of shared libraries
+ that enables the execution of compiled MATLAB applications
+ or components on computers that do not have MATLAB installed."""
+
+toolchain = SYSTEM
+
+source_urls = ['https://ssd.mathworks.com/supportfiles/downloads/%%(version)s/Release/%s/deployment_files/'
+ 'installer/complete/glnxa64/' % local_update]
+sources = ['MATLAB_Runtime_%(version)s_glnxa64.zip']
+checksums = ['c46f4b55747aa4a8c03c1ece5bd5360c4dbb2ca402608fbd44688ba55f9b7a54']
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/m/MDI/MDI-1.4.29-gompi-2023b.eb b/easybuild/easyconfigs/m/MDI/MDI-1.4.29-gompi-2023b.eb
new file mode 100644
index 00000000000..0ff18b44f79
--- /dev/null
+++ b/easybuild/easyconfigs/m/MDI/MDI-1.4.29-gompi-2023b.eb
@@ -0,0 +1,54 @@
+# MDI package for LAMMPS
+# Author: J. Saßmannshausen (Imperial College London)
+
+easyblock = 'CMakeMake'
+name = 'MDI'
+version = '1.4.29'
+
+homepage = 'https://github.com/MolSSI-MDI/MDI_Library'
+description = """The MolSSI Driver Interface (MDI) project provides a
+standardized API for fast, on-the-fly communication between computational
+chemistry codes. This greatly simplifies the process of implementing
+methods that require the cooperation of multiple software packages and
+enables developers to write a single implementation that works across
+many different codes. The API is sufficiently general to support a wide
+variety of techniques, including QM/MM, ab initio MD, machine learning,
+advanced sampling, and path integral MD, while also being straightforwardly
+extensible. Communication between codes is handled by the MDI Library, which
+enables tight coupling between codes using either the MPI or TCP/IP methods.
+"""
+
+toolchain = {'name': 'gompi', 'version': '2023b'}
+
+source_urls = ['https://github.com/MolSSI-MDI/MDI_Library/archive']
+sources = ['v%(version)s.tar.gz']
+checksums = ['6fb9ab2cf01c1a88a183bb481313f3131f0afd041ddea7aeacabe857fbdcb6ad']
+
+builddependencies = [
+ ('CMake', '3.27.6'),
+]
+
+dependencies = [
+ ('Python', '3.11.5'),
+]
+
+# perform iterative build to get both static and shared libraries
+local_common_configopts = '-DCMAKE_POSITION_INDEPENDENT_CODE=ON -DPython_EXECUTABLE=$EBROOTPYTHON/bin/python '
+configopts = [
+ local_common_configopts + ' -Dlibtype=STATIC',
+ local_common_configopts + ' -DBUILD_SHARED_LIBS=ON',
+]
+
+modextrapaths = {
+ 'LD_LIBRARY_PATH': 'lib/mdi',
+ 'LIBRARY_PATH': 'lib/mdi',
+}
+
+sanity_check_paths = {
+ 'files': ['lib/mdi/libmdi.a', 'lib/mdi/libmdi.%s' % SHLIB_EXT],
+ 'dirs': ['include', 'share'],
+}
+
+bin_lib_subdirs = ['lib/mdi']
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/m/MDStress/MDStress-20191228-gfbf-2023a.eb b/easybuild/easyconfigs/m/MDStress/MDStress-20191228-gfbf-2023a.eb
new file mode 100644
index 00000000000..7be20fe7e5b
--- /dev/null
+++ b/easybuild/easyconfigs/m/MDStress/MDStress-20191228-gfbf-2023a.eb
@@ -0,0 +1,41 @@
+easyblock = 'CMakeMake'
+
+name = 'MDStress'
+version = '20191228'
+
+homepage = 'https://vanegaslab.org/software'
+description = """MDStress library enable the calculation of local stress
+fields from molecular dynamics simulations"""
+
+toolchain = {'name': 'gfbf', 'version': '2023a'}
+
+source_urls = ['https://vanegaslab.org/files']
+sources = ['mdstress-library-12282019.tar.gz']
+patches = [
+ 'MDStress-20191228_use_external_voro++_and_EB_lapack.patch',
+]
+checksums = [
+ {'mdstress-library-12282019.tar.gz': 'abea62dca77ca4645463415bec219a42554146cc0eefd480c760222e423c7db3'},
+ {'MDStress-20191228_use_external_voro++_and_EB_lapack.patch':
+ '566c181f9a6784c81b04226d360ed71d96f99310a231a88919e7fac37e515e92'},
+]
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+]
+
+dependencies = [
+ ('Voro++', '0.4.6'),
+ ('Python', '3.11.3'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/tensortools', 'include/mdstress/mds_basicops.h', 'lib/libmdstress.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+
+modextrapaths = {
+ 'PYTHONPATH': 'bin',
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/m/MDStress/MDStress-20191228_use_external_voro++_and_EB_lapack.patch b/easybuild/easyconfigs/m/MDStress/MDStress-20191228_use_external_voro++_and_EB_lapack.patch
new file mode 100644
index 00000000000..fd2458812bc
--- /dev/null
+++ b/easybuild/easyconfigs/m/MDStress/MDStress-20191228_use_external_voro++_and_EB_lapack.patch
@@ -0,0 +1,80 @@
+use external EB Voro++ and flexi/openblas as needed
+
+Åke Sandgren, 2024-11-07
+diff -ru mdstress-library.orig/CMakeLists.txt mdstress-library/CMakeLists.txt
+--- mdstress-library.orig/CMakeLists.txt 2019-12-28 15:48:10.000000000 +0100
++++ mdstress-library/CMakeLists.txt 2024-11-07 11:19:48.125912695 +0100
+@@ -1,4 +1,5 @@
+-cmake_minimum_required(VERSION 2.8)
++cmake_minimum_required(VERSION 3.0)
++project('MDStress')
+
+ enable_language(C)
+ enable_language(CXX)
+@@ -27,42 +28,28 @@
+ # COMMAND tar xaf voro++-0.4.6.tar.gz
+ # WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/contrib)
+ #endif()
+-FILE(GLOB VORO_SOURCES_HH include/voro++/*.hh)
+-FILE(GLOB VORO_SOURCES_CC contrib/voro++/src/*.cc)
+-#FILE(MAKE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/voro++)
+-#FILE(COPY ${VORO_SOURCES_HH} DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/include/voro++)
+-LIST(REMOVE_ITEM VORO_SOURCES_CC ${CMAKE_CURRENT_SOURCE_DIR}/contrib/voro++/src/voro++.cc)
+-LIST(REMOVE_ITEM VORO_SOURCES_CC ${CMAKE_CURRENT_SOURCE_DIR}/contrib/voro++/src/v_base_wl.cc)
++#FILE(GLOB VORO_SOURCES_HH include/voro++/*.hh)
++#FILE(GLOB VORO_SOURCES_CC contrib/voro++/src/*.cc)
++##FILE(MAKE_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/voro++)
++##FILE(COPY ${VORO_SOURCES_HH} DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/include/voro++)
++#LIST(REMOVE_ITEM VORO_SOURCES_CC ${CMAKE_CURRENT_SOURCE_DIR}/contrib/voro++/src/voro++.cc)
++#LIST(REMOVE_ITEM VORO_SOURCES_CC ${CMAKE_CURRENT_SOURCE_DIR}/contrib/voro++/src/v_base_wl.cc)
+
+-SET(MDSTRESS_SOURCES ${MDSTRESS_SOURCES_CPP} ${MDSTRESS_SOURCES_H} ${VORO_SOURCES_CC} ${VORO_SOURCES_HH})
++SET(MDSTRESS_SOURCES ${MDSTRESS_SOURCES_CPP} ${MDSTRESS_SOURCES_H})
+
+ INCLUDE_DIRECTORIES(include/mdstress)
+-INCLUDE_DIRECTORIES(include/voro++)
++#INCLUDE_DIRECTORIES(include/voro++)
+
+ # attempt to find LAPACK library
+-FIND_LIBRARY(LAPACK_LIBRARY_SYS NAMES lapack liblapack HINTS /usr/lib REQUIRED)
+-if (NOT LAPACK_LIBRARY_SYS)
+- UNSET(LAPACK_LIBRARY_SYS-NOTFOUND)
+- UNSET(LAPACK_LIBRARY_SYS)
+- # check to see if we need to download LAPACK
+- SET(LAPACK_URL http://www.netlib.org/lapack/lapack-3.8.0.tar.gz)
+- SET(LAPACK_DOWNLOAD_PATH ${CMAKE_CURRENT_SOURCE_DIR}/contrib/lapack-3.8.0.tar.gz)
+- FILE(DOWNLOAD ${LAPACK_URL} ${LAPACK_DOWNLOAD_PATH})
+- EXECUTE_PROCESS(
+- COMMAND tar xaf lapack-3.8.0.tar.gz
+- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/contrib)
+- ADD_SUBDIRECTORY(contrib/lapack-3.8.0)
+-else()
+- FIND_LIBRARY(LAPACK_LIBRARY NAMES lapack liblapack HINTS /usr/lib REQUIRED)
+-endif()
++FIND_LIBRARY(LAPACK_LIBRARY NAMES flexiblas openblas lapack liblapack REQUIRED)
+
+ ADD_LIBRARY(mdstress SHARED ${MDSTRESS_SOURCES})
+-TARGET_LINK_LIBRARIES(mdstress ${LAPACK_LIBRARY} ${PYTHON_LIBRARIES})
++TARGET_LINK_LIBRARIES(mdstress ${LAPACK_LIBRARY} ${PYTHON_LIBRARIES} voro++)
+
+-INSTALL(TARGETS mdstress RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib/static)
++INSTALL(TARGETS mdstress RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib)
+
+ INSTALL(FILES ${MDSTRESS_SOURCES_H} DESTINATION include/mdstress)
+-INSTALL(FILES ${VORO_SOURCES_HH} DESTINATION include/voro++)
++#INSTALL(FILES ${VORO_SOURCES_HH} DESTINATION include/voro++)
+
+ # only process python bindings if requested
+ if(MDS_BOOSTPYTHON)
+diff -ru mdstress-library.orig/src/mds_stressgrid.cpp mdstress-library/src/mds_stressgrid.cpp
+--- mdstress-library.orig/src/mds_stressgrid.cpp 2019-12-28 15:48:10.000000000 +0100
++++ mdstress-library/src/mds_stressgrid.cpp 2024-11-07 09:08:35.761694010 +0100
+@@ -21,7 +21,7 @@
+ =========================================================================*/
+
+ #include "mds_stressgrid.h"
+-#include "voro++.hh"
++#include "voro++/voro++.hh"
+
+ using namespace mds;
+
diff --git a/easybuild/easyconfigs/m/MEME/MEME-5.5.7-gompi-2023b.eb b/easybuild/easyconfigs/m/MEME/MEME-5.5.7-gompi-2023b.eb
new file mode 100644
index 00000000000..08fdaab9f31
--- /dev/null
+++ b/easybuild/easyconfigs/m/MEME/MEME-5.5.7-gompi-2023b.eb
@@ -0,0 +1,63 @@
+# 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 = 'ConfigureMake'
+
+name = 'MEME'
+version = '5.5.7'
+
+homepage = 'https://meme-suite.org/meme/index.html'
+description = """The MEME Suite allows you to: * discover motifs using MEME, DREME (DNA only) or
+ GLAM2 on groups of related DNA or protein sequences, * search sequence databases with motifs using
+ MAST, FIMO, MCAST or GLAM2SCAN, * compare a motif to all motifs in a database of motifs, * associate
+ motifs with Gene Ontology terms via their putative target genes, and * analyse motif enrichment
+ using SpaMo or CentriMo."""
+
+toolchain = {'name': 'gompi', 'version': '2023b'}
+
+source_urls = ['https://%(namelower)s-suite.org/%(namelower)s/%(namelower)s-software/%(version)s']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['1dca8d0e6d1d36570c1a88ab8dbe7e4b177733fbbeacaa2e8c4674febf57aaf4']
+
+dependencies = [
+ ('libxml2', '2.11.5'),
+ ('libxslt', '1.1.38'),
+ ('zlib', '1.2.13'),
+ ('Perl', '5.38.0'),
+ ('Python', '3.11.5'),
+ ('Ghostscript', '10.02.1'),
+ ('XML-Compile', '1.63'),
+]
+
+configopts = '--with-perl=${EBROOTPERL}/bin/perl --with-python=${EBROOTPYTHON}/bin/python '
+configopts += '--with-gs=${EBROOTGHOSTSCRIPT}/bin/gs '
+# config.log should indicate that all required/optional dependencies were found (see scripts/dependencies.pl)
+configopts += " && grep 'All required and optional Perl modules were found' config.log"
+
+pretestopts = "OMPI_MCA_rmaps_base_oversubscribe=1 "
+# test xstreme4 fails on Ubuntu 20.04, see: https://groups.google.com/g/meme-suite/c/GlfpGwApz1Y
+runtest = 'test'
+
+fix_perl_shebang_for = ['bin/*', 'libexec/meme-%(version)s/*']
+fix_python_shebang_for = ['bin/*', 'libexec/meme-%(version)s/*']
+
+sanity_check_paths = {
+ 'files': ['bin/meme', 'bin/dreme', 'bin/meme-chip', 'libexec/meme-%(version)s/meme2meme'],
+ 'dirs': ['lib'],
+}
+
+sanity_check_commands = [
+ "mpirun meme -h 2>&1 | grep 'Usage:'",
+ "meme2meme --help",
+ "perl -e 'require MemeSAX'",
+ "python -c 'import sequence_py3'",
+]
+
+modextrapaths = {
+ 'PATH': ['libexec/meme-%(version)s'],
+ 'PERL5LIB': ['lib/meme-%(version)s/perl'],
+ 'PYTHONPATH': ['lib/meme-%(version)s/python'],
+}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/m/METIS/METIS-5.1.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/m/METIS/METIS-5.1.0-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..417e4750ef9
--- /dev/null
+++ b/easybuild/easyconfigs/m/METIS/METIS-5.1.0-GCCcore-13.3.0.eb
@@ -0,0 +1,36 @@
+name = 'METIS'
+version = '5.1.0'
+
+homepage = 'http://glaros.dtc.umn.edu/gkhome/metis/metis/overview'
+
+description = """
+ METIS is a set of serial programs for partitioning graphs, partitioning
+ finite element meshes, and producing fill reducing orderings for sparse
+ matrices. The algorithms implemented in METIS are based on the multilevel
+ recursive-bisection, multilevel k-way, and multi-constraint partitioning
+ schemes.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = [
+ 'http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis',
+ 'http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/OLD',
+]
+sources = [SOURCELOWER_TAR_GZ]
+patches = ['%(name)s-%(version)s-use-doubles.patch']
+checksums = [
+ {'metis-5.1.0.tar.gz': '76faebe03f6c963127dbb73c13eab58c9a3faeae48779f049066a21c087c5db2'},
+ {'METIS-5.1.0-use-doubles.patch': '7e38a3ec8f2b8e3d189239bade5b28c0dd1c564485050109164fa71a6a767c67'},
+]
+
+# We use 32bit for indices and 64bit for content
+builddependencies = [
+ ('binutils', '2.42'),
+ ('CMake', '3.29.3'),
+]
+
+configopts = ['', 'shared=1']
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/m/MOKIT/MOKIT-1.2.6_20240830-gfbf-2023a.eb b/easybuild/easyconfigs/m/MOKIT/MOKIT-1.2.6_20240830-gfbf-2023a.eb
new file mode 100644
index 00000000000..5b4aedbdadb
--- /dev/null
+++ b/easybuild/easyconfigs/m/MOKIT/MOKIT-1.2.6_20240830-gfbf-2023a.eb
@@ -0,0 +1,64 @@
+easyblock = 'Bundle'
+
+name = 'MOKIT'
+version = '1.2.6_20240830'
+_commit = 'd66560a6a7926e5e21b45cbcc9213aaa26bd997d'
+
+homepage = 'https://github.com/1234zou/MOKIT'
+description = """
+MOKIT offers various utilities and modules to transfer MOs among various quantum chemistry software packages."""
+
+toolchain = {'name': 'gfbf', 'version': '2023a'}
+toolchainopts = {'openmp': True}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+]
+
+_makefile = 'Makefile.gnu_openblas_conda'
+maxparallel = 1
+
+default_component_specs = {
+ 'source_urls': ['https://github.com/1234zou/MOKIT/archive'],
+ 'checksums': ['b4e7224ac5b56e6d0116f7759a3017c57d527b1d35c32e3b2733904f7f7c4de5'],
+ 'sources': [{
+ 'download_filename': '%s.tar.gz' % _commit,
+ 'filename': SOURCE_TAR_GZ,
+ }],
+}
+
+components = [
+ (name, version, {
+ 'easyblock': 'MakeCp',
+ 'start_dir': 'MOKIT-%s/src' % _commit,
+ 'prebuildopts': 'sed -i -e "s/^MKL_FLAGS.*/MKL_FLAGS = $LIBBLAS/" %s && ' % _makefile,
+ 'buildopts': 'all -f %s' % _makefile,
+ 'files_to_copy': ['../bin'],
+ }),
+ ('mokit', version, {
+ 'easyblock': 'PythonPackage',
+ 'start_dir': 'MOKIT-%s' % _commit,
+ 'use_pip': True,
+ 'download_dep_fail': True,
+ 'sanity_pip_check': True,
+ 'options': {'modulename': 'mokit'},
+ }),
+]
+
+modextrapaths = {
+ 'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages']
+}
+
+sanity_check_commands = [
+ 'fch2inp | grep Example',
+ 'geom_opt | grep Example',
+ "python -s -c 'from mokit.lib.gaussian import load_mol_from_fch'",
+]
+
+sanity_check_paths = {
+ 'files': ['bin/geom_opt', 'bin/fch2inp'],
+ 'dirs': ['lib/python3.11/site-packages/mokit'],
+}
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/m/MOLGW/MOLGW-3.3-foss-2023a.eb b/easybuild/easyconfigs/m/MOLGW/MOLGW-3.3-foss-2023a.eb
new file mode 100644
index 00000000000..9a4730345d8
--- /dev/null
+++ b/easybuild/easyconfigs/m/MOLGW/MOLGW-3.3-foss-2023a.eb
@@ -0,0 +1,73 @@
+easyblock = 'MakeCp'
+
+name = 'MOLGW'
+version = '3.3'
+
+homepage = 'https://www.molgw.org'
+description = """MOLGW is a code that implements the many-body perturbation theory (MBPT) to
+describe the excited electronic states in finite systems (atoms, molecules,
+clusters). It most importantly implements the approximation for the self-energy
+and the Bethe-Salpeter equation for the optical excitations.
+
+MOLGW comes with a fully functional density-functional theory (DFT) code to
+prepare the subsequent MBPT runs. Standard local and semi-local approximations
+to DFT are available, as well as several hybrid functionals and range-separated
+hybrid functionals. MOLGW uses a Gaussian-type orbitals basis set so to reuse
+all the standard quantum-chemistry tools."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'usempi': True}
+
+github_account = 'molgw'
+source_urls = [GITHUB_LOWER_SOURCE]
+sources = ['v%(version)s.tar.gz']
+checksums = ['ff1c8eb736049e52608d4554a2d435ee9d15e47c4a9934d41712962748929e81']
+
+dependencies = [
+ ('libxc', '6.2.2'),
+ ('libcint', '5.4.0', '-pypzpx'),
+ # Python utilities
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('matplotlib', '3.7.2'),
+ ('PyYAML', '6.0'),
+]
+
+_config_arch_params = {
+ 'FCFLAGS': '-cpp $FFLAGS',
+ 'CXXFLAGS': '-cpp $CXXFLAGS',
+ 'LAPACK': '$LIBLAPACK',
+ 'SCALAPACK': '$LIBSCALAPACK',
+ 'LIBXC_ROOT': '$EBROOTLIBXC',
+}
+_config_arch_sed = ';'.join(["s|^%s=.*|%s=%s|" % (k, k, v) for (k, v) in _config_arch_params.items()])
+
+prebuildopts = 'cp config/my_machine_gfortran_mpi.arch src/my_machine.arch && '
+prebuildopts += 'sed "%s" -i src/my_machine.arch && ' % _config_arch_sed
+
+buildopts = 'molgw'
+
+runtest = 'test'
+
+files_to_copy = [
+ (['molgw'], 'bin'),
+ (['basis', 'utils'], ''),
+]
+
+fix_python_shebang_for = ['utils/*.py', 'utils/molgw/*.py']
+
+postinstallcmds = ["cd %(installdir)s/bin && for pyfile in ../utils/*.py; do ln -s $pyfile; done"]
+
+sanity_check_paths = {
+ 'files': ['bin/molgw', 'bin/run_molgw.py'],
+ 'dirs': ['basis', 'utils']
+}
+
+sanity_check_commands = ["python -s -c 'import molgw'"]
+
+modextrapaths = {
+ 'PYTHONPATH': 'utils',
+ 'MOLGW_BASIS_PATH': 'basis',
+}
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/m/MPICH/MPICH-4.2.2-GCC-13.3.0.eb b/easybuild/easyconfigs/m/MPICH/MPICH-4.2.2-GCC-13.3.0.eb
new file mode 100644
index 00000000000..2b2b2185ecc
--- /dev/null
+++ b/easybuild/easyconfigs/m/MPICH/MPICH-4.2.2-GCC-13.3.0.eb
@@ -0,0 +1,21 @@
+name = 'MPICH'
+version = '4.2.2'
+
+homepage = 'https://www.mpich.org/'
+description = """MPICH is a high-performance and widely portable implementation
+of the Message Passing Interface (MPI) standard (MPI-1, MPI-2 and MPI-3)."""
+
+toolchain = {'name': 'GCC', 'version': '13.3.0'}
+
+source_urls = ['https://www.mpich.org/static/downloads/%(version)s']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['883f5bb3aeabf627cb8492ca02a03b191d09836bbe0f599d8508351179781d41']
+
+dependencies = [
+ ('UCX', '1.16.0'),
+]
+
+configopts = 'FFLAGS="-w -fallow-argument-mismatch -O2" --with-devices=ch4:ucx --with-ucx=$EBROOTUCX'
+
+
+moduleclass = 'mpi'
diff --git a/easybuild/easyconfigs/m/MariaDB/MariaDB-11.7.0-GCC-13.3.0.eb b/easybuild/easyconfigs/m/MariaDB/MariaDB-11.7.0-GCC-13.3.0.eb
new file mode 100644
index 00000000000..437ed1edf42
--- /dev/null
+++ b/easybuild/easyconfigs/m/MariaDB/MariaDB-11.7.0-GCC-13.3.0.eb
@@ -0,0 +1,65 @@
+easyblock = 'CMakeMake'
+
+name = 'MariaDB'
+version = '11.7.0'
+
+homepage = 'https://mariadb.org/'
+description = """MariaDB is an enhanced, drop-in replacement for MySQL.
+Included engines: myISAM, Aria, InnoDB, RocksDB, TokuDB, OQGraph, Mroonga."""
+
+toolchain = {'name': 'GCC', 'version': '13.3.0'}
+
+source_urls = [
+ 'https://archive.mariadb.org/mariadb-%(version)s/source/',
+ 'http://ftp.hosteurope.de/mirror/archive.mariadb.org/mariadb-%(version)s/source',
+]
+sources = [SOURCELOWER_TAR_GZ]
+patches = ['MariaDB-10.1.13-link-rt-for-jemalloc.patch']
+checksums = [
+ {'mariadb-11.7.0.tar.gz': 'b0059a9550bb277790f1ec51e0eb329a8fbb8acfd98b5adb259bc0560ff70553'},
+ {'MariaDB-10.1.13-link-rt-for-jemalloc.patch': '8295837e623f6c782e1d64b00e0877ea98cce4bf8846755bb86c8a7732797c19'},
+]
+
+builddependencies = [
+ ('CMake', '3.29.3'),
+ ('libaio', '0.3.113'),
+]
+
+dependencies = [
+ ('ncurses', '6.5'),
+ ('zlib', '1.3.1'),
+ ('LZO', '2.10'), # optional
+ ('lz4', '1.9.4'), # optional
+ ('XZ', '5.4.5'), # optional
+ ('jemalloc', '5.3.0'), # optional
+ ('snappy', '1.1.10'), # needed by RocksDB; optional for InnoDB
+ ('libxml2', '2.12.7'), # needed by Connect XML
+ ('Boost', '1.85.0'), # needed by OQGraph
+ ('Judy', '1.0.5'), # needed by OQGraph
+ ('PCRE2', '10.43'),
+ ('OpenSSL', '3', '', SYSTEM), # runtime dep for mysql and PCRE2 for mysqltest
+]
+
+configopts = "-DCMAKE_SHARED_LINKER_FLAGS='-fuse-ld=bfd' " # Linking fails with default gold linker
+configopts += "-DMYSQL_MAINTAINER_MODE=OFF " # disabled to not treat warnings as errors (-Werror)
+configopts += "-DWITH_PCRE=auto " # External download sometimes fails so we build PCRE2 directly.
+configopts += "-DWITH_ZLIB=system "
+configopts += "-DWITH_EMBEDDED_SERVER=ON " # for libmysqld.so & co
+configopts += "-DWITH_SAFEMALLOC=OFF " # Disable memory debugger with jemalloc
+
+sanity_check_commands = ["mysql --help", "mysqltest --help"]
+
+sanity_check_paths = {
+ 'files': ['bin/mysql', 'bin/mysqld_safe', 'lib/libmysqlclient.%s' % SHLIB_EXT, 'lib/libmysqld.%s' % SHLIB_EXT,
+ 'lib/plugin/ha_connect.%s' % SHLIB_EXT, 'lib/plugin/ha_rocksdb.%s' % SHLIB_EXT,
+ 'lib/plugin/ha_oqgraph.%s' % SHLIB_EXT, 'scripts/mysql_install_db'],
+ 'dirs': ['include', 'share'],
+}
+
+modextrapaths = {'PATH': 'scripts'}
+
+# Ensure that jemalloc does not use transparent hugepages.
+# Database workloads with THP can cause memory bloat, potentially hiting OOM errors.
+modextravars = {'MALLOC_CONF': 'thp:never'}
+
+moduleclass = 'data'
diff --git a/easybuild/easyconfigs/m/Markdown/Markdown-3.7-GCCcore-13.3.0.eb b/easybuild/easyconfigs/m/Markdown/Markdown-3.7-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..04b5629d6bf
--- /dev/null
+++ b/easybuild/easyconfigs/m/Markdown/Markdown-3.7-GCCcore-13.3.0.eb
@@ -0,0 +1,24 @@
+easyblock = 'PythonPackage'
+
+name = 'Markdown'
+version = '3.7'
+
+homepage = 'https://python-markdown.github.io/'
+description = """This is a Python implementation of John Gruber's Markdown.
+It is almost completely compliant with the reference implementation, though there are a few known issues.
+Additional features are supported by the Available Extensions.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['2ae2471477cfd02dbbf038d5d9bc226d40def84b4fe2986e49b59b6b472bbed2']
+
+builddependencies = [('binutils', '2.42')]
+dependencies = [('Python', '3.12.3')]
+
+download_dep_fail = True
+sanity_pip_check = True
+use_pip = True
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/m/Mercurial/Mercurial-6.8.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/m/Mercurial/Mercurial-6.8.1-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..a733004f29a
--- /dev/null
+++ b/easybuild/easyconfigs/m/Mercurial/Mercurial-6.8.1-GCCcore-13.3.0.eb
@@ -0,0 +1,31 @@
+# #
+# Author: Robert Mijakovic
+# #
+easyblock = 'PythonPackage'
+
+name = 'Mercurial'
+version = '6.8.1'
+
+homepage = 'https://www.mercurial-scm.org'
+description = """Mercurial is a free, distributed source control management tool. It efficiently handles projects
+of any size and offers an easy and intuitive interface.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://www.%(namelower)s-scm.org/release/']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['030e8a7a6d590e4eaeb403ee25675615cd80d236f3ab8a0b56dcc84181158b05']
+
+dependencies = [
+ ('binutils', '2.42'),
+ ('Python', '3.12.3'),
+]
+
+download_dep_fail = True
+sanity_pip_check = True
+use_pip = True
+
+sanity_check_commands = ['hg --help']
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/m/Miniconda3/Miniconda3-24.7.1-0.eb b/easybuild/easyconfigs/m/Miniconda3/Miniconda3-24.7.1-0.eb
new file mode 100644
index 00000000000..c70f0086763
--- /dev/null
+++ b/easybuild/easyconfigs/m/Miniconda3/Miniconda3-24.7.1-0.eb
@@ -0,0 +1,17 @@
+easyblock = 'EB_Anaconda'
+
+name = 'Miniconda3'
+version = '24.7.1-0'
+
+homepage = 'https://docs.conda.io/en/latest/miniconda.html'
+description = """Miniconda is a free minimal installer for conda. It is a small,
+ bootstrap version of Anaconda that includes only conda, Python, the packages they
+ depend on, and a small number of other useful packages."""
+
+toolchain = SYSTEM
+
+source_urls = ['https://repo.anaconda.com/miniconda/']
+sources = ['%(name)s-py312_%(version)s-Linux-x86_64.sh']
+checksums = ['33442cd3813df33dcbb4a932b938ee95398be98344dff4c30f7e757cd2110e4f']
+
+moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/m/ModelTest-NG/ModelTest-NG-0.2.0-dev_20220721-GCC-12.3.0.eb b/easybuild/easyconfigs/m/ModelTest-NG/ModelTest-NG-0.2.0-dev_20220721-GCC-12.3.0.eb
new file mode 100644
index 00000000000..6973ef50246
--- /dev/null
+++ b/easybuild/easyconfigs/m/ModelTest-NG/ModelTest-NG-0.2.0-dev_20220721-GCC-12.3.0.eb
@@ -0,0 +1,60 @@
+easyblock = 'CMakeMakeCp'
+
+name = 'ModelTest-NG'
+version = '0.2.0-dev_20220721'
+_commit = '1066356'
+
+homepage = 'https://github.com/ddarriba/modeltest'
+description = """
+ModelTest-NG is a tool for selecting the best-fit model of evolution for DNA and protein alignments.
+ModelTest-NG supersedes jModelTest and ProtTest in one single tool, with graphical and command console interfaces.
+"""
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+
+# use exact commits of pll-modules and libpll-2 as specified in CMakeLists.txt
+sources = [
+ {
+ 'source_urls': ['https://github.com/ddarriba/modeltest/archive'],
+ 'download_filename': '%s.tar.gz' % _commit,
+ 'filename': SOURCE_TAR_GZ,
+ },
+ {
+ 'source_urls': ['https://github.com/ddarriba/pll-modules/archive'],
+ 'download_filename': '182ae28.tar.gz',
+ 'filename': 'pll-modules-182ae28.tar.gz',
+ 'extract_cmd': "tar -xzf %s -C %(builddir)s/modeltest*/libs/pll-modules/ --strip-components 1",
+ },
+ {
+ 'source_urls': ['https://github.com/xflouris/libpll-2/archive'],
+ 'download_filename': 'a3146f3.tar.gz',
+ 'filename': 'libpll-a3146f3.tar.gz',
+ 'extract_cmd': "tar -xzf %s -C %(builddir)s/modeltest*/libs/pll-modules/libs/libpll/ --strip-components 1",
+ },
+]
+checksums = [
+ {'ModelTest-NG-0.2.0-dev_20220721.tar.gz': '1010630a9e0aff7ec125e2ab3dccd76625b935d535793b2d01b35a3a1e3021ae'},
+ {'pll-modules-182ae28.tar.gz': 'd3bd1382e7bd5ef0a8f227bc1d47596bb806342113bb5fb2ad879e536e7873dd'},
+ {'libpll-a3146f3.tar.gz': 'd4a36b30074e1f93530cab48744117f1b7e7c9c78ca7665f92624ca6a25f9b85'},
+]
+
+builddependencies = [('CMake', '3.26.3')]
+
+dependencies = [
+ ('flex', '2.6.4'),
+ ('Bison', '3.8.2', '', SYSTEM),
+]
+
+files_to_copy = ['bin']
+
+sanity_check_paths = {
+ 'files': ["bin/modeltest-ng"],
+ 'dirs': []
+}
+
+sanity_check_commands = [
+ "modeltest-ng --help",
+ "modeltest-ng -i %(builddir)s/*/example-data/dna/tiny.fas -t ml",
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/m/MoloVol/MoloVol-1.1.1-GCC-12.3.0.eb b/easybuild/easyconfigs/m/MoloVol/MoloVol-1.1.1-GCC-12.3.0.eb
new file mode 100644
index 00000000000..45fc3443de9
--- /dev/null
+++ b/easybuild/easyconfigs/m/MoloVol/MoloVol-1.1.1-GCC-12.3.0.eb
@@ -0,0 +1,34 @@
+easyblock = 'CMakeMake'
+
+name = 'MoloVol'
+version = '1.1.1'
+
+homepage = 'https://molovol.com/'
+description = """
+MoloVol is a free, cross-plattform, scientific software for volume and surface computations of
+single molecules and crystallographic unit cells.
+"""
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+
+source_urls = ['https://github.com/molovol/MoloVol/archive/refs/tags/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['b41ddd9d98156f602700504ec67bb2002c8621eb4a0b43b7d3d60b4a5d0e15bd']
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+]
+
+dependencies = [
+ ('wxWidgets', '3.2.2.1'),
+ ('Xvfb', '21.1.8'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/molovol'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ['xvfb-run molovol -h']
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/m/MrBayes/MrBayes-3.2.7-gompi-2023a.eb b/easybuild/easyconfigs/m/MrBayes/MrBayes-3.2.7-gompi-2023a.eb
new file mode 100644
index 00000000000..a3537244720
--- /dev/null
+++ b/easybuild/easyconfigs/m/MrBayes/MrBayes-3.2.7-gompi-2023a.eb
@@ -0,0 +1,30 @@
+easyblock = 'ConfigureMake'
+
+name = 'MrBayes'
+version = '3.2.7'
+
+homepage = "https://nbisweden.github.io/MrBayes/"
+description = """MrBayes is a program for Bayesian inference and model choice across
+ a wide range of phylogenetic and evolutionary models."""
+
+toolchain = {'name': 'gompi', 'version': '2023a'}
+
+source_urls = ['https://github.com/NBISweden/MrBayes/releases/download/v%(version)s/']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['39d9eb269969b501268d5c27f77687c6eaa2c71ccf15c724e6f330fc405f24b9']
+
+dependencies = [
+ ('libreadline', '8.2'),
+ ('beagle-lib', '4.0.1', '-CUDA-12.1.1'),
+]
+
+configopts = "--with-mpi --with-readline --with-beagle=$EBROOTBEAGLEMINLIB "
+
+sanity_check_paths = {
+ 'files': ['bin/mb'],
+ 'dirs': ['share'],
+}
+
+sanity_check_commands = ['mb -h']
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/m/Mustache/Mustache-1.3.3-foss-2023b.eb b/easybuild/easyconfigs/m/Mustache/Mustache-1.3.3-foss-2023b.eb
new file mode 100644
index 00000000000..214d5af84bf
--- /dev/null
+++ b/easybuild/easyconfigs/m/Mustache/Mustache-1.3.3-foss-2023b.eb
@@ -0,0 +1,39 @@
+easyblock = 'PythonPackage'
+
+name = 'Mustache'
+version = '1.3.3'
+
+homepage = 'https://github.com/ay-lab/mustache'
+description = """Mustache (Multi-scale Detection of Chromatin Loops from Hi-C and Micro-C Maps using
+Scale-Space Representation) is a tool for multi-scale detection of chromatin loops from Hi-C and Micro-C
+contact maps in high resolutions (10kbp all the way to 500bp and even more).
+Mustache uses recent technical advances in scale-space theory in
+Computer Vision to detect chromatin loops caused by interaction of DNA segments with a variable size."""
+
+toolchain = {'name': 'foss', 'version': '2023b'}
+
+source_urls = ['https://pypi.python.org/packages/source/m/mustache_hic']
+sources = [{'download_filename': 'mustache_hic-%(version)s.tar.gz', 'filename': SOURCE_TAR_GZ}]
+checksums = ['fd7cca927e36145bf6e43903a79c3222ecfeeb497c8f57657d7647ec6eee5a6b']
+
+dependencies = [
+ ('Python', '3.11.5'),
+ ('Python-bundle-PyPI', '2023.10'),
+ ('SciPy-bundle', '2023.11'),
+ ('h5py', '3.11.0'),
+ ('HDF5', '1.14.3'),
+ ('cooler', '0.10.2'),
+ ('statsmodels', '0.14.1'),
+ ('hic-straw', '1.3.1'),
+]
+
+# delete pathlib dependency from setup.py
+preinstallopts = "sed -i 's/pathlib//' setup.py && "
+
+sanity_pip_check = True
+use_pip = True
+download_dep_fail = True
+
+options = {'modulename': 'mustache'}
+
+moduleclass = 'ai'
diff --git a/easybuild/easyconfigs/m/maeparser/maeparser-1.3.1-gompi-2024a.eb b/easybuild/easyconfigs/m/maeparser/maeparser-1.3.1-gompi-2024a.eb
new file mode 100644
index 00000000000..a757e81653a
--- /dev/null
+++ b/easybuild/easyconfigs/m/maeparser/maeparser-1.3.1-gompi-2024a.eb
@@ -0,0 +1,26 @@
+easyblock = 'CMakeMake'
+
+name = 'maeparser'
+version = '1.3.1'
+
+homepage = 'https://github.com/schrodinger/maeparser'
+description = "maeparser is a parser for Schrodinger Maestro files."
+
+toolchain = {'name': 'gompi', 'version': '2024a'}
+
+source_urls = ['https://github.com/schrodinger/maeparser/archive/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['a8d80f67d1b9be6e23b9651cb747f4a3200132e7d878a285119c86bf44568e36']
+
+builddependencies = [
+ ('CMake', '3.29.3'),
+]
+
+dependencies = [('Boost', '1.85.0')]
+
+sanity_check_paths = {
+ 'files': ['lib/libmaeparser.%s' % SHLIB_EXT],
+ 'dirs': ['include/maeparser', 'lib/cmake'],
+}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/m/makedepend/makedepend-1.0.9-GCCcore-13.3.0.eb b/easybuild/easyconfigs/m/makedepend/makedepend-1.0.9-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..20f151d30e1
--- /dev/null
+++ b/easybuild/easyconfigs/m/makedepend/makedepend-1.0.9-GCCcore-13.3.0.eb
@@ -0,0 +1,26 @@
+easyblock = 'ConfigureMake'
+
+name = 'makedepend'
+version = '1.0.9'
+
+homepage = 'https://linux.die.net/man/1/makedepend'
+description = "The makedepend package contains a C-preprocessor like utility to determine build-time dependencies."
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = [XORG_UTIL_SOURCE]
+sources = [SOURCE_TAR_GZ]
+checksums = ['bc94ffda6cd4671603a69c39dbe8f96b317707b9185b2aaa3b54b5d134b41884']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('xproto', '7.0.31'),
+ ('xorg-macros', '1.20.1'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/makedepend'],
+ 'dirs': [],
+}
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/m/mallard-ducktype/mallard-ducktype-1.0.2-GCCcore-12.3.0.eb b/easybuild/easyconfigs/m/mallard-ducktype/mallard-ducktype-1.0.2-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..65102800699
--- /dev/null
+++ b/easybuild/easyconfigs/m/mallard-ducktype/mallard-ducktype-1.0.2-GCCcore-12.3.0.eb
@@ -0,0 +1,28 @@
+easyblock = 'PythonPackage'
+
+name = 'mallard-ducktype'
+version = '1.0.2'
+
+homepage = 'https://github.com/projectmallard/mallard-ducktype'
+description = """Parser for the lightweight Ducktype syntax for Mallard"""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+sources = ['mallard_ducktype-%(version)s-py3-none-any.whl']
+checksums = ['90c2d9e40934c634f3e83e0758285e2803f62c2c5db405702af2f5884e1a2918']
+
+builddependencies = [
+ ('binutils', '2.40'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+]
+
+options = {'modulename': 'mallard.ducktype'}
+
+download_dep_fail = True
+use_pip = True
+sanity_pip_check = True
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/m/manta/manta-1.6.0-GCC-10.2.0-Python-2.7.18.eb b/easybuild/easyconfigs/m/manta/manta-1.6.0-GCC-10.2.0-Python-2.7.18.eb
index 4587e8e91df..ff224b45ba2 100644
--- a/easybuild/easyconfigs/m/manta/manta-1.6.0-GCC-10.2.0-Python-2.7.18.eb
+++ b/easybuild/easyconfigs/m/manta/manta-1.6.0-GCC-10.2.0-Python-2.7.18.eb
@@ -62,9 +62,7 @@ sanity_check_paths = {
'dirs': ['libexec'],
}
-sanity_check_commands = [
- 'python %(installdir)s/bin/runMantaWorkflowDemo.py'
-]
+sanity_check_commands = ['cd "$(mktemp -d)" && runMantaWorkflowDemo.py']
modextrapaths = {
'PATH': 'libexec',
diff --git a/easybuild/easyconfigs/m/manta/manta-1.6.0-gompi-2019b-Python-2.7.16.eb b/easybuild/easyconfigs/m/manta/manta-1.6.0-gompi-2019b-Python-2.7.16.eb
index 8e5943d0213..2d6c80a9b71 100644
--- a/easybuild/easyconfigs/m/manta/manta-1.6.0-gompi-2019b-Python-2.7.16.eb
+++ b/easybuild/easyconfigs/m/manta/manta-1.6.0-gompi-2019b-Python-2.7.16.eb
@@ -41,7 +41,7 @@ sanity_check_paths = {
'dirs': ['lib/python', 'share'],
}
-sanity_check_commands = ['runMantaWorkflowDemo.py']
+sanity_check_commands = ['cd "$(mktemp -d)" && runMantaWorkflowDemo.py']
modextrapaths = {
'PATH': 'libexec',
diff --git a/easybuild/easyconfigs/m/manta/manta-1.6.0-gompi-2020a-Python-2.7.18.eb b/easybuild/easyconfigs/m/manta/manta-1.6.0-gompi-2020a-Python-2.7.18.eb
index 0b2b3af8477..7633e9131e0 100644
--- a/easybuild/easyconfigs/m/manta/manta-1.6.0-gompi-2020a-Python-2.7.18.eb
+++ b/easybuild/easyconfigs/m/manta/manta-1.6.0-gompi-2020a-Python-2.7.18.eb
@@ -41,7 +41,7 @@ sanity_check_paths = {
'dirs': ['lib/python', 'share'],
}
-sanity_check_commands = ['runMantaWorkflowDemo.py']
+sanity_check_commands = ['cd "$(mktemp -d)" && runMantaWorkflowDemo.py']
modextrapaths = {
'PATH': 'libexec',
diff --git a/easybuild/easyconfigs/m/matplotlib/matplotlib-3.9.2-contourpy-fix-pybind-module.patch b/easybuild/easyconfigs/m/matplotlib/matplotlib-3.9.2-contourpy-fix-pybind-module.patch
new file mode 100644
index 00000000000..9a34eb1cdae
--- /dev/null
+++ b/easybuild/easyconfigs/m/matplotlib/matplotlib-3.9.2-contourpy-fix-pybind-module.patch
@@ -0,0 +1,14 @@
+Fixes: error: macro "PYBIND11_MODULE" passed 3 arguments, but takes just 2
+Author: Anke Kreuzer (JSC)
+diff -ruN src/wrap.cpp.orig src/wrap.cpp
+--- src/wrap.cpp.orig 2024-09-02 21:07:13.893013182 +0200
++++ src/wrap.cpp 2024-09-02 21:07:39.973005828 +0200
+@@ -18,7 +18,7 @@
+ static contourpy::LineType mpl20xx_line_type = contourpy::LineType::SeparateCode;
+ static contourpy::FillType mpl20xx_fill_type = contourpy::FillType::OuterCode;
+
+-PYBIND11_MODULE(_contourpy, m, py::mod_gil_not_used()) {
++PYBIND11_MODULE(_contourpy, m) {
+ m.doc() =
+ "C++11 extension module wrapped using `pybind11`_.\n\n"
+ "It should not be necessary to access classes and functions in this extension module "
diff --git a/easybuild/easyconfigs/m/matplotlib/matplotlib-3.9.2-gfbf-2024a.eb b/easybuild/easyconfigs/m/matplotlib/matplotlib-3.9.2-gfbf-2024a.eb
new file mode 100644
index 00000000000..33ddf00eb93
--- /dev/null
+++ b/easybuild/easyconfigs/m/matplotlib/matplotlib-3.9.2-gfbf-2024a.eb
@@ -0,0 +1,79 @@
+easyblock = 'PythonBundle'
+
+name = 'matplotlib'
+version = '3.9.2'
+
+homepage = 'https://matplotlib.org'
+description = """matplotlib is a python 2D plotting library which produces publication quality figures in a variety of
+ hardcopy formats and interactive environments across platforms. matplotlib can be used in python scripts, the python
+ and ipython shell, web application servers, and six graphical user interface toolkits."""
+
+toolchain = {'name': 'gfbf', 'version': '2024a'}
+
+builddependencies = [
+ ('pkgconf', '2.2.0'),
+ ('cppy', '1.2.1'),
+ ('meson-python', '0.16.0'),
+]
+
+dependencies = [
+ ('Python', '3.12.3'),
+ ('SciPy-bundle', '2024.05'),
+ ('libpng', '1.6.43'),
+ ('freetype', '2.13.2'),
+ ('Tkinter', '%(pyver)s'),
+ ('Pillow-SIMD', '10.4.0'),
+ ('Qhull', '2020.2'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+_include_path = "export CPLUS_INCLUDE_PATH=$EBROOTFREETYPE/include/freetype2:${CPLUS_INCLUDE_PATH} && "
+
+local_configopts = "--config-settings=setup-args='-Dsystem-qhull=true' && "
+local_configopts += " --config-settings=setup-args='-Dsystem-freetype=true' && "
+local_configopts += "export CPLUS_INCLUDE_PATH=$EBROOTFREETYPE/include/freetype2:${CPLUS_INCLUDE_PATH} && "
+
+exts_list = [
+ ('fonttools', '4.53.1', {
+ 'modulename': 'fontTools',
+ 'source_tmpl': '%(name)s-%(version)s.tar.gz',
+ 'checksums': ['e128778a8e9bc11159ce5447f76766cefbd876f44bd79aff030287254e4752c4'],
+ }),
+ ('Cycler', '0.12.1', {
+ 'modulename': 'cycler',
+ 'source_tmpl': 'cycler-%(version)s.tar.gz',
+ 'checksums': ['88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c'],
+ }),
+ ('kiwisolver', '1.4.5', {
+ 'patches': ['kiwisolver-1.4.4-fix_version.patch'],
+ 'checksums': [
+ {'kiwisolver-1.4.5.tar.gz': 'e57e563a57fb22a142da34f38acc2fc1a5c864bc29ca1517a88abc963e60d6ec'},
+ {'kiwisolver-1.4.4-fix_version.patch': '6753afbb3a88856493fcfa0b33989f35742f57bfd41ff3b7f71a98797e1bfbd0'},
+ ],
+ }),
+ ('contourpy', '1.3.0', {
+ 'patches': ['matplotlib-3.9.2-contourpy-fix-pybind-module.patch'],
+ 'checksums': [
+ {'contourpy-1.3.0.tar.gz': '7ffa0db17717a8ffb127efd0c95a4362d996b892c2904db72428d5b52e1938a4'},
+ {'matplotlib-3.9.2-contourpy-fix-pybind-module.patch':
+ 'a998438a1048524a550bf3bb607197658b13dce56e8e54169e24ce7c3c022a8f'},
+ ],
+ }),
+ (name, version, {
+ 'configopts': "%(local_configopts)s",
+ 'checksums': ['96ab43906269ca64a6366934106fa01534454a69e471b7bf3d79083981aaab92'],
+ }),
+]
+
+sanity_check_commands = [
+ """python -c 'import matplotlib; matplotlib.use("Agg"); import matplotlib.pyplot' """,
+ "python -c 'from mpl_toolkits.mplot3d import Axes3D'",
+]
+
+# use non-interactive plotting backend as default
+# see https://matplotlib.org/tutorials/introductory/usage.html#what-is-a-backend
+modextravars = {'MPLBACKEND': 'Agg'}
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/m/mcqd/mcqd-1.0.0-GCC-13.2.0.eb b/easybuild/easyconfigs/m/mcqd/mcqd-1.0.0-GCC-13.2.0.eb
new file mode 100644
index 00000000000..87f92553548
--- /dev/null
+++ b/easybuild/easyconfigs/m/mcqd/mcqd-1.0.0-GCC-13.2.0.eb
@@ -0,0 +1,32 @@
+easyblock = 'CmdCp'
+
+name = 'mcqd'
+version = '1.0.0'
+
+homepage = 'https://gitlab.com/janezkonc/mcqd'
+description = """MaxCliqueDyn is a fast exact algorithm for finding a maximum clique in an undirected graph."""
+
+toolchain = {'name': 'GCC', 'version': '13.2.0'}
+
+source_urls = ['https://gitlab.com/janezkonc/mcqd/-/archive/v%(version)s/']
+sources = ['mcqd-v%(version)s.tar.gz']
+checksums = ['37ff68ff88e047c929990d4c12ce474753f6f9c49324661a3aa1cfe77c26ad9d']
+
+cmds_map = [('.*', '$CXX $CXXFLAGS $LDFLAGS mcqd.cpp -o mcqd')]
+
+files_to_copy = [
+ (['mcqd'], 'bin'),
+ (['mcqd.h'], 'include'),
+]
+
+sanity_check_paths = {
+ 'files': [
+ 'bin/mcqd',
+ 'include/mcqd.h',
+ ],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["command -v mcqd"]
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/m/mctc-lib/mctc-lib-0.3.1-GCC-12.3.0.eb b/easybuild/easyconfigs/m/mctc-lib/mctc-lib-0.3.1-GCC-12.3.0.eb
new file mode 100644
index 00000000000..e8ec2b8435d
--- /dev/null
+++ b/easybuild/easyconfigs/m/mctc-lib/mctc-lib-0.3.1-GCC-12.3.0.eb
@@ -0,0 +1,41 @@
+easyblock = 'CMakeMake'
+
+name = 'mctc-lib'
+version = '0.3.1'
+
+homepage = 'https://grimme-lab.github.io/mctc-lib'
+description = """Common tool chain for working with molecular structure data in various
+applications. This library provides a unified way to perform operations on
+molecular structure data, like reading and writing to common geometry file
+formats."""
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+toolchainopts = {'pic': True}
+
+github_account = 'grimme-lab'
+source_urls = [GITHUB_SOURCE]
+sources = ['v%(version)s.tar.gz']
+checksums = ['03dc8ccba37413da70e55a07cef8e8de53bce33f5bb52c1f8db5fec326abe083']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('CMake', '3.26.3'),
+]
+
+dependencies = [
+ ('json-fortran', '9.0.2'),
+]
+
+configopts = ['-DBUILD_SHARED_LIBS=ON', '-DBUILD_SHARED_LIBS=OFF']
+
+sanity_check_paths = {
+ 'files': ['bin/mctc-convert', 'lib/libmctc-lib.%s' % SHLIB_EXT],
+ 'dirs': ['include/%(name)s', 'lib/cmake', 'lib/pkgconfig'],
+}
+
+sanity_check_commands = ["mctc-convert --help"]
+
+# run suite of tests with ctest
+runtest = True
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/m/mctc-lib/mctc-lib-0.3.1-GCC-13.2.0.eb b/easybuild/easyconfigs/m/mctc-lib/mctc-lib-0.3.1-GCC-13.2.0.eb
new file mode 100644
index 00000000000..781662c3dc2
--- /dev/null
+++ b/easybuild/easyconfigs/m/mctc-lib/mctc-lib-0.3.1-GCC-13.2.0.eb
@@ -0,0 +1,41 @@
+easyblock = 'CMakeMake'
+
+name = 'mctc-lib'
+version = '0.3.1'
+
+homepage = 'https://grimme-lab.github.io/mctc-lib'
+description = """Common tool chain for working with molecular structure data in various
+applications. This library provides a unified way to perform operations on
+molecular structure data, like reading and writing to common geometry file
+formats."""
+
+toolchain = {'name': 'GCC', 'version': '13.2.0'}
+toolchainopts = {'pic': True}
+
+github_account = 'grimme-lab'
+source_urls = [GITHUB_SOURCE]
+sources = ['v%(version)s.tar.gz']
+checksums = ['03dc8ccba37413da70e55a07cef8e8de53bce33f5bb52c1f8db5fec326abe083']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('CMake', '3.27.6'),
+]
+
+dependencies = [
+ ('json-fortran', '9.0.2'),
+]
+
+configopts = ['-DBUILD_SHARED_LIBS=ON', '-DBUILD_SHARED_LIBS=OFF']
+
+sanity_check_paths = {
+ 'files': ['bin/mctc-convert', 'lib/libmctc-lib.%s' % SHLIB_EXT],
+ 'dirs': ['include/%(name)s', 'lib/cmake', 'lib/pkgconfig'],
+}
+
+sanity_check_commands = ["mctc-convert --help"]
+
+# run suite of tests with ctest
+runtest = True
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/m/medaka/medaka-1.11.3-foss-2022a.eb b/easybuild/easyconfigs/m/medaka/medaka-1.11.3-foss-2022a.eb
index 85c733711d1..1be61af126b 100644
--- a/easybuild/easyconfigs/m/medaka/medaka-1.11.3-foss-2022a.eb
+++ b/easybuild/easyconfigs/m/medaka/medaka-1.11.3-foss-2022a.eb
@@ -57,6 +57,9 @@ exts_list = [
('wurlitzer', '3.0.3', {
'checksums': ['224f5fe70618be3872c05dfddc8c457191ec1870654596279fcc1edadebe3e5b'],
}),
+ ('pyabpoa', '1.5.3', {
+ 'checksums': ['94714bb5c6be9f5ca35b66a5c63490237ebff2498ff93b82a842a9512b0bbc08'],
+ }),
(name, version, {
'checksums': ['940568212d152f573270967b02f6e841561cc43138b6aa15783c371457fef7b9'],
# remove TensorFlow version requirement which is too strict
diff --git a/easybuild/easyconfigs/m/medaka/medaka-1.11.3-foss-2023a.eb b/easybuild/easyconfigs/m/medaka/medaka-1.11.3-foss-2023a.eb
index dffdad4341f..b38484c3cd8 100644
--- a/easybuild/easyconfigs/m/medaka/medaka-1.11.3-foss-2023a.eb
+++ b/easybuild/easyconfigs/m/medaka/medaka-1.11.3-foss-2023a.eb
@@ -57,6 +57,9 @@ exts_list = [
('wurlitzer', '3.0.3', {
'checksums': ['224f5fe70618be3872c05dfddc8c457191ec1870654596279fcc1edadebe3e5b'],
}),
+ ('pyabpoa', '1.5.3', {
+ 'checksums': ['94714bb5c6be9f5ca35b66a5c63490237ebff2498ff93b82a842a9512b0bbc08'],
+ }),
(name, version, {
'checksums': ['940568212d152f573270967b02f6e841561cc43138b6aa15783c371457fef7b9'],
# Some requirements are too strict.
diff --git a/easybuild/easyconfigs/m/medaka/medaka-1.12.0-foss-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/m/medaka/medaka-1.12.0-foss-2023a-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..c9ac4870bf5
--- /dev/null
+++ b/easybuild/easyconfigs/m/medaka/medaka-1.12.0-foss-2023a-CUDA-12.1.1.eb
@@ -0,0 +1,85 @@
+# This is a contribution from HPCNow! (http://hpcnow.com)
+# Copyright:: HPCNow!
+# Authors:: Danilo Gonzalez
+# License:: GPL-v3.0
+# Updated to foss-2020b to use with artic tool
+# J. Sassmannshausen (GSTT/NHS UK)
+# Updated to 1.5.0
+# Jasper Grimm (UoY)
+# Updated: Petr Král (INUITS)
+
+easyblock = 'PythonBundle'
+
+name = 'medaka'
+version = '1.12.0'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://github.com/nanoporetech/medaka'
+description = "medaka is a tool to create a consensus sequence from nanopore sequencing data."
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'pic': True}
+
+builddependencies = [('Autotools', '20220317')]
+
+_minimap_ver = '2.26'
+dependencies = [
+ ('CUDA', '12.1.1', '', SYSTEM),
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'), # includes cffi
+ ('TensorFlow', '2.15.1', versionsuffix),
+ ('Pysam', '0.22.0'),
+ ('SAMtools', '1.18'),
+ ('minimap2', _minimap_ver),
+ ('HTSlib', '1.18'), # for tabix, bgzip
+ ('Racon', '1.5.0'),
+ ('edlib', '1.3.9'),
+ ('pyspoa', '0.2.1'),
+ ('python-parasail', '1.3.4'),
+ ('ont-fast5-api', '4.1.2'),
+ ('WhatsHap', '2.2'),
+ ('intervaltree-python', '3.1.0'),
+ ('BCFtools', '1.18'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+local_sed_commands = [
+ "sed -i 's/tensorflow.*/tensorflow/g;s/cffi==1.15.0/cffi/g' requirements.txt pyproject.toml",
+ # Python 3.11 support
+ "sed -i 's/8, 9, 10/8, 9, 10, 11/g;s/,<3.11//g' setup.py",
+]
+
+exts_list = [
+ ('mappy', _minimap_ver, {
+ 'checksums': ['e53fbe9a3ea8762a64b8103f4f779c9fb16d418eaa0a731f45cebc83867a9b71'],
+ }),
+ ('wurlitzer', '3.1.1', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['0b2749c2cde3ef640bf314a9f94b24d929fe1ca476974719a6909dfc568c3aac'],
+ }),
+ ('h5py', '3.10.0', {
+ 'checksums': ['d93adc48ceeb33347eb24a634fb787efc7ae4644e6ea4ba733d099605045c049'],
+ }),
+ ('pyabpoa', '1.5.1', {
+ 'checksums': ['878f981e890a421d92a0d7606705d0ad9813ae6086239460dfe4b0cfc7476174'],
+ }),
+ (name, version, {
+ 'checksums': ['039219204111a8114b1f72d87d0d3463e43473790cff4520c8afbd79cc8784d6'],
+ # Some requirements are too strict.
+ 'preinstallopts': " && ".join(local_sed_commands) + " && ",
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/medaka', 'bin/medaka_consensus', 'bin/medaka_version_report'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = [
+ "medaka --help",
+ "medaka_version_report",
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/m/medaka/medaka-1.12.1-foss-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/m/medaka/medaka-1.12.1-foss-2023a-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..3e055e5d8dd
--- /dev/null
+++ b/easybuild/easyconfigs/m/medaka/medaka-1.12.1-foss-2023a-CUDA-12.1.1.eb
@@ -0,0 +1,88 @@
+# This is a contribution from HPCNow! (http://hpcnow.com)
+# Copyright:: HPCNow!
+# Authors:: Danilo Gonzalez
+# License:: GPL-v3.0
+# Updated to foss-2020b to use with artic tool
+# J. Sassmannshausen (GSTT/NHS UK)
+# Updated to 1.5.0
+# Jasper Grimm (UoY)
+# Updated: Petr Král (INUITS)
+
+easyblock = 'PythonBundle'
+
+name = 'medaka'
+version = '1.12.1'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://github.com/nanoporetech/medaka'
+description = "medaka is a tool to create a consensus sequence from nanopore sequencing data."
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'pic': True}
+
+builddependencies = [('Autotools', '20220317')]
+
+_minimap_ver = '2.26'
+dependencies = [
+ ('CUDA', '12.1.1', '', SYSTEM),
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'), # includes cffi
+ ('TensorFlow', '2.15.1', versionsuffix),
+ ('Pysam', '0.22.0'),
+ ('SAMtools', '1.18'),
+ ('minimap2', _minimap_ver),
+ ('HTSlib', '1.18'), # for tabix, bgzip
+ ('Racon', '1.5.0'),
+ ('edlib', '1.3.9'),
+ ('pyspoa', '0.2.1'),
+ ('python-parasail', '1.3.4'),
+ ('ont-fast5-api', '4.1.2'),
+ ('WhatsHap', '2.2'),
+ ('intervaltree-python', '3.1.0'),
+ ('BCFtools', '1.18'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+local_sed_commands = [
+ "sed -i 's/tensorflow.*/tensorflow/g;s/cffi==1.15.0/cffi/g' requirements.txt pyproject.toml",
+ # Python 3.11 support
+ "sed -i 's/8, 9, 10/8, 9, 10, 11/g;s/,<3.11//g' setup.py",
+ # ont-parasail on PyPI is just pre-built wheels for (python-)parasail
+ "sed -i 's/ont-parasail/parasail/g' requirements.txt",
+]
+
+exts_list = [
+ ('mappy', _minimap_ver, {
+ 'checksums': ['e53fbe9a3ea8762a64b8103f4f779c9fb16d418eaa0a731f45cebc83867a9b71'],
+ }),
+ ('wurlitzer', '3.1.1', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['0b2749c2cde3ef640bf314a9f94b24d929fe1ca476974719a6909dfc568c3aac'],
+ }),
+ # medaka 1.12.0 requires h5py ~=3.10.0
+ ('h5py', '3.10.0', {
+ 'checksums': ['d93adc48ceeb33347eb24a634fb787efc7ae4644e6ea4ba733d099605045c049'],
+ }),
+ ('pyabpoa', '1.5.2', {
+ 'checksums': ['be39c83b12e923c9e47073cb8f0abc4c42f609fa2c0ec13d6f6a4f5a0537ee06'],
+ }),
+ (name, version, {
+ 'checksums': ['df4baf7d1e9154de85229aef237919619ff6ae7f7d103abb0828e449ff977adf'],
+ # Some requirements are too strict.
+ 'preinstallopts': " && ".join(local_sed_commands) + " && ",
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/medaka', 'bin/medaka_consensus', 'bin/medaka_version_report'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = [
+ "medaka --help",
+ "medaka_version_report",
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/m/medaka/medaka-1.12.1-foss-2023a.eb b/easybuild/easyconfigs/m/medaka/medaka-1.12.1-foss-2023a.eb
new file mode 100644
index 00000000000..f95d01c89d9
--- /dev/null
+++ b/easybuild/easyconfigs/m/medaka/medaka-1.12.1-foss-2023a.eb
@@ -0,0 +1,86 @@
+# This is a contribution from HPCNow! (http://hpcnow.com)
+# Copyright:: HPCNow!
+# Authors:: Danilo Gonzalez
+# License:: GPL-v3.0
+# Updated to foss-2020b to use with artic tool
+# J. Sassmannshausen (GSTT/NHS UK)
+# Updated to 1.5.0
+# Jasper Grimm (UoY)
+# Updated: Petr Král (INUITS)
+
+easyblock = 'PythonBundle'
+
+name = 'medaka'
+version = '1.12.1'
+
+homepage = 'https://github.com/nanoporetech/medaka'
+description = "medaka is a tool to create a consensus sequence from nanopore sequencing data."
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'pic': True}
+
+builddependencies = [('Autotools', '20220317')]
+
+_minimap_ver = '2.26'
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'), # includes cffi
+ ('TensorFlow', '2.13.0'),
+ ('Pysam', '0.22.0'),
+ ('SAMtools', '1.18'),
+ ('minimap2', _minimap_ver),
+ ('HTSlib', '1.18'), # for tabix, bgzip
+ ('Racon', '1.5.0'),
+ ('edlib', '1.3.9'),
+ ('pyspoa', '0.2.1'),
+ ('python-parasail', '1.3.4'),
+ ('ont-fast5-api', '4.1.2'),
+ ('WhatsHap', '2.2'),
+ ('intervaltree-python', '3.1.0'),
+ ('BCFtools', '1.18'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+local_sed_commands = [
+ "sed -i 's/tensorflow.*/tensorflow/g;s/cffi==1.15.0/cffi/g' requirements.txt pyproject.toml",
+ # Python 3.11 support
+ "sed -i 's/8, 9, 10/8, 9, 10, 11/g;s/,<3.11//g' setup.py",
+ # ont-parasail on PyPI is just pre-built wheels for (python-)parasail
+ "sed -i 's/ont-parasail/parasail/g' requirements.txt",
+]
+
+exts_list = [
+ ('mappy', _minimap_ver, {
+ 'checksums': ['e53fbe9a3ea8762a64b8103f4f779c9fb16d418eaa0a731f45cebc83867a9b71'],
+ }),
+ ('wurlitzer', '3.1.1', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['0b2749c2cde3ef640bf314a9f94b24d929fe1ca476974719a6909dfc568c3aac'],
+ }),
+ # medaka 1.12.0 requires h5py ~=3.10.0
+ ('h5py', '3.10.0', {
+ 'checksums': ['d93adc48ceeb33347eb24a634fb787efc7ae4644e6ea4ba733d099605045c049'],
+ }),
+ ('pyabpoa', '1.5.2', {
+ 'checksums': ['be39c83b12e923c9e47073cb8f0abc4c42f609fa2c0ec13d6f6a4f5a0537ee06'],
+ }),
+ (name, version, {
+ 'checksums': ['df4baf7d1e9154de85229aef237919619ff6ae7f7d103abb0828e449ff977adf'],
+ # Some requirements are too strict.
+ 'preinstallopts': " && ".join(local_sed_commands) + " && ",
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/medaka', 'bin/medaka_consensus', 'bin/medaka_version_report'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = [
+ "medaka --help",
+ "medaka_version_report",
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/m/minimap2/minimap2-2.28-GCCcore-13.2.0.eb b/easybuild/easyconfigs/m/minimap2/minimap2-2.28-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..94f332d290b
--- /dev/null
+++ b/easybuild/easyconfigs/m/minimap2/minimap2-2.28-GCCcore-13.2.0.eb
@@ -0,0 +1,54 @@
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+# Adam Huffman
+# DeepThought, Flinders University
+# Updated to 2.22
+# R.QIAO
+
+# Update Petr Král (INUITS)
+easyblock = 'MakeCp'
+
+name = 'minimap2'
+version = '2.28'
+
+homepage = 'https://github.com/lh3/minimap2'
+description = """Minimap2 is a fast sequence mapping and alignment
+program that can find overlaps between long noisy reads, or map long
+reads or their assemblies to a reference genome optionally with detailed
+alignment (i.e. CIGAR). At present, it works efficiently with query
+sequences from a few kilobases to ~100 megabases in length at an error
+rate ~15%. Minimap2 outputs in the PAF or the SAM format. On limited
+test data sets, minimap2 is over 20 times faster than most other
+long-read aligners. It will replace BWA-MEM for long reads and contig
+alignment."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+source_urls = ['https://github.com/lh3/%(name)s/releases/download/v%(version)s/']
+sources = ['%(name)s-%(version)s.tar.bz2']
+checksums = ['ffa5712735d229119f8c05722a0638ae0cc15aeb8938e29a3e52d5da5c92a0b4']
+
+builddependencies = [('binutils', '2.40')]
+
+dependencies = [('zlib', '1.2.13')]
+
+buildopts = 'CC="${CC}" CFLAGS="${CFLAGS}" INCLUDES="${CPPFLAGS}"'
+
+files_to_copy = [
+ (['%(name)s'], 'bin'),
+ (['lib%(name)s.a'], 'lib'),
+ (['*.h'], 'include'),
+ 'LICENSE.txt', 'NEWS.md', 'README.md',
+ (['%(name)s.1'], 'share/man/man1')
+]
+
+sanity_check_paths = {
+ 'files': ['bin/%(name)s', 'lib/lib%(name)s.a'],
+ 'dirs': ['include']
+}
+
+sanity_check_commands = [
+ "minimap2 --help",
+ "cd %(builddir)s/minimap2-%(version)s && minimap2 -a test/MT-human.fa test/MT-orang.fa > test.sam",
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb b/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb
new file mode 100644
index 00000000000..3d6ce8d2958
--- /dev/null
+++ b/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb
@@ -0,0 +1,57 @@
+easyblock = 'PythonBundle'
+
+name = 'modin'
+version = '0.32.0'
+
+homepage = 'https://github.com/modin-project/modin'
+description = """Modin uses Ray, Dask or Unidist to provide an effortless way to speed up your pandas notebooks,
+scripts, and libraries. """
+
+toolchain = {'name': 'foss', 'version': '2024a'}
+
+builddependencies = [
+ ('Cython', '3.0.10'),
+ # Needed for tests
+ ('boto3', '1.35.36'),
+ ('s3fs', '2024.9.0'),
+]
+
+dependencies = [
+ ('Python', '3.12.3'),
+ ('Python-bundle-PyPI', '2024.06'),
+ ('SciPy-bundle', '2024.05'),
+ ('dask', '2024.9.1'),
+ ('OpenMPI', '5.0.3'),
+ ('Ray-project', '2.37.0'),
+ ('Arrow', '17.0.0'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('unidist', '0.7.2', {
+ 'checksums': ['6386e1ad5143fe132b9f96e232fe85fc39830ed2886515440e4ba1473255e4a0'],
+ }),
+ # The oversubscription is done in their own CI as well.
+ # Ray has limitations on unix socket path length, so it is not tested here.
+ (name, version, {
+ 'patches': ['modin-0.32.0_fix-pytest-config.patch'],
+ 'runtest': (
+ "MODIN_ENGINE=unidist UNIDIST_ENGINE=mpi "
+ "mpiexec -n=1 --map-by :OVERSUBSCRIBE pytest modin/tests/pandas/test_general.py &&"
+ "MODIN_ENGINE=dask pytest modin/tests/pandas/test_general.py"
+ ),
+ 'source_tmpl': '%(version)s.tar.gz',
+ 'source_urls': ['https://github.com/modin-project/%(name)s/archive/refs/tags'],
+ 'testinstall': True,
+ 'checksums': [
+ {'0.32.0.tar.gz': 'f2ef11f384a7d47eb6680a2f6f4bbc3404fa6290163d36384032daff3837b063'},
+ {'modin-0.32.0_fix-pytest-config.patch':
+ 'c49bd5c072a87321760c7c5eebc957f4f6962763a3526a500fe6330cf3f2b765'},
+ ],
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/m/modin/modin-0.32.0_fix-pytest-config.patch b/easybuild/easyconfigs/m/modin/modin-0.32.0_fix-pytest-config.patch
new file mode 100644
index 00000000000..990e053d328
--- /dev/null
+++ b/easybuild/easyconfigs/m/modin/modin-0.32.0_fix-pytest-config.patch
@@ -0,0 +1,20 @@
+Removes unnecessary options for pytest that induce additional dependencies.
+
+--- 0.32.0/foss-2024a/modin/modin-0.32.0/setup.cfg.orig 2024-10-17 15:56:55.245266649 +0200
++++ 0.32.0/foss-2024a/modin/modin-0.32.0/setup.cfg 2024-10-17 15:57:34.748841878 +0200
+@@ -11,15 +11,6 @@
+ tag_prefix =
+ parentdir_prefix = modin-
+
+-[tool:pytest]
+-addopts = --cov-config=setup.cfg --cov=modin --cov-append --cov-report= -m "not exclude_by_default"
+-xfail_strict=true
+-markers =
+- exclude_in_sanity
+- exclude_by_default
+-filterwarnings =
+- error:.*defaulting to pandas.*:UserWarning
+-
+ [isort]
+ profile = black
+
diff --git a/easybuild/easyconfigs/m/modkit/modkit-0.3.3-GCCcore-12.3.0.eb b/easybuild/easyconfigs/m/modkit/modkit-0.3.3-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..63e5c0110bf
--- /dev/null
+++ b/easybuild/easyconfigs/m/modkit/modkit-0.3.3-GCCcore-12.3.0.eb
@@ -0,0 +1,572 @@
+easyblock = 'Cargo'
+
+name = 'modkit'
+version = '0.3.3'
+
+homepage = 'https://github.com/nanoporetech/modkit'
+description = 'A bioinformatics tool for working with modified bases.'
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = ['https://github.com/nanoporetech/modkit/archive/']
+sources = ['v%(version)s.tar.gz']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('Rust', '1.75.0'),
+ ('Perl-bundle-CPAN', '5.36.1'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/%(namelower)s'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["%(namelower)s --help"]
+
+crates = [
+ ('adler2', '2.0.0'),
+ ('ahash', '0.8.11'),
+ ('aho-corasick', '1.1.3'),
+ ('android-tzdata', '0.1.1'),
+ ('android_system_properties', '0.1.5'),
+ ('ansi_term', '0.12.1'),
+ ('anstream', '0.6.15'),
+ ('anstyle', '1.0.8'),
+ ('anstyle-parse', '0.2.5'),
+ ('anstyle-query', '1.1.1'),
+ ('anstyle-wincon', '3.0.4'),
+ ('anyhow', '1.0.91'),
+ ('approx', '0.5.1'),
+ ('arc-swap', '1.7.1'),
+ ('assert_approx_eq', '1.1.0'),
+ ('autocfg', '1.4.0'),
+ ('bio', '1.6.0'),
+ ('bio-types', '1.0.4'),
+ ('bit-set', '0.5.3'),
+ ('bit-vec', '0.6.3'),
+ ('bitflags', '2.6.0'),
+ ('bitvec', '1.0.1'),
+ ('block-buffer', '0.10.4'),
+ ('bstr', '1.10.0'),
+ ('bumpalo', '3.16.0'),
+ ('bv', '0.11.1'),
+ ('bytecount', '0.6.8'),
+ ('bytemuck', '1.19.0'),
+ ('byteorder', '1.5.0'),
+ ('bytes', '1.8.0'),
+ ('bzip2-sys', '0.1.11+1.0.8'),
+ ('cc', '1.1.31'),
+ ('cfg-if', '1.0.0'),
+ ('charming', '0.3.1'),
+ ('chrono', '0.4.38'),
+ ('clap', '4.5.20'),
+ ('clap_builder', '4.5.20'),
+ ('clap_derive', '4.5.18'),
+ ('clap_lex', '0.7.2'),
+ ('cmake', '0.1.51'),
+ ('colorchoice', '1.0.2'),
+ ('common_macros', '0.1.1'),
+ ('console', '0.15.8'),
+ ('core-foundation-sys', '0.8.7'),
+ ('cpufeatures', '0.2.14'),
+ ('crc32fast', '1.4.2'),
+ ('crossbeam', '0.8.4'),
+ ('crossbeam-channel', '0.5.13'),
+ ('crossbeam-deque', '0.8.5'),
+ ('crossbeam-epoch', '0.9.18'),
+ ('crossbeam-queue', '0.3.11'),
+ ('crossbeam-utils', '0.8.20'),
+ ('crypto-common', '0.1.6'),
+ ('csv', '1.3.0'),
+ ('csv-core', '0.1.11'),
+ ('curl-sys', '0.4.77+curl-8.10.1'),
+ ('custom_derive', '0.1.7'),
+ ('derivative', '2.2.0'),
+ ('derive-new', '0.5.9'),
+ ('derive-new', '0.6.0'),
+ ('destructure_traitobject', '0.2.0'),
+ ('digest', '0.10.7'),
+ ('dirs-next', '2.0.0'),
+ ('dirs-sys-next', '0.1.2'),
+ ('doc-comment', '0.3.3'),
+ ('editdistancek', '1.0.2'),
+ ('either', '1.13.0'),
+ ('encode_unicode', '0.3.6'),
+ ('encode_unicode', '1.0.0'),
+ ('enum-map', '2.7.3'),
+ ('enum-map-derive', '0.17.0'),
+ ('equivalent', '1.0.1'),
+ ('errno', '0.3.9'),
+ ('fastrand', '2.1.1'),
+ ('feature-probe', '0.1.1'),
+ ('fixedbitset', '0.4.2'),
+ ('flate2', '1.0.34'),
+ ('fnv', '1.0.7'),
+ ('form_urlencoded', '1.2.1'),
+ ('fs-utils', '1.1.4'),
+ ('funty', '2.0.0'),
+ ('fxhash', '0.2.1'),
+ ('generic-array', '0.14.7'),
+ ('getrandom', '0.2.15'),
+ ('glob', '0.3.1'),
+ ('handlebars', '4.5.0'),
+ ('hashbrown', '0.13.2'),
+ ('hashbrown', '0.15.0'),
+ ('heck', '0.4.1'),
+ ('heck', '0.5.0'),
+ ('hermit-abi', '0.3.9'),
+ ('hermit-abi', '0.4.0'),
+ ('hts-sys', '2.1.4'),
+ ('humantime', '2.1.0'),
+ ('iana-time-zone', '0.1.61'),
+ ('iana-time-zone-haiku', '0.1.2'),
+ ('idna', '0.5.0'),
+ ('ieee754', '0.2.6'),
+ ('indexmap', '2.6.0'),
+ ('indicatif', '0.17.8'),
+ ('instant', '0.1.13'),
+ ('is-terminal', '0.4.13'),
+ ('is_terminal_polyfill', '1.70.1'),
+ ('itertools', '0.11.0'),
+ ('itertools', '0.12.1'),
+ ('itertools-num', '0.1.3'),
+ ('itoa', '1.0.11'),
+ ('jobserver', '0.1.32'),
+ ('js-sys', '0.3.72'),
+ ('lazy_static', '1.5.0'),
+ ('libc', '0.2.161'),
+ ('libm', '0.2.8'),
+ ('libredox', '0.1.3'),
+ ('libz-sys', '1.1.20'),
+ ('linear-map', '1.2.0'),
+ ('linux-raw-sys', '0.4.14'),
+ ('lock_api', '0.4.12'),
+ ('log', '0.4.22'),
+ ('log-mdc', '0.1.0'),
+ ('log-once', '0.4.1'),
+ ('log4rs', '1.3.0'),
+ ('lru', '0.9.0'),
+ ('lzma-sys', '0.1.20'),
+ ('matrixmultiply', '0.3.9'),
+ ('memchr', '2.7.4'),
+ ('minimal-lexical', '0.2.1'),
+ ('miniz_oxide', '0.8.0'),
+ ('multimap', '0.9.1'),
+ ('nalgebra', '0.29.0'),
+ ('nalgebra-macros', '0.1.0'),
+ ('ndarray', '0.15.6'),
+ ('newtype_derive', '0.1.6'),
+ ('nom', '7.1.3'),
+ ('noodles', '0.50.0'),
+ ('noodles-bgzf', '0.24.0'),
+ ('noodles-core', '0.12.0'),
+ ('noodles-csi', '0.24.0'),
+ ('noodles-tabix', '0.29.0'),
+ ('num', '0.4.3'),
+ ('num-bigint', '0.4.6'),
+ ('num-complex', '0.4.6'),
+ ('num-integer', '0.1.46'),
+ ('num-iter', '0.1.45'),
+ ('num-rational', '0.4.2'),
+ ('num-traits', '0.2.19'),
+ ('num_cpus', '1.16.0'),
+ ('number_prefix', '0.4.0'),
+ ('once_cell', '1.20.2'),
+ ('openssl-src', '300.4.0+3.4.0'),
+ ('openssl-sys', '0.9.104'),
+ ('order-stat', '0.1.3'),
+ ('ordered-float', '2.10.1'),
+ ('ordered-float', '3.9.2'),
+ ('parking_lot', '0.12.3'),
+ ('parking_lot_core', '0.9.10'),
+ ('paste', '1.0.15'),
+ ('percent-encoding', '2.3.1'),
+ ('peroxide', '0.32.1'),
+ ('peroxide-ad', '0.3.0'),
+ ('pest', '2.7.14'),
+ ('pest_derive', '2.7.14'),
+ ('pest_generator', '2.7.14'),
+ ('pest_meta', '2.7.14'),
+ ('petgraph', '0.6.5'),
+ ('pkg-config', '0.3.31'),
+ ('portable-atomic', '1.9.0'),
+ ('ppv-lite86', '0.2.20'),
+ ('prettytable-rs', '0.10.0'),
+ ('proc-macro2', '1.0.89'),
+ ('pulp', '0.18.22'),
+ ('puruspe', '0.2.5'),
+ ('quick-error', '1.2.3'),
+ ('quote', '1.0.37'),
+ ('radium', '0.7.0'),
+ ('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'),
+ ('reborrow', '0.5.5'),
+ ('redox_syscall', '0.5.7'),
+ ('redox_users', '0.4.6'),
+ ('regex', '1.11.0'),
+ ('regex-automata', '0.4.8'),
+ ('regex-syntax', '0.8.5'),
+ ('rust-htslib', '0.46.0'),
+ ('rust-lapper', '1.1.0'),
+ ('rustc-hash', '1.1.0'),
+ ('rustc_version', '0.1.7'),
+ ('rustix', '0.38.37'),
+ ('rustversion', '1.0.18'),
+ ('rv', '0.16.0'),
+ ('ryu', '1.0.18'),
+ ('safe_arch', '0.7.2'),
+ ('scopeguard', '1.2.0'),
+ ('semver', '0.1.20'),
+ ('serde', '1.0.213'),
+ ('serde-value', '0.7.0'),
+ ('serde_derive', '1.0.213'),
+ ('serde_json', '1.0.132'),
+ ('serde_yaml', '0.9.34+deprecated'),
+ ('sha2', '0.10.8'),
+ ('shlex', '1.3.0'),
+ ('simba', '0.6.0'),
+ ('similar', '2.6.0'),
+ ('similar-asserts', '1.6.0'),
+ ('smallvec', '1.13.2'),
+ ('special', '0.10.3'),
+ ('statrs', '0.16.1'),
+ ('strsim', '0.11.1'),
+ ('strum', '0.25.0'),
+ ('strum_macros', '0.25.3'),
+ ('strum_macros', '0.26.4'),
+ ('substring', '1.4.5'),
+ ('syn', '1.0.109'),
+ ('syn', '2.0.82'),
+ ('tap', '1.0.1'),
+ ('tempfile', '3.13.0'),
+ ('term', '0.7.0'),
+ ('terminal_size', '0.4.0'),
+ ('thiserror', '1.0.65'),
+ ('thiserror-impl', '1.0.65'),
+ ('thread-id', '4.2.2'),
+ ('thread-tree', '0.3.3'),
+ ('tinyvec', '1.8.0'),
+ ('tinyvec_macros', '0.1.1'),
+ ('triple_accel', '0.4.0'),
+ ('typemap-ors', '1.0.0'),
+ ('typenum', '1.17.0'),
+ ('ucd-trie', '0.1.7'),
+ ('unicode-bidi', '0.3.17'),
+ ('unicode-ident', '1.0.13'),
+ ('unicode-normalization', '0.1.24'),
+ ('unicode-segmentation', '1.12.0'),
+ ('unicode-width', '0.1.14'),
+ ('unsafe-any-ors', '1.0.0'),
+ ('unsafe-libyaml', '0.2.11'),
+ ('url', '2.5.2'),
+ ('utf8parse', '0.2.2'),
+ ('vcpkg', '0.2.15'),
+ ('vec_map', '0.8.2'),
+ ('version_check', '0.9.5'),
+ ('wasi', '0.11.0+wasi-snapshot-preview1'),
+ ('wasm-bindgen', '0.2.95'),
+ ('wasm-bindgen-backend', '0.2.95'),
+ ('wasm-bindgen-macro', '0.2.95'),
+ ('wasm-bindgen-macro-support', '0.2.95'),
+ ('wasm-bindgen-shared', '0.2.95'),
+ ('wide', '0.7.28'),
+ ('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.52.0'),
+ ('windows-sys', '0.59.0'),
+ ('windows-targets', '0.52.6'),
+ ('windows_aarch64_gnullvm', '0.52.6'),
+ ('windows_aarch64_msvc', '0.52.6'),
+ ('windows_i686_gnu', '0.52.6'),
+ ('windows_i686_gnullvm', '0.52.6'),
+ ('windows_i686_msvc', '0.52.6'),
+ ('windows_x86_64_gnu', '0.52.6'),
+ ('windows_x86_64_gnullvm', '0.52.6'),
+ ('windows_x86_64_msvc', '0.52.6'),
+ ('wyz', '0.5.1'),
+ ('zerocopy', '0.7.35'),
+ ('zerocopy-derive', '0.7.35'),
+]
+
+checksums = [
+ {'v0.3.3.tar.gz': 'f61674c48ef6b9e3ebd547067d693e128c1da66761ddda08d479d58d52017b2b'},
+ {'adler2-2.0.0.tar.gz': '512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627'},
+ {'ahash-0.8.11.tar.gz': 'e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011'},
+ {'aho-corasick-1.1.3.tar.gz': '8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916'},
+ {'android-tzdata-0.1.1.tar.gz': 'e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0'},
+ {'android_system_properties-0.1.5.tar.gz': '819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311'},
+ {'ansi_term-0.12.1.tar.gz': 'd52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2'},
+ {'anstream-0.6.15.tar.gz': '64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526'},
+ {'anstyle-1.0.8.tar.gz': '1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1'},
+ {'anstyle-parse-0.2.5.tar.gz': 'eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb'},
+ {'anstyle-query-1.1.1.tar.gz': '6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a'},
+ {'anstyle-wincon-3.0.4.tar.gz': '5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8'},
+ {'anyhow-1.0.91.tar.gz': 'c042108f3ed77fd83760a5fd79b53be043192bb3b9dba91d8c574c0ada7850c8'},
+ {'approx-0.5.1.tar.gz': 'cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6'},
+ {'arc-swap-1.7.1.tar.gz': '69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457'},
+ {'assert_approx_eq-1.1.0.tar.gz': '3c07dab4369547dbe5114677b33fbbf724971019f3818172d59a97a61c774ffd'},
+ {'autocfg-1.4.0.tar.gz': 'ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26'},
+ {'bio-1.6.0.tar.gz': '7a72cb93babf08c85b375c2938ac678cc637936b3ebb72266d433cec2577f6c2'},
+ {'bio-types-1.0.4.tar.gz': 'f4dcf54f8b7f51450207d54780bab09c05f30b8b0caa991545082842e466ad7e'},
+ {'bit-set-0.5.3.tar.gz': '0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1'},
+ {'bit-vec-0.6.3.tar.gz': '349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb'},
+ {'bitflags-2.6.0.tar.gz': 'b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de'},
+ {'bitvec-1.0.1.tar.gz': '1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c'},
+ {'block-buffer-0.10.4.tar.gz': '3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71'},
+ {'bstr-1.10.0.tar.gz': '40723b8fb387abc38f4f4a37c09073622e41dd12327033091ef8950659e6dc0c'},
+ {'bumpalo-3.16.0.tar.gz': '79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c'},
+ {'bv-0.11.1.tar.gz': '8834bb1d8ee5dc048ee3124f2c7c1afcc6bc9aed03f11e9dfd8c69470a5db340'},
+ {'bytecount-0.6.8.tar.gz': '5ce89b21cab1437276d2650d57e971f9d548a2d9037cc231abdc0562b97498ce'},
+ {'bytemuck-1.19.0.tar.gz': '8334215b81e418a0a7bdb8ef0849474f40bb10c8b71f1c4ed315cff49f32494d'},
+ {'byteorder-1.5.0.tar.gz': '1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b'},
+ {'bytes-1.8.0.tar.gz': '9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da'},
+ {'bzip2-sys-0.1.11+1.0.8.tar.gz': '736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc'},
+ {'cc-1.1.31.tar.gz': 'c2e7962b54006dcfcc61cb72735f4d89bb97061dd6a7ed882ec6b8ee53714c6f'},
+ {'cfg-if-1.0.0.tar.gz': 'baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd'},
+ {'charming-0.3.1.tar.gz': 'f4c6b6990238a64b4ae139e7085ce2a11815cb67a0c066a3333ce40f3a329be3'},
+ {'chrono-0.4.38.tar.gz': 'a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401'},
+ {'clap-4.5.20.tar.gz': 'b97f376d85a664d5837dbae44bf546e6477a679ff6610010f17276f686d867e8'},
+ {'clap_builder-4.5.20.tar.gz': '19bc80abd44e4bed93ca373a0704ccbd1b710dc5749406201bb018272808dc54'},
+ {'clap_derive-4.5.18.tar.gz': '4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab'},
+ {'clap_lex-0.7.2.tar.gz': '1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97'},
+ {'cmake-0.1.51.tar.gz': 'fb1e43aa7fd152b1f968787f7dbcdeb306d1867ff373c69955211876c053f91a'},
+ {'colorchoice-1.0.2.tar.gz': 'd3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0'},
+ {'common_macros-0.1.1.tar.gz': 'f3f6d59c71e7dc3af60f0af9db32364d96a16e9310f3f5db2b55ed642162dd35'},
+ {'console-0.15.8.tar.gz': '0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb'},
+ {'core-foundation-sys-0.8.7.tar.gz': '773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b'},
+ {'cpufeatures-0.2.14.tar.gz': '608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0'},
+ {'crc32fast-1.4.2.tar.gz': 'a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3'},
+ {'crossbeam-0.8.4.tar.gz': '1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8'},
+ {'crossbeam-channel-0.5.13.tar.gz': '33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2'},
+ {'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.20.tar.gz': '22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80'},
+ {'crypto-common-0.1.6.tar.gz': '1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3'},
+ {'csv-1.3.0.tar.gz': 'ac574ff4d437a7b5ad237ef331c17ccca63c46479e5b5453eb8e10bb99a759fe'},
+ {'csv-core-0.1.11.tar.gz': '5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70'},
+ {'curl-sys-0.4.77+curl-8.10.1.tar.gz': 'f469e8a5991f277a208224f6c7ad72ecb5f986e36d09ae1f2c1bb9259478a480'},
+ {'custom_derive-0.1.7.tar.gz': 'ef8ae57c4978a2acd8b869ce6b9ca1dfe817bff704c220209fdef2c0b75a01b9'},
+ {'derivative-2.2.0.tar.gz': 'fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b'},
+ {'derive-new-0.5.9.tar.gz': '3418329ca0ad70234b9735dc4ceed10af4df60eff9c8e7b06cb5e520d92c3535'},
+ {'derive-new-0.6.0.tar.gz': 'd150dea618e920167e5973d70ae6ece4385b7164e0d799fe7c122dd0a5d912ad'},
+ {'destructure_traitobject-0.2.0.tar.gz': '3c877555693c14d2f84191cfd3ad8582790fc52b5e2274b40b59cf5f5cea25c7'},
+ {'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'},
+ {'editdistancek-1.0.2.tar.gz': '3e02df23d5b1c6f9e69fa603b890378123b93073df998a21e6e33b9db0a32613'},
+ {'either-1.13.0.tar.gz': '60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0'},
+ {'encode_unicode-0.3.6.tar.gz': 'a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f'},
+ {'encode_unicode-1.0.0.tar.gz': '34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0'},
+ {'enum-map-2.7.3.tar.gz': '6866f3bfdf8207509a033af1a75a7b08abda06bbaaeae6669323fd5a097df2e9'},
+ {'enum-map-derive-0.17.0.tar.gz': 'f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb'},
+ {'equivalent-1.0.1.tar.gz': '5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5'},
+ {'errno-0.3.9.tar.gz': '534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba'},
+ {'fastrand-2.1.1.tar.gz': 'e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6'},
+ {'feature-probe-0.1.1.tar.gz': '835a3dc7d1ec9e75e2b5fb4ba75396837112d2060b03f7d43bc1897c7f7211da'},
+ {'fixedbitset-0.4.2.tar.gz': '0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80'},
+ {'flate2-1.0.34.tar.gz': 'a1b589b4dc103969ad3cf85c950899926ec64300a1a46d76c03a6072957036f0'},
+ {'fnv-1.0.7.tar.gz': '3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1'},
+ {'form_urlencoded-1.2.1.tar.gz': 'e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456'},
+ {'fs-utils-1.1.4.tar.gz': '6fc7a9dc005c944c98a935e7fd626faf5bf7e5a609f94bc13e42fc4a02e52593'},
+ {'funty-2.0.0.tar.gz': 'e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c'},
+ {'fxhash-0.2.1.tar.gz': 'c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c'},
+ {'generic-array-0.14.7.tar.gz': '85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a'},
+ {'getrandom-0.2.15.tar.gz': 'c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7'},
+ {'glob-0.3.1.tar.gz': 'd2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b'},
+ {'handlebars-4.5.0.tar.gz': 'faa67bab9ff362228eb3d00bd024a4965d8231bbb7921167f0cfa66c6626b225'},
+ {'hashbrown-0.13.2.tar.gz': '43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e'},
+ {'hashbrown-0.15.0.tar.gz': '1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb'},
+ {'heck-0.4.1.tar.gz': '95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8'},
+ {'heck-0.5.0.tar.gz': '2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea'},
+ {'hermit-abi-0.3.9.tar.gz': 'd231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024'},
+ {'hermit-abi-0.4.0.tar.gz': 'fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc'},
+ {'hts-sys-2.1.4.tar.gz': 'e9f348d14cb4e50444e39fcd6b00302fe2ed2bc88094142f6278391d349a386d'},
+ {'humantime-2.1.0.tar.gz': '9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4'},
+ {'iana-time-zone-0.1.61.tar.gz': '235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220'},
+ {'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.6.0.tar.gz': '707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da'},
+ {'indicatif-0.17.8.tar.gz': '763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3'},
+ {'instant-0.1.13.tar.gz': 'e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222'},
+ {'is-terminal-0.4.13.tar.gz': '261f68e344040fbd0edea105bef17c66edf46f984ddb1115b775ce31be948f4b'},
+ {'is_terminal_polyfill-1.70.1.tar.gz': '7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf'},
+ {'itertools-0.11.0.tar.gz': 'b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57'},
+ {'itertools-0.12.1.tar.gz': 'ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569'},
+ {'itertools-num-0.1.3.tar.gz': 'a872a22f9e6f7521ca557660adb96dd830e54f0f490fa115bb55dd69d38b27e7'},
+ {'itoa-1.0.11.tar.gz': '49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b'},
+ {'jobserver-0.1.32.tar.gz': '48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0'},
+ {'js-sys-0.3.72.tar.gz': '6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9'},
+ {'lazy_static-1.5.0.tar.gz': 'bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe'},
+ {'libc-0.2.161.tar.gz': '8e9489c2807c139ffd9c1794f4af0ebe86a828db53ecdc7fea2111d0fed085d1'},
+ {'libm-0.2.8.tar.gz': '4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058'},
+ {'libredox-0.1.3.tar.gz': 'c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d'},
+ {'libz-sys-1.1.20.tar.gz': 'd2d16453e800a8cf6dd2fc3eb4bc99b786a9b90c663b8559a5b1a041bf89e472'},
+ {'linear-map-1.2.0.tar.gz': 'bfae20f6b19ad527b550c223fddc3077a547fc70cda94b9b566575423fd303ee'},
+ {'linux-raw-sys-0.4.14.tar.gz': '78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89'},
+ {'lock_api-0.4.12.tar.gz': '07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17'},
+ {'log-0.4.22.tar.gz': 'a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24'},
+ {'log-mdc-0.1.0.tar.gz': 'a94d21414c1f4a51209ad204c1776a3d0765002c76c6abcb602a6f09f1e881c7'},
+ {'log-once-0.4.1.tar.gz': '6d8a05e3879b317b1b6dbf353e5bba7062bedcc59815267bb23eaa0c576cebf0'},
+ {'log4rs-1.3.0.tar.gz': '0816135ae15bd0391cf284eab37e6e3ee0a6ee63d2ceeb659862bd8d0a984ca6'},
+ {'lru-0.9.0.tar.gz': '71e7d46de488603ffdd5f30afbc64fbba2378214a2c3a2fb83abf3d33126df17'},
+ {'lzma-sys-0.1.20.tar.gz': '5fda04ab3764e6cde78b9974eec4f779acaba7c4e84b36eca3cf77c581b85d27'},
+ {'matrixmultiply-0.3.9.tar.gz': '9380b911e3e96d10c1f415da0876389aaf1b56759054eeb0de7df940c456ba1a'},
+ {'memchr-2.7.4.tar.gz': '78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3'},
+ {'minimal-lexical-0.2.1.tar.gz': '68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a'},
+ {'miniz_oxide-0.8.0.tar.gz': 'e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1'},
+ {'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'},
+ {'newtype_derive-0.1.6.tar.gz': 'ac8cd24d9f185bb7223958d8c1ff7a961b74b1953fd05dba7cc568a63b3861ec'},
+ {'nom-7.1.3.tar.gz': 'd273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a'},
+ {'noodles-0.50.0.tar.gz': '86c1d34ec18d6b3d7699fae207ba766a5b969764d2cad072dc769cb6eca06b36'},
+ {'noodles-bgzf-0.24.0.tar.gz': '8f4c43ff0879c542c1d8fd570c03e368f629587721d10267f2619e36afc9c9b0'},
+ {'noodles-core-0.12.0.tar.gz': '94fbe3192fe33acacabaedd387657f39b0fc606f1996d546db0dfe14703b843a'},
+ {'noodles-csi-0.24.0.tar.gz': '1b2bb780250c88bc9ea69b56c1aa9df75decc6b79035f3f5ab10c0cd84d24fc6'},
+ {'noodles-tabix-0.29.0.tar.gz': '056e394ddb4c64bcc9806551a69833294062159600aa8ecf7167a922512bda4f'},
+ {'num-0.4.3.tar.gz': '35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23'},
+ {'num-bigint-0.4.6.tar.gz': 'a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9'},
+ {'num-complex-0.4.6.tar.gz': '73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495'},
+ {'num-integer-0.1.46.tar.gz': '7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f'},
+ {'num-iter-0.1.45.tar.gz': '1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf'},
+ {'num-rational-0.4.2.tar.gz': 'f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824'},
+ {'num-traits-0.2.19.tar.gz': '071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841'},
+ {'num_cpus-1.16.0.tar.gz': '4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43'},
+ {'number_prefix-0.4.0.tar.gz': '830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3'},
+ {'once_cell-1.20.2.tar.gz': '1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775'},
+ {'openssl-src-300.4.0+3.4.0.tar.gz': 'a709e02f2b4aca747929cca5ed248880847c650233cf8b8cdc48f40aaf4898a6'},
+ {'openssl-sys-0.9.104.tar.gz': '45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741'},
+ {'order-stat-0.1.3.tar.gz': 'efa535d5117d3661134dbf1719b6f0ffe06f2375843b13935db186cd094105eb'},
+ {'ordered-float-2.10.1.tar.gz': '68f19d67e5a2795c94e73e0bb1cc1a7edeb2e28efd39e2e1c9b7a40c1108b11c'},
+ {'ordered-float-3.9.2.tar.gz': 'f1e1c390732d15f1d48471625cd92d154e66db2c56645e29a9cd26f4699f72dc'},
+ {'parking_lot-0.12.3.tar.gz': 'f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27'},
+ {'parking_lot_core-0.9.10.tar.gz': '1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8'},
+ {'paste-1.0.15.tar.gz': '57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a'},
+ {'percent-encoding-2.3.1.tar.gz': 'e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e'},
+ {'peroxide-0.32.1.tar.gz': '703b5fbdc1f9018a66e2db8758633cec31d39ad3127bfd38c9b6ad510637519c'},
+ {'peroxide-ad-0.3.0.tar.gz': 'f6fba8ff3f40b67996f7c745f699babaa3e57ef5c8178ec999daf7eedc51dc8c'},
+ {'pest-2.7.14.tar.gz': '879952a81a83930934cbf1786752d6dedc3b1f29e8f8fb2ad1d0a36f377cf442'},
+ {'pest_derive-2.7.14.tar.gz': 'd214365f632b123a47fd913301e14c946c61d1c183ee245fa76eb752e59a02dd'},
+ {'pest_generator-2.7.14.tar.gz': 'eb55586734301717aea2ac313f50b2eb8f60d2fc3dc01d190eefa2e625f60c4e'},
+ {'pest_meta-2.7.14.tar.gz': 'b75da2a70cf4d9cb76833c990ac9cd3923c9a8905a8929789ce347c84564d03d'},
+ {'petgraph-0.6.5.tar.gz': 'b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db'},
+ {'pkg-config-0.3.31.tar.gz': '953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2'},
+ {'portable-atomic-1.9.0.tar.gz': 'cc9c68a3f6da06753e9335d63e27f6b9754dd1920d941135b7ea8224f141adb2'},
+ {'ppv-lite86-0.2.20.tar.gz': '77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04'},
+ {'prettytable-rs-0.10.0.tar.gz': 'eea25e07510aa6ab6547308ebe3c036016d162b8da920dbb079e3ba8acf3d95a'},
+ {'proc-macro2-1.0.89.tar.gz': 'f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e'},
+ {'pulp-0.18.22.tar.gz': 'a0a01a0dc67cf4558d279f0c25b0962bd08fc6dec0137699eae304103e882fe6'},
+ {'puruspe-0.2.5.tar.gz': '3804877ffeba468c806c2ad9057bbbae92e4b2c410c2f108baaa0042f241fa4c'},
+ {'quick-error-1.2.3.tar.gz': 'a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0'},
+ {'quote-1.0.37.tar.gz': 'b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af'},
+ {'radium-0.7.0.tar.gz': 'dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09'},
+ {'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'},
+ {'reborrow-0.5.5.tar.gz': '03251193000f4bd3b042892be858ee50e8b3719f2b08e5833ac4353724632430'},
+ {'redox_syscall-0.5.7.tar.gz': '9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f'},
+ {'redox_users-0.4.6.tar.gz': 'ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43'},
+ {'regex-1.11.0.tar.gz': '38200e5ee88914975b69f657f0801b6f6dccafd44fd9326302a4aaeecfacb1d8'},
+ {'regex-automata-0.4.8.tar.gz': '368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3'},
+ {'regex-syntax-0.8.5.tar.gz': '2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c'},
+ {'rust-htslib-0.46.0.tar.gz': 'aec6f9ca4601beb4ae75ff8c99144dd15de5a873f6adf058da299962c760968e'},
+ {'rust-lapper-1.1.0.tar.gz': 'ee43d8e721ac803031dbab6a944b957b49a3b11eadbc099880c8aaaebf23ed27'},
+ {'rustc-hash-1.1.0.tar.gz': '08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2'},
+ {'rustc_version-0.1.7.tar.gz': 'c5f5376ea5e30ce23c03eb77cbe4962b988deead10910c372b226388b594c084'},
+ {'rustix-0.38.37.tar.gz': '8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811'},
+ {'rustversion-1.0.18.tar.gz': '0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248'},
+ {'rv-0.16.0.tar.gz': 'c64081d5a5cd97b60822603f9900df77d67c8258e9a8143b6aff950753f2bbe1'},
+ {'ryu-1.0.18.tar.gz': 'f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f'},
+ {'safe_arch-0.7.2.tar.gz': 'c3460605018fdc9612bce72735cba0d27efbcd9904780d44c7e3a9948f96148a'},
+ {'scopeguard-1.2.0.tar.gz': '94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49'},
+ {'semver-0.1.20.tar.gz': 'd4f410fedcf71af0345d7607d246e7ad15faaadd49d240ee3b24e5dc21a820ac'},
+ {'serde-1.0.213.tar.gz': '3ea7893ff5e2466df8d720bb615088341b295f849602c6956047f8f80f0e9bc1'},
+ {'serde-value-0.7.0.tar.gz': 'f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c'},
+ {'serde_derive-1.0.213.tar.gz': '7e85ad2009c50b58e87caa8cd6dac16bdf511bbfb7af6c33df902396aa480fa5'},
+ {'serde_json-1.0.132.tar.gz': 'd726bfaff4b320266d395898905d0eba0345aae23b54aee3a737e260fd46db03'},
+ {'serde_yaml-0.9.34+deprecated.tar.gz': '6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47'},
+ {'sha2-0.10.8.tar.gz': '793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8'},
+ {'shlex-1.3.0.tar.gz': '0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64'},
+ {'simba-0.6.0.tar.gz': 'f0b7840f121a46d63066ee7a99fc81dcabbc6105e437cae43528cea199b5a05f'},
+ {'similar-2.6.0.tar.gz': '1de1d4f81173b03af4c0cbed3c898f6bff5b870e4a7f5d6f4057d62a7a4b686e'},
+ {'similar-asserts-1.6.0.tar.gz': 'cfe85670573cd6f0fa97940f26e7e6601213c3b0555246c24234131f88c5709e'},
+ {'smallvec-1.13.2.tar.gz': '3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67'},
+ {'special-0.10.3.tar.gz': 'b89cf0d71ae639fdd8097350bfac415a41aabf1d5ddd356295fdc95f09760382'},
+ {'statrs-0.16.1.tar.gz': 'b35a062dbadac17a42e0fc64c27f419b25d6fae98572eb43c8814c9e873d7721'},
+ {'strsim-0.11.1.tar.gz': '7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f'},
+ {'strum-0.25.0.tar.gz': '290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125'},
+ {'strum_macros-0.25.3.tar.gz': '23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0'},
+ {'strum_macros-0.26.4.tar.gz': '4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be'},
+ {'substring-1.4.5.tar.gz': '42ee6433ecef213b2e72f587ef64a2f5943e7cd16fbd82dbe8bc07486c534c86'},
+ {'syn-1.0.109.tar.gz': '72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237'},
+ {'syn-2.0.82.tar.gz': '83540f837a8afc019423a8edb95b52a8effe46957ee402287f4292fae35be021'},
+ {'tap-1.0.1.tar.gz': '55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369'},
+ {'tempfile-3.13.0.tar.gz': 'f0f2c9fc62d0beef6951ccffd757e241266a2c833136efbe35af6cd2567dca5b'},
+ {'term-0.7.0.tar.gz': 'c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f'},
+ {'terminal_size-0.4.0.tar.gz': '4f599bd7ca042cfdf8f4512b277c02ba102247820f9d9d4a9f521f496751a6ef'},
+ {'thiserror-1.0.65.tar.gz': '5d11abd9594d9b38965ef50805c5e469ca9cc6f197f883f717e0269a3057b3d5'},
+ {'thiserror-impl-1.0.65.tar.gz': 'ae71770322cbd277e69d762a16c444af02aa0575ac0d174f0b9562d3b37f8602'},
+ {'thread-id-4.2.2.tar.gz': 'cfe8f25bbdd100db7e1d34acf7fd2dc59c4bf8f7483f505eaa7d4f12f76cc0ea'},
+ {'thread-tree-0.3.3.tar.gz': 'ffbd370cb847953a25954d9f63e14824a36113f8c72eecf6eccef5dc4b45d630'},
+ {'tinyvec-1.8.0.tar.gz': '445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938'},
+ {'tinyvec_macros-0.1.1.tar.gz': '1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20'},
+ {'triple_accel-0.4.0.tar.gz': '22048bc95dfb2ffd05b1ff9a756290a009224b60b2f0e7525faeee7603851e63'},
+ {'typemap-ors-1.0.0.tar.gz': 'a68c24b707f02dd18f1e4ccceb9d49f2058c2fb86384ef9972592904d7a28867'},
+ {'typenum-1.17.0.tar.gz': '42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825'},
+ {'ucd-trie-0.1.7.tar.gz': '2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971'},
+ {'unicode-bidi-0.3.17.tar.gz': '5ab17db44d7388991a428b2ee655ce0c212e862eff1768a455c58f9aad6e7893'},
+ {'unicode-ident-1.0.13.tar.gz': 'e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe'},
+ {'unicode-normalization-0.1.24.tar.gz': '5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956'},
+ {'unicode-segmentation-1.12.0.tar.gz': 'f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493'},
+ {'unicode-width-0.1.14.tar.gz': '7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af'},
+ {'unsafe-any-ors-1.0.0.tar.gz': 'e0a303d30665362d9680d7d91d78b23f5f899504d4f08b3c4cf08d055d87c0ad'},
+ {'unsafe-libyaml-0.2.11.tar.gz': '673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861'},
+ {'url-2.5.2.tar.gz': '22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c'},
+ {'utf8parse-0.2.2.tar.gz': '06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821'},
+ {'vcpkg-0.2.15.tar.gz': 'accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426'},
+ {'vec_map-0.8.2.tar.gz': 'f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191'},
+ {'version_check-0.9.5.tar.gz': '0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a'},
+ {'wasi-0.11.0+wasi-snapshot-preview1.tar.gz': '9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423'},
+ {'wasm-bindgen-0.2.95.tar.gz': '128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e'},
+ {'wasm-bindgen-backend-0.2.95.tar.gz': 'cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358'},
+ {'wasm-bindgen-macro-0.2.95.tar.gz': 'e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56'},
+ {'wasm-bindgen-macro-support-0.2.95.tar.gz': '26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68'},
+ {'wasm-bindgen-shared-0.2.95.tar.gz': '65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d'},
+ {'wide-0.7.28.tar.gz': 'b828f995bf1e9622031f8009f8481a85406ce1f4d4588ff746d872043e855690'},
+ {'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.52.0.tar.gz': '282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d'},
+ {'windows-sys-0.59.0.tar.gz': '1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b'},
+ {'windows-targets-0.52.6.tar.gz': '9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973'},
+ {'windows_aarch64_gnullvm-0.52.6.tar.gz': '32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3'},
+ {'windows_aarch64_msvc-0.52.6.tar.gz': '09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469'},
+ {'windows_i686_gnu-0.52.6.tar.gz': '8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b'},
+ {'windows_i686_gnullvm-0.52.6.tar.gz': '0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66'},
+ {'windows_i686_msvc-0.52.6.tar.gz': '240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66'},
+ {'windows_x86_64_gnu-0.52.6.tar.gz': '147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78'},
+ {'windows_x86_64_gnullvm-0.52.6.tar.gz': '24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d'},
+ {'windows_x86_64_msvc-0.52.6.tar.gz': '589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec'},
+ {'wyz-0.5.1.tar.gz': '05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed'},
+ {'zerocopy-0.7.35.tar.gz': '1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0'},
+ {'zerocopy-derive-0.7.35.tar.gz': 'fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e'},
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/m/modkit/modkit-0.4.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/m/modkit/modkit-0.4.1-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..cae76ec0a45
--- /dev/null
+++ b/easybuild/easyconfigs/m/modkit/modkit-0.4.1-GCCcore-13.3.0.eb
@@ -0,0 +1,586 @@
+easyblock = 'Cargo'
+
+name = 'modkit'
+version = '0.4.1'
+
+homepage = 'https://github.com/nanoporetech/modkit'
+description = 'A bioinformatics tool for working with modified bases.'
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://github.com/nanoporetech/modkit/archive/']
+sources = ['v%(version)s.tar.gz']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('Rust', '1.78.0'),
+ ('Perl-bundle-CPAN', '5.38.2'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/%(namelower)s'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["%(namelower)s --help"]
+
+crates = [
+ ('adler2', '2.0.0'),
+ ('ahash', '0.8.11'),
+ ('aho-corasick', '1.1.3'),
+ ('android-tzdata', '0.1.1'),
+ ('android_system_properties', '0.1.5'),
+ ('ansi_term', '0.12.1'),
+ ('anstream', '0.6.15'),
+ ('anstyle', '1.0.8'),
+ ('anstyle-parse', '0.2.5'),
+ ('anstyle-query', '1.1.1'),
+ ('anstyle-wincon', '3.0.4'),
+ ('anyhow', '1.0.90'),
+ ('approx', '0.5.1'),
+ ('arc-swap', '1.7.1'),
+ ('assert_approx_eq', '1.1.0'),
+ ('autocfg', '1.4.0'),
+ ('bio', '1.6.0'),
+ ('bio-types', '1.0.4'),
+ ('bit-set', '0.5.3'),
+ ('bit-vec', '0.6.3'),
+ ('bitflags', '2.6.0'),
+ ('bitvec', '1.0.1'),
+ ('block-buffer', '0.10.4'),
+ ('bstr', '1.10.0'),
+ ('bumpalo', '3.16.0'),
+ ('bv', '0.11.1'),
+ ('bytecount', '0.6.8'),
+ ('bytemuck', '1.19.0'),
+ ('byteorder', '1.5.0'),
+ ('bytes', '1.8.0'),
+ ('bzip2-sys', '0.1.11+1.0.8'),
+ ('cc', '1.1.31'),
+ ('cfg-if', '1.0.0'),
+ ('charming', '0.3.1'),
+ ('chrono', '0.4.38'),
+ ('clap', '4.5.20'),
+ ('clap_builder', '4.5.20'),
+ ('clap_derive', '4.5.18'),
+ ('clap_lex', '0.7.2'),
+ ('cmake', '0.1.51'),
+ ('colorchoice', '1.0.2'),
+ ('common_macros', '0.1.1'),
+ ('console', '0.15.8'),
+ ('core-foundation-sys', '0.8.7'),
+ ('core_affinity', '0.8.1'),
+ ('cpufeatures', '0.2.14'),
+ ('crc32fast', '1.4.2'),
+ ('crossbeam', '0.8.4'),
+ ('crossbeam-channel', '0.5.13'),
+ ('crossbeam-deque', '0.8.5'),
+ ('crossbeam-epoch', '0.9.18'),
+ ('crossbeam-queue', '0.3.11'),
+ ('crossbeam-utils', '0.8.20'),
+ ('crypto-common', '0.1.6'),
+ ('csv', '1.3.0'),
+ ('csv-core', '0.1.11'),
+ ('curl-sys', '0.4.77+curl-8.10.1'),
+ ('custom_derive', '0.1.7'),
+ ('derivative', '2.2.0'),
+ ('derive-new', '0.5.9'),
+ ('derive-new', '0.6.0'),
+ ('destructure_traitobject', '0.2.0'),
+ ('digest', '0.10.7'),
+ ('dirs-next', '2.0.0'),
+ ('dirs-sys-next', '0.1.2'),
+ ('doc-comment', '0.3.3'),
+ ('editdistancek', '1.0.2'),
+ ('either', '1.13.0'),
+ ('encode_unicode', '0.3.6'),
+ ('encode_unicode', '1.0.0'),
+ ('enum-map', '2.7.3'),
+ ('enum-map-derive', '0.17.0'),
+ ('equivalent', '1.0.1'),
+ ('errno', '0.3.9'),
+ ('fastrand', '2.1.1'),
+ ('feature-probe', '0.1.1'),
+ ('fixedbitset', '0.4.2'),
+ ('flate2', '1.0.34'),
+ ('flume', '0.10.14'),
+ ('fnv', '1.0.7'),
+ ('form_urlencoded', '1.2.1'),
+ ('fs-utils', '1.1.4'),
+ ('funty', '2.0.0'),
+ ('futures-core', '0.3.31'),
+ ('futures-sink', '0.3.31'),
+ ('fxhash', '0.2.1'),
+ ('generic-array', '0.14.7'),
+ ('getrandom', '0.2.15'),
+ ('glob', '0.3.1'),
+ ('gzp', '0.11.3'),
+ ('handlebars', '4.5.0'),
+ ('hashbrown', '0.13.2'),
+ ('hashbrown', '0.15.0'),
+ ('heck', '0.4.1'),
+ ('heck', '0.5.0'),
+ ('hermit-abi', '0.3.9'),
+ ('hermit-abi', '0.4.0'),
+ ('hts-sys', '2.1.4'),
+ ('humantime', '2.1.0'),
+ ('iana-time-zone', '0.1.61'),
+ ('iana-time-zone-haiku', '0.1.2'),
+ ('idna', '0.5.0'),
+ ('ieee754', '0.2.6'),
+ ('indexmap', '2.6.0'),
+ ('indicatif', '0.17.8'),
+ ('instant', '0.1.13'),
+ ('is-terminal', '0.4.13'),
+ ('is_terminal_polyfill', '1.70.1'),
+ ('itertools', '0.11.0'),
+ ('itertools', '0.12.1'),
+ ('itertools-num', '0.1.3'),
+ ('itoa', '1.0.11'),
+ ('jobserver', '0.1.32'),
+ ('js-sys', '0.3.72'),
+ ('lazy_static', '1.5.0'),
+ ('libc', '0.2.161'),
+ ('libdeflate-sys', '0.12.0'),
+ ('libdeflater', '0.12.0'),
+ ('libm', '0.2.8'),
+ ('libredox', '0.1.3'),
+ ('libz-sys', '1.1.20'),
+ ('linear-map', '1.2.0'),
+ ('linux-raw-sys', '0.4.14'),
+ ('lock_api', '0.4.12'),
+ ('log', '0.4.22'),
+ ('log-mdc', '0.1.0'),
+ ('log-once', '0.4.1'),
+ ('log4rs', '1.3.0'),
+ ('lru', '0.9.0'),
+ ('lzma-sys', '0.1.20'),
+ ('matrixmultiply', '0.3.9'),
+ ('memchr', '2.7.4'),
+ ('minimal-lexical', '0.2.1'),
+ ('miniz_oxide', '0.8.0'),
+ ('multimap', '0.9.1'),
+ ('nalgebra', '0.29.0'),
+ ('nalgebra-macros', '0.1.0'),
+ ('nanorand', '0.7.0'),
+ ('ndarray', '0.15.6'),
+ ('newtype_derive', '0.1.6'),
+ ('nom', '7.1.3'),
+ ('num', '0.4.3'),
+ ('num-bigint', '0.4.6'),
+ ('num-complex', '0.4.6'),
+ ('num-integer', '0.1.46'),
+ ('num-iter', '0.1.45'),
+ ('num-rational', '0.4.2'),
+ ('num-traits', '0.2.19'),
+ ('num_cpus', '1.16.0'),
+ ('number_prefix', '0.4.0'),
+ ('once_cell', '1.20.2'),
+ ('openssl-src', '300.3.2+3.3.2'),
+ ('openssl-sys', '0.9.104'),
+ ('order-stat', '0.1.3'),
+ ('ordered-float', '2.10.1'),
+ ('ordered-float', '3.9.2'),
+ ('parking_lot', '0.12.3'),
+ ('parking_lot_core', '0.9.10'),
+ ('paste', '1.0.15'),
+ ('percent-encoding', '2.3.1'),
+ ('peroxide', '0.32.1'),
+ ('peroxide-ad', '0.3.0'),
+ ('pest', '2.7.14'),
+ ('pest_derive', '2.7.14'),
+ ('pest_generator', '2.7.14'),
+ ('pest_meta', '2.7.14'),
+ ('petgraph', '0.6.5'),
+ ('pin-project', '1.1.6'),
+ ('pin-project-internal', '1.1.6'),
+ ('pkg-config', '0.3.31'),
+ ('portable-atomic', '1.9.0'),
+ ('ppv-lite86', '0.2.20'),
+ ('prettytable-rs', '0.10.0'),
+ ('proc-macro2', '1.0.88'),
+ ('pulp', '0.18.22'),
+ ('puruspe', '0.2.5'),
+ ('quick-error', '1.2.3'),
+ ('quote', '1.0.37'),
+ ('radium', '0.7.0'),
+ ('rand', '0.8.5'),
+ ('rand_chacha', '0.3.1'),
+ ('rand_core', '0.6.4'),
+ ('rand_distr', '0.4.3'),
+ ('random_color', '1.0.0'),
+ ('rawpointer', '0.2.1'),
+ ('rayon', '1.10.0'),
+ ('rayon-core', '1.12.1'),
+ ('reborrow', '0.5.5'),
+ ('redox_syscall', '0.5.7'),
+ ('redox_users', '0.4.6'),
+ ('regex', '1.11.0'),
+ ('regex-automata', '0.4.8'),
+ ('regex-syntax', '0.8.5'),
+ ('rust-htslib', '0.46.0'),
+ ('rust-lapper', '1.1.0'),
+ ('rustc-hash', '1.1.0'),
+ ('rustc_version', '0.1.7'),
+ ('rustix', '0.38.37'),
+ ('rustversion', '1.0.18'),
+ ('rv', '0.16.0'),
+ ('ryu', '1.0.18'),
+ ('safe_arch', '0.7.2'),
+ ('scopeguard', '1.2.0'),
+ ('semver', '0.1.20'),
+ ('serde', '1.0.211'),
+ ('serde-value', '0.7.0'),
+ ('serde_derive', '1.0.211'),
+ ('serde_json', '1.0.132'),
+ ('serde_yaml', '0.9.34+deprecated'),
+ ('sha2', '0.10.8'),
+ ('shlex', '1.3.0'),
+ ('simba', '0.6.0'),
+ ('similar', '2.6.0'),
+ ('similar-asserts', '1.6.0'),
+ ('smallvec', '1.13.2'),
+ ('special', '0.10.3'),
+ ('spin', '0.9.8'),
+ ('statrs', '0.16.1'),
+ ('strsim', '0.11.1'),
+ ('strum', '0.25.0'),
+ ('strum_macros', '0.25.3'),
+ ('strum_macros', '0.26.4'),
+ ('substring', '1.4.5'),
+ ('syn', '1.0.109'),
+ ('syn', '2.0.82'),
+ ('tap', '1.0.1'),
+ ('tempfile', '3.13.0'),
+ ('term', '0.7.0'),
+ ('terminal_size', '0.4.0'),
+ ('thiserror', '1.0.64'),
+ ('thiserror-impl', '1.0.64'),
+ ('thread-id', '4.2.2'),
+ ('thread-tree', '0.3.3'),
+ ('tinyvec', '1.8.0'),
+ ('tinyvec_macros', '0.1.1'),
+ ('triple_accel', '0.4.0'),
+ ('typemap-ors', '1.0.0'),
+ ('typenum', '1.17.0'),
+ ('ucd-trie', '0.1.7'),
+ ('unicode-bidi', '0.3.17'),
+ ('unicode-ident', '1.0.13'),
+ ('unicode-normalization', '0.1.24'),
+ ('unicode-segmentation', '1.12.0'),
+ ('unicode-width', '0.1.14'),
+ ('unsafe-any-ors', '1.0.0'),
+ ('unsafe-libyaml', '0.2.11'),
+ ('url', '2.5.2'),
+ ('utf8parse', '0.2.2'),
+ ('vcpkg', '0.2.15'),
+ ('vec_map', '0.8.2'),
+ ('version_check', '0.9.5'),
+ ('wasi', '0.11.0+wasi-snapshot-preview1'),
+ ('wasm-bindgen', '0.2.95'),
+ ('wasm-bindgen-backend', '0.2.95'),
+ ('wasm-bindgen-macro', '0.2.95'),
+ ('wasm-bindgen-macro-support', '0.2.95'),
+ ('wasm-bindgen-shared', '0.2.95'),
+ ('wide', '0.7.28'),
+ ('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.52.0'),
+ ('windows-sys', '0.59.0'),
+ ('windows-targets', '0.52.6'),
+ ('windows_aarch64_gnullvm', '0.52.6'),
+ ('windows_aarch64_msvc', '0.52.6'),
+ ('windows_i686_gnu', '0.52.6'),
+ ('windows_i686_gnullvm', '0.52.6'),
+ ('windows_i686_msvc', '0.52.6'),
+ ('windows_x86_64_gnu', '0.52.6'),
+ ('windows_x86_64_gnullvm', '0.52.6'),
+ ('windows_x86_64_msvc', '0.52.6'),
+ ('wyz', '0.5.1'),
+ ('zerocopy', '0.7.35'),
+ ('zerocopy-derive', '0.7.35'),
+]
+
+checksums = [
+ {'v0.4.1.tar.gz': '45cd7d4ee69092db7412a15f02799c3118bf5fa4e40e193e30e8c65c4f762f79'},
+ {'adler2-2.0.0.tar.gz': '512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627'},
+ {'ahash-0.8.11.tar.gz': 'e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011'},
+ {'aho-corasick-1.1.3.tar.gz': '8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916'},
+ {'android-tzdata-0.1.1.tar.gz': 'e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0'},
+ {'android_system_properties-0.1.5.tar.gz': '819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311'},
+ {'ansi_term-0.12.1.tar.gz': 'd52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2'},
+ {'anstream-0.6.15.tar.gz': '64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526'},
+ {'anstyle-1.0.8.tar.gz': '1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1'},
+ {'anstyle-parse-0.2.5.tar.gz': 'eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb'},
+ {'anstyle-query-1.1.1.tar.gz': '6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a'},
+ {'anstyle-wincon-3.0.4.tar.gz': '5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8'},
+ {'anyhow-1.0.90.tar.gz': '37bf3594c4c988a53154954629820791dde498571819ae4ca50ca811e060cc95'},
+ {'approx-0.5.1.tar.gz': 'cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6'},
+ {'arc-swap-1.7.1.tar.gz': '69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457'},
+ {'assert_approx_eq-1.1.0.tar.gz': '3c07dab4369547dbe5114677b33fbbf724971019f3818172d59a97a61c774ffd'},
+ {'autocfg-1.4.0.tar.gz': 'ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26'},
+ {'bio-1.6.0.tar.gz': '7a72cb93babf08c85b375c2938ac678cc637936b3ebb72266d433cec2577f6c2'},
+ {'bio-types-1.0.4.tar.gz': 'f4dcf54f8b7f51450207d54780bab09c05f30b8b0caa991545082842e466ad7e'},
+ {'bit-set-0.5.3.tar.gz': '0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1'},
+ {'bit-vec-0.6.3.tar.gz': '349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb'},
+ {'bitflags-2.6.0.tar.gz': 'b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de'},
+ {'bitvec-1.0.1.tar.gz': '1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c'},
+ {'block-buffer-0.10.4.tar.gz': '3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71'},
+ {'bstr-1.10.0.tar.gz': '40723b8fb387abc38f4f4a37c09073622e41dd12327033091ef8950659e6dc0c'},
+ {'bumpalo-3.16.0.tar.gz': '79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c'},
+ {'bv-0.11.1.tar.gz': '8834bb1d8ee5dc048ee3124f2c7c1afcc6bc9aed03f11e9dfd8c69470a5db340'},
+ {'bytecount-0.6.8.tar.gz': '5ce89b21cab1437276d2650d57e971f9d548a2d9037cc231abdc0562b97498ce'},
+ {'bytemuck-1.19.0.tar.gz': '8334215b81e418a0a7bdb8ef0849474f40bb10c8b71f1c4ed315cff49f32494d'},
+ {'byteorder-1.5.0.tar.gz': '1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b'},
+ {'bytes-1.8.0.tar.gz': '9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da'},
+ {'bzip2-sys-0.1.11+1.0.8.tar.gz': '736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc'},
+ {'cc-1.1.31.tar.gz': 'c2e7962b54006dcfcc61cb72735f4d89bb97061dd6a7ed882ec6b8ee53714c6f'},
+ {'cfg-if-1.0.0.tar.gz': 'baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd'},
+ {'charming-0.3.1.tar.gz': 'f4c6b6990238a64b4ae139e7085ce2a11815cb67a0c066a3333ce40f3a329be3'},
+ {'chrono-0.4.38.tar.gz': 'a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401'},
+ {'clap-4.5.20.tar.gz': 'b97f376d85a664d5837dbae44bf546e6477a679ff6610010f17276f686d867e8'},
+ {'clap_builder-4.5.20.tar.gz': '19bc80abd44e4bed93ca373a0704ccbd1b710dc5749406201bb018272808dc54'},
+ {'clap_derive-4.5.18.tar.gz': '4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab'},
+ {'clap_lex-0.7.2.tar.gz': '1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97'},
+ {'cmake-0.1.51.tar.gz': 'fb1e43aa7fd152b1f968787f7dbcdeb306d1867ff373c69955211876c053f91a'},
+ {'colorchoice-1.0.2.tar.gz': 'd3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0'},
+ {'common_macros-0.1.1.tar.gz': 'f3f6d59c71e7dc3af60f0af9db32364d96a16e9310f3f5db2b55ed642162dd35'},
+ {'console-0.15.8.tar.gz': '0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb'},
+ {'core-foundation-sys-0.8.7.tar.gz': '773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b'},
+ {'core_affinity-0.8.1.tar.gz': '622892f5635ce1fc38c8f16dfc938553ed64af482edb5e150bf4caedbfcb2304'},
+ {'cpufeatures-0.2.14.tar.gz': '608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0'},
+ {'crc32fast-1.4.2.tar.gz': 'a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3'},
+ {'crossbeam-0.8.4.tar.gz': '1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8'},
+ {'crossbeam-channel-0.5.13.tar.gz': '33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2'},
+ {'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.20.tar.gz': '22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80'},
+ {'crypto-common-0.1.6.tar.gz': '1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3'},
+ {'csv-1.3.0.tar.gz': 'ac574ff4d437a7b5ad237ef331c17ccca63c46479e5b5453eb8e10bb99a759fe'},
+ {'csv-core-0.1.11.tar.gz': '5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70'},
+ {'curl-sys-0.4.77+curl-8.10.1.tar.gz': 'f469e8a5991f277a208224f6c7ad72ecb5f986e36d09ae1f2c1bb9259478a480'},
+ {'custom_derive-0.1.7.tar.gz': 'ef8ae57c4978a2acd8b869ce6b9ca1dfe817bff704c220209fdef2c0b75a01b9'},
+ {'derivative-2.2.0.tar.gz': 'fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b'},
+ {'derive-new-0.5.9.tar.gz': '3418329ca0ad70234b9735dc4ceed10af4df60eff9c8e7b06cb5e520d92c3535'},
+ {'derive-new-0.6.0.tar.gz': 'd150dea618e920167e5973d70ae6ece4385b7164e0d799fe7c122dd0a5d912ad'},
+ {'destructure_traitobject-0.2.0.tar.gz': '3c877555693c14d2f84191cfd3ad8582790fc52b5e2274b40b59cf5f5cea25c7'},
+ {'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'},
+ {'editdistancek-1.0.2.tar.gz': '3e02df23d5b1c6f9e69fa603b890378123b93073df998a21e6e33b9db0a32613'},
+ {'either-1.13.0.tar.gz': '60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0'},
+ {'encode_unicode-0.3.6.tar.gz': 'a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f'},
+ {'encode_unicode-1.0.0.tar.gz': '34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0'},
+ {'enum-map-2.7.3.tar.gz': '6866f3bfdf8207509a033af1a75a7b08abda06bbaaeae6669323fd5a097df2e9'},
+ {'enum-map-derive-0.17.0.tar.gz': 'f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb'},
+ {'equivalent-1.0.1.tar.gz': '5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5'},
+ {'errno-0.3.9.tar.gz': '534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba'},
+ {'fastrand-2.1.1.tar.gz': 'e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6'},
+ {'feature-probe-0.1.1.tar.gz': '835a3dc7d1ec9e75e2b5fb4ba75396837112d2060b03f7d43bc1897c7f7211da'},
+ {'fixedbitset-0.4.2.tar.gz': '0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80'},
+ {'flate2-1.0.34.tar.gz': 'a1b589b4dc103969ad3cf85c950899926ec64300a1a46d76c03a6072957036f0'},
+ {'flume-0.10.14.tar.gz': '1657b4441c3403d9f7b3409e47575237dac27b1b5726df654a6ecbf92f0f7577'},
+ {'fnv-1.0.7.tar.gz': '3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1'},
+ {'form_urlencoded-1.2.1.tar.gz': 'e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456'},
+ {'fs-utils-1.1.4.tar.gz': '6fc7a9dc005c944c98a935e7fd626faf5bf7e5a609f94bc13e42fc4a02e52593'},
+ {'funty-2.0.0.tar.gz': 'e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c'},
+ {'futures-core-0.3.31.tar.gz': '05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e'},
+ {'futures-sink-0.3.31.tar.gz': 'e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7'},
+ {'fxhash-0.2.1.tar.gz': 'c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c'},
+ {'generic-array-0.14.7.tar.gz': '85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a'},
+ {'getrandom-0.2.15.tar.gz': 'c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7'},
+ {'glob-0.3.1.tar.gz': 'd2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b'},
+ {'gzp-0.11.3.tar.gz': 'e7c65d1899521a11810501b50b898464d133e1afc96703cff57726964cfa7baf'},
+ {'handlebars-4.5.0.tar.gz': 'faa67bab9ff362228eb3d00bd024a4965d8231bbb7921167f0cfa66c6626b225'},
+ {'hashbrown-0.13.2.tar.gz': '43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e'},
+ {'hashbrown-0.15.0.tar.gz': '1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb'},
+ {'heck-0.4.1.tar.gz': '95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8'},
+ {'heck-0.5.0.tar.gz': '2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea'},
+ {'hermit-abi-0.3.9.tar.gz': 'd231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024'},
+ {'hermit-abi-0.4.0.tar.gz': 'fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc'},
+ {'hts-sys-2.1.4.tar.gz': 'e9f348d14cb4e50444e39fcd6b00302fe2ed2bc88094142f6278391d349a386d'},
+ {'humantime-2.1.0.tar.gz': '9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4'},
+ {'iana-time-zone-0.1.61.tar.gz': '235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220'},
+ {'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.6.0.tar.gz': '707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da'},
+ {'indicatif-0.17.8.tar.gz': '763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3'},
+ {'instant-0.1.13.tar.gz': 'e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222'},
+ {'is-terminal-0.4.13.tar.gz': '261f68e344040fbd0edea105bef17c66edf46f984ddb1115b775ce31be948f4b'},
+ {'is_terminal_polyfill-1.70.1.tar.gz': '7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf'},
+ {'itertools-0.11.0.tar.gz': 'b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57'},
+ {'itertools-0.12.1.tar.gz': 'ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569'},
+ {'itertools-num-0.1.3.tar.gz': 'a872a22f9e6f7521ca557660adb96dd830e54f0f490fa115bb55dd69d38b27e7'},
+ {'itoa-1.0.11.tar.gz': '49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b'},
+ {'jobserver-0.1.32.tar.gz': '48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0'},
+ {'js-sys-0.3.72.tar.gz': '6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9'},
+ {'lazy_static-1.5.0.tar.gz': 'bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe'},
+ {'libc-0.2.161.tar.gz': '8e9489c2807c139ffd9c1794f4af0ebe86a828db53ecdc7fea2111d0fed085d1'},
+ {'libdeflate-sys-0.12.0.tar.gz': 'e1f7b0817f85e2ba608892f30fbf4c9d03f3ebf9db0c952d1b7c8f7387b54785'},
+ {'libdeflater-0.12.0.tar.gz': '671e63282f642c7bcc7d292b212d5a4739fef02a77fe98429a75d308f96e7931'},
+ {'libm-0.2.8.tar.gz': '4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058'},
+ {'libredox-0.1.3.tar.gz': 'c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d'},
+ {'libz-sys-1.1.20.tar.gz': 'd2d16453e800a8cf6dd2fc3eb4bc99b786a9b90c663b8559a5b1a041bf89e472'},
+ {'linear-map-1.2.0.tar.gz': 'bfae20f6b19ad527b550c223fddc3077a547fc70cda94b9b566575423fd303ee'},
+ {'linux-raw-sys-0.4.14.tar.gz': '78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89'},
+ {'lock_api-0.4.12.tar.gz': '07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17'},
+ {'log-0.4.22.tar.gz': 'a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24'},
+ {'log-mdc-0.1.0.tar.gz': 'a94d21414c1f4a51209ad204c1776a3d0765002c76c6abcb602a6f09f1e881c7'},
+ {'log-once-0.4.1.tar.gz': '6d8a05e3879b317b1b6dbf353e5bba7062bedcc59815267bb23eaa0c576cebf0'},
+ {'log4rs-1.3.0.tar.gz': '0816135ae15bd0391cf284eab37e6e3ee0a6ee63d2ceeb659862bd8d0a984ca6'},
+ {'lru-0.9.0.tar.gz': '71e7d46de488603ffdd5f30afbc64fbba2378214a2c3a2fb83abf3d33126df17'},
+ {'lzma-sys-0.1.20.tar.gz': '5fda04ab3764e6cde78b9974eec4f779acaba7c4e84b36eca3cf77c581b85d27'},
+ {'matrixmultiply-0.3.9.tar.gz': '9380b911e3e96d10c1f415da0876389aaf1b56759054eeb0de7df940c456ba1a'},
+ {'memchr-2.7.4.tar.gz': '78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3'},
+ {'minimal-lexical-0.2.1.tar.gz': '68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a'},
+ {'miniz_oxide-0.8.0.tar.gz': 'e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1'},
+ {'multimap-0.9.1.tar.gz': 'e1a5d38b9b352dbd913288736af36af41c48d61b1a8cd34bcecd727561b7d511'},
+ {'nalgebra-0.29.0.tar.gz': 'd506eb7e08d6329505faa8a3a00a5dcc6de9f76e0c77e4b75763ae3c770831ff'},
+ {'nalgebra-macros-0.1.0.tar.gz': '01fcc0b8149b4632adc89ac3b7b31a12fb6099a0317a4eb2ebff574ef7de7218'},
+ {'nanorand-0.7.0.tar.gz': '6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3'},
+ {'ndarray-0.15.6.tar.gz': 'adb12d4e967ec485a5f71c6311fe28158e9d6f4bc4a447b474184d0f91a8fa32'},
+ {'newtype_derive-0.1.6.tar.gz': 'ac8cd24d9f185bb7223958d8c1ff7a961b74b1953fd05dba7cc568a63b3861ec'},
+ {'nom-7.1.3.tar.gz': 'd273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a'},
+ {'num-0.4.3.tar.gz': '35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23'},
+ {'num-bigint-0.4.6.tar.gz': 'a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9'},
+ {'num-complex-0.4.6.tar.gz': '73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495'},
+ {'num-integer-0.1.46.tar.gz': '7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f'},
+ {'num-iter-0.1.45.tar.gz': '1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf'},
+ {'num-rational-0.4.2.tar.gz': 'f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824'},
+ {'num-traits-0.2.19.tar.gz': '071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841'},
+ {'num_cpus-1.16.0.tar.gz': '4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43'},
+ {'number_prefix-0.4.0.tar.gz': '830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3'},
+ {'once_cell-1.20.2.tar.gz': '1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775'},
+ {'openssl-src-300.3.2+3.3.2.tar.gz': 'a211a18d945ef7e648cc6e0058f4c548ee46aab922ea203e0d30e966ea23647b'},
+ {'openssl-sys-0.9.104.tar.gz': '45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741'},
+ {'order-stat-0.1.3.tar.gz': 'efa535d5117d3661134dbf1719b6f0ffe06f2375843b13935db186cd094105eb'},
+ {'ordered-float-2.10.1.tar.gz': '68f19d67e5a2795c94e73e0bb1cc1a7edeb2e28efd39e2e1c9b7a40c1108b11c'},
+ {'ordered-float-3.9.2.tar.gz': 'f1e1c390732d15f1d48471625cd92d154e66db2c56645e29a9cd26f4699f72dc'},
+ {'parking_lot-0.12.3.tar.gz': 'f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27'},
+ {'parking_lot_core-0.9.10.tar.gz': '1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8'},
+ {'paste-1.0.15.tar.gz': '57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a'},
+ {'percent-encoding-2.3.1.tar.gz': 'e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e'},
+ {'peroxide-0.32.1.tar.gz': '703b5fbdc1f9018a66e2db8758633cec31d39ad3127bfd38c9b6ad510637519c'},
+ {'peroxide-ad-0.3.0.tar.gz': 'f6fba8ff3f40b67996f7c745f699babaa3e57ef5c8178ec999daf7eedc51dc8c'},
+ {'pest-2.7.14.tar.gz': '879952a81a83930934cbf1786752d6dedc3b1f29e8f8fb2ad1d0a36f377cf442'},
+ {'pest_derive-2.7.14.tar.gz': 'd214365f632b123a47fd913301e14c946c61d1c183ee245fa76eb752e59a02dd'},
+ {'pest_generator-2.7.14.tar.gz': 'eb55586734301717aea2ac313f50b2eb8f60d2fc3dc01d190eefa2e625f60c4e'},
+ {'pest_meta-2.7.14.tar.gz': 'b75da2a70cf4d9cb76833c990ac9cd3923c9a8905a8929789ce347c84564d03d'},
+ {'petgraph-0.6.5.tar.gz': 'b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db'},
+ {'pin-project-1.1.6.tar.gz': 'baf123a161dde1e524adf36f90bc5d8d3462824a9c43553ad07a8183161189ec'},
+ {'pin-project-internal-1.1.6.tar.gz': 'a4502d8515ca9f32f1fb543d987f63d95a14934883db45bdb48060b6b69257f8'},
+ {'pkg-config-0.3.31.tar.gz': '953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2'},
+ {'portable-atomic-1.9.0.tar.gz': 'cc9c68a3f6da06753e9335d63e27f6b9754dd1920d941135b7ea8224f141adb2'},
+ {'ppv-lite86-0.2.20.tar.gz': '77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04'},
+ {'prettytable-rs-0.10.0.tar.gz': 'eea25e07510aa6ab6547308ebe3c036016d162b8da920dbb079e3ba8acf3d95a'},
+ {'proc-macro2-1.0.88.tar.gz': '7c3a7fc5db1e57d5a779a352c8cdb57b29aa4c40cc69c3a68a7fedc815fbf2f9'},
+ {'pulp-0.18.22.tar.gz': 'a0a01a0dc67cf4558d279f0c25b0962bd08fc6dec0137699eae304103e882fe6'},
+ {'puruspe-0.2.5.tar.gz': '3804877ffeba468c806c2ad9057bbbae92e4b2c410c2f108baaa0042f241fa4c'},
+ {'quick-error-1.2.3.tar.gz': 'a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0'},
+ {'quote-1.0.37.tar.gz': 'b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af'},
+ {'radium-0.7.0.tar.gz': 'dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09'},
+ {'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'},
+ {'random_color-1.0.0.tar.gz': '38803f546aaf7a3bd5af56b139d7b432d3eb43318bf4a91342eff8a125b4fe06'},
+ {'rawpointer-0.2.1.tar.gz': '60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3'},
+ {'rayon-1.10.0.tar.gz': 'b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa'},
+ {'rayon-core-1.12.1.tar.gz': '1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2'},
+ {'reborrow-0.5.5.tar.gz': '03251193000f4bd3b042892be858ee50e8b3719f2b08e5833ac4353724632430'},
+ {'redox_syscall-0.5.7.tar.gz': '9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f'},
+ {'redox_users-0.4.6.tar.gz': 'ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43'},
+ {'regex-1.11.0.tar.gz': '38200e5ee88914975b69f657f0801b6f6dccafd44fd9326302a4aaeecfacb1d8'},
+ {'regex-automata-0.4.8.tar.gz': '368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3'},
+ {'regex-syntax-0.8.5.tar.gz': '2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c'},
+ {'rust-htslib-0.46.0.tar.gz': 'aec6f9ca4601beb4ae75ff8c99144dd15de5a873f6adf058da299962c760968e'},
+ {'rust-lapper-1.1.0.tar.gz': 'ee43d8e721ac803031dbab6a944b957b49a3b11eadbc099880c8aaaebf23ed27'},
+ {'rustc-hash-1.1.0.tar.gz': '08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2'},
+ {'rustc_version-0.1.7.tar.gz': 'c5f5376ea5e30ce23c03eb77cbe4962b988deead10910c372b226388b594c084'},
+ {'rustix-0.38.37.tar.gz': '8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811'},
+ {'rustversion-1.0.18.tar.gz': '0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248'},
+ {'rv-0.16.0.tar.gz': 'c64081d5a5cd97b60822603f9900df77d67c8258e9a8143b6aff950753f2bbe1'},
+ {'ryu-1.0.18.tar.gz': 'f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f'},
+ {'safe_arch-0.7.2.tar.gz': 'c3460605018fdc9612bce72735cba0d27efbcd9904780d44c7e3a9948f96148a'},
+ {'scopeguard-1.2.0.tar.gz': '94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49'},
+ {'semver-0.1.20.tar.gz': 'd4f410fedcf71af0345d7607d246e7ad15faaadd49d240ee3b24e5dc21a820ac'},
+ {'serde-1.0.211.tar.gz': '1ac55e59090389fb9f0dd9e0f3c09615afed1d19094284d0b200441f13550793'},
+ {'serde-value-0.7.0.tar.gz': 'f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c'},
+ {'serde_derive-1.0.211.tar.gz': '54be4f245ce16bc58d57ef2716271d0d4519e0f6defa147f6e081005bcb278ff'},
+ {'serde_json-1.0.132.tar.gz': 'd726bfaff4b320266d395898905d0eba0345aae23b54aee3a737e260fd46db03'},
+ {'serde_yaml-0.9.34+deprecated.tar.gz': '6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47'},
+ {'sha2-0.10.8.tar.gz': '793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8'},
+ {'shlex-1.3.0.tar.gz': '0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64'},
+ {'simba-0.6.0.tar.gz': 'f0b7840f121a46d63066ee7a99fc81dcabbc6105e437cae43528cea199b5a05f'},
+ {'similar-2.6.0.tar.gz': '1de1d4f81173b03af4c0cbed3c898f6bff5b870e4a7f5d6f4057d62a7a4b686e'},
+ {'similar-asserts-1.6.0.tar.gz': 'cfe85670573cd6f0fa97940f26e7e6601213c3b0555246c24234131f88c5709e'},
+ {'smallvec-1.13.2.tar.gz': '3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67'},
+ {'special-0.10.3.tar.gz': 'b89cf0d71ae639fdd8097350bfac415a41aabf1d5ddd356295fdc95f09760382'},
+ {'spin-0.9.8.tar.gz': '6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67'},
+ {'statrs-0.16.1.tar.gz': 'b35a062dbadac17a42e0fc64c27f419b25d6fae98572eb43c8814c9e873d7721'},
+ {'strsim-0.11.1.tar.gz': '7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f'},
+ {'strum-0.25.0.tar.gz': '290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125'},
+ {'strum_macros-0.25.3.tar.gz': '23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0'},
+ {'strum_macros-0.26.4.tar.gz': '4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be'},
+ {'substring-1.4.5.tar.gz': '42ee6433ecef213b2e72f587ef64a2f5943e7cd16fbd82dbe8bc07486c534c86'},
+ {'syn-1.0.109.tar.gz': '72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237'},
+ {'syn-2.0.82.tar.gz': '83540f837a8afc019423a8edb95b52a8effe46957ee402287f4292fae35be021'},
+ {'tap-1.0.1.tar.gz': '55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369'},
+ {'tempfile-3.13.0.tar.gz': 'f0f2c9fc62d0beef6951ccffd757e241266a2c833136efbe35af6cd2567dca5b'},
+ {'term-0.7.0.tar.gz': 'c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f'},
+ {'terminal_size-0.4.0.tar.gz': '4f599bd7ca042cfdf8f4512b277c02ba102247820f9d9d4a9f521f496751a6ef'},
+ {'thiserror-1.0.64.tar.gz': 'd50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84'},
+ {'thiserror-impl-1.0.64.tar.gz': '08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3'},
+ {'thread-id-4.2.2.tar.gz': 'cfe8f25bbdd100db7e1d34acf7fd2dc59c4bf8f7483f505eaa7d4f12f76cc0ea'},
+ {'thread-tree-0.3.3.tar.gz': 'ffbd370cb847953a25954d9f63e14824a36113f8c72eecf6eccef5dc4b45d630'},
+ {'tinyvec-1.8.0.tar.gz': '445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938'},
+ {'tinyvec_macros-0.1.1.tar.gz': '1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20'},
+ {'triple_accel-0.4.0.tar.gz': '22048bc95dfb2ffd05b1ff9a756290a009224b60b2f0e7525faeee7603851e63'},
+ {'typemap-ors-1.0.0.tar.gz': 'a68c24b707f02dd18f1e4ccceb9d49f2058c2fb86384ef9972592904d7a28867'},
+ {'typenum-1.17.0.tar.gz': '42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825'},
+ {'ucd-trie-0.1.7.tar.gz': '2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971'},
+ {'unicode-bidi-0.3.17.tar.gz': '5ab17db44d7388991a428b2ee655ce0c212e862eff1768a455c58f9aad6e7893'},
+ {'unicode-ident-1.0.13.tar.gz': 'e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe'},
+ {'unicode-normalization-0.1.24.tar.gz': '5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956'},
+ {'unicode-segmentation-1.12.0.tar.gz': 'f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493'},
+ {'unicode-width-0.1.14.tar.gz': '7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af'},
+ {'unsafe-any-ors-1.0.0.tar.gz': 'e0a303d30665362d9680d7d91d78b23f5f899504d4f08b3c4cf08d055d87c0ad'},
+ {'unsafe-libyaml-0.2.11.tar.gz': '673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861'},
+ {'url-2.5.2.tar.gz': '22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c'},
+ {'utf8parse-0.2.2.tar.gz': '06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821'},
+ {'vcpkg-0.2.15.tar.gz': 'accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426'},
+ {'vec_map-0.8.2.tar.gz': 'f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191'},
+ {'version_check-0.9.5.tar.gz': '0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a'},
+ {'wasi-0.11.0+wasi-snapshot-preview1.tar.gz': '9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423'},
+ {'wasm-bindgen-0.2.95.tar.gz': '128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e'},
+ {'wasm-bindgen-backend-0.2.95.tar.gz': 'cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358'},
+ {'wasm-bindgen-macro-0.2.95.tar.gz': 'e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56'},
+ {'wasm-bindgen-macro-support-0.2.95.tar.gz': '26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68'},
+ {'wasm-bindgen-shared-0.2.95.tar.gz': '65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d'},
+ {'wide-0.7.28.tar.gz': 'b828f995bf1e9622031f8009f8481a85406ce1f4d4588ff746d872043e855690'},
+ {'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.52.0.tar.gz': '282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d'},
+ {'windows-sys-0.59.0.tar.gz': '1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b'},
+ {'windows-targets-0.52.6.tar.gz': '9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973'},
+ {'windows_aarch64_gnullvm-0.52.6.tar.gz': '32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3'},
+ {'windows_aarch64_msvc-0.52.6.tar.gz': '09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469'},
+ {'windows_i686_gnu-0.52.6.tar.gz': '8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b'},
+ {'windows_i686_gnullvm-0.52.6.tar.gz': '0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66'},
+ {'windows_i686_msvc-0.52.6.tar.gz': '240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66'},
+ {'windows_x86_64_gnu-0.52.6.tar.gz': '147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78'},
+ {'windows_x86_64_gnullvm-0.52.6.tar.gz': '24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d'},
+ {'windows_x86_64_msvc-0.52.6.tar.gz': '589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec'},
+ {'wyz-0.5.1.tar.gz': '05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed'},
+ {'zerocopy-0.7.35.tar.gz': '1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0'},
+ {'zerocopy-derive-0.7.35.tar.gz': 'fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e'},
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/m/mosdepth/mosdepth-0.3.9-GCC-12.3.0.eb b/easybuild/easyconfigs/m/mosdepth/mosdepth-0.3.9-GCC-12.3.0.eb
new file mode 100644
index 00000000000..8fcad4de92b
--- /dev/null
+++ b/easybuild/easyconfigs/m/mosdepth/mosdepth-0.3.9-GCC-12.3.0.eb
@@ -0,0 +1,48 @@
+easyblock = 'Binary'
+
+name = 'mosdepth'
+version = '0.3.9'
+local_hts_nim_ver = '0.3.25'
+
+homepage = 'https://github.com/brentp/mosdepth'
+description = "Fast BAM/CRAM depth calculation for WGS, exome, or targeted sequencing"
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+
+sources = [
+ {
+ 'source_urls': ['https://github.com/brentp/hts-nim/archive/'],
+ 'download_filename': 'v%s.tar.gz' % local_hts_nim_ver,
+ 'filename': 'hts-nim-%s.tar.gz' % local_hts_nim_ver,
+ },
+ {
+ 'source_urls': ['https://github.com/brentp/mosdepth/archive/'],
+ 'download_filename': 'v%(version)s.tar.gz',
+ 'filename': SOURCE_TAR_GZ,
+ },
+]
+checksums = [
+ {'hts-nim-0.3.25.tar.gz': 'b13b9bb5aa567a69bf17547aadbbd39e37beb4f71a28f267b83dfea9ea4d05e8'},
+ {'mosdepth-0.3.9.tar.gz': '9171ea9a6ddaccd0091db5b85fa9e6cb79516bbe005c47ffc8dcfe49c978eb69'},
+]
+
+dependencies = [
+ ('Nim', '2.2.0'),
+ ('HTSlib', '1.18'),
+ ('PCRE', '8.45'),
+]
+
+extract_sources = True
+
+install_cmd = "cd %(builddir)s/hts-nim-*/ && nimble install --nimbleDir:%(installdir)s --verbose -y && "
+install_cmd += "cd ../mosdepth-*/ && "
+install_cmd += "nimble install --nimbleDir:%(installdir)s --verbose -y"
+
+sanity_check_paths = {
+ 'files': ['bin/mosdepth'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["mosdepth --help"]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/m/mpi4py/mpi4py-4.0.1-gompi-2024a.eb b/easybuild/easyconfigs/m/mpi4py/mpi4py-4.0.1-gompi-2024a.eb
new file mode 100644
index 00000000000..c3fc1a06dae
--- /dev/null
+++ b/easybuild/easyconfigs/m/mpi4py/mpi4py-4.0.1-gompi-2024a.eb
@@ -0,0 +1,29 @@
+easyblock = 'PythonBundle'
+
+name = 'mpi4py'
+version = '4.0.1'
+
+homepage = 'https://github.com/mpi4py/mpi4py'
+description = """MPI for Python (mpi4py) provides bindings of the Message Passing Interface (MPI) standard for
+ the Python programming language, allowing any Python program to exploit multiple processors."""
+
+toolchain = {'name': 'gompi', 'version': '2024a'}
+
+builddependencies = [
+ ('Cython', '3.0.10'),
+]
+
+dependencies = [
+ ('Python', '3.12.3'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ (name, version, {
+ 'checksums': ['f3174b245775d556f4fddb32519a2066ef0592edc810c5b5a59238f9a0a40c89'],
+ }),
+]
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/m/mpifileutils/mpifileutils-0.11.1-gompi-2024a.eb b/easybuild/easyconfigs/m/mpifileutils/mpifileutils-0.11.1-gompi-2024a.eb
new file mode 100644
index 00000000000..f486ed4effd
--- /dev/null
+++ b/easybuild/easyconfigs/m/mpifileutils/mpifileutils-0.11.1-gompi-2024a.eb
@@ -0,0 +1,45 @@
+easyblock = 'CMakeMake'
+
+name = 'mpifileutils'
+version = "0.11.1"
+
+homepage = 'https://hpc.github.io/mpifileutils/'
+
+description = """
+ MPI-Based File Utilities For Distributed Systems
+"""
+
+toolchain = {'name': 'gompi', 'version': '2024a'}
+
+github_account = 'hpc'
+source_urls = [GITHUB_SOURCE]
+sources = ['v%(version)s.tar.gz']
+checksums = ['e2cba53309b5b3ee581b6ff82e4e66f54628370cce694c34224ed947fece32d4']
+
+builddependencies = [
+ ('CMake', '3.29.3'),
+]
+
+dependencies = [
+ ('attr', '2.5.2'),
+ ('bzip2', '1.0.8'),
+ ('lwgrp', '1.0.6'),
+ ('dtcmp', '1.1.5'),
+ ('libarchive', '3.7.4'),
+ ('libcircle', '0.3'),
+]
+
+_binaries = [
+ 'dbcast', 'dbz2', 'dchmod', 'dcmp', 'dcp', 'ddup', 'dfind',
+ 'dreln', 'drm', 'dstripe', 'dsync', 'dtar', 'dwalk'
+]
+
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in _binaries] +
+ ['include/mfu.h', 'lib/libmfu.%s' % SHLIB_EXT],
+ 'dirs': []
+}
+
+sanity_check_commands = ['%s --help 2>&1 | grep Usage' % x for x in _binaries]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/m/mpl-ascii/mpl-ascii-0.10.0-gfbf-2023a.eb b/easybuild/easyconfigs/m/mpl-ascii/mpl-ascii-0.10.0-gfbf-2023a.eb
new file mode 100644
index 00000000000..8381b52dd43
--- /dev/null
+++ b/easybuild/easyconfigs/m/mpl-ascii/mpl-ascii-0.10.0-gfbf-2023a.eb
@@ -0,0 +1,29 @@
+easyblock = 'PythonBundle'
+
+name = 'mpl-ascii'
+version = '0.10.0'
+
+homepage = 'https://github.com/chriscave/mpl_ascii'
+description = "A matplotlib backend that produces plots using only ASCII characters"
+
+toolchain = {'name': 'gfbf', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('matplotlib', '3.7.2'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ (name, version, {
+ 'source_tmpl': 'mpl_ascii-%(version)s.tar.gz',
+ 'checksums': ['8e4ae770d5a612dab0e8055c7677c6c3d271da4f5127cce46a60ce3ce4a4e72c'],
+ # relax version constraint for rich
+ 'preinstallopts': """sed -i 's/"rich>=.*"/"rich"/g' pyproject.toml && """,
+ }),
+]
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/m/mpl-ascii/mpl-ascii-0.10.0-gfbf-2023b.eb b/easybuild/easyconfigs/m/mpl-ascii/mpl-ascii-0.10.0-gfbf-2023b.eb
new file mode 100644
index 00000000000..f17a99eb068
--- /dev/null
+++ b/easybuild/easyconfigs/m/mpl-ascii/mpl-ascii-0.10.0-gfbf-2023b.eb
@@ -0,0 +1,29 @@
+easyblock = 'PythonBundle'
+
+name = 'mpl-ascii'
+version = '0.10.0'
+
+homepage = 'https://github.com/chriscave/mpl_ascii'
+description = "A matplotlib backend that produces plots using only ASCII characters"
+
+toolchain = {'name': 'gfbf', 'version': '2023b'}
+
+dependencies = [
+ ('Python', '3.11.5'),
+ ('Python-bundle-PyPI', '2023.10'),
+ ('matplotlib', '3.8.2'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ (name, version, {
+ 'source_tmpl': 'mpl_ascii-%(version)s.tar.gz',
+ 'checksums': ['8e4ae770d5a612dab0e8055c7677c6c3d271da4f5127cce46a60ce3ce4a4e72c'],
+ # relax version constraint for rich
+ 'preinstallopts': """sed -i 's/"rich>=.*"/"rich"/g' pyproject.toml && """,
+ }),
+]
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/m/mstore/mstore-0.3.0-GCC-12.3.0.eb b/easybuild/easyconfigs/m/mstore/mstore-0.3.0-GCC-12.3.0.eb
new file mode 100644
index 00000000000..a609b4e373b
--- /dev/null
+++ b/easybuild/easyconfigs/m/mstore/mstore-0.3.0-GCC-12.3.0.eb
@@ -0,0 +1,37 @@
+# J. Sassmannshausen (Imperial College London/UK)
+
+easyblock = 'CMakeMake'
+
+name = 'mstore'
+version = '0.3.0'
+
+homepage = 'https://github.com/grimme-lab/mstore'
+description = """Molecular structure store for testing"""
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+toolchainopts = {'pic': True}
+
+github_account = 'grimme-lab'
+source_urls = [GITHUB_SOURCE]
+sources = ['v%(version)s.tar.gz']
+checksums = ['56b3d778629eb74b8a515cd53c727d04609f858a07f8d3555fd5fd392a206dcc']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('CMake', '3.26.3'),
+]
+
+dependencies = [
+ ('mctc-lib', '0.3.1'),
+]
+
+configopts = '-DBUILD_SHARED_LIBS=ON'
+
+sanity_check_paths = {
+ 'files': ['bin/mstore-fortranize', 'bin/mstore-info', 'lib/libmstore.%s' % SHLIB_EXT],
+ 'dirs': ['include/%(name)s', 'lib/cmake', 'lib/pkgconfig'],
+}
+
+sanity_check_commands = ["mstore-info --help"]
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/m/mstore/mstore-0.3.0-GCC-13.2.0.eb b/easybuild/easyconfigs/m/mstore/mstore-0.3.0-GCC-13.2.0.eb
new file mode 100644
index 00000000000..639fb84a91b
--- /dev/null
+++ b/easybuild/easyconfigs/m/mstore/mstore-0.3.0-GCC-13.2.0.eb
@@ -0,0 +1,37 @@
+# J. Sassmannshausen (Imperial College London/UK)
+
+easyblock = 'CMakeMake'
+
+name = 'mstore'
+version = '0.3.0'
+
+homepage = 'https://github.com/grimme-lab/mstore'
+description = """Molecular structure store for testing"""
+
+toolchain = {'name': 'GCC', 'version': '13.2.0'}
+toolchainopts = {'pic': True}
+
+github_account = 'grimme-lab'
+source_urls = [GITHUB_SOURCE]
+sources = ['v%(version)s.tar.gz']
+checksums = ['56b3d778629eb74b8a515cd53c727d04609f858a07f8d3555fd5fd392a206dcc']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('CMake', '3.27.6'),
+]
+
+dependencies = [
+ ('mctc-lib', '0.3.1'),
+]
+
+configopts = '-DBUILD_SHARED_LIBS=ON'
+
+sanity_check_paths = {
+ 'files': ['bin/mstore-fortranize', 'bin/mstore-info', 'lib/libmstore.%s' % SHLIB_EXT],
+ 'dirs': ['include/%(name)s', 'lib/cmake', 'lib/pkgconfig'],
+}
+
+sanity_check_commands = ["mstore-info --help"]
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/m/muParser/muParser-2.3.4-GCCcore-12.3.0.eb b/easybuild/easyconfigs/m/muParser/muParser-2.3.4-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..506baa51977
--- /dev/null
+++ b/easybuild/easyconfigs/m/muParser/muParser-2.3.4-GCCcore-12.3.0.eb
@@ -0,0 +1,32 @@
+easyblock = 'CMakeMake'
+
+name = 'muParser'
+version = '2.3.4'
+
+homepage = 'https://beltoforion.de/article.php?a=muparser'
+description = """
+ muParser is an extensible high performance math expression parser library
+ written in C++. It works by transforming a mathematical expression into
+ bytecode and precalculating constant parts of the expression.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/beltoforion/muparser/archive/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['0c3fa54a3ebf36dda0ed3e7cd5451c964afbb15102bdbcba08aafb359a290121']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('CMake', '3.26.3'),
+]
+
+configopts = "-DENABLE_SAMPLES=OFF -DBUILD_SHARED_LIBS=ON"
+
+sanity_check_paths = {
+ 'files': ['include/%(name)s.h', 'lib/libmuparser.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/m/multicharge/multicharge-0.3.0-gfbf-2023a.eb b/easybuild/easyconfigs/m/multicharge/multicharge-0.3.0-gfbf-2023a.eb
new file mode 100644
index 00000000000..b4ccfa2544f
--- /dev/null
+++ b/easybuild/easyconfigs/m/multicharge/multicharge-0.3.0-gfbf-2023a.eb
@@ -0,0 +1,39 @@
+# Author: J. Sassmannshausen (Imperial College London/UK)
+
+easyblock = 'CMakeNinja'
+
+name = 'multicharge'
+version = '0.3.0'
+
+homepage = 'https://github.com/grimme-lab/multicharge'
+description = """Electronegativity equilibration model for atomic partial charges."""
+
+toolchain = {'name': 'gfbf', 'version': '2023a'}
+
+github_account = 'grimme-lab'
+source_urls = [GITHUB_SOURCE]
+sources = ['v%(version)s.tar.gz']
+checksums = ['2fcc1f80871f404f005e9db458ffaec95bb28a19516a0245278cd3175b63a6b2']
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+ ('Ninja', '1.11.1'),
+ ('binutils', '2.40'),
+]
+
+dependencies = [
+ ('mctc-lib', '0.3.1'),
+ ('mstore', '0.3.0'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/multicharge', 'lib/libmulticharge.a'],
+ 'dirs': ['include/%(name)s', 'lib/cmake', 'lib/pkgconfig'],
+}
+
+sanity_check_commands = ["multicharge --help"]
+
+# run suite of tests with ctest
+runtest = True
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/m/multicharge/multicharge-0.3.0-gfbf-2023b.eb b/easybuild/easyconfigs/m/multicharge/multicharge-0.3.0-gfbf-2023b.eb
new file mode 100644
index 00000000000..b6f9aad8442
--- /dev/null
+++ b/easybuild/easyconfigs/m/multicharge/multicharge-0.3.0-gfbf-2023b.eb
@@ -0,0 +1,39 @@
+# Author: J. Sassmannshausen (Imperial College London/UK)
+
+easyblock = 'CMakeNinja'
+
+name = 'multicharge'
+version = '0.3.0'
+
+homepage = 'https://github.com/grimme-lab/multicharge'
+description = """Electronegativity equilibration model for atomic partial charges."""
+
+toolchain = {'name': 'gfbf', 'version': '2023b'}
+
+github_account = 'grimme-lab'
+source_urls = [GITHUB_SOURCE]
+sources = ['v%(version)s.tar.gz']
+checksums = ['2fcc1f80871f404f005e9db458ffaec95bb28a19516a0245278cd3175b63a6b2']
+
+builddependencies = [
+ ('CMake', '3.27.6'),
+ ('Ninja', '1.11.1'),
+ ('binutils', '2.40'),
+]
+
+dependencies = [
+ ('mctc-lib', '0.3.1'),
+ ('mstore', '0.3.0'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/multicharge', 'lib/libmulticharge.a'],
+ 'dirs': ['include/%(name)s', 'lib/cmake', 'lib/pkgconfig'],
+}
+
+sanity_check_commands = ["multicharge --help"]
+
+# run suite of tests with ctest
+runtest = True
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/m/multicharge/multicharge-0.3.0-gomkl-2023b.eb b/easybuild/easyconfigs/m/multicharge/multicharge-0.3.0-gomkl-2023b.eb
new file mode 100644
index 00000000000..298e08395e3
--- /dev/null
+++ b/easybuild/easyconfigs/m/multicharge/multicharge-0.3.0-gomkl-2023b.eb
@@ -0,0 +1,39 @@
+# Author: J. Sassmannshausen (Imperial College London/UK)
+
+easyblock = 'CMakeNinja'
+
+name = 'multicharge'
+version = '0.3.0'
+
+homepage = 'https://github.com/grimme-lab/multicharge'
+description = """Electronegativity equilibration model for atomic partial charges."""
+
+toolchain = {'name': 'gomkl', 'version': '2023b'}
+
+github_account = 'grimme-lab'
+source_urls = [GITHUB_SOURCE]
+sources = ['v%(version)s.tar.gz']
+checksums = ['2fcc1f80871f404f005e9db458ffaec95bb28a19516a0245278cd3175b63a6b2']
+
+builddependencies = [
+ ('CMake', '3.27.6'),
+ ('Ninja', '1.11.1'),
+ ('binutils', '2.40'),
+]
+
+dependencies = [
+ ('mctc-lib', '0.3.1'),
+ ('mstore', '0.3.0'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/multicharge', 'lib/libmulticharge.a'],
+ 'dirs': ['include/%(name)s', 'lib/cmake', 'lib/pkgconfig'],
+}
+
+sanity_check_commands = ["multicharge --help"]
+
+# run suite of tests with ctest
+runtest = True
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/m/multiprocess/multiprocess-0.70.16-gfbf-2023b.eb b/easybuild/easyconfigs/m/multiprocess/multiprocess-0.70.16-gfbf-2023b.eb
new file mode 100644
index 00000000000..956b6c8610d
--- /dev/null
+++ b/easybuild/easyconfigs/m/multiprocess/multiprocess-0.70.16-gfbf-2023b.eb
@@ -0,0 +1,24 @@
+easyblock = 'PythonPackage'
+
+name = 'multiprocess'
+version = '0.70.16'
+
+homepage = 'https://github.com/uqfoundation/multiprocess'
+description = "better multiprocessing and multithreading in python"
+
+toolchain = {'name': 'gfbf', 'version': '2023b'}
+
+sources = [SOURCE_TAR_GZ]
+checksums = ['161af703d4652a0e1410be6abccecde4a7ddffd19341be0a7011b94aeb171ac1']
+
+dependencies = [
+ ('Python', '3.11.5'),
+ ('dill', '0.3.8'),
+ ('Arrow', '16.1.0'),
+]
+
+download_dep_fail = True
+use_pip = True
+sanity_pip_check = True
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/n/NAMD/NAMD-3.0-foss-2024a-mpi.eb b/easybuild/easyconfigs/n/NAMD/NAMD-3.0-foss-2024a-mpi.eb
new file mode 100644
index 00000000000..081fb8af634
--- /dev/null
+++ b/easybuild/easyconfigs/n/NAMD/NAMD-3.0-foss-2024a-mpi.eb
@@ -0,0 +1,38 @@
+name = 'NAMD'
+version = '3.0'
+versionsuffix = '-mpi'
+
+homepage = 'https://www.ks.uiuc.edu/Research/namd/'
+description = """NAMD is a parallel molecular dynamics code designed for high-performance simulation of
+ large biomolecular systems."""
+
+toolchain = {'name': 'foss', 'version': '2024a'}
+toolchainopts = {'usempi': True, 'openmp': False, 'pic': True}
+
+source_urls = [
+ 'https://www.ks.uiuc.edu/Research/%(namelower)s/%(version)s/download/946183/',
+ 'https://www.ks.uiuc.edu/Research/%(namelower)s/%(version)s/download/342056/',
+]
+sources = ['NAMD_%(version)s_Source.tar.gz']
+
+patches = ['NAMD-3.0_fix_hwloc_build.patch']
+
+checksums = [
+ '301c64f0f1db860f7336efdb26223ccf66b5ab42bfc9141df8d81ec1e20bf472', # NAMD_3.0_Source.tar.gz
+ '03f7caa4027604e0483a9b149ebb5de310653a2aad99403faf3359ccc0015f02', # NAMD-3.0_fix_hwloc_build.patch
+]
+
+# /bin/csh is required by 'config' script
+builddependencies = [
+ ('tcsh', '6.24.13'),
+ ('Autotools', '20231222'),
+]
+dependencies = [
+ ('Tcl', '8.6.14'),
+]
+
+# Hard to make charm build the mpi version with gcc on POWER, so we don't currently try
+charm_arch = 'mpi-linux-%(arch)s'
+charm_extra_cxxflags = '-fpermissive'
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/n/NAMD/NAMD-3.0_fix_hwloc_build.patch b/easybuild/easyconfigs/n/NAMD/NAMD-3.0_fix_hwloc_build.patch
new file mode 100644
index 00000000000..4b6683cf226
--- /dev/null
+++ b/easybuild/easyconfigs/n/NAMD/NAMD-3.0_fix_hwloc_build.patch
@@ -0,0 +1,54 @@
+# What: Fix hwloc cmake build issue in charm-8.0.0, see https://github.com/charmplusplus/charm/issues/3843
+# This patch is based on the following PR: https://github.com/charmplusplus/charm/pull/3847
+# Author: maxim-masterov (SURF)
+diff -Nru NAMD_3.0_Source.orig/charm-8.0.0/contrib/hwloc/config/hwloc.m4 NAMD_3.0_Source/charm-8.0.0/contrib/hwloc/config/hwloc.m4
+--- NAMD_3.0_Source.orig/charm-8.0.0/contrib/hwloc/config/hwloc.m4 2024-10-02 14:22:40.779651616 +0200
++++ NAMD_3.0_Source/charm-8.0.0/contrib/hwloc/config/hwloc.m4 2024-10-23 17:15:35.921883766 +0200
+@@ -140,28 +140,43 @@
+ AC_CONFIG_HEADERS(hwloc_config_prefix[include/private/autogen/config.h])
+ AC_CONFIG_HEADERS(hwloc_config_prefix[include/hwloc/autogen/config.h])
+
++
+ # What prefix are we using?
+- AC_MSG_CHECKING([for hwloc symbol prefix])
++ AH_VERBATIM([prefix_details_ifndef],
++ [ /* hwloc details should only be set once */
++ #ifndef HWLOC_SYM_DETAILS
++ #define HWLOC_SYM_DETAILS
++ ])
++ AC_MSG_CHECKING([for hwloc symbol prefix])
+ AS_IF([test "$hwloc_symbol_prefix_value" = ""],
+ [AS_IF([test "$with_hwloc_symbol_prefix" = ""],
+ [hwloc_symbol_prefix_value=hwloc_],
+ [hwloc_symbol_prefix_value=$with_hwloc_symbol_prefix])])
++
++
+ AC_DEFINE_UNQUOTED(HWLOC_SYM_PREFIX, [$hwloc_symbol_prefix_value],
+ [The hwloc symbol prefix])
+ # Ensure to [] escape the whole next line so that we can get the
+ # proper tr tokens
+ [hwloc_symbol_prefix_value_caps="`echo $hwloc_symbol_prefix_value | tr '[:lower:]' '[:upper:]'`"]
+- AC_DEFINE_UNQUOTED(HWLOC_SYM_PREFIX_CAPS, [$hwloc_symbol_prefix_value_caps],
+- [The hwloc symbol prefix in all caps])
++ AC_CHECK_DEFINE([HWLOC_SYM_PREFIX_CAPS],[0],AC_DEFINE_UNQUOTED(HWLOC_SYM_PREFIX_CAPS, [$hwloc_symbol_prefix_value_caps],
++ [The hwloc symbol prefix in all caps]))
+ AC_MSG_RESULT([$hwloc_symbol_prefix_value])
+
+- # Give an easy #define to know if we need to transform all the
++
++ # Give an easy #define to know if we need to transform all the
+ # hwloc names
+ AH_TEMPLATE([HWLOC_SYM_TRANSFORM], [Whether we need to re-define all the hwloc public symbols or not])
+ AS_IF([test "$hwloc_symbol_prefix_value" = "hwloc_"],
+ [AC_DEFINE([HWLOC_SYM_TRANSFORM], [0])],
+ [AC_DEFINE([HWLOC_SYM_TRANSFORM], [1])])
+
++ AH_VERBATIM([prefix_details_endif],
++ [ /* HWLOC_DETAILS_SET */
++ #endif
++ ])
++
++
+ # Disabled for Charm++ due to https://github.com/charmplusplus/charm/issues/2606
+ # hwloc 2.0+ requires a C99 compliant compiler
+ # AC_PROG_CC_C99 obsolete, detected inside AC_PROG_CC, since autoconf 2.70
diff --git a/easybuild/easyconfigs/n/NCCL/NCCL-2.18.3-GCCcore-12.3.0-CUDA-12.1.1.eb b/easybuild/easyconfigs/n/NCCL/NCCL-2.18.3-GCCcore-12.3.0-CUDA-12.1.1.eb
index c85b7a97e48..569d09f9859 100644
--- a/easybuild/easyconfigs/n/NCCL/NCCL-2.18.3-GCCcore-12.3.0-CUDA-12.1.1.eb
+++ b/easybuild/easyconfigs/n/NCCL/NCCL-2.18.3-GCCcore-12.3.0-CUDA-12.1.1.eb
@@ -11,11 +11,15 @@ toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
github_account = 'NVIDIA'
source_urls = [GITHUB_SOURCE]
sources = ['v%(version)s-1.tar.gz']
-patches = ['NCCL-2.16.2_fix-cpuid.patch']
+patches = [
+ 'NCCL-2.16.2_fix-cpuid.patch',
+ 'NCCL-2.18.3_fix-cudaMemcpyAsync.patch',
+]
checksums = [
('6477d83c9edbb34a0ebce6d751a1b32962bc6415d75d04972b676c6894ceaef9',
'b4f5d7d9eea2c12e32e7a06fe138b2cfc75969c6d5c473aa6f819a792db2fc96'),
{'NCCL-2.16.2_fix-cpuid.patch': '0459ecadcd32b2a7a000a2ce4f675afba908b2c0afabafde585330ff4f83e277'},
+ {'NCCL-2.18.3_fix-cudaMemcpyAsync.patch': '7dc8d0d1b78e4f8acefbc400860f47432ef67c225b50d73c732999c23483de90'},
]
builddependencies = [('binutils', '2.40')]
diff --git a/easybuild/easyconfigs/n/NCCL/NCCL-2.18.3_fix-cudaMemcpyAsync.patch b/easybuild/easyconfigs/n/NCCL/NCCL-2.18.3_fix-cudaMemcpyAsync.patch
new file mode 100644
index 00000000000..68542656733
--- /dev/null
+++ b/easybuild/easyconfigs/n/NCCL/NCCL-2.18.3_fix-cudaMemcpyAsync.patch
@@ -0,0 +1,174 @@
+Backported from (original message attached below):
+https://github.com/NVIDIA/nccl/commit/4365458757e4107ecbf629b2fd6e0e19a5d237c2
+
+From: Kaiming Ouyang
+Date: Wed, 20 Sep 2023 05:51:14 -0700
+Subject: [PATCH] Fix cudaMemcpyAsync bug
+
+We are trying to use the copy result of first cudaMemcpyAsync in the
+second cudaMemcpyAsync without sync in between. This patch fixes it
+by allocating a CPU side array to cache device side addr so that we
+can avoid this consecutive cuda mem copy.
+
+Fixes #957
+---
+ src/channel.cc | 12 ++++++++++++
+ src/include/comm.h | 2 ++
+ src/init.cc | 2 +-
+ src/transport.cc | 8 ++------
+ src/transport/nvls.cc | 10 ++++------
+ 5 files changed, 21 insertions(+), 13 deletions(-)
+
+diff --git a/src/channel.cc b/src/channel.cc
+index 3edcc2f..245dfd5 100644
+--- a/src/channel.cc
++++ b/src/channel.cc
+@@ -42,9 +42,11 @@ ncclResult_t initChannel(struct ncclComm* comm, int channelId) {
+ /* channel->devPeers is not shared, so just free it when calling commFree() */
+ NCCLCHECK(ncclCudaCallocAsync(&channel->devPeers, nPeers, sharedRes->deviceStream.cudaStream));
+ ncclCommPushCudaFree(comm, channel->devPeers);
++ NCCLCHECK(ncclCalloc(&channel->devPeersHostPtr, nPeers));
+ for (int r = 0; r < nRanks; r++) {
+ uintptr_t addr = (uintptr_t)(comm->sharedRes->devPeers[channelId] + comm->topParentRanks[r]);
+ NCCLCHECK(ncclCudaMemcpyAsync((uintptr_t*)(channel->devPeers + r), (uintptr_t*)&addr, 1, sharedRes->deviceStream.cudaStream));
++ channel->devPeersHostPtr[r] = (struct ncclDevChannelPeer*)addr;
+ }
+ }
+
+@@ -52,6 +54,8 @@ ncclResult_t initChannel(struct ncclComm* comm, int channelId) {
+ NCCLCHECK(ncclCudaCallocAsync(&channel->devRingUserRanks, nRanks, sharedRes->deviceStream.cudaStream));
+ ncclCommPushCudaFree(comm, channel->devRingUserRanks);
+
++ /* guarantee addr has been copied into channel->devPeers */
++ NCCLCHECK(ncclStrongStreamSynchronize(&sharedRes->deviceStream));
+ NCCLCHECK(ncclStrongStreamRelease(ncclCudaGraphNone(), &sharedRes->deviceStream));
+
+ return ncclSuccess;
+@@ -77,6 +81,7 @@ ncclResult_t initNvlsChannel(struct ncclComm* comm, int channelId, struct ncclCo
+ uintptr_t addr = (uintptr_t)(parent->channels[channelId].nvlsDevPeers + tr);
+ channel->peers[comm->nRanks + 1 + r] = parent->channels[channelId].nvlsPeers + tr;
+ NCCLCHECK(ncclCudaMemcpyAsync((uintptr_t*)(channel->devPeers + comm->nRanks + 1 + r), (uintptr_t*)&addr, 1, sharedRes->deviceStream.cudaStream));
++ channel->devPeersHostPtr[comm->nRanks + 1 + r] = (struct ncclDevChannelPeer*)addr;
+ ncclAtomicRefCountIncrement(&parent->channels[channelId].nvlsPeers[tr].refCount);
+ }
+ } else {
+@@ -86,10 +91,12 @@ ncclResult_t initNvlsChannel(struct ncclComm* comm, int channelId, struct ncclCo
+ uintptr_t addr = (uintptr_t)(channel->nvlsDevPeers + r);
+ channel->peers[comm->nRanks + 1 + r] = channel->nvlsPeers + r;
+ NCCLCHECK(ncclCudaMemcpyAsync((uintptr_t*)(channel->devPeers + comm->nRanks + 1 + r), (uintptr_t*)&addr, 1, sharedRes->deviceStream.cudaStream));
++ channel->devPeersHostPtr[comm->nRanks + 1 + r] = (struct ncclDevChannelPeer*)addr;
+ ncclAtomicRefCountIncrement(&channel->nvlsPeers[r].refCount);
+ }
+ }
+
++ NCCLCHECK(ncclStrongStreamSynchronize(&sharedRes->deviceStream));
+ NCCLCHECK(ncclStrongStreamRelease(ncclCudaGraphNone(), &sharedRes->deviceStream));
+
+ return ncclSuccess;
+@@ -114,6 +121,7 @@ ncclResult_t initCollnetChannel(struct ncclComm* comm, int channelId, struct ncc
+ addr = (uintptr_t)parent->channels[channelId].collnetDevPeers;
+ channel->peers[comm->nRanks] = parent->channels[channelId].collnetPeers;
+ NCCLCHECK(ncclCudaMemcpyAsync((uintptr_t*)(channel->devPeers + comm->nRanks), (uintptr_t*)&addr, 1, sharedRes->deviceStream.cudaStream));
++ channel->devPeersHostPtr[comm->nRanks] = (struct ncclDevChannelPeer*)addr;
+ ncclAtomicRefCountIncrement(&parent->channels[channelId].collnetPeers->refCount);
+ } else {
+ NCCLCHECK(ncclCalloc(&channel->collnetPeers, 1));
+@@ -121,9 +129,11 @@ ncclResult_t initCollnetChannel(struct ncclComm* comm, int channelId, struct ncc
+ addr = (uintptr_t)channel->collnetDevPeers;
+ channel->peers[comm->nRanks] = channel->collnetPeers;
+ NCCLCHECK(ncclCudaMemcpyAsync((uintptr_t*)(channel->devPeers + comm->nRanks), (uintptr_t*)&addr, 1, sharedRes->deviceStream.cudaStream));
++ channel->devPeersHostPtr[comm->nRanks] = (struct ncclDevChannelPeer*)addr;
+ ncclAtomicRefCountIncrement(&channel->collnetPeers->refCount);
+ }
+
++ NCCLCHECK(ncclStrongStreamSynchronize(&sharedRes->deviceStream));
+ NCCLCHECK(ncclStrongStreamRelease(ncclCudaGraphNone(), &sharedRes->deviceStream));
+
+ return ncclSuccess;
+@@ -156,5 +166,7 @@ ncclResult_t freeChannel(struct ncclChannel* channel, int nRanks, int collnetNRa
+ }
+ }
+ }
++
++ free(channel->devPeersHostPtr);
+ return ncclSuccess;
+ }
+diff --git a/src/include/comm.h b/src/include/comm.h
+index e79bf54..8986f93 100644
+--- a/src/include/comm.h
++++ b/src/include/comm.h
+@@ -124,6 +124,8 @@ struct ncclSharedResources {
+ struct ncclChannel {
+ struct ncclChannelPeer** peers;
+ struct ncclDevChannelPeer** devPeers;
++ /* devPeer pointer array used for host side access */
++ struct ncclDevChannelPeer** devPeersHostPtr;
+ struct ncclRing ring;
+ int* devRingUserRanks;
+ struct ncclTree tree;
+diff --git a/src/init.cc b/src/init.cc
+index 1ea1d7e..309ce10 100644
+--- a/src/init.cc
++++ b/src/init.cc
+@@ -437,7 +437,7 @@ static ncclResult_t devCommSetup(ncclComm_t comm) {
+
+ NCCLCHECKGOTO(ncclCudaMemcpyAsync(devCommAndChans, &tmpCommAndChans, 1, comm->sharedRes->deviceStream.cudaStream), ret, fail);
+ exit:
+- CUDACHECK(cudaStreamSynchronize(comm->sharedRes->deviceStream.cudaStream));
++ NCCLCHECK(ncclStrongStreamSynchronize(&comm->sharedRes->deviceStream));
+ NCCLCHECK(ncclStrongStreamRelease(ncclCudaGraphNone(), &comm->sharedRes->deviceStream));
+ return ret;
+ fail:
+diff --git a/src/transport.cc b/src/transport.cc
+index f4b8a2a..9817beb 100644
+--- a/src/transport.cc
++++ b/src/transport.cc
+@@ -147,11 +147,9 @@ ncclResult_t ncclTransportP2pSetup(struct ncclComm* comm, struct ncclTopoGraph*
+ if (conn->connected == 0) {
+ NCCLCHECKGOTO(conn->transportComm->connect(comm, sendData[i] + sendDataOffset++, 1, comm->rank, conn), ret, fail);
+ if (ret == ncclSuccess) {
+- struct ncclDevChannelPeer* addr;
+ conn->connected = 1;
+ /* comm->channels[c].devPeers[sendPeer]->send[connIndex] is a device memory access. */
+- CUDACHECKGOTO(cudaMemcpyAsync(&addr, &comm->channels[c].devPeers[sendPeer], sizeof(struct ncclDevChannelPeer*), cudaMemcpyDeviceToHost, comm->sharedRes->hostStream.cudaStream), ret, fail);
+- CUDACHECKGOTO(cudaMemcpyAsync(&addr->send[connIndex], &conn->conn, sizeof(struct ncclConnInfo), cudaMemcpyHostToDevice, comm->sharedRes->hostStream.cudaStream), ret, fail);
++ CUDACHECKGOTO(cudaMemcpyAsync(&comm->channels[c].devPeersHostPtr[sendPeer]->send[connIndex], &conn->conn, sizeof(struct ncclConnInfo), cudaMemcpyHostToDevice, comm->sharedRes->hostStream.cudaStream), ret, fail);
+ } else if (ret == ncclInProgress) {
+ allChannelsConnected = false;
+ }
+@@ -167,11 +165,9 @@ ncclResult_t ncclTransportP2pSetup(struct ncclComm* comm, struct ncclTopoGraph*
+ if (conn->connected == 0) {
+ NCCLCHECKGOTO(conn->transportComm->connect(comm, recvData[i] + recvDataOffset++, 1, comm->rank, conn), ret, fail);
+ if (ret == ncclSuccess) {
+- struct ncclDevChannelPeer* addr;
+ conn->connected = 1;
+ /* comm->channels[c].devPeers[recvPeer]->recv[connIndex] is a device memory access. */
+- CUDACHECKGOTO(cudaMemcpyAsync(&addr, &comm->channels[c].devPeers[recvPeer], sizeof(struct ncclDevChannelPeer*), cudaMemcpyDeviceToHost, comm->sharedRes->hostStream.cudaStream), ret, fail);
+- CUDACHECKGOTO(cudaMemcpyAsync(&addr->recv[connIndex], &conn->conn, sizeof(struct ncclConnInfo), cudaMemcpyHostToDevice, comm->sharedRes->hostStream.cudaStream), ret, fail);
++ CUDACHECKGOTO(cudaMemcpyAsync(&comm->channels[c].devPeersHostPtr[recvPeer]->recv[connIndex], &conn->conn, sizeof(struct ncclConnInfo), cudaMemcpyHostToDevice, comm->sharedRes->hostStream.cudaStream), ret, fail);
+ } else if (ret == ncclInProgress) {
+ allChannelsConnected = false;
+ }
+diff --git a/src/transport/nvls.cc b/src/transport/nvls.cc
+index 633cb04..07be99d 100644
+--- a/src/transport/nvls.cc
++++ b/src/transport/nvls.cc
+@@ -359,12 +359,10 @@ ncclResult_t ncclNvlsSetup(struct ncclComm* comm, struct ncclComm* parent) {
+ peer->send[0].conn.tail = (uint64_t*)(mem + buffSize + memSize / 2);
+ peer->send[0].conn.flags |= NCCL_NVLS_MIN_POLL;
+
+- struct ncclDevChannelPeer* addr;
+- CUDACHECKGOTO(cudaMemcpyAsync(&addr, comm->channels[c].devPeers + nvlsPeer, sizeof(struct ncclDevChannelPeer*), cudaMemcpyDeviceToHost, comm->sharedRes->hostStream.cudaStream), res, cleanup);
+- CUDACHECKGOTO(cudaMemcpyAsync(&addr->send[0], &peer->send[0].conn, sizeof(struct ncclConnInfo), cudaMemcpyHostToDevice, comm->sharedRes->hostStream.cudaStream), res, cleanup);
+- CUDACHECKGOTO(cudaMemcpyAsync(&addr->recv[0], &peer->recv[0].conn, sizeof(struct ncclConnInfo), cudaMemcpyHostToDevice, comm->sharedRes->hostStream.cudaStream), res, cleanup);
+- CUDACHECKGOTO(cudaMemcpyAsync(&addr->send[1], &peer->send[1].conn, sizeof(struct ncclConnInfo), cudaMemcpyHostToDevice, comm->sharedRes->hostStream.cudaStream), res, cleanup);
+- CUDACHECKGOTO(cudaMemcpyAsync(&addr->recv[1], &peer->recv[1].conn, sizeof(struct ncclConnInfo), cudaMemcpyHostToDevice, comm->sharedRes->hostStream.cudaStream), res, cleanup);
++ CUDACHECKGOTO(cudaMemcpyAsync(&comm->channels[c].devPeersHostPtr[nvlsPeer]->send[0], &peer->send[0].conn, sizeof(struct ncclConnInfo), cudaMemcpyHostToDevice, comm->sharedRes->hostStream.cudaStream), res, cleanup);
++ CUDACHECKGOTO(cudaMemcpyAsync(&comm->channels[c].devPeersHostPtr[nvlsPeer]->recv[0], &peer->recv[0].conn, sizeof(struct ncclConnInfo), cudaMemcpyHostToDevice, comm->sharedRes->hostStream.cudaStream), res, cleanup);
++ CUDACHECKGOTO(cudaMemcpyAsync(&comm->channels[c].devPeersHostPtr[nvlsPeer]->send[1], &peer->send[1].conn, sizeof(struct ncclConnInfo), cudaMemcpyHostToDevice, comm->sharedRes->hostStream.cudaStream), res, cleanup);
++ CUDACHECKGOTO(cudaMemcpyAsync(&comm->channels[c].devPeersHostPtr[nvlsPeer]->recv[1], &peer->recv[1].conn, sizeof(struct ncclConnInfo), cudaMemcpyHostToDevice, comm->sharedRes->hostStream.cudaStream), res, cleanup);
+
+ /*INFO(NCCL_INIT|NCCL_NVLS, "Peer %d Channel %d MC buff %p/%p UC Buff %p/%p",
+ nvlsPeer, c,
+--
+2.45.2
diff --git a/easybuild/easyconfigs/n/NCCL/NCCL-2.22.3-GCCcore-13.3.0-CUDA-12.6.0.eb b/easybuild/easyconfigs/n/NCCL/NCCL-2.22.3-GCCcore-13.3.0-CUDA-12.6.0.eb
new file mode 100644
index 00000000000..0534e538faa
--- /dev/null
+++ b/easybuild/easyconfigs/n/NCCL/NCCL-2.22.3-GCCcore-13.3.0-CUDA-12.6.0.eb
@@ -0,0 +1,26 @@
+name = 'NCCL'
+version = '2.22.3'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://developer.nvidia.com/nccl'
+description = """The NVIDIA Collective Communications Library (NCCL) implements multi-GPU and multi-node collective
+communication primitives that are performance optimized for NVIDIA GPUs."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+github_account = 'NVIDIA'
+source_urls = [GITHUB_SOURCE]
+sources = ['v%(version)s-1.tar.gz']
+checksums = ['45151629a9494460e73375281e8b0fe379141528879301899ece9b776faca024']
+
+builddependencies = [('binutils', '2.42')]
+
+dependencies = [
+ ('CUDA', '12.6.0', '', SYSTEM),
+ ('UCX-CUDA', '1.16.0', versionsuffix),
+]
+
+# default CUDA compute capabilities to use (override via --cuda-compute-capabilities)
+cuda_compute_capabilities = ['5.0', '6.0', '7.0', '7.5', '8.0', '8.6', '9.0']
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/n/NCIPLOT/NCIPLOT-4.2-20221021-intel-compilers-2022.1.0.eb b/easybuild/easyconfigs/n/NCIPLOT/NCIPLOT-4.2-20221021-intel-compilers-2022.1.0.eb
new file mode 100644
index 00000000000..e5656e89aff
--- /dev/null
+++ b/easybuild/easyconfigs/n/NCIPLOT/NCIPLOT-4.2-20221021-intel-compilers-2022.1.0.eb
@@ -0,0 +1,50 @@
+easyblock = 'MakeCp'
+
+name = 'NCIPLOT'
+_formal_version = '4.2'
+version = '%s-20221021' % _formal_version
+_commit = '800f1647a2a46c82dbdb5e1ae58086cdbbd90dc3'
+
+homepage = 'https://www.lct.jussieu.fr/pagesperso/contrera/index-nci.html'
+description = """ NCIPLOT is a program for revealing non covalent interactions
+ based on the reduced density gradient. """
+
+toolchain = {'name': 'intel-compilers', 'version': '2022.1.0'}
+toolchainopts = {'openmp': True}
+
+github_account = 'juliacontrerasgarcia'
+source_urls = [GITHUB_LOWER_SOURCE]
+sources = ['%s.tar.gz' % _commit]
+checksums = ['087ec61988d53e472542b91a5237680b65f2c4f85633d7db12298fb770802082']
+
+start_dir = 'src_%%(namelower)s_%s' % _formal_version
+
+prebuildopts = "sed -i 's/include Makefile.inc//;s/nciplot: $(OBJS) $(LIBS)/nciplot: $(OBJS)/g' Makefile && "
+prebuildopts += "make clean && "
+buildopts = 'LIBS="$LIBS"'
+
+# test scripts are still hardcoded for old version 4.0
+pretestopts = "cd %(builddir)s/%(namelower)s-*/tests && "
+pretestopts += r"find . -name runtests.sh -exec sed -i 's/nciplot_4.0/nciplot_%s/g' {} \; && " % _formal_version
+pretestopts += "export OMP_NUM_THREADS=%(parallel)s && "
+test_cmd = "bash"
+runtest = "alltests.sh"
+
+files_to_copy = [
+ 'dat',
+ (['nciplot'], 'bin'),
+ (['LICENSE', 'README', 'NCIPLOT_MANUAL.pdf'], 'share'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/nciplot'],
+ 'dirs': ['dat', 'share'],
+}
+
+modextrapaths = {'NCIPLOT_HOME': ''}
+
+modloadmsg = """
+Set environment variable OMP_NUM_THREADS equal to the number of available cores before running this program.
+"""
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/n/NCO/NCO-5.2.9-foss-2024a.eb b/easybuild/easyconfigs/n/NCO/NCO-5.2.9-foss-2024a.eb
new file mode 100644
index 00000000000..cf83d365785
--- /dev/null
+++ b/easybuild/easyconfigs/n/NCO/NCO-5.2.9-foss-2024a.eb
@@ -0,0 +1,44 @@
+easyblock = 'ConfigureMake'
+
+name = 'NCO'
+version = '5.2.9'
+
+homepage = "https://github.com/nco/nco"
+description = """The NCO toolkit manipulates and analyzes data stored in netCDF-accessible formats,
+including DAP, HDF4, and HDF5."""
+
+toolchain = {'name': 'foss', 'version': '2024a'}
+
+source_urls = ['https://github.com/nco/nco/archive/']
+sources = ['%(version)s.tar.gz']
+checksums = ['6245886e2a18a4821b0fb768cf9906de09aeb47c303462c8e85f0d1a4f34956d']
+
+builddependencies = [
+ ('Bison', '3.8.2'),
+ ('flex', '2.6.4'),
+]
+
+dependencies = [
+ ('UDUNITS', '2.2.28'),
+ ('expat', '2.6.2'),
+ ('ANTLR', '2.7.7', '-Java-21.0.2'),
+ ('libdap', '3.21.0-131'),
+ ('GSL', '2.8'),
+ ('netCDF', '4.9.2'),
+ ('ESMF', '8.7.0'), # ncremap needs ESMF_RegridWeightGen
+]
+
+configopts = "--enable-nco_cplusplus"
+
+sanity_check_paths = {
+ 'files': ['bin/nc%s' % x for x in ('ap2', 'atted', 'bo', 'diff', 'ea', 'ecat', 'es',
+ 'flint', 'ks', 'pdq', 'ra', 'rcat', 'rename', 'wa')] +
+ ['lib/libnco.a', 'lib/libnco.%s' % SHLIB_EXT, 'lib/libnco_c++.a', 'lib/libnco_c++.%s' % SHLIB_EXT],
+ 'dirs': ['include'],
+}
+sanity_check_commands = [
+ "ncks -O -7 --cnk_dmn time,10 "
+ "%(builddir)s/%(namelower)s-%(version)s/data/in.nc %(builddir)s/%(namelower)s-%(version)s/data/in4.cdl"
+]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/n/NECAT/NECAT-0.0.1-GCCcore-12.3.0.eb b/easybuild/easyconfigs/n/NECAT/NECAT-0.0.1-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..15c35f4e31a
--- /dev/null
+++ b/easybuild/easyconfigs/n/NECAT/NECAT-0.0.1-GCCcore-12.3.0.eb
@@ -0,0 +1,36 @@
+easyblock = 'MakeCp'
+
+name = 'NECAT'
+version = '0.0.1'
+_update = '20200803'
+
+homepage = 'https://github.com/xiaochuanle/NECAT'
+description = "NECAT is an error correction and de-novo assembly tool for Nanopore long noisy reads."
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = ['https://github.com/xiaochuanle/NECAT/archive/']
+sources = ['v%%(version)s_update%s.tar.gz' % _update]
+checksums = ['5ddd147b5be6b1fac2f6c10b18c9b587838f2304d2584087c4ed6f628eced06c']
+
+builddependencies = [('binutils', '2.40')]
+
+dependencies = [
+ ('Perl', '5.36.1'),
+]
+
+start_dir = 'src'
+
+files_to_copy = [
+ (['Linux-amd64/bin'], ''),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in ['necat.sh', 'oc2cns', 'oc2elr', 'oc2etr',
+ 'oc2lcr', 'pigz', 'pm4']],
+ 'dirs': [],
+}
+
+sanity_check_commands = ['%(namelower)s.pl --help']
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/n/NECAT/NECAT-0.0.1-GCCcore-13.2.0.eb b/easybuild/easyconfigs/n/NECAT/NECAT-0.0.1-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..a245da7c6bc
--- /dev/null
+++ b/easybuild/easyconfigs/n/NECAT/NECAT-0.0.1-GCCcore-13.2.0.eb
@@ -0,0 +1,40 @@
+easyblock = 'MakeCp'
+
+name = 'NECAT'
+version = '0.0.1'
+_update = '20200803'
+
+homepage = 'https://github.com/xiaochuanle/NECAT'
+description = "NECAT is an error correction and de-novo assembly tool for Nanopore long noisy reads."
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+source_urls = ['https://github.com/xiaochuanle/NECAT/archive/']
+sources = ['v%%(version)s_update%s.tar.gz' % _update]
+patches = ['%(name)s-0.0.1_add-cstdint-include.patch']
+checksums = [
+ {'v0.0.1_update20200803.tar.gz': '5ddd147b5be6b1fac2f6c10b18c9b587838f2304d2584087c4ed6f628eced06c'},
+ {'NECAT-0.0.1_add-cstdint-include.patch': 'a50d4e39e6df580d0f5e67d81c9b1569315b564bfd0f74eda7d228c2f4890171'},
+]
+
+builddependencies = [('binutils', '2.40')]
+
+dependencies = [
+ ('Perl', '5.38.0'),
+]
+
+start_dir = 'src'
+
+files_to_copy = [
+ (['Linux-amd64/bin'], ''),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in ['necat.sh', 'oc2cns', 'oc2elr', 'oc2etr',
+ 'oc2lcr', 'pigz', 'pm4']],
+ 'dirs': [],
+}
+
+sanity_check_commands = ['%(namelower)s.pl --help']
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/n/NECAT/NECAT-0.0.1-foss-2023a.eb b/easybuild/easyconfigs/n/NECAT/NECAT-0.0.1-foss-2023a.eb
new file mode 100644
index 00000000000..dbc35f62054
--- /dev/null
+++ b/easybuild/easyconfigs/n/NECAT/NECAT-0.0.1-foss-2023a.eb
@@ -0,0 +1,32 @@
+easyblock = 'MakeCp'
+
+name = 'NECAT'
+version = '0.0.1'
+
+homepage = 'https://github.com/xiaochuanle/NECAT'
+description = """NECAT is an error correction and de-novo assembly tool for Nanopore long noisy reads.)."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+source_urls = ['https://github.com/xiaochuanle/NECAT/archive/']
+sources = ['v%(version)s_update20200803.tar.gz']
+checksums = ['5ddd147b5be6b1fac2f6c10b18c9b587838f2304d2584087c4ed6f628eced06c']
+
+builddependencies = [('binutils', '2.40')]
+
+dependencies = [('Perl', '5.36.1')]
+
+start_dir = 'src'
+
+files_to_copy = [
+ (['../Linux-amd64/bin/*'], 'bin'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/%(namelower)s.pl'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ['%(namelower)s.pl --help']
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/n/NECAT/NECAT-0.0.1_add-cstdint-include.patch b/easybuild/easyconfigs/n/NECAT/NECAT-0.0.1_add-cstdint-include.patch
new file mode 100644
index 00000000000..a845baae899
--- /dev/null
+++ b/easybuild/easyconfigs/n/NECAT/NECAT-0.0.1_add-cstdint-include.patch
@@ -0,0 +1,14 @@
+Author: Jasper Grimm
+Add include for gcc >= 13 support
+
+diff -Nru NECAT-0.0.1_update20200803.orig/src/fsa/simple_align.hpp NECAT-0.0.1_update20200803/src/fsa/simple_align.hpp
+--- NECAT-0.0.1_update20200803.orig/src/fsa/simple_align.hpp 2024-10-09 15:51:42.877779089 +0100
++++ NECAT-0.0.1_update20200803/src/fsa/simple_align.hpp 2024-10-09 15:52:17.356716279 +0100
+@@ -2,6 +2,7 @@
+ #define FSA_ALIGN_SIMPLE_ALIGN_HPP
+
+ #include
++#include
+ #include
+ #include
+ #include
diff --git a/easybuild/easyconfigs/n/NECI/NECI-20230620-foss-2023a.eb b/easybuild/easyconfigs/n/NECI/NECI-20230620-foss-2023a.eb
new file mode 100644
index 00000000000..09dce5c1aab
--- /dev/null
+++ b/easybuild/easyconfigs/n/NECI/NECI-20230620-foss-2023a.eb
@@ -0,0 +1,52 @@
+easyblock = 'CMakeMakeCp'
+name = 'NECI'
+version = '20230620'
+_commit = '558e88c5ae6c30d0505a9badbc69111be0866ba1'
+
+homepage = 'https://github.com/ghb24/NECI_STABLE'
+description = """Standalone NECI codebase designed for FCIQMC and other stochastic quantum
+chemistry methods."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'usempi': True}
+
+sources = [{
+ 'git_config': {
+ 'url': 'https://github.com/ghb24',
+ 'repo_name': 'NECI_STABLE',
+ 'recursive': True,
+ 'commit': _commit,
+ },
+ 'filename': SOURCE_TAR_GZ,
+}]
+patches = ['NECI-20230620_segfault.patch']
+checksums = [
+ None,
+ 'f0b5f62e115a1e07d6b90bc66ee9957a5f5d686bef65beba9c2be4bd8f29f0e4',
+]
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+]
+
+dependencies = [
+ ('HDF5', '1.14.0'),
+]
+
+# enable support for HDF5
+configopts = "-DENABLE_HDF5=ON"
+
+test_cmd = 'ctest'
+runtest = '-j'
+
+files_to_copy = ['bin', 'lib', (['modules'], 'include')]
+
+_binaries = ['dneci', 'kdneci', 'kmneci', 'kneci', 'mneci', 'neci']
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in _binaries] + ['lib/lib%s.a' % x for x in _binaries],
+ 'dirs': ['include'],
+}
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/n/NECI/NECI-20230620_segfault.patch b/easybuild/easyconfigs/n/NECI/NECI-20230620_segfault.patch
new file mode 100644
index 00000000000..0a63b605dd3
--- /dev/null
+++ b/easybuild/easyconfigs/n/NECI/NECI-20230620_segfault.patch
@@ -0,0 +1,21 @@
+Fixes SEGFAULT error in tests.
+See https://github.com/ghb24/NECI_STABLE/issues/18
+Author: Petr Král (INUITS)
+--- unit_tests/back_spawn_excit_gen/test_back_spawn_excit_gen.F90.orig 2023-06-20 10:15:17.000000000 +0200
++++ unit_tests/back_spawn_excit_gen/test_back_spawn_excit_gen.F90 2024-11-21 14:58:46.602604509 +0100
+@@ -64,6 +64,7 @@
+ nmaxy = 2
+ nmaxz = 2
+ allocate(KPointToBasisFn(-nmaxx:nmaxx, -nmaxy:nmaxy, -nmaxz:nmaxz, 2))
++ KPointToBasisFn = -1
+ tOrbECutoff = .false.
+
+ allocate(projedet(nel,1)); projedet(:,1) = [1,2]
+@@ -403,6 +404,7 @@
+ tOrbECutoff = .false.
+ niftot = 1
+ allocate(KPointToBasisFn(-nmaxx:nmaxx, -nmaxy:nmaxy, -nmaxz:nmaxz, 2))
++ KPointToBasisFn = -1
+
+ t_back_spawn_flex = .true.
+ occ_virt_level = 0
diff --git a/easybuild/easyconfigs/n/NLopt/NLopt-2.7.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/n/NLopt/NLopt-2.7.1-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..b9bb438dc94
--- /dev/null
+++ b/easybuild/easyconfigs/n/NLopt/NLopt-2.7.1-GCCcore-13.3.0.eb
@@ -0,0 +1,33 @@
+easyblock = 'CMakeMake'
+
+name = 'NLopt'
+version = '2.7.1'
+
+homepage = 'http://ab-initio.mit.edu/wiki/index.php/NLopt'
+description = """ NLopt is a free/open-source library for nonlinear optimization,
+ providing a common interface for a number of different free optimization routines
+ available online as well as original implementations of various other algorithms. """
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/stevengj/nlopt/archive']
+sources = ['v%(version)s.tar.gz']
+checksums = ['db88232fa5cef0ff6e39943fc63ab6074208831dc0031cf1545f6ecd31ae2a1a']
+
+builddependencies = [
+ ('CMake', '3.29.3'),
+ ('binutils', '2.42'),
+]
+
+configopts = [
+ '-DBUILD_SHARED_LIBS=ON',
+ '-DBUILD_SHARED_LIBS=OFF'
+]
+
+sanity_check_paths = {
+ 'files': ['lib/libnlopt.a', 'lib/libnlopt.%s' % SHLIB_EXT, 'include/nlopt.h'],
+ 'dirs': ['lib/pkgconfig'],
+}
+
+moduleclass = 'numlib'
diff --git a/easybuild/easyconfigs/n/NSPR/NSPR-4.35-GCCcore-13.3.0.eb b/easybuild/easyconfigs/n/NSPR/NSPR-4.35-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..9157abca1c4
--- /dev/null
+++ b/easybuild/easyconfigs/n/NSPR/NSPR-4.35-GCCcore-13.3.0.eb
@@ -0,0 +1,33 @@
+easyblock = 'ConfigureMake'
+
+name = 'NSPR'
+version = '4.35'
+
+homepage = 'https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSPR'
+description = """Netscape Portable Runtime (NSPR) provides a platform-neutral API for system level
+ and libc-like functions."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://ftp.mozilla.org/pub/%(namelower)s/releases/v%(version)s/src/']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['7ea3297ea5969b5d25a5dd8d47f2443cda88e9ee746301f6e1e1426f8a6abc8f']
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+
+configopts = "--disable-debug --enable-optimize --enable-64bit"
+
+
+sanity_check_paths = {
+ 'files': ['bin/nspr-config', 'lib/libnspr%(version_major)s.a', 'lib/libnspr%%(version_major)s.%s' % SHLIB_EXT,
+ 'lib/libplc%(version_major)s.a', 'lib/libplc%%(version_major)s.%s' % SHLIB_EXT,
+ 'lib/libplds%(version_major)s.a', 'lib/libplds%%(version_major)s.%s' % SHLIB_EXT,
+ 'lib/pkgconfig/%(namelower)s.pc'],
+ 'dirs': ['include/%(namelower)s'],
+}
+
+sanity_check_commands = ['%(namelower)s-config --version']
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/n/NSS/NSS-3.104-GCCcore-13.3.0.eb b/easybuild/easyconfigs/n/NSS/NSS-3.104-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..fb301be49d5
--- /dev/null
+++ b/easybuild/easyconfigs/n/NSS/NSS-3.104-GCCcore-13.3.0.eb
@@ -0,0 +1,64 @@
+easyblock = 'MakeCp'
+
+name = 'NSS'
+version = '3.104'
+
+homepage = 'https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS'
+description = """Network Security Services (NSS) is a set of libraries designed to support cross-platform development
+ of security-enabled client and server applications."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://ftp.mozilla.org/pub/security/nss/releases/NSS_%s_RTM/src/' % version.replace('.', '_')]
+sources = [SOURCELOWER_TAR_GZ]
+patches = [
+ '%(name)s-3.39_pkgconfig.patch',
+ '%(name)s-3.55_fix-ftbfs-glibc-invalid-oob-error.patch',
+]
+checksums = [
+ {'nss-3.104.tar.gz': 'e2763223622d1e76b98a43030873856f248af0a41b03b2fa2ca06a91bc50ac8e'},
+ {'NSS-3.39_pkgconfig.patch': '5c4b55842e5afd1e8e67b90635f6474510b89242963c4ac2622d3e3da9062774'},
+ {'NSS-3.55_fix-ftbfs-glibc-invalid-oob-error.patch':
+ '15768297c5dd6918132af281531afcfe3e358f45a00bc2655d20a6cbe4310a9b'},
+]
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('Perl', '5.38.2'),
+]
+dependencies = [
+ ('NSPR', '4.35'),
+ ('zlib', '1.3.1'),
+]
+
+# disable use of -Werror to work around compilation errors with newer glibc versions,
+# see also https://sourceware.org/bugzilla/show_bug.cgi?id=27476
+buildopts = 'NSS_ENABLE_WERROR=0 BUILD_OPT=1 USE_64=1 '
+buildopts += 'CPATH="$EBROOTNSPR/include/nspr:$CPATH" OS_REL_CFLAGS="-D_XOPEN_SOURCE "'
+buildopts += ' && cd config && make PREFIX=%(installdir)s BUILD_OPT=1 USE_64=1 && cd -'
+
+# building in parallel fails
+parallel = 1
+
+# optional testsuite (takes a long time)
+# buildopts += " && cd %(builddir)s/%(namelower)s-%(version)s/%(namelower)s/tests && "
+# buildopts += " BUILD_OPT=1 USE_64=1 ./all.sh "
+
+files_to_copy = [
+ '../dist/Linux*.OBJ/*',
+ (['../dist/public/*'], 'include'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/%(namelower)s-config', 'bin/multinit', 'lib/libnss.a'],
+ 'dirs': ['include/dbm', 'include/%(namelower)s'],
+}
+
+sanity_check_commands = [
+ "multinit --help",
+ "%(namelower)s-config --version",
+]
+
+modextrapaths = {'CPATH': 'include/%(namelower)s'}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/n/NTL/NTL-11.5.1-GCC-13.3.0.eb b/easybuild/easyconfigs/n/NTL/NTL-11.5.1-GCC-13.3.0.eb
new file mode 100644
index 00000000000..29fdd6e848f
--- /dev/null
+++ b/easybuild/easyconfigs/n/NTL/NTL-11.5.1-GCC-13.3.0.eb
@@ -0,0 +1,44 @@
+# contributed by Guilherme Peretti-Pezzi (CSCS)
+# updated by Alex Domingo (Vrije Universiteit Brussel)
+# updated by Åke Sandgren(Umeå University)
+# Update: Petr Král (INUITS)
+easyblock = 'ConfigureMake'
+
+name = 'NTL'
+version = '11.5.1'
+
+homepage = 'https://shoup.net/ntl/'
+
+description = """NTL is a high-performance, portable C++ library providing data structures and
+algorithms for manipulating signed, arbitrary length integers, and for vectors,
+matrices, and polynomials over the integers and over finite fields."""
+
+toolchain = {'name': 'GCC', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+github_account = 'libntl'
+source_urls = [GITHUB_LOWER_SOURCE]
+sources = ['v%(version)s.tar.gz']
+checksums = ['ef578fa8b6c0c64edd1183c4c303b534468b58dd3eb8df8c9a5633f984888de5']
+
+builddependencies = [
+ ('Perl', '5.38.2'),
+]
+
+dependencies = [
+ ('GMP', '6.3.0'),
+]
+
+start_dir = 'src'
+
+prefix_opt = 'PREFIX='
+configopts = 'CXX="$CXX" CXXFLAGS="$CXXFLAGS" GMP_PREFIX="$EBROOTGMP" SHARED=on'
+
+runtest = 'check'
+
+sanity_check_paths = {
+ 'files': ['lib/libntl.%s' % e for e in ['a', SHLIB_EXT]],
+ 'dirs': ['include/NTL', 'share/doc'],
+}
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/n/NTPoly/NTPoly-2.7.1-foss-2022a.eb b/easybuild/easyconfigs/n/NTPoly/NTPoly-2.7.1-foss-2022a.eb
new file mode 100644
index 00000000000..e6ef7ccfb3e
--- /dev/null
+++ b/easybuild/easyconfigs/n/NTPoly/NTPoly-2.7.1-foss-2022a.eb
@@ -0,0 +1,28 @@
+easyblock = 'CMakeMake'
+
+name = 'NTPoly'
+version = '2.7.1'
+
+homepage = 'https://github.com/william-dawson/NTPoly'
+description = """is a massively parallel library for computing the functions of sparse, symmetric matrices based on
+polynomial expansions. For sufficiently sparse matrices, most of the matrix functions
+in NTPoly can be computed in linear time."""
+
+toolchain = {'name': 'foss', 'version': '2022a'}
+toolchainopts = {'openmp': False, 'usempi': True}
+
+source_urls = ['https://github.com/william-dawson/NTPoly/archive/ntpoly-v%(version)s']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['c15d9f51ac054b4ef0565ce5c4c8589c10bdbab4dc3442ebd109691e2bbfc7e2']
+
+builddependencies = [('CMake', '3.23.1')]
+
+build_shared_libs = True
+
+sanity_check_paths = {
+ 'files': ['include/%s.mod' % x for x in ['datatypesmodule', 'densitymatrixsolversmodule']] +
+ ['lib64/libNTPoly.%s' % SHLIB_EXT, 'lib/libNTPoly.%s' % SHLIB_EXT],
+ 'dirs': []
+}
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/n/NTPoly/NTPoly-3.1.0-foss-2023a.eb b/easybuild/easyconfigs/n/NTPoly/NTPoly-3.1.0-foss-2023a.eb
new file mode 100644
index 00000000000..8f7a531ce0e
--- /dev/null
+++ b/easybuild/easyconfigs/n/NTPoly/NTPoly-3.1.0-foss-2023a.eb
@@ -0,0 +1,28 @@
+easyblock = 'CMakeMake'
+
+name = 'NTPoly'
+version = '3.1.0'
+
+homepage = 'https://github.com/william-dawson/NTPoly'
+description = """is a massively parallel library for computing the functions of sparse, symmetric matrices based on
+polynomial expansions. For sufficiently sparse matrices, most of the matrix functions
+in NTPoly can be computed in linear time."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'openmp': False, 'usempi': True}
+
+source_urls = ['https://github.com/william-dawson/NTPoly/archive/ntpoly-v%(version)s']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['71cd6827f20c68e384555dbcfc85422d0690e21d21d7b5d4f7375544a2755271']
+
+builddependencies = [('CMake', '3.26.3')]
+
+build_shared_libs = True
+
+sanity_check_paths = {
+ 'files': ['include/%s.mod' % x for x in ['datatypesmodule', 'densitymatrixsolversmodule']] +
+ ['lib64/libNTPoly.%s' % SHLIB_EXT, 'lib/libNTPoly.%s' % SHLIB_EXT],
+ 'dirs': []
+}
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/n/NVHPC/NVHPC-24.11-CUDA-12.6.0.eb b/easybuild/easyconfigs/n/NVHPC/NVHPC-24.11-CUDA-12.6.0.eb
new file mode 100644
index 00000000000..546b28e7147
--- /dev/null
+++ b/easybuild/easyconfigs/n/NVHPC/NVHPC-24.11-CUDA-12.6.0.eb
@@ -0,0 +1,73 @@
+name = 'NVHPC'
+version = '24.11'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://developer.nvidia.com/hpc-sdk/'
+description = """C, C++ and Fortran compilers included with the NVIDIA HPC SDK (previously: PGI)"""
+
+toolchain = SYSTEM
+
+local_tarball_tmpl = 'nvhpc_2024_%%(version_major)s%%(version_minor)s_Linux_%s_cuda_multi.tar.gz'
+# By downloading, you accept the HPC SDK Software License Agreement
+# https://docs.nvidia.com/hpc-sdk/eula/index.html
+# accept_eula = True
+source_urls = ['https://developer.download.nvidia.com/hpc-sdk/%(version)s/']
+sources = [local_tarball_tmpl % '%(arch)s']
+checksums = [
+ {
+ local_tarball_tmpl % 'aarch64':
+ 'f2f64e5dec5e90dad5e12a31a992172b0aa19abf872ef1c54a1a437c7008eefb',
+ local_tarball_tmpl % 'x86_64':
+ '0c27d66ed0e2d3007d30ac904922a9abf96475197dc0f4dcc6316d235a1dc0c3',
+ }
+]
+
+local_gccver = '13.3.0'
+dependencies = [
+ ('GCCcore', local_gccver),
+ ('binutils', '2.42', '', ('GCCcore', local_gccver)),
+ # This is necessary to avoid cases where just libnuma.so.1 is present in the system and -lnuma fails
+ ('numactl', '2.0.18', '', ('GCCcore', local_gccver)),
+ ('CUDA', '12.6.0', '', SYSTEM),
+]
+
+module_add_cuda = False
+
+# specify default CUDA version that should be used by NVHPC
+# should match one of the CUDA versions that are included with this NVHPC version
+# (see install_components/Linux_x86_64/$version/cuda/) where $version is the NVHPC version
+# this version can be tweaked from the EasyBuild command line with
+# --try-amend=default_cuda_version="11.0" (for example)
+default_cuda_version = '%(cudaver)s'
+
+# NVHPC EasyBlock supports some features, which can be set via CLI or this easyconfig.
+# The following list gives examples for the easyconfig
+#
+# NVHPC needs CUDA to work. Two options are available: 1) Use NVHPC-bundled CUDA, 2) use system CUDA
+# 1) Bundled CUDA
+# If no easybuild dependency to CUDA is present, the bundled CUDA is taken. A version needs to be specified with
+# default_cuda_version = "11.0"
+# in this easyconfig file; alternatively, it can be specified through the command line during installation with
+# --try-amend=default_cuda_version="10.2"
+# 2) CUDA provided via EasyBuild
+# Use CUDA as a dependency, for example
+# dependencies = [('CUDA', '11.5.0')]
+# The parameter default_cuda_version still can be set as above.
+# If not set, it will be deduced from the CUDA module (via $EBVERSIONCUDA)
+#
+# Define a NVHPC-default Compute Capability
+# cuda_compute_capabilities = "8.0"
+# Can also be specified on the EasyBuild command line via --cuda-compute-capabilities=8.0
+# Only single values supported, not lists of values!
+#
+# Options to add/remove things to/from environment module (defaults shown)
+# module_byo_compilers = False # Remove compilers from PATH (Bring-your-own compilers)
+# module_nvhpc_own_mpi = False # Add NVHPC's own pre-compiled OpenMPI
+# module_add_math_libs = False # Add NVHPC's math libraries (which should be there from CUDA anyway)
+# module_add_profilers = False # Add NVHPC's NVIDIA Profilers
+# module_add_nccl = False # Add NVHPC's NCCL library
+# module_add_nvshmem = False # Add NVHPC's NVSHMEM library
+# module_add_cuda = False # Add NVHPC's bundled CUDA
+
+# this bundle serves as a compiler-only toolchain, so it should be marked as compiler (important for HMNS)
+moduleclass = 'compiler'
diff --git a/easybuild/easyconfigs/n/NVHPC/NVHPC-24.9-CUDA-12.6.0.eb b/easybuild/easyconfigs/n/NVHPC/NVHPC-24.9-CUDA-12.6.0.eb
new file mode 100644
index 00000000000..d164eabc04d
--- /dev/null
+++ b/easybuild/easyconfigs/n/NVHPC/NVHPC-24.9-CUDA-12.6.0.eb
@@ -0,0 +1,73 @@
+name = 'NVHPC'
+version = '24.9'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://developer.nvidia.com/hpc-sdk/'
+description = """C, C++ and Fortran compilers included with the NVIDIA HPC SDK (previously: PGI)"""
+
+toolchain = SYSTEM
+
+local_tarball_tmpl = 'nvhpc_2024_%%(version_major)s%%(version_minor)s_Linux_%s_cuda_multi.tar.gz'
+# By downloading, you accept the HPC SDK Software License Agreement
+# https://docs.nvidia.com/hpc-sdk/eula/index.html
+# accept_eula = True
+source_urls = ['https://developer.download.nvidia.com/hpc-sdk/%(version)s/']
+sources = [local_tarball_tmpl % '%(arch)s']
+checksums = [
+ {
+ local_tarball_tmpl % 'aarch64':
+ '8d900f798ef806c64993fd4fedf2c2c812dd1ccdbac2a0d33fabcd0cd36f19cf',
+ local_tarball_tmpl % 'x86_64':
+ '30c493350cf67481e84cea60a3a869e01fa0bcb71df8e898266273fbdf0a7f26',
+ }
+]
+
+local_gccver = '13.3.0'
+dependencies = [
+ ('GCCcore', local_gccver),
+ ('binutils', '2.42', '', ('GCCcore', local_gccver)),
+ # This is necessary to avoid cases where just libnuma.so.1 is present in the system and -lnuma fails
+ ('numactl', '2.0.18', '', ('GCCcore', local_gccver)),
+ ('CUDA', '12.6.0', '', SYSTEM),
+]
+
+module_add_cuda = False
+
+# specify default CUDA version that should be used by NVHPC
+# should match one of the CUDA versions that are included with this NVHPC version
+# (see install_components/Linux_x86_64/$version/cuda/) where $version is the NVHPC version
+# this version can be tweaked from the EasyBuild command line with
+# --try-amend=default_cuda_version="11.0" (for example)
+default_cuda_version = '%(cudaver)s'
+
+# NVHPC EasyBlock supports some features, which can be set via CLI or this easyconfig.
+# The following list gives examples for the easyconfig
+#
+# NVHPC needs CUDA to work. Two options are available: 1) Use NVHPC-bundled CUDA, 2) use system CUDA
+# 1) Bundled CUDA
+# If no easybuild dependency to CUDA is present, the bundled CUDA is taken. A version needs to be specified with
+# default_cuda_version = "11.0"
+# in this easyconfig file; alternatively, it can be specified through the command line during installation with
+# --try-amend=default_cuda_version="10.2"
+# 2) CUDA provided via EasyBuild
+# Use CUDA as a dependency, for example
+# dependencies = [('CUDA', '11.5.0')]
+# The parameter default_cuda_version still can be set as above.
+# If not set, it will be deduced from the CUDA module (via $EBVERSIONCUDA)
+#
+# Define a NVHPC-default Compute Capability
+# cuda_compute_capabilities = "8.0"
+# Can also be specified on the EasyBuild command line via --cuda-compute-capabilities=8.0
+# Only single values supported, not lists of values!
+#
+# Options to add/remove things to/from environment module (defaults shown)
+# module_byo_compilers = False # Remove compilers from PATH (Bring-your-own compilers)
+# module_nvhpc_own_mpi = False # Add NVHPC's own pre-compiled OpenMPI
+# module_add_math_libs = False # Add NVHPC's math libraries (which should be there from CUDA anyway)
+# module_add_profilers = False # Add NVHPC's NVIDIA Profilers
+# module_add_nccl = False # Add NVHPC's NCCL library
+# module_add_nvshmem = False # Add NVHPC's NVSHMEM library
+# module_add_cuda = False # Add NVHPC's bundled CUDA
+
+# this bundle serves as a compiler-only toolchain, so it should be marked as compiler (important for HMNS)
+moduleclass = 'compiler'
diff --git a/easybuild/easyconfigs/n/NWChem/NWChem-7.2.3-intel-2024a.eb b/easybuild/easyconfigs/n/NWChem/NWChem-7.2.3-intel-2024a.eb
new file mode 100644
index 00000000000..7b3190a3cd4
--- /dev/null
+++ b/easybuild/easyconfigs/n/NWChem/NWChem-7.2.3-intel-2024a.eb
@@ -0,0 +1,34 @@
+name = 'NWChem'
+version = '7.2.3'
+
+homepage = 'https://nwchemgit.github.io/'
+description = """NWChem aims to provide its users with computational chemistry tools that are scalable both in
+ their ability to treat large scientific computational chemistry problems efficiently, and in their use of available
+ parallel computing resources from high-performance parallel supercomputers to conventional workstation clusters.
+ NWChem software can handle: biomolecules, nanostructures, and solid-state; from quantum to classical, and all
+ combinations; Gaussian basis functions or plane-waves; scaling from one to thousands of processors; properties
+ and relativity."""
+
+toolchain = {'name': 'intel', 'version': '2024a'}
+toolchainopts = {'i8': True}
+
+source_urls = ['https://github.com/nwchemgit/nwchem/archive/refs/tags/']
+sources = ['v%(version)s-release.tar.gz']
+patches = [
+ 'NWChem-7.0.2_fix_gnumakefile.patch',
+]
+checksums = [
+ {'v7.2.3-release.tar.gz': 'fec76fbe650cdab8b00c8c1d7a5671554313e04a8e9e2fb300a7aad486910e6f'},
+ {'NWChem-7.0.2_fix_gnumakefile.patch': '89c634a652d4c8c358f8388ac01ee441659e3c0256c39b6494e2885c91f9aca4'},
+]
+
+dependencies = [
+ ('GlobalArrays', '5.8.2'),
+ ('Python', '3.12.3'),
+]
+
+preconfigopts = "export EXTRA_LIBS=-lutil && "
+
+modules = "all python"
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/n/NanoComp/NanoComp-1.24.0-foss-2023a.eb b/easybuild/easyconfigs/n/NanoComp/NanoComp-1.24.0-foss-2023a.eb
new file mode 100644
index 00000000000..94de23b83da
--- /dev/null
+++ b/easybuild/easyconfigs/n/NanoComp/NanoComp-1.24.0-foss-2023a.eb
@@ -0,0 +1,42 @@
+# Author: Pavel Grochal (INUITS)
+# License: GPLv2
+# Update: Petr Král (INUITS)
+
+easyblock = 'PythonPackage'
+
+name = 'NanoComp'
+version = '1.24.0'
+
+homepage = 'https://github.com/wdecoster/NanoComp'
+description = "Comparing runs of Oxford Nanopore sequencing data and alignments"
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['2ce02bb38c76137ee00ebcc68b6b2654a4a459993e901aebde436c4d54287b09']
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('Pysam', '0.22.0'),
+ ('nanomath', '1.4.0'),
+ ('nanoget', '1.19.3'),
+ ('NanoPlot', '1.43.0'),
+ ('plotly.py', '5.16.0'),
+ ('plotly-orca', '1.3.1'),
+ ('joypy', '0.2.6'),
+]
+
+download_dep_fail = True
+use_pip = True
+
+sanity_check_paths = {
+ 'files': ['bin/NanoComp'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = ["NanoComp --help"]
+
+sanity_pip_check = True
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/n/NanoFilt/NanoFilt-2.8.0-foss-2023a.eb b/easybuild/easyconfigs/n/NanoFilt/NanoFilt-2.8.0-foss-2023a.eb
new file mode 100644
index 00000000000..fed069c1e75
--- /dev/null
+++ b/easybuild/easyconfigs/n/NanoFilt/NanoFilt-2.8.0-foss-2023a.eb
@@ -0,0 +1,26 @@
+easyblock = 'PythonPackage'
+
+name = 'NanoFilt'
+version = '2.8.0'
+
+homepage = 'https://github.com/wdecoster/nanofilt'
+description = """Filtering and trimming of long read sequencing data."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+sources = [SOURCE_TAR_GZ]
+checksums = ['47f4f4f8be834f011570a8d76d07cc12abe0686c8917607316a8ccfb3e20758c']
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Biopython', '1.83'),
+]
+
+download_dep_fail = True
+use_pip = True
+
+sanity_check_commands = ["NanoFilt --help"]
+
+sanity_pip_check = True
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/n/NanoFilt/NanoFilt-2.8.0-foss-2023b.eb b/easybuild/easyconfigs/n/NanoFilt/NanoFilt-2.8.0-foss-2023b.eb
new file mode 100644
index 00000000000..1aef705dc4e
--- /dev/null
+++ b/easybuild/easyconfigs/n/NanoFilt/NanoFilt-2.8.0-foss-2023b.eb
@@ -0,0 +1,26 @@
+easyblock = 'PythonPackage'
+
+name = 'NanoFilt'
+version = '2.8.0'
+
+homepage = 'https://github.com/wdecoster/nanofilt'
+description = """Filtering and trimming of long read sequencing data."""
+
+toolchain = {'name': 'foss', 'version': '2023b'}
+
+sources = [SOURCE_TAR_GZ]
+checksums = ['47f4f4f8be834f011570a8d76d07cc12abe0686c8917607316a8ccfb3e20758c']
+
+dependencies = [
+ ('Python', '3.11.5'),
+ ('Biopython', '1.84'),
+]
+
+download_dep_fail = True
+use_pip = True
+
+sanity_check_commands = ["NanoFilt --help"]
+
+sanity_pip_check = True
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/n/NanoLyse/NanoLyse-1.2.1-foss-2023a.eb b/easybuild/easyconfigs/n/NanoLyse/NanoLyse-1.2.1-foss-2023a.eb
new file mode 100644
index 00000000000..1b21ec42201
--- /dev/null
+++ b/easybuild/easyconfigs/n/NanoLyse/NanoLyse-1.2.1-foss-2023a.eb
@@ -0,0 +1,48 @@
+##
+# 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: Petr Král (INUITS)
+##
+
+easyblock = 'PythonBundle'
+
+name = 'NanoLyse'
+version = '1.2.1'
+
+homepage = 'https://github.com/wdecoster/nanolyse'
+description = """Remove reads mapping to the lambda phage genome from a fastq file."""
+software_license = 'LicenseGPLv3'
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Biopython', '1.83'),
+ ('minimap2', '2.26'),
+]
+
+use_pip = True
+
+# Fetch the tar.gz, not the whl files!
+exts_list = [
+ ('mappy', '2.28', {
+ 'checksums': ['0ebf7a5d62bd668f5456028215e26176e180ca68161ac18d4f7b48045484cebb'],
+ }),
+ (name, version, {
+ 'checksums': ['933ee668da805fc9ec9fa86c9fca81a073438d45b5f64e23cf606c01e715b1d5'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/NanoLyse'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = ["NanoLyse --version"]
+
+sanity_pip_check = True
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/n/NanoPack/NanoPack-20230602-foss-2023a.eb b/easybuild/easyconfigs/n/NanoPack/NanoPack-20230602-foss-2023a.eb
new file mode 100644
index 00000000000..00ae2ecf8e2
--- /dev/null
+++ b/easybuild/easyconfigs/n/NanoPack/NanoPack-20230602-foss-2023a.eb
@@ -0,0 +1,33 @@
+easyblock = 'PythonPackage'
+
+name = 'NanoPack'
+version = '20230602'
+local_commit = '4059a0a'
+
+homepage = 'https://daler.github.io/pybedtools'
+description = "Collection of long read processing and analysis tools."
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+source_urls = ['https://github.com/wdecoster/nanopack/archive/']
+sources = ['%s.tar.gz' % local_commit]
+checksums = ['b533dd54bf9688a24faf9cb724050ace87bba18b2f469e1116ae47c9ae26cdc1']
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('nanomath', '1.4.0'),
+ ('nanoget', '1.19.3'),
+ ('NanoStat', '1.6.0'),
+ ('NanoFilt', '2.8.0'),
+ ('NanoLyse', '1.2.1'),
+ ('NanoPlot', '1.43.0'),
+ ('NanoComp', '1.24.0'),
+ ('nanoQC', '0.9.4'),
+ ('kyber', '0.4.0'),
+]
+
+download_dep_fail = True
+use_pip = True
+sanity_pip_check = True
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/n/NanoPlot/NanoPlot-1.43.0-foss-2023a.eb b/easybuild/easyconfigs/n/NanoPlot/NanoPlot-1.43.0-foss-2023a.eb
new file mode 100644
index 00000000000..4e547b9963b
--- /dev/null
+++ b/easybuild/easyconfigs/n/NanoPlot/NanoPlot-1.43.0-foss-2023a.eb
@@ -0,0 +1,43 @@
+# Author: Pavel Grochal (INUITS)
+# License: GPLv2
+# Update: Petr Král (INUITS)
+
+easyblock = 'PythonPackage'
+
+name = 'NanoPlot'
+version = '1.43.0'
+
+homepage = 'https://github.com/wdecoster/NanoPlot'
+description = "Plotting suite for long read sequencing data and alignments"
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['0f94096d689b552c32fd7246ad87cb6d5e5e2499dad5acc551091e0ff67f48df']
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('Biopython', '1.83'),
+ ('Pysam', '0.22.0'),
+ ('nanomath', '1.4.0'),
+ ('nanoget', '1.19.3'),
+ ('plotly.py', '5.16.0'),
+ ('statsmodels', '0.14.1'),
+ ('Arrow', '14.0.1'), # for pyarrow
+ ('Kaleido', '0.2.1'),
+]
+
+download_dep_fail = True
+use_pip = True
+
+sanity_check_paths = {
+ 'files': ['bin/NanoPlot'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = ["NanoPlot --help"]
+
+sanity_pip_check = True
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/n/NanoStat/NanoStat-1.6.0-foss-2023a.eb b/easybuild/easyconfigs/n/NanoStat/NanoStat-1.6.0-foss-2023a.eb
new file mode 100644
index 00000000000..8f0fa5a053c
--- /dev/null
+++ b/easybuild/easyconfigs/n/NanoStat/NanoStat-1.6.0-foss-2023a.eb
@@ -0,0 +1,32 @@
+easyblock = 'PythonPackage'
+
+name = 'NanoStat'
+version = '1.6.0'
+
+homepage = 'https://github.com/wdecoster/nanostat'
+description = """Calculate various statistics from a long read sequencing dataset in fastq,
+ bam or albacore sequencing summary format."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+sources = [SOURCE_TAR_GZ]
+checksums = ['e45fa8d1ab49bdaed17596c26c0af148b44e4af46238391a8bb7a1b4cc940079']
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('nanoget', '1.19.3'),
+ ('nanomath', '1.4.0'),
+]
+
+download_dep_fail = True
+use_pip = True
+sanity_pip_check = True
+
+sanity_check_paths = {
+ 'files': ['bin/NanoStat'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["NanoStat --help"]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/n/NextDenovo/NextDenovo-2.5.2-20240510-GCCcore-12.3.0.eb b/easybuild/easyconfigs/n/NextDenovo/NextDenovo-2.5.2-20240510-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..84f6960102e
--- /dev/null
+++ b/easybuild/easyconfigs/n/NextDenovo/NextDenovo-2.5.2-20240510-GCCcore-12.3.0.eb
@@ -0,0 +1,54 @@
+easyblock = 'MakeCp'
+
+name = 'NextDenovo'
+version = '2.5.2-20240510'
+local_commit = '0e5fa5d'
+
+homepage = 'https://github.com/Nextomics/NextDenovo'
+description = 'NextDenovo is a string graph-based de novo assembler for long reads.'
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = ['https://github.com/Nextomics/NextDenovo/archive/']
+sources = [{'download_filename': '%s.tar.gz' % local_commit, 'filename': SOURCE_TAR_GZ}]
+checksums = ['bbe43124e7d63cbe33179c2abf2de60797bb7361a7f7a2b5fc33bf62a4479726']
+
+builddependencies = [('binutils', '2.40')]
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('cURL', '8.0.1'),
+]
+
+exts_defaultclass = 'PythonPackage'
+exts_default_options = {
+ 'source_urls': [PYPI_SOURCE],
+ 'download_dep_fail': True,
+ 'use_pip': True,
+ 'sanity_pip_check': True,
+ 'preinstallopts': '',
+ 'installopts': '',
+}
+
+exts_list = [
+ ('Paralleltask', '0.2.3', {
+ 'modulename': 'paralleltask',
+ 'checksums': ['8015a8311d5021bc44edbfbf45ff2557a529999e235d25190bac62993fdf7b66'],
+ }),
+]
+
+files_to_copy = ['bin', 'lib', 'test_data', 'LICENSE', 'nextDenovo']
+
+sanity_check_paths = {
+ 'files': ['nextDenovo', 'bin/minimap2-nd', 'bin/paralleltask', 'bin/nextgraph'],
+ 'dirs': ['bin', 'test_data', 'lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = ['nextDenovo --help']
+
+modextrapaths = {
+ 'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages',
+ 'PATH': '',
+}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/n/NextGenMap/NextGenMap-0.5.5-GCC-12.3.0.eb b/easybuild/easyconfigs/n/NextGenMap/NextGenMap-0.5.5-GCC-12.3.0.eb
new file mode 100644
index 00000000000..1792c3ecdfa
--- /dev/null
+++ b/easybuild/easyconfigs/n/NextGenMap/NextGenMap-0.5.5-GCC-12.3.0.eb
@@ -0,0 +1,55 @@
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+
+easyblock = 'CMakeMake'
+
+name = 'NextGenMap'
+version = '0.5.5'
+
+homepage = 'http://cibiv.github.io/%(name)s/'
+description = """NextGenMap is a flexible highly sensitive short read mapping tool that
+ handles much higher mismatch rates than comparable algorithms while still outperforming
+ them in terms of runtime."""
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/Cibiv/%(namelower)s/archive/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['c205e6cb312d2f495106435f10fb446e6fb073dd1474f4f74ab5980ba9803661']
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+]
+
+dependencies = [
+ ('BamTools', '2.5.2'),
+ ('zlib', '1.2.13'),
+]
+
+skipsteps = ['install']
+
+preconfigopts = r"sed -i '/add_subdirectory.*\(bamtools\|zlib\).*/d' ../NextGenMap-%(version)s/CMakeLists.txt && "
+preconfigopts += "sed -i 's/BamTools-static/bamtools/g' ../NextGenMap-%(version)s/{src,utils}/CMakeLists.txt && "
+preconfigopts += "sed -i 's/zlibstatic/z/g' ../NextGenMap-%(version)s/{src,utils}/CMakeLists.txt && "
+
+buildopts = ' && cp -r ../%(name)s-%(version)s/bin/ngm-%(version)s/. %(installdir)s/bin/'
+
+postinstallcmds = [
+ # avoid hard overwriting of $LD_LIBRARY_PATH in ngm wrapper script
+ r"sed -i 's/\(LD_LIBRARY_PATH=[^ ]*\)\"/\1:$LD_LIBRARY_PATH\"/g' %(installdir)s/bin/ngm",
+ # fix execution permissions for ngm* binaries/scripts
+ "chmod a+x %(installdir)s/bin/ngm*",
+ # link `libOpenCL.so.1` to the `lib` directory (required when using RPATH linking)
+ 'cd %(installdir)s && mkdir -p lib && ln -rfs bin/opencl/lib/libOpenCL.so.1 lib/libOpenCL.so.1',
+]
+
+sanity_check_paths = {
+ 'files': ['lib/libOpenCL.so.1'] + ['bin/%s' % x for x in ['ngm', 'ngm-core', 'ngm-log', 'ngm-utils', 'oclTool']],
+ 'dirs': ['bin/opencl']
+}
+
+sanity_check_commands = [
+ "ngm --help 2>&1 | grep 'Usage:[ ]*ngm'",
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/n/NextPolish/NextPolish-1.4.1-GCC-12.3.0.eb b/easybuild/easyconfigs/n/NextPolish/NextPolish-1.4.1-GCC-12.3.0.eb
new file mode 100644
index 00000000000..51a31669463
--- /dev/null
+++ b/easybuild/easyconfigs/n/NextPolish/NextPolish-1.4.1-GCC-12.3.0.eb
@@ -0,0 +1,94 @@
+easyblock = 'MakeCp'
+
+name = 'NextPolish'
+version = '1.4.1'
+
+homepage = 'https://github.com/Nextomics/NextPolish'
+description = 'NextDenovo is a string graph-based de novo assembler for long reads.'
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+
+source_urls = ['https://github.com/Nextomics/NextPolish/releases/download/']
+sources = [{
+ 'download_filename': 'v%(version)s/%(name)s.tgz',
+ 'filename': SOURCE_TAR_GZ,
+}]
+checksums = ['2a5f66f3db7f76e583a6b6e28f9c1f3c392258b8d755050d7abe129a2fbb48c4']
+
+builddependencies = [('patchelf', '0.18.0')]
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('BWA', '0.7.17'),
+ ('SAMtools', '1.18'),
+ ('minimap2', '2.26'),
+ ('bzip2', '1.0.8'),
+]
+
+exts_defaultclass = 'PythonPackage'
+exts_default_options = {
+ 'source_urls': [PYPI_SOURCE],
+ 'download_dep_fail': True,
+ 'use_pip': True,
+ 'sanity_pip_check': True,
+ 'preinstallopts': '',
+ 'installopts': '',
+}
+
+exts_list = [
+ ('Paralleltask', '0.2.3', {
+ 'modulename': 'paralleltask',
+ 'checksums': ['8015a8311d5021bc44edbfbf45ff2557a529999e235d25190bac62993fdf7b66'],
+ }),
+]
+
+# fix make -C util - warning: jobserver unavailable
+parallel = 1
+
+# fix bwa bug - https://github.com/Nextomics/NextPolish/issues/83
+# + use SAMtools and minimap2 from EB
+prebuildopts = "sed -i 's/seq_count bwa samtools minimap2/seq_count/' Makefile && "
+prebuildopts += "rm -rf util/bwa && rm -fr util/minimap2 && rm -rf util/samtools && "
+prebuildopts += (
+ "sed -i"
+ " -e 's/seq_split seq_count bwa_ samtools_ minimap2_/seq_split seq_count/'"
+ " -e '/BWADIR/d'"
+ " -e '/bwa_:/d'"
+ " -e '/SAMTOOLSDIR/d'"
+ " -e '/MINIMAP2DIR/d'"
+ " -e '/samtools_:/d'"
+ " -e '/minimap2_:/d'"
+ " util/Makefile && "
+)
+postinstallcmds = [
+ # links to binaries
+ "cd %(installdir)s/bin && ln -s $EBROOTBWA/bin/bwa && "
+ "ln -s $EBROOTSAMTOOLS/bin/samtools && ln -s $EBROOTMINIMAP2/bin/minimap2",
+ # set RPATH to calgs.so, nextpolish1.so and nextpolish2.so
+ "if %(rpath_enabled)s; then "
+ "patchelf --force-rpath --set-rpath '$ORIGIN:$ORIGIN/../lib'"
+ '":$EBROOTZLIB/lib" %(installdir)s/lib/calgs.so && '
+ "patchelf --force-rpath --set-rpath '$ORIGIN:$ORIGIN/../lib'"
+ '"$EBROOTZLIB/lib:$EBROOTBZIP2/lib:$EBROOTXZ/lib" %(installdir)s/lib/nextpolish1.so && '
+ "patchelf --force-rpath --set-rpath '$ORIGIN:$ORIGIN/../lib'"
+ '"$EBROOTZLIB/lib:$EBROOTBZIP2/lib:$EBROOTXZ/lib" %(installdir)s/lib/nextpolish2.so; fi',
+]
+
+files_to_copy = ['bin', 'lib', 'test_data', 'LICENSE', 'nextPolish']
+
+sanity_check_paths = {
+ 'files': ['nextPolish', 'bin/minimap2', 'bin/paralleltask', 'bin/bwa', 'bin/samtools'],
+ 'dirs': ['test_data', 'lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = [
+ 'nextPolish --help',
+ 'nextPolish %(installdir)s/test_data/run.cfg'
+]
+
+modextrapaths = {
+ 'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages',
+ 'PATH': '',
+}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/n/Nextflow/Nextflow-24.04.4.eb b/easybuild/easyconfigs/n/Nextflow/Nextflow-24.04.4.eb
new file mode 100644
index 00000000000..c718972b663
--- /dev/null
+++ b/easybuild/easyconfigs/n/Nextflow/Nextflow-24.04.4.eb
@@ -0,0 +1,35 @@
+easyblock = 'Binary'
+
+name = 'Nextflow'
+version = '24.04.4'
+
+homepage = 'https://www.nextflow.io/'
+description = """Nextflow is a reactive workflow framework and a programming DSL
+ that eases writing computational pipelines with complex data"""
+
+toolchain = SYSTEM
+
+source_urls = ['https://github.com/nextflow-io/nextflow/releases/download/v%(version)s/']
+sources = ['nextflow-%(version)s-all']
+checksums = ['9077cfb151d4bc8682f09a65a77f45346bf34dac5931e371dba0d51bf13a5076']
+
+dependencies = [('Java', '11')]
+
+install_cmds = [
+ "mkdir -p %(installdir)s/bin",
+ "cp %(builddir)s/nextflow-%(version)s-all %(installdir)s/bin",
+ "cd %(installdir)s/bin && ln -s nextflow-%(version)s-all nextflow",
+ "cd %(installdir)s/bin && chmod +x %(installdir)s/bin/nextflow-%(version)s-all",
+]
+
+sanity_check_paths = {
+ 'files': ['bin/nextflow-%(version)s-all', 'bin/nextflow'],
+ 'dirs': []
+}
+
+sanity_check_commands = [
+ "nextflow -v",
+ "nextflow help",
+]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/n/Nextflow/Nextflow-24.10.2.eb b/easybuild/easyconfigs/n/Nextflow/Nextflow-24.10.2.eb
new file mode 100644
index 00000000000..75b0cb4a2d6
--- /dev/null
+++ b/easybuild/easyconfigs/n/Nextflow/Nextflow-24.10.2.eb
@@ -0,0 +1,36 @@
+easyblock = 'Binary'
+
+name = 'Nextflow'
+version = '24.10.2'
+
+homepage = 'https://www.nextflow.io/'
+description = """Nextflow is a reactive workflow framework and a programming DSL
+ that eases writing computational pipelines with complex data"""
+
+toolchain = SYSTEM
+
+source_urls = ['https://github.com/nextflow-io/nextflow/releases/download/v%(version)s/']
+sources = ['nextflow-%(version)s-dist']
+checksums = ['972bb4f4bcd30bb474c29c247ccf79289bbcd444f799f0307f61123e6b0f7475']
+
+dependencies = [('Java', '21')]
+
+install_cmds = [
+ "mkdir -p %(installdir)s/bin",
+ "cp %(builddir)s/nextflow-%(version)s-dist %(installdir)s/bin",
+ "cd %(installdir)s/bin && ln -s nextflow-%(version)s-dist nextflow",
+ "cd %(installdir)s/bin && chmod +x %(installdir)s/bin/nextflow-%(version)s-dist",
+]
+
+sanity_check_paths = {
+ 'files': ['bin/nextflow-%(version)s-dist', 'bin/nextflow'],
+ 'dirs': []
+}
+
+sanity_check_commands = [
+ "nextflow -v",
+ "nextflow help",
+ "nextflow info",
+]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/n/Nim/Nim-2.2.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/n/Nim/Nim-2.2.0-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..2214b1c9493
--- /dev/null
+++ b/easybuild/easyconfigs/n/Nim/Nim-2.2.0-GCCcore-12.3.0.eb
@@ -0,0 +1,17 @@
+name = 'Nim'
+version = '2.2.0'
+
+homepage = 'https://nim-lang.org/'
+description = "Nim is a systems and applications programming language."
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = ['https://nim-lang.org/download/']
+sources = [SOURCELOWER_TAR_XZ]
+checksums = ['ce9842849c9760e487ecdd1cdadf7c0f2844cafae605401c7c72ae257644893c']
+
+builddependencies = [('binutils', '2.40')]
+
+dependencies = [('libreadline', '8.2')]
+
+moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/n/nano/nano-8.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/n/nano/nano-8.1-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..64684d1ff42
--- /dev/null
+++ b/easybuild/easyconfigs/n/nano/nano-8.1-GCCcore-13.3.0.eb
@@ -0,0 +1,27 @@
+easyblock = 'ConfigureMake'
+
+name = 'nano'
+version = '8.1'
+
+homepage = 'https://www.nano-editor.org/'
+docurls = 'https://www.nano-editor.org/docs.php'
+description = """a simple editor, inspired by Pico"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://www.nano-editor.org/dist/v%(version_major)s/']
+sources = [SOURCE_TAR_GZ]
+checksums = ['6508bfbcfe38153ecbdc1b7d3479323564353f134acc8c501910220371390675']
+
+builddependencies = [('binutils', '2.42')]
+
+dependencies = [('ncurses', '6.5')]
+
+sanity_check_paths = {
+ 'files': ['bin/nano'],
+ 'dirs': ['bin', 'share'],
+}
+
+sanity_check_commands = ['nano --version']
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/n/nanoQC/nanoQC-0.9.4-foss-2023a.eb b/easybuild/easyconfigs/n/nanoQC/nanoQC-0.9.4-foss-2023a.eb
new file mode 100644
index 00000000000..264a822a3ca
--- /dev/null
+++ b/easybuild/easyconfigs/n/nanoQC/nanoQC-0.9.4-foss-2023a.eb
@@ -0,0 +1,31 @@
+easyblock = 'PythonPackage'
+
+name = 'nanoQC'
+version = '0.9.4'
+
+homepage = 'https://github.com/wdecoster/nanoQC'
+description = """Quality control tools for long read sequencing
+ data aiming to replicate some of the plots made by fastQC."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+sources = [SOURCE_TAR_GZ]
+checksums = ['05685656138cbaf099b18831d1ceeaca93faf3399881cc2efda44c04d3b316e3']
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Biopython', '1.83'),
+ ('SciPy-bundle', '2023.07'),
+ ('bokeh', '3.2.2'),
+]
+
+download_dep_fail = True
+use_pip = True
+
+options = {'modulename': 'nanoQC'}
+
+sanity_check_commands = ["nanoQC --help"]
+
+sanity_pip_check = True
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/n/nanoget/nanoget-1.19.3-foss-2023a.eb b/easybuild/easyconfigs/n/nanoget/nanoget-1.19.3-foss-2023a.eb
new file mode 100644
index 00000000000..2aeb2ceaf26
--- /dev/null
+++ b/easybuild/easyconfigs/n/nanoget/nanoget-1.19.3-foss-2023a.eb
@@ -0,0 +1,30 @@
+# Author: Pavel Grochal (INUITS)
+# License: GPLv2
+# Update: Petr Král (INUITS)
+
+easyblock = 'PythonPackage'
+
+name = 'nanoget'
+version = '1.19.3'
+
+homepage = 'https://github.com/wdecoster/nanoget'
+description = "Functions to extract information from Oxford Nanopore sequencing data and alignments"
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+sources = [SOURCE_TAR_GZ]
+checksums = ['da981810edb1cbe42cbbfbe5fcf753f29bf5555204cd51256b28a284a036a71b']
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('Biopython', '1.83'),
+ ('Pysam', '0.22.0'),
+ ('nanomath', '1.4.0'),
+]
+
+download_dep_fail = True
+use_pip = True
+sanity_pip_check = True
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/n/nanomath/nanomath-1.4.0-foss-2023a.eb b/easybuild/easyconfigs/n/nanomath/nanomath-1.4.0-foss-2023a.eb
new file mode 100644
index 00000000000..2a2f56955cc
--- /dev/null
+++ b/easybuild/easyconfigs/n/nanomath/nanomath-1.4.0-foss-2023a.eb
@@ -0,0 +1,33 @@
+# Author: Pavel Grochal (INUITS)
+# License: GPLv2
+# Update: Petr Král (INUITS)
+
+easyblock = 'PythonBundle'
+
+name = 'nanomath'
+version = '1.4.0'
+
+homepage = 'https://github.com/wdecoster/nanomath'
+description = "A few simple math functions for other Oxford Nanopore processing scripts"
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('Python-Deprecated', '1.1.0', {
+ 'modulename': 'deprecated',
+ 'checksums': ['a242b3c1721f97912330b12cd5529abfa5b3876084a6c60a2c683a87d4b0dd6f'],
+ }),
+ (name, version, {
+ 'checksums': ['ed7a38fbb156d9a68a95c2570fe3c2035321d0a3e234580496750afca4927ced'],
+ }),
+]
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/n/ncdu/ncdu-1.20-GCC-13.3.0.eb b/easybuild/easyconfigs/n/ncdu/ncdu-1.20-GCC-13.3.0.eb
new file mode 100644
index 00000000000..e8f91407acf
--- /dev/null
+++ b/easybuild/easyconfigs/n/ncdu/ncdu-1.20-GCC-13.3.0.eb
@@ -0,0 +1,27 @@
+easyblock = 'ConfigureMake'
+
+name = 'ncdu'
+version = '1.20'
+
+homepage = 'https://dev.yorhel.nl/ncdu'
+description = """Ncdu is a disk usage analyzer with an ncurses interface. It is designed to find space hogs on a
+ remote server where you don't have an entire graphical setup available, but it is a useful tool even on regular
+ desktop systems. Ncdu aims to be fast, simple and easy to use, and should be able to run in any minimal POSIX-like
+ environment with ncurses installed."""
+
+toolchain = {'name': 'GCC', 'version': '13.3.0'}
+
+source_urls = ['https://dev.yorhel.nl/download/']
+sources = [SOURCE_TAR_GZ]
+checksums = ['5fe2bb841abe72374bb242dbb93293c4ae053078432d896a7481b2ff10be9572']
+
+dependencies = [
+ ('ncurses', '6.5'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/%(name)s'],
+ 'dirs': [],
+}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/n/ncurses/ncurses-6.5-GCCcore-14.2.0.eb b/easybuild/easyconfigs/n/ncurses/ncurses-6.5-GCCcore-14.2.0.eb
new file mode 100644
index 00000000000..a7ad6d943b2
--- /dev/null
+++ b/easybuild/easyconfigs/n/ncurses/ncurses-6.5-GCCcore-14.2.0.eb
@@ -0,0 +1,53 @@
+easyblock = 'ConfigureMake'
+
+name = 'ncurses'
+version = '6.5'
+
+homepage = 'https://www.gnu.org/software/ncurses/'
+description = """
+ The Ncurses (new curses) library is a free software emulation of curses in
+ System V Release 4.0, and more. It uses Terminfo format, supports pads and
+ color and multiple highlights and forms characters and function-key mapping,
+ and has all the other SYSV-curses enhancements over BSD Curses.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '14.2.0'}
+toolchainopts = {'pic': True}
+
+source_urls = [GNU_SOURCE]
+sources = [SOURCE_TAR_GZ]
+checksums = ['136d91bc269a9a5785e5f9e980bc76ab57428f604ce3e5a5a90cebc767971cc6']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('pkgconf', '2.3.0'),
+]
+
+local_common_configopts = "--with-shared --enable-overwrite --without-ada --enable-symlinks --with-versioned-syms "
+local_common_configopts += "--enable-pc-files --with-pkg-config-libdir=%(installdir)s/lib/pkgconfig "
+configopts = [
+ # build ncurses: serial build in default paths with shared libraries
+ local_common_configopts + "--disable-widec",
+ # build ncursesw: serial with UTF-8
+ local_common_configopts + "--enable-ext-colors --enable-widec --includedir=%(installdir)s/include/ncursesw/",
+]
+
+# Symlink libtinfo to libncurses
+# libncurses with this configopts has all the symbols from libtinfo, but some packages look for libtinfo specifically
+postinstallcmds = ['cd %(installdir)s/lib && for l in libncurses{.,_,w}*; do ln -s "${l}" "${l/ncurses/tinfo}"; done']
+
+_target_suffix = ['', 'w'] # '': ncurses, 'w': ncursesw
+_lib_suffix = ['%s%s' % (x, y) for x in _target_suffix for y in ['.a', '_g.a', '.' + SHLIB_EXT]]
+_lib_names = ['form', 'menu', 'ncurses', 'panel', 'tinfo']
+_pc_names = ['form', 'menu', 'ncurses++', 'ncurses', 'panel']
+
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in ["captoinfo", "clear", "infocmp", "infotocap", "ncurses%(version_major)s-config",
+ "reset", "tabs", "tic", "toe", "tput", "tset"]] +
+ ['lib/lib%s%s' % (x, y) for x in _lib_names for y in _lib_suffix] +
+ ['lib/libncurses++%s.a' % x for x in _target_suffix] +
+ ['lib/pkgconfig/%s%s.pc' % (x, y) for x in _pc_names for y in _target_suffix],
+ 'dirs': ['include', 'include/ncursesw'],
+}
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/n/nellie/nellie-0.3.1-foss-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/n/nellie/nellie-0.3.1-foss-2023a-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..35d0c5778dd
--- /dev/null
+++ b/easybuild/easyconfigs/n/nellie/nellie-0.3.1-foss-2023a-CUDA-12.1.1.eb
@@ -0,0 +1,55 @@
+easyblock = 'PythonBundle'
+
+name = 'nellie'
+version = '0.3.1'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://github.com/aelefebv/nellie/'
+description = """
+Napari plugin for automated organelle segmentation,
+tracking, and hierarchical feature extraction in 2D/3D live-cell microscopy.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('CUDA', '12.1.1', '', SYSTEM),
+ ('SciPy-bundle', '2023.07'),
+ ('napari', '0.4.18'),
+ ('scikit-image', '0.22.0'),
+ ('imagecodecs', '2024.1.1'),
+ ('matplotlib', '3.7.2'),
+ ('ome-types', '0.5.1.post1'),
+ ('CuPy', '13.0.0', versionsuffix),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+local_preinstallopts = (
+ "sed -i"
+ " -e 's/numpy==1.26.4/numpy/'"
+ " -e 's/scipy==1.12.0/scipy/'"
+ " -e 's/nd2==0.9.0/nd2/'"
+ " -e 's/pandas==2.2.1/pandas/'"
+ " -e 's/matplotlib==3.8.3/matplotlib/'"
+ " -e 's/napari[all]/napari/'"
+ " setup.cfg && "
+)
+
+exts_list = [
+ ('resource_backed_dask_array', '0.1.0', {
+ 'checksums': ['8fabcccf5c7e29059b5badd6786dd7675a258a203c58babf10077d9c90ada54f'],
+ }),
+ ('nd2', '0.10.1', {
+ 'checksums': ['88ee60f6ba39392722a162da58fb81bf0cdb8ed6c772772e4db91e90f97e490a'],
+ }),
+ (name, version, {
+ 'preinstallopts': local_preinstallopts,
+ 'checksums': ['3fd85bd1c7df5a8f24bff2118805cd7c82140b08871d520b2131d4d9a8c00d94'],
+ }),
+]
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/n/nellie/nellie-0.3.1-foss-2023a.eb b/easybuild/easyconfigs/n/nellie/nellie-0.3.1-foss-2023a.eb
new file mode 100644
index 00000000000..34b3ce6299a
--- /dev/null
+++ b/easybuild/easyconfigs/n/nellie/nellie-0.3.1-foss-2023a.eb
@@ -0,0 +1,52 @@
+easyblock = 'PythonBundle'
+
+name = 'nellie'
+version = '0.3.1'
+
+homepage = 'https://github.com/aelefebv/nellie/'
+description = """
+Napari plugin for automated organelle segmentation,
+tracking, and hierarchical feature extraction in 2D/3D live-cell microscopy.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('SciPy-bundle', '2023.07'),
+ ('napari', '0.4.18'),
+ ('scikit-image', '0.22.0'),
+ ('imagecodecs', '2024.1.1'),
+ ('matplotlib', '3.7.2'),
+ ('ome-types', '0.5.1.post1'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+local_preinstallopts = (
+ "sed -i"
+ " -e 's/numpy==1.26.4/numpy/'"
+ " -e 's/scipy==1.12.0/scipy/'"
+ " -e 's/nd2==0.9.0/nd2/'"
+ " -e 's/pandas==2.2.1/pandas/'"
+ " -e 's/matplotlib==3.8.3/matplotlib/'"
+ " -e 's/napari[all]/napari/'"
+ " setup.cfg && "
+)
+
+exts_list = [
+ ('resource_backed_dask_array', '0.1.0', {
+ 'checksums': ['8fabcccf5c7e29059b5badd6786dd7675a258a203c58babf10077d9c90ada54f'],
+ }),
+ ('nd2', '0.10.1', {
+ 'checksums': ['88ee60f6ba39392722a162da58fb81bf0cdb8ed6c772772e4db91e90f97e490a'],
+ }),
+ (name, version, {
+ 'preinstallopts': local_preinstallopts,
+ 'checksums': ['3fd85bd1c7df5a8f24bff2118805cd7c82140b08871d520b2131d4d9a8c00d94'],
+ }),
+]
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/n/netCDF-C++4/netCDF-C++4-4.3.1-gompi-2024a.eb b/easybuild/easyconfigs/n/netCDF-C++4/netCDF-C++4-4.3.1-gompi-2024a.eb
new file mode 100644
index 00000000000..909bd06a674
--- /dev/null
+++ b/easybuild/easyconfigs/n/netCDF-C++4/netCDF-C++4-4.3.1-gompi-2024a.eb
@@ -0,0 +1,28 @@
+easyblock = 'ConfigureMake'
+
+name = 'netCDF-C++4'
+version = '4.3.1'
+
+homepage = 'https://www.unidata.ucar.edu/software/netcdf/'
+description = """NetCDF (network Common Data Form) is a set of software libraries
+ and machine-independent data formats that support the creation, access, and sharing of array-oriented
+ scientific data."""
+
+toolchain = {'name': 'gompi', 'version': '2024a'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/Unidata/netcdf-cxx4/archive/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['e3fe3d2ec06c1c2772555bf1208d220aab5fee186d04bd265219b0bc7a978edc']
+
+dependencies = [
+ ('netCDF', '4.9.2'),
+]
+
+
+sanity_check_paths = {
+ 'files': ['include/netcdf', 'lib/libnetcdf_c++4.a', 'lib/libnetcdf_c++4.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+
+moduleclass = 'data'
diff --git a/easybuild/easyconfigs/n/netCDF-Fortran/netCDF-Fortran-4.6.1-gompi-2024a.eb b/easybuild/easyconfigs/n/netCDF-Fortran/netCDF-Fortran-4.6.1-gompi-2024a.eb
new file mode 100644
index 00000000000..2bc6e207794
--- /dev/null
+++ b/easybuild/easyconfigs/n/netCDF-Fortran/netCDF-Fortran-4.6.1-gompi-2024a.eb
@@ -0,0 +1,28 @@
+name = 'netCDF-Fortran'
+version = '4.6.1'
+
+homepage = 'https://www.unidata.ucar.edu/software/netcdf/'
+description = """NetCDF (network Common Data Form) is a set of software libraries
+ and machine-independent data formats that support the creation, access, and sharing of array-oriented
+ scientific data."""
+
+toolchain = {'name': 'gompi', 'version': '2024a'}
+toolchainopts = {'pic': True, 'usempi': True}
+
+source_urls = ['https://github.com/Unidata/%(namelower)s/archive/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['40b534e0c81b853081c67ccde095367bd8a5eead2ee883431331674e7aa9509f']
+
+builddependencies = [
+ ('M4', '1.4.19'),
+]
+dependencies = [
+ ('netCDF', '4.9.2'),
+ ('bzip2', '1.0.8'),
+]
+
+# (too) parallel build fails, but single-core build is fairly quick anyway (~1min)
+parallel = 1
+
+
+moduleclass = 'data'
diff --git a/easybuild/easyconfigs/n/netCDF/netCDF-4.9.2-gompi-2024a.eb b/easybuild/easyconfigs/n/netCDF/netCDF-4.9.2-gompi-2024a.eb
new file mode 100644
index 00000000000..95e48775eeb
--- /dev/null
+++ b/easybuild/easyconfigs/n/netCDF/netCDF-4.9.2-gompi-2024a.eb
@@ -0,0 +1,54 @@
+name = 'netCDF'
+version = '4.9.2'
+
+homepage = 'https://www.unidata.ucar.edu/software/netcdf/'
+description = """NetCDF (network Common Data Form) is a set of software libraries
+ and machine-independent data formats that support the creation, access, and sharing of array-oriented
+ scientific data."""
+
+toolchain = {'name': 'gompi', 'version': '2024a'}
+toolchainopts = {'pic': True, 'usempi': True}
+
+source_urls = ['https://github.com/Unidata/%(namelower)s-c/archive/']
+sources = ['v%(version)s.tar.gz']
+patches = ['%(name)s-%(version_major_minor)s.0_skip-nasa-test.patch']
+checksums = [
+ {'v4.9.2.tar.gz': 'bc104d101278c68b303359b3dc4192f81592ae8640f1aee486921138f7f88cb7'},
+ {'%(name)s-%(version_major_minor)s.0_skip-nasa-test.patch':
+ '19d99e03c048b037dc01f03f5b8ddc910ebaceb076d0f050540d348f26dfcd2a'},
+]
+
+builddependencies = [
+ ('Autotools', '20231222'),
+ ('CMake', '3.29.3'),
+ ('Doxygen', '1.11.0'),
+]
+dependencies = [
+ ('HDF5', '1.14.5'),
+ ('cURL', '8.7.1'),
+ ('Szip', '2.1.1'),
+ ('zstd', '1.5.6'),
+ ('bzip2', '1.0.8'),
+ ('libxml2', '2.12.7'),
+]
+
+# disable Szip, zlib parallel I/O tests, since these can hang on some systems, e.g. generoso
+# see: https://github.com/easybuilders/easybuild-easyconfigs/pull/16834
+# and https://github.com/easybuilders/easybuild-easyconfigs/pull/17107#issuecomment-1432947172
+preconfigopts = ("sed -i -e 's|@MPIEXEC@ -n 4 ./tst_parallel5|echo \"skipped by EasyBuild\"|g'"
+ " -e 's|@MPIEXEC@ -n 4 ./tst_parallel_zlib|echo \"skipped by EasyBuild\"|g'"
+ " -e 's|@MPIEXEC@ -n 4 ./tst_parallel_compress|echo \"skipped by EasyBuild\"|g'"
+ " %(builddir)s/%(namelower)s-c-%(version)s/nc_test4/run_par_test.sh.in &&")
+
+# make sure both static and shared libs are built
+# and disable "remote" tests that access a unreliable external test server over internet
+configopts = [
+ "-DENABLE_DAP_REMOTE_TESTS=OFF -DBUILD_SHARED_LIBS=OFF",
+ "-DENABLE_DAP_REMOTE_TESTS=OFF -DBUILD_SHARED_LIBS=ON",
+]
+
+# some tests try to start 16 MPI ranks, so we need to allow oversubscription to avoid failing tests
+pretestopts = "PRTE_MCA_rmaps_default_mapping_policy=:oversubscribe "
+runtest = 'test'
+
+moduleclass = 'data'
diff --git a/easybuild/easyconfigs/n/netcdf4-python/netcdf4-python-1.7.1.post2-foss-2024a.eb b/easybuild/easyconfigs/n/netcdf4-python/netcdf4-python-1.7.1.post2-foss-2024a.eb
new file mode 100644
index 00000000000..912e23a55b7
--- /dev/null
+++ b/easybuild/easyconfigs/n/netcdf4-python/netcdf4-python-1.7.1.post2-foss-2024a.eb
@@ -0,0 +1,58 @@
+easyblock = 'PythonBundle'
+
+name = 'netcdf4-python'
+version = '1.7.1.post2'
+
+
+homepage = 'https://unidata.github.io/netcdf4-python/'
+description = "Python/numpy interface to netCDF."
+
+toolchain = {'name': 'foss', 'version': '2024a'}
+toolchainopts = {'usempi': True}
+
+builddependencies = [
+ ('Cython', '3.0.10'),
+]
+
+dependencies = [
+ ('Python', '3.12.3'),
+ ('SciPy-bundle', '2024.05'),
+ ('netCDF', '4.9.2'),
+ ('cURL', '8.7.1'),
+ ('mpi4py', '4.0.1'),
+]
+
+fix_python_shebang_for = ['bin/*']
+sanity_pip_check = True
+use_pip = True
+
+exts_list = [
+ ('cftime', '1.6.4', {
+ 'checksums': ['e325406193758a7ed67308deb52e727782a19e384e183378e7ff62098be0aedc'],
+ }),
+ (name, version, {
+ 'patches': [
+ 'netcdf4-python-1.7.1.post2_relax_tolerance_compression_test.patch',
+ ],
+ 'source_tmpl': 'netcdf4-%(version)s.tar.gz',
+ 'source_urls': ['https://pypi.python.org/packages/source/n/netCDF4'],
+ 'checksums': [
+ {'netcdf4-1.7.1.post2.tar.gz': '37d557e36654889d7020192bfb56f9d5f93894cb32997eb837ae586c538fd7b6'},
+ {'netcdf4-python-1.7.1.post2_relax_tolerance_compression_test.patch':
+ '7faa7e839ad1e816ffd0153e4b76b43ebce3e14d35f0534f812168dfaa78316c'},
+ ],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/nc3tonc4', 'bin/nc4tonc3', 'bin/ncinfo'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = [
+ "nc4tonc3 --help",
+ "nc3tonc4 --help",
+ "ncinfo --help",
+]
+
+moduleclass = 'data'
diff --git a/easybuild/easyconfigs/n/netcdf4-python/netcdf4-python-1.7.1.post2_relax_tolerance_compression_test.patch b/easybuild/easyconfigs/n/netcdf4-python/netcdf4-python-1.7.1.post2_relax_tolerance_compression_test.patch
new file mode 100644
index 00000000000..be4deb77f96
--- /dev/null
+++ b/easybuild/easyconfigs/n/netcdf4-python/netcdf4-python-1.7.1.post2_relax_tolerance_compression_test.patch
@@ -0,0 +1,15 @@
+# Relax tolerance in the compression_szip test to avoid fails on some systems.
+# author: maxim-masterov (SURF)
+#
+diff -Nru netcdf4-1.7.1.post2.orig/test/test_compression_szip.py netcdf4-1.7.1.post2/test/test_compression_szip.py
+--- netcdf4-1.7.1.post2.orig/test/test_compression_szip.py 2024-10-07 16:01:21.276893761 +0200
++++ netcdf4-1.7.1.post2/test/test_compression_szip.py 2024-10-07 16:27:47.424436617 +0200
+@@ -35,7 +35,7 @@
+ assert_almost_equal(datarr,f.variables['data'][:])
+ assert f.variables['data'].filters() ==\
+ {'zlib':False,'szip':False,'zstd':False,'bzip2':False,'blosc':False,'shuffle':False,'complevel':0,'fletcher32':False}
+- assert_almost_equal(datarr,f.variables['data_szip'][:])
++ assert_almost_equal(datarr,f.variables['data_szip'][:], 6)
+ dtest = {'zlib': False, 'szip': {'coding': 'ec', 'pixels_per_block': 32}, 'zstd': False, 'bzip2': False, 'blosc': False, 'shuffle': False, 'complevel': 0, 'fletcher32': False}
+ assert f.variables['data_szip'].filters() == dtest
+ f.close()
diff --git a/easybuild/easyconfigs/n/nettle/nettle-3.10-GCCcore-13.3.0.eb b/easybuild/easyconfigs/n/nettle/nettle-3.10-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..ef91cf135fe
--- /dev/null
+++ b/easybuild/easyconfigs/n/nettle/nettle-3.10-GCCcore-13.3.0.eb
@@ -0,0 +1,38 @@
+easyblock = 'ConfigureMake'
+
+name = 'nettle'
+version = '3.10'
+
+homepage = 'https://www.lysator.liu.se/~nisse/nettle/'
+description = """Nettle is a cryptographic library that is designed to fit easily
+ in more or less any context: In crypto toolkits for object-oriented
+ languages (C++, Python, Pike, ...), in applications like LSH or GNUPG,
+ or even in kernel space."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = [GNU_SOURCE]
+sources = [SOURCE_TAR_GZ]
+checksums = ['b4c518adb174e484cb4acea54118f02380c7133771e7e9beb98a0787194ee47c']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('Autotools', '20231222'),
+]
+
+dependencies = [
+ ('GMP', '6.3.0'),
+]
+
+configopts = '--disable-openssl ' # openssl is just used for the nettle-openssl example and requires openssl 1.1
+
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in ['nettle-hash', 'nettle-lfib-stream', 'pkcs1-conv', 'sexp-conv']] +
+ [('lib/libhogweed.a', 'lib64/libhogweed.a'),
+ ('lib/libhogweed.%s' % SHLIB_EXT, 'lib64/libhogweed.%s' % SHLIB_EXT),
+ ('lib/libnettle.a', 'lib64/libnettle.a'),
+ ('lib/libnettle.%s' % SHLIB_EXT, 'lib64/libnettle.%s' % SHLIB_EXT)],
+ 'dirs': ['include/nettle'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/n/networkx/networkx-3.1-gfbf-2023a.eb b/easybuild/easyconfigs/n/networkx/networkx-3.1-gfbf-2023a.eb
index 2cef5135036..03fe29675fd 100644
--- a/easybuild/easyconfigs/n/networkx/networkx-3.1-gfbf-2023a.eb
+++ b/easybuild/easyconfigs/n/networkx/networkx-3.1-gfbf-2023a.eb
@@ -10,7 +10,11 @@ and study of the structure, dynamics, and functions of complex networks."""
toolchain = {'name': 'gfbf', 'version': '2023a'}
sources = [SOURCE_TAR_GZ]
-checksums = ['de346335408f84de0eada6ff9fafafff9bcda11f0a0dfaa931133debb146ab61']
+patches = ['networkx-3.1_zero_division.patch']
+checksums = [
+ {'networkx-3.1.tar.gz': 'de346335408f84de0eada6ff9fafafff9bcda11f0a0dfaa931133debb146ab61'},
+ {'networkx-3.1_zero_division.patch': 'fb225e9942f18c87c67b49093b86e9f949e043fdf2f3c1ed467b6d3ad857aa35'},
+]
dependencies = [
('Python', '3.11.3'),
diff --git a/easybuild/easyconfigs/n/networkx/networkx-3.1_zero_division.patch b/easybuild/easyconfigs/n/networkx/networkx-3.1_zero_division.patch
new file mode 100644
index 00000000000..3110ca55530
--- /dev/null
+++ b/easybuild/easyconfigs/n/networkx/networkx-3.1_zero_division.patch
@@ -0,0 +1,42 @@
+Fixes the zero division bug `ZeroDivisionError: division by zero`
+patch source: https://github.com/networkx/networkx/pull/6791
+
+From 6e47bef10ba7c17514b0cbd2ec27c1f58ca21200 Mon Sep 17 00:00:00 2001
+From: juanis2112
+Date: Sat, 15 Jul 2023 14:22:02 -0500
+Subject: [PATCH] Fix empty graph zero division error for louvain
+
+---
+ networkx/algorithms/community/louvain.py | 3 +++
+ networkx/algorithms/community/tests/test_louvain.py | 7 +++++++
+ 2 files changed, 10 insertions(+)
+
+diff --git a/networkx/algorithms/community/louvain.py b/networkx/algorithms/community/louvain.py
+index ca71c0c30cb..94a8f7c98b9 100644
+--- a/networkx/algorithms/community/louvain.py
++++ b/networkx/algorithms/community/louvain.py
+@@ -163,6 +163,9 @@ def louvain_partitions(
+ """
+
+ partition = [{u} for u in G.nodes()]
++ if nx.is_empty(G):
++ yield partition
++ return
+ mod = modularity(G, partition, resolution=resolution, weight=weight)
+ is_directed = G.is_directed()
+ if G.is_multigraph():
+diff --git a/networkx/algorithms/community/tests/test_louvain.py b/networkx/algorithms/community/tests/test_louvain.py
+index ed5c2a38db6..e4942dfeb58 100644
+--- a/networkx/algorithms/community/tests/test_louvain.py
++++ b/networkx/algorithms/community/tests/test_louvain.py
+@@ -185,3 +185,10 @@ def test_threshold():
+ mod2 = nx.community.modularity(G, partition2)
+
+ assert mod1 < mod2
++
++
++def test_empty_graph():
++ G = nx.Graph()
++ G.add_nodes_from(range(5))
++ expected = [{0}, {1}, {2}, {3}, {4}]
++ assert nx.community.louvain_communities(G) == expected
diff --git a/easybuild/easyconfigs/n/networkx/networkx-3.4.2-gfbf-2024a.eb b/easybuild/easyconfigs/n/networkx/networkx-3.4.2-gfbf-2024a.eb
new file mode 100644
index 00000000000..9adfd4d5246
--- /dev/null
+++ b/easybuild/easyconfigs/n/networkx/networkx-3.4.2-gfbf-2024a.eb
@@ -0,0 +1,24 @@
+easyblock = 'PythonPackage'
+
+name = 'networkx'
+version = '3.4.2'
+
+homepage = 'https://pypi.python.org/pypi/networkx'
+description = """NetworkX is a Python package for the creation, manipulation,
+and study of the structure, dynamics, and functions of complex networks."""
+
+toolchain = {'name': 'gfbf', 'version': '2024a'}
+
+sources = [SOURCE_TAR_GZ]
+checksums = ['307c3669428c5362aab27c8a1260aa8f47c4e91d3891f48be0141738d8d053e1']
+
+dependencies = [
+ ('Python', '3.12.3'),
+ ('SciPy-bundle', '2024.05'), # required for numpy, scipy, ...
+]
+
+use_pip = True
+download_dep_fail = True
+sanity_pip_check = True
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/n/nf-core/nf-core-2.14.1-foss-2024a.eb b/easybuild/easyconfigs/n/nf-core/nf-core-2.14.1-foss-2024a.eb
new file mode 100644
index 00000000000..5b64c454d51
--- /dev/null
+++ b/easybuild/easyconfigs/n/nf-core/nf-core-2.14.1-foss-2024a.eb
@@ -0,0 +1,76 @@
+easyblock = 'PythonBundle'
+
+name = 'nf-core'
+version = '2.14.1'
+
+homepage = 'https://github.com/nf-core/tools'
+description = "Python package with helper tools for the nf-core community."
+
+toolchain = {'name': 'foss', 'version': '2024a'}
+
+builddependencies = [
+ ('poetry', '1.8.3'),
+ ('PDM', '2.18.2'),
+]
+dependencies = [
+ ('Python', '3.12.3'),
+ ('Python-bundle-PyPI', '2024.06'),
+ ('SciPy-bundle', '2024.05'),
+ ('GitPython', '3.1.43'),
+ ('Markdown', '3.7'),
+ ('Pillow', '10.4.0'),
+ ('prompt-toolkit', '3.0.36'),
+ ('pydantic', '2.9.1'),
+ ('pyfaidx', '0.8.1.2'),
+ ('pytest-workflow', '2.1.0'),
+ ('PyYAML', '6.0.2'),
+ ('tqdm', '4.66.5'),
+]
+
+sanity_pip_check = True
+use_pip = True
+
+exts_list = [
+ ('humanfriendly', '10.0', {'checksums': ['6b0b831ce8f15f7300721aa49829fc4e83921a9a301cc7f606be6686a2288ddc']}),
+ ('coloredlogs', '15.0.1', {'checksums': ['7c991aa71a4577af2f82600d8f8f3a89f936baeaf9b50a9c197da014e5bf16b0']}),
+ ('typer', '0.12.5', {'checksums': ['f592f089bedcc8ec1b974125d64851029c3b1af145f04aca64d69410f0c9b722']}),
+ ('pephubclient', '0.4.4', {'checksums': ['0723b84f165024a08885057b80daa314987474ac6be04cb34e4b0611e7b91561']}),
+ ('peppy', '0.40.6', {'checksums': ['a872bf22da2ac9d2e60ea01fdac5a092618957e937d5620f8ba8cd8e552509fb']}),
+ ('eido', '0.2.3', {'checksums': ['c4e5cb2c8c4d7ae1812afbeafde0737c24cfdee21b22d45af5967c7b6848b565']}),
+ ('attmap', '0.13.2', {'checksums': ['fdffa45f8671c13428eb8c3a1702bfdd1123badb99f7af14d72ad53cc7e770de']}),
+ ('oyaml', '1.0', {'checksums': ['ed8fc096811f4763e1907dce29c35895d6d5936c4d0400fe843a91133d4744ed']}),
+ ('cattrs', '24.1.1', {'checksums': ['16e94a13f9aaf6438bd5be5df521e072b1b00481b4cf807bcb1acbd49f814c08']}),
+ ('yacman', '0.9.3', {'checksums': ['91f29ecad7abf32425be034619bd5b00a50fe2be23447b1827c34e1fd68c055d']}),
+ ('pipestat', '0.10.2', {'checksums': ['274cd7ddf44b1750fce854953c4b8d5cde36a23cb73597136442d05bc5a9acaa']}),
+ ('ubiquerg', '0.8.0', {'checksums': ['3dd8e817c736e45c563bbf9e0d9b252e2a0456729c5644203376a447ffc7e04f']}),
+ ('cfgv', '3.4.0', {'checksums': ['e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560']}),
+ ('nodeenv', '1.9.1', {'checksums': ['6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f']}),
+ ('logmuse', '0.2.8', {'checksums': ['a639d795f33d6876766033dea3c4ceb51617029e5f6e0aa390e7c4bc3012624d']}),
+ ('textual', '0.79.1', {'checksums': ['2aaa9778beac5e56957794ee492bd8d281d39516ccb0e507e726484a1327d8b2']}),
+ ('refgenconf', '0.12.2', {'checksums': ['6c9f9ecd8b91b4f75a535cfbdbdfb136f2dc9e9864142d07aa0352c61cf0cf78']}),
+ ('piper', '0.14.2', {
+ 'modulename': 'pypiper',
+ 'checksums': ['fff74a6e7cbf188a3ce023913a9ce63098e7c3acfa73833fd9e4c4096a578035'],
+ }),
+ ('url-normalize', '1.4.3', {'checksums': ['d23d3a070ac52a67b83a1c59a0e68f8608d1cd538783b401bc9de2c0fac999b2']}),
+ ('identify', '2.6.0', {'checksums': ['cb171c685bdc31bcc4c1734698736a7d5b6c8bf2e0c15117f4d469c8640ae5cf']}),
+ ('questionary', '2.0.1', {'checksums': ['bcce898bf3dbb446ff62830c86c5c6fb9a22a54146f0f5597d3da43b10d8fc8b']}),
+ ('pdiff', '1.1.4', {'checksums': ['9d8f6f8e7ed2ee61aa2f2526106c0047a2bd80eab7d1237f7086139a6e921c45']}),
+ ('filetype', '1.2.0', {'checksums': ['66b56cd6474bf41d8c54660347d37afcc3f7d1970648de365c102ef77548aadb']}),
+ ('requests-cache', '1.2.1', {
+ 'source_tmpl': 'requests_cache-%(version)s.tar.gz',
+ 'checksums': ['68abc986fdc5b8d0911318fbb5f7c80eebcd4d01bfacc6685ecf8876052511d1'],
+ }),
+ ('trogon', '0.5.0', {'checksums': ['61a57f0f1a38227d90601cd020f46960be8e36947b5e56c6932c2e01ecc5042a']}),
+ ('pre-commit', '3.8.0', {
+ 'source_tmpl': 'pre_commit-%(version)s.tar.gz',
+ 'checksums': ['8bb6494d4a20423842e198980c9ecf9f96607a07ea29549e180eef9ae80fe7af'],
+ }),
+ ('refgenie', '0.12.1', {'checksums': ['cfd007ed0981e00d019deb49aaea896952341096494165cb8378488850eec451']}),
+ (name, version, {
+ 'source_tmpl': 'nf_core-%(version)s.tar.gz',
+ 'checksums': ['35bd8d73ecca4eb87443fada31bc7b2562429de3a4bfbf7261db348d14bf54bb'],
+ }),
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/n/ngmlr/ngmlr-0.2.7-foss-2023a.eb b/easybuild/easyconfigs/n/ngmlr/ngmlr-0.2.7-foss-2023a.eb
new file mode 100644
index 00000000000..ca0401d69c7
--- /dev/null
+++ b/easybuild/easyconfigs/n/ngmlr/ngmlr-0.2.7-foss-2023a.eb
@@ -0,0 +1,31 @@
+easyblock = 'CMakeMake'
+
+name = 'ngmlr'
+version = '0.2.7'
+
+homepage = 'https://github.com/philres/ngmlr'
+description = """Ngmlr is a long-read mapper designed to align PacBilo or Oxford Nanopore to a
+ reference genome with a focus on reads that span structural variations."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+source_urls = ['https://github.com/philres/ngmlr/archive']
+sources = ['v%(version)s.tar.gz']
+checksums = ['5126a6b3e726cac0da0713883daac688f38587f118428247a9a3ace5a55b29aa']
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+]
+
+dependencies = [
+ ('zlib', '1.2.13'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/ngmlr'],
+ 'dirs': ['']
+}
+
+sanity_check_commands = ['%(name)s --help']
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/n/nlohmann_json/nlohmann_json-3.11.3-GCCcore-13.3.0.eb b/easybuild/easyconfigs/n/nlohmann_json/nlohmann_json-3.11.3-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..8be75746afa
--- /dev/null
+++ b/easybuild/easyconfigs/n/nlohmann_json/nlohmann_json-3.11.3-GCCcore-13.3.0.eb
@@ -0,0 +1,25 @@
+easyblock = 'CMakeMake'
+
+name = 'nlohmann_json'
+version = '3.11.3'
+
+homepage = 'https://github.com/nlohmann/json'
+description = """JSON for Modern C++"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://github.com/nlohmann/json/archive/refs/tags/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['0d8ef5af7f9794e3263480193c491549b2ba6cc74bb018906202ada498a79406']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('CMake', '3.29.3'),
+]
+
+sanity_check_paths = {
+ 'files': ['include/nlohmann/json.hpp'],
+ 'dirs': ['share/cmake', 'share/pkgconfig'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/n/nsync/nsync-1.29.2-GCCcore-13.3.0.eb b/easybuild/easyconfigs/n/nsync/nsync-1.29.2-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..e7c2035444b
--- /dev/null
+++ b/easybuild/easyconfigs/n/nsync/nsync-1.29.2-GCCcore-13.3.0.eb
@@ -0,0 +1,26 @@
+easyblock = 'CMakeNinja'
+
+name = 'nsync'
+version = '1.29.2'
+
+homepage = 'https://github.com/google/nsync'
+description = """nsync is a C library that exports various synchronization primitives, such as mutexes"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://github.com/google/nsync/archive/refs/tags/']
+sources = ['%(version)s.tar.gz']
+checksums = ['1d63e967973733d2c97e841e3c05fac4d3fa299f01d14c86f2695594c7a4a2ec']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('CMake', '3.29.3'),
+ ('Ninja', '1.12.1'),
+]
+
+sanity_check_paths = {
+ 'files': ['include/nsync.h', 'lib/libnsync.a', 'lib/libnsync_cpp.a'],
+ 'dirs': [],
+}
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/n/numexpr/numexpr-2.9.0-foss-2023a.eb b/easybuild/easyconfigs/n/numexpr/numexpr-2.9.0-foss-2023a.eb
new file mode 100644
index 00000000000..74e99150d4b
--- /dev/null
+++ b/easybuild/easyconfigs/n/numexpr/numexpr-2.9.0-foss-2023a.eb
@@ -0,0 +1,21 @@
+name = 'numexpr'
+version = '2.9.0'
+
+homepage = 'https://numexpr.readthedocs.io/en/latest/'
+description = """The numexpr package evaluates multiple-operator array expressions many times faster than NumPy can.
+ It accepts the expression as a string, analyzes it, rewrites it more efficiently, and compiles it on the fly into
+ code for its internal virtual machine (VM). Due to its integrated just-in-time (JIT) compiler, it does not require a
+ compiler at runtime."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+source_urls = ['https://github.com/pydata/numexpr/archive/refs/tags']
+sources = ['v%(version)s.tar.gz']
+checksums = ['4df4163fcab20030137e8f2aa23e88e1e42e6fe702387cfd95d7675e1d84645e']
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+]
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/n/numpy/numpy-1.16.2_relax-long-complex-test.patch b/easybuild/easyconfigs/n/numpy/numpy-1.16.2_relax-long-complex-test.patch
new file mode 100644
index 00000000000..5649a5c63d2
--- /dev/null
+++ b/easybuild/easyconfigs/n/numpy/numpy-1.16.2_relax-long-complex-test.patch
@@ -0,0 +1,17 @@
+Relax test condition for test failing on PPC
+See https://github.com/numpy/numpy/issues/15763
+
+Author: Alexander Grund (TU Dresden)
+
+diff -aur numpy-1.16.2/numpy/core/tests/test_umath.py numpy-1.16.2-new/numpy/core/tests/test_umath.py
+--- numpy-1.16.2/numpy/core/tests/test_umath.py 2021-03-29 12:29:48.950135026 +0200
++++ numpy-1.16.2-new/numpy/core/tests/test_umath.py 2021-03-29 12:28:09.000000000 +0200
+@@ -2593,7 +2593,7 @@
+ # are accurate down to a few epsilons. (Eg. on Linux 64-bit)
+ # So, give more leeway for long complex tests here:
+ # Can use 2.1 for > Ubuntu LTS Trusty (2014), glibc = 2.19.
+- check(x_series, 50.0*eps)
++ check(x_series, 5e-19)
+ else:
+ check(x_series, 2.1*eps)
+ check(x_basic, 2.0*eps/1e-3)
diff --git a/easybuild/easyconfigs/n/numpy/numpy-1.16.6-foss-2023a-Python-2.7.18.eb b/easybuild/easyconfigs/n/numpy/numpy-1.16.6-foss-2023a-Python-2.7.18.eb
new file mode 100644
index 00000000000..a3367b39bd9
--- /dev/null
+++ b/easybuild/easyconfigs/n/numpy/numpy-1.16.6-foss-2023a-Python-2.7.18.eb
@@ -0,0 +1,37 @@
+name = 'numpy'
+version = '1.16.6'
+versionsuffix = '-Python-%(pyver)s'
+
+homepage = 'http://www.numpy.org'
+description = """NumPy is the fundamental package for scientific computing with Python. It contains among other things:
+ a powerful N-dimensional array object, sophisticated (broadcasting) functions, tools for integrating C/C++ and Fortran
+ code, useful linear algebra, Fourier transform, and random number capabilities. Besides its obvious scientific uses,
+ NumPy can also be used as an efficient multi-dimensional container of generic data. Arbitrary data-types can be
+ defined. This allows NumPy to seamlessly and speedily integrate with a wide variety of databases."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'pic': True}
+
+sources = [SOURCE_ZIP]
+patches = [ # patches copied from SciPy-bundle-2021.10-foss-2021b-Python-2.7.18.eb
+ 'numpy-1.16.2_relax-long-complex-test.patch',
+ 'numpy-1.16.6_add_flexiblas_detection.patch',
+ 'numpy-1.16.6_handle_failing_linalg_test.patch',
+ 'numpy-1.20.3_fix-fortran-compiler-error.patch',
+]
+checksums = [
+ {'numpy-1.16.6.zip': 'e5cf3fdf13401885e8eea8170624ec96225e2174eb0c611c6f26dd33b489e3ff'},
+ {'numpy-1.16.2_relax-long-complex-test.patch': '647dd4099c2968489e5103b50bcd1b3d970b5b536af25ec75efe86127dda07bb'},
+ {'numpy-1.16.6_add_flexiblas_detection.patch': '32ca32dd7ee8d6fcdce5875067acd50970c731cbb2603c6d1ad84ff81ff8c6d5'},
+ {'numpy-1.16.6_handle_failing_linalg_test.patch':
+ 'be9dce98649626b7322ed8d1241b74a4e28c1d1de070a8072dc912cad3eb143d'},
+ {'numpy-1.20.3_fix-fortran-compiler-error.patch':
+ '016e0d02ffabe013248c4fd203a4456edee76839f747c05daf92ac1fe9925189'},
+]
+
+dependencies = [
+ ('Python', '2.7.18'),
+ ('pytest', '4.6.11', versionsuffix),
+]
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/n/numpy/numpy-1.16.6_add_flexiblas_detection.patch b/easybuild/easyconfigs/n/numpy/numpy-1.16.6_add_flexiblas_detection.patch
new file mode 100644
index 00000000000..02528b44bc3
--- /dev/null
+++ b/easybuild/easyconfigs/n/numpy/numpy-1.16.6_add_flexiblas_detection.patch
@@ -0,0 +1,181 @@
+Add flexiblas detection to numpy.
+This is just a copy of the openblas detection with name changed.
+
+Åke Sandgren, 2022-01-13
+diff -ru numpy-1.16.6.orig/numpy/distutils/system_info.py numpy-1.16.6/numpy/distutils/system_info.py
+--- numpy-1.16.6.orig/numpy/distutils/system_info.py 2019-12-27 17:24:44.000000000 +0100
++++ numpy-1.16.6/numpy/distutils/system_info.py 2022-01-13 16:48:14.754235308 +0100
+@@ -20,6 +20,7 @@
+ blas_info
+ lapack_info
+ openblas_info
++ flexiblas_info
+ blis_info
+ blas_opt_info # usage recommended
+ lapack_opt_info # usage recommended
+@@ -395,6 +396,9 @@
+ # openblas with embedded lapack
+ 'openblas_lapack': openblas_lapack_info, # use blas_opt instead
+ 'openblas_clapack': openblas_clapack_info, # use blas_opt instead
++ 'flexiblas': flexiblas_info, # use blas_opt instead
++ 'flexiblas_lapack': flexiblas_lapack_info, # use blas_opt instead
++ 'flexiblas_clapack': flexiblas_clapack_info, # use blas_opt instead
+ 'blis': blis_info, # use blas_opt instead
+ 'lapack_mkl': lapack_mkl_info, # use lapack_opt instead
+ 'blas_mkl': blas_mkl_info, # use blas_opt instead
+@@ -1549,6 +1553,16 @@
+ self.set_info(**lapack_mkl_info)
+ return
+
++ flexiblas_info = get_info('flexiblas_lapack')
++ if flexiblas_info:
++ self.set_info(**flexiblas_info)
++ return
++
++ flexiblas_info = get_info('flexiblas_clapack')
++ if flexiblas_info:
++ self.set_info(**flexiblas_info)
++ return
++
+ openblas_info = get_info('openblas_lapack')
+ if openblas_info:
+ self.set_info(**openblas_info)
+@@ -1633,6 +1647,11 @@
+ self.set_info(**blis_info)
+ return
+
++ flexiblas_info = get_info('flexiblas')
++ if flexiblas_info:
++ self.set_info(**flexiblas_info)
++ return
++
+ openblas_info = get_info('openblas')
+ if openblas_info:
+ self.set_info(**openblas_info)
+@@ -1749,6 +1768,126 @@
+ return res
+
+
++class flexiblas_info(blas_info):
++ section = 'flexiblas'
++ dir_env_var = 'FLEXIBLAS'
++ _lib_names = ['flexiblas']
++ notfounderror = BlasNotFoundError
++
++ def check_embedded_lapack(self, info):
++ return True
++
++ def calc_info(self):
++ c = customized_ccompiler()
++
++ lib_dirs = self.get_lib_dirs()
++
++ flexiblas_libs = self.get_libs('libraries', self._lib_names)
++ if flexiblas_libs == self._lib_names: # backward compat with 1.8.0
++ flexiblas_libs = self.get_libs('flexiblas_libs', self._lib_names)
++
++ info = self.check_libs(lib_dirs, flexiblas_libs, [])
++
++ if c.compiler_type == "msvc" and info is None:
++ from numpy.distutils.fcompiler import new_fcompiler
++ f = new_fcompiler(c_compiler=c)
++ if f and f.compiler_type == 'gnu95':
++ # Try gfortran-compatible library files
++ info = self.check_msvc_gfortran_libs(lib_dirs, flexiblas_libs)
++ # Skip lapack check, we'd need build_ext to do it
++ assume_lapack = True
++ elif info:
++ assume_lapack = False
++ info['language'] = 'c'
++
++ if info is None:
++ return
++
++ # Add extra info for OpenBLAS
++ extra_info = self.calc_extra_info()
++ dict_append(info, **extra_info)
++
++ if not (assume_lapack or self.check_embedded_lapack(info)):
++ return
++
++ info['define_macros'] = [('HAVE_CBLAS', None)]
++ self.set_info(**info)
++
++ def check_msvc_gfortran_libs(self, library_dirs, libraries):
++ # First, find the full path to each library directory
++ library_paths = []
++ for library in libraries:
++ for library_dir in library_dirs:
++ # MinGW static ext will be .a
++ fullpath = os.path.join(library_dir, library + '.a')
++ if os.path.isfile(fullpath):
++ library_paths.append(fullpath)
++ break
++ else:
++ return None
++
++ # Generate numpy.distutils virtual static library file
++ tmpdir = os.path.join(os.getcwd(), 'build', 'flexiblas')
++ if not os.path.isdir(tmpdir):
++ os.makedirs(tmpdir)
++
++ info = {'library_dirs': [tmpdir],
++ 'libraries': ['flexiblas'],
++ 'language': 'f77'}
++
++ fake_lib_file = os.path.join(tmpdir, 'flexiblas.fobjects')
++ fake_clib_file = os.path.join(tmpdir, 'flexiblas.cobjects')
++ with open(fake_lib_file, 'w') as f:
++ f.write("\n".join(library_paths))
++ with open(fake_clib_file, 'w') as f:
++ pass
++
++ return info
++
++class flexiblas_lapack_info(flexiblas_info):
++ section = 'flexiblas'
++ dir_env_var = 'FLEXIBLAS'
++ _lib_names = ['flexiblas']
++ notfounderror = BlasNotFoundError
++
++ def check_embedded_lapack(self, info):
++ res = False
++ c = customized_ccompiler()
++
++ tmpdir = tempfile.mkdtemp()
++ s = """void zungqr_();
++ int main(int argc, const char *argv[])
++ {
++ zungqr_();
++ return 0;
++ }"""
++ src = os.path.join(tmpdir, 'source.c')
++ out = os.path.join(tmpdir, 'a.out')
++ # Add the additional "extra" arguments
++ try:
++ extra_args = info['extra_link_args']
++ except Exception:
++ extra_args = []
++ if sys.version_info < (3, 5) and sys.version_info > (3, 0) and c.compiler_type == "msvc":
++ extra_args.append("/MANIFEST")
++ try:
++ with open(src, 'wt') as f:
++ f.write(s)
++ obj = c.compile([src], output_dir=tmpdir)
++ try:
++ c.link_executable(obj, out, libraries=info['libraries'],
++ library_dirs=info['library_dirs'],
++ extra_postargs=extra_args)
++ res = True
++ except distutils.ccompiler.LinkError:
++ res = False
++ finally:
++ shutil.rmtree(tmpdir)
++ return res
++
++class flexiblas_clapack_info(flexiblas_lapack_info):
++ _lib_names = ['flexiblas', 'lapack']
++
+ class openblas_info(blas_info):
+ section = 'openblas'
+ dir_env_var = 'OPENBLAS'
diff --git a/easybuild/easyconfigs/n/numpy/numpy-1.16.6_handle_failing_linalg_test.patch b/easybuild/easyconfigs/n/numpy/numpy-1.16.6_handle_failing_linalg_test.patch
new file mode 100644
index 00000000000..d85fb475809
--- /dev/null
+++ b/easybuild/easyconfigs/n/numpy/numpy-1.16.6_handle_failing_linalg_test.patch
@@ -0,0 +1,17 @@
+linalg/test_nan is marked xfail in at least 1.21.3
+Do so here too since it fails with newer openblas/compiler versions.
+
+Åke sandgren, 2022-01-13
+diff -ru numpy-1.16.6.orig/numpy/linalg/tests/test_linalg.py numpy-1.16.6/numpy/linalg/tests/test_linalg.py
+--- numpy-1.16.6.orig/numpy/linalg/tests/test_linalg.py 2019-12-27 17:24:44.000000000 +0100
++++ numpy-1.16.6/numpy/linalg/tests/test_linalg.py 2022-01-13 17:21:36.658857878 +0100
+@@ -740,6 +740,9 @@
+ for A, p in itertools.product(As, p_neg):
+ linalg.cond(A, p)
+
++ @pytest.mark.xfail(True, run=False,
++ reason="Platform/LAPACK-dependent failure, "
++ "see gh-18914")
+ def test_nan(self):
+ # nans should be passed through, not converted to infs
+ ps = [None, 1, -1, 2, -2, 'fro']
diff --git a/easybuild/easyconfigs/n/numpy/numpy-1.20.3_fix-fortran-compiler-error.patch b/easybuild/easyconfigs/n/numpy/numpy-1.20.3_fix-fortran-compiler-error.patch
new file mode 100644
index 00000000000..32b41061f06
--- /dev/null
+++ b/easybuild/easyconfigs/n/numpy/numpy-1.20.3_fix-fortran-compiler-error.patch
@@ -0,0 +1,43 @@
+Using Fortran compilers which differ "too much" from GCC fails building NumPy with something like
+> A valid Fortran version was not found in this string: [...]
+
+See https://github.com/easybuilders/easybuild-easyblocks/issues/2518 and https://github.com/numpy/numpy/pull/26502
+
+Fix by converting the hard error into a warning as the issue would be handled later if required.
+E.g. for building NumPy we don't need a Fortran compiler at all.
+
+Author: Alexander Grund (TU Dresden)
+
+diff --git a/numpy/distutils/fcompiler/gnu.py b/numpy/distutils/fcompiler/gnu.py
+index eac4cbb477..8a1043fe26 100644
+--- a/numpy/distutils/fcompiler/gnu.py
++++ b/numpy/distutils/fcompiler/gnu.py
+@@ -8,6 +8,7 @@ import hashlib
+ import base64
+ import subprocess
+ from subprocess import Popen, PIPE, STDOUT
++from distutils import log
+ from numpy.distutils.exec_command import filepath_from_subprocess_output
+ from numpy.distutils.fcompiler import FCompiler
+ from distutils.version import LooseVersion
+@@ -69,9 +70,9 @@ class GnuFCompiler(FCompiler):
+ # from the version string
+ return ('gfortran', v)
+
+- # If still nothing, raise an error to make the problem easy to find.
+- err = 'A valid Fortran version was not found in this string:\n'
+- raise ValueError(err + version_string)
++ # If still nothing, warn to make the problem easy to find.
++ log.warn('A valid Fortran version was not found in this string:\n'
++ + version_string)
+
+ def version_match(self, version_string):
+ v = self.gnu_version_match(version_string)
+@@ -539,7 +540,6 @@ def _can_target(cmd, arch):
+
+
+ if __name__ == '__main__':
+- from distutils import log
+ from numpy.distutils import customized_fcompiler
+ log.set_verbosity(2)
+
diff --git a/easybuild/easyconfigs/o/ONNX-Runtime/ONNX-Runtime-1.19.2-foss-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/o/ONNX-Runtime/ONNX-Runtime-1.19.2-foss-2023a-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..91b8598722a
--- /dev/null
+++ b/easybuild/easyconfigs/o/ONNX-Runtime/ONNX-Runtime-1.19.2-foss-2023a-CUDA-12.1.1.eb
@@ -0,0 +1,67 @@
+easyblock = 'PythonBundle'
+
+name = 'ONNX-Runtime'
+version = '1.19.2'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://onnxruntime.ai'
+description = """ONNX Runtime inference can enable faster customer experiences and lower costs,
+supporting models from deep learning frameworks such as PyTorch and
+TensorFlow/Keras as well as classical machine learning libraries such as
+scikit-learn, LightGBM, XGBoost, etc. ONNX Runtime is compatible with different
+hardware, drivers, and operating systems, and provides optimal performance by
+leveraging hardware accelerators where applicable alongside graph optimizations
+and transforms."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('CUDA', '12.1.1', '', SYSTEM),
+ ('Python', '3.11.3'),
+ ('ONNX', '1.15.0'),
+ ('flatbuffers-python', '23.5.26'),
+ ('sympy', '1.12'),
+]
+
+use_pip = True
+
+local_whl_tmpl = 'onnxruntime_gpu-%%(version)s-cp311-cp311-manylinux_2_27_%s.manylinux_2_28_%s.whl'
+
+exts_list = [
+ ('humanfriendly', '10.0', {
+ 'checksums': ['6b0b831ce8f15f7300721aa49829fc4e83921a9a301cc7f606be6686a2288ddc'],
+ }),
+ ('coloredlogs', '15.0.1', {
+ 'checksums': ['7c991aa71a4577af2f82600d8f8f3a89f936baeaf9b50a9c197da014e5bf16b0'],
+ }),
+ (name, version, {
+ 'source_urls': ['http://pypi.python.org/packages/source/o/onnxruntime-gpu'],
+ 'sources': [local_whl_tmpl % ('%(arch)s', '%(arch)s')],
+ 'checksums': [{
+ local_whl_tmpl % ('x86_64', 'x86_64'):
+ '562fc7c755393eaad9751e56149339dd201ffbfdb3ef5f43ff21d0619ba9045f',
+ }],
+ 'modulename': 'onnxruntime',
+ }),
+]
+
+# Due to its name 'onnxruntime-gpu', this package does not fullfil requirements on 'onnxruntime' although it provides
+# the 'onnxruntime' python module. Fix this dependency issue in pip by creating a stub 'onnxruntime' dist-info folder
+_py_sitepkgs = '%(installdir)s/lib/python%(pyshortver)s/site-packages'
+postinstallcmds = [
+ "cp -r %s/onnxruntime{_gpu,}-%%(version)s.dist-info" % _py_sitepkgs,
+ "sed -i 's/onnxruntime.gpu/onnxruntime/g' %s/onnxruntime-%%(version)s.dist-info/{METADATA,RECORD}" % _py_sitepkgs,
+]
+
+sanity_pip_check = True
+
+_py_sitepkgs_dirs = ['onnxruntime', 'onnxruntime-%(version)s.dist-info', 'onnxruntime_gpu-%(version)s.dist-info']
+
+sanity_check_paths = {
+ 'files': [],
+ 'dirs': ['lib/python%%(pyshortver)s/site-packages/%s' % x for x in _py_sitepkgs_dirs],
+}
+
+options = {'modulename': 'onnxruntime'}
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/o/ONNX-Runtime/ONNX-Runtime-1.19.2-foss-2023a.eb b/easybuild/easyconfigs/o/ONNX-Runtime/ONNX-Runtime-1.19.2-foss-2023a.eb
new file mode 100644
index 00000000000..440ae5d93e7
--- /dev/null
+++ b/easybuild/easyconfigs/o/ONNX-Runtime/ONNX-Runtime-1.19.2-foss-2023a.eb
@@ -0,0 +1,50 @@
+easyblock = 'PythonBundle'
+
+name = 'ONNX-Runtime'
+version = '1.19.2'
+
+homepage = 'https://onnxruntime.ai'
+description = """ONNX Runtime inference can enable faster customer experiences and lower costs,
+supporting models from deep learning frameworks such as PyTorch and
+TensorFlow/Keras as well as classical machine learning libraries such as
+scikit-learn, LightGBM, XGBoost, etc. ONNX Runtime is compatible with different
+hardware, drivers, and operating systems, and provides optimal performance by
+leveraging hardware accelerators where applicable alongside graph optimizations
+and transforms."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('ONNX', '1.15.0'),
+ ('flatbuffers-python', '23.5.26'),
+ ('sympy', '1.12'),
+]
+
+use_pip = True
+
+local_whl_tmpl = 'onnxruntime-%%(version)s-cp311-cp311-manylinux_2_27_%s.manylinux_2_28_%s.whl'
+
+exts_list = [
+ ('humanfriendly', '10.0', {
+ 'checksums': ['6b0b831ce8f15f7300721aa49829fc4e83921a9a301cc7f606be6686a2288ddc'],
+ }),
+ ('coloredlogs', '15.0.1', {
+ 'checksums': ['7c991aa71a4577af2f82600d8f8f3a89f936baeaf9b50a9c197da014e5bf16b0'],
+ }),
+ (name, version, {
+ 'source_urls': ['http://pypi.python.org/packages/source/o/onnxruntime'],
+ 'sources': [local_whl_tmpl % ('%(arch)s', '%(arch)s')],
+ 'checksums': [{
+ local_whl_tmpl % ('x86_64', 'x86_64'):
+ 'a36511dc07c5c964b916697e42e366fa43c48cdb3d3503578d78cef30417cb84',
+ local_whl_tmpl % ('aarch64', 'aarch64'):
+ 'c1dfe4f660a71b31caa81fc298a25f9612815215a47b286236e61d540350d7b6',
+ }],
+ 'modulename': 'onnxruntime',
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/o/OPARI2/OPARI2-2.0.8-GCCcore-13.3.0.eb b/easybuild/easyconfigs/o/OPARI2/OPARI2-2.0.8-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..503a56951d0
--- /dev/null
+++ b/easybuild/easyconfigs/o/OPARI2/OPARI2-2.0.8-GCCcore-13.3.0.eb
@@ -0,0 +1,45 @@
+# #
+# This is an easyconfig file for EasyBuild, see https://github.com/easybuilders/easybuild
+#
+# Copyright:: Copyright 2013-2024 Juelich Supercomputing Centre, Germany
+# Authors:: Bernd Mohr
+# Markus Geimer
+# Jan André Reuter
+# License:: 3-clause BSD
+#
+# This work is based on experiences from the UNITE project
+# http://apps.fz-juelich.de/unite/
+# #
+
+easyblock = 'ConfigureMake'
+
+name = 'OPARI2'
+version = '2.0.8'
+
+homepage = 'https://www.score-p.org'
+description = """
+ OPARI2, the successor of Forschungszentrum Juelich's OPARI, is a
+ source-to-source instrumentation tool for OpenMP and hybrid codes.
+ It surrounds OpenMP directives and runtime library calls with calls
+ to the POMP2 measurement interface.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['http://perftools.pages.jsc.fz-juelich.de/cicd/%(namelower)s/tags/%(namelower)s-%(version)s']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['196e59a2a625e6c795a6124c61e784bad142f9f38df0b4fa4d435ba9b9c19721']
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+
+
+sanity_check_paths = {
+ 'files': ['bin/opari2', 'include/opari2/pomp2_lib.h'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ['opari2-config --help']
+
+moduleclass = 'perf'
diff --git a/easybuild/easyconfigs/o/OPERA-MS/OPERA-MS-0.9.0-20240703-foss-2023a.eb b/easybuild/easyconfigs/o/OPERA-MS/OPERA-MS-0.9.0-20240703-foss-2023a.eb
new file mode 100644
index 00000000000..620366c965b
--- /dev/null
+++ b/easybuild/easyconfigs/o/OPERA-MS/OPERA-MS-0.9.0-20240703-foss-2023a.eb
@@ -0,0 +1,67 @@
+easyblock = 'MakeCp'
+
+name = 'OPERA-MS'
+local_commit = '026f9a5'
+version = '0.9.0-20240703'
+
+homepage = 'https://github.com/CSB5/OPERA-MS'
+description = """OPERA-MS is a hybrid metagenomic assembler which combines the
+ advantages of short and long-read technologies to provide high quality
+ assemblies, addressing issues of low contiguity for short-read only assemblies,
+ and low base-pair quality for long-read only assemblies."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+source_urls = ['https://github.com/CSB5/OPERA-MS/archive/']
+sources = [{'download_filename': '%s.tar.gz' % local_commit, 'filename': SOURCE_TAR_GZ}]
+checksums = ['72a3e16287dd1f2098adac41930d6a54779a033f5bf78c2659580afae5a7280c']
+
+dependencies = [
+ ('Perl', '5.36.1'),
+ ('Perl-bundle-CPAN', '5.36.1'),
+ ('Statistics-R', '0.34'),
+ ('Python', '3.11.3'),
+ ('SAMtools', '0.1.20'),
+]
+
+prebuildopts = 'rm %(start_dir)s/tools_opera_ms/samtools && '
+prebuildopts += 'cd %(start_dir)s/tools_opera_ms && ln -s $EBROOTSAMTOOLS/bin/samtools && '
+prebuildopts += 'cd %(start_dir)s &&'
+buildopts = 'CFLAGS="$CFLAGS"'
+
+files_to_copy = [
+ 'OPERA-MS.pl',
+ 'bin',
+ 'src_utils',
+ 'tools_opera_ms',
+ (['OPERA-LG/bin'], 'OPERA-LG'),
+]
+
+postinstallcmds = [
+ "echo '#!/bin/sh\n exec perl %(installdir)s/OPERA-MS.pl $@' > %(installdir)s/bin/OPERA-MS",
+ 'chmod +x %(installdir)s/bin/OPERA-MS',
+ 'ln -s $EBROOTPERL/bin/perl %(installdir)s/tools_opera_ms/perl',
+ '%(installdir)s/bin/OPERA-MS ' + ' '.join([
+ '--contig-file test_files/contigs.fasta',
+ '--short-read1 test_files/R1.fastq.gz',
+ '--short-read2 test_files/R2.fastq.gz',
+ '--long-read test_files/long_read.fastq',
+ '--no-ref-clustering',
+ '--out-dir $TMPDIR',
+ ]),
+]
+
+fix_perl_shebang_for = ['bin/*.pl', 'OPERA-MS.pl', 'OPERA-LG/bin/*.pl']
+fix_python_shebang_for = ['bin/*.py', 'OPERA-LG/bin/*.py']
+
+sanity_check_paths = {
+ 'files': ['bin/OPERA-MS'],
+ 'dirs': [],
+}
+
+sanity_check_commands = [
+ 'OPERA-MS --help',
+ 'OPERA-MS check-dependency',
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/o/ORCA/ORCA-6.0.0-foss-2023b-avx2.eb b/easybuild/easyconfigs/o/ORCA/ORCA-6.0.0-foss-2023b-avx2.eb
new file mode 100644
index 00000000000..ff3112bb084
--- /dev/null
+++ b/easybuild/easyconfigs/o/ORCA/ORCA-6.0.0-foss-2023b-avx2.eb
@@ -0,0 +1,37 @@
+name = 'ORCA'
+version = '6.0.0'
+versionsuffix = '-avx2'
+
+homepage = 'https://orcaforum.kofo.mpg.de'
+description = """
+ORCA is a flexible, efficient and easy-to-use general purpose tool for quantum
+chemistry with specific emphasis on spectroscopic properties of open-shell
+molecules. It features a wide variety of standard quantum chemical methods
+ranging from semiempirical methods to DFT to single- and multireference
+correlated ab initio methods. It can also treat environmental and relativistic
+effects."""
+
+toolchain = {'name': 'foss', 'version': '2023b'}
+
+download_instructions = "Shared build of ORCA: download from https://orcaforum.kofo.mpg.de"
+# mostly dynamically linked (SCALAPACK, OpenBLAS are still embedded)
+sources = ['%%(namelower)s_%s_linux_%%(orcaarch)s_avx2_shared_openmpi416.tar.xz' % version.replace('.', '_')]
+checksums = [
+ # orca_6_0_0_linux_x86-64_avx2_shared_openmpi416.tar.xz
+ '02c21294efe7b1b721e26cb90f98ee15ad682d02807201b7d217dfe67905a2fd',
+]
+
+# optional dependency for ORCA,
+# see also https://xtb-docs.readthedocs.io/en/latest/setup.html#using-xtb-with-orca
+dependencies = [('xtb', '6.7.1')]
+
+postinstallcmds = ["cd %(installdir)s/bin && ln -s $EBROOTXTB/bin/xtb otool_xtb"]
+
+enhance_sanity_check = True
+
+sanity_check_paths = {
+ 'files': ['bin/orca', 'bin/otool_xtb'],
+ 'dirs': [],
+}
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/o/ORCA/ORCA-6.0.0-foss-2023b.eb b/easybuild/easyconfigs/o/ORCA/ORCA-6.0.0-foss-2023b.eb
new file mode 100644
index 00000000000..f28a5a3ff99
--- /dev/null
+++ b/easybuild/easyconfigs/o/ORCA/ORCA-6.0.0-foss-2023b.eb
@@ -0,0 +1,36 @@
+name = 'ORCA'
+version = '6.0.0'
+
+homepage = 'https://orcaforum.kofo.mpg.de'
+description = """
+ORCA is a flexible, efficient and easy-to-use general purpose tool for quantum
+chemistry with specific emphasis on spectroscopic properties of open-shell
+molecules. It features a wide variety of standard quantum chemical methods
+ranging from semiempirical methods to DFT to single- and multireference
+correlated ab initio methods. It can also treat environmental and relativistic
+effects."""
+
+toolchain = {'name': 'foss', 'version': '2023b'}
+
+download_instructions = "Shared build of ORCA: download from https://orcaforum.kofo.mpg.de"
+# mostly dynamically linked (SCALAPACK, OpenBLAS are still embedded)
+sources = ['%%(namelower)s_%s_linux_%%(orcaarch)s_shared_openmpi416.tar.xz' % version.replace('.', '_')]
+checksums = [
+ # orca_6_0_0_linux_x86-64_shared_openmpi416.tar.xz
+ '219bd1deb6d64a63cb72471926cb81665cbbcdec19f9c9549761be67d49a29c6',
+]
+
+# optional dependency for ORCA,
+# see also https://xtb-docs.readthedocs.io/en/latest/setup.html#using-xtb-with-orca
+dependencies = [('xtb', '6.7.1')]
+
+postinstallcmds = ["cd %(installdir)s/bin && ln -s $EBROOTXTB/bin/xtb otool_xtb"]
+
+enhance_sanity_check = True
+
+sanity_check_paths = {
+ 'files': ['bin/orca', 'bin/otool_xtb'],
+ 'dirs': [],
+}
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/o/ORCA/ORCA-6.0.0-gompi-2023a-avx2.eb b/easybuild/easyconfigs/o/ORCA/ORCA-6.0.0-gompi-2023a-avx2.eb
new file mode 100644
index 00000000000..cdc92c16f64
--- /dev/null
+++ b/easybuild/easyconfigs/o/ORCA/ORCA-6.0.0-gompi-2023a-avx2.eb
@@ -0,0 +1,24 @@
+name = 'ORCA'
+version = '6.0.0'
+versionsuffix = '-avx2'
+
+homepage = 'https://orcaforum.kofo.mpg.de'
+description = """
+ORCA is a flexible, efficient and easy-to-use general purpose tool for quantum
+chemistry with specific emphasis on spectroscopic properties of open-shell
+molecules. It features a wide variety of standard quantum chemical methods
+ranging from semiempirical methods to DFT to single- and multireference
+correlated ab initio methods. It can also treat environmental and relativistic
+effects."""
+
+toolchain = {'name': 'gompi', 'version': '2023a'}
+
+download_instructions = "Shared build of ORCA: download from https://orcaforum.kofo.mpg.de"
+# mostly dynamically linked (SCALAPACK, OpenBLAS are still embedded)
+sources = ['%%(namelower)s_%s_linux_%%(orcaarch)s_avx2_shared_openmpi416.tar.xz' % version.replace('.', '_')]
+checksums = [
+ # orca_6_0_0_linux_x86-64_avx2_shared_openmpi416.tar.xz
+ '02c21294efe7b1b721e26cb90f98ee15ad682d02807201b7d217dfe67905a2fd',
+]
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/o/ORCA/ORCA-6.0.0-gompi-2023a.eb b/easybuild/easyconfigs/o/ORCA/ORCA-6.0.0-gompi-2023a.eb
new file mode 100644
index 00000000000..8bf88fa8129
--- /dev/null
+++ b/easybuild/easyconfigs/o/ORCA/ORCA-6.0.0-gompi-2023a.eb
@@ -0,0 +1,23 @@
+name = 'ORCA'
+version = '6.0.0'
+
+homepage = 'https://orcaforum.kofo.mpg.de'
+description = """
+ORCA is a flexible, efficient and easy-to-use general purpose tool for quantum
+chemistry with specific emphasis on spectroscopic properties of open-shell
+molecules. It features a wide variety of standard quantum chemical methods
+ranging from semiempirical methods to DFT to single- and multireference
+correlated ab initio methods. It can also treat environmental and relativistic
+effects."""
+
+toolchain = {'name': 'gompi', 'version': '2023a'}
+
+download_instructions = "Shared build of ORCA: download from https://orcaforum.kofo.mpg.de"
+# mostly dynamically linked (SCALAPACK, OpenBLAS are still embedded)
+sources = ['%%(namelower)s_%s_linux_%%(orcaarch)s_shared_openmpi416.tar.xz' % version.replace('.', '_')]
+checksums = [
+ # orca_6_0_0_linux_x86-64_shared_openmpi416.tar.xz
+ '219bd1deb6d64a63cb72471926cb81665cbbcdec19f9c9549761be67d49a29c6',
+]
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/o/ORCA/ORCA-6.0.1-gompi-2023a-avx2.eb b/easybuild/easyconfigs/o/ORCA/ORCA-6.0.1-gompi-2023a-avx2.eb
new file mode 100644
index 00000000000..bc34fff4fe8
--- /dev/null
+++ b/easybuild/easyconfigs/o/ORCA/ORCA-6.0.1-gompi-2023a-avx2.eb
@@ -0,0 +1,24 @@
+name = 'ORCA'
+version = '6.0.1'
+versionsuffix = '-avx2'
+
+homepage = 'https://orcaforum.kofo.mpg.de'
+description = """
+ORCA is a flexible, efficient and easy-to-use general purpose tool for quantum
+chemistry with specific emphasis on spectroscopic properties of open-shell
+molecules. It features a wide variety of standard quantum chemical methods
+ranging from semiempirical methods to DFT to single- and multireference
+correlated ab initio methods. It can also treat environmental and relativistic
+effects."""
+
+toolchain = {'name': 'gompi', 'version': '2023a'}
+
+download_instructions = "Shared build of ORCA: download from https://orcaforum.kofo.mpg.de"
+# mostly dynamically linked (SCALAPACK, OpenBLAS are still embedded)
+sources = ['%%(namelower)s_%s_linux_%%(orcaarch)s_shared_openmpi416_avx2.tar.xz' % version.replace('.', '_')]
+checksums = [
+ # orca_6_0_1_linux_x86-64_shared_openmpi416_avx2.tar.xz
+ 'f31f98256a0c6727b6ddfe50aa3ac64c45549981138d670a57e90114b4b9c9d2',
+]
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/o/ORCA/ORCA-6.0.1-gompi-2023b-avx2.eb b/easybuild/easyconfigs/o/ORCA/ORCA-6.0.1-gompi-2023b-avx2.eb
new file mode 100644
index 00000000000..6194413a4f1
--- /dev/null
+++ b/easybuild/easyconfigs/o/ORCA/ORCA-6.0.1-gompi-2023b-avx2.eb
@@ -0,0 +1,24 @@
+name = 'ORCA'
+version = '6.0.1'
+versionsuffix = '-avx2'
+
+homepage = 'https://orcaforum.kofo.mpg.de'
+description = """
+ORCA is a flexible, efficient and easy-to-use general purpose tool for quantum
+chemistry with specific emphasis on spectroscopic properties of open-shell
+molecules. It features a wide variety of standard quantum chemical methods
+ranging from semiempirical methods to DFT to single- and multireference
+correlated ab initio methods. It can also treat environmental and relativistic
+effects."""
+
+toolchain = {'name': 'gompi', 'version': '2023b'}
+
+download_instructions = "Shared build of ORCA: download from https://orcaforum.kofo.mpg.de"
+# mostly dynamically linked (SCALAPACK, OpenBLAS are still embedded)
+sources = ['%%(namelower)s_%s_linux_%%(orcaarch)s_shared_openmpi416_avx2.tar.xz' % version.replace('.', '_')]
+checksums = [
+ # orca_6_0_1_linux_x86-64_shared_openmpi416_avx2.tar.xz
+ 'f31f98256a0c6727b6ddfe50aa3ac64c45549981138d670a57e90114b4b9c9d2',
+]
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/o/OSU-Micro-Benchmarks/OSU-Micro-Benchmarks-7.5-gompi-2023b-CUDA-12.4.0.eb b/easybuild/easyconfigs/o/OSU-Micro-Benchmarks/OSU-Micro-Benchmarks-7.5-gompi-2023b-CUDA-12.4.0.eb
new file mode 100644
index 00000000000..52593680dff
--- /dev/null
+++ b/easybuild/easyconfigs/o/OSU-Micro-Benchmarks/OSU-Micro-Benchmarks-7.5-gompi-2023b-CUDA-12.4.0.eb
@@ -0,0 +1,38 @@
+easyblock = 'ConfigureMake'
+
+name = 'OSU-Micro-Benchmarks'
+version = '7.5'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://mvapich.cse.ohio-state.edu/benchmarks/'
+description = """OSU Micro-Benchmarks"""
+
+toolchain = {'name': 'gompi', 'version': '2023b'}
+toolchainopts = {'usempi': True}
+
+source_urls = ['https://mvapich.cse.ohio-state.edu/download/mvapich/']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['1cf84ac5419456202757a757c5f9a4f5c6ecd05c65783c7976421cfd6020b3b3']
+
+dependencies = [
+ ('CUDA', '12.4.0', '', SYSTEM),
+ ('NCCL', '2.20.5', versionsuffix),
+ ('UCX-CUDA', '1.15.0', versionsuffix),
+ ('UCC-CUDA', '1.2.0', versionsuffix),
+]
+
+configopts = ' --enable-cuda --with-cuda=$EBROOTCUDA --enable-ncclomb --with-nccl=$EBROOTNCCL'
+
+local_benchmark_dirs = [
+ 'libexec/osu-micro-benchmarks/mpi/%s' % x for x in ['collective', 'one-sided', 'pt2pt', 'startup']
+] + [
+ 'libexec/osu-micro-benchmarks/xccl/%s' % x for x in ['collective', 'pt2pt']
+]
+modextrapaths = {'PATH': local_benchmark_dirs}
+
+sanity_check_paths = {
+ 'files': [],
+ 'dirs': local_benchmark_dirs,
+}
+
+moduleclass = 'perf'
diff --git a/easybuild/easyconfigs/o/OTF2/OTF2-3.0-GCCcore-11.3.0.eb b/easybuild/easyconfigs/o/OTF2/OTF2-3.0-GCCcore-11.3.0.eb
index 6e982449e9e..fe8a5244c12 100644
--- a/easybuild/easyconfigs/o/OTF2/OTF2-3.0-GCCcore-11.3.0.eb
+++ b/easybuild/easyconfigs/o/OTF2/OTF2-3.0-GCCcore-11.3.0.eb
@@ -3,6 +3,7 @@
# Copyright:: Copyright 2013-2019 Juelich Supercomputing Centre, Germany
# Authors:: Bernd Mohr
# Markus Geimer
+# Jan Andre Reuter
# License:: 3-clause BSD
#
# This work is based on experiences from the UNITE project
@@ -34,17 +35,21 @@ builddependencies = [
dependencies = [
# SIONlib container support (optional):
('SIONlib', '1.7.7', '-tools'),
+ # OTF2 Python bindings
+ ('Python', '3.10.4'),
]
+local_pyshortver = '3.10'
configopts = '--enable-shared'
+modextrapaths = {'PYTHONPATH': ['lib64/python%s/site-packages' % local_pyshortver]}
sanity_check_paths = {
'files': ['bin/otf2-config', 'include/otf2/otf2.h',
'lib/libotf2.a', 'lib/libotf2.%s' % SHLIB_EXT],
'dirs': [],
}
-
-sanity_check_commands = ['%(namelower)s-config --help']
+sanity_check_commands = ['%(namelower)s-config --help',
+ 'python -c "import %(namelower)s"']
moduleclass = 'perf'
diff --git a/easybuild/easyconfigs/o/OTF2/OTF2-3.0.2-GCCcore-11.2.0.eb b/easybuild/easyconfigs/o/OTF2/OTF2-3.0.2-GCCcore-11.2.0.eb
index 7c4d60f0514..488b8e0de0d 100644
--- a/easybuild/easyconfigs/o/OTF2/OTF2-3.0.2-GCCcore-11.2.0.eb
+++ b/easybuild/easyconfigs/o/OTF2/OTF2-3.0.2-GCCcore-11.2.0.eb
@@ -3,6 +3,7 @@
# Copyright:: Copyright 2013-2019 Juelich Supercomputing Centre, Germany
# Authors:: Bernd Mohr
# Markus Geimer
+# Jan Andre Reuter
# License:: 3-clause BSD
#
# This work is based on experiences from the UNITE project
@@ -34,17 +35,22 @@ builddependencies = [
dependencies = [
# SIONlib container support (optional):
('SIONlib', '1.7.7', '-tools'),
+ # OTF2 Python bindings
+ ('Python', '3.9.6'),
]
+local_pyshortver = '3.9'
configopts = '--enable-shared'
+modextrapaths = {'PYTHONPATH': ['lib64/python%s/site-packages' % local_pyshortver]}
sanity_check_paths = {
'files': ['bin/otf2-config', 'include/otf2/otf2.h',
'lib/libotf2.a', 'lib/libotf2.%s' % SHLIB_EXT],
'dirs': [],
}
+sanity_check_commands = ['%(namelower)s-config --help',
+ 'python -c "import %(namelower)s"']
-sanity_check_commands = ['%(namelower)s-config --help']
moduleclass = 'perf'
diff --git a/easybuild/easyconfigs/o/OTF2/OTF2-3.0.2-GCCcore-11.3.0.eb b/easybuild/easyconfigs/o/OTF2/OTF2-3.0.2-GCCcore-11.3.0.eb
index 61eba75f5f0..6756aa72eac 100644
--- a/easybuild/easyconfigs/o/OTF2/OTF2-3.0.2-GCCcore-11.3.0.eb
+++ b/easybuild/easyconfigs/o/OTF2/OTF2-3.0.2-GCCcore-11.3.0.eb
@@ -3,6 +3,7 @@
# Copyright:: Copyright 2013-2019 Juelich Supercomputing Centre, Germany
# Authors:: Bernd Mohr
# Markus Geimer
+# Jan Andre Reuter
# License:: 3-clause BSD
#
# This work is based on experiences from the UNITE project
@@ -34,17 +35,21 @@ builddependencies = [
dependencies = [
# SIONlib container support (optional):
('SIONlib', '1.7.7', '-tools'),
+ # OTF2 Python bindings
+ ('Python', '3.10.4'),
]
+local_pyshortver = '3.10'
configopts = '--enable-shared'
+modextrapaths = {'PYTHONPATH': ['lib64/python%s/site-packages' % local_pyshortver]}
sanity_check_paths = {
'files': ['bin/otf2-config', 'include/otf2/otf2.h',
'lib/libotf2.a', 'lib/libotf2.%s' % SHLIB_EXT],
'dirs': [],
}
-
-sanity_check_commands = ['%(namelower)s-config --help']
+sanity_check_commands = ['%(namelower)s-config --help',
+ 'python -c "import %(namelower)s"']
moduleclass = 'perf'
diff --git a/easybuild/easyconfigs/o/OTF2/OTF2-3.0.3-GCCcore-12.2.0.eb b/easybuild/easyconfigs/o/OTF2/OTF2-3.0.3-GCCcore-12.2.0.eb
index 54478bf62fa..f4c842e0450 100644
--- a/easybuild/easyconfigs/o/OTF2/OTF2-3.0.3-GCCcore-12.2.0.eb
+++ b/easybuild/easyconfigs/o/OTF2/OTF2-3.0.3-GCCcore-12.2.0.eb
@@ -3,6 +3,7 @@
# Copyright:: Copyright 2013-2019 Juelich Supercomputing Centre, Germany
# Authors:: Bernd Mohr
# Markus Geimer
+# Jan Andre Reuter
# License:: 3-clause BSD
#
# This work is based on experiences from the UNITE project
@@ -34,17 +35,21 @@ builddependencies = [
dependencies = [
# SIONlib container support (optional):
('SIONlib', '1.7.7', '-tools'),
+ # OTF2 Python bindings
+ ('Python', '3.10.8'),
]
+local_pyshortver = '3.10'
configopts = '--enable-shared'
+modextrapaths = {'PYTHONPATH': ['lib64/python%s/site-packages' % local_pyshortver]}
sanity_check_paths = {
'files': ['bin/otf2-config', 'include/otf2/otf2.h',
'lib/libotf2.a', 'lib/libotf2.%s' % SHLIB_EXT],
'dirs': [],
}
-
-sanity_check_commands = ['%(namelower)s-config --help']
+sanity_check_commands = ['%(namelower)s-config --help',
+ 'python -c "import %(namelower)s"']
moduleclass = 'perf'
diff --git a/easybuild/easyconfigs/o/OTF2/OTF2-3.0.3-GCCcore-12.3.0.eb b/easybuild/easyconfigs/o/OTF2/OTF2-3.0.3-GCCcore-12.3.0.eb
index 17595d97acb..db786b12a41 100644
--- a/easybuild/easyconfigs/o/OTF2/OTF2-3.0.3-GCCcore-12.3.0.eb
+++ b/easybuild/easyconfigs/o/OTF2/OTF2-3.0.3-GCCcore-12.3.0.eb
@@ -3,6 +3,7 @@
# Copyright:: Copyright 2013-2019 Juelich Supercomputing Centre, Germany
# Authors:: Bernd Mohr
# Markus Geimer
+# Jan Andre Reuter
# License:: 3-clause BSD
#
# This work is based on experiences from the UNITE project
@@ -34,17 +35,22 @@ builddependencies = [
dependencies = [
# SIONlib container support (optional):
('SIONlib', '1.7.7', '-tools'),
+ # OTF2 Python bindings
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'),
]
+local_pyshortver = '3.11'
configopts = '--enable-shared'
+modextrapaths = {'PYTHONPATH': ['lib64/python%s/site-packages' % local_pyshortver]}
sanity_check_paths = {
'files': ['bin/otf2-config', 'include/otf2/otf2.h',
'lib/libotf2.a', 'lib/libotf2.%s' % SHLIB_EXT],
'dirs': [],
}
-
-sanity_check_commands = ['%(namelower)s-config --help']
+sanity_check_commands = ['%(namelower)s-config --help',
+ 'python -c "import %(namelower)s"']
moduleclass = 'perf'
diff --git a/easybuild/easyconfigs/o/OTF2/OTF2-3.0.3-GCCcore-13.2.0.eb b/easybuild/easyconfigs/o/OTF2/OTF2-3.0.3-GCCcore-13.2.0.eb
index 48cbf931ec5..c5108c8daca 100644
--- a/easybuild/easyconfigs/o/OTF2/OTF2-3.0.3-GCCcore-13.2.0.eb
+++ b/easybuild/easyconfigs/o/OTF2/OTF2-3.0.3-GCCcore-13.2.0.eb
@@ -3,6 +3,7 @@
# Copyright:: Copyright 2013-2019 Juelich Supercomputing Centre, Germany
# Authors:: Bernd Mohr
# Markus Geimer
+# Jan Andre Reuter
# License:: 3-clause BSD
#
# This work is based on experiences from the UNITE project
@@ -34,17 +35,22 @@ builddependencies = [
dependencies = [
# SIONlib container support (optional):
('SIONlib', '1.7.7', '-tools'),
+ # OTF2 Python bindings
+ ('Python', '3.11.5'),
+ ('Python-bundle-PyPI', '2023.10'),
]
+local_pyshortver = '3.11'
configopts = '--enable-shared'
+modextrapaths = {'PYTHONPATH': ['lib64/python%s/site-packages' % local_pyshortver]}
sanity_check_paths = {
'files': ['bin/otf2-config', 'include/otf2/otf2.h',
'lib/libotf2.a', 'lib/libotf2.%s' % SHLIB_EXT],
'dirs': [],
}
-
-sanity_check_commands = ['%(namelower)s-config --help']
+sanity_check_commands = ['%(namelower)s-config --help',
+ 'python -c "import %(namelower)s"']
moduleclass = 'perf'
diff --git a/easybuild/easyconfigs/o/OTF2/OTF2-3.0.3-GCCcore-13.3.0.eb b/easybuild/easyconfigs/o/OTF2/OTF2-3.0.3-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..fdf78e0772d
--- /dev/null
+++ b/easybuild/easyconfigs/o/OTF2/OTF2-3.0.3-GCCcore-13.3.0.eb
@@ -0,0 +1,60 @@
+# #
+# This is an easyconfig file for EasyBuild, see https://github.com/easybuilders/easybuild
+# Copyright:: Copyright 2013-2024 Juelich Supercomputing Centre, Germany
+# Authors:: Bernd Mohr
+# Markus Geimer
+# 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 = 'OTF2'
+version = '3.0.3'
+
+homepage = 'https://www.score-p.org'
+description = """
+ The Open Trace Format 2 is a highly scalable, memory efficient event trace
+ data format plus support library. It is the new standard trace format for
+ Scalasca, Vampir, and TAU and is open for other tools.
+
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['http://perftools.pages.jsc.fz-juelich.de/cicd/%(namelower)s/tags/%(namelower)s-%(version)s']
+sources = [SOURCELOWER_TAR_GZ]
+patches = ['otf2-3.0.3-update-py-compile.patch']
+checksums = [
+ '18a3905f7917340387e3edc8e5766f31ab1af41f4ecc5665da6c769ca21c4ee8', # otf2-3.0.3.tar.gz
+ '5b1dad8788642eaa97bc03003c9329380340ba10649e556a30ce541165cf8da4', # otf2-3.0.3-update-py-compile.patch
+]
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+dependencies = [
+ # SIONlib container support (optional):
+ ('SIONlib', '1.7.7', '-tools'),
+ # OTF2 Python bindings
+ ('Python', '3.12.3'),
+ ('Python-bundle-PyPI', '2024.06'),
+]
+
+local_pyshortver = '3.12'
+configopts = '--enable-shared'
+
+modextrapaths = {'PYTHONPATH': ['lib64/python%s/site-packages' % local_pyshortver]}
+
+sanity_check_paths = {
+ 'files': ['bin/otf2-config', 'include/otf2/otf2.h',
+ 'lib/libotf2.a', 'lib/libotf2.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+sanity_check_commands = ['%(namelower)s-config --help',
+ 'python -c "import %(namelower)s"']
+
+moduleclass = 'perf'
diff --git a/easybuild/easyconfigs/o/OTF2/otf2-3.0.3-update-py-compile.patch b/easybuild/easyconfigs/o/OTF2/otf2-3.0.3-update-py-compile.patch
new file mode 100644
index 00000000000..539726fbf14
--- /dev/null
+++ b/easybuild/easyconfigs/o/OTF2/otf2-3.0.3-update-py-compile.patch
@@ -0,0 +1,252 @@
+This patch updates the py-compile file used by OTF2 during the install process
+to fix the removal of the imp module in Python 3.12 which was long deprecated.
+With this, OTF2 can be installed with Python 3.12, which would previously fail
+with a module not found error.
+
+--- build-config/py-compile 2023-02-12 17:32:31.274132086 +0100
++++ ../../otf2/build-config/py-compile 2024-08-22 17:44:59.939242651 +0200
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # py-compile - Compile a Python program
+
+-scriptversion=2011-06-08.12; # UTC
++scriptversion=2023-03-30.00; # UTC
+
+ # Copyright (C) 2000-2013 Free Software Foundation, Inc.
+
+@@ -27,7 +27,7 @@
+ # bugs to or send patches to
+ # .
+
+-if [ -z "$PYTHON" ]; then
++if test -z "$PYTHON"; then
+ PYTHON=python
+ fi
+
+@@ -79,13 +79,20 @@
+ ;;
+ -h|--help)
+ cat <<\EOF
+-Usage: py-compile [--help] [--version] [--basedir DIR] [--destdir DIR] [--silent] FILES..."
++Usage: py-compile [options] FILES...
+
+ Byte compile some python scripts FILES. Use --destdir to specify any
+ leading directory path to the FILES that you don't want to include in the
+ byte compiled file. Specify --basedir for any additional path information you
+ do want to be shown in the byte compiled file.
+
++Options:
++ --basedir DIR Prefix all FILES with DIR, and include in error messages.
++ --destdir DIR Prefix all FILES with DIR before compiling.
++ -v, --version Display version information.
++ -h, --help This help screen.
++ --silent Operate silently.
++
+ Example:
+ py-compile --destdir /tmp/pkg-root --basedir /usr/share/test test.py test2.py
+
+@@ -114,87 +121,165 @@
+ shift
+ done
+
+-files=$*
+-if test -z "$files"; then
+- usage_error "no files given"
++if test $# -eq 0; then
++ usage_error "no files given"
+ fi
+
+ # if basedir was given, then it should be prepended to filenames before
+ # byte compilation.
+-if [ -z "$basedir" ]; then
+- pathtrans="path = file"
++if test -z "$basedir"; then
++ pathtrans="path = file"
+ else
+- pathtrans="path = os.path.join('$basedir', file)"
++ pathtrans="path = os.path.join('$basedir', file)"
+ fi
+
+ # if destdir was given, then it needs to be prepended to the filename to
+ # byte compile but not go into the compiled file.
+-if [ -z "$destdir" ]; then
+- filetrans="filepath = path"
++if test -z "$destdir"; then
++ filetrans="filepath = path"
+ else
+- filetrans="filepath = os.path.normpath('$destdir' + os.sep + path)"
++ filetrans="filepath = os.path.normpath('$destdir' + os.sep + path)"
++fi
++
++python_major=`$PYTHON -c 'import sys; print(sys.version_info[0])'`
++if test -z "$python_major"; then
++ usage_error "could not determine $PYTHON major version"
+ fi
+
++case $python_major in
++[01])
++ usage_error "python version 0.x and 1.x not supported"
++ ;;
++esac
++
++python_minor=`$PYTHON -c 'import sys; print(sys.version_info[1])'`
++
++# NB: When adding support for newer versions, prefer copying & adding new cases
++# rather than try to keep things merged with shell variables.
++
++# First byte compile (no optimization) all the modules.
++# This works for all currently known Python versions.
+ $PYTHON -c "
+-import sys, os, py_compile, imp
++import sys, os, py_compile
++
++try:
++ import importlib
++except ImportError:
++ importlib = None
++
++# importlib.util.cache_from_source was added in 3.4
++if (
++ hasattr(importlib, 'util')
++ and hasattr(importlib.util, 'cache_from_source')
++):
++ destpath = importlib.util.cache_from_source
++else:
++ destpath = lambda filepath: filepath + 'c'
+
+-files = '''$files'''
+ silent = $silent
+ blu = '''$blu'''
+ std = '''$std'''
+
+ if not silent:
+- sys.stdout.write('Byte-compiling python modules...')
+-for file in files.split():
++ sys.stdout.write('Byte-compiling python modules...\n')
++for file in sys.argv[1:]:
+ $pathtrans
+ $filetrans
+- if not os.path.exists(filepath) or not (len(filepath) >= 3
+- and filepath[-3:] == '.py'):
+- continue
++ if (
++ not os.path.exists(filepath)
++ or not (len(filepath) >= 3 and filepath[-3:] == '.py')
++ ):
++ continue
+ if not silent:
+- sys.stdout.write(' ' + file)
++ sys.stdout.write(file + ' ')
+ sys.stdout.flush()
+ else:
+- sys.stdout.write(' PYTHON {}{}{}\n'.format(blu, filepath + 'c', std))
+- if hasattr(imp, 'get_tag'):
+- py_compile.compile(filepath, imp.cache_from_source(filepath), path)
+- else:
+- py_compile.compile(filepath, filepath + 'c', path)
++ sys.stdout.write(' PYCACHE {}{}{}\n'.format(blu, destpath(filepath), std))
++ py_compile.compile(filepath, destpath(filepath), path)
+ if not silent:
+- sys.stdout.write('\n')" || exit $?
++ sys.stdout.write('\n')" "$@" || exit $?
+
+-# this will fail for python < 1.5, but that doesn't matter ...
++# Then byte compile w/optimization all the modules.
+ $PYTHON -O -c "
+-import sys, os, py_compile, imp
++import sys, os, py_compile
++
++try:
++ import importlib
++except ImportError:
++ importlib = None
++
++# importlib.util.cache_from_source was added in 3.4
++if (
++ hasattr(importlib, 'util')
++ and hasattr(importlib.util, 'cache_from_source')
++):
++ destpath = importlib.util.cache_from_source
++else:
++ destpath = lambda filepath: filepath + 'o'
+
+-# pypy does not use .pyo optimization
+-if hasattr(sys, 'pypy_translation_info'):
++# pypy2 does not use .pyo optimization
++if sys.version_info.major <= 2 and hasattr(sys, 'pypy_translation_info'):
+ sys.exit(0)
+
+-files = '''$files'''
+ silent = $silent
+ blu = '''$blu'''
+ std = '''$std'''
+
+ if not silent:
+- sys.stdout.write('Byte-compiling python modules (optimized versions)...')
+-for file in files.split():
++ sys.stdout.write('Byte-compiling python modules (optimized versions) ...\n')
++for file in sys.argv[1:]:
+ $pathtrans
+ $filetrans
+- if not os.path.exists(filepath) or not (len(filepath) >= 3
+- and filepath[-3:] == '.py'):
+- continue
++ if (
++ not os.path.exists(filepath)
++ or not (len(filepath) >= 3 and filepath[-3:] == '.py')
++ ):
++ continue
+ if not silent:
+- sys.stdout.write(' ' + file)
++ sys.stdout.write(file + ' ')
+ sys.stdout.flush()
+ else:
+- sys.stdout.write(' PYTHON {}{}{}\n'.format(blu, filepath + 'o', std))
+- if hasattr(imp, 'get_tag'):
+- py_compile.compile(filepath, imp.cache_from_source(filepath, False), path)
++ sys.stdout.write(' PYCACHE {}{}{}\n'.format(blu, destpath(filepath), std))
++ py_compile.compile(filepath, destpath(filepath), path)
++if not silent:
++ sys.stdout.write('\n')" "$@" 2>/dev/null || exit $?
++
++# Then byte compile w/more optimization.
++# Only do this for Python 3.5+, see https://bugs.gnu.org/38043 for background.
++case $python_major.$python_minor in
++2.*|3.[0-4])
++ ;;
++*)
++ $PYTHON -OO -c "
++import sys, os, py_compile, importlib
++
++destpath = importlib.util.cache_from_source
++
++silent = $silent
++blu = '''$blu'''
++std = '''$std'''
++
++if not silent:
++ sys.stdout.write('Byte-compiling python modules (more optimized versions)'
++ ' ...\n')
++for file in sys.argv[1:]:
++ $pathtrans
++ $filetrans
++ if (
++ not os.path.exists(filepath)
++ or not (len(filepath) >= 3 and filepath[-3:] == '.py')
++ ):
++ continue
++ if not silent:
++ sys.stdout.write(file + ' ')
++ sys.stdout.flush()
+ else:
+- py_compile.compile(filepath, filepath + 'o', path)
++ sys.stdout.write(' PYCACHE {}{}{}\n'.format(blu, destpath(filepath), std))
++ py_compile.compile(filepath, destpath(filepath), path)
+ if not silent:
+- sys.stdout.write('\n')" 2>/dev/null || :
++ sys.stdout.write('\n')" "$@" 2>/dev/null || exit $?
++ ;;
++esac
+
+ # Local Variables:
+ # mode: shell-script
diff --git a/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.27-GCC-13.2.0-seq-iface64.eb b/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.27-GCC-13.2.0-seq-iface64.eb
new file mode 100644
index 00000000000..f205e063da9
--- /dev/null
+++ b/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.27-GCC-13.2.0-seq-iface64.eb
@@ -0,0 +1,60 @@
+name = 'OpenBLAS'
+version = '0.3.27'
+versionsuffix = '-seq-iface64'
+
+homepage = 'https://www.openblas.net/'
+description = "OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version."
+
+toolchain = {'name': 'GCC', 'version': '13.2.0'}
+
+source_urls = [
+ # order matters, trying to download the large.tgz/timing.tgz LAPACK tarballs from GitHub causes trouble
+ 'https://www.netlib.org/lapack/timing/',
+ 'https://github.com/xianyi/OpenBLAS/archive/',
+]
+sources = ['v%(version)s.tar.gz']
+patches = [
+ ('large.tgz', '.'),
+ ('timing.tgz', '.'),
+ 'OpenBLAS-0.3.15_workaround-gcc-miscompilation.patch',
+ 'OpenBLAS-0.3.21_fix-order-vectorization.patch',
+ 'OpenBLAS-0.3.26_lapack_qr_noninittest.patch',
+ 'OpenBLAS-0.3.27_fix_zscal.patch',
+ 'OpenBLAS-0.3.27_riscv-drop-static-fortran-flag.patch',
+]
+checksums = [
+ {'v0.3.27.tar.gz': 'aa2d68b1564fe2b13bc292672608e9cdeeeb6dc34995512e65c3b10f4599e897'},
+ {'large.tgz': 'f328d88b7fa97722f271d7d0cfea1c220e0f8e5ed5ff01d8ef1eb51d6f4243a1'},
+ {'timing.tgz': '999c65f8ea8bd4eac7f1c7f3463d4946917afd20a997807300fe35d70122f3af'},
+ {'OpenBLAS-0.3.15_workaround-gcc-miscompilation.patch':
+ 'e6b326fb8c4a8a6fd07741d9983c37a72c55c9ff9a4f74a80e1352ce5f975971'},
+ {'OpenBLAS-0.3.21_fix-order-vectorization.patch':
+ '08af834e5d60441fd35c128758ed9c092ba6887c829e0471ecd489079539047d'},
+ {'OpenBLAS-0.3.26_lapack_qr_noninittest.patch': '4781bf1d7b239374fd8069e15b4e2c0ef0e8efaa1a7d4c33557bd5b27e5de77c'},
+ {'OpenBLAS-0.3.27_fix_zscal.patch': '9210d7b66538dabaddbe1bfceb16f8225708856f60876ca5561b19d3599f9fd1'},
+ {'OpenBLAS-0.3.27_riscv-drop-static-fortran-flag.patch':
+ 'f374e41efffd592ab1c9034df9e7abf1045ed151f4fc0fd0da618ce9826f2d4b'},
+]
+
+builddependencies = [
+ ('make', '4.4.1'),
+ # required by LAPACK test suite
+ ('Python', '3.11.5'),
+]
+
+# INTERFACE64=1 needs if you link OpenBLAS for fortran code compied with 64 bit integers (-i8)
+# This would be in intel library naming convention ilp64
+# The USE_OPENMP=0 and USE_THREAD=0 needs for the single threaded version
+# The USE_LOCKING=1 needs for thread safe version (if threaded software calls OpenBLAS, without it
+# OpenBLAS is not thread safe (so only single threaded software would be able to use it)
+buildopts = "INTERFACE64=1 USE_OPENMP=0 USE_THREAD=0 USE_LOCKING=1 "
+testopts = buildopts
+installopts = buildopts
+
+run_lapack_tests = True
+max_failing_lapack_tests_num_errors = 150
+
+# extensive testing can be enabled by uncommenting the line below
+# runtest = 'PATH=.:$PATH lapack-timing'
+
+moduleclass = 'numlib'
diff --git a/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.27-GCC-13.3.0-seq-iface64.eb b/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.27-GCC-13.3.0-seq-iface64.eb
new file mode 100644
index 00000000000..5527c667f66
--- /dev/null
+++ b/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.27-GCC-13.3.0-seq-iface64.eb
@@ -0,0 +1,60 @@
+name = 'OpenBLAS'
+version = '0.3.27'
+versionsuffix = '-seq-iface64'
+
+homepage = 'https://www.openblas.net/'
+description = "OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version."
+
+toolchain = {'name': 'GCC', 'version': '13.3.0'}
+
+source_urls = [
+ # order matters, trying to download the large.tgz/timing.tgz LAPACK tarballs from GitHub causes trouble
+ 'https://www.netlib.org/lapack/timing/',
+ 'https://github.com/xianyi/OpenBLAS/archive/',
+]
+sources = ['v%(version)s.tar.gz']
+patches = [
+ ('large.tgz', '.'),
+ ('timing.tgz', '.'),
+ 'OpenBLAS-0.3.15_workaround-gcc-miscompilation.patch',
+ 'OpenBLAS-0.3.21_fix-order-vectorization.patch',
+ 'OpenBLAS-0.3.26_lapack_qr_noninittest.patch',
+ 'OpenBLAS-0.3.27_fix_zscal.patch',
+ 'OpenBLAS-0.3.27_riscv-drop-static-fortran-flag.patch',
+]
+checksums = [
+ {'v0.3.27.tar.gz': 'aa2d68b1564fe2b13bc292672608e9cdeeeb6dc34995512e65c3b10f4599e897'},
+ {'large.tgz': 'f328d88b7fa97722f271d7d0cfea1c220e0f8e5ed5ff01d8ef1eb51d6f4243a1'},
+ {'timing.tgz': '999c65f8ea8bd4eac7f1c7f3463d4946917afd20a997807300fe35d70122f3af'},
+ {'OpenBLAS-0.3.15_workaround-gcc-miscompilation.patch':
+ 'e6b326fb8c4a8a6fd07741d9983c37a72c55c9ff9a4f74a80e1352ce5f975971'},
+ {'OpenBLAS-0.3.21_fix-order-vectorization.patch':
+ '08af834e5d60441fd35c128758ed9c092ba6887c829e0471ecd489079539047d'},
+ {'OpenBLAS-0.3.26_lapack_qr_noninittest.patch': '4781bf1d7b239374fd8069e15b4e2c0ef0e8efaa1a7d4c33557bd5b27e5de77c'},
+ {'OpenBLAS-0.3.27_fix_zscal.patch': '9210d7b66538dabaddbe1bfceb16f8225708856f60876ca5561b19d3599f9fd1'},
+ {'OpenBLAS-0.3.27_riscv-drop-static-fortran-flag.patch':
+ 'f374e41efffd592ab1c9034df9e7abf1045ed151f4fc0fd0da618ce9826f2d4b'},
+]
+
+builddependencies = [
+ ('make', '4.4.1'),
+ # required by LAPACK test suite
+ ('Python', '3.12.3'),
+]
+
+# INTERFACE64=1 needs if you link OpenBLAS for fortran code compied with 64 bit integers (-i8)
+# This would be in intel library naming convention ilp64
+# The USE_OPENMP=0 and USE_THREAD=0 needs for the single threaded version
+# The USE_LOCKING=1 needs for thread safe version (if threaded software calls OpenBLAS, without it
+# OpenBLAS is not thread safe (so only single threaded software would be able to use it)
+buildopts = "INTERFACE64=1 USE_OPENMP=0 USE_THREAD=0 USE_LOCKING=1 "
+testopts = buildopts
+installopts = buildopts
+
+run_lapack_tests = True
+max_failing_lapack_tests_num_errors = 150
+
+# extensive testing can be enabled by uncommenting the line below
+# runtest = 'PATH=.:$PATH lapack-timing'
+
+moduleclass = 'numlib'
diff --git a/easybuild/easyconfigs/o/OpenEXR/OpenEXR-3.2.4-GCCcore-13.3.0.eb b/easybuild/easyconfigs/o/OpenEXR/OpenEXR-3.2.4-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..f6e66db69ae
--- /dev/null
+++ b/easybuild/easyconfigs/o/OpenEXR/OpenEXR-3.2.4-GCCcore-13.3.0.eb
@@ -0,0 +1,38 @@
+easyblock = 'CMakeMake'
+
+name = 'OpenEXR'
+version = '3.2.4'
+
+homepage = 'https://www.openexr.com/'
+description = """OpenEXR is a high dynamic-range (HDR) image file format developed by Industrial Light & Magic
+ for use in computer imaging applications"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://github.com/%(namelower)s/%(namelower)s/archive/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['81e6518f2c4656fdeaf18a018f135e96a96e7f66dbe1c1f05860dd94772176cc']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('CMake', '3.29.3'),
+]
+dependencies = [
+ ('Imath', '3.1.11'),
+ ('zlib', '1.3.1')
+]
+
+local_libs, local_bins = [
+ ['Iex', 'IlmThread', 'OpenEXR', 'OpenEXRUtil'],
+ ['envmap', 'header', 'makepreview', 'maketiled', 'multipart', 'multiview', 'stdattr']
+]
+
+sanity_check_paths = {
+ 'files': (
+ ['lib/lib%s.%s' % (s, SHLIB_EXT) for s in local_libs] +
+ ['bin/exr%s' % b for b in local_bins]
+ ),
+ 'dirs': ['include/%(name)s', 'share'],
+}
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/o/OpenFOAM-Extend/OpenFOAM-Extend-4.1-20210705-foss-2023a-Python-2.7.18.eb b/easybuild/easyconfigs/o/OpenFOAM-Extend/OpenFOAM-Extend-4.1-20210705-foss-2023a-Python-2.7.18.eb
new file mode 100644
index 00000000000..b65ce71cf76
--- /dev/null
+++ b/easybuild/easyconfigs/o/OpenFOAM-Extend/OpenFOAM-Extend-4.1-20210705-foss-2023a-Python-2.7.18.eb
@@ -0,0 +1,66 @@
+easyblock = 'EB_OpenFOAM'
+
+name = 'OpenFOAM-Extend'
+local_commit = 'aa97a0'
+version = '4.1-20210705'
+versionsuffix = '-Python-%(pyver)s'
+
+homepage = 'http://www.extend-project.de/'
+description = """OpenFOAM is a free, open source CFD software package.
+OpenFOAM has an extensive range of features to solve anything from complex fluid flows
+involving chemical reactions, turbulence and heat transfer,
+to solid dynamics and electromagnetics."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'usempi': True}
+
+sources = [{
+ 'filename': '%%(name)s-%%(version)s-%s.tar.gz' % local_commit,
+ 'git_config': {
+ 'url': 'https://git.code.sf.net/p/foam-extend/',
+ 'repo_name': 'foam-extend-4.1',
+ 'commit': local_commit,
+ },
+}]
+patches = [
+ 'OpenFOAM-Extend-3.2-ParMGridGen.patch',
+ 'OpenFOAM-Extend-3.1_build-qa.patch',
+ 'OpenFOAM-Extend-4.1_comp-mpi.patch',
+ 'OpenFOAM-Extend-3.1_skip-ThirdParty-OpenMPI.patch',
+ 'OpenFOAM-Extend-4.1-20210705_fix-private-PackedList.patch',
+]
+checksums = [
+ # no checksum for OpenFOAM-Extend-4.1-20200408-f2c557.tar.gz since it's created from git repo,
+ # and hence resuluting tarball won't be exactly the same on all systems
+ None,
+ 'f7676a7a12ced7c74caea64c62826a28449fdb2beb8b5be2c4ae7528ffece16e', # OpenFOAM-Extend-3.2-ParMGridGen.patch
+ '14dcc12ea7191ba42a9c297fcb2f4fbc2c55bf57226029489aa116e2d060b4bf', # OpenFOAM-Extend-3.1_build-qa.patch
+ 'e71a77b6f39653f9a0d4b0ce6691433c742df74f23402782c69a8b736c98eb7a', # OpenFOAM-Extend-4.1_comp-mpi.patch
+ # OpenFOAM-Extend-3.1_skip-ThirdParty-OpenMPI.patch
+ 'c88b23cd2f5dcf3bd86e02d7ea5dc6719c2049cf4b20e39f1b3262381dee3c50',
+ # OpenFOAM-Extend-4.1-20210705_fix-private-PackedList.patch
+ '47868f35d9a899047be8da451df46e165fc813bc809b96b1c35a0cccddb1a9e6',
+]
+
+builddependencies = [
+ ('flex', '2.6.4'),
+ ('Bison', '3.8.2'),
+ ('M4', '1.4.19'),
+ ('CMake', '3.26.3'),
+]
+
+dependencies = [
+ ('hwloc', '2.9.1'),
+ ('ParMETIS', '4.0.3'),
+ ('METIS', '5.1.0'), # order matters, METIS need to be listed after ParMETIS to get $CPATH right
+ ('SCOTCH', '7.0.3'),
+ ('Mesquite', '2.3.0'),
+ ('ParMGridGen', '1.0'),
+ ('Python', '2.7.18'),
+ # Libccmio v2.6.1, zoltan v3.5
+]
+
+# too many builds in parallel actually slows down the build
+maxparallel = 4
+
+moduleclass = 'cae'
diff --git a/easybuild/easyconfigs/o/OpenFOAM-Extend/OpenFOAM-Extend-4.1-20210705_fix-private-PackedList.patch b/easybuild/easyconfigs/o/OpenFOAM-Extend/OpenFOAM-Extend-4.1-20210705_fix-private-PackedList.patch
new file mode 100644
index 00000000000..84229fdd90a
--- /dev/null
+++ b/easybuild/easyconfigs/o/OpenFOAM-Extend/OpenFOAM-Extend-4.1-20210705_fix-private-PackedList.patch
@@ -0,0 +1,14 @@
+fix for:
+error: class Foam::UList Foam::UList::UList is private within this context
+see also https://sourceforge.net/p/foam-extend/tickets/68/
+--- foam-extend-4.1-20210705/src/foam/containers/Lists/PackedList/PackedList.H.orig 2024-09-12 21:13:26.103914000 +0200
++++ foam-extend-4.1-20210705/src/foam/containers/Lists/PackedList/PackedList.H 2024-09-12 21:13:53.608924991 +0200
+@@ -147,7 +147,7 @@
+ class PackedList
+ :
+ public PackedListCore,
+- private List
++ public List
+ {
+ protected:
+
diff --git a/easybuild/easyconfigs/o/OpenFOAM/OpenFOAM-12-ThirdParty.patch b/easybuild/easyconfigs/o/OpenFOAM/OpenFOAM-12-ThirdParty.patch
new file mode 100644
index 00000000000..e8a0b33adf7
--- /dev/null
+++ b/easybuild/easyconfigs/o/OpenFOAM/OpenFOAM-12-ThirdParty.patch
@@ -0,0 +1,397 @@
+# This patch removes all need for the ThirdParty files of OpenFOAM:
+# we use EB dependencies for everything. It adjusts the paths, variables, etc
+# We also let the install dir, compiler, etc be set by EB.
+# Aligned hunks by Leon Kos and updated by Simon Branford (University of Birmingham).
+# Based on patch for OpenFOAM 5.0 and 4.1 by Kenneth Hoste (HPC-UGent) and Ward Poelmans
+
+diff -ru OpenFOAM-12-version-12/applications/utilities/postProcessing/graphics/PVReaders/Allwmake OpenFOAM-12/applications/utilities/postProcessing/graphics/PVReaders/Allwmake
+--- OpenFOAM-12-version-12/applications/utilities/postProcessing/graphics/PVReaders/Allwmake
++++ OpenFOAM-12/applications/utilities/postProcessing/graphics/PVReaders/Allwmake
+@@ -11,8 +11,8 @@
+ fi
+
+ # Ensure CMake gets the correct C/C++ compilers
+-[ -n "$WM_CC" ] && export CC="$WM_CC"
+-[ -n "$WM_CXX" ] && export CXX="$WM_CXX"
++#[ -n "$WM_CC" ] && export CC="$WM_CC"
++#[ -n "$WM_CXX" ] && export CXX="$WM_CXX"
+
+ wmake $targetType vtkPVblockMesh
+ wmake $targetType vtkPVFoam
+diff -ru OpenFOAM-12-version-12/applications/utilities/postProcessing/graphics/PVReaders/CMakeLists.txt OpenFOAM-12/applications/utilities/postProcessing/graphics/PVReaders/CMakeLists.txt
+--- OpenFOAM-12-version-12/applications/utilities/postProcessing/graphics/PVReaders/CMakeLists.txt
++++ OpenFOAM-12/applications/utilities/postProcessing/graphics/PVReaders/CMakeLists.txt
+@@ -2,6 +2,8 @@
+
+ PROJECT(PVReaders)
+
++FIND_PACKAGE(MPI REQUIRED)
++
+ FIND_PACKAGE(ParaView REQUIRED)
+
+ INCLUDE(GNUInstallDirs)
+diff -ru OpenFOAM-12-version-12/etc/bashrc OpenFOAM-12/etc/bashrc
+--- OpenFOAM-12-version-12/etc/bashrc
++++ OpenFOAM-12/etc/bashrc
+@@ -43,12 +43,13 @@
+ #
+ [ "$BASH" ] && bashrcFile=${BASH_SOURCE}
+ [ "$ZSH_NAME" ] && bashrcFile=$0
+-if [ -n "$bashrcFile" ]
+-then
+- export FOAM_INST_DIR=$(cd $(dirname $bashrcFile)/../.. && pwd -P)
+-else
+- export FOAM_INST_DIR=$HOME/$WM_PROJECT
+-fi
++#if [ -n "$bashrcFile" ]
++#then
++# export FOAM_INST_DIR=$(cd $(dirname $bashrcFile)/../.. && pwd -P)
++#else
++# export FOAM_INST_DIR=$HOME/$WM_PROJECT
++#fi
++# For Easybuild: set by the module
+ unset bashrcFile
+ #
+ # Please set to the appropriate path if the above default is not correct. E.g.,
+diff -ru OpenFOAM-12-version-12/etc/config.sh/gperftools OpenFOAM-12/etc/config.sh/gperftools
+--- OpenFOAM-12-version-12/etc/config.sh/gperftools
++++ OpenFOAM-12/etc/config.sh/gperftools
+@@ -29,13 +29,7 @@
+ #
+ #------------------------------------------------------------------------------
+
+-version=svn
+-gperftools_install=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER
+-
+-GPERFTOOLS_VERSION=gperftools-$version
+-GPERFTOOLS_ARCH_PATH=$gperftools_install/$GPERFTOOLS_VERSION
+-
+-export PATH=$GPERFTOOLS_ARCH_PATH/bin:$PATH
+-export LD_LIBRARY_PATH=$GPERFTOOLS_ARCH_PATH/lib:$LD_LIBRARY_PATH
++GPERFTOOLS_VERSION=gperftools-$EBVERSIONGPERFTOOLS
++GPERFTOOLS_ARCH_PATH=$EBROOTGPERFTOOLS
+
+ #------------------------------------------------------------------------------
+diff -ru OpenFOAM-12-version-12/etc/config.sh/metis OpenFOAM-12/etc/config.sh/metis
+--- OpenFOAM-12-version-12/etc/config.sh/metis
++++ OpenFOAM-12/etc/config.sh/metis
+@@ -37,32 +37,8 @@
+ # Load functions
+ . $WM_PROJECT_DIR/etc/config.sh/functions
+
+-# Find the path to the metis installation
+-case "$METIS_TYPE" in
+-none)
+- ;;
+-system)
+- export METIS_VERSION=system
+- export METIS_ARCH_PATH=/usr
+- ;;
+-OpenFOAM | ThirdParty)
+- # Look for the source directory
+- if [ -z "$METIS_VERSION" ]
+- then
+- metisSrcDir=$(_foamMostRecentDir "$WM_THIRD_PARTY_DIR"/metis-*)
+- else
+- metisSrcDir=$WM_THIRD_PARTY_DIR/metis-$METIS_VERSION
+- fi
+- # Set the version and the installation path
+- if [ -d "$metisSrcDir" ]
+- then
+- export METIS_VERSION=${metisSrcDir##*metis-}
+- export METIS_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER$WM_PRECISION_OPTION$WM_LABEL_OPTION/metis-$METIS_VERSION
+- fi
+- # Clean up
+- unset metisSrcDir
+- ;;
+-esac
++export METIS_VERSION=metis-$EBVERSIONMETIS
++export METIS_ARCH_PATH=$EBROOTMETIS
+
+ # Unload functions
+ . $WM_PROJECT_DIR/etc/config.sh/functions
+diff -ru OpenFOAM-12-version-12/etc/config.sh/mpi OpenFOAM-12/etc/config.sh/mpi
+--- OpenFOAM-12-version-12/etc/config.sh/mpi
++++ OpenFOAM-12/etc/config.sh/mpi
+@@ -254,6 +254,9 @@
+ _foamAddPath $MPI_ARCH_PATH/bin64
+ _foamAddLib $MPI_ARCH_PATH/lib/release
+ ;;
++EASYBUILDMPI)
++ export FOAM_MPI=mpi
++ ;;
+ *)
+ export FOAM_MPI=dummy
+ ;;
+diff -ru OpenFOAM-12-version-12/etc/config.sh/paraview OpenFOAM-12/etc/config.sh/paraview
+--- OpenFOAM-12-version-12/etc/config.sh/paraview
++++ OpenFOAM-12/etc/config.sh/paraview
+@@ -38,117 +38,13 @@
+ ) \
+ && PATH="$cleaned"
+
+-# Detect the most recent version of cmake available and add to the PATH
+-cmakeDir=$(_foamMostRecentDir "$WM_THIRD_PARTY_DIR"/platforms/$WM_ARCH$WM_COMPILER/cmake-*)
+-if [ -n "$cmakeDir" ]
+-then
+- export PATH=$cmakeDir/bin:$PATH
+-fi
+-unset cmakeDir
+-
+-# Set up the paraview environment
+-case "$ParaView_TYPE" in
+-none)
+- ;;
+-
+-system)
+-
+- # Look for a paraview installation
+- if pvserverExe=$(which pvserver 2> /dev/null)
+- then
+- paraviewBinDir=$(dirname $pvserverExe)
+- paraviewBinDir=$(cd $paraviewBinDir && pwd -P)
+- fi
+-
+- # Set the environment
+- if [ -d "$paraviewBinDir" ]
+- then
+- export ParaView_DIR=$(dirname $paraviewBinDir)
+- export ParaView_LIB_DIR=$(unset LD_LIBRARY_PATH && \
+- ldd $paraviewBinDir/paraview | \
+- grep -o "/.*/libpqCore-pv.*.so" | \
+- xargs dirname)
+- export ParaView_VERSION=$(unset LD_LIBRARY_PATH && \
+- pvserver --version 2> /dev/null | \
+- awk '{print $NF}')
+- export ParaView_MAJOR=${ParaView_VERSION%.*}
+- export ParaView_INCLUDE_DIR=$ParaView_DIR/include/paraview-$ParaView_MAJOR
+- export PV_PLUGIN_PATH=$FOAM_LIBBIN/paraview-$ParaView_MAJOR
+-
+- # Add to the library path
+- export LD_LIBRARY_PATH=$ParaView_LIB_DIR:$PV_PLUGIN_PATH:$LD_LIBRARY_PATH
+- fi
+-
+- unset pvserverExe paraviewBinDir
+- ;;
+-
+-paraviewopenfoam)
+-
+- # Look for a paraview installation. The version should be set externally.
+- if [ -n "$ParaView_VERSION" ]
+- then
+- export ParaView_MAJOR=${ParaView_VERSION%.*}
+- paraviewDir=/opt/paraviewopenfoam$(echo "$ParaView_MAJOR" | tr -d '.')
+- fi
+-
+- # Set the environment
+- if [ -d "$paraviewDir" ]
+- then
+- export ParaView_DIR=$paraviewDir
+- export ParaView_LIB_DIR=$(echo "$ParaView_DIR"/lib* | tr ' ' ':')
+- export ParaView_INCLUDE_DIR=$ParaView_DIR/include/paraview-$ParaView_MAJOR
+- export PV_PLUGIN_PATH=$FOAM_LIBBIN/paraview-$ParaView_MAJOR
+-
+- # Add to the path and the library path
+- export PATH=$ParaView_DIR/bin:$PATH
+- export LD_LIBRARY_PATH=$ParaView_LIB_DIR:$PV_PLUGIN_PATH:$LD_LIBRARY_PATH
+- fi
+-
+- unset paraviewDir
+- ;;
+-
+-OpenFOAM | ThirdParty)
+-
+- # Look for a paraview installation
+- if [ -z "$ParaView_VERSION" ]
+- then
+- paraviewDir=$(_foamMostRecentDir "$WM_THIRD_PARTY_DIR"/platforms/$WM_ARCH$WM_COMPILER/ParaView-*)
+- else
+- paraviewDir=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/ParaView-$ParaView_VERSION
+- fi
+-
+- # Set the environment
+- if [ -d "$paraviewDir" ]
+- then
+- export ParaView_DIR=$paraviewDir
+- export ParaView_LIB_DIR=$(echo "$ParaView_DIR"/lib* | tr ' ' ':')
+- export ParaView_VERSION=${paraviewDir##*ParaView-}
+- export ParaView_MAJOR=${ParaView_VERSION%.*}
+- export ParaView_INCLUDE_DIR=$paraviewDir/include/paraview-$ParaView_MAJOR
+- export PV_PLUGIN_PATH=$FOAM_LIBBIN/paraview-$ParaView_MAJOR
+-
+- # Add to the path and the library path
+- export PATH=$ParaView_DIR/bin:$PATH
+- export LD_LIBRARY_PATH=$ParaView_LIB_DIR:$PV_PLUGIN_PATH:$LD_LIBRARY_PATH
+-
+- # Add in python libraries if required
+- paraviewPython=$ParaView_DIR/Utilities/VTKPythonWrapping
+- if [ -r "$paraviewPython" ]
+- then
+- if [ "$PYTHONPATH" ]
+- then
+- export PYTHONPATH=$PYTHONPATH:$paraviewPython:$ParaView_LIB_DIR
+- else
+- export PYTHONPATH=$paraviewPython:$ParaView_LIB_DIR
+- fi
+- fi
+- unset paraviewPython
+- fi
+-
+- unset paraviewDir
+- ;;
+-
+-esac
++export ParaView_VERSION=$EBVERSIONPARAVIEW
++export ParaView_MAJOR=${ParaView_VERSION%.*}
++export ParaView_DIR=$EBROOTPARAVIEW
++export ParaView_LIB_DIR=$ParaView_DIR/lib
++export ParaView_INCLUDE_DIR=$ParaView_DIR/include/paraview-$ParaView_MAJOR
++export PV_PLUGIN_PATH=$FOAM_LIBBIN/paraview-$ParaView_MAJOR
++export LD_LIBRARY_PATH=$ParaView_LIB_DIR:$PV_PLUGIN_PATH:$LD_LIBRARY_PATH
+
+ # Report
+ if [ "$FOAM_VERBOSE" ] && [ "$PS1" ] && [ -d "$ParaView_DIR" ]
+diff -ru OpenFOAM-12-version-12/etc/config.sh/scotch OpenFOAM-12/etc/config.sh/scotch
+--- OpenFOAM-12-version-12/etc/config.sh/scotch
++++ OpenFOAM-12/etc/config.sh/scotch
+@@ -37,32 +37,8 @@
+ # Load functions
+ . $WM_PROJECT_DIR/etc/config.sh/functions
+
+-# Find the path to the scotch installation
+-case "$SCOTCH_TYPE" in
+-none)
+- ;;
+-system)
+- export SCOTCH_VERSION=system
+- export SCOTCH_ARCH_PATH=/usr
+- ;;
+-OpenFOAM | ThirdParty)
+- # Look for the source directory
+- if [ -z "$SCOTCH_VERSION" ]
+- then
+- scotchSrcDir=$(_foamMostRecentDir "$WM_THIRD_PARTY_DIR"/scotch_*)
+- else
+- scotchSrcDir=$WM_THIRD_PARTY_DIR/scotch_$SCOTCH_VERSION
+- fi
+- # Set the version and the installation path
+- if [ -d "$scotchSrcDir" ]
+- then
+- export SCOTCH_VERSION=${scotchSrcDir##*scotch_}
+- export SCOTCH_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER$WM_PRECISION_OPTION$WM_LABEL_OPTION/scotch_$SCOTCH_VERSION
+- fi
+- # Clean up
+- unset scotchSrcDir
+- ;;
+-esac
++export SCOTCH_VERSION=scotch_$EBVERSIONSCOTCH
++export SCOTCH_ARCH_PATH=$EBROOTSCOTCH
+
+ # Unload functions
+ . $WM_PROJECT_DIR/etc/config.sh/functions
+diff -ru OpenFOAM-12-version-12/etc/config.sh/zoltan OpenFOAM-12/etc/config.sh/zoltan
+--- OpenFOAM-12-version-12/etc/config.sh/zoltan
++++ OpenFOAM-12/etc/config.sh/zoltan
+@@ -37,32 +37,8 @@
+ # Load functions
+ . $WM_PROJECT_DIR/etc/config.sh/functions
+
+-# Find the path to the zoltan installation
+-case "$ZOLTAN_TYPE" in
+-none)
+- ;;
+-system)
+- export ZOLTAN_VERSION=system
+- export ZOLTAN_ARCH_PATH=/usr
+- ;;
+-OpenFOAM | ThirdParty)
+- # Look for the source directory
+- if [ -z "$ZOLTAN_VERSION" ]
+- then
+- zoltanSrcDir=$(_foamMostRecentDir "$WM_THIRD_PARTY_DIR"/Zoltan-*)
+- else
+- zoltanSrcDir=$WM_THIRD_PARTY_DIR/Zoltan-$ZOLTAN_VERSION
+- fi
+- # Set the version and the installation path
+- if [ -d "$zoltanSrcDir" ]
+- then
+- export ZOLTAN_VERSION=${zoltanSrcDir##*Zoltan-}
+- export ZOLTAN_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER$WM_PRECISION_OPTION$WM_LABEL_OPTION/Zoltan-$ZOLTAN_VERSION
+- fi
+- # Clean up
+- unset zoltanSrcDir
+- ;;
+-esac
++export ZOLTAN_VERSION=Zoltan-$EBVERSIONZOLTAN
++export ZOLTAN_ARCH_PATH=$EBROOTZOLTAN
+
+ # Unload functions
+ . $WM_PROJECT_DIR/etc/config.sh/functions
+diff -ru OpenFOAM-12-version-12/etc/config.sh/settings OpenFOAM-12/etc/config.sh/settings
+--- OpenFOAM-12-version-12/etc/config.sh/settings
++++ OpenFOAM-12/etc/config.sh/settings
+@@ -63,11 +63,11 @@
+ 64)
+ WM_ARCH=linux64
+ export WM_COMPILER_LIB_ARCH=64
+- export WM_CC='gcc'
+- export WM_CXX='g++'
+- export WM_CFLAGS='-m64 -fPIC'
+- export WM_CXXFLAGS='-m64 -fPIC -std=c++0x'
+- export WM_LDFLAGS='-m64'
++ export WM_CC=$CC
++ export WM_CXX=$CXX
++ export WM_CFLAGS=$CFLAGS
++ export WM_CXXFLAGS=$CXXFLAGS
++ export WM_LDFLAGS=$LDFLAGS
+ ;;
+ *)
+ echo "Unknown WM_ARCH_OPTION '$WM_ARCH_OPTION', should be 32 or 64"\
+diff -ru OpenFOAM-12-version-12/src/parallel/decompose/ptscotch/Make/options OpenFOAM-12/src/parallel/decompose/ptscotch/Make/options
+--- OpenFOAM-12-version-12/src/parallel/decompose/ptscotch/Make/options
++++ OpenFOAM-12/src/parallel/decompose/ptscotch/Make/options
+@@ -6,15 +6,7 @@
+ $(PFLAGS) $(PINC) \
+ -I$(FOAM_SRC)/Pstream/mpi/lnInclude \
+ -I$(SCOTCH_ARCH_PATH)/include/$(FOAM_MPI) \
+- -I$(SCOTCH_ARCH_PATH)/include \
+- -I$(or $(PTSCOTCH_INCLUDE_DIR),/usr/include/scotch) \
+ -I../decompositionMethods/lnInclude
+
+ LIB_LIBS = \
+- -L$(SCOTCH_ARCH_PATH)/lib \
+- $(if $(PTSCOTCH_LIB_DIR),-L$(PTSCOTCH_LIB_DIR)) \
+- -L$(FOAM_EXT_LIBBIN)/$(FOAM_MPI) \
+- -lptscotch \
+- -lptscotcherrexit \
+- -lscotch \
+- -lrt
++ -L$(SCOTCH_ARCH_PATH)/lib -L$(FOAM_EXT_LIBBIN)/$(FOAM_MPI) -lptscotch -lptscotcherrexit -lscotch ${LINK_FLAGS} -lrt
+diff -ru OpenFOAM-12-version-12/src/parallel/decompose/ptscotch/ptscotch.C OpenFOAM-12/src/parallel/decompose/ptscotch/ptscotch.C
+--- OpenFOAM-12-version-12/src/parallel/decompose/ptscotch/ptscotch.C
++++ OpenFOAM-12/src/parallel/decompose/ptscotch/ptscotch.C
+@@ -31,10 +31,11 @@
+ #include "SubField.H"
+ #include "PstreamGlobals.H"
+
++#include
++#include
++
+ extern "C"
+ {
+ #include
+- #include
+- #include "ptscotch.h"
+ }
+
+diff -ru OpenFOAM-12-version-12/src/parallel/decompose/scotch/Make/options OpenFOAM-12/src/parallel/decompose/scotch/Make/options
+--- OpenFOAM-12-version-12/src/parallel/decompose/scotch/Make/options
++++ OpenFOAM-12/src/parallel/decompose/scotch/Make/options
+@@ -6,7 +6,6 @@
+ EXE_INC = \
+ $(PFLAGS) $(PINC) \
+ -I$(SCOTCH_ARCH_PATH)/include \
+- -I$(or $(SCOTCH_INCLUDE_DIR),/usr/include/scotch) \
+ -I../decompositionMethods/lnInclude
+
+ LIB_LIBS = \
diff --git a/easybuild/easyconfigs/o/OpenFOAM/OpenFOAM-12-foss-2023a.eb b/easybuild/easyconfigs/o/OpenFOAM/OpenFOAM-12-foss-2023a.eb
new file mode 100644
index 00000000000..ed565315859
--- /dev/null
+++ b/easybuild/easyconfigs/o/OpenFOAM/OpenFOAM-12-foss-2023a.eb
@@ -0,0 +1,38 @@
+name = 'OpenFOAM'
+version = '12'
+
+homepage = 'https://www.openfoam.org/'
+description = """OpenFOAM is a free, open source CFD software package.
+ OpenFOAM has an extensive range of features to solve anything from complex fluid flows
+ involving chemical reactions, turbulence and heat transfer,
+ to solid dynamics and electromagnetics."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'vectorize': False}
+
+source_urls = ['https://github.com/OpenFOAM/OpenFOAM-%(version_major)s/archive']
+sources = ['version-%(version)s.tar.gz']
+patches = ['OpenFOAM-12-ThirdParty.patch']
+checksums = [
+ {'version-12.tar.gz': 'e59fad54c62e64f1bb89dbaebe5f99a76dc0a6a91d9aad86042a7c4cef6d0744'},
+ {'OpenFOAM-12-ThirdParty.patch': 'b8a9abf3b8479d32d87654d833501f54abe57ceb9f06f7d2412a3e52d20108ec'},
+]
+
+builddependencies = [
+ ('Bison', '3.8.2'),
+ ('CMake', '3.26.3'),
+ ('flex', '2.6.4'),
+]
+
+dependencies = [
+ ('ncurses', '6.4'),
+ # OpenFOAM requires 64 bit METIS using 32 bit indexes (array indexes)
+ ('METIS', '5.1.0'),
+ ('SCOTCH', '7.0.3'),
+ ('CGAL', '5.6'),
+ ('ParaView', '5.11.2'),
+ ('gnuplot', '5.4.8'),
+ ('Zoltan', '3.901'),
+]
+
+moduleclass = 'cae'
diff --git a/easybuild/easyconfigs/o/OpenFOAM/OpenFOAM-v2406-cleanup.patch b/easybuild/easyconfigs/o/OpenFOAM/OpenFOAM-v2406-cleanup.patch
new file mode 100644
index 00000000000..ac5229788c5
--- /dev/null
+++ b/easybuild/easyconfigs/o/OpenFOAM/OpenFOAM-v2406-cleanup.patch
@@ -0,0 +1,182 @@
+# Replaces OpenFOAM third-party libraries with EASYBUILD variants.
+# Uses the OpenFOAM prefs mechanism and the FOAM_CONFIG_ETC variable
+# to define the preferred settings without patching the original files
+#
+# Authors: Mark Olesen
+#
+# ChangeLog:
+# - v2312 - activate METIS, KaHIP and readline support in etc/config.sh/setup
+# author: Jiri Furst
+# - v2406 - set MPFR_ARCH_PATH and GMP_ARCH_PATH to CGAL config
+# author: Jiri Furst
+#
+# -------------------------------------------------------------------------
+--- /dev/null 2020-12-14 09:05:45.272769166 +0100
++++ OpenFOAM-v2012/etc/prefs.sh 2020-12-14 10:02:26.488430802 +0100
+@@ -0,0 +1,7 @@
++##Easybuild## settings -*- sh -*-
++
++export FOAM_CONFIG_ETC="etc/easybuild"
++
++export WM_MPLIB=EASYBUILDMPI
++
++##Easybuild##
+--- /dev/null 2020-12-14 09:05:45.272769166 +0100
++++ OpenFOAM-v2012/etc/easybuild/config.sh/CGAL 2020-12-14 10:10:55.991841204 +0100
+@@ -0,0 +1,8 @@
++##Easybuild## settings -*- sh -*-
++
++export MPFR_ARCH_PATH="$EBROOTMPFR"
++export GMP_ARCH_PATH="$EBROOTGMP"
++export BOOST_ARCH_PATH="$EBROOTBOOST"
++export CGAL_ARCH_PATH="$EBROOTCGAL"
++
++##Easybuild##
+--- /dev/null 2020-12-14 09:05:45.272769166 +0100
++++ OpenFOAM-v2012/etc/easybuild/config.sh/FFTW 2020-12-14 10:10:53.735843322 +0100
+@@ -0,0 +1,5 @@
++##Easybuild## settings -*- sh -*-
++
++export FFTW_ARCH_PATH="$EBROOTFFTW"
++
++##EasyBuild##
+--- /dev/null 2020-12-14 09:05:45.272769166 +0100
++++ OpenFOAM-v2012/etc/easybuild/config.sh/metis 2020-12-11 21:23:28.774934024 +0100
+@@ -0,0 +1,6 @@
++##Easybuild## settings -*- sh -*-
++
++METIS_VERSION="metis-$EBVERSIONMETIS"
++[ -d "$METIS_ARCH_PATH" ] || METIS_ARCH_PATH="$EBROOTMETIS"
++
++##Easybuild##
+--- /dev/null 2022-12-01 18:21:35.103878336 +0100
++++ OpenFOAM-v2206/etc/easybuild/config.sh/kahip 2022-12-12 20:24:07.538408981 +0100
+@@ -0,0 +1,6 @@
++##Easybuild## settings -*- sh -*-
++
++KAHIP_VERSION="kahip-$EBVERSIONKAHIP"
++export KAHIP_ARCH_PATH="$EBROOTKAHIP"
++
++##Easybuild##
+--- /dev/null 2020-12-14 09:05:45.272769166 +0100
++++ OpenFOAM-v2012/etc/easybuild/config.sh/readline 2020-12-11 21:23:22.534951043 +0100
+@@ -0,0 +1,5 @@
++##Easybuild## settings -*- sh -*-
++
++export READLINE_ARCH_PATH="$EBROOTLIBREADLINE"
++
++##Easybuild##
+--- /dev/null 2020-12-14 09:05:45.272769166 +0100
++++ OpenFOAM-v2012/etc/easybuild/config.sh/scotch 2020-12-11 21:23:17.586964539 +0100
+@@ -0,0 +1,7 @@
++##Easybuild## settings -*- sh -*-
++
++export SCOTCH_VERSION="scotch_$EBVERSIONSCOTCH"
++export SCOTCH_ARCH_PATH="$EBROOTSCOTCH"
++[ -d "$SCOTCH_ARCH_PATH" ] || SCOTCH_ARCH_PATH="$SCOTCH_ROOT"
++
++##Easybuild##
+--- /dev/null 2020-12-14 09:05:45.272769166 +0100
++++ OpenFOAM-v2012/etc/easybuild/config.sh/vtk 2020-12-11 21:22:55.463024882 +0100
+@@ -0,0 +1,9 @@
++##Easybuild## settings -*- sh -*-
++
++export VTK_DIR="$EBROOTVTK"
++export MESA_ARCH_PATH="$EBROOTMESA"
++
++# Define paraview-mesa directory as required
++unset ParaView_MESA_DIR
++
++##Easybuild##
+--- /dev/null 2020-12-14 09:05:45.272769166 +0100
++++ OpenFOAM-v2012/etc/easybuild/config.sh/paraview 2020-12-14 10:13:53.583674383 +0100
+@@ -0,0 +1,75 @@
++##Easybuild## settings -*- sh -*-
++#
++# Largely a knockoff of the OpenFOAM etc/config.sh/paraview-system
++# readjusted for easybuild
++#
++# Copyright (C) 2020 OpenCFD Ltd.
++#
++#------------------------------------------------------------------------------
++# Compiler-specific location for ThirdParty installations
++archDir="$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER"
++
++# Clean path and library path of previous settings
++eval \
++ "$($WM_PROJECT_DIR/bin/foamCleanPath -sh-env=PATH \
++ $ParaView_DIR $archDir/ParaView- $archDir/qt-)"
++
++eval \
++ "$($WM_PROJECT_DIR/bin/foamCleanPath -sh-env=LD_LIBRARY_PATH \
++ $ParaView_DIR $archDir/ParaView- $archDir/qt-)"
++
++
++#------------------------------------------------------------------------------
++
++##Easybuild## settings
++
++ParaView_VERSION="$EBVERSIONPARAVIEW"
++export ParaView_DIR="$EBROOTPARAVIEW"
++
++#------------------------------------------------------------------------------
++
++unset PV_PLUGIN_PATH
++
++# Set API to correspond to VERSION
++# pv_api is . from ParaView_VERSION
++#-
++# Extract API from VERSION
++pv_api=$(echo "$ParaView_VERSION" | \
++ sed -ne 's/^[^0-9]*\([0-9][0-9]*\.[0-9][0-9]*\).*$/\1/p')
++
++pv_plugin_dir="$FOAM_LIBBIN/paraview-$pv_api"
++
++# Set paths if binaries are present
++if [ -r "$ParaView_DIR" ]
++then
++ export PATH="$ParaView_DIR/bin:$PATH"
++
++ # ParaView libraries
++ # - 5.5 and later: lib/, but could also be lib64/
++ for libDir in lib64 lib
++ do
++ pvLibDir="$libDir/paraview-$pv_api"
++ if [ -d "$ParaView_DIR/$pvLibDir" ]
++ then
++ export LD_LIBRARY_PATH="$ParaView_DIR/$libDir:$LD_LIBRARY_PATH"
++ break
++ fi
++ done
++
++ # OpenFOAM plugin directory must be the first in PV_PLUGIN_PATH
++ # and have paraview-major.minor encoded in its name
++ if [ -d "$pv_plugin_dir" ]
++ then
++ export PV_PLUGIN_PATH="$pv_plugin_dir"
++ fi
++fi
++
++
++#------------------------------------------------------------------------------
++
++unset ParaView_VERSION
++
++unset archDir libDir
++unset pv_api pv_plugin_dir pvLibDir
++
++#------------------------------------------------------------------------------
+--- OpenFOAM-v2312/etc/config.sh/setup.orig 2024-01-11 09:49:24.823571481 +0100
++++ OpenFOAM-v2312/etc/config.sh/setup 2024-01-11 09:51:40.545969774 +0100
+@@ -207,7 +207,9 @@
+ _foamEtc -config CGAL
+ _foamEtc -config scotch
+ _foamEtc -config FFTW
+-
++_foamEtc -config metis
++_foamEtc -config kahip
++_foamEtc -config readline
+
+ # Finalize library paths
+ # ~~~~~~~~~~~~~~~~~~~~~~
+
diff --git a/easybuild/easyconfigs/o/OpenFOAM/OpenFOAM-v2406-foss-2023a.eb b/easybuild/easyconfigs/o/OpenFOAM/OpenFOAM-v2406-foss-2023a.eb
new file mode 100644
index 00000000000..0e2885c064f
--- /dev/null
+++ b/easybuild/easyconfigs/o/OpenFOAM/OpenFOAM-v2406-foss-2023a.eb
@@ -0,0 +1,55 @@
+name = 'OpenFOAM'
+version = 'v2406'
+
+homepage = 'https://www.openfoam.com/'
+description = """OpenFOAM is a free, open source CFD software package.
+ OpenFOAM has an extensive range of features to solve anything from complex fluid flows
+ involving chemical reactions, turbulence and heat transfer,
+ to solid dynamics and electromagnetics."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+# Users have found that vectorizion caused OpenFOAM to produce some very incorrect results.
+# Disabling vectorize was confirmed to fix the the known issues.
+# With no test suite, sticking to known working toolchain options until proven otherwise.
+toolchainopts = {'cstd': 'c++14', 'vectorize': False}
+
+source_urls = ['https://sourceforge.net/projects/openfoam/files/%(version)s/']
+sources = [
+ SOURCE_TGZ,
+ {
+ 'filename': '%(name)s-plugins-%(version)s.tgz',
+ 'extract_cmd': 'tar --strip-components=1 -C %(installdir)s/%(name)s-%(version)s/ -xzf %s'
+ }
+]
+patches = [
+ ('OpenFOAM-v2406-cleanup.patch', 1),
+ ('OpenFOAM-v2212-wmake-OpenMPI.patch', 1),
+]
+checksums = [
+ {'OpenFOAM-v2406.tgz': '8d1450fb89eec1e7cecc55c3bb7bc486ccbf63d069379d1d5d7518fa16a4686a'},
+ {'OpenFOAM-plugins-v2406.tgz': '1d008f86fad06a4a568d194c6e3d5ab52be2b20c83a3b9b1b0230e2de2d0558b'},
+ {'OpenFOAM-v2406-cleanup.patch': '3abff48a517fb63719ad57fa32af746bc379a1e80c72d3e5852aa17cd13cf03e'},
+ {'OpenFOAM-v2212-wmake-OpenMPI.patch': '241dc4898c22aab0cbd10c1ea931a07a786508ee03462d45dbc1c202fee3ebe8'},
+]
+
+builddependencies = [
+ ('Bison', '3.8.2'),
+ ('CMake', '3.26.3'),
+ ('flex', '2.6.4'),
+]
+
+dependencies = [
+ ('libreadline', '8.2'),
+ ('ncurses', '6.4'),
+ # OpenFOAM requires 64 bit METIS using 32 bit indexes (array indexes)
+ ('METIS', '5.1.0'),
+ ('SCOTCH', '7.0.3'),
+ ('KaHIP', '3.16'),
+ ('CGAL', '5.6'),
+ ('GMP', '6.2.1'),
+ ('MPFR', '4.2.0'),
+ ('ParaView', '5.11.2'),
+ ('gnuplot', '5.4.8'),
+]
+
+moduleclass = 'cae'
diff --git a/easybuild/easyconfigs/o/OpenImageIO/OpenImageIO-2.5.15.0-GCC-13.3.0.eb b/easybuild/easyconfigs/o/OpenImageIO/OpenImageIO-2.5.15.0-GCC-13.3.0.eb
new file mode 100644
index 00000000000..2b2aff2aaab
--- /dev/null
+++ b/easybuild/easyconfigs/o/OpenImageIO/OpenImageIO-2.5.15.0-GCC-13.3.0.eb
@@ -0,0 +1,39 @@
+easyblock = 'CMakeMake'
+
+name = 'OpenImageIO'
+version = '2.5.15.0'
+
+homepage = 'https://openimageio.org/'
+description = """OpenImageIO is a library for reading and writing images, and a bunch of related classes, utilities,
+ and applications."""
+
+toolchain = {'name': 'GCC', 'version': '13.3.0'}
+
+source_urls = ['https://github.com/OpenImageIO/oiio/archive/refs/tags/']
+sources = ['v%(version)s.tar.gz']
+checksums = [('7779ef2c3d03c5ed95e13ff292de85c3f8cee301cd46baad0d2dc83c93bfe85c')]
+
+builddependencies = [
+ ('CMake', '3.29.3'),
+ ('git', '2.45.1'),
+]
+dependencies = [
+ ('Boost', '1.85.0'),
+ ('libjpeg-turbo', '3.0.1'),
+ ('libpng', '1.6.43'),
+ ('LibTIFF', '4.6.0'),
+ ('OpenEXR', '3.2.4'),
+ ('freetype', '2.13.2'),
+ ('zlib', '1.3.1'),
+]
+
+separate_build_dir = True
+
+configopts = '-DSTOP_ON_WARNING=OFF -DUSE_PYTHON=OFF'
+
+sanity_check_paths = {
+ 'files': ['bin/oiiotool', 'lib/libOpenImageIO.%s' % SHLIB_EXT, 'lib/libOpenImageIO_Util.%s' % SHLIB_EXT],
+ 'dirs': ['include/OpenImageIO', 'share'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/o/OpenJPEG/OpenJPEG-2.5.2-GCCcore-13.3.0.eb b/easybuild/easyconfigs/o/OpenJPEG/OpenJPEG-2.5.2-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..8ee5d1477f8
--- /dev/null
+++ b/easybuild/easyconfigs/o/OpenJPEG/OpenJPEG-2.5.2-GCCcore-13.3.0.eb
@@ -0,0 +1,42 @@
+easyblock = 'CMakeMake'
+
+name = 'OpenJPEG'
+version = '2.5.2'
+
+homepage = 'https://www.openjpeg.org/'
+description = """OpenJPEG is an open-source JPEG 2000 codec written in
+ C language. It has been developed in order to promote the use of JPEG 2000,
+ a still-image compression standard from the Joint Photographic Experts Group
+ (JPEG). Since may 2015, it is officially recognized by ISO/IEC and ITU-T as
+ a JPEG 2000 Reference Software."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/uclouvain/%(namelower)s/archive']
+sources = ['v%(version)s.tar.gz']
+checksums = ['90e3896fed910c376aaf79cdd98bdfdaf98c6472efd8e1debf0a854938cbda6a']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('CMake', '3.29.3'),
+]
+# for running the binary of openjpeg like opj_compress you need the libraries like zlib etc.
+dependencies = [
+ ('zlib', '1.3.1'),
+ ('libpng', '1.6.43'),
+ ('LibTIFF', '4.6.0'),
+]
+
+sanity_check_paths = {
+ 'files': [
+ 'bin/opj_compress',
+ 'bin/opj_decompress',
+ 'bin/opj_dump',
+ 'include/openjpeg-%(version_major)s.%(version_minor)s/openjpeg.h',
+ 'lib/libopenjp2.%s' % SHLIB_EXT
+ ],
+ 'dirs': ['bin', 'include', 'lib'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/o/OpenMEEG/OpenMEEG-2.5.7-foss-2023a.eb b/easybuild/easyconfigs/o/OpenMEEG/OpenMEEG-2.5.7-foss-2023a.eb
index 8926a0833fa..42b0118bbe8 100644
--- a/easybuild/easyconfigs/o/OpenMEEG/OpenMEEG-2.5.7-foss-2023a.eb
+++ b/easybuild/easyconfigs/o/OpenMEEG/OpenMEEG-2.5.7-foss-2023a.eb
@@ -47,8 +47,8 @@ sanity_check_paths = {
sanity_check_commands = [
"om_mesh_info --help",
- "pip check",
- "python -c 'import openmeeg'",
+ "PIP_DISABLE_PIP_VERSION_CHECK=true python -s -m pip check",
+ "python -s -c 'import openmeeg'",
]
modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'}
diff --git a/easybuild/easyconfigs/o/OpenMM-Torch/OpenMM-Torch-20240816-foss-2023a.eb b/easybuild/easyconfigs/o/OpenMM-Torch/OpenMM-Torch-20240816-foss-2023a.eb
new file mode 100644
index 00000000000..8e40a8c95af
--- /dev/null
+++ b/easybuild/easyconfigs/o/OpenMM-Torch/OpenMM-Torch-20240816-foss-2023a.eb
@@ -0,0 +1,51 @@
+easyblock = 'CMakeMake'
+
+name = 'OpenMM-Torch'
+version = '20240816'
+local_commit = '8893c0f'
+
+homepage = 'https://openmm.org/'
+description = """
+OpenMM-Torch is an OpenMM plugin to define forces with neural networks.
+The OpenMM-Torch package provides an interface to the PyTorch machine learning framework.
+It lets you define new types of forces through PyTorch code.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'cstd': 'c++17'}
+
+source_urls = ['https://github.com/openmm/%(namelower)s/archive']
+sources = ['%s.tar.gz' % local_commit]
+checksums = ['c2abf0bfce61b6e2e1f42d27a89032b4b994f7d67eb238ddf1a7d299cae551bf']
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('PyTorch', '2.1.2'),
+ ('OpenMM', '8.0.0'),
+]
+
+configopts = '-DOPENMM_DIR="${EBROOTOPENMM}" '
+configopts += '-DPYTORCH_DIR="${EBROOTPYTORCH}/lib/python%(pyshortver)s/site-packages/torch"'
+
+# install Python bindings
+postinstallcmds = [
+ "sed -i 's|pip install |pip install --prefix=%(installdir)s |' %(start_dir)s/python/CMakeLists.txt",
+ "make PythonInstall",
+]
+
+sanity_check_paths = {
+ 'files': ['lib/python%(pyshortver)s/site-packages/openmmtorch.py'],
+ 'dirs': ['lib', 'include'],
+}
+
+sanity_check_commands = [
+ "python -c 'import openmmtorch'",
+]
+
+modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/o/OpenMM/OpenMM-8.0.0-foss-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/o/OpenMM/OpenMM-8.0.0-foss-2023a-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..8cf271071e7
--- /dev/null
+++ b/easybuild/easyconfigs/o/OpenMM/OpenMM-8.0.0-foss-2023a-CUDA-12.1.1.eb
@@ -0,0 +1,70 @@
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+# Author: Pablo Escobar Lopez
+# sciCORE - University of Basel
+# SIB Swiss Institute of Bioinformatics
+# Update to 7.5.1
+# J. Sassmannshausen / GSTT
+
+easyblock = 'CMakeMake'
+
+name = 'OpenMM'
+version = '8.0.0'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://openmm.org'
+description = "OpenMM is a toolkit for molecular simulation."
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'opt': True}
+
+source_urls = ['https://github.com/openmm/openmm/archive/']
+sources = ['%(version)s.tar.gz']
+patches = ['OpenMM-8.0.0_add_no_tree_vectorize.patch']
+checksums = [
+ 'dc63d7b47c8bb7b169c409cfd63d909ed0ce1ae114d37c627bf7a4231acf488e', # 8.0.0.tar.gz
+ '4bacf45443a2472e59798743f27d07481e065d784cbbea7be22aa6427af0d2bd', # OpenMM-8.0.0_add_no_tree_vectorize.patch
+]
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+ ('Doxygen', '1.9.7'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('SWIG', '4.1.1'),
+ ('CUDA', '12.1.1', '', SYSTEM),
+]
+
+# Set the OPENMM_CUDA_COMPILER variable to make sure that all tests use the right nvcc,
+# Otherwise they will use the wrong path: `/usr/local/cuda/bin/nvcc`
+pretestopts = ' export OPENMM_CUDA_COMPILER=${EBROOTCUDA}/bin/nvcc && '
+pretestopts += " CTEST_OUTPUT_ON_FAILURE=1"
+# Skip CudaCompiler test as it doesn't work when the OPENMM_CUDA_COMPILER variable is set
+local_ignore_pattern = "(Integrator)|(Thermostat)|(Barostat)|(Rpmd)|(Amoeba)|(CudaCompiler)"
+runtest = """test -e ARGS="-E \'%s\'" """ % local_ignore_pattern
+
+preinstallopts = ' export OPENMM_INCLUDE_PATH=%(installdir)s/include && '
+preinstallopts += ' export OPENMM_LIB_PATH=%(installdir)s/lib && '
+
+# required to install the python API
+installopts = ' && cd python && python setup.py build && python setup.py install --prefix=%(installdir)s'
+
+sanity_check_paths = {
+ 'files': ['lib/libOpenMM.%s' % SHLIB_EXT],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages']
+}
+
+sanity_check_commands = [
+ "python -c 'import simtk.openmm'",
+ "python -m openmm.testInstallation",
+]
+
+modextrapaths = {
+ 'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages/OpenMM-%(version)s-py%(pyshortver)s-linux-%(arch)s.egg',
+ 'OPENMM_INCLUDE_PATH': 'include',
+ 'OPENMM_LIB_PATH': 'lib',
+}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/o/OpenMM/OpenMM-8.1.2-foss-2023b.eb b/easybuild/easyconfigs/o/OpenMM/OpenMM-8.1.2-foss-2023b.eb
new file mode 100644
index 00000000000..7b4e30add53
--- /dev/null
+++ b/easybuild/easyconfigs/o/OpenMM/OpenMM-8.1.2-foss-2023b.eb
@@ -0,0 +1,60 @@
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+# Author: Pablo Escobar Lopez
+# sciCORE - University of Basel
+# SIB Swiss Institute of Bioinformatics
+# Update to 7.5.1
+# J. Sassmannshausen / GSTT
+
+easyblock = 'CMakeMake'
+
+name = 'OpenMM'
+version = '8.1.2'
+
+homepage = 'https://openmm.org'
+description = "OpenMM is a toolkit for molecular simulation."
+
+toolchain = {'name': 'foss', 'version': '2023b'}
+toolchainopts = {'opt': True}
+
+source_urls = ['https://github.com/openmm/openmm/archive/']
+sources = ['%(version)s.tar.gz']
+checksums = ['afc888a4e46486d8d68dac4d403e2b0b28f51b95e52e821e34c38e8b428e040e']
+
+builddependencies = [
+ ('CMake', '3.27.6'),
+ ('Doxygen', '1.9.8'),
+]
+
+dependencies = [
+ ('Python', '3.11.5'),
+ ('SciPy-bundle', '2023.11'),
+ ('SWIG', '4.1.1'),
+]
+
+pretestopts = " CTEST_OUTPUT_ON_FAILURE=1"
+local_ignore_pattern = "(Integrator)|(Thermostat)|(Barostat)|(Rpmd)|(Amoeba)"
+runtest = """test -e ARGS="-E \'%s\'" """ % local_ignore_pattern
+
+preinstallopts = ' export OPENMM_INCLUDE_PATH=%(installdir)s/include && '
+preinstallopts += ' export OPENMM_LIB_PATH=%(installdir)s/lib && '
+
+# required to install the python API
+installopts = ' && cd python && python setup.py build && python setup.py install --prefix=%(installdir)s'
+
+sanity_check_paths = {
+ 'files': ['lib/libOpenMM.%s' % SHLIB_EXT],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages']
+}
+
+sanity_check_commands = [
+ "python -c 'import simtk.openmm'",
+ "python -m openmm.testInstallation",
+]
+
+modextrapaths = {
+ 'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages/OpenMM-%(version)s-py%(pyshortver)s-linux-%(arch)s.egg',
+ 'OPENMM_INCLUDE_PATH': 'include',
+ 'OPENMM_LIB_PATH': 'lib',
+}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/o/OpenMMTools/OpenMMTools-0.23.1-foss-2023a.eb b/easybuild/easyconfigs/o/OpenMMTools/OpenMMTools-0.23.1-foss-2023a.eb
new file mode 100644
index 00000000000..1bec0ef4891
--- /dev/null
+++ b/easybuild/easyconfigs/o/OpenMMTools/OpenMMTools-0.23.1-foss-2023a.eb
@@ -0,0 +1,61 @@
+easyblock = 'PythonBundle'
+
+name = 'OpenMMTools'
+version = '0.23.1'
+
+homepage = 'https://github.com/choderalab/openmmtools'
+description = """A batteries-included toolkit for the GPU-accelerated OpenMM molecular simulation engine.
+openmmtools is a Python library layer that sits on top of OpenMM to provide access to a variety of useful tools
+for building full-featured molecular simulation packages.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'usempi': True}
+
+builddependencies = [
+ ('hatchling', '1.18.0'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('OpenMM', '8.0.0'),
+ ('netcdf4-python', '1.6.4'),
+ ('MDTraj', '1.9.9'),
+ ('PyYAML', '6.0'),
+ ('numba', '0.58.1'),
+ ('jupyter-server', '2.7.2'),
+]
+
+use_pip = True
+exts_list = [
+ ('pymbar', '3.1', {
+ # pymbar 3.1 is not available via PyPI, see https://github.com/choderalab/pymbar/issues/475
+ 'source_urls': ['https://github.com/choderalab/pymbar/archive/'],
+ 'sources': ['%(version)s.tar.gz'],
+ 'checksums': ['7a996e5d3fd8143378f9e18662483446a4a2fe7e57917511e96beb6b07fd6232'],
+ }),
+ ('mpiplus', '0.0.2', {
+ 'source_tmpl': 'v%(version)s.tar.gz',
+ 'source_urls': ['https://github.com/choderalab/mpiplus/archive/'],
+ 'checksums': ['5f051210b8cd321fdcbfa97a6e1606b63e6d6c7214c393bc04f93a8545b6d3a8'],
+ }),
+ (name, version, {
+ 'source_tmpl': '%(version)s.tar.gz',
+ 'source_urls': ['https://github.com/choderalab/openmmtools/archive/'],
+ 'checksums': ['9281f50896a91f3f9e1ea16f0636f2aff494287a51a4ec03ae8e26f1b8edaccc'],
+ # import check requires use of mpirun, handled via sanity_check_commands
+ 'modulename': False,
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/test-openmm-platforms'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = ["%(mpi_cmd_prefix)s python -c 'import %(namelower)s'"]
+
+sanity_pip_check = True
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/o/OpenMPI/OpenMPI-5.0.3-NVHPC-24.9-CUDA-12.6.0.eb b/easybuild/easyconfigs/o/OpenMPI/OpenMPI-5.0.3-NVHPC-24.9-CUDA-12.6.0.eb
new file mode 100644
index 00000000000..e6c772bf64e
--- /dev/null
+++ b/easybuild/easyconfigs/o/OpenMPI/OpenMPI-5.0.3-NVHPC-24.9-CUDA-12.6.0.eb
@@ -0,0 +1,63 @@
+name = 'OpenMPI'
+version = '5.0.3'
+
+homepage = 'https://www.open-mpi.org/'
+description = """The Open MPI Project is an open source MPI-3 implementation."""
+
+toolchain = {'name': 'NVHPC', 'version': '24.9-CUDA-12.6.0'}
+
+source_urls = ['https://www.open-mpi.org/software/ompi/v%(version_major_minor)s/downloads']
+sources = [SOURCELOWER_TAR_BZ2]
+patches = [
+ 'OpenMPI-5.0.3_fix_hle_make_errors.patch',
+ 'OpenMPI-5.0.3_disable_opal_path_nfs_test.patch',
+ ('OpenMPI-5.0.2_build-with-internal-cuda-header.patch', 1)
+]
+checksums = [
+ {'openmpi-5.0.3.tar.bz2':
+ '990582f206b3ab32e938aa31bbf07c639368e4405dca196fabe7f0f76eeda90b'},
+ {'OpenMPI-5.0.3_fix_hle_make_errors.patch':
+ '881c907a9f5901d5d6af41cd33dffdcecba4a67a9e5123e602542aea57a80895'},
+ {'OpenMPI-5.0.3_disable_opal_path_nfs_test.patch':
+ '75d4417e35252ea3a19b2792f1b06e9aeb408c253aa4921d77226d57b71dee45'},
+ {'OpenMPI-5.0.2_build-with-internal-cuda-header.patch':
+ 'f52dc470543f35efef10d651dd159c771ae25f8f76a420d20d87abf4dc769ed7'},
+]
+
+builddependencies = [
+ ('pkgconf', '2.2.0'),
+ ('Perl', '5.38.2'),
+ ('Autotools', '20231222'),
+]
+
+dependencies = [
+ ('zlib', '1.3.1'),
+ ('hwloc', '2.10.0'),
+ ('libevent', '2.1.12'),
+ ('UCX', '1.16.0'),
+ ('UCX-CUDA', '1.16.0', '-CUDA-%(cudaver)s'),
+ ('libfabric', '1.21.0'),
+ ('PMIx', '5.0.2'),
+ ('PRRTE', '3.0.5'),
+ ('UCC', '1.3.0'),
+ ('UCC-CUDA', '1.3.0', '-CUDA-%(cudaver)s'),
+]
+
+# CUDA related patches and custom configure option can be removed if CUDA support isn't wanted.
+preconfigopts = 'nvc -Iopal/mca/cuda/include -shared opal/mca/cuda/lib/cuda.c -o opal/mca/cuda/lib/libcuda.so && '
+# Update configure to include changes from the "disable_opal_path_nfs_test" patch
+preconfigopts += './autogen.pl --force && '
+
+configopts = '--with-cuda=%(start_dir)s/opal/mca/cuda '
+# Required to prevent internal compiler error in opal.
+configopts += '--enable-alt-short-float=no '
+# Set PGI compilers manually, as NVHPC compilers are not correctly detected
+configopts += 'CC=pgcc CXX=pgc++ FC=pgfortran '
+
+# site specific options
+# configopts += '--without-psm2 '
+# configopts += '--disable-oshmem '
+# configopts += '--with-gpfs '
+configopts += '--with-slurm '
+
+moduleclass = 'mpi'
diff --git a/easybuild/easyconfigs/o/OpenMPI/OpenMPI-5.0.3_disable_opal_path_nfs_test.patch b/easybuild/easyconfigs/o/OpenMPI/OpenMPI-5.0.3_disable_opal_path_nfs_test.patch
new file mode 100644
index 00000000000..09d9f829f06
--- /dev/null
+++ b/easybuild/easyconfigs/o/OpenMPI/OpenMPI-5.0.3_disable_opal_path_nfs_test.patch
@@ -0,0 +1,33 @@
+Disable opal_path_nfs test in OpenMPI 5.0.3 as this test can easily fail on some systems,
+when NFS mounts are used. Generally, this test is flaky, which may prevent users
+from installing OpenMPI for no apparent reason.
+
+diff --git a/test/util/Makefile.am b/test/util/Makefile.am
+index e5ad472..33d63c4 100644
+--- a/test/util/Makefile.am
++++ b/test/util/Makefile.am
+@@ -38,7 +38,6 @@ AM_CPPFLAGS = -I$(top_srcdir)/test/support
+
+ check_PROGRAMS = \
+ opal_bit_ops \
+- opal_path_nfs \
+ bipartite_graph \
+ opal_sha256
+
+@@ -80,11 +79,11 @@ opal_bit_ops_LDADD = \
+ $(top_builddir)/test/support/libsupport.a
+ opal_bit_ops_DEPENDENCIES = $(opal_path_nfs_LDADD)
+
+-opal_path_nfs_SOURCES = opal_path_nfs.c
+-opal_path_nfs_LDADD = \
+- $(top_builddir)/opal/lib@OPAL_LIB_NAME@.la \
+- $(top_builddir)/test/support/libsupport.a
+-opal_path_nfs_DEPENDENCIES = $(opal_path_nfs_LDADD)
++# opal_path_nfs_SOURCES = opal_path_nfs.c
++# opal_path_nfs_LDADD = \
++# $(top_builddir)/opal/lib@OPAL_LIB_NAME@.la \
++# $(top_builddir)/test/support/libsupport.a
++# opal_path_nfs_DEPENDENCIES = $(opal_path_nfs_LDADD)
+
+ #opal_os_path_SOURCES = opal_os_path.c
+ #opal_os_path_LDADD = \
diff --git a/easybuild/easyconfigs/o/OpenMPI/OpenMPI-5.0.3_fix_hle_make_errors.patch b/easybuild/easyconfigs/o/OpenMPI/OpenMPI-5.0.3_fix_hle_make_errors.patch
new file mode 100644
index 00000000000..dc9b0671658
--- /dev/null
+++ b/easybuild/easyconfigs/o/OpenMPI/OpenMPI-5.0.3_fix_hle_make_errors.patch
@@ -0,0 +1,25 @@
+On JUWELS, building OpenMPI 5.0.5 with NVHPC 24.9 fails with errors
+related to `__ATOMIC_HLE_ACQUIRE` and `__ATOMIC_HLE_RELEASE` not being
+defined. Add an additional macro check to let the build succeed.
+
+--- a/opal/include/opal/sys/gcc_builtin/atomic.h 2024-07-23 01:23:20.567556032 +0200
++++ a/opal/include/opal/sys/gcc_builtin/atomic.h 2024-10-02 12:19:53.130698758 +0200
+@@ -187,7 +187,7 @@
+ *
+ *********************************************************************/
+
+-#if defined(__HLE__)
++#if defined(__HLE__) && defined(__ATOMIC_HLE_ACQUIRE) && defined(__ATOMIC_HLE_RELEASE)
+
+ # include
+
+@@ -225,7 +225,7 @@
+ __ATOMIC_RELEASE | __ATOMIC_HLE_RELEASE);
+ }
+
+-#else /* #if defined(__HLE__) */
++#else /* #if defined(__HLE__) && defined(__ATOMIC_HLE_ACQUIRE) && defined(__ATOMIC_HLE_RELEASE) */
+
+ #include "opal/sys/atomic_impl_spinlock.h"
+
+
diff --git a/easybuild/easyconfigs/o/OpenPGM/OpenPGM-5.2.122-GCCcore-13.3.0.eb b/easybuild/easyconfigs/o/OpenPGM/OpenPGM-5.2.122-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..cbf6bca94d7
--- /dev/null
+++ b/easybuild/easyconfigs/o/OpenPGM/OpenPGM-5.2.122-GCCcore-13.3.0.eb
@@ -0,0 +1,44 @@
+easyblock = 'ConfigureMake'
+
+name = 'OpenPGM'
+version = '5.2.122'
+
+homepage = 'https://code.google.com/p/openpgm/'
+description = """
+ OpenPGM is an open source implementation of the Pragmatic General Multicast
+ (PGM) specification in RFC 3208 available at www.ietf.org. PGM is a reliable
+ and scalable multicast protocol that enables receivers to detect loss, request
+ retransmission of lost data, or notify an application of unrecoverable loss.
+ PGM is a receiver-reliable protocol, which means the receiver is responsible
+ for ensuring all data is received, absolving the sender of reception
+ responsibility.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/%(namelower)s/']
+sources = ['libpgm-%(version)s.tar.gz']
+patches = [
+ '%(name)s-%(version)s-pkgconfig_includes.patch',
+ '%(name)s-%(version)s-python3-compliant.patch',
+]
+checksums = [
+ '6b895f550b95284dcde7189b01e04a9a1c1f94579af31b1eebd32c2207a1ba2c', # libpgm-%(version)s.tar.gz
+ '4a9fc7fbb6e73e325639a895cd19c1ac6918b575f715c057caa01f826de40114', # %(name)s-%(version)s-pkgconfig_includes.patch
+ 'a3bf6b4127473d287d72767b0335b8705940e56ffbccc8d4d3bdbf23a2fc8618', # %(name)s-%(version)s-python3-compliant.patch
+]
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('Python', '3.12.3'),
+]
+
+start_dir = 'pgm'
+
+sanity_check_paths = {
+ 'files': ['lib/libpgm.%s' % SHLIB_EXT, 'lib/libpgm.a'],
+ 'dirs': ['include'],
+}
+
+moduleclass = 'system'
diff --git a/easybuild/easyconfigs/o/OpenStackClient/OpenStackClient-5.5.0-GCCcore-10.2.0.eb b/easybuild/easyconfigs/o/OpenStackClient/OpenStackClient-5.5.0-GCCcore-10.2.0.eb
index b013362d2e5..50dab938d40 100644
--- a/easybuild/easyconfigs/o/OpenStackClient/OpenStackClient-5.5.0-GCCcore-10.2.0.eb
+++ b/easybuild/easyconfigs/o/OpenStackClient/OpenStackClient-5.5.0-GCCcore-10.2.0.eb
@@ -16,9 +16,9 @@ dependencies = [
]
builddependencies = [('binutils', '2.35')]
-exts_default_options = {
- 'use_pip': True,
-}
+sanity_pip_check = True
+use_pip = True
+
exts_list = [
('pbr', '5.6.0', {
'checksums': ['42df03e7797b796625b1029c0400279c7c34fd7df24a7d7818a1abb5b38710dd'],
@@ -121,7 +121,6 @@ exts_list = [
}),
]
-sanity_pip_check = True
enhance_sanity_check = True
sanity_check_commands = ['openstack -h']
diff --git a/easybuild/easyconfigs/o/OpenStackClient/OpenStackClient-5.8.0-GCCcore-11.2.0.eb b/easybuild/easyconfigs/o/OpenStackClient/OpenStackClient-5.8.0-GCCcore-11.2.0.eb
index e590dd730ca..d92bda87180 100644
--- a/easybuild/easyconfigs/o/OpenStackClient/OpenStackClient-5.8.0-GCCcore-11.2.0.eb
+++ b/easybuild/easyconfigs/o/OpenStackClient/OpenStackClient-5.8.0-GCCcore-11.2.0.eb
@@ -16,9 +16,9 @@ dependencies = [
]
builddependencies = [('binutils', '2.37')]
-exts_default_options = {
- 'use_pip': True,
-}
+sanity_pip_check = True
+use_pip = True
+
exts_list = [
('pyperclip', '1.8.2', {
'checksums': ['105254a8b04934f0bc84e9c24eb360a591aaf6535c9def5f29d92af107a9bf57'],
@@ -121,7 +121,6 @@ exts_list = [
}),
]
-sanity_pip_check = True
enhance_sanity_check = True
sanity_check_commands = ['openstack -h']
diff --git a/easybuild/easyconfigs/o/OpenStackClient/OpenStackClient-6.0.0-GCCcore-12.2.0.eb b/easybuild/easyconfigs/o/OpenStackClient/OpenStackClient-6.0.0-GCCcore-12.2.0.eb
index 6b695f63279..bdf0b5c45a6 100644
--- a/easybuild/easyconfigs/o/OpenStackClient/OpenStackClient-6.0.0-GCCcore-12.2.0.eb
+++ b/easybuild/easyconfigs/o/OpenStackClient/OpenStackClient-6.0.0-GCCcore-12.2.0.eb
@@ -15,9 +15,9 @@ dependencies = [
]
builddependencies = [('binutils', '2.39')]
-exts_default_options = {
- 'use_pip': True,
-}
+sanity_pip_check = True
+use_pip = True
+
exts_list = [
('pyperclip', '1.8.2', {
'checksums': ['105254a8b04934f0bc84e9c24eb360a591aaf6535c9def5f29d92af107a9bf57'],
@@ -114,7 +114,6 @@ exts_list = [
}),
]
-sanity_pip_check = True
enhance_sanity_check = True
sanity_check_commands = ['openstack -h']
diff --git a/easybuild/easyconfigs/o/Optax/Optax-0.2.2-gfbf-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/o/Optax/Optax-0.2.2-gfbf-2023a-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..61000b1388c
--- /dev/null
+++ b/easybuild/easyconfigs/o/Optax/Optax-0.2.2-gfbf-2023a-CUDA-12.1.1.eb
@@ -0,0 +1,37 @@
+easyblock = 'PythonBundle'
+
+name = 'Optax'
+version = '0.2.2'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://github.com/deepmind/optax'
+description = """Optax is a gradient processing and optimization library for JAX."""
+
+toolchain = {'name': 'gfbf', 'version': '2023a'}
+
+dependencies = [
+ ('CUDA', '12.1.1', '', SYSTEM),
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('jax', '0.4.25', versionsuffix),
+]
+
+use_pip = True
+
+exts_list = [
+ ('toolz', '0.12.1', {
+ 'checksums': ['ecca342664893f177a13dac0e6b41cbd8ac25a358e5f215316d43e2100224f4d'],
+ }),
+ ('chex', '0.1.86', {
+ 'checksums': ['e8b0f96330eba4144659e1617c0f7a57b161e8cbb021e55c6d5056c7378091d1'],
+ }),
+ ('optax', version, {
+ 'checksums': ['f09bf790ef4b09fb9c35f79a07594c6196a719919985f542dc84b0bf97812e0e'],
+ }),
+]
+
+sanity_pip_check = True
+
+sanity_check_commands = ["python -c 'from optax import GradientTransformation'"]
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/o/Optax/Optax-0.2.2-foss-2023a.eb b/easybuild/easyconfigs/o/Optax/Optax-0.2.2-gfbf-2023a.eb
similarity index 71%
rename from easybuild/easyconfigs/o/Optax/Optax-0.2.2-foss-2023a.eb
rename to easybuild/easyconfigs/o/Optax/Optax-0.2.2-gfbf-2023a.eb
index be05f009e9e..d447a77bbd2 100644
--- a/easybuild/easyconfigs/o/Optax/Optax-0.2.2-foss-2023a.eb
+++ b/easybuild/easyconfigs/o/Optax/Optax-0.2.2-gfbf-2023a.eb
@@ -6,7 +6,7 @@ version = '0.2.2'
homepage = 'https://github.com/deepmind/optax'
description = """Optax is a gradient processing and optimization library for JAX."""
-toolchain = {'name': 'foss', 'version': '2023a'}
+toolchain = {'name': 'gfbf', 'version': '2023a'}
dependencies = [
('Python', '3.11.3'),
@@ -20,13 +20,6 @@ exts_list = [
('toolz', '0.12.1', {
'checksums': ['ecca342664893f177a13dac0e6b41cbd8ac25a358e5f215316d43e2100224f4d'],
}),
- ('flit_core', '3.9.0', {
- 'checksums': ['72ad266176c4a3fcfab5f2930d76896059851240570ce9a98733b658cb786eba'],
- }),
- ('absl-py', '2.1.0', {
- 'modulename': 'absl',
- 'checksums': ['7820790efbb316739cde8b4e19357243fc3608a152024288513dd968d7d959ff'],
- }),
('chex', '0.1.86', {
'checksums': ['e8b0f96330eba4144659e1617c0f7a57b161e8cbb021e55c6d5056c7378091d1'],
}),
diff --git a/easybuild/easyconfigs/o/Optuna/Optuna-3.6.1-foss-2023b.eb b/easybuild/easyconfigs/o/Optuna/Optuna-3.6.1-foss-2023b.eb
new file mode 100644
index 00000000000..35dec40e234
--- /dev/null
+++ b/easybuild/easyconfigs/o/Optuna/Optuna-3.6.1-foss-2023b.eb
@@ -0,0 +1,50 @@
+easyblock = 'PythonBundle'
+
+name = 'Optuna'
+version = '3.6.1'
+
+homepage = "https://optuna.org/"
+description = """Optuna is an automatic hyperparameter optimization software framework,
+particularly designed for machine learning. It features an imperative,
+define-by-run style user API. Thanks to our define-by-run API, the code written
+with Optuna enjoys high modularity, and the user of Optuna can dynamically
+construct the search spaces for the hyperparameters."""
+
+
+toolchain = {'name': 'foss', 'version': '2023b'}
+
+dependencies = [
+ ('Python', '3.11.5'),
+ ('PyYAML', '6.0.1'),
+ ('SciPy-bundle', '2023.11'),
+ ('tqdm', '4.66.2'),
+ ('matplotlib', '3.8.2'), # optional
+ ('plotly.py', '5.18.0'), # optional
+ ('redis-py', '5.0.9'), # optional
+ ('scikit-learn', '1.4.0'), # optional
+ ('SQLAlchemy', '2.0.29'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('cmaes', '0.11.1', {
+ 'checksums': ['cf71fa3679814723be771f2c9edd85f465b1bc1e409e1ad6d8a9e481efcd5160'],
+ }),
+ ('colorlog', '6.8.2', {
+ 'checksums': ['3e3e079a41feb5a1b64f978b5ea4f46040a94f11f0e8bbb8261e3dbbeca64d44'],
+ }),
+ ('optuna', version, {
+ 'use_pip_extras': 'optional',
+ 'checksums': ['146e530b57b4b9afd7526b3e642fbe65491f7e292b405913355f8e438e361ecf'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/optuna'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+sanity_check_commands = [('optuna', '--help')]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/o/Optuna/Optuna-4.1.0-foss-2024a.eb b/easybuild/easyconfigs/o/Optuna/Optuna-4.1.0-foss-2024a.eb
new file mode 100644
index 00000000000..cbc97bccf09
--- /dev/null
+++ b/easybuild/easyconfigs/o/Optuna/Optuna-4.1.0-foss-2024a.eb
@@ -0,0 +1,49 @@
+easyblock = 'PythonBundle'
+
+name = 'Optuna'
+version = '4.1.0'
+
+homepage = "https://optuna.org/"
+description = """Optuna is an automatic hyperparameter optimization software framework,
+particularly designed for machine learning. It features an imperative,
+define-by-run style user API. Thanks to our define-by-run API, the code written
+with Optuna enjoys high modularity, and the user of Optuna can dynamically
+construct the search spaces for the hyperparameters."""
+
+
+toolchain = {'name': 'foss', 'version': '2024a'}
+
+dependencies = [
+ ('Python', '3.12.3'),
+ ('PyYAML', '6.0.2'),
+ ('SciPy-bundle', '2024.05'),
+ ('tqdm', '4.66.5'),
+ ('SQLAlchemy', '2.0.36'),
+ ('matplotlib', '3.9.2'), # optional
+ ('plotly.py', '5.24.1'), # optional
+ ('redis-py', '5.1.1'), # optional
+ ('scikit-learn', '1.5.2'), # optional
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('cmaes', '0.11.1', { # optional
+ 'checksums': ['cf71fa3679814723be771f2c9edd85f465b1bc1e409e1ad6d8a9e481efcd5160'],
+ }),
+ ('colorlog', '6.9.0', {
+ 'checksums': ['bfba54a1b93b94f54e1f4fe48395725a3d92fd2a4af702f6bd70946bdc0c6ac2'],
+ }),
+ ('%(namelower)s', version, {
+ 'checksums': ['b364e87a2038f9946c5e2770c130597538aac528b4a82c1cab5267f337ea7679'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/optuna'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+sanity_check_commands = [('optuna', '--help')]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/o/Osi/Osi-0.108.9-GCC-13.2.0.eb b/easybuild/easyconfigs/o/Osi/Osi-0.108.9-GCC-13.2.0.eb
new file mode 100644
index 00000000000..81f021f837c
--- /dev/null
+++ b/easybuild/easyconfigs/o/Osi/Osi-0.108.9-GCC-13.2.0.eb
@@ -0,0 +1,48 @@
+easyblock = 'ConfigureMake'
+
+name = 'Osi'
+version = '0.108.9'
+
+homepage = "https://github.com/coin-or/Osi"
+description = """Osi (Open Solver Interface) provides an abstract base class to a generic linear
+programming (LP) solver, along with derived classes for specific solvers. Many
+applications may be able to use the Osi to insulate themselves from a specific
+LP solver. That is, programs written to the OSI standard may be linked to any
+solver with an OSI interface and should produce correct results. The OSI has
+been significantly extended compared to its first incarnation. Currently, the
+OSI supports linear programming solvers and has rudimentary support for integer
+programming."""
+
+toolchain = {'name': 'GCC', 'version': '13.2.0'}
+
+source_urls = ['https://github.com/coin-or/Osi/archive/refs/tags/releases/']
+sources = ['%(version)s.tar.gz']
+checksums = ['8b09802960d7d4fd9579b3e4320bfb36e7f8dca5e5094bf1f5edf1b7003f5562']
+
+builddependencies = [
+ ('Autotools', '20220317'),
+ ('Doxygen', '1.9.8'),
+ ('pkgconf', '2.0.3'),
+]
+
+dependencies = [
+ ('CoinUtils', '2.11.10'),
+ ('bzip2', '1.0.8'),
+ ('zlib', '1.2.13'),
+]
+
+# Disable GLPK because Osi requires GLPK<=4.48
+configopts = '--without-glpk '
+# Use CoinUtils from EB
+configopts += '--with-coinutils-lib="-lCoinUtils" --with-coinutils-incdir=$EBROOTCOINUTILS/include/coin '
+configopts += '--with-coinutils-datadir=$EBROOTCOINUTILS/share/coin/Data'
+
+sanity_check_paths = {
+ 'files': ['lib/libOsi.%s' % SHLIB_EXT, 'lib/libOsiCommonTests.%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/o/ome-types/ome-types-0.5.1.post1-foss-2023a.eb b/easybuild/easyconfigs/o/ome-types/ome-types-0.5.1.post1-foss-2023a.eb
new file mode 100644
index 00000000000..0de34e3542b
--- /dev/null
+++ b/easybuild/easyconfigs/o/ome-types/ome-types-0.5.1.post1-foss-2023a.eb
@@ -0,0 +1,52 @@
+easyblock = 'PythonBundle'
+
+name = 'ome-types'
+version = '0.5.1.post1'
+
+homepage = 'https://github.com/tlambert03/ome-types/'
+description = """
+ome_types provides a set of python dataclasses and utility functions for parsing
+the OME-XML format into fully-typed python objects for interactive or programmatic access in python.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+builddependencies = [
+ ('poetry', '1.5.1'),
+ ('hatchling', '1.18.0'),
+ ('maturin', '1.4.0', '-Rust-1.75.0'),
+]
+dependencies = [
+ ('Python', '3.11.3'),
+ ('pydantic', '2.5.3'),
+ ('Python-bundle-PyPI', '2023.06'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('ruff', '0.3.0', {
+ 'checksums': ['0886184ba2618d815067cf43e005388967b67ab9c80df52b32ec1152ab49f53a'],
+ }),
+ ('pydantic_compat', '0.1.2', {
+ 'checksums': ['c5c5bca39ca2d22cad00c02898e400e1920e5127649a8e860637f15566739373'],
+ }),
+ ('untokenize', '0.1.1', {
+ 'checksums': ['3865dbbbb8efb4bb5eaa72f1be7f3e0be00ea8b7f125c69cbd1f5fda926f37a2'],
+ }),
+ ('docformatter', '1.7.5', {
+ 'checksums': ['ffed3da0daffa2e77f80ccba4f0e50bfa2755e1c10e130102571c890a61b246e'],
+ }),
+ ('toposort', '1.10', {
+ 'checksums': ['bfbb479c53d0a696ea7402601f4e693c97b0367837c8898bc6471adfca37a6bd'],
+ }),
+ ('xsdata', '23.8', {
+ 'checksums': ['55f03d4c88236f047266affe550ba0dd19476adfce6a01f3e0aefac7c8078e56'],
+ }),
+ ('ome_types', version, {
+ 'checksums': ['cadda5e36ad4d33dad2034fd43f32113a736fe47c67fd9e06bbb8d3858d1dc58'],
+ }),
+]
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/o/ont-remora/ont-remora-3.3.0-foss-2023a.eb b/easybuild/easyconfigs/o/ont-remora/ont-remora-3.3.0-foss-2023a.eb
new file mode 100644
index 00000000000..7d065263f5b
--- /dev/null
+++ b/easybuild/easyconfigs/o/ont-remora/ont-remora-3.3.0-foss-2023a.eb
@@ -0,0 +1,60 @@
+easyblock = 'PythonBundle'
+
+name = 'ont-remora'
+version = '3.3.0'
+
+homepage = 'https://github.com/nanoporetech/remora'
+description = """Methylation/modified base calling separated from basecalling. Remora primarily
+provides an API to call modified bases for basecaller programs such as Bonito.
+Remora also provides the tools to prepare datasets, train modified base models
+and run simple inference."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('ONNX-Runtime', '1.19.2'),
+ ('PyTorch', '2.1.2'),
+ ('scikit-learn', '1.3.1'),
+ ('tqdm', '4.66.1'),
+ ('python-parasail', '1.3.4'),
+ ('polars', '0.20.2'),
+ ('Pysam', '0.22.0'),
+ ('pod5-file-format', '0.3.10'),
+ ('statsmodels', '0.14.1'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('thop', '0.1.1.post2209072238', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['01473c225231927d2ad718351f78ebf7cffe6af3bed464c4f1ba1ef0f7cdda27'],
+ }),
+ ('mizani', '0.9.3', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['ac5d49b913de88dc2fb28d82141e9777b97407a6971a158f758093ad5bb820a1'],
+ }),
+ ('plotnine', '0.12.4', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['12748f346f107c33f3e0658ac46fbb052205ae7e97ffaf52be68310e5d29f799'],
+ }),
+ (name, version, {
+ 'modulename': 'remora',
+ 'checksums': ['3c899e7333ae33ebec31c8a59650ab4d553e8a62c0abf7b03899e2ee9a0bc88a'],
+ }),
+]
+
+sanity_pip_check = True
+
+sanity_check_paths = {
+ 'files': ['bin/remora'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = [
+ ('remora', '--help'),
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/p/PALM/PALM-23.10-foss-2023a.eb b/easybuild/easyconfigs/p/PALM/PALM-23.10-foss-2023a.eb
new file mode 100644
index 00000000000..7517506de97
--- /dev/null
+++ b/easybuild/easyconfigs/p/PALM/PALM-23.10-foss-2023a.eb
@@ -0,0 +1,103 @@
+easyblock = 'Binary'
+
+name = 'PALM'
+version = '23.10'
+
+homepage = 'https://palm.muk.uni-hannover.de'
+description = """PALM is an advanced and state-of-the-art meteorological
+modeling system for atmospheric and oceanic boundary layer flows."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+source_urls = ['https://gitlab.palm-model.org/releases/palm_model_system/-/archive/v%(version)s/']
+sources = ['palm_model_system-v%(version)s.tar.gz']
+checksums = ['2b13bcff9cc95ba3c80e037f239a4a96525138143598a3f52ce04ff40bfadb80']
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+ ('flex', '2.6.4'),
+ ('Bison', '3.8.2'),
+ ('hatchling', '1.18.0'),
+]
+
+# required Python package: see various requirements.txt files in source directory
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'), # for numpy, scipy
+ ('netCDF-Fortran', '4.6.1'),
+ ('netcdf4-python', '1.6.4'), # for netCDF4
+ ('PyQt5', '5.15.10'),
+ ('PyYAML', '6.0'),
+]
+
+buildininstalldir = True
+
+extract_sources = True
+
+install_cmd = "bash install -p %(installdir)s"
+
+exts_defaultclass = 'PythonPackage'
+
+exts_default_options = {
+ 'source_urls': [PYPI_SOURCE],
+ 'download_dep_fail': True,
+ 'use_pip': True,
+}
+
+exts_list = [
+ ('argcomplete', '3.2.3', {
+ 'checksums': ['bf7900329262e481be5a15f56f19736b376df6f82ed27576fa893652c5de6c23'],
+ }),
+ ('mike', '2.0.0', {
+ 'checksums': ['566f1cab1a58cc50b106fb79ea2f1f56e7bfc8b25a051e95e6eaee9fba0922de'],
+ }),
+ ('Markdown', '3.6', {
+ 'checksums': ['ed4f41f6daecbeeb96e576ce414c41d2d876daa9a16cb35fa8ed8c2ddfad0224'],
+ }),
+ ('ghp-import', '2.1.0', {
+ 'checksums': ['9c535c4c61193c2df8871222567d7fd7e5014d835f97dc7b7439069e2413d343'],
+ }),
+ ('mergedeep', '1.3.4', {
+ 'checksums': ['0096d52e9dad9939c3d975a774666af186eda617e6ca84df4c94dec30004f2a8'],
+ }),
+ ('pyyaml_env_tag', '0.1', {
+ 'checksums': ['70092675bda14fdec33b31ba77e7543de9ddc88f2e5b99160396572d11525bdb'],
+ 'modulename': 'yaml_env_tag',
+ }),
+ ('watchdog', '4.0.1', {
+ 'checksums': ['eebaacf674fa25511e8867028d281e602ee6500045b57f43b08778082f7f8b44'],
+ }),
+ ('mkdocs', '1.5.3', {
+ 'checksums': ['eb7c99214dcb945313ba30426c2451b735992c73c2e10838f76d09e39ff4d0e2'],
+ }),
+ ('mkdocs-macros-plugin', '1.0.5', {
+ 'checksums': ['fe348d75f01c911f362b6d998c57b3d85b505876dde69db924f2c512c395c328'],
+ 'modulename': 'mkdocs_macros',
+ }),
+ ('pymdown_extensions', '10.7.1', {
+ 'checksums': ['c70e146bdd83c744ffc766b4671999796aba18842b268510a329f7f64700d584'],
+ 'modulename': 'pymdownx.magiclink',
+ }),
+ ('termcolor', '2.4.0', {
+ 'checksums': ['aab9e56047c8ac41ed798fa36d892a37aca6b3e9159f3e0c24bc64a9b3ac7b7a'],
+ # fix for: "Unknown classifier in field project.classifiers: Programming Language :: Python :: 3.13"
+ 'preinstallopts': "sed -i '/Python.*3.13/d' pyproject.toml && ",
+ }),
+ ('verspec', '0.1.0', {
+ 'checksums': ['c4504ca697b2056cdb4bfa7121461f5a0e81809255b41c03dda4ba823637c01e'],
+ }),
+]
+
+modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'}
+
+sanity_check_paths = {
+ 'files': ['bin/palmrun'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages', 'rrtmg'],
+}
+
+sanity_check_commands = [
+ "export PYTHONNOUSERSITE=1 && python%(pyshortver)s -m pip check",
+ "palmrun ?",
+]
+
+moduleclass = 'geo'
diff --git a/easybuild/easyconfigs/p/PAPI/PAPI-7.1.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/p/PAPI/PAPI-7.1.0-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..5c653a9d515
--- /dev/null
+++ b/easybuild/easyconfigs/p/PAPI/PAPI-7.1.0-GCCcore-13.3.0.eb
@@ -0,0 +1,53 @@
+##
+# Author: Robert Mijakovic
+# Updated: Alexander Grund
+##
+
+easyblock = 'ConfigureMake'
+
+name = 'PAPI'
+version = '7.1.0'
+
+homepage = 'https://icl.cs.utk.edu/projects/papi/'
+description = """
+ PAPI provides the tool designer and application engineer with a consistent
+ interface and methodology for use of the performance counter hardware found
+ in most major microprocessors. PAPI enables software engineers to see, in near
+ real time, the relation between software performance and processor events.
+ In addition Component PAPI provides access to a collection of components
+ that expose performance measurement opportunites across the hardware and
+ software stack.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://icl.utk.edu/projects/papi/downloads']
+sources = [SOURCELOWER_TAR_GZ]
+patches = ['%(name)s-%(version)s_add_initial_riscv_support.patch']
+checksums = [
+ '5818afb6dba3ece57f51e65897db5062f8e3464e6ed294b654ebf34c3991bc4f',
+ {'PAPI-7.1.0_add_initial_riscv_support.patch': '6c7d0d63ccf2b8c46f2ed736fbd4c58303038fb2a45315aed94c026b773af35a'}
+]
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+
+start_dir = 'src'
+
+configopts = "--with-components=rapl " # for energy measurements
+
+# There is also "fulltest" that is a superset of "test" but hangs on some processors
+# indefinitely with a defunct `make` process. So use only "test".
+runtest = 'test'
+
+sanity_check_paths = {
+ 'files': ["bin/papi_%s" % x
+ for x in ["avail", "clockres", "command_line", "component_avail",
+ "cost", "decode", "error_codes", "event_chooser",
+ "mem_info", "multiplex_cost", "native_avail",
+ "version", "xml_event_info"]],
+ 'dirs': [],
+}
+
+moduleclass = 'perf'
diff --git a/easybuild/easyconfigs/p/PASA/PASA-2.5.3-foss-2023a.eb b/easybuild/easyconfigs/p/PASA/PASA-2.5.3-foss-2023a.eb
new file mode 100644
index 00000000000..8d42086755c
--- /dev/null
+++ b/easybuild/easyconfigs/p/PASA/PASA-2.5.3-foss-2023a.eb
@@ -0,0 +1,57 @@
+easyblock = 'ConfigureMake'
+
+name = 'PASA'
+version = '2.5.3'
+
+homepage = 'https://github.com/PASApipeline/PASApipeline'
+description = """PASA, acronym for Program to Assemble Spliced Alignments (and pronounced 'pass-uh'),
+ is a eukaryotic genome annotation tool that exploits spliced alignments of expressed transcript
+ sequences to automatically model gene structures, and to maintain gene structure annotation consistent
+ with the most recently available experimental sequence data. PASA also identifies and classifies all
+ splicing variations supported by the transcript alignments."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+source_urls = ['https://github.com/PASApipeline/PASApipeline/archive/']
+sources = ['%(namelower)s-v%(version)s.tar.gz']
+checksums = ['9b2f6a301b73fd8c713af0977cf6e97f3d928988d6b79715ebe81e19b51152eb']
+
+dependencies = [
+ ('SQLite', '3.42.0'),
+ ('GMAP-GSNAP', '2023-04-20'),
+ ('pblat', '2.5.1'),
+ ('minimap2', '2.26'),
+ ('FASTA', '36.3.8i'),
+]
+
+buildininstalldir = True
+
+skipsteps = ['configure', 'install']
+
+unpack_options = '--strip-components=1'
+
+local_bins = [
+ '%(namelower)s',
+ 'cdbfasta',
+ 'cdbyank',
+ 'cln2qual',
+ 'mdust',
+ 'psx',
+ 'seqclean',
+ 'seqclean.psx',
+ 'slclust',
+ 'trimpoly',
+]
+
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in local_bins],
+ 'dirs': []
+}
+
+modextrapaths = {
+ 'PASAHOME': '',
+}
+
+sanity_check_commands = ['command -v %(namelower)s']
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/p/PCAngsd/PCAngsd-1.2-gfbf-2023a.eb b/easybuild/easyconfigs/p/PCAngsd/PCAngsd-1.2-gfbf-2023a.eb
new file mode 100644
index 00000000000..d534bfa0f78
--- /dev/null
+++ b/easybuild/easyconfigs/p/PCAngsd/PCAngsd-1.2-gfbf-2023a.eb
@@ -0,0 +1,33 @@
+easyblock = 'PythonBundle'
+
+name = 'PCAngsd'
+version = '1.2'
+
+homepage = "https://www.popgen.dk/software/index.php/PCAngsd"
+description = "Framework for analyzing low depth NGS data in heterogeneous populations using PCA."
+
+toolchain = {'name': 'gfbf', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('Cython', '3.0.8'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ (name, version, {
+ 'modulename': False,
+ 'source_tmpl': 'v%(version)s.tar.gz',
+ 'source_urls': ['https://github.com/Rosemeis/pcangsd/archive/refs/tags/'],
+ 'checksums': ['286f09851c37e380c9abf5859595e7cd0ad8cb49f1d48b1b0ae409aab0eae62e'],
+ }),
+]
+
+sanity_check_commands = [
+ 'pcangsd --help',
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/p/PCL/PCL-1.14.1-foss-2023a.eb b/easybuild/easyconfigs/p/PCL/PCL-1.14.1-foss-2023a.eb
new file mode 100644
index 00000000000..97f57817025
--- /dev/null
+++ b/easybuild/easyconfigs/p/PCL/PCL-1.14.1-foss-2023a.eb
@@ -0,0 +1,32 @@
+easyblock = 'CMakeMake'
+
+name = 'PCL'
+version = '1.14.1'
+
+homepage = 'https://pointclouds.org/'
+description = """The Point Cloud Library (PCL) is a standalone, large scale, open project for 2D/3D image and
+ point cloud processing."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/PointCloudLibrary/pcl/archive/']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['5dc5e09509644f703de9a3fb76d99ab2cc67ef53eaf5637db2c6c8b933b28af6']
+
+builddependencies = [('CMake', '3.26.3')]
+
+dependencies = [
+ ('Boost', '1.82.0'),
+ ('Eigen', '3.4.0'),
+ ('FLANN', '1.9.2'),
+ ('VTK', '9.3.0'),
+ ('Qhull', '2020.2'),
+]
+
+sanity_check_paths = {
+ 'files': [],
+ 'dirs': ['bin', 'include/pcl-%(version_major_minor)s/pcl', 'lib', 'share/pcl-%(version_major_minor)s'],
+}
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/p/PCRE/PCRE-8.45-GCCcore-13.3.0.eb b/easybuild/easyconfigs/p/PCRE/PCRE-8.45-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..c378f2e1bab
--- /dev/null
+++ b/easybuild/easyconfigs/p/PCRE/PCRE-8.45-GCCcore-13.3.0.eb
@@ -0,0 +1,43 @@
+easyblock = 'ConfigureMake'
+
+name = 'PCRE'
+version = '8.45'
+
+homepage = 'https://www.pcre.org/'
+description = """
+ The PCRE library is a set of functions that implement regular expression
+ pattern matching using the same syntax and semantics as Perl 5.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = [
+ SOURCEFORGE_SOURCE,
+ 'https://ftp.%(namelower)s.org/pub/%(namelower)s/',
+]
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['4e6ce03e0336e8b4a3d6c2b70b1c5e18590a5673a98186da90d4f33c23defc09']
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+dependencies = [
+ ('bzip2', '1.0.8'),
+ ('zlib', '1.3.1'),
+]
+
+configopts = "--enable-utf --enable-unicode-properties --enable-pcre16 --enable-pcre32"
+
+
+sanity_check_paths = {
+ 'files': [
+ 'bin/%(namelower)s-config',
+ 'include/%(namelower)s.h',
+ 'share/man/man3/%(namelower)s.3',
+ 'lib/libpcre32.%s' % SHLIB_EXT
+ ],
+ 'dirs': ['lib/pkgconfig', 'share/doc/%(namelower)s/html', 'share/man/man1'],
+}
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/p/PDM/PDM-2.18.2-GCCcore-13.3.0.eb b/easybuild/easyconfigs/p/PDM/PDM-2.18.2-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..b56e431ecba
--- /dev/null
+++ b/easybuild/easyconfigs/p/PDM/PDM-2.18.2-GCCcore-13.3.0.eb
@@ -0,0 +1,57 @@
+easyblock = 'PythonBundle'
+
+name = 'PDM'
+version = '2.18.2'
+
+homepage = 'https://pdm-project.org'
+description = "A modern Python package and dependency manager supporting the latest PEP standards."
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('poetry', '1.8.3'),
+]
+dependencies = [
+ ('Python', '3.12.3'),
+ ('Python-bundle-PyPI', '2024.06'),
+]
+
+sanity_pip_check = True
+use_pip = True
+
+exts_list = [
+ ('pdm_backend', '2.3.3', {
+ 'modulename': 'pdm.backend',
+ 'checksums': ['a8616f628ec84353d7a0ba86b228dcf01bab5debc9e4d1a29e5311a52425d594'],
+ }),
+ ('installer', '0.7.0', {'checksums': ['a26d3e3116289bb08216e0d0f7d925fcef0b0194eedfa0c944bcaaa106c4b631']}),
+ ('sniffio', '1.3.1', {'checksums': ['f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc']}),
+ ('h11', '0.14.0', {'checksums': ['8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d']}),
+ ('httpcore', '1.0.5', {'checksums': ['34a38e2f9291467ee3b44e89dd52615370e152954ba21721378a87b2960f7a61']}),
+ ('anyio', '4.4.0', {'checksums': ['5aadc6a1bbb7cdb0bede386cac5e2940f5e2ff3aa20277e991cf028e0585ce94']}),
+ ('httpx', '0.27.2', {'checksums': ['f7c2be1d2f3c3c3160d441802406b206c2b76f5947b11115e6df10c6c65e66c2']}),
+ ('unearth', '0.17.2', {'checksums': ['0b8a2afd3476f1ab6155fc579501ac47fffe43547d88a70e5a5b76a7fe6caa2c']}),
+ ('installer', '0.7.0', {'checksums': ['a26d3e3116289bb08216e0d0f7d925fcef0b0194eedfa0c944bcaaa106c4b631']}),
+ ('truststore', '0.9.2', {'checksums': ['a1dee0d0575ff22d2875476343783a5d64575419974e228f3248772613c3d993']}),
+ ('resolvelib', '1.0.1', {'checksums': ['04ce76cbd63fded2078ce224785da6ecd42b9564b1390793f64ddecbe997b309']}),
+ ('python-dotenv', '1.0.1', {
+ 'modulename': 'dotenv',
+ 'checksums': ['e324ee90a023d808f1959c46bcbc04446a10ced277783dc6ee09987c37ec10ca'],
+ }),
+ ('pyproject_hooks', '1.1.0', {'checksums': ['4b37730834edbd6bd37f26ece6b44802fb1c1ee2ece0e54ddff8bfc06db86965']}),
+ ('pbs-installer', '2024.9.9', {
+ 'source_tmpl': 'pbs_installer-%(version)s.tar.gz',
+ 'checksums': ['bed162d05ef71c53a0e5e5c6349bab1b07a3d0e5af1800d619a4414a1fda309a'],
+ }),
+ ('hishel', '0.0.30', {'checksums': ['656393ee77e9c39a0d6c527c74810e15d96e598dcb9b191f20a788608ceaca99']}),
+ ('findpython', '0.6.1', {'checksums': ['56e52b409a92bcbd495cf981c85acf137f3b3e51cc769b46eba219bb1ab7533c']}),
+ ('dep-logic', '0.4.6', {
+ 'source_tmpl': 'dep_logic-%(version)s.tar.gz',
+ 'checksums': ['673d45402e9f11c4e501b08ebaea1efaa5e9bc6f69410684a9e448f8f5b26d6a'],
+ }),
+ ('blinker', '1.8.2', {'checksums': ['8f77b09d3bf7c795e969e9486f39c2c5e9c39d4ee07424be2bc594ece9642d83']}),
+ ('pdm', version, {'checksums': ['6d93a18d52edca056fafed7b262fe48ddc61984dabf73eb9365ad61a90caebb6']}),
+]
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/p/PDT/PDT-3.25.2-GCCcore-13.3.0.eb b/easybuild/easyconfigs/p/PDT/PDT-3.25.2-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..74328c99ae7
--- /dev/null
+++ b/easybuild/easyconfigs/p/PDT/PDT-3.25.2-GCCcore-13.3.0.eb
@@ -0,0 +1,40 @@
+# #
+# This is an easyconfig file for EasyBuild, see https://github.com/easybuilders/easybuild
+#
+# Copyright:: Copyright 2013-2019 Juelich Supercomputing Centre, Germany
+# Authors:: Bernd Mohr
+# Markus Geimer
+# License:: 3-clause BSD
+#
+# This work is based on experiences from the UNITE project
+# http://apps.fz-juelich.de/unite/
+# #
+
+name = 'PDT'
+version = '3.25.2'
+
+homepage = 'https://www.cs.uoregon.edu/research/pdt/'
+description = """
+ Program Database Toolkit (PDT) is a framework for analyzing source code
+ written in several programming languages and for making rich program
+ knowledge accessible to developers of static and dynamic analysis tools.
+ PDT implements a standard program representation, the program database
+ (PDB), that can be accessed in a uniform way through a class library
+ supporting common PDB operations.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['http://tau.uoregon.edu/pdt_releases/']
+sources = ['pdtoolkit-%(version)s.tar.gz']
+# Might now be available as direct download although e.g. http://tau.uoregon.edu/pdt.tgz may work
+download_instructions = ("Download from https://www.cs.uoregon.edu/research/pdt/downloads.php " +
+ "and rename to " + sources[0])
+checksums = ['01c2d403bc6672b2b264a182c325806541066c5ed5713878eb598f5506428cbe']
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+
+
+moduleclass = 'perf'
diff --git a/easybuild/easyconfigs/p/PEcAn/PEcAn-1.8.0.9000-foss-2023a-R-4.3.2.eb b/easybuild/easyconfigs/p/PEcAn/PEcAn-1.8.0.9000-foss-2023a-R-4.3.2.eb
new file mode 100644
index 00000000000..b5747815246
--- /dev/null
+++ b/easybuild/easyconfigs/p/PEcAn/PEcAn-1.8.0.9000-foss-2023a-R-4.3.2.eb
@@ -0,0 +1,217 @@
+easyblock = 'Bundle'
+
+name = 'PEcAn'
+version = '1.8.0.9000'
+versionsuffix = '-R-%(rver)s'
+
+homepage = 'https://github.com/PecanProject/pecan'
+description = """Ecosystem science, policy, and management informed by the best available data and models."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('R', '4.3.2'),
+ ('R-bundle-Bioconductor', '3.18', versionsuffix),
+ ('PostgreSQL', '16.1'),
+ ('CDO', '2.2.2'),
+ ('HDF5', '1.14.0'),
+ ('netCDF', '4.9.2'),
+ ('UDUNITS', '2.2.28'),
+ ('texlive', '20230313'),
+ ('NCO', '5.1.9'),
+ ('ncview', '2.1.8'),
+ ('rjags', '4-15', versionsuffix),
+ ('Redland', '1.0.17'),
+]
+
+exts_defaultclass = 'RPackage'
+exts_default_options = {
+ 'sources': ['%(name)s_%(version)s.tar.gz'],
+ 'source_urls': [
+ 'https://cran.r-project.org/src/contrib/', # current version of packages
+ 'https://cran.r-project.org/src/contrib/Archive/%(name)s', # package archive
+ 'https://cran.freestatistics.org/src/contrib', # mirror alternative for current packages
+ 'https://pecanproject.r-universe.dev/src/contrib/', # PEcAn sources
+ ],
+}
+
+exts_list = [
+ ('PEcAn.logger', '1.8.2.9000', {
+ 'checksums': ['1092f72fa63d58d83ca939a06bfa51ad3b3b4cd94ca4e68202cdb08fd3ada099'],
+ }),
+ ('PEcAn.remote', version, {
+ 'checksums': ['b3c7208c85d37aa6c12ca99182262a9886e57e2591faefd909232b8c89111b20'],
+ }),
+ ('PEcAn.utils', version, {
+ 'checksums': ['524c3231a21a1e5fc48ebc53d17e49c82f018b87c274095cd0362103fe322ec5'],
+ }),
+ ('PEcAn.DB', version, {
+ 'checksums': ['9b7e9b40a07879c1265d9ab6087b7448dfd34c3601c64ddcb41511c97399fece'],
+ }),
+ ('PEcAn.settings', version, {
+ 'checksums': ['555a7d81eec7e97b8457cef51888087af6b5d7d07f527ca58cbab07ed847fabc'],
+ }),
+ ('PEcAn.MA', '1.7.3.9000', {
+ 'checksums': ['680290e0ee52526db1242d95c4ca06a1e0ad117337ff721d79387797bc7e40ed'],
+ }),
+ ('PEcAn.emulator', version, {
+ 'checksums': ['68944ebdf1f37ff84f9b09bf02c709de9eda823728bbdea073a36d7ef19cfb9c'],
+ }),
+ ('PEcAn.priors', '1.7.3.9000', {
+ 'checksums': ['e942a31ae02af61b1b8e36d1c5df58f39829b3d0c29421edc151f2f063ff4c1f'],
+ }),
+ ('PEcAn.uncertainty', version, {
+ 'checksums': ['65e392536e17e1de2bf8f66c2cd8f46fcb26dcb3294acf0132551b6736722196'],
+ }),
+ ('amerifluxr', '1.0.0', {
+ 'checksums': ['ec54dce4b8e4108832eaadb60f7ef8ad28b459d3381316537492dcd755d83b25'],
+ }),
+ ('geonames', '0.999', {
+ 'checksums': ['1dd7bbd82d9425d14eb36f8e5bf431feaccfe3b0c4e70bf38f44f13dfc59e17b'],
+ }),
+ ('solartime', '0.0.2', {
+ 'checksums': ['5dd7a28db2bd4881ab740cd7004b88cd05c61e0954e3a10c8e18ebbe07d3e7d1'],
+ }),
+ ('bigleaf', '0.8.2', {
+ 'checksums': ['e41d82fb6298150c46f57128e959a1f1c6cfa55e916c32544bab7be69b0b6df7'],
+ }),
+ ('REddyProc', '1.3.3', {
+ 'checksums': ['3f673bd24f41813f631bf25139c9595bd91483e898ec31b7207c4eb8b7ff486b'],
+ }),
+ ('suntools', '1.0.0', {
+ 'checksums': ['42b7b39bd23ad48ded002150a0e7798fab94ed9828e5b5fdd8e5e1c9040697e2'],
+ }),
+ ('fauxpas', '0.5.2', {
+ 'checksums': ['84d07361a146b419cb1dcb7751654e3d5f159cf2704faf498e5ea56c8de61ef6'],
+ }),
+ ('nneo', '0.1.0', {
+ 'checksums': ['ca503e78cf4f4c85de6e18ad3ffde0c08d6a507ff5dc5ff91a50b3e04bf84a49'],
+ }),
+ ('PEcAn.data.atmosphere', version, {
+ 'checksums': ['28fb884cdeeff6405252352a261c3a884ad33202e556e88cee262aba96e1aea4'],
+ }),
+ ('redland', '1.0.17-18', {
+ 'checksums': ['e999ba22321733df7ed056f528e38fc4be535d36bbac8106395c14f9f60a75a0'],
+ }),
+ ('datapack', '1.4.1', {
+ 'checksums': ['6149733ae90e6bbbb53d5f85ca29cec5f811825e794b56029b7f325de6637493'],
+ }),
+ ('dplR', '1.7.7', {
+ 'checksums': ['0e35a4d2a22773499f9e4592d1a198a08c9842388ce1e5a35394990ed4cdb2bd'],
+ }),
+ ('neonUtilities', '2.4.2', {
+ 'checksums': ['37b4efd0ed3b724de999d08d4d430954a6c717b1d943bc84c513c4fe8dbca057'],
+ }),
+ ('storr', '1.2.5', {
+ 'checksums': ['4224c3991d9c043a45ce530d0698d7f2cdca231b26fe31b45e0db865026e5f63'],
+ }),
+ ('thor', '1.1.5', {
+ 'checksums': ['99802d8c8471ce351403f8428c1efab48ccf20f359fbd368db84f25ef8f7ecae'],
+ }),
+ ('duckdb', '1.0.0-2', {
+ 'patches': ['PEcAn-1.8.0.9000_duckdb.patch'],
+ 'checksums': [
+ {'duckdb_1.0.0-2.tar.gz': '3735d51f22d62a7411aa514142cd569ce28bdaec4eb58d5f0893a476b9ccbf01'},
+ {'PEcAn-1.8.0.9000_duckdb.patch': 'fb47b668b23e6c9274ce5365725af71e56f2d99771efdd343dc4283f68ab0c21'},
+ ],
+ }),
+ ('duckdbfs', '0.0.4', {
+ 'checksums': ['90b2aff2bdefff1db4f855e2a9c9b19a404f522027105424aebd3c7e45944334'],
+ }),
+ ('neonstore', '0.5.1', {
+ 'checksums': ['f911e957861d558adead8ca77e4d1575a47dceb9553f1aa9d818460126deab9b'],
+ }),
+ ('HDInterval', '0.2.4', {
+ 'checksums': ['bb07f0edd660a02ed18e578c2798eb8c2db0e181a5e0c3e23db182d13e9494f6'],
+ }),
+ ('kknn', '1.3.1', {
+ 'checksums': ['22840e70ec2afa40371e274b583634c8f6d27149a87253ee411747d5db78f3db'],
+ }),
+ ('timeSeries', '4032.109', {
+ 'checksums': ['5e0c47584e0b01ea4011ed5ced217d95f8bb872611f6b029b0797d95eebd731f'],
+ }),
+ ('gss', '2.2-7', {
+ 'checksums': ['3b13144702c570c83462b4ea2ad17f4bd630cff5bf2ab0347a33c7e86a4f3f6a'],
+ }),
+ ('fBasics', '4032.96', {
+ 'checksums': ['e1556909871c836668b10bf90e1676aac6a2892a04663d7ab00c22a64c0b8690'],
+ }),
+ ('rmutil', '1.1.10', {
+ 'checksums': ['819fd7ce695cc742b4594705986eb06764460fc88521ea32de793c49de7ca5f9'],
+ }),
+ ('stable', '1.1.6', {
+ 'checksums': ['2238788a35b5aa9e175ad7b92348640c3dcad68b6ab0a0bc04aeec9084d29da4'],
+ }),
+ ('statip', '0.2.3', {
+ 'checksums': ['56a81a1882856cd1c5711ba133417b64f09071dda356e74280a0dba0db60d54f'],
+ }),
+ ('modeest', '2.4.0', {
+ 'checksums': ['1a949409bf64679d32400d20aa3d53e65a9a20f5bd1a40993b95f81100e0ed20'],
+ }),
+ ('runjags', '2.2.2-4', {
+ 'checksums': ['6f656e4d0620c0806e596ddb4bfec3934534ec17c02da699fcbfd6720a6f424f'],
+ }),
+ ('swfscMisc', '1.6.5', {
+ 'checksums': ['a49cb390643c4079f02986862eb2dfd33db4e6b6498e849bb418f73ffd6882e1'],
+ }),
+ ('CDM', '8.2-6', {
+ 'checksums': ['144a85e36c120e9f8a5bd35c1db50cf089ea4807721ac14460137b9a4b1c98d1'],
+ }),
+ ('TAM', '4.2-21', {
+ 'checksums': ['0d1782e42e89c1863edab12c1861d0e2628ea9ee1a1e37d268f27a3deaf3d568'],
+ }),
+ ('pbv', '0.5-47', {
+ 'checksums': ['e17a04efa96a601ab72172b59f555f36d28bb824f02f363cc5806b05d7d7c792'],
+ }),
+ ('sirt', '4.1-15', {
+ 'checksums': ['c12ffcb83bea5b549c7a34c12561f3e57798b83d68a887c5da0d9a66efac3066'],
+ }),
+ ('hoardr', '0.5.4', {
+ 'checksums': ['4e031ac1317584451c09bc8288ed73fb2d6ceea3c10d29dbb4be08157e489a37'],
+ }),
+ ('traits', '0.5.1', {
+ 'checksums': ['3080887a454d69814cd6cb9683a6750db02cf4c77b40b022ef50d40171ba6aca'],
+ }),
+ ('SimilarityMeasures', '1.4', {
+ 'checksums': ['b26bbc3a402d21f030cc8e4ff6baca644eb4c63a4fb33423dbc9436229a393f0'],
+ }),
+ ('PEcAn.benchmark', '1.7.3.9000', {
+ 'checksums': ['2e8b285869b4df148228cdde5de44a67dfe0b584b2a7cd614280134259e33ed4'],
+ }),
+ ('PEcAn.visualization', version, {
+ 'checksums': ['f77dcb756871a419a85e46cde4a1fb0a1993c29cce8578255d5a46db722ece43'],
+ }),
+ ('PEcAn.data.land', version, {
+ 'checksums': ['19c572e95c11362f4714d9c3d9cc7b2d17c2e3a34513c7ed629e7bdb99bdd0ec'],
+ }),
+ ('MODISTools', '1.1.5', {
+ 'checksums': ['0a6b3762865424e299e1a5ec28de78b8dcca3f673e61f42a37dae19ed78db3e3'],
+ }),
+ ('PEcAn.data.remote', version, {
+ 'checksums': ['c097d9395d9dbb6c123f404525cae7fdb1a99b142b32c1a40b0143060444e184'],
+ }),
+ ('SparseGrid', '0.8.2', {
+ 'checksums': ['1d84ae83db2a390b111589a10570d55b378c2dd3310d3bc588a94ab8845cfd14'],
+ }),
+ ('lqmm', '1.5.8', {
+ 'checksums': ['11eddeeeed6b9d3190a80a3b3cc3d64519c6e9cb208746a3736139340df691fb'],
+ }),
+ ('PEcAn.workflow', version, {
+ 'checksums': ['91a1849c040089da1088c02469b973a5f301a419237db7c840fe4ca2922f4b9d'],
+ }),
+ ('PEcAn.assim.batch', version, {
+ 'checksums': ['a1403a5a4591791e37e7e48ca9e9d49f66f4270757711b68b72fd38aadd411cb'],
+ }),
+ ('PEcAn.all', version, {
+ 'checksums': ['6fe594fb890b5680977d1bf58232b941c6d522456e7803e3dc9c4418b92db737'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': [],
+ 'dirs': ['%(name)s.all'],
+}
+
+modextrapaths = {'R_LIBS_SITE': ''}
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/p/PEcAn/PEcAn-1.8.0.9000_duckdb.patch b/easybuild/easyconfigs/p/PEcAn/PEcAn-1.8.0.9000_duckdb.patch
new file mode 100644
index 00000000000..940992bf5ba
--- /dev/null
+++ b/easybuild/easyconfigs/p/PEcAn/PEcAn-1.8.0.9000_duckdb.patch
@@ -0,0 +1,16 @@
+Fixes the `prefix_back_ was not declared` error, see https://github.com/duckdb/duckdb/pull/12344
+Source: https://patch-diff.githubusercontent.com/raw/duckdb/duckdb/pull/12344.diff
+diff -u src/duckdb/third_party/re2/re2/prog.cc.orig src/duckdb/third_party/re2/re2/prog.cc
+--- src/duckdb/third_party/re2/re2/prog.cc.orig 2024-07-19 14:46:13.000000000 +0200
++++ src/duckdb/third_party/re2/re2/prog.cc 2024-08-21 15:51:17.394266979 +0200
+@@ -1143,8 +1143,8 @@
+ const __m256i* bp = reinterpret_cast(
+ reinterpret_cast(data) + prefix_size_-1);
+ const __m256i* endfp = fp + size/sizeof(__m256i);
+- const __m256i f_set1 = _mm256_set1_epi8(prefix_front_);
+- const __m256i b_set1 = _mm256_set1_epi8(prefix_back_);
++ const __m256i f_set1 = _mm256_set1_epi8(prefix_front_back.prefix_front_);
++ const __m256i b_set1 = _mm256_set1_epi8(prefix_front_back.prefix_back_);
+ do {
+ const __m256i f_loadu = _mm256_loadu_si256(fp++);
+ const __m256i b_loadu = _mm256_loadu_si256(bp++);
diff --git a/easybuild/easyconfigs/p/PLINK/PLINK-1.90-beta-7.4-x86_64.eb b/easybuild/easyconfigs/p/PLINK/PLINK-1.90-beta-7.4-x86_64.eb
new file mode 100644
index 00000000000..51357650dbb
--- /dev/null
+++ b/easybuild/easyconfigs/p/PLINK/PLINK-1.90-beta-7.4-x86_64.eb
@@ -0,0 +1,22 @@
+easyblock = 'PackedBinary'
+
+name = 'PLINK'
+version = '1.90-beta-7.4-x86_64'
+
+homepage = 'https://www.cog-genomics.org/plink/1.9/'
+description = 'plink-1.9-x86_64: Whole-genome association analysis toolset'
+
+toolchain = SYSTEM
+
+source_urls = ['https://s3.amazonaws.com/plink1-assets/']
+sources = ['plink_linux_x86_64_20240818.zip']
+checksums = ['0ac294ffcd5d82f5b0d2d7f579ac85a87017f6fc46485b21793f5aff9c719e3d']
+
+sanity_check_paths = {
+ 'files': ['plink', 'prettify', 'toy.map', 'toy.ped'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["plink --help"]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/p/PLUMED/PLUMED-2.7.2-foss-2021a.eb b/easybuild/easyconfigs/p/PLUMED/PLUMED-2.7.2-foss-2021a.eb
index 3a0b31731ee..502cbfbd652 100644
--- a/easybuild/easyconfigs/p/PLUMED/PLUMED-2.7.2-foss-2021a.eb
+++ b/easybuild/easyconfigs/p/PLUMED/PLUMED-2.7.2-foss-2021a.eb
@@ -38,11 +38,6 @@ if ARCH == 'x86_64':
configopts += '--enable-asmjit '
prebuildopts = 'source sourceme.sh && '
-# make sure that ld.gold linker is used
-# required to work around problems like "ld: BFD (GNU Binutils) 2.30 assertion fail elf.c:3564"
-# (problem with intel build but maintain consistency between easyconfigs)
-buildopts = 'LD_RO="ld.gold -r -o"'
-
# install path for PLUMED libraries must be included in $LD_LIBRARY_PATH when Python bindings get built/installed
preinstallopts = 'LD_LIBRARY_PATH="%(installdir)s/lib:$LD_LIBRARY_PATH" '
diff --git a/easybuild/easyconfigs/p/PLUMED/PLUMED-2.7.2-intel-2021a.eb b/easybuild/easyconfigs/p/PLUMED/PLUMED-2.7.2-intel-2021a.eb
index ba0747ac705..d84282472f8 100644
--- a/easybuild/easyconfigs/p/PLUMED/PLUMED-2.7.2-intel-2021a.eb
+++ b/easybuild/easyconfigs/p/PLUMED/PLUMED-2.7.2-intel-2021a.eb
@@ -36,11 +36,6 @@ configopts += '--enable-boost_graph --enable-boost_serialization '
configopts += '--enable-asmjit '
prebuildopts = 'source sourceme.sh && '
-# make sure that ld.gold linker is used
-# required to work around problems like "ld: BFD (GNU Binutils) 2.30 assertion fail elf.c:3564"
-# (problem with intel build but maintain consistency between easyconfigs)
-buildopts = 'LD_RO="ld.gold -r -o"'
-
# install path for PLUMED libraries must be included in $LD_LIBRARY_PATH when Python bindings get built/installed
preinstallopts = 'LD_LIBRARY_PATH="%(installdir)s/lib:$LD_LIBRARY_PATH" '
diff --git a/easybuild/easyconfigs/p/PLUMED/PLUMED-2.7.3-foss-2021b.eb b/easybuild/easyconfigs/p/PLUMED/PLUMED-2.7.3-foss-2021b.eb
index c653aa77c5b..d39ecac24b5 100644
--- a/easybuild/easyconfigs/p/PLUMED/PLUMED-2.7.3-foss-2021b.eb
+++ b/easybuild/easyconfigs/p/PLUMED/PLUMED-2.7.3-foss-2021b.eb
@@ -38,11 +38,6 @@ if ARCH == 'x86_64':
configopts += '--enable-asmjit '
prebuildopts = 'source sourceme.sh && '
-# make sure that ld.gold linker is used
-# required to work around problems like "ld: BFD (GNU Binutils) 2.30 assertion fail elf.c:3564"
-# (problem with intel build but maintain consistency between easyconfigs)
-buildopts = 'LD_RO="ld.gold -r -o"'
-
# install path for PLUMED libraries must be included in $LD_LIBRARY_PATH when Python bindings get built/installed
preinstallopts = 'LD_LIBRARY_PATH="%(installdir)s/lib:$LD_LIBRARY_PATH" '
diff --git a/easybuild/easyconfigs/p/PLUMED/PLUMED-2.8.0-foss-2021b.eb b/easybuild/easyconfigs/p/PLUMED/PLUMED-2.8.0-foss-2021b.eb
index 8dcdc9293d7..378a40f25d3 100644
--- a/easybuild/easyconfigs/p/PLUMED/PLUMED-2.8.0-foss-2021b.eb
+++ b/easybuild/easyconfigs/p/PLUMED/PLUMED-2.8.0-foss-2021b.eb
@@ -35,11 +35,6 @@ configopts = '--exec-prefix=%(installdir)s --enable-gsl --enable-modules=all --e
configopts += '--enable-boost_graph --enable-boost_serialization '
prebuildopts = 'source sourceme.sh && '
-# make sure that ld.gold linker is used
-# required to work around problems like "ld: BFD (GNU Binutils) 2.30 assertion fail elf.c:3564"
-# (problem with intel build but maintain consistency between easyconfigs)
-buildopts = 'LD_RO="ld.gold -r -o"'
-
# install path for PLUMED libraries must be included in $LD_LIBRARY_PATH when Python bindings get built/installed
preinstallopts = 'LD_LIBRARY_PATH="%(installdir)s/lib:$LD_LIBRARY_PATH" '
diff --git a/easybuild/easyconfigs/p/PLUMED/PLUMED-2.8.1-foss-2022a.eb b/easybuild/easyconfigs/p/PLUMED/PLUMED-2.8.1-foss-2022a.eb
index 846670014d4..b0fe4443cc6 100644
--- a/easybuild/easyconfigs/p/PLUMED/PLUMED-2.8.1-foss-2022a.eb
+++ b/easybuild/easyconfigs/p/PLUMED/PLUMED-2.8.1-foss-2022a.eb
@@ -35,11 +35,6 @@ configopts = '--exec-prefix=%(installdir)s --enable-gsl --enable-modules=all --e
configopts += '--enable-boost_graph --enable-boost_serialization '
prebuildopts = 'source sourceme.sh && '
-# make sure that ld.gold linker is used
-# required to work around problems like "ld: BFD (GNU Binutils) 2.30 assertion fail elf.c:3564"
-# (problem with intel build but maintain consistency between easyconfigs)
-buildopts = 'LD_RO="ld.gold -r -o"'
-
# install path for PLUMED libraries must be included in $LD_LIBRARY_PATH when Python bindings get built/installed
preinstallopts = 'LD_LIBRARY_PATH="%(installdir)s/lib:$LD_LIBRARY_PATH" '
diff --git a/easybuild/easyconfigs/p/PLUMED/PLUMED-2.9.0-foss-2022b.eb b/easybuild/easyconfigs/p/PLUMED/PLUMED-2.9.0-foss-2022b.eb
index a2971db49f7..92cdbe73b2a 100644
--- a/easybuild/easyconfigs/p/PLUMED/PLUMED-2.9.0-foss-2022b.eb
+++ b/easybuild/easyconfigs/p/PLUMED/PLUMED-2.9.0-foss-2022b.eb
@@ -35,11 +35,6 @@ configopts = '--exec-prefix=%(installdir)s --enable-gsl --enable-modules=all --e
configopts += '--enable-boost_graph --enable-boost_serialization '
prebuildopts = 'source sourceme.sh && '
-# make sure that ld.gold linker is used
-# required to work around problems like "ld: BFD (GNU Binutils) 2.30 assertion fail elf.c:3564"
-# (problem with intel build but maintain consistency between easyconfigs)
-buildopts = 'LD_RO="ld.gold -r -o"'
-
# install path for PLUMED libraries must be included in $LD_LIBRARY_PATH when Python bindings get built/installed
preinstallopts = 'LD_LIBRARY_PATH="%(installdir)s/lib:$LD_LIBRARY_PATH" '
diff --git a/easybuild/easyconfigs/p/PLUMED/PLUMED-2.9.0-foss-2023a.eb b/easybuild/easyconfigs/p/PLUMED/PLUMED-2.9.0-foss-2023a.eb
index 8ca97130960..b08db49309a 100644
--- a/easybuild/easyconfigs/p/PLUMED/PLUMED-2.9.0-foss-2023a.eb
+++ b/easybuild/easyconfigs/p/PLUMED/PLUMED-2.9.0-foss-2023a.eb
@@ -35,11 +35,6 @@ configopts = '--exec-prefix=%(installdir)s --enable-gsl --enable-modules=all --e
configopts += '--enable-boost_graph --enable-boost_serialization '
prebuildopts = 'source sourceme.sh && '
-# make sure that ld.gold linker is used
-# required to work around problems like "ld: BFD (GNU Binutils) 2.30 assertion fail elf.c:3564"
-# (problem with intel build but maintain consistency between easyconfigs)
-buildopts = 'LD_RO="ld.gold -r -o"'
-
# install path for PLUMED libraries must be included in $LD_LIBRARY_PATH when Python bindings get built/installed
preinstallopts = 'LD_LIBRARY_PATH="%(installdir)s/lib:$LD_LIBRARY_PATH" '
diff --git a/easybuild/easyconfigs/p/PLUMED/PLUMED-2.9.2-foss-2023b.eb b/easybuild/easyconfigs/p/PLUMED/PLUMED-2.9.2-foss-2023b.eb
new file mode 100644
index 00000000000..3ed5ad9b823
--- /dev/null
+++ b/easybuild/easyconfigs/p/PLUMED/PLUMED-2.9.2-foss-2023b.eb
@@ -0,0 +1,54 @@
+easyblock = 'ConfigureMake'
+
+name = 'PLUMED'
+version = '2.9.2'
+
+homepage = 'https://www.plumed.org'
+description = """PLUMED is an open source library for free energy calculations in molecular systems which
+ works together with some of the most popular molecular dynamics engines. Free energy calculations can be
+ performed as a function of many order parameters with a particular focus on biological problems, using
+ state of the art methods such as metadynamics, umbrella sampling and Jarzynski-equation based steered MD.
+ The software, written in C++, can be easily interfaced with both fortran and C/C++ codes.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023b'}
+toolchainopts = {'usempi': 'True'}
+
+source_urls = ['https://github.com/plumed/plumed2/releases/download/v%(version)s/']
+sources = [SOURCE_TGZ]
+checksums = ['6fc23fe31074ad6b7a0eb9e2441fce5b3d92514d0d87206594c59c75e4c83d6e']
+
+builddependencies = [
+ ('xxd', '9.1.0307'),
+]
+
+dependencies = [
+ ('zlib', '1.2.13'),
+ ('GSL', '2.7'),
+ ('Python', '3.11.5'),
+ ('SciPy-bundle', '2023.11'),
+ ('Boost', '1.83.0'),
+]
+
+preconfigopts = 'env FC=$MPIF90 LIBS="$LIBLAPACK $LIBS" '
+configopts = '--exec-prefix=%(installdir)s --enable-gsl --enable-modules=all --enable-python '
+configopts += '--enable-boost_graph --enable-boost_serialization '
+prebuildopts = 'source sourceme.sh && '
+
+# install path for PLUMED libraries must be included in $LD_LIBRARY_PATH when Python bindings get built/installed
+preinstallopts = 'LD_LIBRARY_PATH="%(installdir)s/lib:$LD_LIBRARY_PATH" '
+
+sanity_check_paths = {
+ 'files': ['bin/plumed', 'lib/libplumedKernel.%s' % SHLIB_EXT, 'lib/libplumed.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["python -c 'import plumed'"]
+
+modextrapaths = {
+ 'PLUMED_KERNEL': 'lib/libplumedKernel.%s' % SHLIB_EXT,
+ 'PLUMED_ROOT': 'lib/plumed',
+ 'PYTHONPATH': 'lib/plumed/python',
+}
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/p/PLY/PLY-3.11-GCCcore-13.3.0.eb b/easybuild/easyconfigs/p/PLY/PLY-3.11-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..a5620c426d6
--- /dev/null
+++ b/easybuild/easyconfigs/p/PLY/PLY-3.11-GCCcore-13.3.0.eb
@@ -0,0 +1,22 @@
+easyblock = 'PythonPackage'
+
+name = 'PLY'
+version = '3.11'
+
+homepage = "https://www.dabeaz.com/ply/"
+description = """PLY is yet another implementation of lex and yacc for Python."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['00c7c1aaa88358b9c765b6d3000c6eec0ba42abca5351b095321aef446081da3']
+
+builddependencies = [('binutils', '2.42')]
+
+dependencies = [('Python', '3.12.3')]
+
+download_dep_fail = True
+use_pip = True
+sanity_pip_check = True
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/p/POT/POT-0.9.3-foss-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/p/POT/POT-0.9.3-foss-2023a-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..1eddcba72f5
--- /dev/null
+++ b/easybuild/easyconfigs/p/POT/POT-0.9.3-foss-2023a-CUDA-12.1.1.eb
@@ -0,0 +1,47 @@
+easyblock = 'PythonBundle'
+
+name = 'POT'
+version = '0.9.3'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://github.com/rflamary/POT'
+description = """POT (Python Optimal Transport) is a Python library provide several solvers for optimization problems
+ related to Optimal Transport for signal, image processing and machine learning."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('matplotlib', '3.7.2'),
+ ('scikit-learn', '1.3.1'),
+ ('CUDA', '12.1.1', '', SYSTEM),
+ ('PyTorch', '2.1.2', versionsuffix),
+ ('jax', '0.4.25', versionsuffix),
+ ('CVXOPT', '1.3.2'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('autograd', '1.7.0', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['49680300f842f3a8722b060ac0d3ed7aca071d1ad4d3d38c9fdadafdcc73c30b'],
+ }),
+ ('versioneer', '0.29', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['0f1a137bb5d6811e96a79bb0486798aeae9b9c6efc24b389659cebb0ee396cb9'],
+ }),
+ ('pymanopt', '2.2.1', {
+ # Requirements forbid some versions of `scipy` which are known to have a bug but we have fixed it.
+ # see `scipy-1.11.1_vectorization_error.patch`
+ 'preinstallopts': """sed -i 's/"scipy>=1.0[^"]*"/"scipy>=1.0"/g' pyproject.toml && """,
+ 'checksums': ['c784929a436eb06d73371b53ae5db3cdc19c5e60280f8131553bc805cbf7a1da'],
+ }),
+ (name, version, {
+ 'modulename': 'ot',
+ 'checksums': ['eecf2394390a73472e727ef75f7c801fc47509039f00c40f8fc64fdeea617c86'],
+ }),
+]
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/p/PROJ/PROJ-9.4.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/p/PROJ/PROJ-9.4.1-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..1307155f8f7
--- /dev/null
+++ b/easybuild/easyconfigs/p/PROJ/PROJ-9.4.1-GCCcore-13.3.0.eb
@@ -0,0 +1,49 @@
+##
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+#
+# Copyright:: Copyright 2014-2015 The Cyprus Institute
+# Authors:: Thekla Loizou
+# License:: MIT/GPL
+#
+##
+easyblock = 'CMakeMake'
+
+name = 'PROJ'
+version = '9.4.1'
+
+homepage = 'https://proj.org'
+description = """Program proj is a standard Unix filter function which converts
+geographic longitude and latitude coordinates into cartesian coordinates"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://download.osgeo.org/proj/']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['ffe20170ee2b952207adf8a195e2141eab12cda181e49fdeb54425d98c7171d7']
+
+builddependencies = [
+ ('pkgconf', '2.2.0'),
+ ('binutils', '2.42'),
+ ('CMake', '3.29.3'),
+ ('googletest', '1.15.2'),
+]
+
+dependencies = [
+ ('SQLite', '3.45.3'),
+ ('LibTIFF', '4.6.0'),
+ ('cURL', '8.7.1'),
+ ('XZ', '5.4.5'),
+ ('nlohmann_json', '3.11.3'),
+]
+
+# build twice, once for static, once for shared libraries
+configopts = ['', '-DBUILD_SHARED_LIBS=OFF']
+
+sanity_check_paths = {
+ 'files': ['bin/cct', 'bin/cs2cs', 'bin/geod', 'bin/gie', 'bin/proj', 'bin/projinfo',
+ 'lib/libproj.a', 'lib/libproj.%s' % SHLIB_EXT],
+ 'dirs': ['include'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/p/PRSice/PRSice-2.3.5-GCCcore-13.3.0.eb b/easybuild/easyconfigs/p/PRSice/PRSice-2.3.5-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..85f8b20972c
--- /dev/null
+++ b/easybuild/easyconfigs/p/PRSice/PRSice-2.3.5-GCCcore-13.3.0.eb
@@ -0,0 +1,44 @@
+# Contribution from the NIHR Biomedical Research Centre
+# Guy's and St Thomas' NHS Foundation Trust and King's College London
+# uploaded by J. Sassmannshausen
+
+easyblock = 'CMakeMakeCp'
+
+name = 'PRSice'
+version = '2.3.5'
+
+homepage = 'https://choishingwan.github.io/PRSice/'
+description = """PRSice (pronounced 'precise') is a Polygenic Risk
+Score software for calculating, applying, evaluating and
+plotting the results of polygenic risk scores (PRS) analyses."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://github.com/choishingwan/%(name)s/archive/']
+sources = ['%(version)s.tar.gz']
+patches = ['PRSice-2.3.5_remove_sysctl.patch']
+checksums = [
+ '0a7e649ddebe4e969cd8400c5ad977a7b900be4f5c920a84483cb8930367354d', # 2.3.5.tar.gz
+ 'ab8286e8a0700ea163f552de66458e409c396e06b57c9adfff3b7f63083f7798', # PRSice-2.3.5_remove_sysctl.patch
+]
+
+builddependencies = [
+ ('CMake', '3.29.3'),
+ ('binutils', '2.42'),
+ ('Eigen', '3.4.0'),
+]
+
+files_to_copy = [
+ (['bin/%(name)s'], 'bin'),
+ 'README.md',
+ 'LICENSE',
+]
+
+sanity_check_paths = {
+ 'files': ['bin/%(name)s'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ['%(name)s --help']
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/p/PRSice/PRSice-2.3.5_remove_sysctl.patch b/easybuild/easyconfigs/p/PRSice/PRSice-2.3.5_remove_sysctl.patch
new file mode 100644
index 00000000000..04a71e26a8b
--- /dev/null
+++ b/easybuild/easyconfigs/p/PRSice/PRSice-2.3.5_remove_sysctl.patch
@@ -0,0 +1,194 @@
+# What: sysctl.h is removed in glibc v2.32. This patch is based on the following commits
+# from https://github.com/choishingwan/PRSice:
+# f285b243856b857a461d9a2b27e1f2f0ac25216e
+# 53641c11750a7e0bdd06a925fbf28c1e3978ee72
+# Also see issue https://github.com/choishingwan/PRSice/issues/338 and PR https://github.com/choishingwan/PRSice/pull/243
+# Author: maxim-masterov (SURF)
+
+diff -Nru PRSice-2.3.5.orig/inc/misc.hpp PRSice-2.3.5/inc/misc.hpp
+--- PRSice-2.3.5.orig/inc/misc.hpp 2024-10-23 18:13:58.539539000 +0200
++++ PRSice-2.3.5/inc/misc.hpp 2024-10-23 18:14:29.383991502 +0200
+@@ -38,7 +38,6 @@
+ #include
+ #include
+ #include
+-#include
+ #elif defined _WIN32
+ #include
+ // psapi must go after windows, or will generate error
+@@ -48,7 +47,6 @@
+ #include "stdlib.h"
+ #include "string.h"
+ #include