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 45d27a2e696..af2e74ae887 100644
--- a/RELEASE_NOTES
+++ b/RELEASE_NOTES
@@ -3,8 +3,298 @@ 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,487 easyconfig files, for 3,470 different software packages,
-incl. 40 different (compiler) toolchains.
+The latest version of easybuild-easyconfig provides 20,670 easyconfig files, for 3,670 different software packages,
+incl. 41 different (compiler) toolchains.
+
+
+v4.9.4 (22 September 2024)
+--------------------------
+
+update/bugfix release
+
+- added example easyconfig files for 14 new software packages:
+ - Biotite (#21026), chopper (#21418), CLUMPP (#21329), cramino (#21382), dub (#21378), ESM3 (#21026), GOMC (#21008),
+ MOKIT (#21352), nanoQC (#21371), phasius (#21389), PyBullet (#21356), rnamotif (#21336), versioningit (#21424),
+ xskillscore (#21351)
+- added additional easyconfigs for various supported software packages, including:
+ - awscli 2.17.54, BiG-SCAPE-1.1.9, ccache 4.10.2, CLHEP 2.4.7.1, CREST 3.0.2, decona 1.4-2024073, dftd4 3.7.0,
+ GATE 9.4, Gdk-Pixbuf 2.42.11, Geant4 11.2.2, Geant4-data 11.2, Ghostscript 10.03.1, GitPython 3.1.43,
+ GObject-Introspection 1.80.1, HarfBuzz 9.0.0, ImageMagick 7.1.1-38, JasPer 4.2.4, joypy 0.2.6, Julia 1.10.4,
+ LDC 1.39.0, Leptonica 1.84.1, Markdown 3.7, MPICH 4.2.2, NanoComp 1.24.0, nanoget 1.19.3, nanomath 1.4.0,
+ NanoPlot 1.43.0, Pango 1.54.0, PCAngsd 1.2, Pillow 10.4.0, python-isal 1.7.0, pocl 6.0, PROJ 9.4.1, protobuf 28.0,
+ protobuf-python 5.28.0, R-tesseract 5.2.1, RepeatMasker 4.1.7-p1, RHEIA 1.1.11, RMBlast 2.14.1,
+ scikit-build-core 0.10.6, sleuth 0.30.1, SNAP-ESA 10.0.0, tesseract 5.3.4, Triton 2.1.0, TurboVNC 3.1.2,
+ VirtualGL 3.1.1, zlib-ng 2.2.1
+- minor enhancements, including:
+ - enable support for Apache ORC to Arrow v14.0.1 and v16.1.0 (#21056)
+ - use proper dependency for tensorboard in easyconfigs for TensorFlow v2.15.1 (#21337)
+- various bug fixes, including:
+ - account for crates for easyconfigs using Cargo-based easyblock when determining checksums for patches in easyconfigs test suite (#21419)
+ - avoid missing symbol in mclust extension of R-4.0.3 w/ foss/2020b (#21429)
+ - fix build of librosa 0.10.1 in some environments by removing "python -m build" for soxr extension (#21434)
+ - fix repeated sanity check runs in manta easyconfigs (#21435)
+ - fix test_easyconfig_locations when easyconfigs index is present (#21394)
+ - use proper dependency for libnsl in git-annex (#21441)
+ - avoid writing into ~/.stack directory during build for git-annex (#21452)
+- other changes:
+ - remove exts_default_options from TensorFlow 2.3.1 (#21290)
+
+
+v4.9.3 (14 September 2024)
+--------------------------
+
+update/bugfix release
+
+- added easyconfigs for foss/2024a (#21100) and intel/2024a (#21101) common toolchains
+- new toolchain: gmpflf/2024.06 (#20882)
+- added example easyconfig files for 107 new software packages:
+ - absl-py (#21039), accelerate (#21107), affogato (#20636), APOST3D (#21133), bayesian-optimization (#21301),
+ BayesOpt (#21261), BGEN-enkre (#15752), bitsandbytes (#21248), bliss (#21206), cfgrib (#21113), CLANS (#21099),
+ colorize (#20964), CORSIKA (#20693), COSTA (#20989), coxeter (#21254), Critic2 (#20833), crypt4gh (#20870),
+ dblatex (#21207), dictys (#21166), DL_POLY_Classic_GUI (#20819), EGA-QuickView (#20870, #20888), EMMAX (#21174),
+ empanada-dl (#20454), empanada-napari (#20454), ESIpy (#21006), fastfilters (#21003), fish (#21345, #21381),
+ flash-attention (#21083), Flax (#21039), fonttools (#21363), fsm-lite (#20503), GDMA (#21171), GeoDict (#20650),
+ GPflow (#21172), gtk-doc (#21207), Gubbins (#20413), Gymnasium (#20420), HERRO (#21252), IEntropy (#20808),
+ ilastik-napari (#21003), IMAGE (#20994), junos-eznc (#21166), jupyter-collaboration (#20741),
+ jupyter-vscode-proxy (#20876), langchain-mistralai (#20759), langchain-openai (#20711), LRBinner (#21310),
+ lrcalc (#21339), MAGIC (#20900), mallard-ducktype (#21127), MATES (#21229), MBX (#21155), mcqd (#21283),
+ MeshLab (#20806), meteogrid (#20921), micro-sam (#20636), miniprot (#21157), napari-denoiseg (#20934),
+ NECAT (#21359), nellie (#21267), NextPolish (#21265), nifty (#20636), ome-types (#21256), openai-python (#20711),
+ OpenForceField-Toolkit (#20852), orjson (#20880), PEcAn (#21227), PretextMap (#20790), PyBEL (#20953),
+ pyMBE (#21034), pystencils (#20889), python-blosc (#20636), python-elf (#20636), rankwidth (#20788), Rasqal (#21207),
+ Redland (#21227), Regenie (#15752), rMATS-long (#20916), Sagemath (#21365), scCustomize (#20907), SCENICplus (#21085),
+ scFEA (#20777), sdsl-lite (#20503), SharedMeatAxe (#21303), Single-cell-python-bundle (#20116), SIRIUS (#20989),
+ sirocco (#21304), SKA2 (#20411), SpFFT (#20989), spla (#11607), Stable-Baselines3 (#20884), submitit (#21103),
+ SVDSS2 (#20855), tdlib (#21305), torch-em (#20636), Umpire (#20989), Uni-Core (#21182), vigra (#20636),
+ Visit (#20981), weblogo (#20800), wradlib (#21110), xtb-IFF (#20783), yell (#20964), yelp-tools (#21127),
+ yelp-xsl (#21127), z5py (#20636), Zoltan (#21324)
+- added additional easyconfigs for various supported software packages, including:
+ - AGAT 1.4.0, ASE 3.23.0, Abseil 20240722.0, Albumentations 1.4.0, AlphaPulldown 2.0.0b4, AlphaPulldown 2.0.0b4,
+ AmberTools 26.3, Arrow 16.1.0, alsa-lib 1.2.11, archspec 0.2.4, attr 2.5.2, BayesTraits 4.1.2, BeautifulSoup 4.12.3,
+ Biopython 1.84, Boost.MPI 1.83.0, bcl-convert 4.2.7-2, beagle-lib 4.0.1, biom-format 2.1.16, byacc 2.0.20240109,
+ CDO 2.3.0, CFITSIO 4.4.1, CUDA-Samples 12.2, CUDA 12.5.0 + 12.6.0, CUTLASS 3.4.0, Catch2 2.13.10, CellOracle 0.18.0,
+ Clang 18.1.8, Coreutils 9.5, chewBBACA 3.3.9, code-server 4.90.2, connected-components-3d 3.14.1, cooler 0.10.2,
+ cryptography 42.0.8, cutadapt 4.9, cyvcf2 0.31.1, dorado 0.7.3, dtcmp 1.1.5, ESMF 8.6.1, EvidentialGene 2023.07.15,
+ Extrae 4.2.0, ecBuild 3.8.5, elfutils 0.191, FFmpeg 7.0.2, FLAC 1.4.3, FUSE 3.16.2, Flask 3.0.3, Flye 2.9.4,
+ FriBidi 1.0.15, ffnvcodec 12.2.72.0, flatbuffers-python 24.3.25, flatbuffers 24.3.25, fmt 10.2.1, fpylll 0.6.1,
+ GCC 14.2.0, GDAL 3.9.0, GEOS 3.12.1, GHC 9.10.1, GLM 1.0.1, GLib 2.80.4, GLibmm 2.72.1 + 2.75.0 + 2.77.0 + 2.78.1,
+ GPAW 24.6.0, GetOrganelle 1.7.7.1, Guile 2.0.14 + 3.0.10, Gurobi 11.0.2, gap 4.13.0, genomepy 0.16.1, gensim 4.3.2,
+ gffutils 0.13, gh 2.52.0, git-annex 10.20240731, gmpy2 2.2.0, googletest 1.15.2, graph-tool 2.59, HDBSCAN 0.8.38.post1,
+ HOMER 4.11.1, HTSeq 2.0.7, HiCMatrix 17.2, Highway 1.2.0, Hypre 2.31.0, hatchling 1.24.2, histolab 0.7.0,
+ hypothesis 6.103.1, IQ-TREE 2.3.5, ImageMagick 7.1.1-34, Imath 3.1.11, IsoQuant 3.5.0, igraph 0.10.12, imageio 2.34.1,
+ imbalanced-learn 0.12.3, inferCNV 1.21.0, intervaltree 0.1, JsonCpp 1.9.5, Julia 1.10.4, jax 0.4.25, json-fortran 8.5.2,
+ Kent_tools 468, LLVM 18.1.8, LittleCMS 2.16, libdrm 2.4.122, libdwarf 0.10.1, libedit 20240517, libgeotiff 1.7.3,
+ libgit2 1.8.1, libopus 1.5.2, libsigc++ 3.6.0, libspatialindex 2.0.0, libunistring 1.2, libunwind 1.8.1, libwebp 1.4.0,
+ libxslt 1.1.42, libzip 1.10.1, lwgrp 1.0.6, lxml 5.3.0, MCR R2024a, MPICH 4.2.1, MUMPS 5.7.2, MariaDB 11.6.0,
+ Maven 3.9.7, Mercurial 6.8.1, Mesa 24.1.3, Miniconda3 23.10.0-1, MultiQC 1.22.3, makedepend 1.0.9, matplotlib 3.9.2,
+ maturin 1.6.0, medaka 1.12.1, meshio 5.3.5, meson-python 0.16.0, mm-common 1.0.6, NanoCaller 3.6.0, Normaliz 3.10.3,
+ n2v 0.3.3, nano 8.1, ncbi-vdb 3.1.1, nettle 3.10, nsync 1.29.2, numexpr 2.9.0, ORCA 6.0.0, OpenEXR 3.2.4, OpenFOAM 12,
+ OpenFOAM v2406, OpenJPEG 2.5.2, Optax 0.2.2, Optuna 3.6.1, PaStiX 6.3.2, Perl-bundle-CPAN 5.38.2, Pillow-SIMD 10.4.0,
+ Pint 0.24, Platypus-Opt 1.2.0, PostgreSQL 16.4, PyAEDT 0.9.9, PyCharm 2024.1.6, PyRosetta 4.release-384,
+ PyWavelets 1.7.0, PyYAML 6.0.2, Pygments 2.18.0, Pylint 3.2.5, Pyomo 6.7.3, Python-bundle-PyPI 2024.06, packmol 20.14.4,
+ pagmo 2.19.0, parallel 20240722, pixman 0.43.4, pod5-file-format 0.3.10, poetry 1.8.3, popt 1.19, pretty-yaml 24.7.0,
+ primecount 7.14, psycopg 3.2.1, pyGenomeTracks 3.9, pybind11 2.12.0, pycocotools 2.0.7, pydantic 2.7.4, pygmo 2.19.5,
+ pyperf 2.7.0, pyseer 1.3.12, pysteps 1.10.0, QuantumESPRESSO 7.3.1, Qwt 6.3.0, R-bundle-CRAN 2024.06, R 4.4.1,
+ RDKit 2024.03.3, RapidJSON 1.1.0-20240409, Ray-project 2.9.1, ReFrame 4.6.2, Rust 1.79.0, redis-py 5.0.9,
+ regionmask 0.12.1, rjags 4-15, rpmrebuild 2.18, SDL2 2.30.6, SHAP 0.43.0, SIP 6.8.3, SRA-Toolkit 3.1.1,
+ STAR 2.7.11b_alpha_2024-02-09, STRUMPACK 7.1.0, SVDSS2 2.0.0-alpha.3, Safetensors 0.4.3, Salmon 1.10.3,
+ SciPy-bundle 2024.05, SeqKit 2.8.2, SingleM 0.16.0, Sphinx-RTD-Theme 2.0.0, Stack 3.1.1, SuiteSparse 7.7.0,
+ SuperLU 6.0.1, SuperLU_DIST 8.2.1, scArches 0.6.1, scib-metrics 0.5.1, scvi-tools 1.1.2, sdsl-lite 2.0.3,
+ setuptools-rust 1.9.0, sirocco 2.1.0, slepc4py 3.20.2, smafa 0.8.0, snpEff 5.2c, spaCy 3.7.4, spektral 1.2.0,
+ spglib-python 2.5.0, spglib 2.5.0, TELEMAC-MASCARET 8p5r0, Tk 8.6.14, Tkinter 3.12.3, Trycycler 0.5.5, tiktoken 0.7.0,
+ timm 1.0.8, UCX-CUDA 1.16.0, unixODBC 2.3.12, utf8proc 2.9.0, VSEARCH 2.28.1, virtualenv 20.26.2, WRF 4.5.1,
+ Wayland 1.23.0, X11 20240607, XGBoost 2.1.1, XML-LibXML 2.0210, x264 20240513, x265 3.6, xarray 2024.5.0, xtb-IFF 1.1,
+ xtb 6.7.1, xtensor 0.24.7, yelp-xsl 42.1
+- minor enhancements, including:
+ - add internal CUDA header patch for PSM2 v12.0.1 (#20804)
+ - add patch for JupyterHub support to recent tensorboard easyconfigs (#20823)
+ - make sure that recent ImageMagick versions pick up the right pkgconf + improve sanity check for ImageMagick (#20900)
+ - also install utilities for recent versions of FUSE 3.x (#20918)
+ - add RISC-V support to x264 v20231019 (#20968)
+ - add RISC-v support to recent LAME easyconfigs by removing workaround for finding libncurses (#20970)
+ - enable PIC in recent x265 easyconfigs to solve compilation errors on RISC-V (#20971)
+ - add extensions to R-bundle-CRAN: missmDA (#21167, #21183). insight (#21260), performance + datwizard + bayestestR (#21272, #21285)
+ - add Qt support to VTK 9.3.0 (#21221)
+ - add `helper_scripts` to `$PATH` in easyconfig for ProteinMPNN v1.0.1-20230627 (#21289)
+ - also build & install the plugins with OpenFOAM v2406 (#21332)
+- various bug fixes, including:
+ - fix easyconfigs for recent versions of QuantumESPRESSO (#20070)
+ - add wrapper for Julia with linking safeguards and delegate environment setup to JuliaPackage (#20103)
+ - fix typo in description of SuiteSparse v7.7.0 (#20567)
+ - add 'pic' flag to IML (#20789)
+ - add patch to recent SciPy-bundle easyconfigs to fix build error with numpy with some Fortran compilers (#20817)
+ - rename unpacked sources for components of EasyBuild v4.9.2, to ensure that '`--install-latest-eb-release`' works with older EasyBuild versions (#20818)
+ - fix build of OpenBLAS 0.3.24 on A64FX (#20820)
+ - remove maturin build dependency from langchain-antropic (#20825)
+ - add GMP and MPFR as dependencies to OpenFOAM v2306 and v2312 (#20841)
+ - add patch to SciPy-bundle 2024.05 that fixes numpy test failures on RISC-V (#20847)
+ - skip unreliable memory leak test in PyTorch 2.1.2 (#20874)
+ - use PyYAML 6.0.1 instead of 6.0 for recent ReFrame versions to fix problem with Cython 3.x (#20879)
+ - use PyPI source tarball and gfbf/2023a toolchain for pyBigWig (#20881)
+ - add fix for failing test on zen4 to Highway 1.0.4 (#20942)
+ - add patch to fix implicit function declaration in OpenMPI 4.1.4 (#20949)
+ - only use libxsmm as dependency for CP2K 2023.1 w/ `foss/2023a` on x86_64 (#20951)
+ - copy missing `rsem_perl_utils.pm` in DETONATE, since it's required by `rsem-eval-calculate-score` command (#20956)
+ - set `$SATSUMA2_PATH` so Satsuma2 can locate executables (#20957)
+ - disable auto-vectorizer (`-ftree-vectorize`) for OpenFOAM v10 + v11 when using toolchain that with GCC >= 11 (#20958)
+ - disable test step for WIEN2k 23.2 because files required by it can no longer be downloaded (#20969)
+ - add patch to fix Qt6 issues with ParaView v5.12.0, e.g. representation selection (#21002)
+ - update homepage in phonopy easyconfigs (#21014)
+ - make libunwind dependency architecture specific in Extrae 4.2.0 easyconfig (#21017)
+ - add `OPENSSL_ENABLE_SHA1_SIGNATURES` for building `ansys-pythonnet` (#21028)
+ - fix download URLs for old Intel software (2018-2023) by using `IRC_NAS` instead of `irc_nas` (#21108)
+ - update source and homepage URLs in Szip easyconfigs (#21129)
+ - rename source URL in HDF v4.2.16-2 easyconfig (#21130)
+ - consistently fix homeage + source URL for `HDF` + `h4toh5` (#21134)
+ - ensure that recent BioPerl easyconfigs use `Bundle` easyblock (#21136)
+ - fix checksum checks for easyconfigs using a `Bundle`-like easyblock in easyconfigs test suite (#21143)
+ - add pkgconf build dependency to scikit-misc v0.3.1 (#21144)
+ - explicitly disable use of MySQL in recent GDAL easyconfigs (#21156)
+ - fix easyconfig tensorflow-probability v0.20.0 to pass `pip check` (#21172)
+ - stop RStudio-Server 2023.09 from installing R packages (+ move to `foss/2023a` toolchain) (#21175)
+ - remove `Time::HiRes` from `Perl-bundle-CPAN` since there's newer version in `Perl` (#21198)
+ - fix build of STAR 2.7.11a + 2.7.11b on non-x86 architectures by avoiding use of `-maxv2` + add missing `xxd` build dependency (#21200)
+ - add missing cairo dependency for python-igraph v0.10.6 (#21211)
+ - add patch for xtb 6.7.0 to fix build failure due to changes in tblite (#21255)
+ - add patch for HDF5 v1.14.3 to suppress fp exceptions (#21280)
+ - update easyconfig for dorado 0.7.3 to properly use provided OpenSSL dependency, and not install external libraries into its own lib directory (#21297)
+ - use proper Python dependency for OTF2 (#21325)
+ - use source tarballs from GitHub for recent libdap easyconfigs (#21334)
+ - remove Highway build dependency in Brunsli easyconfigs, since it's not actually required at all (#21366)
+ - add alternative checksum for bold 1.3.0 extension in R-bundle-CRAN (#21370)
+- other changes:
+ - archive outdated example easyconfigs for Fujitsu toolchain (#20781)
+ - upgrade rpmrebuild build dependency to version 2.18 in bcl-convert 4.2.7 easyconfig (#20861)
+ - use proper dependency for Safetensors in easyconfig for Transformers v4.39.3 (#20864)
+ - remove CMake Arrow flag as there is no Arrow dependency in recent GDAL easyconfigs (#20905)
+ - whitelist `ConfigureMakePythonPackage` for `sanity_check_paths` CI check (#20963)
+ - rename `gubbins-2.4.0.eb` to `Gubbins-2.4.0.eb` (#20995)
+ - make pytest v7.4.2 independent of Python-bundle-PyPI (#21004)
+ - reorganize Flax/JAX stack in 2023a: move `jax` + `Optax` to `gfbf/2023a` toolchain + use standalone `Flax` + `absl-py` as dependencies (#21038)
+ - use stand-alone absl-py as dependency for jax w/ `gfbf/2023a` (#21039)
+ - remove Cython dependency from Python-bundle-PyPI 2024.06 + add standalone easyconfig for Cython 3.0.10 (#21233)
+ - add Cython build dependency for SciPy-bundle v2024.05 (#21235)
+ - use top-level parameters for `use_pip` & co instead of `exts_default_options` for `PythonBundle` easyconfigs (#21292)
+
+
+v4.9.2 (12 June 2024)
+---------------------
+
+update/bugfix release
+
+- added easyconfigs for foss/2024.05 toolchain (candidate for foss/2024a) (#20646)
+- added example easyconfig files for 82 new software packages:
+ - AEDT (#20357), amdahl (#20346), AMGX (#20255), assembly-stats (#20281), Bio-FeatureIO (#20461),
+ bitshuffle (#20661), Cassiopeia (#20289), CCCL (#20255), charm-gems (#20327), CheckM2 (#20399),
+ chromVARmotifs (#20402), cmph (#20278), COMEBin (#20717), Compass (#20500), ctffind5 (#20669), currentNe (#20791),
+ CVX (#20231), deepfold (#20247), dotNET-Core (#20256), EasyMocap (#20446), ensmallen (#20485), EVcouplings (#20744),
+ Faiss (#19669), FDMNES (#20321), gnupg-bundle (#20406), grpcio (#20191), hatch-jupyter-builder (#20606),
+ hevea (#20597), HiGHS (#20186), hmmcopy_utils (#20472), HOMER (#20590), ICON (#20573), jiter (#20746),
+ LangChain (#20746), langchain-anthropic (#20746), libabigail (#20539), libbraiding (#20655), libhomfly (#20482),
+ libsupermesh (#20470), LIBSVM-MATLAB (#20752), Lightning (#19964), lil-aretomo (#20696), makefun (#20619),
+ MetalWalls (#20403), MICOM (#20186), ml-collections (#20247), ml_dtypes (#20707), mlpack (#20485), MOFA2 (#20538),
+ mumott (#20719), nvitop (#20512), ocamlbuild (#20552), optiSLang (#20320), orthAgogue (#20278), pdf2docx (#20416),
+ planarity (#20753), plantri (#20467), plmc (#20744), PortAudio (#20307), premailer (#20348), ProteinMPNN (#20705),
+ PRRTE (#20698), PSM2 (#20496), PyAEDT (#20357), pybind11-stubgen (#20518), PyEXR (#19983), pyGAM (#20385),
+ PyHMMER (#20544), pyseer (#20502), PyVista (#20649), qmflows (#20384), SciTools-Iris (#20767), SCReadCounts (#20455),
+ SDL2_gfx (#20466), subunit (#20412), TF-COMB (#20666), tiktoken (#20336), TorchIO (#20648), t-SNE-CUDA (#19669),
+ VAMPIRE-ASM (#20368), wfdb (#20521), WGDgc (#20367)
+- added additional easyconfigs for various supported software packages, including:
+ - 4ti2 1.6.10, AFNI 24.0.02, Autoconf 2.72, Autotools 20231222, adjustText 1.1.1, aiohttp 3.9.5, alevin-fry 0.9.0,
+ alsa-lib 1.2.9, atropos 1.1.32, autopep8 2.2.0, BCFtools 1.19, BLIS 1.0, BWA 0.7.18, Boost 1.85.0, bcrypt 4.1.3,
+ binutils 2.42, bokeh 3.4.1, CGAL 5.6.1, CREST 3.0.1, CellRanger-ARC 2.0.2, CellRanger 8.0.1, CellRank 2.0.2,
+ Clang 17.0.6, CoCoALib 0.99850, Cython 3.0.10, cURL 8.7.1, cffi 1.16.0, code-server 4.89.1,
+ configurable-http-proxy 4.6.1, coverage 7.4.4, cpio 2.15, cppyy 3.1.2, cysignals 1.11.4, Doxygen 1.11.0,
+ dask-labextension 7.0.0, dask 2024.5.1, deal.II 9.5.2, dorado 0.5.3, dotNET-Core 8.0.203, E-ANTIC 2.0.2,
+ ECL 24.5.10, ESPResSo 4.2.2, eclib 20240408, expat 2.6.2, FLTK 1.3.9, FMM3D 1.0.4, FlexiBLAS 3.4.4, f90wrap 0.2.13,
+ fgbio 2.2.1, fontconfig 2.15.0, freetype-py 2.4.0, GAMESS-US 20220930-R2 + 20230930-R2, GCC 13.3.0 + 14.1.0,
+ GDB 14.2, GDRCopy 2.4.1, GOATOOLS 1.4.5, GTDB-Tk 2.4.0, Giza 1.4.1, gc 8.2.6, gcloud 472.0.0, gemmi 0.6.5,
+ gettext 0.22.5, giac 1.9.0-99, git 2.45.1, gmsh 4.12.2, gsutil 5.29, HDDM 0.9.9, HTSlib 1.19.1, HyPhy 2.5.60,
+ h5py 3.11.0, hwloc 2.10.0, ICU 75.1, IOR 4.0.0, imagecodecs 2024.1.1, imgaug 0.4.1, ipympl 0.9.4,
+ Jupyter-bundle 20240522, JupyterHub 4.1.5, JupyterLab 4.2.0, JupyterNotebook 7.2.0, jupyter-matlab-proxy 0.12.2,
+ jupyter-resource-usage 1.0.2, jupyter-rsession-proxy 2.2.0, jupyter-server-proxy 4.1.2, jupyter-server 2.14.0,
+ Kalign 3.4.0, KrakenUniq 1.0.4, kallisto 0.50.1, LAPACK 3.12.0, libarchive 3.7.4, libde265 1.0.15, libdeflate 1.20,
+ libdwarf 0.9.2, libfabric 1.21.0, libffi 3.4.5, libgcrypt 1.10.3, libgpg-error 1.48, libheif 1.17.6, libidn2 2.3.7,
+ libnsl 2.0.1, libpciaccess 0.18.1, libpng 1.6.43, libuv 1.48.0, libxml2 2.12.7, line_profiler 4.1.2, MATSim 15.0,
+ MDTraj 1.9.9, Mako 1.3.5, Meson 1.4.0, MetaMorpheus 1.0.5, Molpro 2024.1.0, MuJoCo 3.1.4, matlab-proxy 0.18.1,
+ mold 2.31.0, mpmath 1.3.0, NASM 2.16.03, NanoPlot 1.42.0, Nextflow 24.04.2, Ninja 1.12.1, nanoget 1.19.1,
+ napari 0.4.19.post1, nauty 2.8.8, ncurses 6.5, nghttp2 1.58.0, nghttp3 1.3.0, nglview 3.1.2, ngtcp2 1.2.0,
+ nodejs 20.13.1, numactl 2.0.18, nvtop 3.1.0, OCaml 5.1.1, OSU-Micro-Benchmarks 7.4, OpenBLAS 0.3.27, OpenMPI 5.0.3,
+ PARI-GP 2.15.5, PCRE2 10.43, PMIx 5.0.2, Perl 5.38.2, PhyML 3.3.20220408, PnetCDF 1.13.0, PyAMG 5.1.0,
+ PyQtGraph 0.13.7, PyTorch-Geometric 2.5.0, PyTorch-bundle 2.1.2, PycURL 7.45.3, Pysam 0.22.0, Python 3.12.3,
+ p11-kit 0.25.3, p4est 2.8.6, parallel 20240322, pauvre 0.2.3, petsc4py 3.20.3, pkgconf 2.2.0, plc 3.10, polars 0.20.2,
+ poppler 24.04.0, psutil 5.9.8, py3Dmol 2.1.0, pybedtools 0.9.1, pygame 2.5.2, pyiron 0.5.1, pyro-ppl 1.9.0,
+ python-mujoco 3.1.4, ROOT 6.30.06, RPostgreSQL 0.7-6, RStudio-Server 2023.12.1+402, Rtree 1.2.0, Rust 1.78.0,
+ SAMtools 1.19.2, SCOTCH 7.0.4, SDL2_image 2.8.2, SDL2_mixer 2.8.0, SDL2_ttf 2.22.0, SQLite 3.45.3, SWIG 4.2.1,
+ SentencePiece 0.2.0, Seurat 5.1.0, SeuratDisk 20231104, SimNIBS 4.0.1, Singular 4.4.0, Spack 0.21.2, Squidpy 1.4.1,
+ SymEngine-python 0.11.0, SymEngine 0.11.2, sbt 1.6.2, scikit-build-core 0.9.3, scikit-learn 1.4.2, TOBIAS 0.16.1,
+ Tcl 8.6.14, TensorFlow 2.15.1, Transformers 4.39.3, texlive 20230313, tmux 3.4, tokenizers 0.15.2, 0.2.5.20231120,
+ tornado 6.4, UCC 1.3.0, UCX 1.16.0, util-linux 2.40, VSCode 1.88.1, Valgrind 3.23.0, VisPy 0.14.1, wget 1.24.5,
+ XZ 5.4.5, xorg-macros 1.20.1, xprop 1.2.7, xtb 6.7.0, xxd 9.1.0307, yaml-cpp 0.8.0, zarr 2.17.1, zfp 1.0.1,
+ zlib-ng 2.1.6, zlib 1.3.1, zstd 1.5.6
+- minor enhancements, including:
+ - add missing (optional) dependency pyproject-metadata to scikit-build-core (#20391)
+ - add hatch-requirements-txt extension to hatchling easyconfigs (#20389)
+ - install pkg-config files for ncurses 6.4 when using GCCcore toolchain (#20405)
+ - use regular 'configure' instead of wrapper script for recent UCX easyconfigs (#20428)
+ - add RISC-V support to UCX 1.15.0 (#20429), UCC 1.2.0 (#20432), BLIS 0.9.0 (#20468), PAPI 7.1.0 (20659)
+ - add extensions to R-bundle-CRAN v2023.12: cmna (#20445), rhandsontable (#20614), XBRL (#20506)
+ - add checksum for RISC-V version to easyconfig for Java 21.0.2 (#20495)
+ - remove 'TORCHVISION_INCLUDE' from PyTorch-bundle easyconfigs, now handled by custom easyblock for torchvision (#20504)
+ - add dependencies required for GUI in Cellpose 2.2.2 easyconfigs (#20620)
+ - add 'build_info_msg' about kernel modules to GDRCopy (#20641)
+ - build both static and shared libs for Brotli 1.1.0 (#20757)
+- various bug fixes, including:
+ - add missing dependencies for funannotate (#17690)
+ - fix path to SuiteSparse include/lib in easyconfig for CVXopt v1.3.1 (#20232)
+ - fix Highway 1.0.3 on some systems by disabling 'AVX3_DL' (#20298)
+ - replace incorrect scikit-bio 0.5.9 with scikit-bio 0.6.0 as dependency for scCODA (#20300)
+ - add alternate checksum to OpenMolcas v23.06 (#20301)
+ - change arrow-R dependency of Bioconductor v3.18 to v14.0.1 (which depends on required matching Arrow v14.0.1) (#20324)
+ - fix hardcoded '/bin/mv' path in Rhdf5lib extension included in R-bundle-Bioconductor v3.16 + v3.18 (#20378)
+ - remove dependency on HDF5 in recent Bioconductor easyconfigs (#20379)
+ - make sure that libjpeg-turbo libraries are installed in 'lib' subdirectory (#20386)
+ - add patch for Libint 2.7.2 to fix compiler error with glibc >= 2.34 (#20396)
+ - use 'bash' rather than 'sh' to run PLINK-2.00a3.7 tests (#20404)
+ - add patch to fix 'UNPACK-OPAL-VALUE: UNSUPPORTED TYPE 33 FOR KEY' error in OpenMPI 4.1.5 (#20422)
+ - add patch to increase compatibility with AVX512 platforms for bwa-mem2 v2.2.1 (#20434)
+ - add patch for GROMACS 2024.1 to fix filesystem race in tests (#20439)
+ - demote poetry to build dependency for nanocompore (#20453)
+ - add patch to fix CVE-2024-27322 in R v3.6.x (#20464), v4.0.x (#20463), and v4.1.x + v4.2.x + v4.3.x (#20462)
+ - disable test that fetches from the web for torchtext extension in PyTorch-bundle v2.1.2 (#20484)
+ - fix sanity check paths for JupyterLab 4.0.5 (#20514)
+ - fix detection of CC/CXX compilers for 'wmake' in OpenFOAM v2306 + v2312 (#20517)
+ - use the included gmxapi for GROMACS 2024.1 (#20522)
+ - add new checksum for signal_1.8-0 to R-bundle-CRAN-2023.12 (#20527)
+ - fix test in Cwd extension of Perl-bundle-CPAN 5.36.1 (#20536)
+ - fix patch name in easyconfig for Perl-bundle-CPAN 5.36.1 + add also use it for Perl-bundle-CPAN 5.38.0 (#20540)
+ - fix cwd_enoent test in Perl (#20541)
+ - move dependency on BeasutifulSoup in IPython v8.14.0 to jupyter-server (#20547)
+ - remove dependency on BeasutifulSoup from IPython v8.17.2 (#20548)
+ - add alternative checksum for source tarball of MONAI 1.3.0 (#20618)
+ - add cpio as build dependency to recent BLAST+ versions (#20674)
+ - add --disable-htmlpages to recent FFmpeg easyconfigs (#20686)
+ - remove duplicate crates from easyconfig for timm-0.9.7 (#20687)
+ - add missing HDF5 dependency in recent Armadillo easyconfigs (>= 11.4.3) (#20710)
+ - add patches for failing LAPACK tests and RISC-V test segfaults to OpenBLAS 0.3.27 (#20745)
+ - move all easyconfigs for libavif to GCCcore toolchain + fix dependencies (#20747)
+ - make sure mummerplot can use gnuplot if available for recent MUMmer (#20749)
+ - prevent configure script of recent BLAST+ versions from prepending system paths to $PATH (#20751)
+ - fix fastparquet v2023.4.0 using CargoPythonBundle easyblock (#20775)
+ - remove --with-64 from configopts for recent BLAST+ versions (#20784)
+ - add patch to fix build of pdsh 2.34 with Slurm 23.x (#20795)
+- other changes:
+ - move 'build' from extensions to dependencies in easyconfig for napari 0.4.18 (#20433)
+ - update version of fsspec extension in easyconfig for Squidpy 1.4.1 to be compatible with s3fs provided via PyTorch-bundle (#20477)
+ - add commented out PSM2 dependency, relevant for x86_64 systems with OmniPath, to recent libfabric easyconfigs (#20501, #20585, #20794)
+ - replace SQLAlchemy extension with regular dependency in easyconfig for Optuna v3.5.0 (#20510)
+ - replace SQLAlchemy extension in JupyterHub v4.0.2 easyconfig with regular dependency (#20511)
+ - bump Cython to v3.0.8 in Cartopy v0.22.0 easyconfig for foss/2023a toolchain, to avoid dependency version conflict with sckit-learn v1.4.2, which requires Cython >= v3.0.8 (#20525)
+ - change dependency on hatchling of BeautifulSoup v4.12.2 to a build dependency (#20546)
+ - bump async-timeout to 4.0.3 in aiohttp 3.8.5 (#20553)
+ - stick to gfbf/2023a as toolchain for ipympl v0.9.3 (#20586)
+ - rename tornado-timeouts.patch to tornado-6.1_increase-default-timeouts.patch + add missing authorship (#20587)
+ - remove easyconfigs for CellBender v0.3.1, since this version has been redacted due to a serious bug (#20722)
v4.9.1 (5 April 2024)
diff --git a/easybuild/easyconfigs/0/4ti2/4ti2-1.6.10-GCC-13.2.0.eb b/easybuild/easyconfigs/0/4ti2/4ti2-1.6.10-GCC-13.2.0.eb
new file mode 100644
index 00000000000..5bfd73b4635
--- /dev/null
+++ b/easybuild/easyconfigs/0/4ti2/4ti2-1.6.10-GCC-13.2.0.eb
@@ -0,0 +1,30 @@
+easyblock = 'ConfigureMake'
+
+name = '4ti2'
+version = '1.6.10'
+
+homepage = 'https://4ti2.github.io/'
+description = """A software package for algebraic, geometric and combinatorial problems on linear spaces"""
+
+toolchain = {'name': 'GCC', 'version': '13.2.0'}
+
+github_account = '4ti2'
+source_urls = [GITHUB_SOURCE]
+sources = ['Release_%s.tar.gz' % '_'.join(version.split('.'))]
+checksums = ['2f1bce3203da65b651d68cbd0ace0f89a16d1f436cf5f24e22bc15ec22df936a']
+
+dependencies = [
+ ('GMP', '6.3.0'),
+ ('GLPK', '5.0'),
+]
+
+builddependencies = [('Autotools', '20220317')]
+
+preconfigopts = './autogen.sh && '
+
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in ['4ti2gmp', '4ti2int32', '4ti2int64']],
+ 'dirs': ['include/4ti2', 'lib', 'share']
+}
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/a/Autoconf/Autoconf-2.71-FCC-4.5.0.eb b/easybuild/easyconfigs/__archive__/a/Autoconf/Autoconf-2.71-FCC-4.5.0.eb
similarity index 100%
rename from easybuild/easyconfigs/a/Autoconf/Autoconf-2.71-FCC-4.5.0.eb
rename to easybuild/easyconfigs/__archive__/a/Autoconf/Autoconf-2.71-FCC-4.5.0.eb
diff --git a/easybuild/easyconfigs/a/Automake/Automake-1.16.3-FCC-4.5.0.eb b/easybuild/easyconfigs/__archive__/a/Automake/Automake-1.16.3-FCC-4.5.0.eb
similarity index 100%
rename from easybuild/easyconfigs/a/Automake/Automake-1.16.3-FCC-4.5.0.eb
rename to easybuild/easyconfigs/__archive__/a/Automake/Automake-1.16.3-FCC-4.5.0.eb
diff --git a/easybuild/easyconfigs/a/Autotools/Autotools-20210128-FCC-4.5.0.eb b/easybuild/easyconfigs/__archive__/a/Autotools/Autotools-20210128-FCC-4.5.0.eb
similarity index 100%
rename from easybuild/easyconfigs/a/Autotools/Autotools-20210128-FCC-4.5.0.eb
rename to easybuild/easyconfigs/__archive__/a/Autotools/Autotools-20210128-FCC-4.5.0.eb
diff --git a/easybuild/easyconfigs/b/Bison/Bison-3.7.6-FCC-4.5.0.eb b/easybuild/easyconfigs/__archive__/b/Bison/Bison-3.7.6-FCC-4.5.0.eb
similarity index 100%
rename from easybuild/easyconfigs/b/Bison/Bison-3.7.6-FCC-4.5.0.eb
rename to easybuild/easyconfigs/__archive__/b/Bison/Bison-3.7.6-FCC-4.5.0.eb
diff --git a/easybuild/easyconfigs/b/binutils/binutils-2.36.1-FCC-4.5.0.eb b/easybuild/easyconfigs/__archive__/b/binutils/binutils-2.36.1-FCC-4.5.0.eb
similarity index 100%
rename from easybuild/easyconfigs/b/binutils/binutils-2.36.1-FCC-4.5.0.eb
rename to easybuild/easyconfigs/__archive__/b/binutils/binutils-2.36.1-FCC-4.5.0.eb
diff --git a/easybuild/easyconfigs/b/buildenv/buildenv-default-FCC-4.5.0.eb b/easybuild/easyconfigs/__archive__/b/buildenv/buildenv-default-FCC-4.5.0.eb
similarity index 100%
rename from easybuild/easyconfigs/b/buildenv/buildenv-default-FCC-4.5.0.eb
rename to easybuild/easyconfigs/__archive__/b/buildenv/buildenv-default-FCC-4.5.0.eb
diff --git a/easybuild/easyconfigs/b/buildenv/buildenv-default-Fujitsu-21.05.eb b/easybuild/easyconfigs/__archive__/b/buildenv/buildenv-default-Fujitsu-21.05.eb
similarity index 100%
rename from easybuild/easyconfigs/b/buildenv/buildenv-default-Fujitsu-21.05.eb
rename to easybuild/easyconfigs/__archive__/b/buildenv/buildenv-default-Fujitsu-21.05.eb
diff --git a/easybuild/easyconfigs/d/DB/DB-18.1.40-FCC-4.5.0.eb b/easybuild/easyconfigs/__archive__/d/DB/DB-18.1.40-FCC-4.5.0.eb
similarity index 100%
rename from easybuild/easyconfigs/d/DB/DB-18.1.40-FCC-4.5.0.eb
rename to easybuild/easyconfigs/__archive__/d/DB/DB-18.1.40-FCC-4.5.0.eb
diff --git a/easybuild/easyconfigs/e/expat/expat-2.2.9-FCC-4.5.0.eb b/easybuild/easyconfigs/__archive__/e/expat/expat-2.2.9-FCC-4.5.0.eb
similarity index 100%
rename from easybuild/easyconfigs/e/expat/expat-2.2.9-FCC-4.5.0.eb
rename to easybuild/easyconfigs/__archive__/e/expat/expat-2.2.9-FCC-4.5.0.eb
diff --git a/easybuild/easyconfigs/f/FCC/FCC-4.5.0.eb b/easybuild/easyconfigs/__archive__/f/FCC/FCC-4.5.0.eb
similarity index 100%
rename from easybuild/easyconfigs/f/FCC/FCC-4.5.0.eb
rename to easybuild/easyconfigs/__archive__/f/FCC/FCC-4.5.0.eb
diff --git a/easybuild/easyconfigs/f/FFTW/FFTW-1.0.0-FCC-4.5.0-fujitsu.eb b/easybuild/easyconfigs/__archive__/f/FFTW/FFTW-1.0.0-FCC-4.5.0-fujitsu.eb
similarity index 100%
rename from easybuild/easyconfigs/f/FFTW/FFTW-1.0.0-FCC-4.5.0-fujitsu.eb
rename to easybuild/easyconfigs/__archive__/f/FFTW/FFTW-1.0.0-FCC-4.5.0-fujitsu.eb
diff --git a/easybuild/easyconfigs/f/Fujitsu/Fujitsu-21.05.eb b/easybuild/easyconfigs/__archive__/f/Fujitsu/Fujitsu-21.05.eb
similarity index 100%
rename from easybuild/easyconfigs/f/Fujitsu/Fujitsu-21.05.eb
rename to easybuild/easyconfigs/__archive__/f/Fujitsu/Fujitsu-21.05.eb
diff --git a/easybuild/easyconfigs/f/ffmpi/ffmpi-4.5.0.eb b/easybuild/easyconfigs/__archive__/f/ffmpi/ffmpi-4.5.0.eb
similarity index 100%
rename from easybuild/easyconfigs/f/ffmpi/ffmpi-4.5.0.eb
rename to easybuild/easyconfigs/__archive__/f/ffmpi/ffmpi-4.5.0.eb
diff --git a/easybuild/easyconfigs/f/flex/flex-2.6.4-FCC-4.5.0.eb b/easybuild/easyconfigs/__archive__/f/flex/flex-2.6.4-FCC-4.5.0.eb
similarity index 100%
rename from easybuild/easyconfigs/f/flex/flex-2.6.4-FCC-4.5.0.eb
rename to easybuild/easyconfigs/__archive__/f/flex/flex-2.6.4-FCC-4.5.0.eb
diff --git a/easybuild/easyconfigs/g/groff/groff-1.22.4-FCC-4.5.0.eb b/easybuild/easyconfigs/__archive__/g/groff/groff-1.22.4-FCC-4.5.0.eb
similarity index 100%
rename from easybuild/easyconfigs/g/groff/groff-1.22.4-FCC-4.5.0.eb
rename to easybuild/easyconfigs/__archive__/g/groff/groff-1.22.4-FCC-4.5.0.eb
diff --git a/easybuild/easyconfigs/h/HPL/HPL-2.3-Fujitsu-21.05.eb b/easybuild/easyconfigs/__archive__/h/HPL/HPL-2.3-Fujitsu-21.05.eb
similarity index 100%
rename from easybuild/easyconfigs/h/HPL/HPL-2.3-Fujitsu-21.05.eb
rename to easybuild/easyconfigs/__archive__/h/HPL/HPL-2.3-Fujitsu-21.05.eb
diff --git a/easybuild/easyconfigs/h/help2man/help2man-1.48.3-FCC-4.5.0.eb b/easybuild/easyconfigs/__archive__/h/help2man/help2man-1.48.3-FCC-4.5.0.eb
similarity index 100%
rename from easybuild/easyconfigs/h/help2man/help2man-1.48.3-FCC-4.5.0.eb
rename to easybuild/easyconfigs/__archive__/h/help2man/help2man-1.48.3-FCC-4.5.0.eb
diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-8.1-FCC-4.5.0.eb b/easybuild/easyconfigs/__archive__/l/libreadline/libreadline-8.1-FCC-4.5.0.eb
similarity index 100%
rename from easybuild/easyconfigs/l/libreadline/libreadline-8.1-FCC-4.5.0.eb
rename to easybuild/easyconfigs/__archive__/l/libreadline/libreadline-8.1-FCC-4.5.0.eb
diff --git a/easybuild/easyconfigs/l/libtool/libtool-2.4.6-FCC-4.5.0.eb b/easybuild/easyconfigs/__archive__/l/libtool/libtool-2.4.6-FCC-4.5.0.eb
similarity index 100%
rename from easybuild/easyconfigs/l/libtool/libtool-2.4.6-FCC-4.5.0.eb
rename to easybuild/easyconfigs/__archive__/l/libtool/libtool-2.4.6-FCC-4.5.0.eb
diff --git a/easybuild/easyconfigs/m/M4/M4-1.4.18-FCC-4.5.0.eb b/easybuild/easyconfigs/__archive__/m/M4/M4-1.4.18-FCC-4.5.0.eb
similarity index 100%
rename from easybuild/easyconfigs/m/M4/M4-1.4.18-FCC-4.5.0.eb
rename to easybuild/easyconfigs/__archive__/m/M4/M4-1.4.18-FCC-4.5.0.eb
diff --git a/easybuild/easyconfigs/m/makeinfo/makeinfo-6.7-FCC-4.5.0.eb b/easybuild/easyconfigs/__archive__/m/makeinfo/makeinfo-6.7-FCC-4.5.0.eb
similarity index 100%
rename from easybuild/easyconfigs/m/makeinfo/makeinfo-6.7-FCC-4.5.0.eb
rename to easybuild/easyconfigs/__archive__/m/makeinfo/makeinfo-6.7-FCC-4.5.0.eb
diff --git a/easybuild/easyconfigs/n/ncurses/ncurses-6.2-FCC-4.5.0.eb b/easybuild/easyconfigs/__archive__/n/ncurses/ncurses-6.2-FCC-4.5.0.eb
similarity index 100%
rename from easybuild/easyconfigs/n/ncurses/ncurses-6.2-FCC-4.5.0.eb
rename to easybuild/easyconfigs/__archive__/n/ncurses/ncurses-6.2-FCC-4.5.0.eb
diff --git a/easybuild/easyconfigs/o/OSU-Micro-Benchmarks/OSU-Micro-Benchmarks-5.7.1-ffmpi-4.5.0.eb b/easybuild/easyconfigs/__archive__/o/OSU-Micro-Benchmarks/OSU-Micro-Benchmarks-5.7.1-ffmpi-4.5.0.eb
similarity index 100%
rename from easybuild/easyconfigs/o/OSU-Micro-Benchmarks/OSU-Micro-Benchmarks-5.7.1-ffmpi-4.5.0.eb
rename to easybuild/easyconfigs/__archive__/o/OSU-Micro-Benchmarks/OSU-Micro-Benchmarks-5.7.1-ffmpi-4.5.0.eb
diff --git a/easybuild/easyconfigs/p/Perl/Perl-5.32.1-FCC-4.5.0.eb b/easybuild/easyconfigs/__archive__/p/Perl/Perl-5.32.1-FCC-4.5.0.eb
similarity index 99%
rename from easybuild/easyconfigs/p/Perl/Perl-5.32.1-FCC-4.5.0.eb
rename to easybuild/easyconfigs/__archive__/p/Perl/Perl-5.32.1-FCC-4.5.0.eb
index 7081ac17a66..d70fd1c84b2 100644
--- a/easybuild/easyconfigs/p/Perl/Perl-5.32.1-FCC-4.5.0.eb
+++ b/easybuild/easyconfigs/__archive__/p/Perl/Perl-5.32.1-FCC-4.5.0.eb
@@ -236,7 +236,12 @@ exts_list = [
('File::Spec', '3.75', {
'source_tmpl': 'PathTools-%(version)s.tar.gz',
'source_urls': ['https://cpan.metacpan.org/authors/id/X/XS/XSAWYERX'],
- 'checksums': ['a558503aa6b1f8c727c0073339081a77888606aa701ada1ad62dd9d8c3f945a2'],
+ 'patches': ['PathTools-3.75_fix-cwd_enoent-test.patch'],
+ 'checksums': [
+ 'a558503aa6b1f8c727c0073339081a77888606aa701ada1ad62dd9d8c3f945a2',
+ {'PathTools-3.75_fix-cwd_enoent-test.patch':
+ '7a456a99d9b04a36359f3623f0deef8fe7f472c742f99cdcf0215c50afbbe7b1'},
+ ],
}),
('Test::Simple', '1.302183', {
'source_tmpl': 'Test-Simple-%(version)s.tar.gz',
@@ -1667,7 +1672,12 @@ exts_list = [
('Cwd', '3.75', {
'source_tmpl': 'PathTools-%(version)s.tar.gz',
'source_urls': ['https://cpan.metacpan.org/authors/id/X/XS/XSAWYERX'],
- 'checksums': ['a558503aa6b1f8c727c0073339081a77888606aa701ada1ad62dd9d8c3f945a2'],
+ 'patches': ['PathTools-3.75_fix-cwd_enoent-test.patch'],
+ 'checksums': [
+ 'a558503aa6b1f8c727c0073339081a77888606aa701ada1ad62dd9d8c3f945a2',
+ {'PathTools-3.75_fix-cwd_enoent-test.patch':
+ '7a456a99d9b04a36359f3623f0deef8fe7f472c742f99cdcf0215c50afbbe7b1'},
+ ],
}),
('MIME::Base64', '3.16', {
'source_tmpl': 'MIME-Base64-%(version)s.tar.gz',
diff --git a/easybuild/easyconfigs/z/zlib/zlib-1.2.11-FCC-4.5.0.eb b/easybuild/easyconfigs/__archive__/z/zlib/zlib-1.2.11-FCC-4.5.0.eb
similarity index 100%
rename from easybuild/easyconfigs/z/zlib/zlib-1.2.11-FCC-4.5.0.eb
rename to easybuild/easyconfigs/__archive__/z/zlib/zlib-1.2.11-FCC-4.5.0.eb
diff --git a/easybuild/easyconfigs/a/ABRicate/ABRicate-1.0.0-gompi-2023a.eb b/easybuild/easyconfigs/a/ABRicate/ABRicate-1.0.0-gompi-2023a.eb
new file mode 100644
index 00000000000..b21e8fda565
--- /dev/null
+++ b/easybuild/easyconfigs/a/ABRicate/ABRicate-1.0.0-gompi-2023a.eb
@@ -0,0 +1,41 @@
+# Author: Pavel Grochal (INUITS)
+# License: GPLv2
+
+easyblock = 'Tarball'
+
+name = 'ABRicate'
+version = '1.0.0'
+
+homepage = 'https://github.com/tseemann/abricate'
+description = "Mass screening of contigs for antimicrobial and virulence genes"
+
+toolchain = {'name': 'gompi', 'version': '2023a'}
+
+# https://github.com/tseemann/abricate
+github_account = 'tseemann'
+source_urls = [GITHUB_LOWER_SOURCE]
+sources = ['v%(version)s.zip']
+checksums = ['e7e2af45e47b887c4dba754af87a24014dcb5552eb3fe2a3fd66bb5359a0daf9']
+
+dependencies = [
+ ('Perl', '5.36.1'),
+ ('any2fasta', '0.4.2'),
+ ('BioPerl', '1.7.8'),
+ ('BLAST+', '2.14.1'),
+]
+
+postinstallcmds = ['%(installdir)s/bin/abricate --setupdb']
+
+sanity_check_paths = {
+ 'files': ['bin/abricate', 'bin/abricate-get_db'],
+ 'dirs': ['db'],
+}
+
+sanity_check_commands = [
+ "abricate --help",
+ "abricate --list",
+]
+
+modloadmsg = "abricate databases are located in $EBROOTABRICATE/db\n"
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/a/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-12.3.0-Java-11.eb b/easybuild/easyconfigs/a/ANTLR/ANTLR-2.7.7-GCCcore-12.3.0-Java-11.eb
new file mode 100644
index 00000000000..4f76242d899
--- /dev/null
+++ b/easybuild/easyconfigs/a/ANTLR/ANTLR-2.7.7-GCCcore-12.3.0-Java-11.eb
@@ -0,0 +1,36 @@
+easyblock = 'ConfigureMake'
+
+name = 'ANTLR'
+version = '2.7.7'
+versionsuffix = '-Java-%(javaver)s'
+
+homepage = 'https://www.antlr2.org/'
+description = """ANTLR, ANother Tool for Language Recognition, (formerly PCCTS)
+ is a language tool that provides a framework for constructing recognizers,
+ compilers, and translators from grammatical descriptions containing
+ Java, C#, C++, or Python actions."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = ['https://www.antlr2.org/download/']
+sources = [SOURCELOWER_TAR_GZ]
+patches = ['%(name)s-%(version)s_includes.patch']
+checksums = [
+ '853aeb021aef7586bda29e74a6b03006bcb565a755c86b66032d8ec31b67dbb9', # antlr-2.7.7.tar.gz
+ 'd167d3248a03301bc93efcb37d5df959aae6794968e42231af0b0dd26d6a2e66', # ANTLR-2.7.7_includes.patch
+]
+
+builddependencies = [('binutils', '2.40')]
+
+dependencies = [('Java', '11', '', SYSTEM)]
+
+configopts = '--disable-examples --disable-csharp --disable-python'
+
+sanity_check_paths = {
+ 'files': ['bin/antlr', 'bin/antlr-config'],
+ 'dirs': ['include'],
+}
+
+sanity_check_commands = ["antlr --help"]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/a/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/APOST3D/APOST3D-20240527-intel-compilers-2023.1.0.eb b/easybuild/easyconfigs/a/APOST3D/APOST3D-20240527-intel-compilers-2023.1.0.eb
new file mode 100644
index 00000000000..c5c4c40ac5b
--- /dev/null
+++ b/easybuild/easyconfigs/a/APOST3D/APOST3D-20240527-intel-compilers-2023.1.0.eb
@@ -0,0 +1,51 @@
+easyblock = 'CmdCp'
+
+name = 'APOST3D'
+version = '20240527'
+local_commit = 'e06c8b0'
+
+description = """
+Open-source APOST-3D software features a large number of wavefunction analysis tools developed
+over the past 20 years, aiming at connecting classical chemical concepts with the electronic
+structure of molecules. APOST-3D relies on the identification of the atom in the molecule
+(AIM), and several analysis tools are implemented in the most general way so that they can be
+used in combination with any chosen AIM.
+A Fortran-based code developed at the Universitat de Girona (UdG) by P. Salvador and collaborators.
+"""
+homepage = 'https://github.com/mgimferrer/APOST3D'
+
+toolchain = {'name': 'intel-compilers', 'version': '2023.1.0'}
+
+builddependencies = [
+ ('make', '4.4.1'),
+]
+
+source_urls = ['https://github.com/mgimferrer/APOST3D/archive']
+sources = [{'download_filename': '%s.tar.gz' % local_commit, 'filename': SOURCE_TAR_GZ}]
+checksums = ['1eb9a0f97b4dd135b782b96cadc37b3acfc27c69521cf3aab6cc10d4fc9292af']
+
+local_cmds = ' export APOST3D_PATH=%(start_dir)s && '
+# Compile provided Libxc version 4.2.3
+# (it is not possible to couple APOST-3D with newer Libxc libraries):
+local_cmds += 'bash compile_libxc.sh && '
+# Compile
+local_cmds += 'make -f Makefile_profgen && '
+# Run test calculations on single-processor:
+local_cmds += 'bash compiler-runtest && '
+# Recompile using info geneated in previous step
+local_cmds += 'make -f Makefile_profuse && '
+# Run test calculations in parallel:
+local_cmds += 'bash compiler-runtest2'
+
+cmds_map = [('.*', local_cmds)]
+
+local_bin_files = ['apost3d', 'apost3d-eos', 'eos_aom']
+
+files_to_copy = [(local_bin_files, 'bin')]
+
+sanity_check_paths = {
+ 'files': ['bin/%s' % f for f in local_bin_files],
+ 'dirs': [''],
+}
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/a/APR-util/APR-util-1.6.3-GCCcore-13.3.0.eb b/easybuild/easyconfigs/a/APR-util/APR-util-1.6.3-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..fc5f92c2b70
--- /dev/null
+++ b/easybuild/easyconfigs/a/APR-util/APR-util-1.6.3-GCCcore-13.3.0.eb
@@ -0,0 +1,32 @@
+easyblock = 'ConfigureMake'
+
+name = 'APR-util'
+version = '1.6.3'
+
+homepage = 'https://apr.apache.org/'
+description = "Apache Portable Runtime (APR) util libraries."
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://archive.apache.org/dist/apr/']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['2b74d8932703826862ca305b094eef2983c27b39d5c9414442e9976a9acf1983']
+
+builddependencies = [('binutils', '2.42')]
+
+dependencies = [
+ ('APR', '1.7.4'),
+ ('SQLite', '3.45.3'),
+ ('expat', '2.6.2'),
+]
+
+configopts = "--with-apr=$EBROOTAPR/bin/apr-1-config --with-sqlite3=$EBROOTSQLITE --with-expat=$EBROOTEXPAT "
+
+sanity_check_paths = {
+ 'files': ["bin/apu-1-config", "lib/libaprutil-1.%s" % SHLIB_EXT, "lib/libaprutil-1.a"],
+ 'dirs': ["include/apr-1"],
+}
+
+parallel = 1
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/a/APR/APR-1.7.4-GCCcore-13.3.0.eb b/easybuild/easyconfigs/a/APR/APR-1.7.4-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..8ac5ed02a98
--- /dev/null
+++ b/easybuild/easyconfigs/a/APR/APR-1.7.4-GCCcore-13.3.0.eb
@@ -0,0 +1,22 @@
+easyblock = 'ConfigureMake'
+
+name = 'APR'
+version = '1.7.4'
+
+homepage = 'https://apr.apache.org/'
+description = "Apache Portable Runtime (APR) libraries."
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://archive.apache.org/dist/apr/']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['a4137dd82a185076fa50ba54232d920a17c6469c30b0876569e1c2a05ff311d9']
+
+builddependencies = [('binutils', '2.42')]
+
+sanity_check_paths = {
+ 'files': ["bin/apr-1-config", "lib/libapr-1.%s" % SHLIB_EXT, "lib/libapr-1.a"],
+ 'dirs': ["include/apr-1"],
+}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/a/ASE/ASE-3.23.0-gfbf-2023a.eb b/easybuild/easyconfigs/a/ASE/ASE-3.23.0-gfbf-2023a.eb
new file mode 100644
index 00000000000..554779e99cc
--- /dev/null
+++ b/easybuild/easyconfigs/a/ASE/ASE-3.23.0-gfbf-2023a.eb
@@ -0,0 +1,48 @@
+easyblock = 'PythonBundle'
+
+name = 'ASE'
+version = '3.23.0'
+
+homepage = 'https://wiki.fysik.dtu.dk/ase'
+description = """ASE is a python package providing an open source Atomic Simulation Environment
+ in the Python scripting language.
+
+From version 3.20.1 we also include the ase-ext package, it contains optional reimplementations
+in C of functions in ASE. ASE uses it automatically when installed."""
+
+toolchain = {'name': 'gfbf', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('SciPy-bundle', '2023.07'),
+ ('Flask', '2.3.3'),
+ ('matplotlib', '3.7.2'),
+ ('Tkinter', '%(pyver)s'), # Needed by GUI of ASE
+ ('spglib-python', '2.1.0'), # optional
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('pytest-mock', '3.11.1', {
+ 'checksums': ['7f6b125602ac6d743e523ae0bfa71e1a697a2f5534064528c6ff84c2f7c2fc7f'],
+ }),
+ ('ase', version, {
+ 'checksums': ['91a2aa31d89bd90b0efdfe4a7e84264f32828b2abfc9f38e65e041ad76fec8ae'],
+ }),
+ ('ase-ext', '20.9.0', {
+ 'checksums': ['a348b0e42cf9fdd11f04b3df002b0bf150002c8df2698ff08d3c8fc7a1223aed'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/ase'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+# make sure Tkinter is available, otherwise 'ase gui' will not work
+sanity_check_commands = ["python -c 'import tkinter' "]
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/a/ASE/ASE-3.23.0-gfbf-2023b.eb b/easybuild/easyconfigs/a/ASE/ASE-3.23.0-gfbf-2023b.eb
new file mode 100644
index 00000000000..07ad1ecc555
--- /dev/null
+++ b/easybuild/easyconfigs/a/ASE/ASE-3.23.0-gfbf-2023b.eb
@@ -0,0 +1,48 @@
+easyblock = 'PythonBundle'
+
+name = 'ASE'
+version = '3.23.0'
+
+homepage = 'https://wiki.fysik.dtu.dk/ase'
+description = """ASE is a python package providing an open source Atomic Simulation Environment
+ in the Python scripting language.
+
+From version 3.20.1 we also include the ase-ext package, it contains optional reimplementations
+in C of functions in ASE. ASE uses it automatically when installed."""
+
+toolchain = {'name': 'gfbf', 'version': '2023b'}
+
+dependencies = [
+ ('Python', '3.11.5'),
+ ('Python-bundle-PyPI', '2023.10'),
+ ('SciPy-bundle', '2023.11'),
+ ('Flask', '3.0.0'),
+ ('matplotlib', '3.8.2'),
+ ('Tkinter', '%(pyver)s'), # Needed by GUI of ASE
+ ('spglib-python', '2.5.0'), # optional
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('pytest-mock', '3.14.0', {
+ 'checksums': ['2719255a1efeceadbc056d6bf3df3d1c5015530fb40cf347c0f9afac88410bd0'],
+ }),
+ ('ase', version, {
+ 'checksums': ['91a2aa31d89bd90b0efdfe4a7e84264f32828b2abfc9f38e65e041ad76fec8ae'],
+ }),
+ ('ase-ext', '20.9.0', {
+ 'checksums': ['a348b0e42cf9fdd11f04b3df002b0bf150002c8df2698ff08d3c8fc7a1223aed'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/ase'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+# make sure Tkinter is available, otherwise 'ase gui' will not work
+sanity_check_commands = ["python -c 'import tkinter' "]
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/a/ASE/ASE-3.23.0-gfbf-2024a.eb b/easybuild/easyconfigs/a/ASE/ASE-3.23.0-gfbf-2024a.eb
new file mode 100644
index 00000000000..472ebbb24b2
--- /dev/null
+++ b/easybuild/easyconfigs/a/ASE/ASE-3.23.0-gfbf-2024a.eb
@@ -0,0 +1,48 @@
+easyblock = 'PythonBundle'
+
+name = 'ASE'
+version = '3.23.0'
+
+homepage = 'https://wiki.fysik.dtu.dk/ase'
+description = """ASE is a python package providing an open source Atomic Simulation Environment
+ in the Python scripting language.
+
+From version 3.20.1 we also include the ase-ext package, it contains optional reimplementations
+in C of functions in ASE. ASE uses it automatically when installed."""
+
+toolchain = {'name': 'gfbf', 'version': '2024a'}
+
+dependencies = [
+ ('Python', '3.12.3'),
+ ('Python-bundle-PyPI', '2024.06'),
+ ('SciPy-bundle', '2024.05'),
+ ('Flask', '3.0.3'),
+ ('matplotlib', '3.9.2'),
+ ('Tkinter', '%(pyver)s'), # Needed by GUI of ASE
+ ('spglib-python', '2.5.0'), # optional
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('pytest-mock', '3.14.0', {
+ 'checksums': ['2719255a1efeceadbc056d6bf3df3d1c5015530fb40cf347c0f9afac88410bd0'],
+ }),
+ ('ase', version, {
+ 'checksums': ['91a2aa31d89bd90b0efdfe4a7e84264f32828b2abfc9f38e65e041ad76fec8ae'],
+ }),
+ ('ase-ext', '20.9.0', {
+ 'checksums': ['a348b0e42cf9fdd11f04b3df002b0bf150002c8df2698ff08d3c8fc7a1223aed'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/ase'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+# make sure Tkinter is available, otherwise 'ase gui' will not work
+sanity_check_commands = ["python -c 'import tkinter' "]
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/a/ASE/ASE-3.23.0-iimkl-2023a.eb b/easybuild/easyconfigs/a/ASE/ASE-3.23.0-iimkl-2023a.eb
new file mode 100644
index 00000000000..f8bbed9f583
--- /dev/null
+++ b/easybuild/easyconfigs/a/ASE/ASE-3.23.0-iimkl-2023a.eb
@@ -0,0 +1,48 @@
+easyblock = 'PythonBundle'
+
+name = 'ASE'
+version = '3.23.0'
+
+homepage = 'https://wiki.fysik.dtu.dk/ase'
+description = """ASE is a python package providing an open source Atomic Simulation Environment
+ in the Python scripting language.
+
+From version 3.20.1 we also include the ase-ext package, it contains optional reimplementations
+in C of functions in ASE. ASE uses it automatically when installed."""
+
+toolchain = {'name': 'iimkl', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('SciPy-bundle', '2023.07'),
+ ('Flask', '2.3.3'),
+ ('matplotlib', '3.7.2'),
+ ('Tkinter', '%(pyver)s'), # Needed by GUI of ASE
+ ('spglib-python', '2.1.0'), # optional
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('pytest-mock', '3.11.1', {
+ 'checksums': ['7f6b125602ac6d743e523ae0bfa71e1a697a2f5534064528c6ff84c2f7c2fc7f'],
+ }),
+ ('ase', version, {
+ 'checksums': ['91a2aa31d89bd90b0efdfe4a7e84264f32828b2abfc9f38e65e041ad76fec8ae'],
+ }),
+ ('ase-ext', '20.9.0', {
+ 'checksums': ['a348b0e42cf9fdd11f04b3df002b0bf150002c8df2698ff08d3c8fc7a1223aed'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/ase'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+# make sure Tkinter is available, otherwise 'ase gui' will not work
+sanity_check_commands = ["python -c 'import tkinter' "]
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/a/ATK/ATK-2.38.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/a/ATK/ATK-2.38.0-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..506079ce98c
--- /dev/null
+++ b/easybuild/easyconfigs/a/ATK/ATK-2.38.0-GCCcore-13.3.0.eb
@@ -0,0 +1,39 @@
+easyblock = 'MesonNinja'
+
+name = 'ATK'
+version = '2.38.0'
+
+homepage = 'https://developer.gnome.org/atk/'
+description = """
+ ATK provides the set of accessibility interfaces that are implemented by other
+ toolkits and applications. Using the ATK interfaces, accessibility tools have
+ full access to view and control running applications.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = [FTPGNOME_SOURCE]
+sources = [SOURCELOWER_TAR_XZ]
+checksums = ['ac4de2a4ef4bd5665052952fe169657e65e895c5057dffb3c2a810f6191a0c36']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('Meson', '1.4.0'),
+ ('Ninja', '1.12.1'),
+ ('pkgconf', '2.2.0'),
+ ('GObject-Introspection', '1.80.1'),
+]
+
+dependencies = [
+ ('GLib', '2.80.4'),
+]
+
+configopts = "--buildtype=release --default-library=both "
+configopts += "-Dintrospection=true "
+
+sanity_check_paths = {
+ 'files': ['lib/libatk-1.0.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/a/AUGUSTUS/AUGUSTUS-3.5.0-foss-2023a.eb b/easybuild/easyconfigs/a/AUGUSTUS/AUGUSTUS-3.5.0-foss-2023a.eb
new file mode 100644
index 00000000000..2c31ade2eb0
--- /dev/null
+++ b/easybuild/easyconfigs/a/AUGUSTUS/AUGUSTUS-3.5.0-foss-2023a.eb
@@ -0,0 +1,74 @@
+# Updated by: Pavel Grochal (INUITS)
+# License: GPLv2
+# Update: Petr Král (INUITS)
+
+easyblock = 'ConfigureMake'
+
+name = 'AUGUSTUS'
+version = '3.5.0'
+
+homepage = 'https://bioinf.uni-greifswald.de/augustus/'
+description = "AUGUSTUS is a program that predicts genes in eukaryotic genomic sequences"
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+github_account = 'Gaius-Augustus'
+source_urls = [GITHUB_SOURCE]
+sources = ['v%(version)s.tar.gz']
+checksums = ['5ed6ce6106303b800c5e91d37a250baff43b20824657b853ae04d11ad8bdd686']
+
+builddependencies = [
+ ('Python', '3.11.3'),
+]
+
+dependencies = [
+ ('zlib', '1.2.13'),
+ ('Boost', '1.82.0'),
+ ('GSL', '2.7'),
+ ('SAMtools', '1.18'),
+ ('HTSlib', '1.18'), # also provides tabix
+ ('BCFtools', '1.18'),
+ ('lpsolve', '5.5.2.11'),
+ ('SuiteSparse', '7.1.0'),
+ ('BamTools', '2.5.2'),
+ ('SQLite', '3.42.0'),
+]
+
+skipsteps = ['configure']
+
+# run "make clean" to avoid using binaries included with the source tarball
+prebuildopts = "make clean && "
+
+_tmpl = 'INCLUDE_PATH_{dep}=-I{root}{incl} LIBRARY_PATH_{dep}="-L{root}{lib} -Wl,-rpath,{root}{lib}"'
+
+buildopts = ' '.join([
+ 'COMPGENEPRED=true SQLITE=true ZIPINPUT=true MYSQL=false CXX="$CXX" ',
+ _tmpl.format(dep='ZLIB', root='$EBROOTZLIB', incl='/include', lib='/lib'),
+ _tmpl.format(dep='BOOST', root='$EBROOTBOOST', incl='/include', lib='/lib'),
+ _tmpl.format(dep='LPSOLVE', root='$EBROOTLPSOLVE', incl='/include', lib='/lib'),
+ _tmpl.format(dep='SUITESPARSE', root='$EBROOTSUITESPARSE', incl='/include', lib='/lib'),
+ _tmpl.format(dep='GSL', root='$EBROOTGSL', incl='/include', lib='/lib'),
+ _tmpl.format(dep='SQLITE', root='$EBROOTSQLITE', incl='/include', lib='/lib'),
+ _tmpl.format(dep='BAMTOOLS', root='$EBROOTBAMTOOLS', incl='/include/bamtools', lib='/lib'),
+ _tmpl.format(dep='HTSLIB', root='$EBROOTHTSLIB', incl='/include/htslib', lib='/lib'),
+])
+
+preinstallopts = "sed -i '/ln -sf/d' Makefile && "
+installopts = 'INSTALLDIR=%(installdir)s '
+
+sanity_check_paths = {
+ 'files': ['bin/augustus', 'bin/bam2hints', 'bin/etraining', 'bin/fastBlockSearch',
+ 'bin/filterBam', 'bin/getSeq', 'bin/homGeneMapping', 'bin/joingenes',
+ 'bin/load2sqlitedb', 'bin/prepareAlign'],
+ 'dirs': ['config', 'scripts'],
+}
+sanity_check_commands = ['augustus --help']
+
+modextrapaths = {'PATH': 'scripts'}
+modextravars = {
+ 'AUGUSTUS_BIN_PATH': '%(installdir)s/bin',
+ 'AUGUSTUS_CONFIG_PATH': '%(installdir)s/config',
+ 'AUGUSTUS_SCRIPTS_PATH': '%(installdir)s/scripts',
+}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/a/Abseil/Abseil-20240722.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/a/Abseil/Abseil-20240722.0-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..24951c68814
--- /dev/null
+++ b/easybuild/easyconfigs/a/Abseil/Abseil-20240722.0-GCCcore-13.3.0.eb
@@ -0,0 +1,34 @@
+easyblock = 'CMakeMake'
+
+name = 'Abseil'
+version = '20240722.0'
+
+homepage = 'https://abseil.io/'
+description = """Abseil is an open-source collection of C++ library code designed to augment the
+C++ standard library. The Abseil library code is collected from Google's own
+C++ code base, has been extensively tested and used in production, and is the
+same code we depend on in our daily coding lives."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = [
+ 'https://github.com/%(namelower)s/%(namelower)s-cpp/archive/refs/tags']
+sources = ['%(version)s.tar.gz']
+checksums = ['f50e5ac311a81382da7fa75b97310e4b9006474f9560ac46f54a9967f07d4ae3']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('CMake', '3.29.3'),
+]
+
+configopts = "-DABSL_PROPAGATE_CXX_STD=ON "
+
+build_shared_libs = True
+
+sanity_check_paths = {
+ 'files': ['lib/libabsl_base.' + SHLIB_EXT],
+ 'dirs': ['include/absl'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/a/Advisor/Advisor-2019_update2.eb b/easybuild/easyconfigs/a/Advisor/Advisor-2019_update2.eb
index 24ce3fe1c31..2e121781a46 100644
--- a/easybuild/easyconfigs/a/Advisor/Advisor-2019_update2.eb
+++ b/easybuild/easyconfigs/a/Advisor/Advisor-2019_update2.eb
@@ -10,7 +10,7 @@ description = """Vectorization Optimization and Thread Prototyping
toolchain = SYSTEM
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15084/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15084/']
sources = ['advisor_%(version)s.tar.gz']
checksums = ['b63e11b0601013ad21789869ad76be5a836da566ee47c125dcda19ff8277de77']
diff --git a/easybuild/easyconfigs/a/Advisor/Advisor-2019_update3.eb b/easybuild/easyconfigs/a/Advisor/Advisor-2019_update3.eb
index a9f9a888154..7b025287362 100644
--- a/easybuild/easyconfigs/a/Advisor/Advisor-2019_update3.eb
+++ b/easybuild/easyconfigs/a/Advisor/Advisor-2019_update3.eb
@@ -10,7 +10,7 @@ description = """Vectorization Optimization and Thread Prototyping
toolchain = SYSTEM
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15206/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15206/']
sources = ['advisor_%(version)s.tar.gz']
checksums = ['6597f165dee3c6444eb0f38a9069327d10584b09555f5d2c4ed86b8f84d980bb']
diff --git a/easybuild/easyconfigs/a/Advisor/Advisor-2019_update5.eb b/easybuild/easyconfigs/a/Advisor/Advisor-2019_update5.eb
index 6a0d2fa4ece..cbcdab88d6e 100644
--- a/easybuild/easyconfigs/a/Advisor/Advisor-2019_update5.eb
+++ b/easybuild/easyconfigs/a/Advisor/Advisor-2019_update5.eb
@@ -10,7 +10,7 @@ description = """Vectorization Optimization and Thread Prototyping
toolchain = SYSTEM
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15825/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15825/']
sources = ['advisor_%(version)s.tar.gz']
checksums = ['3f203ee63df37e87423fdd4cbeb5ec027b3d11e50c9121935f8b323dd635e866']
diff --git a/easybuild/easyconfigs/a/Advisor/Advisor-2021.2.0.eb b/easybuild/easyconfigs/a/Advisor/Advisor-2021.2.0.eb
index 2a7de357e47..144362e2eb7 100644
--- a/easybuild/easyconfigs/a/Advisor/Advisor-2021.2.0.eb
+++ b/easybuild/easyconfigs/a/Advisor/Advisor-2021.2.0.eb
@@ -13,7 +13,7 @@ description = """Vectorization Optimization and Thread Prototyping
toolchain = SYSTEM
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/17730/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/17730/']
sources = ['l_oneapi_advisor_p_%(version)s.189_offline.sh']
checksums = ['9d9e9aa11819e6422f732de0e29e70a164e576254504857713cfec90b6b78664']
diff --git a/easybuild/easyconfigs/a/Advisor/Advisor-2021.4.0.eb b/easybuild/easyconfigs/a/Advisor/Advisor-2021.4.0.eb
index 55354cc6e25..ec07e00e07e 100644
--- a/easybuild/easyconfigs/a/Advisor/Advisor-2021.4.0.eb
+++ b/easybuild/easyconfigs/a/Advisor/Advisor-2021.4.0.eb
@@ -13,7 +13,7 @@ description = """Vectorization Optimization and Thread Prototyping
toolchain = SYSTEM
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/18220/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/18220/']
sources = ['l_oneapi_advisor_p_%(version)s.389_offline.sh']
checksums = ['dd948f7312629d9975e12a57664f736b8e011de948771b4c05ad444438532be8']
diff --git a/easybuild/easyconfigs/a/Advisor/Advisor-2022.1.0.eb b/easybuild/easyconfigs/a/Advisor/Advisor-2022.1.0.eb
index 58235ccff90..34a2115a37c 100644
--- a/easybuild/easyconfigs/a/Advisor/Advisor-2022.1.0.eb
+++ b/easybuild/easyconfigs/a/Advisor/Advisor-2022.1.0.eb
@@ -13,7 +13,7 @@ description = """Vectorization Optimization and Thread Prototyping
toolchain = SYSTEM
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/18730/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/18730/']
sources = ['l_oneapi_advisor_p_%(version)s.171_offline.sh']
checksums = ['b627dbfefa779b44e7ab40dfa37614e56caa6e245feaed402d51826e6a7cb73b']
diff --git a/easybuild/easyconfigs/a/Advisor/Advisor-2023.0.0.eb b/easybuild/easyconfigs/a/Advisor/Advisor-2023.0.0.eb
index 187fcafa180..e6d811a03a0 100644
--- a/easybuild/easyconfigs/a/Advisor/Advisor-2023.0.0.eb
+++ b/easybuild/easyconfigs/a/Advisor/Advisor-2023.0.0.eb
@@ -11,7 +11,7 @@ description = """Vectorization Optimization and Thread Prototyping
toolchain = SYSTEM
source_urls = [
- 'https://registrationcenter-download.intel.com/akdlm/irc_nas/19094/']
+ 'https://registrationcenter-download.intel.com/akdlm/IRC_NAS/19094/']
sources = ['l_oneapi_advisor_p_%(version)s.25338_offline.sh']
checksums = ['5d8ef163f70ee3dc42b13642f321d974f49915d55914ba1ca9177ed29b100b9d']
diff --git a/easybuild/easyconfigs/a/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/Albumentations/Albumentations-1.4.0-foss-2023a.eb b/easybuild/easyconfigs/a/Albumentations/Albumentations-1.4.0-foss-2023a.eb
new file mode 100644
index 00000000000..36b765ffdc8
--- /dev/null
+++ b/easybuild/easyconfigs/a/Albumentations/Albumentations-1.4.0-foss-2023a.eb
@@ -0,0 +1,36 @@
+easyblock = 'PythonBundle'
+
+name = 'Albumentations'
+version = '1.4.0'
+
+homepage = 'https://albumentations.ai'
+description = "Albumentations is a Python library for fast and flexible image augmentations"
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('SciPy-bundle', '2023.07'),
+ ('PyYAML', '6.0'),
+ ('scikit-image', '0.22.0'),
+ ('scikit-learn', '1.3.1'),
+ ('OpenCV', '4.8.1', '-contrib'),
+]
+
+preinstallopts = "sed -i 's|CHOOSE_INSTALL_REQUIRES),|[]),|g' setup.py && "
+
+use_pip = True
+
+exts_list = [
+ ('qudida', '0.0.4', {
+ 'checksums': ['db198e2887ab0c9aa0023e565afbff41dfb76b361f85fd5e13f780d75ba18cc8'],
+ }),
+ ('albumentations', version, {
+ 'checksums': ['649f8a14896f788b356ecc70083c4fb91bedab4ff4e2b39ad217a824e189ded0'],
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/a/AlphaFold/AlphaFold-2.3.2-foss-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/a/AlphaFold/AlphaFold-2.3.2-foss-2023a-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..3fe9e6719f6
--- /dev/null
+++ b/easybuild/easyconfigs/a/AlphaFold/AlphaFold-2.3.2-foss-2023a-CUDA-12.1.1.eb
@@ -0,0 +1,167 @@
+easyblock = 'PythonBundle'
+
+name = 'AlphaFold'
+version = '2.3.2'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://deepmind.com/research/case-studies/alphafold'
+description = "AlphaFold can predict protein structures with atomic accuracy even where no similar structure is known"
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+builddependencies = [
+ ('poetry', '1.5.1')
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('CUDA', '12.1.1', '', SYSTEM),
+ ('SciPy-bundle', '2023.07'),
+ ('PyYAML', '6.0'),
+ ('TensorFlow', '2.13.0'), # doesn't require TF-gpu
+ ('Biopython', '1.83'),
+ ('HH-suite', '3.3.0'),
+ ('HMMER', '3.4'),
+ ('Kalign', '3.4.0'),
+ ('jax', '0.4.25', versionsuffix), # also provides absl-py # requirement is ==0.3.25!
+ ('UCX-CUDA', '1.14.1', versionsuffix),
+ ('cuDNN', '8.9.2.26', versionsuffix, SYSTEM),
+ ('NCCL', '2.18.3', versionsuffix),
+ ('OpenMM', '8.0.0', versionsuffix),
+ ('dm-tree', '0.1.8'),
+ ('dm-haiku', '0.0.12', versionsuffix),
+]
+
+# commit to use for downloading stereo_chemical_props.txt and copy to alphafold/common,
+# see docker/Dockerfile in AlphaFold repository
+local_scp_commit = '7102c6'
+
+components = [
+ ('stereo_chemical_props.txt', local_scp_commit, {
+ 'easyblock': 'Binary',
+ 'source_urls': [
+ 'https://git.scicore.unibas.ch/schwede/openstructure/-/raw/%s/modules/mol/alg/src/' % local_scp_commit,
+ ],
+ 'sources': [
+ {
+ 'download_filename': 'stereo_chemical_props.txt',
+ 'filename': 'stereo_chemical_props-%s.txt' % local_scp_commit,
+ 'extract_cmd': "cp %s ./stereo_chemical_props.txt",
+ }
+ ],
+ 'checksums': [
+ '24510899eeb49167cffedec8fa45363a4d08279c0c637a403b452f7d0ac09451', # stereo_chemical_props-7102c6.txt
+ ]
+ })
+]
+
+use_pip = True
+
+exts_list = [
+ ('PDBFixer', '1.9', {
+ 'source_urls': ['https://github.com/openmm/pdbfixer/archive/refs/tags/'],
+ 'sources': [{'download_filename': '%(version)s.tar.gz', 'filename': SOURCE_TAR_GZ}],
+ 'checksums': ['88b9a77e50655f89d0eb2075093773e82c27a4cef842cb7d735c877b20cd39fb'],
+ }),
+ ('tabulate', '0.9.0', {
+ 'checksums': ['0095b12bf5966de529c0feb1fa08671671b3368eec77d7ef7ab114be2c068b3c'],
+ }),
+ ('websocket-client', '1.5.1', {
+ 'modulename': 'websocket',
+ 'checksums': ['3f09e6d8230892547132177f575a4e3e73cfdf06526e20cc02aa1c3b47184d40'],
+ }),
+ ('docker', '7.0.0', {
+ 'checksums': ['323736fb92cd9418fc5e7133bc953e11a9da04f4483f828b527db553f1e7e5a3'],
+ }),
+ ('immutabledict', '4.1.0', {
+ 'checksums': ['93d100ccd2cd09a1fd3f136b9328c6e59529ba341de8bb499437f6819159fe8a'],
+ }),
+ ('contextlib2', '21.6.0', {
+ 'checksums': ['ab1e2bfe1d01d968e1b7e8d9023bc51ef3509bba217bb730cee3827e1ee82869'],
+ }),
+ ('ml_collections', '0.1.1', {
+ 'preinstallopts': "touch requirements.txt && touch requirements-test.txt && ",
+ 'checksums': ['3fefcc72ec433aa1e5d32307a3e474bbb67f405be814ea52a2166bfc9dbe68cc'],
+ }),
+ (name, version, {
+ 'patches': [
+ 'AlphaFold-2.0.0_fix-packages.patch',
+ 'AlphaFold-2.3.2_data-dep-paths-shebang-UniRef30.patch',
+ 'AlphaFold-2.0.0_n-cpu.patch',
+ 'AlphaFold-2.0.1_setup_rm_tfcpu.patch',
+ 'AlphaFold-2.3.2_use_openmm_8.0.0.patch',
+ 'AlphaFold-2.3.2_BioPythonPDBData.patch',
+ ],
+ 'source_urls': ['https://github.com/deepmind/alphafold/archive/refs/tags/'],
+ 'sources': [{'download_filename': 'v%(version)s.tar.gz', 'filename': SOURCE_TAR_GZ}],
+ 'checksums': [
+ {'AlphaFold-2.3.2.tar.gz': '4ea8005ba1b573fa1585e4c29b7d188c5cbfa59b4e4761c9f0c15c9db9584a8e'},
+ {'AlphaFold-2.0.0_fix-packages.patch': '826d2d1a5d6ac52c51a60ba210e1947d5631a1e2d76f8815305b5d23f74458db'},
+ {'AlphaFold-2.3.2_data-dep-paths-shebang-UniRef30.patch':
+ '58cd0ce4094afe76909649abe68034c4fbdb500967f5c818f49b530356dc012b'},
+ {'AlphaFold-2.0.0_n-cpu.patch': 'dfda4dd5f9aba19fe2b6eb9a0ec583d12dcefdfee8ab8803fc57ad48d582db04'},
+ {'AlphaFold-2.0.1_setup_rm_tfcpu.patch':
+ '1a2e4e843bd9a4d15ee39e6c37cc63ba281311cc7a0a5610f0e43b52ef93faac'},
+ {'AlphaFold-2.3.2_use_openmm_8.0.0.patch':
+ 'bbef940c0c959040aaf3984ec47777a229c164517b54616a2688d58fae636d84'},
+ {'AlphaFold-2.3.2_BioPythonPDBData.patch':
+ 'e4483a525ae5c4dc5a5f633bed8cf5337c329e64b603ab7b684a9d18cd26a22f'},
+ ],
+ }),
+]
+
+local_pylibdir = '%(installdir)s/lib/python%(pyshortver)s/site-packages'
+local_link_scp = 'ln -s %%(installdir)s/stereo_chemical_props.txt %s/alphafold/common' % local_pylibdir
+
+postinstallcmds = [
+ 'cp %(builddir)s/AlphaFold/alphafold-%(version)s/run_alphafold*.py %(installdir)s/bin',
+ 'cp -rpP %(builddir)s/AlphaFold/alphafold-%(version)s/scripts %(installdir)s',
+ 'cd %(installdir)s/bin && ln -s run_alphafold.py alphafold',
+ 'chmod a+x %(installdir)s/bin/run_alphafold.py',
+ local_link_scp,
+]
+
+sanity_check_paths = {
+ 'files': ['bin/alphafold', 'bin/pdbfixer', 'bin/run_alphafold.py', 'stereo_chemical_props.txt'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages', 'scripts'],
+}
+
+sanity_check_commands = [
+ "pdbfixer --help",
+ "python -m openmm.testInstallation",
+ "python -c 'import alphafold'",
+ "alphafold --help 2>&1 | grep 'Full AlphaFold protein structure prediction script'",
+ "python %(installdir)s/bin/run_alphafold_test.py",
+]
+
+sanity_pip_check = True
+
+# these allow to make predictions on proteins that would typically be too long to fit into GPU memory;
+# see https://github.com/deepmind/alphafold/blob/main/docker/run_docker.py
+modextravars = {
+ # these allow to make predictions on proteins that would typically be too long to fit into GPU memory;
+ # see https://github.com/deepmind/alphafold/blob/main/docker/run_docker.py
+ 'TF_FORCE_UNIFIED_MEMORY': '1',
+ # jaxlib 0.4.1: https://jax.readthedocs.io/en/latest/changelog.html#jaxlib-0-4-1-dec-13-2022
+ # "The behavior of XLA_PYTHON_CLIENT_MEM_FRACTION=.XX has been changed to allocate XX% of the total GPU memory
+ # instead of the previous behavior of using currently available GPU memory to calculate preallocation. Please refer
+ # to GPU memory allocation for more details."
+ # https://jax.readthedocs.io/en/latest/gpu_memory_allocation.html
+ 'XLA_PYTHON_CLIENT_MEM_FRACTION': '2.5',
+ #
+ # Download with $EBROOTALPHAFOLD/scripts/download_all_data.sh /path/to/AlphaFold_DBs/$EBVERSIONALPHAFOLD
+ 'ALPHAFOLD_DATA_DIR': '/path/to/AlphaFold_DBs/%(versions)s', # please adapt
+ # Adapt in order to use a different version of UniRef30 by default,
+ # e.g., v2023_02 from https://wwwuser.gwdg.de/~compbiol/uniclust/2023_02/UniRef30_2023_02_hhsuite.tar.gz:
+ 'ALPHAFOLD_UNIREF30_VER': '2021_03',
+ 'OPENMM_RELAX': 'CUDA' # unset or set to 'CPU' in order not to run the energy minimization on GPU; PR#189
+}
+
+postinstallmsgs = [
+ "A newer version of UniRef30 (2023_02) is available at: "
+ "https://wwwuser.gwdg.de/~compbiol/uniclust/2023_02/UniRef30_2023_02_hhsuite.tar.gz. "
+ "Untar to $ALPHAFOLD_DATA_DIR/uniref30/ and set the default version accordingly by changing "
+ "modextravars:ALPHAFOLD_UNIREF30_VER."
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/a/AlphaFold/AlphaFold-2.3.2_BioPythonPDBData.patch b/easybuild/easyconfigs/a/AlphaFold/AlphaFold-2.3.2_BioPythonPDBData.patch
new file mode 100644
index 00000000000..df73873cb1c
--- /dev/null
+++ b/easybuild/easyconfigs/a/AlphaFold/AlphaFold-2.3.2_BioPythonPDBData.patch
@@ -0,0 +1,14 @@
+# Thomas Hoffmann, EMBL Heidelberg, structures-it@embl.de, 2024/10
+# BioPython 1.83 does not provide protein_letters_3to1 in Bio.Data.SCOPdata but in Bio.Data.PDBData (and Bio.Data.IUPACData)
+diff -ru -ru alphafold-2.3.2/alphafold/data/mmcif_parsing.py alphafold-2.3.2_BioPythonSCOPData/alphafold/data/mmcif_parsing.py
+--- alphafold-2.3.2/alphafold/data/mmcif_parsing.py 2024-02-19 09:55:16.359778490 +0100
++++ alphafold-2.3.2_BioPythonSCOPData/alphafold/data/mmcif_parsing.py 2023-03-27 13:50:49.000000000 +0200
+@@ -21,7 +21,7 @@
+
+ from absl import logging
+ from Bio import PDB
+-from Bio.Data import SCOPData
++from Bio.Data import PDBData as SCOPData
+
+ # Type aliases:
+ ChainId = str
diff --git a/easybuild/easyconfigs/a/AlphaFold/AlphaFold-2.3.2_data-dep-paths-shebang-UniRef30.patch b/easybuild/easyconfigs/a/AlphaFold/AlphaFold-2.3.2_data-dep-paths-shebang-UniRef30.patch
new file mode 100644
index 00000000000..c7bbd59ac0c
--- /dev/null
+++ b/easybuild/easyconfigs/a/AlphaFold/AlphaFold-2.3.2_data-dep-paths-shebang-UniRef30.patch
@@ -0,0 +1,164 @@
+pick up on $ALPHAFOLD_DATA_DIR to specify location to downloaded data
+(see https://github.com/deepmind/alphafold/blob/main/docker/run_docker.py);
+pick up on HH-suite, HHMER, Kalign dependencies provided via EasyBuild
+author: Kenneth Hoste (HPC-UGent)
+update 2.0.1 -> 2.1.0/2.1.2/2.3.0/2.3.2: Thomas Hoffmann (EMBL);
+uniref30 version env. variable (THEMBL)
+
+diff -ru alphafold-2.3.2/run_alphafold.py alphafold-2.3.2_data-dep-paths-shebang-UniRef30/run_alphafold.py
+--- alphafold-2.3.2/run_alphafold.py 2023-03-27 13:50:49.000000000 +0200
++++ alphafold-2.3.2_data-dep-paths-shebang-UniRef30/run_alphafold.py 2024-10-11 11:34:06.330278962 +0200
+@@ -1,3 +1,4 @@
++#!/usr/bin/env python
+ # Copyright 2021 DeepMind Technologies Limited
+ #
+ # Licensed under the Apache License, Version 2.0 (the "License");
+@@ -42,6 +43,48 @@
+ import numpy as np
+
+ # Internal import (7716).
++use_reduced_dbs = any("--db_preset=reduced_dbs" in s for s in sys.argv[1:])
++use_monomer_preset = not any("--model_preset=multimer" in s for s in sys.argv[1:])
++
++data_dir = os.getenv('ALPHAFOLD_DATA_DIR')
++use_gpu_relax = os.getenv('OPENMM_RELAX')=='CUDA'
++uniref30_ver = os.getenv('ALPHAFOLD_UNIREF30_VER')
++if not uniref30_ver: uniref30_ver = '2021_03'
++
++if data_dir:
++ mgnify_database_path = os.path.join(data_dir, 'mgnify', 'mgy_clusters_2022_05.fa')
++ uniref90_database_path = os.path.join(data_dir, 'uniref90', 'uniref90.fasta')
++ template_mmcif_dir = os.path.join(data_dir, 'pdb_mmcif', 'mmcif_files')
++ obsolete_pdbs_path = os.path.join(data_dir, 'pdb_mmcif', 'obsolete.dat')
++ if use_monomer_preset:
++ pdb_seqres_database_path = None
++ uniprot_database_path = None
++ pdb70_database_path = os.path.join(data_dir, 'pdb70', 'pdb70')
++ else:
++ pdb_seqres_database_path = os.path.join(data_dir, 'pdb_seqres', 'pdb_seqres.txt')
++ uniprot_database_path = os.path.join(data_dir, 'uniprot', 'uniprot.fasta')
++ pdb70_database_path = None
++ if use_reduced_dbs:
++ small_bfd_database_path = os.path.join(data_dir, 'small_bfd','bfd-first_non_consensus_sequences.fasta')
++ uniref30_database_path = None
++ bfd_database_path = None
++ else:
++ small_bfd_database_path = None
++ bfd_database_path = os.path.join(data_dir, 'bfd', 'bfd_metaclust_clu_complete_id30_c90_final_seq.sorted_opt')
++ uniref30_database_path = os.path.join(data_dir, 'uniref30', 'UniRef30_%s' % uniref30_ver)
++else:
++ sys.stderr.write("$ALPHAFOLD_DATA_DIR is not defined!")
++ uniref90_database_path = None
++ mgnify_database_path = None
++ bfd_database_path = None
++ uniref30_database_path = None
++ pdb70_database_path = None
++ template_mmcif_dir = None
++ obsolete_pdbs_path = None
++ small_bfd_database_path = None
++ uniprot_database_path = None
++ pdb_seqres_database_path = None
++ use_gpu_relax = None
+
+ logging.set_verbosity(logging.INFO)
+
+@@ -59,7 +102,7 @@
+ 'separated by commas. All FASTA paths must have a unique basename as the '
+ 'basename is used to name the output directories for each prediction.')
+
+-flags.DEFINE_string('data_dir', None, 'Path to directory of supporting data.')
++flags.DEFINE_string('data_dir', data_dir, 'Path to directory of supporting data.')
+ flags.DEFINE_string('output_dir', None, 'Path to a directory that will '
+ 'store the results.')
+ flags.DEFINE_string('jackhmmer_binary_path', shutil.which('jackhmmer'),
+@@ -71,32 +114,32 @@
+ flags.DEFINE_string('hmmsearch_binary_path', shutil.which('hmmsearch'),
+ 'Path to the hmmsearch executable.')
+ flags.DEFINE_string('hmmbuild_binary_path', shutil.which('hmmbuild'),
+- 'Path to the hmmbuild executable.')
++ 'Path to the hmmbuild executable.')
+ flags.DEFINE_string('kalign_binary_path', shutil.which('kalign'),
+- 'Path to the Kalign executable.')
+-flags.DEFINE_string('uniref90_database_path', None, 'Path to the Uniref90 '
+- 'database for use by JackHMMER.')
+-flags.DEFINE_string('mgnify_database_path', None, 'Path to the MGnify '
+- 'database for use by JackHMMER.')
+-flags.DEFINE_string('bfd_database_path', None, 'Path to the BFD '
+- 'database for use by HHblits.')
+-flags.DEFINE_string('small_bfd_database_path', None, 'Path to the small '
+- 'version of BFD used with the "reduced_dbs" preset.')
+-flags.DEFINE_string('uniref30_database_path', None, 'Path to the UniRef30 '
+- 'database for use by HHblits.')
+-flags.DEFINE_string('uniprot_database_path', None, 'Path to the Uniprot '
+- 'database for use by JackHMMer.')
+-flags.DEFINE_string('pdb70_database_path', None, 'Path to the PDB70 '
+- 'database for use by HHsearch.')
+-flags.DEFINE_string('pdb_seqres_database_path', None, 'Path to the PDB '
+- 'seqres database for use by hmmsearch.')
+-flags.DEFINE_string('template_mmcif_dir', None, 'Path to a directory with '
+- 'template mmCIF structures, each named .cif')
++ 'Path to the Kalign executable.')
++flags.DEFINE_string('uniref90_database_path', uniref90_database_path, 'Path to the Uniref90 '
++ 'database for use by JackHMMER.')
++flags.DEFINE_string('mgnify_database_path', mgnify_database_path, 'Path to the MGnify '
++ 'database for use by JackHMMER.')
++flags.DEFINE_string('bfd_database_path', bfd_database_path, 'Path to the BFD '
++ 'database for use by HHblits.')
++flags.DEFINE_string('small_bfd_database_path', small_bfd_database_path, 'Path to the small '
++ 'version of BFD used with the "reduced_dbs" preset.')
++flags.DEFINE_string('uniref30_database_path', uniref30_database_path, 'Path to the UniRef30 '
++ 'database for use by HHblits.')
++flags.DEFINE_string('uniprot_database_path', uniprot_database_path, 'Path to the Uniprot '
++ 'database for use by JackHMMer.')
++flags.DEFINE_string('pdb70_database_path', pdb70_database_path, 'Path to the PDB70 '
++ 'database for use by HHsearch.')
++flags.DEFINE_string('pdb_seqres_database_path', pdb_seqres_database_path, 'Path to the PDB '
++ 'seqres database for use by hmmsearch.')
++flags.DEFINE_string('template_mmcif_dir', template_mmcif_dir, 'Path to a directory with '
++ 'template mmCIF structures, each named .cif')
+ flags.DEFINE_string('max_template_date', None, 'Maximum template release date '
+- 'to consider. Important if folding historical test sets.')
+-flags.DEFINE_string('obsolete_pdbs_path', None, 'Path to file containing a '
+- 'mapping from obsolete PDB IDs to the PDB IDs of their '
+- 'replacements.')
++ 'to consider. Important if folding historical test sets.')
++flags.DEFINE_string('obsolete_pdbs_path', obsolete_pdbs_path, 'Path to file containing a '
++ 'mapping from obsolete PDB IDs to the PDB IDs of their '
++ 'replacements.')
+ flags.DEFINE_enum('db_preset', 'full_dbs',
+ ['full_dbs', 'reduced_dbs'],
+ 'Choose preset MSA database configuration - '
+@@ -137,7 +180,7 @@
+ 'distracting stereochemical violations but might help '
+ 'in case you are having issues with the relaxation '
+ 'stage.')
+-flags.DEFINE_boolean('use_gpu_relax', None, 'Whether to relax on GPU. '
++flags.DEFINE_boolean('use_gpu_relax', use_gpu_relax, 'Whether to relax on GPU. '
+ 'Relax on GPU can be much faster than CPU, so it is '
+ 'recommended to enable if possible. GPUs must be available'
+ ' if this setting is enabled.')
+@@ -334,6 +377,10 @@
+ 'sure it is installed on your system.')
+
+ use_small_bfd = FLAGS.db_preset == 'reduced_dbs'
++ if use_small_bfd and data_dir:
++ bfd_database_path = None
++ uniref30_database_path = None
++
+ _check_flag('small_bfd_database_path', 'db_preset',
+ should_be_set=use_small_bfd)
+ _check_flag('bfd_database_path', 'db_preset',
+@@ -456,13 +503,7 @@
+ flags.mark_flags_as_required([
+ 'fasta_paths',
+ 'output_dir',
+- 'data_dir',
+- 'uniref90_database_path',
+- 'mgnify_database_path',
+- 'template_mmcif_dir',
+ 'max_template_date',
+- 'obsolete_pdbs_path',
+- 'use_gpu_relax',
+ ])
+
+ app.run(main)
diff --git a/easybuild/easyconfigs/a/AlphaFold/AlphaFold-2.3.2_use_openmm_8.0.0.patch b/easybuild/easyconfigs/a/AlphaFold/AlphaFold-2.3.2_use_openmm_8.0.0.patch
new file mode 100644
index 00000000000..765fdb3c4d6
--- /dev/null
+++ b/easybuild/easyconfigs/a/AlphaFold/AlphaFold-2.3.2_use_openmm_8.0.0.patch
@@ -0,0 +1,243 @@
+# Add compatibility with OpenMM-8.0.0
+# The patch is based on the recipe from https://github.com/deepmind/alphafold/issues/404
+# Author: maxim-masterov (SURF) (7.7.0)
+# update 8.0.0: THEMBL
+diff -ru alphafold-2.3.2/alphafold/relax/amber_minimize.py alphafold-2.3.2_use_openmm_7.7.0/alphafold/relax/amber_minimize.py
+--- alphafold-2.3.2/alphafold/relax/amber_minimize.py 2023-03-27 13:50:49.000000000 +0200
++++ alphafold-2.3.2_use_openmm_7.7.0/alphafold/relax/amber_minimize.py 2023-04-06 10:38:33.512754033 +0200
+@@ -27,10 +27,10 @@
+ import ml_collections
+ import numpy as np
+ import jax
+-from simtk import openmm
+-from simtk import unit
+-from simtk.openmm import app as openmm_app
+-from simtk.openmm.app.internal.pdbstructure import PdbStructure
++from openmm import *
++from openmm import unit
++from openmm import app as openmm_app
++from openmm.app.internal.pdbstructure import PdbStructure
+
+
+ ENERGY = unit.kilocalories_per_mole
+@@ -47,7 +47,7 @@
+
+
+ def _add_restraints(
+- system: openmm.System,
++ system: System,
+ reference_pdb: openmm_app.PDBFile,
+ stiffness: unit.Unit,
+ rset: str,
+diff -ru alphafold-2.3.2/alphafold/relax/cleanup.py alphafold-2.3.2_use_openmm_7.7.0/alphafold/relax/cleanup.py
+--- alphafold-2.3.2/alphafold/relax/cleanup.py 2023-03-27 13:50:49.000000000 +0200
++++ alphafold-2.3.2_use_openmm_7.7.0/alphafold/relax/cleanup.py 2023-04-06 10:39:25.224888763 +0200
+@@ -20,8 +20,8 @@
+ import io
+
+ import pdbfixer
+-from simtk.openmm import app
+-from simtk.openmm.app import element
++from openmm import app
++from openmm.app import element
+
+
+ def fix_pdb(pdbfile, alterations_info):
+diff -ru alphafold-2.3.2/alphafold/relax/cleanup_test.py alphafold-2.3.2_use_openmm_7.7.0/alphafold/relax/cleanup_test.py
+--- alphafold-2.3.2/alphafold/relax/cleanup_test.py 2023-03-27 13:50:49.000000000 +0200
++++ alphafold-2.3.2_use_openmm_7.7.0/alphafold/relax/cleanup_test.py 2023-04-06 10:39:58.409616942 +0200
+@@ -17,7 +17,7 @@
+
+ from absl.testing import absltest
+ from alphafold.relax import cleanup
+-from simtk.openmm.app.internal import pdbstructure
++from openmm.app.internal import pdbstructure
+
+
+ def _pdb_to_structure(pdb_str):
+diff -ru alphafold-2.3.2/docker/Dockerfile alphafold-2.3.2_use_openmm_7.7.0/docker/Dockerfile
+--- alphafold-2.3.2/docker/Dockerfile 2023-03-27 13:50:49.000000000 +0200
++++ alphafold-2.3.2_use_openmm_7.7.0/docker/Dockerfile 2023-04-06 10:41:10.315194781 +0200
+@@ -76,7 +76,6 @@
+
+ # Apply OpenMM patch.
+ WORKDIR /opt/conda/lib/python3.8/site-packages
+-RUN patch -p0 < /app/alphafold/docker/openmm.patch
+
+ # Add SETUID bit to the ldconfig binary so that non-root users can run it.
+ RUN chmod u+s /sbin/ldconfig.real
+diff -ru alphafold-2.3.2/notebooks/AlphaFold.ipynb alphafold-2.3.2_use_openmm_7.7.0/notebooks/AlphaFold.ipynb
+--- alphafold-2.3.2/notebooks/AlphaFold.ipynb 2023-03-27 13:50:49.000000000 +0200
++++ alphafold-2.3.2_use_openmm_7.7.0/notebooks/AlphaFold.ipynb 2023-04-06 10:50:41.351746867 +0200
+@@ -103,16 +103,17 @@
+ " %shell rm -rf /opt/conda\n",
+ " %shell wget -q -P /tmp \\\n",
+ " https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh \\\n",
+- " \u0026\u0026 bash /tmp/Miniconda3-latest-Linux-x86_64.sh -b -p /opt/conda \\\n",
+- " \u0026\u0026 rm /tmp/Miniconda3-latest-Linux-x86_64.sh\n",
++ " && bash /tmp/Miniconda3-latest-Linux-x86_64.sh -b -p /opt/conda \\\n",
++ " && rm /tmp/Miniconda3-latest-Linux-x86_64.sh\n",
++
+ " pbar.update(9)\n",
+ "\n",
+ " PATH=%env PATH\n",
+ " %env PATH=/opt/conda/bin:{PATH}\n",
+ " %shell conda install -qy conda==4.13.0 \\\n",
+- " \u0026\u0026 conda install -qy -c conda-forge \\\n",
++ " && conda install -qy -c conda-forge \\\n",
+ " python=3.9 \\\n",
+- " openmm=7.5.1 \\\n",
++ " openmm=8.0.0 \\\n",
+ " pdbfixer\n",
+ " pbar.update(80)\n",
+ "\n",
+@@ -164,8 +165,8 @@
+ " pbar.update(10)\n",
+ "\n",
+ " # Apply OpenMM patch.\n",
+- " %shell pushd /opt/conda/lib/python3.9/site-packages/ \u0026\u0026 \\\n",
+- " patch -p0 \u003c /content/alphafold/docker/openmm.patch \u0026\u0026 \\\n",
++ " %shell pushd /opt/conda/lib/python3.8/site-packages/ && \\\n",
++
+ " popd\n",
+ "\n",
+ " # Make sure stereo_chemical_props.txt is in all locations where it could be searched for.\n",
+@@ -189,9 +190,10 @@
+ "\n",
+ "import jax\n",
+ "if jax.local_devices()[0].platform == 'tpu':\n",
+- " raise RuntimeError('Colab TPU runtime not supported. Change it to GPU via Runtime -\u003e Change Runtime Type -\u003e Hardware accelerator -\u003e GPU.')\n",
++ " raise RuntimeError('Colab TPU runtime not supported. Change it to GPU via Runtime -> Change Runtime Type -> Hardware accelerator -> GPU.')\n",
+ "elif jax.local_devices()[0].platform == 'cpu':\n",
+- " raise RuntimeError('Colab CPU runtime not supported. Change it to GPU via Runtime -\u003e Change Runtime Type -\u003e Hardware accelerator -\u003e GPU.')\n",
++ " raise RuntimeError('Colab CPU runtime not supported. Change it to GPU via Runtime -> Change Runtime Type -> Hardware accelerator -> GPU.')\n",
++
+ "else:\n",
+ " print(f'Running with {jax.local_devices()[0].device_kind} GPU')\n",
+ "\n",
+@@ -211,7 +213,7 @@
+ "source": [
+ "## Making a prediction\n",
+ "\n",
+- "Please paste the sequence of your protein in the text box below, then run the remaining cells via _Runtime_ \u003e _Run after_. You can also run the cells individually by pressing the _Play_ button on the left.\n",
++ "Please paste the sequence of your protein in the text box below, then run the remaining cells via _Runtime_ > _Run after_. You can also run the cells individually by pressing the _Play_ button on the left.\n",
+ "\n",
+ "Note that the search against databases and the actual prediction can take some time, from minutes to hours, depending on the length of the protein and what type of GPU you are allocated by Colab (see FAQ below)."
+ ]
+@@ -306,21 +308,21 @@
+ "\n",
+ "# Check whether total length exceeds limit.\n",
+ "total_sequence_length = sum([len(seq) for seq in sequences])\n",
+- "if total_sequence_length \u003e MAX_LENGTH:\n",
++ "if total_sequence_length > MAX_LENGTH:\n",
+ " raise ValueError('The total sequence length is too long: '\n",
+ " f'{total_sequence_length}, while the maximum is '\n",
+ " f'{MAX_LENGTH}.')\n",
+ "\n",
+ "# Check whether we exceed the monomer limit.\n",
+ "if model_type_to_use == ModelType.MONOMER:\n",
+- " if len(sequences[0]) \u003e MAX_MONOMER_MODEL_LENGTH:\n",
++ " if len(sequences[0]) > MAX_MONOMER_MODEL_LENGTH:\n",
+ " raise ValueError(\n",
+ " f'Input sequence is too long: {len(sequences[0])} amino acids, while '\n",
+ " f'the maximum for the monomer model is {MAX_MONOMER_MODEL_LENGTH}. You may '\n",
+ " 'be able to run this sequence with the multimer model by selecting the '\n",
+ " 'use_multimer_model_for_monomers checkbox above.')\n",
+ " \n",
+- "if total_sequence_length \u003e MAX_VALIDATED_LENGTH:\n",
++ "if total_sequence_length > MAX_VALIDATED_LENGTH:\n",
+ " print('WARNING: The accuracy of the system has not been fully validated '\n",
+ " 'above 3000 residues, and you may experience long running times or '\n",
+ " f'run out of memory. Total sequence length is {total_sequence_length} '\n",
+@@ -421,7 +423,7 @@
+ "]\n",
+ "\n",
+ "# Search UniProt and construct the all_seq features only for heteromers, not homomers.\n",
+- "if model_type_to_use == ModelType.MULTIMER and len(set(sequences)) \u003e 1:\n",
++ "if model_type_to_use == ModelType.MULTIMER and len(set(sequences)) > 1:\n",
+ " MSA_DATABASES.extend([\n",
+ " # Swiss-Prot and TrEMBL are concatenated together as UniProt.\n",
+ " {'db_name': 'uniprot',\n",
+@@ -455,7 +457,7 @@
+ " for sequence_index, sequence in enumerate(sorted(set(sequences)), 1):\n",
+ " fasta_path = f'target_{sequence_index:02d}.fasta'\n",
+ " with open(fasta_path, 'wt') as f:\n",
+- " f.write(f'\u003equery\\n{sequence}')\n",
++ " f.write(f'>query\\n{sequence}')\n",
+ " sequence_to_fasta_path[sequence] = fasta_path\n",
+ "\n",
+ " # Run the search against chunks of genetic databases (since the genetic\n",
+@@ -516,7 +518,7 @@
+ " num_templates=0, num_res=len(sequence)))\n",
+ "\n",
+ " # Construct the all_seq features only for heteromers, not homomers.\n",
+- " if model_type_to_use == ModelType.MULTIMER and len(set(sequences)) \u003e 1:\n",
++ " if model_type_to_use == ModelType.MULTIMER and len(set(sequences)) > 1:\n",
+ " valid_feats = msa_pairing.MSA_FEATURES + (\n",
+ " 'msa_species_identifiers',\n",
+ " )\n",
+@@ -680,7 +682,7 @@
+ "banded_b_factors = []\n",
+ "for plddt in plddts[best_model_name]:\n",
+ " for idx, (min_val, max_val, _) in enumerate(PLDDT_BANDS):\n",
+- " if plddt \u003e= min_val and plddt \u003c= max_val:\n",
++ " if plddt >= min_val and plddt <= max_val:\n",
+ " banded_b_factors.append(idx)\n",
+ " break\n",
+ "banded_b_factors = np.array(banded_b_factors)[:, None] * final_atom_mask\n",
+@@ -693,14 +695,14 @@
+ " f.write(relaxed_pdb)\n",
+ "\n",
+ "\n",
+- "# --- Visualise the prediction \u0026 confidence ---\n",
++ "# --- Visualise the prediction & confidence ---\n",
+ "show_sidechains = True\n",
+ "def plot_plddt_legend():\n",
+ " \"\"\"Plots the legend for pLDDT.\"\"\"\n",
+- " thresh = ['Very low (pLDDT \u003c 50)',\n",
+- " 'Low (70 \u003e pLDDT \u003e 50)',\n",
+- " 'Confident (90 \u003e pLDDT \u003e 70)',\n",
+- " 'Very high (pLDDT \u003e 90)']\n",
++ " thresh = ['Very low (pLDDT < 50)',\n",
++ " 'Low (70 > pLDDT > 50)',\n",
++ " 'Confident (90 > pLDDT > 70)',\n",
++ " 'Very high (pLDDT > 90)']\n",
+ "\n",
+ " colors = [x[2] for x in PLDDT_BANDS]\n",
+ "\n",
+@@ -816,13 +818,13 @@
+ "id": "jeb2z8DIA4om"
+ },
+ "source": [
+- "## FAQ \u0026 Troubleshooting\n",
++ "## FAQ & Troubleshooting\n",
+ "\n",
+ "\n",
+ "* How do I get a predicted protein structure for my protein?\n",
+ " * Click on the _Connect_ button on the top right to get started.\n",
+ " * Paste the amino acid sequence of your protein (without any headers) into the “Enter the amino acid sequence to fold”.\n",
+- " * Run all cells in the Colab, either by running them individually (with the play button on the left side) or via _Runtime_ \u003e _Run all._ Make sure you run all 5 cells in order.\n",
++ " * Run all cells in the Colab, either by running them individually (with the play button on the left side) or via _Runtime_ > _Run all._ Make sure you run all 5 cells in order.\n",
+ " * The predicted protein structure will be downloaded once all cells have been executed. Note: This can take minutes to hours - see below.\n",
+ "* How long will this take?\n",
+ " * Downloading the AlphaFold source code can take up to a few minutes.\n",
+@@ -831,8 +833,8 @@
+ " * Running AlphaFold and generating the prediction can take minutes to hours, depending on the length of your protein and on which GPU-type Colab has assigned you.\n",
+ "* My Colab no longer seems to be doing anything, what should I do?\n",
+ " * Some steps may take minutes to hours to complete.\n",
+- " * If nothing happens or if you receive an error message, try restarting your Colab runtime via _Runtime_ \u003e _Restart runtime_.\n",
+- " * If this doesn’t help, try resetting your Colab runtime via _Runtime_ \u003e _Factory reset runtime_.\n",
++ " * If nothing happens or if you receive an error message, try restarting your Colab runtime via _Runtime_ > _Restart runtime_.\n",
++ " * If this doesn’t help, try resetting your Colab runtime via _Runtime_ > _Factory reset runtime_.\n",
+ "* How does this compare to the open-source version of AlphaFold?\n",
+ " * This Colab version of AlphaFold searches a selected portion of the BFD dataset and currently doesn’t use templates, so its accuracy is reduced in comparison to the full version of AlphaFold that is described in the [AlphaFold paper](https://doi.org/10.1038/s41586-021-03819-2) and [Github repo](https://github.com/deepmind/alphafold/) (the full version is available via the inference script).\n",
+ "* What is a Colab?\n",
+@@ -841,7 +843,7 @@
+ " * The resources allocated to your Colab vary. See the [Colab FAQ](https://research.google.com/colaboratory/faq.html) for more details.\n",
+ " * You can execute the Colab nonetheless.\n",
+ "* I received an error “Colab CPU runtime not supported” or “No GPU/TPU found”, what do I do?\n",
+- " * Colab CPU runtime is not supported. Try changing your runtime via _Runtime_ \u003e _Change runtime type_ \u003e _Hardware accelerator_ \u003e _GPU_.\n",
++ " * Colab CPU runtime is not supported. Try changing your runtime via _Runtime_ > _Change runtime type_ > _Hardware accelerator_ > _GPU_.\n",
+ " * The type of GPU allocated to your Colab varies. See the [Colab FAQ](https://research.google.com/colaboratory/faq.html) for more details.\n",
+ " * If you receive “Cannot connect to GPU backend”, you can try again later to see if Colab allocates you a GPU.\n",
+ " * [Colab Pro](https://colab.research.google.com/signup) offers priority access to GPUs.\n",
diff --git a/easybuild/easyconfigs/a/AlphaPulldown/AlphaPulldown-2.0.0b2_fix-import-protein_letters_3to1.patch b/easybuild/easyconfigs/a/AlphaPulldown/AlphaPulldown-2.0.0b2_fix-import-protein_letters_3to1.patch
new file mode 100644
index 00000000000..34994664f80
--- /dev/null
+++ b/easybuild/easyconfigs/a/AlphaPulldown/AlphaPulldown-2.0.0b2_fix-import-protein_letters_3to1.patch
@@ -0,0 +1,13 @@
+fix import of protein_letters_3to1 from Biopython
+author: Kenneth Hoste (HPC-UGent)
+--- AlphaPulldown/alphapulldown/utils/remove_clashes_low_plddt.py.orig 2024-06-05 09:30:16.114746286 +0200
++++ AlphaPulldown/alphapulldown/utils/remove_clashes_low_plddt.py 2024-06-05 09:30:35.242665615 +0200
+@@ -4,7 +4,7 @@
+ from alphafold.data.mmcif_parsing import parse
+ from alphafold.common.residue_constants import residue_atoms, atom_types
+ from Bio.PDB import NeighborSearch, PDBIO, MMCIFIO
+-from Bio.PDB.Polypeptide import protein_letters_3to1
++from Bio.Data.SCOPData import protein_letters_3to1
+ from Bio import SeqIO
+ from colabfold.batch import convert_pdb_to_mmcif
+ from Bio.PDB import Structure, Model, Chain, Residue
diff --git a/easybuild/easyconfigs/a/AlphaPulldown/AlphaPulldown-2.0.0b4-foss-2022a-CUDA-11.7.0.eb b/easybuild/easyconfigs/a/AlphaPulldown/AlphaPulldown-2.0.0b4-foss-2022a-CUDA-11.7.0.eb
new file mode 100644
index 00000000000..492a787c919
--- /dev/null
+++ b/easybuild/easyconfigs/a/AlphaPulldown/AlphaPulldown-2.0.0b4-foss-2022a-CUDA-11.7.0.eb
@@ -0,0 +1,106 @@
+# created by Denis Kristak (Inuits)
+easyblock = 'PythonBundle'
+
+name = 'AlphaPulldown'
+version = '2.0.0b4'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://github.com/KosinskiLab/AlphaPulldown'
+description = """AlphaPulldown is a Python package that streamlines protein-protein
+interaction screens and high-throughput modelling of higher-order oligomers using AlphaFold-Multimer"""
+
+toolchain = {'name': 'foss', 'version': '2022a'}
+
+dependencies = [
+ ('CUDA', '11.7.0', '', SYSTEM),
+ ('Python', '3.10.4'),
+ ('OpenMM', '8.0.0'),
+ ('Kalign', '3.3.5'),
+ ('PyYAML', '6.0'),
+ ('jax', '0.3.25', versionsuffix), # also provides absl-py
+ ('Biopython', '1.79'),
+ ('h5py', '3.7.0'),
+ ('IPython', '8.5.0'),
+ ('JupyterLab', '3.5.0'),
+ ('matplotlib', '3.5.2'),
+ ('TensorFlow', '2.11.0', versionsuffix),
+ ('PyTorch', '1.12.0', versionsuffix),
+ ('tqdm', '4.64.0'),
+ ('dm-tree', '0.1.8'),
+ ('py3Dmol', '2.0.1.post1'),
+ ('HMMER', '3.3.2'),
+ ('HH-suite', '3.3.0'),
+ ('Uni-Core', '0.0.3', versionsuffix),
+]
+
+use_pip = True
+
+exts_list = [
+ ('importlib-resources', '5.13.0', {
+ 'modulename': 'importlib_resources',
+ 'source_tmpl': 'importlib_resources-%(version)s.tar.gz',
+ 'checksums': ['82d5c6cca930697dbbd86c93333bb2c2e72861d4789a11c2662b933e5ad2b528'],
+ }),
+ ('jmp', '0.0.4', {
+ 'checksums': ['5dfeb0fd7c7a9f72a70fff0aab9d0cbfae32a809c02f4037ff3485ceb33e1730'],
+ }),
+ ('dm-haiku', '0.0.9', {
+ 'modulename': 'haiku',
+ 'source_urls': ['https://github.com/deepmind/dm-haiku/archive/refs/tags/'],
+ 'sources': [{'download_filename': 'v%(version)s.tar.gz', 'filename': '%(name)s-%(version)s.tar.gz'}],
+ 'checksums': ['d550f07f5891ede30ada5faafde98f549ed1b8ceadb7a601cca3d81db7d82414'],
+ }),
+ ('contextlib2', '21.6.0', {
+ 'checksums': ['ab1e2bfe1d01d968e1b7e8d9023bc51ef3509bba217bb730cee3827e1ee82869'],
+ }),
+ ('ml-collections', '0.1.1', {
+ 'preinstallopts': "touch requirements.txt && touch requirements-test.txt && ",
+ 'sources': ['ml_collections-%(version)s.tar.gz'],
+ 'checksums': ['3fefcc72ec433aa1e5d32307a3e474bbb67f405be814ea52a2166bfc9dbe68cc'],
+ }),
+ ('PDBFixer', '1.9', {
+ 'source_urls': ['https://github.com/openmm/pdbfixer/archive/'],
+ 'sources': [{'download_filename': '%(version)s.tar.gz', 'filename': '%(name)s-%(version)s.tar.gz'}],
+ 'checksums': ['88b9a77e50655f89d0eb2075093773e82c27a4cef842cb7d735c877b20cd39fb'],
+ }),
+ ('ihm', '1.3', {
+ 'checksums': ['09f69809fd81509cc26b60253c55b02ce79fc01fc8f4a068bca2953a7dfd33be'],
+ }),
+ ('modelcif', '1.0', {
+ 'checksums': ['e8375bc502a73dcfab0b7fbdd454d67d393bbb8969981eb52199d77192a3de56'],
+ }),
+ (name, version, {
+ 'sources': [{
+ 'filename': SOURCE_TAR_GZ,
+ 'git_config': {
+ 'url': 'https://github.com/KosinskiLab',
+ 'repo_name': 'AlphaPulldown',
+ 'tag': version,
+ 'recursive': True,
+ },
+ }],
+ 'patches': ['AlphaPulldown-2.0.0b2_fix-import-protein_letters_3to1.patch'],
+ 'checksums': [
+ None,
+ 'd41247cd12f6ef8579adbc893f6c1af5fba051167ee838449974365f4bdccf06',
+ ],
+ # remove strict version requirements for Python dependencies
+ 'preinstallopts': "sed -i 's/[>=]=.*//g' setup.cfg && ",
+ }),
+]
+
+fix_python_shebang_for = ['bin/*.py']
+
+sanity_pip_check = True
+
+sanity_check_paths = {
+ 'files': ['bin/run_multimer_jobs.py', 'bin/rename_colab_search_a3m.py'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages/alphapulldown'],
+}
+
+sanity_check_commands = [
+ "run_multimer_jobs.py --help | grep 'A script to perform structure prediction'",
+ "convert_to_modelcif.py --help | grep 'turn it into a ModelCIF'",
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/a/AlphaPulldown/AlphaPulldown-2.0.0b4-foss-2022a.eb b/easybuild/easyconfigs/a/AlphaPulldown/AlphaPulldown-2.0.0b4-foss-2022a.eb
new file mode 100644
index 00000000000..f410c438e23
--- /dev/null
+++ b/easybuild/easyconfigs/a/AlphaPulldown/AlphaPulldown-2.0.0b4-foss-2022a.eb
@@ -0,0 +1,104 @@
+# created by Denis Kristak (Inuits)
+easyblock = 'PythonBundle'
+
+name = 'AlphaPulldown'
+version = '2.0.0b4'
+
+homepage = 'https://github.com/KosinskiLab/AlphaPulldown'
+description = """AlphaPulldown is a Python package that streamlines protein-protein
+interaction screens and high-throughput modelling of higher-order oligomers using AlphaFold-Multimer"""
+
+toolchain = {'name': 'foss', 'version': '2022a'}
+
+dependencies = [
+ ('Python', '3.10.4'),
+ ('OpenMM', '8.0.0'),
+ ('Kalign', '3.3.5'),
+ ('PyYAML', '6.0'),
+ ('jax', '0.3.25'), # also provides absl-py
+ ('Biopython', '1.79'),
+ ('h5py', '3.7.0'),
+ ('IPython', '8.5.0'),
+ ('JupyterLab', '3.5.0'),
+ ('matplotlib', '3.5.2'),
+ ('TensorFlow', '2.11.0'),
+ ('PyTorch', '1.12.0'),
+ ('tqdm', '4.64.0'),
+ ('dm-tree', '0.1.8'),
+ ('py3Dmol', '2.0.1.post1'),
+ ('HMMER', '3.3.2'),
+ ('HH-suite', '3.3.0'),
+ ('Uni-Core', '0.0.3'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('importlib-resources', '5.13.0', {
+ 'modulename': 'importlib_resources',
+ 'source_tmpl': 'importlib_resources-%(version)s.tar.gz',
+ 'checksums': ['82d5c6cca930697dbbd86c93333bb2c2e72861d4789a11c2662b933e5ad2b528'],
+ }),
+ ('jmp', '0.0.4', {
+ 'checksums': ['5dfeb0fd7c7a9f72a70fff0aab9d0cbfae32a809c02f4037ff3485ceb33e1730'],
+ }),
+ ('dm-haiku', '0.0.9', {
+ 'modulename': 'haiku',
+ 'source_urls': ['https://github.com/deepmind/dm-haiku/archive/refs/tags/'],
+ 'sources': [{'download_filename': 'v%(version)s.tar.gz', 'filename': '%(name)s-%(version)s.tar.gz'}],
+ 'checksums': ['d550f07f5891ede30ada5faafde98f549ed1b8ceadb7a601cca3d81db7d82414'],
+ }),
+ ('contextlib2', '21.6.0', {
+ 'checksums': ['ab1e2bfe1d01d968e1b7e8d9023bc51ef3509bba217bb730cee3827e1ee82869'],
+ }),
+ ('ml-collections', '0.1.1', {
+ 'preinstallopts': "touch requirements.txt && touch requirements-test.txt && ",
+ 'sources': ['ml_collections-%(version)s.tar.gz'],
+ 'checksums': ['3fefcc72ec433aa1e5d32307a3e474bbb67f405be814ea52a2166bfc9dbe68cc'],
+ }),
+ ('PDBFixer', '1.9', {
+ 'source_urls': ['https://github.com/openmm/pdbfixer/archive/'],
+ 'sources': [{'download_filename': '%(version)s.tar.gz', 'filename': '%(name)s-%(version)s.tar.gz'}],
+ 'checksums': ['88b9a77e50655f89d0eb2075093773e82c27a4cef842cb7d735c877b20cd39fb'],
+ }),
+ ('ihm', '1.3', {
+ 'checksums': ['09f69809fd81509cc26b60253c55b02ce79fc01fc8f4a068bca2953a7dfd33be'],
+ }),
+ ('modelcif', '1.0', {
+ 'checksums': ['e8375bc502a73dcfab0b7fbdd454d67d393bbb8969981eb52199d77192a3de56'],
+ }),
+ (name, version, {
+ 'sources': [{
+ 'filename': SOURCE_TAR_GZ,
+ 'git_config': {
+ 'url': 'https://github.com/KosinskiLab',
+ 'repo_name': 'AlphaPulldown',
+ 'tag': version,
+ 'recursive': True,
+ },
+ }],
+ 'patches': ['AlphaPulldown-2.0.0b2_fix-import-protein_letters_3to1.patch'],
+ 'checksums': [
+ None,
+ 'd41247cd12f6ef8579adbc893f6c1af5fba051167ee838449974365f4bdccf06',
+ ],
+ # remove strict version requirements for Python dependencies
+ 'preinstallopts': "sed -i 's/[>=]=.*//g' setup.cfg && ",
+ }),
+]
+
+fix_python_shebang_for = ['bin/*.py']
+
+sanity_pip_check = True
+
+sanity_check_paths = {
+ 'files': ['bin/run_multimer_jobs.py', 'bin/rename_colab_search_a3m.py'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages/alphapulldown'],
+}
+
+sanity_check_commands = [
+ "run_multimer_jobs.py --help | grep 'A script to perform structure prediction'",
+ "convert_to_modelcif.py --help | grep 'turn it into a ModelCIF'",
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/a/AmberTools/AmberTools-23.6-foss-2023a.eb b/easybuild/easyconfigs/a/AmberTools/AmberTools-23.6-foss-2023a.eb
new file mode 100644
index 00000000000..ca7d8074aab
--- /dev/null
+++ b/easybuild/easyconfigs/a/AmberTools/AmberTools-23.6-foss-2023a.eb
@@ -0,0 +1,86 @@
+easyblock = 'EB_Amber'
+
+name = 'AmberTools'
+local_ambertools_ver = 23
+# Patch levels from http://ambermd.org/AmberPatches.php and http://ambermd.org/ATPatches.php
+patchlevels = (6, 0) # (AmberTools, Amber)
+version = '%s.%s' % (local_ambertools_ver, patchlevels[0])
+
+homepage = 'https://ambermd.org/'
+description = """AmberTools consists of several independently developed packages that work well by themselves,
+ and with Amber itself. The suite can also be used to carry out complete molecular dynamics simulations,
+ with either explicit water or generalized Born solvent models."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'usempi': True}
+
+# download requires registration
+local_download_credentials = '?Name=Easybuild&Institution=Easybuild&City=Internet&State=Other&Country=Belgium'
+source_urls = ['https://ambermd.org/cgi-bin/AmberTools%s-get.pl' % local_ambertools_ver]
+sources = [{
+ 'download_filename': local_download_credentials,
+ 'filename': 'AmberTools%s.tar.bz2' % local_ambertools_ver,
+}]
+patches = [
+ 'AmberTools-20_cmake-locate-netcdf.patch',
+ 'AmberTools-20_fix_missing_MPI_LIBRARY_error.patch',
+ 'AmberTools-20_fix_xblas_missing_make_dependency.patch',
+ 'AmberTools-21_CMake-FlexiBLAS.patch',
+ 'AmberTools-21_fix_incorrect_dvout_call.patch',
+ 'AmberTools-21_fix_more_blas_argument_problems.patch',
+ 'AmberTools-21_fix_potential_use_before_init.patch',
+ 'AmberTools-21_fix_rism_argument_mismatch.patch',
+ 'AmberTools-21_fix_xray_fftpack_arg_mismatch.patch',
+ 'AmberTools-22_fix_test_missing_cuda_dir.patch',
+]
+checksums = [
+ {'AmberTools23.tar.bz2': 'debb52e6ef2e1b4eaa917a8b4d4934bd2388659c660501a81ea044903bf9ee9d'},
+ {'AmberTools-20_cmake-locate-netcdf.patch': '473e07c53b6f641d96d333974a6af2e03413fecef79f879d3fdecf7fecaab4d0'},
+ {'AmberTools-20_fix_missing_MPI_LIBRARY_error.patch':
+ '0b89a0624167bc23876bcdefcb1055f591e38e3bd559a71d5749e342bd311acc'},
+ {'AmberTools-20_fix_xblas_missing_make_dependency.patch':
+ 'ff25e91fdc72347a778c3837b581e174d6a8c71efa5b46e11391b18bca84fd65'},
+ {'AmberTools-21_CMake-FlexiBLAS.patch': '9543812c24c4b7842f64f1f8abaf2c92b5c4c0fadcdbd9811e76b81a778f0d36'},
+ {'AmberTools-21_fix_incorrect_dvout_call.patch':
+ '1054d4007f5c79126a41582e1e80514267cf406416ed6c471574cd708b16319b'},
+ {'AmberTools-21_fix_more_blas_argument_problems.patch':
+ 'c6279b57752239184b942d37f760749494ae0eff95236f3368c76ac0d2726a7c'},
+ {'AmberTools-21_fix_potential_use_before_init.patch':
+ '377e645b5bd2c91ebb4d0b6fbca0407a94289e5ddc5b1e7ed0cb0b0724ad2139'},
+ {'AmberTools-21_fix_rism_argument_mismatch.patch':
+ '14255e5739cec39303df570f06820c7532f7395e1b73b1e4104377984e2c9fc1'},
+ {'AmberTools-21_fix_xray_fftpack_arg_mismatch.patch':
+ '99c954e693659efc2a1d121f91510f56408006f0751d91595f45a34b03364e2f'},
+ {'AmberTools-22_fix_test_missing_cuda_dir.patch':
+ 'fb1ab74314d7816169bb9f3f527b78085654aae2825c52cebf50a5760401b737'},
+]
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+ ('pkgconf', '1.9.5'),
+ ('Bison', '3.8.2'),
+ ('flex', '2.6.4'),
+ ('make', '4.4.1'),
+]
+
+dependencies = [
+ ('zlib', '1.2.13'),
+ ('bzip2', '1.0.8'),
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('Perl', '5.36.1'),
+ ('Perl-bundle-CPAN', '5.36.1'),
+ ('Boost', '1.82.0'),
+ ('libreadline', '8.2'),
+ ('matplotlib', '3.7.2'),
+ ('netCDF', '4.9.2'),
+ ('netCDF-Fortran', '4.6.1'),
+ ('PnetCDF', '1.12.3'),
+ ('Tkinter', '%(pyver)s'),
+ ('X11', '20230603'),
+ ('mpi4py', '3.1.4'),
+]
+
+runtest = True
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/a/Arcade-Learning-Environment/Arcade-Learning-Environment-0.8.1-foss-2023a.eb b/easybuild/easyconfigs/a/Arcade-Learning-Environment/Arcade-Learning-Environment-0.8.1-foss-2023a.eb
new file mode 100644
index 00000000000..aca8f2dca72
--- /dev/null
+++ b/easybuild/easyconfigs/a/Arcade-Learning-Environment/Arcade-Learning-Environment-0.8.1-foss-2023a.eb
@@ -0,0 +1,63 @@
+easyblock = 'CMakeMake'
+
+name = 'Arcade-Learning-Environment'
+version = '0.8.1'
+
+homepage = 'https://github.com/mgbellemare/Arcade-Learning-Environment'
+description = """The Arcade Learning Environment (ALE) is a simple framework that allows
+researchers and hobbyists to develop AI agents for Atari 2600 games. It is
+built on top of the Atari 2600 emulator Stella and separates the details of
+emulation from agent design. This video depicts over 50 games currently
+supported in the ALE."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+github_account = 'mgbellemare'
+source_urls = [GITHUB_SOURCE]
+sources = ['v%(version)s.tar.gz']
+checksums = ['28960616cd89c18925ced7bbdeec01ab0b2ebd2d8ce5b7c88930e97381b4c3b5']
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('pybind11', '2.11.1'),
+ ('SciPy-bundle', '2023.07'),
+ ('SDL2', '2.28.2'),
+ ('zlib', '1.2.13'),
+]
+
+# main build of C++ libraries
+configopts = "-DBUILD_PYTHON_LIB=OFF"
+
+# install Python bindings and its dependencies
+exts_defaultclass = 'PythonPackage'
+exts_default_options = {
+ 'download_dep_fail': True,
+ 'use_pip': True,
+ 'sanity_pip_check': True,
+}
+exts_list = [
+ ('ale-py', version, {
+ 'patches': ['%(name)s-%(version)s_fix_version.patch'],
+ 'preinstallopts': 'ALE_BUILD_VERSION=%(version)s',
+ 'source_tmpl': 'v%(version)s.tar.gz',
+ 'checksums': [
+ {'v0.8.1.tar.gz': '28960616cd89c18925ced7bbdeec01ab0b2ebd2d8ce5b7c88930e97381b4c3b5'},
+ {'ale-py-0.8.1_fix_version.patch': '3ad39a05eb82c3aacf34a6de562ad2d76c254a906963bdef6a810f0b5ce0d22f'},
+ ],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/ale-import-roms', 'lib64/libale.a'],
+ 'dirs': ['include/ale', 'lib/python%(pyshortver)s/site-packages/'],
+}
+
+sanity_check_commands = ["ale-import-roms --help"]
+
+modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/a/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/Armadillo/Armadillo-11.4.3-foss-2022a.eb b/easybuild/easyconfigs/a/Armadillo/Armadillo-11.4.3-foss-2022a.eb
index 261ecca60bb..c8c874dba00 100644
--- a/easybuild/easyconfigs/a/Armadillo/Armadillo-11.4.3-foss-2022a.eb
+++ b/easybuild/easyconfigs/a/Armadillo/Armadillo-11.4.3-foss-2022a.eb
@@ -12,10 +12,13 @@ source_urls = ['https://sourceforge.net/projects/arma/files']
sources = [SOURCELOWER_TAR_XZ]
checksums = ['87603263664988af41da2ca4f36205e36ea47a9281fa6cfd463115f3797a1da2']
-builddependencies = [('CMake', '3.24.3')]
+builddependencies = [
+ ('CMake', '3.24.3'),
+]
dependencies = [
('Boost', '1.79.0'),
+ ('HDF5', '1.12.2'),
('arpack-ng', '3.8.0'),
]
diff --git a/easybuild/easyconfigs/a/Armadillo/Armadillo-11.4.3-foss-2022b.eb b/easybuild/easyconfigs/a/Armadillo/Armadillo-11.4.3-foss-2022b.eb
index f5eb6f67b05..1be96397544 100644
--- a/easybuild/easyconfigs/a/Armadillo/Armadillo-11.4.3-foss-2022b.eb
+++ b/easybuild/easyconfigs/a/Armadillo/Armadillo-11.4.3-foss-2022b.eb
@@ -12,10 +12,13 @@ source_urls = ['https://sourceforge.net/projects/arma/files']
sources = [SOURCELOWER_TAR_XZ]
checksums = ['87603263664988af41da2ca4f36205e36ea47a9281fa6cfd463115f3797a1da2']
-builddependencies = [('CMake', '3.24.3')]
+builddependencies = [
+ ('CMake', '3.24.3'),
+]
dependencies = [
('Boost', '1.81.0'),
+ ('HDF5', '1.14.0'),
('arpack-ng', '3.8.0'),
]
diff --git a/easybuild/easyconfigs/a/Armadillo/Armadillo-12.6.2-foss-2023a.eb b/easybuild/easyconfigs/a/Armadillo/Armadillo-12.6.2-foss-2023a.eb
index 2ca4adac034..9b6d74fe58b 100644
--- a/easybuild/easyconfigs/a/Armadillo/Armadillo-12.6.2-foss-2023a.eb
+++ b/easybuild/easyconfigs/a/Armadillo/Armadillo-12.6.2-foss-2023a.eb
@@ -18,6 +18,7 @@ builddependencies = [
dependencies = [
('Boost', '1.82.0'),
+ ('HDF5', '1.14.0'),
('arpack-ng', '3.9.0'),
]
diff --git a/easybuild/easyconfigs/a/Armadillo/Armadillo-12.8.0-foss-2023b.eb b/easybuild/easyconfigs/a/Armadillo/Armadillo-12.8.0-foss-2023b.eb
index cde4b18960c..2ca0b7de51d 100644
--- a/easybuild/easyconfigs/a/Armadillo/Armadillo-12.8.0-foss-2023b.eb
+++ b/easybuild/easyconfigs/a/Armadillo/Armadillo-12.8.0-foss-2023b.eb
@@ -17,6 +17,7 @@ builddependencies = [
]
dependencies = [
('Boost', '1.83.0'),
+ ('HDF5', '1.14.3'),
('arpack-ng', '3.9.0'),
]
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
new file mode 100644
index 00000000000..5219bd9c54f
--- /dev/null
+++ b/easybuild/easyconfigs/a/Arrow/Arrow-16.1.0-gfbf-2023b.eb
@@ -0,0 +1,87 @@
+easyblock = 'CMakeMake'
+
+name = 'Arrow'
+version = '16.1.0'
+
+homepage = 'https://arrow.apache.org'
+description = """Apache Arrow (incl. PyArrow Python bindings), a cross-language development platform
+ for in-memory data."""
+
+toolchain = {'name': 'gfbf', 'version': '2023b'}
+
+source_urls = ['https://archive.apache.org/dist/%(namelower)s/%(namelower)s-%(version)s']
+sources = ['apache-arrow-%(version)s.tar.gz']
+checksums = ['c9e60c7e87e59383d21b20dc874b17153729ee153264af6d21654b7dff2c60d7']
+
+builddependencies = [
+ ('CMake', '3.27.6'),
+ ('Autotools', '20220317'),
+ ('flex', '2.6.4'),
+ ('Bison', '3.8.2'),
+ ('pkgconf', '2.0.3'),
+]
+
+# Arrow strongly prefers included jemalloc, so not including it as a dependency
+dependencies = [
+ ('Python', '3.11.5'),
+ ('SciPy-bundle', '2023.11'), # for numpy
+ ('Boost', '1.83.0'),
+ ('lz4', '1.9.4'),
+ ('zlib', '1.2.13'),
+ ('bzip2', '1.0.8'),
+ ('zstd', '1.5.5'),
+ ('snappy', '1.1.10'),
+ ('RapidJSON', '1.1.0-20240409'),
+ ('RE2', '2024-03-01'),
+ ('utf8proc', '2.9.0'),
+]
+
+start_dir = 'cpp'
+
+# see https://arrow.apache.org/docs/developers/python.html
+configopts = "-DARROW_DATASET=on -DARROW_PYTHON=on -DARROW_PARQUET=ON -DARROW_ORC=ON "
+configopts += "-DCMAKE_INSTALL_LIBDIR=lib -DPython3_ROOT_DIR=$EBROOTPYTHON "
+configopts += "-DARROW_WITH_ZLIB=ON -DARROW_WITH_BZ2=ON -DARROW_WITH_LZ4=ON -DARROW_WITH_SNAPPY=ON "
+configopts += "-DARROW_WITH_ZSTD=ON -DZSTD_ROOT=$EBROOTZSTD "
+
+# install Python bindings
+_pyarrow_preinstall_opts = "export PKG_CONFIG_PATH=%(installdir)s/lib/pkgconfig:$PKG_CONFIG_PATH && "
+_pyarrow_preinstall_opts += "export Arrow_DIR=%(installdir)s && export ArrowDataset_DIR=%(installdir)s && "
+_pyarrow_preinstall_opts += "export ArrowAcero_DIR=%(installdir)s && export Parquet_DIR=%(installdir)s && "
+_pyarrow_preinstall_opts += "export XDG_CACHE_HOME=$TMPDIR && "
+_pyarrow_preinstall_opts += "sed -i 's/numpy==[0-9.]*/numpy/g' pyproject.toml && "
+_pyarrow_preinstall_opts += "Python3_ROOT_DIR=$EBROOTPYTHON "
+_pyarrow_preinstall_opts += "PYARROW_CMAKE_OPTIONS='-DZSTD_LIB=$EBROOTZSTD/lib/libzstd.%s ' " % SHLIB_EXT
+_pyarrow_preinstall_opts += "PYARROW_WITH_DATASET=1 PYARROW_WITH_PARQUET=1 PYARROW_WITH_ORC=1 "
+
+exts_defaultclass = 'PythonPackage'
+exts_default_options = {
+ 'download_dep_fail': True,
+ 'use_pip': True,
+ 'sanity_pip_check': True,
+}
+exts_list = [
+ ('pyarrow', version, {
+ 'sources': ['apache-arrow-%(version)s.tar.gz'],
+ 'checksums': ['c9e60c7e87e59383d21b20dc874b17153729ee153264af6d21654b7dff2c60d7'],
+ 'start_dir': '%(builddir)s/apache-arrow-%(version)s/python',
+ 'preinstallopts': _pyarrow_preinstall_opts,
+ }),
+]
+
+modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'}
+
+sanity_check_paths = {
+ 'files': ['lib/libarrow.a', 'lib/libarrow.%s' % SHLIB_EXT,
+ 'lib/python%%(pyshortver)s/site-packages/pyarrow/libarrow_python.%s' % SHLIB_EXT],
+ 'dirs': ['include/arrow', 'lib/cmake/Arrow', 'lib/pkgconfig', 'lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = [
+ "python -c 'import pyarrow'",
+ "python -c 'import pyarrow.dataset'",
+ "python -c 'import pyarrow.parquet'",
+ "python -c 'import pyarrow.orc'",
+]
+
+moduleclass = 'data'
diff --git a/easybuild/easyconfigs/a/Arrow/Arrow-17.0.0-gfbf-2024a.eb b/easybuild/easyconfigs/a/Arrow/Arrow-17.0.0-gfbf-2024a.eb
new file mode 100644
index 00000000000..76dcfd2cc40
--- /dev/null
+++ b/easybuild/easyconfigs/a/Arrow/Arrow-17.0.0-gfbf-2024a.eb
@@ -0,0 +1,96 @@
+easyblock = 'CMakeMake'
+
+name = 'Arrow'
+version = '17.0.0'
+
+homepage = 'https://arrow.apache.org'
+description = """Apache Arrow (incl. PyArrow Python bindings), a cross-language development platform
+ for in-memory data."""
+
+toolchain = {'name': 'gfbf', 'version': '2024a'}
+
+source_urls = ['https://archive.apache.org/dist/%(namelower)s/%(namelower)s-%(version)s']
+sources = ['apache-arrow-%(version)s.tar.gz']
+checksums = ['9d280d8042e7cf526f8c28d170d93bfab65e50f94569f6a790982a878d8d898d']
+
+builddependencies = [
+ ('CMake', '3.29.3'),
+ ('Cython', '3.0.10'),
+ ('Autotools', '20231222'),
+ ('flex', '2.6.4'),
+ ('Bison', '3.8.2'),
+ ('pkgconf', '2.2.0'),
+]
+
+# Arrow strongly prefers included jemalloc, so not including it as a dependency
+dependencies = [
+ ('Python', '3.12.3'),
+ ('Python-bundle-PyPI', '2024.06'),
+ ('SciPy-bundle', '2024.05'), # for numpy
+ ('Boost', '1.85.0'),
+ ('lz4', '1.9.4'),
+ ('zlib', '1.3.1'),
+ ('bzip2', '1.0.8'),
+ ('zstd', '1.5.6'),
+ ('snappy', '1.1.10'),
+ ('RapidJSON', '1.1.0-20240815'),
+ ('RE2', '2024-07-02'),
+ ('utf8proc', '2.9.0'),
+]
+
+start_dir = 'cpp'
+
+# see https://arrow.apache.org/docs/developers/python.html
+configopts = "-DARROW_DATASET=on -DARROW_PYTHON=on -DARROW_PARQUET=ON -DARROW_ORC=ON "
+configopts += "-DCMAKE_INSTALL_LIBDIR=lib -DPython3_ROOT_DIR=$EBROOTPYTHON "
+configopts += "-DARROW_WITH_ZLIB=ON -DARROW_WITH_BZ2=ON -DARROW_WITH_LZ4=ON -DARROW_WITH_SNAPPY=ON "
+configopts += "-DARROW_WITH_ZSTD=ON -DZSTD_ROOT=$EBROOTZSTD "
+
+# install Python bindings
+_pyarrow_preinstall_opts = "export PKG_CONFIG_PATH=%(installdir)s/lib/pkgconfig:$PKG_CONFIG_PATH && "
+_pyarrow_preinstall_opts += "export Arrow_DIR=%(installdir)s && export ArrowDataset_DIR=%(installdir)s && "
+_pyarrow_preinstall_opts += "export ArrowAcero_DIR=%(installdir)s && export Parquet_DIR=%(installdir)s && "
+_pyarrow_preinstall_opts += "export XDG_CACHE_HOME=$TMPDIR && "
+_pyarrow_preinstall_opts += "sed -i 's/numpy==[0-9.]*/numpy/g' pyproject.toml && "
+_pyarrow_preinstall_opts += "Python3_ROOT_DIR=$EBROOTPYTHON "
+_pyarrow_preinstall_opts += "PYARROW_CMAKE_OPTIONS='-DZSTD_LIB=$EBROOTZSTD/lib/libzstd.%s ' " % SHLIB_EXT
+_pyarrow_preinstall_opts += "PYARROW_WITH_DATASET=1 PYARROW_WITH_PARQUET=1 PYARROW_WITH_ORC=1 "
+
+exts_defaultclass = 'PythonPackage'
+exts_default_options = {
+ 'download_dep_fail': True,
+ 'use_pip': True,
+ 'sanity_pip_check': True,
+}
+exts_list = [
+ ('pyarrow', version, {
+ 'preinstallopts': (
+ "export PKG_CONFIG_PATH=%(installdir)s/lib/pkgconfig:$PKG_CONFIG_PATH"
+ " && export Arrow_DIR=%(installdir)s && export ArrowDataset_DIR=%(installdir)s"
+ " && export ArrowAcero_DIR=%(installdir)s && export Parquet_DIR=%(installdir)s"
+ " && export XDG_CACHE_HOME=$TMPDIR && sed -i 's/numpy==[0-9.]*/numpy/g' pyproject.toml"
+ " && Python3_ROOT_DIR=$EBROOTPYTHON PYARROW_CMAKE_OPTIONS='-DZSTD_LIB=$EBROOTZSTD/lib/libzstd.so"
+ " ' PYARROW_WITH_DATASET=1 PYARROW_WITH_PARQUET=1 PYARROW_WITH_ORC=1 "
+ ),
+ 'sources': ['apache-arrow-%(version)s.tar.gz'],
+ 'start_dir': '%(builddir)s/apache-arrow-%(version)s/python',
+ 'checksums': ['9d280d8042e7cf526f8c28d170d93bfab65e50f94569f6a790982a878d8d898d'],
+ }),
+]
+
+modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'}
+
+sanity_check_paths = {
+ 'files': ['lib/libarrow.a', 'lib/libarrow.%s' % SHLIB_EXT,
+ 'lib/python%%(pyshortver)s/site-packages/pyarrow/libarrow_python.%s' % SHLIB_EXT],
+ 'dirs': ['include/arrow', 'lib/cmake/Arrow', 'lib/pkgconfig', 'lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = [
+ "python -c 'import pyarrow'",
+ "python -c 'import pyarrow.dataset'",
+ "python -c 'import pyarrow.parquet'",
+ "python -c 'import pyarrow.orc'",
+]
+
+moduleclass = 'data'
diff --git a/easybuild/easyconfigs/a/Austin/Austin-3.2.0-GCCcore-11.2.0.eb b/easybuild/easyconfigs/a/Austin/Austin-3.2.0-GCCcore-11.2.0.eb
index d4f3285a8fd..b2d0fe9046a 100644
--- a/easybuild/easyconfigs/a/Austin/Austin-3.2.0-GCCcore-11.2.0.eb
+++ b/easybuild/easyconfigs/a/Austin/Austin-3.2.0-GCCcore-11.2.0.eb
@@ -53,7 +53,7 @@ sanity_check_paths = {
sanity_check_commands = [
"austin --help",
"austin-tui --help",
- "pip check",
+ "PIP_DISABLE_PIP_VERSION_CHECK=true python -s -m pip check",
]
modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'}
diff --git a/easybuild/easyconfigs/a/Auto-WEKA/Auto-WEKA-2.6-WEKA-3.8.5-Java-11.eb b/easybuild/easyconfigs/a/Auto-WEKA/Auto-WEKA-2.6-WEKA-3.8.5-Java-11.eb
new file mode 100644
index 00000000000..165bfe50d5a
--- /dev/null
+++ b/easybuild/easyconfigs/a/Auto-WEKA/Auto-WEKA-2.6-WEKA-3.8.5-Java-11.eb
@@ -0,0 +1,42 @@
+easyblock = "Tarball"
+
+name = 'Auto-WEKA'
+version = '2.6'
+local_weka_version = '3.8.5'
+versionsuffix = '-WEKA-%s-Java-%%(javaver)s' % local_weka_version
+
+homepage = 'http://www.cs.ubc.ca/labs/beta/Projects/autoweka/'
+description = """
+Auto-WEKA considers the problem of simultaneously selecting a learning
+algorithm and setting its hyperparameters, going beyond previous methods that
+address these issues in isolation. Auto-WEKA does this using a fully automated
+approach, leveraging recent innovations in Bayesian optimization. Our hope is
+that Auto-WEKA will help non-expert users to more effectively identify machine
+learning algorithms and hyperparameter settings appropriate to their
+applications, and hence to achieve improved performance."""
+
+toolchain = SYSTEM
+
+source_urls = ['http://www.cs.ubc.ca/labs/beta/Projects/autoweka/']
+sources = ['autoweka-%(version)s.zip']
+checksums = ['8fba8835f6326a9fd621ffe9f119921adae00dcef97ffad5357362b155374840']
+
+dependencies = [
+ ('Java', '11'),
+ ('WEKA', local_weka_version, '-Java-%(javaver)s'),
+]
+
+sanity_check_paths = {
+ 'files': ['autoweka.jar'],
+ 'dirs': []
+}
+
+sanity_check_commands = [
+ "java weka.Run -no-scan weka.classifiers.meta.AutoWEKAClassifier -h"
+]
+
+modloadmsg = """Run %(name)s classifiers with:
+java weka.Run -no-scan weka.classifiers.meta.AutoWEKAClassifier -h
+"""
+
+moduleclass = 'data'
diff --git a/easybuild/easyconfigs/a/Autoconf-archive/Autoconf-archive-2023.02.20-GCCcore-12.2.0.eb b/easybuild/easyconfigs/a/Autoconf-archive/Autoconf-archive-2023.02.20-GCCcore-12.2.0.eb
new file mode 100644
index 00000000000..73e0608725b
--- /dev/null
+++ b/easybuild/easyconfigs/a/Autoconf-archive/Autoconf-archive-2023.02.20-GCCcore-12.2.0.eb
@@ -0,0 +1,53 @@
+##
+# This is a contribution from DeepThought HPC Service, Flinders University, Adelaide, Australia
+# Homepage: https://staff.flinders.edu.au/research/deep-thought
+#
+# Authors:: Robert Qiao
+# License:: GNU Free Documentation License
+#
+# Notes::
+##
+
+easyblock = 'ConfigureMake'
+
+name = 'Autoconf-archive'
+version = '2023.02.20'
+
+homepage = "https://www.gnu.org/software/autoconf-archive"
+
+description = """
+The GNU Autoconf Archive is a collection of more than 500 macros for GNU Autoconf
+that have been contributed as free software by friendly supporters of the cause from
+all over the Internet. Every single one of those macros can be re-used without
+imposing any restrictions whatsoever on the licensing of the generated configure script.
+In particular, it is possible to use all those macros in configure scripts that
+are meant for non-free software. This policy is unusual for a Free Software Foundation
+project. The FSF firmly believes that software ought to be free, and software licenses
+like the GPL are specifically designed to ensure that derivative work based on free
+software must be free as well. In case of Autoconf, however, an exception has been made,
+because Autoconf is at such a pivotal position in the software development tool chain
+that the benefits from having this tool available as widely as possible outweigh the
+disadvantage that some authors may choose to use it, too, for proprietary software.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '12.2.0'}
+
+source_urls = [GNU_SOURCE]
+sources = [SOURCELOWER_TAR_XZ]
+checksums = ['71d4048479ae28f1f5794619c3d72df9c01df49b1c628ef85fde37596dc31a33']
+
+builddependencies = [
+ ('binutils', '2.39'),
+ ('Autotools', '20220317'),
+ ('makeinfo', '7.0.3'),
+]
+
+preconfigopts = 'autoreconf -i -f &&'
+
+sanity_check_paths = {
+ 'files': [],
+ 'dirs': ['share/%s' % x for x in
+ ['aclocal', 'doc', 'info']],
+}
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/a/Autoconf/Autoconf-2.72-GCCcore-13.3.0.eb b/easybuild/easyconfigs/a/Autoconf/Autoconf-2.72-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..8cbff6d13b2
--- /dev/null
+++ b/easybuild/easyconfigs/a/Autoconf/Autoconf-2.72-GCCcore-13.3.0.eb
@@ -0,0 +1,48 @@
+easyblock = 'ConfigureMake'
+
+name = 'Autoconf'
+version = '2.72'
+
+homepage = 'https://www.gnu.org/software/autoconf/'
+
+description = """
+ Autoconf is an extensible package of M4 macros that produce shell scripts
+ to automatically configure software source code packages. These scripts can
+ adapt the packages to many kinds of UNIX-like systems without manual user
+ intervention. Autoconf creates a configuration script for a package from a
+ template file that lists the operating system features that the package can
+ use, in the form of M4 macro calls.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = [GNU_SOURCE]
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['afb181a76e1ee72832f6581c0eddf8df032b83e2e0239ef79ebedc4467d92d6e']
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+
+dependencies = [
+ ('M4', '1.4.19'),
+ # non-standard Perl modules are required,
+ # see https://github.com/easybuilders/easybuild-easyconfigs/issues/1822
+ ('Perl', '5.38.2'),
+]
+
+preconfigopts = "export PERL='/usr/bin/env perl' && "
+
+sanity_check_paths = {
+ 'files': ["bin/%s" % x
+ for x in ["autoconf", "autoheader", "autom4te", "autoreconf",
+ "autoscan", "autoupdate", "ifnames"]],
+ 'dirs': [],
+}
+
+sanity_check_commands = [
+ "autoconf --help",
+ "autom4te --help",
+]
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/a/Automake/Automake-1.16.5-GCCcore-13.3.0.eb b/easybuild/easyconfigs/a/Automake/Automake-1.16.5-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..f22a104b063
--- /dev/null
+++ b/easybuild/easyconfigs/a/Automake/Automake-1.16.5-GCCcore-13.3.0.eb
@@ -0,0 +1,39 @@
+easyblock = 'ConfigureMake'
+
+name = 'Automake'
+version = '1.16.5'
+
+homepage = 'https://www.gnu.org/software/automake/automake.html'
+
+description = "Automake: GNU Standards-compliant Makefile generator"
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = [GNU_SOURCE]
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['07bd24ad08a64bc17250ce09ec56e921d6343903943e99ccf63bbf0705e34605']
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+
+dependencies = [
+ ('Autoconf', '2.72'),
+ # non-standard Perl modules are required,
+ # see https://github.com/easybuilders/easybuild-easyconfigs/issues/1822
+ ('Perl', '5.38.2'),
+]
+
+preconfigopts = "export PERL='/usr/bin/env perl' && "
+
+sanity_check_paths = {
+ 'files': ['bin/aclocal', 'bin/automake'],
+ 'dirs': []
+}
+
+sanity_check_commands = [
+ "aclocal --help",
+ "automake --help",
+]
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/a/Autotools/Autotools-20231222-GCCcore-13.3.0.eb b/easybuild/easyconfigs/a/Autotools/Autotools-20231222-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..4c0c23dd0b1
--- /dev/null
+++ b/easybuild/easyconfigs/a/Autotools/Autotools-20231222-GCCcore-13.3.0.eb
@@ -0,0 +1,24 @@
+easyblock = 'Bundle'
+
+name = 'Autotools'
+version = '20231222' # date of the most recent change
+
+homepage = 'https://autotools.io'
+
+description = """
+ This bundle collect the standard GNU build tools: Autoconf, Automake
+ and libtool
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+dependencies = [
+ ('Autoconf', '2.72'), # 20231222
+ ('Automake', '1.16.5'), # 20211003
+ ('libtool', '2.4.7'), # 20220317
+]
+
+# Pure bundle -- no need to specify 'binutils' used when building GCCcore
+# toolchain as build dependency
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/a/absl-py/absl-py-2.1.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/a/absl-py/absl-py-2.1.0-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..faadde2a51d
--- /dev/null
+++ b/easybuild/easyconfigs/a/absl-py/absl-py-2.1.0-GCCcore-12.3.0.eb
@@ -0,0 +1,28 @@
+easyblock = 'PythonBundle'
+
+name = 'absl-py'
+version = '2.1.0'
+
+homepage = 'https://github.com/abseil/abseil-py'
+description = """absl-py is a collection of Python library code for building Python
+applications. The code is collected from Google's own Python code base, and has
+been extensively tested and used in production."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+builddependencies = [('binutils', '2.40')]
+
+dependencies = [('Python', '3.11.3')]
+
+use_pip = True
+
+exts_list = [
+ ('absl-py', version, {
+ 'modulename': 'absl',
+ 'checksums': ['7820790efbb316739cde8b4e19357243fc3608a152024288513dd968d7d959ff'],
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/a/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/accelerate/accelerate-0.33.0-foss-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/a/accelerate/accelerate-0.33.0-foss-2023a-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..7f6d595a7c5
--- /dev/null
+++ b/easybuild/easyconfigs/a/accelerate/accelerate-0.33.0-foss-2023a-CUDA-12.1.1.eb
@@ -0,0 +1,39 @@
+easyblock = 'PythonBundle'
+
+name = 'accelerate'
+version = '0.33.0'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://github.com/huggingface/accelerate'
+description = """A simple way to launch, train, and use PyTorch models on almost any device and
+distributed configuration, automatic mixed precision (including fp8),
+and easy-to-configure FSDP and DeepSpeed support."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('SciPy-bundle', '2023.07'),
+ ('CUDA', '12.1.1', '', SYSTEM),
+ ('PyTorch-bundle', '2.1.2', versionsuffix),
+ ('PyYAML', '6.0'),
+ ('Safetensors', '0.4.3'),
+]
+
+sanity_pip_check = True
+use_pip = True
+
+exts_list = [
+ ('huggingface-hub', '0.24.5', {
+ 'sources': ['huggingface_hub-%(version)s.tar.gz'],
+ 'checksums': ['7b45d6744dd53ce9cbf9880957de00e9d10a9ae837f1c9b7255fc8fa4e8264f3'],
+ }),
+ (name, version, {
+ 'checksums': ['11ba481ed6ea09191775df55ce464aeeba67a024bd0261a44b77b30fb439e26a'],
+ }),
+]
+
+sanity_check_commands = ['accelerate test']
+
+moduleclass = 'ai'
diff --git a/easybuild/easyconfigs/a/adjustText/adjustText-0.7.3-foss-2022b.eb b/easybuild/easyconfigs/a/adjustText/adjustText-0.7.3-foss-2022b.eb
new file mode 100644
index 00000000000..4c13c121047
--- /dev/null
+++ b/easybuild/easyconfigs/a/adjustText/adjustText-0.7.3-foss-2022b.eb
@@ -0,0 +1,27 @@
+easyblock = 'PythonPackage'
+
+name = 'adjustText'
+version = '0.7.3'
+
+homepage = 'https://github.com/Phlya/adjustText'
+description = "A small library for automatically adjustment of text position in matplotlib plots to minimize overlaps."
+
+toolchain = {'name': 'foss', 'version': '2022b'}
+
+sources = [SOURCE_TAR_GZ]
+checksums = ['b90e275a95b4d980cbbac7967914b8d66477c09bc346a0b3c9e2125bba664b06']
+
+dependencies = [
+ ('Python', '3.10.8'),
+ ('matplotlib', '3.7.0'),
+ ('SciPy-bundle', '2023.02'),
+]
+
+download_dep_fail = True
+use_pip = True
+
+sanity_pip_check = True
+
+options = {'modulename': 'adjustText'}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/a/adjustText/adjustText-0.7.3-foss-2023a.eb b/easybuild/easyconfigs/a/adjustText/adjustText-0.7.3-foss-2023a.eb
new file mode 100644
index 00000000000..70ad0961c47
--- /dev/null
+++ b/easybuild/easyconfigs/a/adjustText/adjustText-0.7.3-foss-2023a.eb
@@ -0,0 +1,27 @@
+easyblock = 'PythonPackage'
+
+name = 'adjustText'
+version = '0.7.3'
+
+homepage = 'https://github.com/Phlya/adjustText'
+description = "A small library for automatically adjustment of text position in matplotlib plots to minimize overlaps."
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+sources = [SOURCE_TAR_GZ]
+checksums = ['b90e275a95b4d980cbbac7967914b8d66477c09bc346a0b3c9e2125bba664b06']
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('matplotlib', '3.7.2'),
+ ('SciPy-bundle', '2023.07'),
+]
+
+download_dep_fail = True
+use_pip = True
+
+sanity_pip_check = True
+
+options = {'modulename': 'adjustText'}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/a/adjustText/adjustText-1.1.1-foss-2023a.eb b/easybuild/easyconfigs/a/adjustText/adjustText-1.1.1-foss-2023a.eb
new file mode 100644
index 00000000000..f109d19d3aa
--- /dev/null
+++ b/easybuild/easyconfigs/a/adjustText/adjustText-1.1.1-foss-2023a.eb
@@ -0,0 +1,27 @@
+easyblock = 'PythonBundle'
+
+name = 'adjustText'
+version = '1.1.1'
+
+homepage = 'https://github.com/Phlya/adjustText'
+description = "A small library for automatically adjustment of text position in matplotlib plots to minimize overlaps."
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('matplotlib', '3.7.2'),
+ ('SciPy-bundle', '2023.07'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ (name, version, {
+ 'modulename': 'adjustText',
+ 'checksums': ['e2c0975ef2c642478e60f4c03c5e9afbdeda7764336907ef69a9205bfa2d9896'],
+ }),
+]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/a/affogato/affogato-0.3.3-foss-2023a.eb b/easybuild/easyconfigs/a/affogato/affogato-0.3.3-foss-2023a.eb
new file mode 100644
index 00000000000..391f9d95eda
--- /dev/null
+++ b/easybuild/easyconfigs/a/affogato/affogato-0.3.3-foss-2023a.eb
@@ -0,0 +1,40 @@
+easyblock = 'CMakeMakeCp'
+
+name = 'affogato'
+version = '0.3.3'
+
+homepage = 'https://github.com/constantinpape/affogato/'
+description = """Affinity based segmentation algorithms and tools."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+source_urls = ['https://github.com/constantinpape/affogato/archive/']
+sources = ['%(version)s.tar.gz']
+checksums = ['ad3bb1aca50ce9311d4e88e97e701237bce94faa6e79460f0bc2d2061f1484d2']
+
+builddependencies = [('CMake', '3.26.3')]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Boost', '1.82.0'),
+ ('SciPy-bundle', '2023.07'),
+ ('vigra', '1.11.2'),
+ ('xtensor', '0.24.7'),
+ ('h5py', '3.9.0'),
+]
+
+configopts = '-DBUILD_PYTHON=ON '
+# Fix path to python executable - it finds v3.6.8 from /usr/bin/ without this fix
+configopts += '-DPYTHON_EXECUTABLE="$EBROOTPYTHON/bin/python" '
+
+files_to_copy = [(['python/affogato'], 'lib/python%(pyshortver)s/site-packages')]
+
+sanity_check_paths = {
+ 'files': [],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages/affogato'],
+}
+sanity_check_commands = ["python -c 'import affogato'"]
+
+modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'}
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/a/aiohttp/aiohttp-3.10.10-GCCcore-13.3.0.eb b/easybuild/easyconfigs/a/aiohttp/aiohttp-3.10.10-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..c6b30e2d82e
--- /dev/null
+++ b/easybuild/easyconfigs/a/aiohttp/aiohttp-3.10.10-GCCcore-13.3.0.eb
@@ -0,0 +1,72 @@
+easyblock = 'PythonBundle'
+
+name = 'aiohttp'
+version = '3.10.10'
+
+homepage = 'https://github.com/aio-libs/aiohttp'
+description = "Asynchronous HTTP client/server framework for asyncio and Python."
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('poetry', '1.8.3'),
+ ('Cython', '3.0.10'),
+]
+
+dependencies = [
+ ('Python', '3.12.3'),
+ ('Python-bundle-PyPI', '2024.06'),
+]
+
+use_pip = True
+
+# aioredis and aiosignal do not depend on aiohttp, but are commonly used together and share dependencies
+exts_list = [
+ ('botocore', '1.35.36', {
+ 'checksums': ['354ec1b766f0029b5d6ff0c45d1a0f9e5007b7d2f3ec89bcdd755b208c5bc797'],
+ }),
+ ('jmespath', '1.0.1', {
+ 'checksums': ['90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe'],
+ }),
+ ('multidict', '6.1.0', {
+ 'checksums': ['22ae2ebf9b0c69d206c003e2f6a914ea33f0a932d4aa16f236afc049d9958f4a'],
+ }),
+ ('expandvars', '0.12.0', {
+ 'checksums': ['7d1adfa55728cf4b5d812ece3d087703faea953e0c0a1a78415de9df5024d844'],
+ }),
+ ('propcache', '0.2.0', {
+ 'checksums': ['df81779732feb9d01e5d513fad0122efb3d53bbc75f61b2a4f29a020bc985e70'],
+ }),
+ ('yarl', '1.15.4', {
+ 'checksums': ['a0c5e271058d148d730219ca4f33c5d841c6bd46e05b0da60fea7b516906ccd3'],
+ }),
+ ('frozenlist', '1.4.1', {
+ 'checksums': ['c037a86e8513059a2613aaba4d817bb90b9d9b6b69aace3ce9c877e8c8ed402b'],
+ }),
+ ('async-timeout', '4.0.3', {
+ 'checksums': ['4640d96be84d82d02ed59ea2b7105a0f7b33abe8703703cd0ab0bf87c427522f'],
+ }),
+ ('aiosignal', '1.3.1', {
+ 'checksums': ['54cd96e15e1649b75d6c87526a6ff0b6c1b0dd3459f43d9ca11d48c339b68cfc'],
+ }),
+ ('aiohappyeyeballs', '2.4.3', {
+ 'checksums': ['75cf88a15106a5002a8eb1dab212525c00d1f4c0fa96e551c9fbe6f09a621586'],
+ }),
+ (name, version, {
+ 'checksums': ['0631dd7c9f0822cc61c88586ca76d5b5ada26538097d0f1df510b082bad3411a'],
+ }),
+ ('aioitertools', '0.12.0', {
+ 'checksums': ['c2a9055b4fbb7705f561b9d86053e8af5d10cc845d22c32008c43490b2d8dd6b'],
+ }),
+ ('wrapt', '1.16.0', {
+ 'checksums': ['5f370f952971e7d17c7d1ead40e49f32345a7f7a5373571ef44d800d06b1899d'],
+ }),
+ ('aiobotocore', '2.15.2', {
+ 'checksums': ['9ac1cfcaccccc80602968174aa032bf978abe36bd4e55e6781d6500909af1375'],
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/a/aiohttp/aiohttp-3.8.5-GCCcore-12.3.0.eb b/easybuild/easyconfigs/a/aiohttp/aiohttp-3.8.5-GCCcore-12.3.0.eb
index 3c96a3e7458..d5eec66b4ab 100644
--- a/easybuild/easyconfigs/a/aiohttp/aiohttp-3.8.5-GCCcore-12.3.0.eb
+++ b/easybuild/easyconfigs/a/aiohttp/aiohttp-3.8.5-GCCcore-12.3.0.eb
@@ -30,8 +30,8 @@ exts_list = [
('frozenlist', '1.4.0', {
'checksums': ['09163bdf0b2907454042edb19f887c6d33806adc71fbd54afc14908bfdc22251'],
}),
- ('async-timeout', '4.0.2', {
- 'checksums': ['2163e1640ddb52b7a8c80d0a67a08587e5d245cc9c553a74a847056bc2976b15'],
+ ('async-timeout', '4.0.3', {
+ 'checksums': ['4640d96be84d82d02ed59ea2b7105a0f7b33abe8703703cd0ab0bf87c427522f'],
}),
(name, version, {
'checksums': ['b9552ec52cc147dbf1944ac7ac98af7602e51ea2dcd076ed194ca3c0d1c7d0bc'],
diff --git a/easybuild/easyconfigs/a/aiohttp/aiohttp-3.9.5-GCCcore-13.2.0.eb b/easybuild/easyconfigs/a/aiohttp/aiohttp-3.9.5-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..550b4aebf60
--- /dev/null
+++ b/easybuild/easyconfigs/a/aiohttp/aiohttp-3.9.5-GCCcore-13.2.0.eb
@@ -0,0 +1,53 @@
+easyblock = 'PythonBundle'
+
+name = 'aiohttp'
+version = '3.9.5'
+
+homepage = 'https://github.com/aio-libs/aiohttp'
+description = "Asynchronous HTTP client/server framework for asyncio and Python."
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('poetry', '1.6.1'),
+]
+
+dependencies = [
+ ('Python', '3.11.5'),
+ ('Python-bundle-PyPI', '2023.10'),
+]
+
+use_pip = True
+
+# aioredis and aiosignal do not depend on aiohttp, but are commonly used together and share dependencies
+exts_list = [
+ ('multidict', '6.0.5', {
+ 'checksums': ['f7e301075edaf50500f0b341543c41194d8df3ae5caf4702f2095f3ca73dd8da'],
+ }),
+ ('expandvars', '0.12.0', {
+ 'checksums': ['7d1adfa55728cf4b5d812ece3d087703faea953e0c0a1a78415de9df5024d844'],
+ }),
+ ('yarl', '1.9.4', {
+ 'checksums': ['566db86717cf8080b99b58b083b773a908ae40f06681e87e589a976faf8246bf'],
+ }),
+ ('frozenlist', '1.4.1', {
+ 'checksums': ['c037a86e8513059a2613aaba4d817bb90b9d9b6b69aace3ce9c877e8c8ed402b'],
+ }),
+ ('async-timeout', '4.0.3', {
+ 'checksums': ['4640d96be84d82d02ed59ea2b7105a0f7b33abe8703703cd0ab0bf87c427522f'],
+ }),
+ ('aiosignal', '1.3.1', {
+ 'checksums': ['54cd96e15e1649b75d6c87526a6ff0b6c1b0dd3459f43d9ca11d48c339b68cfc'],
+ }),
+ ('aiohappyeyeballs', '2.3.2', {
+ 'checksums': ['77e15a733090547a1f5369a1287ddfc944bd30df0eb8993f585259c34b405f4e'],
+ }),
+ (name, version, {
+ 'checksums': ['edea7d15772ceeb29db4aff55e482d4bcfb6ae160ce144f2682de02f6d693551'],
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/a/alevin-fry/alevin-fry-0.9.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/a/alevin-fry/alevin-fry-0.9.0-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..50f776e14a3
--- /dev/null
+++ b/easybuild/easyconfigs/a/alevin-fry/alevin-fry-0.9.0-GCCcore-13.2.0.eb
@@ -0,0 +1,470 @@
+easyblock = 'Cargo'
+
+name = 'alevin-fry'
+version = '0.9.0'
+
+homepage = 'https://github.com/COMBINE-lab/alevin-fry'
+description = """alevin-fry is an efficient and flexible tool for processing single-cell sequencing data,
+ currently focused on single-cell transcriptomics and feature barcoding."""
+# software_license = 'LicenseBSD3'
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+crates = [
+ (name, version),
+ ('adler', '1.0.2'),
+ ('ahash', '0.8.11'),
+ ('aho-corasick', '1.1.2'),
+ ('alga', '0.9.3'),
+ ('android-tzdata', '0.1.1'),
+ ('android_system_properties', '0.1.5'),
+ ('anstream', '0.6.13'),
+ ('anstyle', '1.0.6'),
+ ('anstyle-parse', '0.2.3'),
+ ('anstyle-query', '1.0.2'),
+ ('anstyle-wincon', '3.0.2'),
+ ('anyhow', '1.0.80'),
+ ('approx', '0.3.2'),
+ ('approx', '0.5.1'),
+ ('arrayvec', '0.7.4'),
+ ('autocfg', '1.1.0'),
+ ('bincode', '1.3.3'),
+ ('bio-types', '1.0.1'),
+ ('bit-vec', '0.6.3'),
+ ('bitflags', '1.3.2'),
+ ('bitflags', '2.4.2'),
+ ('block-buffer', '0.10.4'),
+ ('bstr', '1.9.1'),
+ ('buffer-redux', '1.0.1'),
+ ('bumpalo', '3.15.4'),
+ ('bytecount', '0.6.7'),
+ ('bytemuck', '1.14.3'),
+ ('byteorder', '1.5.0'),
+ ('bytes', '1.5.0'),
+ ('bzip2', '0.4.4'),
+ ('bzip2-sys', '0.1.11+1.0.8'),
+ ('cc', '1.0.90'),
+ ('cfg-if', '1.0.0'),
+ ('chrono', '0.4.35'),
+ ('clap', '4.5.2'),
+ ('clap_builder', '4.5.2'),
+ ('clap_derive', '4.5.0'),
+ ('clap_lex', '0.7.0'),
+ ('colorchoice', '1.0.0'),
+ ('console', '0.15.8'),
+ ('core-foundation-sys', '0.8.6'),
+ ('crc32fast', '1.4.0'),
+ ('crossbeam-channel', '0.5.12'),
+ ('crossbeam-deque', '0.8.5'),
+ ('crossbeam-epoch', '0.9.18'),
+ ('crossbeam-queue', '0.3.11'),
+ ('crossbeam-utils', '0.8.19'),
+ ('crypto-common', '0.1.6'),
+ ('csv', '1.3.0'),
+ ('csv-core', '0.1.11'),
+ ('dashmap', '5.5.3'),
+ ('deranged', '0.3.11'),
+ ('derive-new', '0.5.9'),
+ ('digest', '0.10.7'),
+ ('dirs-next', '2.0.0'),
+ ('dirs-sys-next', '0.1.2'),
+ ('either', '1.10.0'),
+ ('encode_unicode', '0.3.6'),
+ ('equivalent', '1.0.1'),
+ ('errno', '0.3.8'),
+ ('fixedbitset', '0.4.2'),
+ ('flate2', '1.0.28'),
+ ('generic-array', '0.14.7'),
+ ('getrandom', '0.2.12'),
+ ('hashbrown', '0.14.3'),
+ ('heck', '0.4.1'),
+ ('hermit-abi', '0.3.9'),
+ ('iana-time-zone', '0.1.60'),
+ ('iana-time-zone-haiku', '0.1.2'),
+ ('indexmap', '2.2.5'),
+ ('indicatif', '0.17.8'),
+ ('instant', '0.1.12'),
+ ('is-terminal', '0.4.12'),
+ ('itertools', '0.12.1'),
+ ('itoa', '1.0.10'),
+ ('js-sys', '0.3.69'),
+ ('lazy_static', '1.4.0'),
+ ('lexical-core', '0.8.5'),
+ ('lexical-parse-float', '0.8.5'),
+ ('lexical-parse-integer', '0.8.6'),
+ ('lexical-util', '0.8.5'),
+ ('lexical-write-float', '0.8.5'),
+ ('lexical-write-integer', '0.8.5'),
+ ('libc', '0.2.153'),
+ ('libm', '0.2.8'),
+ ('libmimalloc-sys', '0.1.35'),
+ ('libradicl', '0.8.2'),
+ ('libredox', '0.0.1'),
+ ('linux-raw-sys', '0.4.13'),
+ ('lock_api', '0.4.11'),
+ ('log', '0.4.21'),
+ ('lzma-sys', '0.1.20'),
+ ('matrixmultiply', '0.3.8'),
+ ('md-5', '0.10.6'),
+ ('memchr', '2.7.1'),
+ ('mimalloc', '0.1.39'),
+ ('miniz_oxide', '0.7.2'),
+ ('nalgebra', '0.29.0'),
+ ('nalgebra-macros', '0.1.0'),
+ ('ndarray', '0.15.6'),
+ ('needletail', '0.5.1'),
+ ('noodles', '0.65.0'),
+ ('noodles-bam', '0.56.0'),
+ ('noodles-bgzf', '0.26.0'),
+ ('noodles-core', '0.14.0'),
+ ('noodles-cram', '0.56.0'),
+ ('noodles-csi', '0.30.0'),
+ ('noodles-fasta', '0.33.0'),
+ ('noodles-sam', '0.53.0'),
+ ('noodles-util', '0.37.0'),
+ ('num', '0.4.1'),
+ ('num-bigint', '0.4.4'),
+ ('num-complex', '0.2.4'),
+ ('num-complex', '0.4.5'),
+ ('num-conv', '0.1.0'),
+ ('num-format', '0.4.4'),
+ ('num-integer', '0.1.46'),
+ ('num-iter', '0.1.44'),
+ ('num-rational', '0.4.1'),
+ ('num-traits', '0.2.18'),
+ ('num_cpus', '1.16.0'),
+ ('number_prefix', '0.4.0'),
+ ('once_cell', '1.19.0'),
+ ('parking_lot_core', '0.9.9'),
+ ('paste', '1.0.14'),
+ ('petgraph', '0.6.4'),
+ ('pkg-config', '0.3.30'),
+ ('portable-atomic', '1.6.0'),
+ ('powerfmt', '0.2.0'),
+ ('ppv-lite86', '0.2.17'),
+ ('proc-macro2', '1.0.78'),
+ ('quote', '1.0.35'),
+ ('rand', '0.8.5'),
+ ('rand_chacha', '0.3.1'),
+ ('rand_core', '0.6.4'),
+ ('rand_distr', '0.4.3'),
+ ('rawpointer', '0.2.1'),
+ ('rayon', '1.9.0'),
+ ('rayon-core', '1.12.1'),
+ ('redox_syscall', '0.4.1'),
+ ('redox_users', '0.4.4'),
+ ('regex', '1.10.3'),
+ ('regex-automata', '0.4.6'),
+ ('regex-syntax', '0.8.2'),
+ ('rustix', '0.38.31'),
+ ('rustversion', '1.0.14'),
+ ('ryu', '1.0.17'),
+ ('safe_arch', '0.7.1'),
+ ('sce', '0.2.0'),
+ ('scopeguard', '1.2.0'),
+ ('scroll', '0.12.0'),
+ ('serde', '1.0.197'),
+ ('serde_derive', '1.0.197'),
+ ('serde_json', '1.0.114'),
+ ('simba', '0.6.0'),
+ ('slog', '2.7.0'),
+ ('slog-async', '2.8.0'),
+ ('slog-term', '2.9.1'),
+ ('smallvec', '1.13.1'),
+ ('snap', '1.1.1'),
+ ('sprs', '0.11.1'),
+ ('static_assertions', '1.1.0'),
+ ('statrs', '0.16.0'),
+ ('strsim', '0.11.0'),
+ ('strum_macros', '0.25.3'),
+ ('syn', '1.0.109'),
+ ('syn', '2.0.52'),
+ ('take_mut', '0.2.2'),
+ ('term', '0.7.0'),
+ ('terminal_size', '0.3.0'),
+ ('thiserror', '1.0.57'),
+ ('thiserror-impl', '1.0.57'),
+ ('thread_local', '1.1.8'),
+ ('time', '0.3.34'),
+ ('time-core', '0.1.2'),
+ ('time-macros', '0.2.17'),
+ ('trait-set', '0.3.0'),
+ ('typed-builder', '0.18.1'),
+ ('typed-builder-macro', '0.18.1'),
+ ('typenum', '1.17.0'),
+ ('unicode-ident', '1.0.12'),
+ ('unicode-width', '0.1.11'),
+ ('utf8parse', '0.2.1'),
+ ('version_check', '0.9.4'),
+ ('wasi', '0.11.0+wasi-snapshot-preview1'),
+ ('wasm-bindgen', '0.2.92'),
+ ('wasm-bindgen-backend', '0.2.92'),
+ ('wasm-bindgen-macro', '0.2.92'),
+ ('wasm-bindgen-macro-support', '0.2.92'),
+ ('wasm-bindgen-shared', '0.2.92'),
+ ('wide', '0.7.15'),
+ ('winapi', '0.3.9'),
+ ('winapi-i686-pc-windows-gnu', '0.4.0'),
+ ('winapi-x86_64-pc-windows-gnu', '0.4.0'),
+ ('windows-core', '0.52.0'),
+ ('windows-sys', '0.48.0'),
+ ('windows-sys', '0.52.0'),
+ ('windows-targets', '0.48.5'),
+ ('windows-targets', '0.52.4'),
+ ('windows_aarch64_gnullvm', '0.48.5'),
+ ('windows_aarch64_gnullvm', '0.52.4'),
+ ('windows_aarch64_msvc', '0.48.5'),
+ ('windows_aarch64_msvc', '0.52.4'),
+ ('windows_i686_gnu', '0.48.5'),
+ ('windows_i686_gnu', '0.52.4'),
+ ('windows_i686_msvc', '0.48.5'),
+ ('windows_i686_msvc', '0.52.4'),
+ ('windows_x86_64_gnu', '0.48.5'),
+ ('windows_x86_64_gnu', '0.52.4'),
+ ('windows_x86_64_gnullvm', '0.48.5'),
+ ('windows_x86_64_gnullvm', '0.52.4'),
+ ('windows_x86_64_msvc', '0.48.5'),
+ ('windows_x86_64_msvc', '0.52.4'),
+ ('xz2', '0.1.7'),
+ ('zerocopy', '0.7.32'),
+ ('zerocopy-derive', '0.7.32'),
+]
+
+checksums = [
+ {'alevin-fry-0.9.0.tar.gz': 'ea6d245d83a00d59b977e130f142b2a0c3075b26cd214d6c54251f225b46748a'},
+ {'adler-1.0.2.tar.gz': 'f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe'},
+ {'ahash-0.8.11.tar.gz': 'e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011'},
+ {'aho-corasick-1.1.2.tar.gz': 'b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0'},
+ {'alga-0.9.3.tar.gz': '4f823d037a7ec6ea2197046bafd4ae150e6bc36f9ca347404f46a46823fa84f2'},
+ {'android-tzdata-0.1.1.tar.gz': 'e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0'},
+ {'android_system_properties-0.1.5.tar.gz': '819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311'},
+ {'anstream-0.6.13.tar.gz': 'd96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb'},
+ {'anstyle-1.0.6.tar.gz': '8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc'},
+ {'anstyle-parse-0.2.3.tar.gz': 'c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c'},
+ {'anstyle-query-1.0.2.tar.gz': 'e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648'},
+ {'anstyle-wincon-3.0.2.tar.gz': '1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7'},
+ {'anyhow-1.0.80.tar.gz': '5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1'},
+ {'approx-0.3.2.tar.gz': 'f0e60b75072ecd4168020818c0107f2857bb6c4e64252d8d3983f6263b40a5c3'},
+ {'approx-0.5.1.tar.gz': 'cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6'},
+ {'arrayvec-0.7.4.tar.gz': '96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711'},
+ {'autocfg-1.1.0.tar.gz': 'd468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa'},
+ {'bincode-1.3.3.tar.gz': 'b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad'},
+ {'bio-types-1.0.1.tar.gz': '9d45749b87f21808051025e9bf714d14ff4627f9d8ca967eade6946ea769aa4a'},
+ {'bit-vec-0.6.3.tar.gz': '349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb'},
+ {'bitflags-1.3.2.tar.gz': 'bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a'},
+ {'bitflags-2.4.2.tar.gz': 'ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf'},
+ {'block-buffer-0.10.4.tar.gz': '3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71'},
+ {'bstr-1.9.1.tar.gz': '05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706'},
+ {'buffer-redux-1.0.1.tar.gz': '4c9f8ddd22e0a12391d1e7ada69ec3b0da1914f1cec39c5cf977143c5b2854f5'},
+ {'bumpalo-3.15.4.tar.gz': '7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa'},
+ {'bytecount-0.6.7.tar.gz': 'e1e5f035d16fc623ae5f74981db80a439803888314e3a555fd6f04acd51a3205'},
+ {'bytemuck-1.14.3.tar.gz': 'a2ef034f05691a48569bd920a96c81b9d91bbad1ab5ac7c4616c1f6ef36cb79f'},
+ {'byteorder-1.5.0.tar.gz': '1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b'},
+ {'bytes-1.5.0.tar.gz': 'a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223'},
+ {'bzip2-0.4.4.tar.gz': 'bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8'},
+ {'bzip2-sys-0.1.11+1.0.8.tar.gz': '736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc'},
+ {'cc-1.0.90.tar.gz': '8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5'},
+ {'cfg-if-1.0.0.tar.gz': 'baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd'},
+ {'chrono-0.4.35.tar.gz': '8eaf5903dcbc0a39312feb77df2ff4c76387d591b9fc7b04a238dcf8bb62639a'},
+ {'clap-4.5.2.tar.gz': 'b230ab84b0ffdf890d5a10abdbc8b83ae1c4918275daea1ab8801f71536b2651'},
+ {'clap_builder-4.5.2.tar.gz': 'ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4'},
+ {'clap_derive-4.5.0.tar.gz': '307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47'},
+ {'clap_lex-0.7.0.tar.gz': '98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce'},
+ {'colorchoice-1.0.0.tar.gz': 'acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7'},
+ {'console-0.15.8.tar.gz': '0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb'},
+ {'core-foundation-sys-0.8.6.tar.gz': '06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f'},
+ {'crc32fast-1.4.0.tar.gz': 'b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa'},
+ {'crossbeam-channel-0.5.12.tar.gz': 'ab3db02a9c5b5121e1e42fbdb1aeb65f5e02624cc58c43f2884c6ccac0b82f95'},
+ {'crossbeam-deque-0.8.5.tar.gz': '613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d'},
+ {'crossbeam-epoch-0.9.18.tar.gz': '5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e'},
+ {'crossbeam-queue-0.3.11.tar.gz': 'df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35'},
+ {'crossbeam-utils-0.8.19.tar.gz': '248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345'},
+ {'crypto-common-0.1.6.tar.gz': '1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3'},
+ {'csv-1.3.0.tar.gz': 'ac574ff4d437a7b5ad237ef331c17ccca63c46479e5b5453eb8e10bb99a759fe'},
+ {'csv-core-0.1.11.tar.gz': '5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70'},
+ {'dashmap-5.5.3.tar.gz': '978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856'},
+ {'deranged-0.3.11.tar.gz': 'b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4'},
+ {'derive-new-0.5.9.tar.gz': '3418329ca0ad70234b9735dc4ceed10af4df60eff9c8e7b06cb5e520d92c3535'},
+ {'digest-0.10.7.tar.gz': '9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292'},
+ {'dirs-next-2.0.0.tar.gz': 'b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1'},
+ {'dirs-sys-next-0.1.2.tar.gz': '4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d'},
+ {'either-1.10.0.tar.gz': '11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a'},
+ {'encode_unicode-0.3.6.tar.gz': 'a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f'},
+ {'equivalent-1.0.1.tar.gz': '5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5'},
+ {'errno-0.3.8.tar.gz': 'a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245'},
+ {'fixedbitset-0.4.2.tar.gz': '0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80'},
+ {'flate2-1.0.28.tar.gz': '46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e'},
+ {'generic-array-0.14.7.tar.gz': '85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a'},
+ {'getrandom-0.2.12.tar.gz': '190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5'},
+ {'hashbrown-0.14.3.tar.gz': '290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604'},
+ {'heck-0.4.1.tar.gz': '95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8'},
+ {'hermit-abi-0.3.9.tar.gz': 'd231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024'},
+ {'iana-time-zone-0.1.60.tar.gz': 'e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141'},
+ {'iana-time-zone-haiku-0.1.2.tar.gz': 'f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f'},
+ {'indexmap-2.2.5.tar.gz': '7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4'},
+ {'indicatif-0.17.8.tar.gz': '763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3'},
+ {'instant-0.1.12.tar.gz': '7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c'},
+ {'is-terminal-0.4.12.tar.gz': 'f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b'},
+ {'itertools-0.12.1.tar.gz': 'ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569'},
+ {'itoa-1.0.10.tar.gz': 'b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c'},
+ {'js-sys-0.3.69.tar.gz': '29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d'},
+ {'lazy_static-1.4.0.tar.gz': 'e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646'},
+ {'lexical-core-0.8.5.tar.gz': '2cde5de06e8d4c2faabc400238f9ae1c74d5412d03a7bd067645ccbc47070e46'},
+ {'lexical-parse-float-0.8.5.tar.gz': '683b3a5ebd0130b8fb52ba0bdc718cc56815b6a097e28ae5a6997d0ad17dc05f'},
+ {'lexical-parse-integer-0.8.6.tar.gz': '6d0994485ed0c312f6d965766754ea177d07f9c00c9b82a5ee62ed5b47945ee9'},
+ {'lexical-util-0.8.5.tar.gz': '5255b9ff16ff898710eb9eb63cb39248ea8a5bb036bea8085b1a767ff6c4e3fc'},
+ {'lexical-write-float-0.8.5.tar.gz': 'accabaa1c4581f05a3923d1b4cfd124c329352288b7b9da09e766b0668116862'},
+ {'lexical-write-integer-0.8.5.tar.gz': 'e1b6f3d1f4422866b68192d62f77bc5c700bee84f3069f2469d7bc8c77852446'},
+ {'libc-0.2.153.tar.gz': '9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd'},
+ {'libm-0.2.8.tar.gz': '4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058'},
+ {'libmimalloc-sys-0.1.35.tar.gz': '3979b5c37ece694f1f5e51e7ecc871fdb0f517ed04ee45f88d15d6d553cb9664'},
+ {'libradicl-0.8.2.tar.gz': '79c875897ad68c771ac1cbe1794642f1f49bdb3852e0475be2abb754ba59fe92'},
+ {'libredox-0.0.1.tar.gz': '85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8'},
+ {'linux-raw-sys-0.4.13.tar.gz': '01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c'},
+ {'lock_api-0.4.11.tar.gz': '3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45'},
+ {'log-0.4.21.tar.gz': '90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c'},
+ {'lzma-sys-0.1.20.tar.gz': '5fda04ab3764e6cde78b9974eec4f779acaba7c4e84b36eca3cf77c581b85d27'},
+ {'matrixmultiply-0.3.8.tar.gz': '7574c1cf36da4798ab73da5b215bbf444f50718207754cb522201d78d1cd0ff2'},
+ {'md-5-0.10.6.tar.gz': 'd89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf'},
+ {'memchr-2.7.1.tar.gz': '523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149'},
+ {'mimalloc-0.1.39.tar.gz': 'fa01922b5ea280a911e323e4d2fd24b7fe5cc4042e0d2cda3c40775cdc4bdc9c'},
+ {'miniz_oxide-0.7.2.tar.gz': '9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7'},
+ {'nalgebra-0.29.0.tar.gz': 'd506eb7e08d6329505faa8a3a00a5dcc6de9f76e0c77e4b75763ae3c770831ff'},
+ {'nalgebra-macros-0.1.0.tar.gz': '01fcc0b8149b4632adc89ac3b7b31a12fb6099a0317a4eb2ebff574ef7de7218'},
+ {'ndarray-0.15.6.tar.gz': 'adb12d4e967ec485a5f71c6311fe28158e9d6f4bc4a447b474184d0f91a8fa32'},
+ {'needletail-0.5.1.tar.gz': 'db05a5ab397f64070d8c998fa0fbb84e484b81f95752af317dac183a82d9295d'},
+ {'noodles-0.65.0.tar.gz': '38db1833ba39368f7a855c5b9a8412729a61dd86b2563e1a3bdb02aecbe92a3c'},
+ {'noodles-bam-0.56.0.tar.gz': 'd3189e8ecee801ab5c3f4ea9908c4196b429137d8d35d733f00f6681f9188be7'},
+ {'noodles-bgzf-0.26.0.tar.gz': '8970db2e84adb1007377dd3988258d7a64e3fc4c05602ebf94e1f8cba207c030'},
+ {'noodles-core-0.14.0.tar.gz': '7336c3be652de4e05444c9b12a32331beb5ba3316e8872d92bfdd8ef3b06c282'},
+ {'noodles-cram-0.56.0.tar.gz': '34a70ebb5bc7ff2d07ce96c0568691e57be421c121103ebef10cf02a63d7d400'},
+ {'noodles-csi-0.30.0.tar.gz': 'a60dfe0919f7ecbd081a82eb1d32e8f89f9041932d035fe8309073c8c01277bf'},
+ {'noodles-fasta-0.33.0.tar.gz': '5e9e953e4e90e6c96e6a384598ebf2ab6d2f5add259ff05a194cf635e892c980'},
+ {'noodles-sam-0.53.0.tar.gz': '1f0d8e441368374f6e144989f823fd7c05e58cdaa3f97d22bb4d75b534327b87'},
+ {'noodles-util-0.37.0.tar.gz': 'e800d2619f75de004aef8beb29f604e667f5bf5f714ff05cce3730f5c8cc4958'},
+ {'num-0.4.1.tar.gz': 'b05180d69e3da0e530ba2a1dae5110317e49e3b7f3d41be227dc5f92e49ee7af'},
+ {'num-bigint-0.4.4.tar.gz': '608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0'},
+ {'num-complex-0.2.4.tar.gz': 'b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95'},
+ {'num-complex-0.4.5.tar.gz': '23c6602fda94a57c990fe0df199a035d83576b496aa29f4e634a8ac6004e68a6'},
+ {'num-conv-0.1.0.tar.gz': '51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9'},
+ {'num-format-0.4.4.tar.gz': 'a652d9771a63711fd3c3deb670acfbe5c30a4072e664d7a3bf5a9e1056ac72c3'},
+ {'num-integer-0.1.46.tar.gz': '7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f'},
+ {'num-iter-0.1.44.tar.gz': 'd869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9'},
+ {'num-rational-0.4.1.tar.gz': '0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0'},
+ {'num-traits-0.2.18.tar.gz': 'da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a'},
+ {'num_cpus-1.16.0.tar.gz': '4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43'},
+ {'number_prefix-0.4.0.tar.gz': '830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3'},
+ {'once_cell-1.19.0.tar.gz': '3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92'},
+ {'parking_lot_core-0.9.9.tar.gz': '4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e'},
+ {'paste-1.0.14.tar.gz': 'de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c'},
+ {'petgraph-0.6.4.tar.gz': 'e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9'},
+ {'pkg-config-0.3.30.tar.gz': 'd231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec'},
+ {'portable-atomic-1.6.0.tar.gz': '7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0'},
+ {'powerfmt-0.2.0.tar.gz': '439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391'},
+ {'ppv-lite86-0.2.17.tar.gz': '5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de'},
+ {'proc-macro2-1.0.78.tar.gz': 'e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae'},
+ {'quote-1.0.35.tar.gz': '291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef'},
+ {'rand-0.8.5.tar.gz': '34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404'},
+ {'rand_chacha-0.3.1.tar.gz': 'e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88'},
+ {'rand_core-0.6.4.tar.gz': 'ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c'},
+ {'rand_distr-0.4.3.tar.gz': '32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31'},
+ {'rawpointer-0.2.1.tar.gz': '60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3'},
+ {'rayon-1.9.0.tar.gz': 'e4963ed1bc86e4f3ee217022bd855b297cef07fb9eac5dfa1f788b220b49b3bd'},
+ {'rayon-core-1.12.1.tar.gz': '1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2'},
+ {'redox_syscall-0.4.1.tar.gz': '4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa'},
+ {'redox_users-0.4.4.tar.gz': 'a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4'},
+ {'regex-1.10.3.tar.gz': 'b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15'},
+ {'regex-automata-0.4.6.tar.gz': '86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea'},
+ {'regex-syntax-0.8.2.tar.gz': 'c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f'},
+ {'rustix-0.38.31.tar.gz': '6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949'},
+ {'rustversion-1.0.14.tar.gz': '7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4'},
+ {'ryu-1.0.17.tar.gz': 'e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1'},
+ {'safe_arch-0.7.1.tar.gz': 'f398075ce1e6a179b46f51bd88d0598b92b00d3551f1a2d4ac49e771b56ac354'},
+ {'sce-0.2.0.tar.gz': '3e86ac42a268d4f4644e38887b5dad29002dcbcdeddb40057195beeb61105df6'},
+ {'scopeguard-1.2.0.tar.gz': '94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49'},
+ {'scroll-0.12.0.tar.gz': '6ab8598aa408498679922eff7fa985c25d58a90771bd6be794434c5277eab1a6'},
+ {'serde-1.0.197.tar.gz': '3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2'},
+ {'serde_derive-1.0.197.tar.gz': '7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b'},
+ {'serde_json-1.0.114.tar.gz': 'c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0'},
+ {'simba-0.6.0.tar.gz': 'f0b7840f121a46d63066ee7a99fc81dcabbc6105e437cae43528cea199b5a05f'},
+ {'slog-2.7.0.tar.gz': '8347046d4ebd943127157b94d63abb990fcf729dc4e9978927fdf4ac3c998d06'},
+ {'slog-async-2.8.0.tar.gz': '72c8038f898a2c79507940990f05386455b3a317d8f18d4caea7cbc3d5096b84'},
+ {'slog-term-2.9.1.tar.gz': 'b6e022d0b998abfe5c3782c1f03551a596269450ccd677ea51c56f8b214610e8'},
+ {'smallvec-1.13.1.tar.gz': 'e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7'},
+ {'snap-1.1.1.tar.gz': '1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b'},
+ {'sprs-0.11.1.tar.gz': '88bab60b0a18fb9b3e0c26e92796b3c3a278bf5fa4880f5ad5cc3bdfb843d0b1'},
+ {'static_assertions-1.1.0.tar.gz': 'a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f'},
+ {'statrs-0.16.0.tar.gz': '2d08e5e1748192713cc281da8b16924fb46be7b0c2431854eadc785823e5696e'},
+ {'strsim-0.11.0.tar.gz': '5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01'},
+ {'strum_macros-0.25.3.tar.gz': '23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0'},
+ {'syn-1.0.109.tar.gz': '72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237'},
+ {'syn-2.0.52.tar.gz': 'b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07'},
+ {'take_mut-0.2.2.tar.gz': 'f764005d11ee5f36500a149ace24e00e3da98b0158b3e2d53a7495660d3f4d60'},
+ {'term-0.7.0.tar.gz': 'c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f'},
+ {'terminal_size-0.3.0.tar.gz': '21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7'},
+ {'thiserror-1.0.57.tar.gz': '1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b'},
+ {'thiserror-impl-1.0.57.tar.gz': 'a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81'},
+ {'thread_local-1.1.8.tar.gz': '8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c'},
+ {'time-0.3.34.tar.gz': 'c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749'},
+ {'time-core-0.1.2.tar.gz': 'ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3'},
+ {'time-macros-0.2.17.tar.gz': '7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774'},
+ {'trait-set-0.3.0.tar.gz': 'b79e2e9c9ab44c6d7c20d5976961b47e8f49ac199154daa514b77cd1ab536625'},
+ {'typed-builder-0.18.1.tar.gz': '444d8748011b93cb168770e8092458cb0f8854f931ff82fdf6ddfbd72a9c933e'},
+ {'typed-builder-macro-0.18.1.tar.gz': '563b3b88238ec95680aef36bdece66896eaa7ce3c0f1b4f39d38fb2435261352'},
+ {'typenum-1.17.0.tar.gz': '42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825'},
+ {'unicode-ident-1.0.12.tar.gz': '3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b'},
+ {'unicode-width-0.1.11.tar.gz': 'e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85'},
+ {'utf8parse-0.2.1.tar.gz': '711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a'},
+ {'version_check-0.9.4.tar.gz': '49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f'},
+ {'wasi-0.11.0+wasi-snapshot-preview1.tar.gz': '9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423'},
+ {'wasm-bindgen-0.2.92.tar.gz': '4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8'},
+ {'wasm-bindgen-backend-0.2.92.tar.gz': '614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da'},
+ {'wasm-bindgen-macro-0.2.92.tar.gz': 'a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726'},
+ {'wasm-bindgen-macro-support-0.2.92.tar.gz': 'e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7'},
+ {'wasm-bindgen-shared-0.2.92.tar.gz': 'af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96'},
+ {'wide-0.7.15.tar.gz': '89beec544f246e679fc25490e3f8e08003bc4bf612068f325120dad4cea02c1c'},
+ {'winapi-0.3.9.tar.gz': '5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419'},
+ {'winapi-i686-pc-windows-gnu-0.4.0.tar.gz': 'ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6'},
+ {'winapi-x86_64-pc-windows-gnu-0.4.0.tar.gz': '712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f'},
+ {'windows-core-0.52.0.tar.gz': '33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9'},
+ {'windows-sys-0.48.0.tar.gz': '677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9'},
+ {'windows-sys-0.52.0.tar.gz': '282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d'},
+ {'windows-targets-0.48.5.tar.gz': '9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c'},
+ {'windows-targets-0.52.4.tar.gz': '7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b'},
+ {'windows_aarch64_gnullvm-0.48.5.tar.gz': '2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8'},
+ {'windows_aarch64_gnullvm-0.52.4.tar.gz': 'bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9'},
+ {'windows_aarch64_msvc-0.48.5.tar.gz': 'dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc'},
+ {'windows_aarch64_msvc-0.52.4.tar.gz': 'da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675'},
+ {'windows_i686_gnu-0.48.5.tar.gz': 'a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e'},
+ {'windows_i686_gnu-0.52.4.tar.gz': 'b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3'},
+ {'windows_i686_msvc-0.48.5.tar.gz': '8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406'},
+ {'windows_i686_msvc-0.52.4.tar.gz': '1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02'},
+ {'windows_x86_64_gnu-0.48.5.tar.gz': '53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e'},
+ {'windows_x86_64_gnu-0.52.4.tar.gz': '5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03'},
+ {'windows_x86_64_gnullvm-0.48.5.tar.gz': '0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc'},
+ {'windows_x86_64_gnullvm-0.52.4.tar.gz': '77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177'},
+ {'windows_x86_64_msvc-0.48.5.tar.gz': 'ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538'},
+ {'windows_x86_64_msvc-0.52.4.tar.gz': '32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8'},
+ {'xz2-0.1.7.tar.gz': '388c44dc09d76f1536602ead6d325eb532f5c122f17782bd57fb47baeeb767e2'},
+ {'zerocopy-0.7.32.tar.gz': '74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be'},
+ {'zerocopy-derive-0.7.32.tar.gz': '9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6'},
+]
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('Rust', '1.76.0'),
+ ('CMake', '3.27.6'),
+]
+
+dependencies = [
+ ('bzip2', '1.0.8'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/%(namelower)s'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["%(namelower)s --help"]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/a/alsa-lib/alsa-lib-1.2.11-GCCcore-13.2.0.eb b/easybuild/easyconfigs/a/alsa-lib/alsa-lib-1.2.11-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..fd05a43146f
--- /dev/null
+++ b/easybuild/easyconfigs/a/alsa-lib/alsa-lib-1.2.11-GCCcore-13.2.0.eb
@@ -0,0 +1,26 @@
+easyblock = 'ConfigureMake'
+
+name = 'alsa-lib'
+version = '1.2.11'
+
+homepage = 'https://www.alsa-project.org'
+description = """The Advanced Linux Sound Architecture (ALSA) provides audio and MIDI functionality
+ to the Linux operating system."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+source_urls = ['https://www.alsa-project.org/files/pub/lib/']
+sources = [SOURCE_TAR_BZ2]
+checksums = ['9f3f2f69b995f9ad37359072fbc69a3a88bfba081fc83e9be30e14662795bb4d']
+
+dependencies = [('binutils', '2.40')]
+
+configopts = ['--disable-shared --enable-static', '--enable-shared']
+
+sanity_check_paths = {
+ 'files': ['bin/aserver', 'include/asoundlib.h',
+ 'lib64/libatopology.%s' % SHLIB_EXT, 'lib64/libasound.%s' % SHLIB_EXT, 'lib64/libasound.a'],
+ 'dirs': ['include/alsa', 'lib/pkgconfig', 'share'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/a/alsa-lib/alsa-lib-1.2.11-GCCcore-13.3.0.eb b/easybuild/easyconfigs/a/alsa-lib/alsa-lib-1.2.11-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..4333348a741
--- /dev/null
+++ b/easybuild/easyconfigs/a/alsa-lib/alsa-lib-1.2.11-GCCcore-13.3.0.eb
@@ -0,0 +1,26 @@
+easyblock = 'ConfigureMake'
+
+name = 'alsa-lib'
+version = '1.2.11'
+
+homepage = 'https://www.alsa-project.org'
+description = """The Advanced Linux Sound Architecture (ALSA) provides audio and MIDI functionality
+ to the Linux operating system."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://www.alsa-project.org/files/pub/lib/']
+sources = [SOURCE_TAR_BZ2]
+checksums = ['9f3f2f69b995f9ad37359072fbc69a3a88bfba081fc83e9be30e14662795bb4d']
+
+dependencies = [('binutils', '2.42')]
+
+configopts = ['--disable-shared --enable-static', '--enable-shared']
+
+sanity_check_paths = {
+ 'files': ['bin/aserver', 'include/asoundlib.h',
+ 'lib64/libatopology.%s' % SHLIB_EXT, 'lib64/libasound.%s' % SHLIB_EXT, 'lib64/libasound.a'],
+ 'dirs': ['include/alsa', 'lib/pkgconfig', 'share'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/a/amdahl/amdahl-0.3.1-gompi-2023a.eb b/easybuild/easyconfigs/a/amdahl/amdahl-0.3.1-gompi-2023a.eb
new file mode 100644
index 00000000000..03df4c86664
--- /dev/null
+++ b/easybuild/easyconfigs/a/amdahl/amdahl-0.3.1-gompi-2023a.eb
@@ -0,0 +1,35 @@
+easyblock = 'PythonPackage'
+
+name = 'amdahl'
+version = '0.3.1'
+
+homepage = "https://github.com/hpc-carpentry/amdahl"
+description = """This Python module contains a pseudo-application that can be used as a black
+box to reproduce Amdahl's Law. It does not do real calculations, nor any real
+communication, so can easily be overloaded.
+"""
+
+toolchain = {'name': 'gompi', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('mpi4py', '3.1.4'),
+]
+
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['b2e0f13fbfc082c83871583d6254ba6c1abc0033ee9cf8a5d018c5541c32ff74']
+
+download_dep_fail = True
+sanity_pip_check = True
+use_pip = True
+
+sanity_check_paths = {
+ 'files': ['bin/amdahl'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = [
+ "amdahl --help",
+]
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/a/anndata/anndata-0.10.5.post1-foss-2023a.eb b/easybuild/easyconfigs/a/anndata/anndata-0.10.5.post1-foss-2023a.eb
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/anndata/anndata-0.9.2-foss-2021b.eb b/easybuild/easyconfigs/a/anndata/anndata-0.9.2-foss-2021b.eb
new file mode 100644
index 00000000000..f5f7d79dadf
--- /dev/null
+++ b/easybuild/easyconfigs/a/anndata/anndata-0.9.2-foss-2021b.eb
@@ -0,0 +1,37 @@
+easyblock = 'PythonBundle'
+
+name = 'anndata'
+version = '0.9.2'
+
+homepage = 'https://github.com/scverse/anndata'
+description = """anndata is a Python package for handling annotated data matrices in memory and on disk,
+ positioned between pandas and xarray"""
+
+toolchain = {'name': 'foss', 'version': '2021b'}
+
+dependencies = [
+ ('Python', '3.9.6'),
+ ('SciPy-bundle', '2021.10'),
+ ('h5py', '3.6.0'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('natsort', '8.4.0', {
+ 'checksums': ['45312c4a0e5507593da193dedd04abb1469253b601ecaf63445ad80f0a1ea581'],
+ }),
+ (name, version, {
+ 'checksums': ['e5b8383d09723af674cae7ad0c2ef53eb1f8c73949b7f4c182a6e30f42196327'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/natsort'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = ["natsort --help"]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/a/any2fasta/any2fasta-0.4.2-GCCcore-12.3.0.eb b/easybuild/easyconfigs/a/any2fasta/any2fasta-0.4.2-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..3f96b328b6a
--- /dev/null
+++ b/easybuild/easyconfigs/a/any2fasta/any2fasta-0.4.2-GCCcore-12.3.0.eb
@@ -0,0 +1,35 @@
+# Author: Pavel Grochal (INUITS)
+# Updated by: Denis Kristak (INUITS)
+# License: GPLv2
+
+easyblock = 'Tarball'
+
+name = 'any2fasta'
+version = '0.4.2'
+
+homepage = 'https://github.com/tseemann/any2fasta'
+description = "Convert various sequence formats to FASTA"
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+# https://github.com/tseemann/any2fasta
+github_account = 'tseemann'
+source_urls = [GITHUB_SOURCE]
+sources = ['v%(version)s.zip']
+checksums = ['3faa738ab409c7073afe3769e9d32dd5b28a2c12e72c2e4ac6f4e9946ee9a22f']
+
+dependencies = [('Perl', '5.36.1')]
+
+modextrapaths = {'PATH': ''}
+
+sanity_check_paths = {
+ 'files': ['any2fasta'],
+ 'dirs': [],
+}
+
+sanity_check_commands = [
+ 'any2fasta -h',
+ 'any2fasta -q %(builddir)s/%(name)s-%(version)s/test.fq',
+]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/a/archspec/archspec-0.2.4-GCCcore-13.3.0.eb b/easybuild/easyconfigs/a/archspec/archspec-0.2.4-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..5a4f3a288e9
--- /dev/null
+++ b/easybuild/easyconfigs/a/archspec/archspec-0.2.4-GCCcore-13.3.0.eb
@@ -0,0 +1,27 @@
+easyblock = 'PythonPackage'
+
+name = 'archspec'
+version = '0.2.4'
+
+homepage = 'https://github.com/archspec/archspec'
+description = "A library for detecting, labeling, and reasoning about microarchitectures"
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+sources = [SOURCE_TAR_GZ]
+checksums = ['eabbae22f315d24cc2ce786a092478ec8e245208c9877fb213c2172a6ecb9302']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('poetry', '1.8.3'),
+]
+
+dependencies = [('Python', '3.12.3')]
+
+download_dep_fail = True
+use_pip = True
+sanity_pip_check = True
+
+sanity_check_commands = ["python -c 'from archspec.cpu import host; print(host())'"]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/a/argtable/argtable-2.13-GCCcore-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/atropos/atropos-1.1.32-gompi-2023a.eb b/easybuild/easyconfigs/a/atropos/atropos-1.1.32-gompi-2023a.eb
new file mode 100644
index 00000000000..dddac86e727
--- /dev/null
+++ b/easybuild/easyconfigs/a/atropos/atropos-1.1.32-gompi-2023a.eb
@@ -0,0 +1,57 @@
+easyblock = 'PythonBundle'
+
+name = 'atropos'
+version = '1.1.32'
+
+homepage = 'https://atropos.readthedocs.io'
+description = "Atropos is tool for specific, sensitive, and speedy trimming of NGS reads."
+
+toolchain = {'name': 'gompi', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('tqdm', '4.66.1'),
+ ('Pysam', '0.22.0'),
+ ('pytest', '7.4.2'),
+ ('SRA-Toolkit', '3.0.10'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('versioneer', '0.29', {
+ 'checksums': ['5ab283b9857211d61b53318b7c792cf68e798e765ee17c27ade9f6c924235731'],
+ }),
+ ('screed', '1.1.3', {
+ 'checksums': ['37e81697c7dba95a053554e5b5a86aff329705e1cf5dfc5e7b8da586dee072b8'],
+ }),
+ ('bz2file', '0.98', {
+ 'checksums': ['64c1f811e31556ba9931953c8ec7b397488726c63e09a4c67004f43bdd28da88'],
+ }),
+ ('khmer', '2.1.1', {
+ 'checksums': ['a709606910bb8679bd8525e9d2bf6d1421996272e343b54cc18090feb2fdbe24'],
+ }),
+ ('pokrok', '0.2.0', {
+ 'checksums': ['cfe7956602d8bbc142a07bcb259e0d1d939f96d7b074e00dceea3cb5e39244e8'],
+ }),
+ ('xphyle', '4.0.5', {
+ 'checksums': ['b744723a3c88d81318c7291c32682b8715a046f70d0a1db729bda783fd5e08bd'],
+ }),
+ ('srastream', '0.1.3', {
+ 'checksums': ['7f2cfd76ae988349ad5407a952cd4c133ae5dff7cf12c76072c53d82b50c2634'],
+ }),
+ (name, version, {
+ 'checksums': ['17e9dc3d76d7a2ca607a12da191a6d7ba1cfbd1a8c924215870417f85858fd83'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/atropos'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = ["atropos detect --help"]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/a/attr/attr-2.5.2-GCCcore-13.3.0.eb b/easybuild/easyconfigs/a/attr/attr-2.5.2-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..fcd6d723f16
--- /dev/null
+++ b/easybuild/easyconfigs/a/attr/attr-2.5.2-GCCcore-13.3.0.eb
@@ -0,0 +1,28 @@
+easyblock = 'ConfigureMake'
+
+name = 'attr'
+version = '2.5.2'
+
+homepage = 'https://savannah.nongnu.org/projects/attr'
+
+description = """Commands for Manipulating Filesystem Extended Attributes"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = [GNU_SAVANNAH_SOURCE]
+sources = [SOURCE_TAR_GZ]
+checksums = ['39bf67452fa41d0948c2197601053f48b3d78a029389734332a6309a680c6c87']
+
+builddependencies = [('binutils', '2.42')]
+
+sanity_check_paths = {
+ 'files': ['bin/attr', 'bin/getfattr', 'bin/setfattr',
+ 'include/%(name)s/attributes.h', 'include/%(name)s/error_context.h',
+ 'include/%(name)s/libattr.h', 'lib/libattr.a',
+ 'lib/libattr.%s' % SHLIB_EXT],
+ 'dirs': ['share'],
+}
+
+sanity_check_commands = ["getfattr --help"]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/a/autopep8/autopep8-2.2.0-foss-2023a.eb b/easybuild/easyconfigs/a/autopep8/autopep8-2.2.0-foss-2023a.eb
new file mode 100644
index 00000000000..63f57b621be
--- /dev/null
+++ b/easybuild/easyconfigs/a/autopep8/autopep8-2.2.0-foss-2023a.eb
@@ -0,0 +1,23 @@
+easyblock = 'PythonPackage'
+
+name = 'autopep8'
+version = '2.2.0'
+
+homepage = "https://github.com/hhatto/autopep8"
+description = """A tool that automatically formats Python code to conform to the PEP 8 style guide."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+sources = [SOURCE_WHL]
+checksums = ['05418a981f038969d8bdcd5636bf15948db7555ae944b9f79b5a34b35f1370d4']
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('pycodestyle', '2.11.1'),
+]
+
+download_dep_fail = True
+use_pip = True
+sanity_pip_check = True
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/a/awscli/awscli-2.17.54-GCCcore-13.2.0.eb b/easybuild/easyconfigs/a/awscli/awscli-2.17.54-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..9b70b1a9008
--- /dev/null
+++ b/easybuild/easyconfigs/a/awscli/awscli-2.17.54-GCCcore-13.2.0.eb
@@ -0,0 +1,73 @@
+easyblock = 'PythonBundle'
+
+name = 'awscli'
+version = '2.17.54'
+
+homepage = 'https://pypi.python.org/pypi/awscli'
+description = 'Universal Command Line Environment for AWS'
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('CMake', '3.27.6'), # required for awscrt
+]
+
+dependencies = [
+ ('Python', '3.11.5'),
+ ('PyYAML', '6.0.1'),
+ ('ruamel.yaml', '0.18.6'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('jmespath', '1.0.1', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980'],
+ }),
+ ('botocore', '1.35.22', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['d9bc656e7dde0b3e3f3080fc54bacff6a97fd7806b98acbcc21c7f9d4d0102b9'],
+ }),
+ ('s3transfer', '0.10.2', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['eca1c20de70a39daee580aef4986996620f365c4e0fda6a86100231d62f1bf69'],
+ }),
+ ('prompt_toolkit', '3.0.47', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['0d7bfa67001d5e39d02c224b663abc33687405033a8c422d0d675a5a13361d10'],
+ }),
+ ('distro', '1.9.0', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2'],
+ }),
+ ('awscrt', '0.21.5', {
+ 'preinstallopts': "export AWS_CRT_BUILD_USE_SYSTEM_LIBCRYPTO=1 && ",
+ 'checksums': ['7ec2a67af30fbf386494df00bbdf996f7024000df6b01ab160014afef2b91005'],
+ }),
+ # older version of `urllib3` to avoid `ImportError: cannot import name 'DEFAULT_CIPHERS' from 'urllib3.util.ssl_'`
+ # see https://github.com/aws/aws-cli/issues/7905#issuecomment-1559817550
+ ('urllib3', '1.26.20', {
+ 'source_tmpl': SOURCE_WHL,
+ 'checksums': ['0ed14ccfbf1c30a9072c7ca157e4319b70d65f623e91e7b32fadb2853431016e'],
+ }),
+ (name, version, {
+ # version requirements are too strict
+ 'preinstallopts': """sed -i 's/>[^"]*//g' pyproject.toml && """,
+ 'source_tmpl': '%(version)s.tar.gz',
+ 'source_urls': ['https://github.com/aws/aws-cli/archive/'],
+ 'checksums': ['c0a37eeb52b7df336e117667b67a275929701e9f6dad0ddb7de59a6f834e5b48'],
+ }),
+]
+
+sanity_pip_check = True
+
+sanity_check_paths = {
+ 'files': ['bin/aws'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages/'],
+}
+
+sanity_check_commands = ["aws help"]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/b/BCFtools/BCFtools-1.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/3rd-party-removal.patch b/easybuild/easyconfigs/b/BGEN-enkre/3rd-party-removal.patch
new file mode 100644
index 00000000000..83f35651997
--- /dev/null
+++ b/easybuild/easyconfigs/b/BGEN-enkre/3rd-party-removal.patch
@@ -0,0 +1,176 @@
+Removal of sqlite3, boost and zstd from 3-party modules
+Author: J. Sassmannshausen
+diff --git a/bgen.tgz.orig/3rd_party/wscript b/bgen.tgz/3rd_party/wscript
+index 220728a..e69de29 100644
+--- a/bgen.tgz.orig/3rd_party/wscript
++++ b/bgen.tgz/3rd_party/wscript
+@@ -1,2 +0,0 @@
+-def build( bld ):
+- bld.recurse( [ 'boost_1_55_0', 'sqlite3', 'zstd-1.1.0' ] )
+diff --git a/bgen.tgz.orig/Makefile b/bgen.tgz/Makefile
+index a7b0ac8..c62ac16 100644
+--- a/bgen.tgz.orig/Makefile
++++ b/bgen.tgz/Makefile
+@@ -1,14 +1,9 @@
+ FLAGS = -g -std=c++11 -lz \
+ -I genfile/include \
+ -I db/include \
+--I 3rd_party/boost_1_55_0 \
+--I 3rd_party/zstd-1.1.0 \
+--I 3rd_party/zstd-1.1.0/lib \
+--I 3rd_party/zstd-1.1.0/lib/common \
+--I 3rd_party/zstd-1.1.0/lib/compress \
+--I 3rd_party/zstd-1.1.0/lib/decompress \
+--I 3rd_party/sqlite3 \
+--I include/3rd_party/sqlite3 \
++-I ${EBBOST}/include \
++-I ${EBDEVELZSTD}/include \
++-I ${EBSQLITE3}/include \
+ -D SQLITE_ENABLE_COLUMN_METADATA \
+ -D SQLITE_ENABLE_STAT4 \
+ -D SQLITE_MAX_EXPR_DEPTH=10000 \
+diff --git a/bgen.tgz.orig/db/include/db/SQLStatement.hpp b/bgen.tgz/db/include/db/SQLStatement.hpp
+index e107bd2..fca5957 100644
+--- a/bgen.tgz.orig/db/include/db/SQLStatement.hpp
++++ b/bgen.tgz/db/include/db/SQLStatement.hpp
+@@ -12,7 +12,7 @@
+ #include
+ #include
+ #include
+-#include "sqlite3/sqlite3.h"
++#include "sqlite3.h"
+ #include "db/SQLite3Connection.hpp"
+
+ namespace db {
+diff --git a/bgen.tgz.orig/db/include/db/SQLite3Connection.hpp b/bgen.tgz/db/include/db/SQLite3Connection.hpp
+index b4bd219..cfbbd3a 100644
+--- a/bgen.tgz.orig/db/include/db/SQLite3Connection.hpp
++++ b/bgen.tgz/db/include/db/SQLite3Connection.hpp
+@@ -10,7 +10,7 @@
+ #include
+ #include
+ #include
+-#include "sqlite3/sqlite3.h"
++#include "sqlite3.h"
+ #include "db/Connection.hpp"
+ #include "db/Transaction.hpp"
+ #include "db/Error.hpp"
+diff --git a/bgen.tgz.orig/db/include/db/SQLite3Statement.hpp b/bgen.tgz/db/include/db/SQLite3Statement.hpp
+index d41a710..76dbfb6 100644
+--- a/bgen.tgz.orig/db/include/db/SQLite3Statement.hpp
++++ b/bgen.tgz/db/include/db/SQLite3Statement.hpp
+@@ -11,7 +11,7 @@
+ #include
+ #include
+
+-#include "sqlite3/sqlite3.h"
++#include "sqlite3.h"
+ #include "db/SQLite3Connection.hpp"
+ #include "db/SQLStatement.hpp"
+
+diff --git a/bgen.tgz.orig/db/src/SQLStatement.cpp b/bgen.tgz/db/src/SQLStatement.cpp
+index 60168c6..32576ca 100644
+--- a/bgen.tgz.orig/db/src/SQLStatement.cpp
++++ b/bgen.tgz/db/src/SQLStatement.cpp
+@@ -7,7 +7,7 @@
+ #include
+ #include
+ #include
+-#include "sqlite3/sqlite3.h"
++#include "sqlite3.h"
+ #include "db/SQLStatement.hpp"
+
+ namespace db {
+diff --git a/bgen.tgz.orig/db/src/SQLite3Statement.cpp b/bgen.tgz/db/src/SQLite3Statement.cpp
+index 84e0658..03b3d5e 100644
+--- a/bgen.tgz.orig/db/src/SQLite3Statement.cpp
++++ b/bgen.tgz/db/src/SQLite3Statement.cpp
+@@ -9,7 +9,7 @@
+ #include
+ #include
+ #include
+-#include "sqlite3/sqlite3.h"
++#include "sqlite3.h"
+ #include "db/SQLite3Connection.hpp"
+ #include "db/SQLStatement.hpp"
+ #include "db/SQLite3Statement.hpp"
+diff --git a/bgen.tgz.orig/db/wscript b/bgen.tgz/db/wscript
+index 7b0b617..a3861f0 100644
+--- a/bgen.tgz.orig/db/wscript
++++ b/bgen.tgz/db/wscript
+@@ -5,8 +5,8 @@ def build( bld ):
+ bld.stlib(
+ target = 'db',
+ source = sources,
+- includes='./include',
++ includes='${EBSQLITE}/include ./include',
+ cxxflags = [],
+ use = 'boost sqlite3',
+- export_includes = './include'
++ export_includes = '${EBSQLITE}/include ./include'
+ )
+diff --git a/bgen.tgz.orig/wscript b/bgen.tgz/wscript
+index a6385d9..47b9fc9 100644
+--- a/bgen.tgz.orig/wscript
++++ b/bgen.tgz/wscript
+@@ -63,7 +63,7 @@ def build( bld ):
+ use = 'zlib zstd sqlite3 db',
+ export_includes = 'genfile/include'
+ )
+- bld.recurse( [ '3rd_party', 'appcontext', 'genfile', 'db', 'apps', 'example', 'test', 'R' ] )
++ bld.recurse( [ 'appcontext', 'genfile', 'db', 'apps', 'example', 'test', 'R' ] )
+ # Copy files into rbgen package directory
+ for source in bgen_sources:
+ bld( rule = 'cp ${SRC} ${TGT}', source = source, target = 'R/rbgen/src/bgen/' + os.path.basename( source.abspath() ), always = True )
+@@ -126,12 +126,12 @@ class ReleaseBuilder:
+ shutil.copytree( 'R/package/', rbgen_dir )
+ os.makedirs( os.path.join( rbgen_dir, "src", "include" ))
+ os.makedirs( os.path.join( rbgen_dir, "src", "include", "boost" ))
+- os.makedirs( os.path.join( rbgen_dir, "src", "include", "zstd-1.1.0" ))
++ os.makedirs( os.path.join( rbgen_dir, "src", "include", "zstd" ))
+ os.makedirs( os.path.join( rbgen_dir, "src", "db" ))
+ os.makedirs( os.path.join( rbgen_dir, "src", "bgen" ))
+ os.makedirs( os.path.join( rbgen_dir, "src", "boost" ))
+ os.makedirs( os.path.join( rbgen_dir, "src", "sqlite3" ))
+- os.makedirs( os.path.join( rbgen_dir, "src", "zstd-1.1.0" ))
++ os.makedirs( os.path.join( rbgen_dir, "src", "zstd" ))
+
+ # Copy source files in
+ from glob import glob
+@@ -141,11 +141,11 @@ class ReleaseBuilder:
+ for filename in glob( 'db/src/*.cpp' ):
+ shutil.copy( filename, os.path.join( rbgen_dir, "src", "db", os.path.basename( filename ) ) )
+
+- for filename in glob( '3rd_party/sqlite3/sqlite3/sqlite3.c' ):
+- shutil.copy( filename, os.path.join( rbgen_dir, "src", "sqlite3", os.path.basename( filename ) ) )
++# for filename in glob( '3rd_party/sqlite3/sqlite3/sqlite3.c' ):
++# shutil.copy( filename, os.path.join( rbgen_dir, "src", "sqlite3", os.path.basename( filename ) ) )
+
+- for filename in glob( '3rd_party/zstd-1.1.0/lib/common/*.c' ) + glob( '3rd_party/zstd-1.1.0/lib/compress/*.c' ) + glob( '3rd_party/zstd-1.1.0/lib/decompress/*.c' ):
+- shutil.copy( filename, os.path.join( rbgen_dir, "src", "zstd-1.1.0", os.path.basename( filename ) ) )
++# for filename in glob( '3rd_party/zstd-1.1.0/lib/common/*.c' ) + glob( '3rd_party/zstd-1.1.0/lib/compress/*.c' ) + glob( '3rd_party/zstd-1.1.0/lib/decompress/*.c' ):
++# shutil.copy( filename, os.path.join( rbgen_dir, "src", "zstd-1.1.0", os.path.basename( filename ) ) )
+
+ boostGlobs = [
+ 'libs/system/src/*.cpp',
+@@ -160,14 +160,14 @@ class ReleaseBuilder:
+ 'libs/chrono/src/*.cpp',
+ ]
+
+- for pattern in boostGlobs:
+- for filename in glob( '3rd_party/boost_1_55_0/%s' % pattern ):
+- shutil.copy( filename, os.path.join( rbgen_dir, "src", "boost", os.path.basename( filename ) ) )
++# for pattern in boostGlobs:
++# for filename in glob( '3rd_party/boost_1_55_0/%s' % pattern ):
++# shutil.copy( filename, os.path.join( rbgen_dir, "src", "boost", os.path.basename( filename ) ) )
+
+ include_paths = [
+- "3rd_party/boost_1_55_0/boost/",
+- "3rd_party/zstd-1.1.0/",
+- "3rd_party/sqlite3/",
++ "${EBBOOST}",
++ "${EBROOTZSTD}",
++ "${EBROOTSQLITE}",
+ "genfile/include/genfile",
+ "db/include/db"
+ ]
diff --git a/easybuild/easyconfigs/b/BGEN-enkre/BGEN-enkre-1.1.7-GCC-11.2.0.eb b/easybuild/easyconfigs/b/BGEN-enkre/BGEN-enkre-1.1.7-GCC-11.2.0.eb
new file mode 100644
index 00000000000..b0c0bc1be02
--- /dev/null
+++ b/easybuild/easyconfigs/b/BGEN-enkre/BGEN-enkre-1.1.7-GCC-11.2.0.eb
@@ -0,0 +1,74 @@
+# Contribution from the NIHR Biomedical Research Centre
+# Guy's and St Thomas' NHS Foundation Trust and King's College London
+# uploaded by J. Sassmannshausen
+# we recommend to use --download-timeout=1000 when fetching the files
+
+easyblock = 'CmdCp'
+
+name = 'BGEN-enkre'
+version = '1.1.7'
+
+homepage = 'https://enkre.net/cgi-bin/code/bgen/dir?ci=trunk'
+description = """This repository contains a reference implementation
+of the BGEN format, written in C++. The library can be used as the
+basis for BGEN support in other software, or as a reference for
+developers writing their own implementations of the BGEN format.
+Please cite:
+Band, G. and Marchini, J., "BGEN: a binary file format for imputed genotype and haplotype data",
+bioArxiv 308296; doi: https://doi.org/10.1101/308296
+"""
+
+toolchain = {'name': 'GCC', 'version': '11.2.0'}
+
+source_urls = ['https://code.enkre.net/bgen/tarball/v%(version)s/']
+sources = ['v%(version)s.tgz']
+patches = [
+ '3rd-party-removal.patch',
+ 'BGEN-enkre_streampos.patch',
+]
+
+checksums = [
+ ('6476b077af6c8e98e85fd7e09f58cb3fdf143ff91850c984248fd4dc2d74a8c3', # v1.1.7.tgz
+ 'b922ac22c1c0e365d0de6054f6ce2ad911bc81db5bcd8ca915bae750f57bd0a7'),
+ '0269b91d21976f38a9cf9bf7811375d16bf35be587d903ab1d846b2001b7d767', # 3rd-party-removal.patch
+ '61c05ae5f7363d5b7b6015f0a015b93f149dbda4b23b9f48f9517a6ce93d5869', # BGEN-enkre_streampos.patch
+]
+
+builddependencies = [
+ ('binutils', '2.37'),
+ ('Python', '3.9.6'),
+]
+
+dependencies = [
+ ('SQLite', '3.36'),
+ ('zstd', '1.5.0'),
+ ('Boost', '1.55.0'),
+]
+
+cmds_map = [
+ ('.*', "./waf configure && echo LIB_zstd = [\\'zstd\\'] >> build/c4che/_cache.py &&"
+ " echo LIB_sqlite3 = [\\'sqlite3\\'] >> build/c4che/_cache.py &&"
+ "echo LIB_boost = [\\'boost_system\\', \\'boost_filesystem\\', \\'boost_thread\\', \\'boost_timer\\'] "
+ " >> build/c4che/_cache.py && ./waf"),
+]
+
+files_to_copy = [
+ (['build/apps/edit-bgen', 'build/apps/bgenix', 'build/apps/cat-bgen'], 'bin'),
+ (['build/db/libdb.a', 'build/libbgen.a'], 'lib'),
+ (['genfile/include/*', 'db/include/*'], 'include'),
+]
+
+postinstallcmds = ['./build/test/unit/test_bgen']
+
+sanity_check_paths = {
+ 'files': ['bin/edit-bgen', 'bin/bgenix', 'bin/cat-bgen'],
+ 'dirs': ['bin', 'lib', 'include'],
+}
+
+sanity_check_commands = [
+ 'bgenix -help',
+ 'cat-bgen -help',
+ 'edit-bgen -help',
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/b/BGEN-enkre/BGEN-enkre-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/BGEN-enkre/BGEN-enkre_streampos.patch b/easybuild/easyconfigs/b/BGEN-enkre/BGEN-enkre_streampos.patch
new file mode 100644
index 00000000000..5d7c0e471c3
--- /dev/null
+++ b/easybuild/easyconfigs/b/BGEN-enkre/BGEN-enkre_streampos.patch
@@ -0,0 +1,12 @@
+diff -ruN 1.1.7.tgz.orig/src/View.cpp 1.1.7.tgz/src/View.cpp
+--- 1.1.7.tgz.orig/src/View.cpp 2020-06-29 01:19:43.000000000 -0700
++++ 1.1.7.tgz/src/View.cpp 2022-06-06 18:05:10.650577000 -0700
+@@ -177,7 +177,7 @@
+
+ // get file size
+ {
+- std::ios::streampos origin = m_stream->tellg() ;
++ std::streampos origin = m_stream->tellg() ;
+ m_stream->seekg( 0, std::ios::end ) ;
+ m_file_metadata.size = m_stream->tellg() - origin ;
+ m_stream->seekg( 0, std::ios::beg ) ;
diff --git a/easybuild/easyconfigs/b/BLAST+/BLAST+-2.13.0-gompi-2022a.eb b/easybuild/easyconfigs/b/BLAST+/BLAST+-2.13.0-gompi-2022a.eb
index fb96f2a9897..4e9e9d4d83e 100644
--- a/easybuild/easyconfigs/b/BLAST+/BLAST+-2.13.0-gompi-2022a.eb
+++ b/easybuild/easyconfigs/b/BLAST+/BLAST+-2.13.0-gompi-2022a.eb
@@ -27,6 +27,8 @@ source_urls = ['https://ftp.ncbi.nlm.nih.gov/blast/executables/%(namelower)s/%(v
sources = ['ncbi-blast-%(version)s+-src.tar.gz']
checksums = ['89553714d133daf28c477f83d333794b3c62e4148408c072a1b4620e5ec4feb2']
+builddependencies = [('cpio', '2.14')]
+
dependencies = [
('zlib', '1.2.12'),
('bzip2', '1.0.8'),
@@ -38,7 +40,10 @@ dependencies = [
('LMDB', '0.9.29'),
]
-configopts = "--with-64 --with-z=$EBROOTZLIB --with-bz2=$EBROOTBZIP2 "
+# remove line that prepends system paths to $PATH from configure script
+preconfigopts = r'sed -i "s|^PATH=\(.*\)$|#PATH=\1 |" %(start_dir)s/src/build-system/configure && '
+
+configopts = "--with-z=$EBROOTZLIB --with-bz2=$EBROOTBZIP2 "
configopts += "--with-pcre=$EBROOTPCRE --with-boost=$EBROOTBOOST "
configopts += "--with-gmp=$EBROOTGMP --with-png=$EBROOTLIBPNG "
configopts += "--with-jpeg=$EBROOTLIBJPEGMINTURBO --with-lmdb=$EBROOTLMDB"
diff --git a/easybuild/easyconfigs/b/BLAST+/BLAST+-2.14.0-gompi-2022b.eb b/easybuild/easyconfigs/b/BLAST+/BLAST+-2.14.0-gompi-2022b.eb
index 142ad4eb6aa..a4033efcdde 100644
--- a/easybuild/easyconfigs/b/BLAST+/BLAST+-2.14.0-gompi-2022b.eb
+++ b/easybuild/easyconfigs/b/BLAST+/BLAST+-2.14.0-gompi-2022b.eb
@@ -27,6 +27,8 @@ source_urls = ['https://ftp.ncbi.nlm.nih.gov/blast/executables/%(namelower)s/%(v
sources = ['ncbi-blast-%(version)s+-src.tar.gz']
checksums = ['bf477f1b0c3b82f0b7a7094bf003a9a83e37e3b0716c1df799060c4feab17500']
+builddependencies = [('cpio', '2.15')]
+
dependencies = [
('zlib', '1.2.12'),
('bzip2', '1.0.8'),
@@ -38,7 +40,10 @@ dependencies = [
('LMDB', '0.9.29'),
]
-configopts = "--with-64 --with-z=$EBROOTZLIB --with-bz2=$EBROOTBZIP2 "
+# remove line that prepends system paths to $PATH from configure script
+preconfigopts = r'sed -i "s|^PATH=\(.*\)$|#PATH=\1 |" %(start_dir)s/src/build-system/configure && '
+
+configopts = "--with-z=$EBROOTZLIB --with-bz2=$EBROOTBZIP2 "
configopts += "--with-pcre=$EBROOTPCRE --with-boost=$EBROOTBOOST "
configopts += "--with-gmp=$EBROOTGMP --with-png=$EBROOTLIBPNG "
configopts += "--with-jpeg=$EBROOTLIBJPEGMINTURBO --with-lmdb=$EBROOTLMDB"
diff --git a/easybuild/easyconfigs/b/BLAST+/BLAST+-2.14.1-gompi-2023a.eb b/easybuild/easyconfigs/b/BLAST+/BLAST+-2.14.1-gompi-2023a.eb
index 47c8e2d2ef6..844a9854825 100644
--- a/easybuild/easyconfigs/b/BLAST+/BLAST+-2.14.1-gompi-2023a.eb
+++ b/easybuild/easyconfigs/b/BLAST+/BLAST+-2.14.1-gompi-2023a.eb
@@ -27,6 +27,8 @@ source_urls = ['https://ftp.ncbi.nlm.nih.gov/blast/executables/%(namelower)s/%(v
sources = ['ncbi-blast-%(version)s+-src.tar.gz']
checksums = ['712c2dbdf0fb13cc1c2d4f4ef5dd1ce4b06c3b57e96dfea8f23e6e99f5b1650e']
+builddependencies = [('cpio', '2.15')]
+
dependencies = [
('zlib', '1.2.13'),
('bzip2', '1.0.8'),
@@ -38,7 +40,10 @@ dependencies = [
('LMDB', '0.9.31'),
]
-configopts = "--with-64 --with-z=$EBROOTZLIB --with-bz2=$EBROOTBZIP2 "
+# remove line that prepends system paths to $PATH from configure script
+preconfigopts = r'sed -i "s|^PATH=\(.*\)$|#PATH=\1 |" %(start_dir)s/src/build-system/configure && '
+
+configopts = "--with-z=$EBROOTZLIB --with-bz2=$EBROOTBZIP2 "
configopts += "--with-pcre=$EBROOTPCRE --with-boost=$EBROOTBOOST "
configopts += "--with-gmp=$EBROOTGMP --with-png=$EBROOTLIBPNG "
configopts += "--with-jpeg=$EBROOTLIBJPEGMINTURBO --with-lmdb=$EBROOTLMDB"
diff --git a/easybuild/easyconfigs/b/BLAT/BLAT-3.7-GCC-12.3.0.eb b/easybuild/easyconfigs/b/BLAT/BLAT-3.7-GCC-12.3.0.eb
new file mode 100644
index 00000000000..ba6cac7d238
--- /dev/null
+++ b/easybuild/easyconfigs/b/BLAT/BLAT-3.7-GCC-12.3.0.eb
@@ -0,0 +1,55 @@
+##
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+#
+# Copyright:: Copyright 2012-2013 The Cyprus Institute
+# Authors:: Andreas Panteli , Thekla Loizou
+# Contributors:: Alex Domingo (Vrije Universiteit Brussel)
+# License:: MIT/GPL
+#
+##
+
+name = 'BLAT'
+version = '3.7'
+
+homepage = 'https://genome.ucsc.edu/goldenPath/help/blatSpec.html'
+description = """BLAT on DNA is designed to quickly find sequences of 95% and
+greater similarity of length 25 bases or more."""
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://genome-test.gi.ucsc.edu/~kent/src/']
+sources = ['%%(namelower)sSrc%s.zip' % ''.join(version.split('.'))]
+patches = ['BLAT-%(version)s_mend-tests.patch']
+checksums = [
+ {'blatSrc37.zip': '88ee2b272d42ab77687c61d200b11f1d58443951069feb7e10226a2509f84cf2'},
+ {'BLAT-3.7_mend-tests.patch': '1f42c7fadf7676a5cc3a2016f70089c3541aa1d53816cf86072682c44cf311a6'},
+]
+
+# BLAT relies on a bundled old version of HTSlib. We use the bundled library
+# because it is statically linked and the newer HTSlib in this toolchain is not
+# API compatible with it.
+dependencies = [
+ ('freetype', '2.13.0'),
+ ('libiconv', '1.17'),
+ ('libpng', '1.6.39'),
+ ('MariaDB', '11.6.0'),
+ ('OpenSSL', '1.1', '', SYSTEM),
+ ('util-linux', '2.39'),
+ ('zlib', '1.2.13'),
+]
+
+pretestopts = 'PATH="%(builddir)s/blatSrc/bin:$PATH"'
+runtest = 'test'
+
+_blat_bins = ["blat", "faToNib", "faToTwoBit", "gfClient", "gfServer", "nibFrag", "pslPretty",
+ "pslReps", "pslSort", "twoBitInfo", "twoBitToFa"]
+
+files_to_copy = [(["bin/%s" % x for x in _blat_bins] + ["webBlat/webBlat"], 'bin')]
+
+sanity_check_paths = {
+ 'files': ["bin/%s" % x for x in _blat_bins + ["webBlat"]],
+ 'dirs': [],
+}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/b/BLIS/BLIS-1.0-GCC-13.3.0.eb b/easybuild/easyconfigs/b/BLIS/BLIS-1.0-GCC-13.3.0.eb
new file mode 100644
index 00000000000..18d8ec6c887
--- /dev/null
+++ b/easybuild/easyconfigs/b/BLIS/BLIS-1.0-GCC-13.3.0.eb
@@ -0,0 +1,33 @@
+easyblock = 'ConfigureMake'
+
+name = 'BLIS'
+version = '1.0'
+
+homepage = 'https://github.com/flame/blis/'
+description = """BLIS is a portable software framework for instantiating high-performance
+BLAS-like dense linear algebra libraries."""
+
+toolchain = {'name': 'GCC', 'version': '13.3.0'}
+
+source_urls = ['https://github.com/flame/blis/archive/']
+sources = ['%(version)s.tar.gz']
+checksums = ['9c12972aa1e50f64ca61684eba6828f2f3dd509384b1e41a1e8a9aedea4b16a6']
+
+builddependencies = [
+ ('Python', '3.12.3'),
+ ('Perl', '5.38.2'),
+]
+
+configopts = '--enable-cblas --enable-threading=openmp --enable-shared CC="$CC" auto'
+
+runtest = 'check'
+
+sanity_check_paths = {
+ 'files': ['include/blis/cblas.h', 'include/blis/blis.h',
+ 'lib/libblis.a', 'lib/libblis.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+
+modextrapaths = {'CPATH': 'include/blis'}
+
+moduleclass = 'numlib'
diff --git a/easybuild/easyconfigs/b/BRAKER/BRAKER-3.0.8-foss-2023a.eb b/easybuild/easyconfigs/b/BRAKER/BRAKER-3.0.8-foss-2023a.eb
new file mode 100644
index 00000000000..7a87a70ddb1
--- /dev/null
+++ b/easybuild/easyconfigs/b/BRAKER/BRAKER-3.0.8-foss-2023a.eb
@@ -0,0 +1,55 @@
+# updated: Denis Kristak (INUITS)
+# Update: Petr Král (INUITS)
+easyblock = 'Tarball'
+
+name = 'BRAKER'
+version = '3.0.8'
+
+homepage = 'https://github.com/Gaius-Augustus/BRAKER'
+description = """BRAKER is a pipeline for fully automated prediction of protein coding genes with GeneMark-ES/ET
+ and AUGUSTUS in novel eukaryotic genomes."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+source_urls = ['https://github.com/Gaius-Augustus/BRAKER/archive/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['f2623290c3007a3e42719a0bb2713bec7226db222bfef742895a9d5d0b4ee526']
+
+dependencies = [
+ ('Perl', '5.36.1'),
+ ('Python', '3.11.3'),
+ ('AUGUSTUS', '3.5.0'),
+ ('GeneMark-ET', '4.72'),
+ ('BamTools', '2.5.2'),
+ ('SAMtools', '1.18'),
+ ('GenomeThreader', '1.7.3', '-Linux_x86_64-64bit', SYSTEM),
+ ('spaln', '3.0.6b'),
+ ('Exonerate', '2.4.0'),
+ ('BLAST+', '2.14.1'),
+ ('Biopython', '1.83'),
+ ('DIAMOND', '2.1.8'),
+ ('CDBtools', '0.99'),
+]
+
+fix_perl_shebang_for = ['scripts/*.pl']
+fix_python_shebang_for = ['scripts/*.py']
+
+sanity_check_paths = {
+ 'files': [
+ 'scripts/braker.pl',
+ 'scripts/compare_intervals_exact.pl',
+ 'scripts/compute_accuracies.sh',
+ 'scripts/compute_accuracies.sh',
+ 'scripts/filterGenemark.pl',
+ 'scripts/findGenesInIntrons.pl',
+ 'scripts/gatech_pmp2hints.pl',
+ 'scripts/sortGeneMark.py',
+ ],
+ 'dirs': ['docs', 'example'],
+}
+
+sanity_check_commands = ["braker.pl --help"]
+
+modextrapaths = {'PATH': 'scripts'}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/b/BRiAl/BRiAl-1.2.12-GCC-13.2.0.eb b/easybuild/easyconfigs/b/BRiAl/BRiAl-1.2.12-GCC-13.2.0.eb
new file mode 100644
index 00000000000..50bbeea16ee
--- /dev/null
+++ b/easybuild/easyconfigs/b/BRiAl/BRiAl-1.2.12-GCC-13.2.0.eb
@@ -0,0 +1,31 @@
+easyblock = 'ConfigureMake'
+
+name = 'BRiAl'
+version = '1.2.12'
+
+homepage = 'https://github.com/BRiAl/BRiAl'
+description = """BRiAl is the legacy version of PolyBoRi maintained by sagemath developers."""
+
+toolchain = {'name': 'GCC', 'version': '13.2.0'}
+
+source_urls = ['https://github.com/BRiAl/BRiAl/releases/download/%(version)s']
+sources = [SOURCELOWER_TAR_BZ2]
+checksums = ['ca009e3722dd3f0a60d15501caed1413146c80abced57423e32ae0116f407494']
+
+dependencies = [
+ ('Boost', '1.83.0'),
+ ('m4ri', '20200125'),
+ ('CUDD', '3.0.0'),
+]
+
+configopts = "--with-boost=$EBROOTBOOST "
+
+runtest = 'check'
+
+sanity_check_paths = {
+ 'files': ['include/polybori.h'] +
+ ['lib/libbrial.%s' % e for e in ['a', SHLIB_EXT]],
+ 'dirs': [],
+}
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/b/BWA/BWA-0.7.18-GCCcore-12.3.0.eb b/easybuild/easyconfigs/b/BWA/BWA-0.7.18-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..a5599e37642
--- /dev/null
+++ b/easybuild/easyconfigs/b/BWA/BWA-0.7.18-GCCcore-12.3.0.eb
@@ -0,0 +1,52 @@
+##
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+#
+# Copyright:: Copyright 2012-2014 Cyprus Institute / CaSToRC, Uni.Lu/LCSB, NTUA
+# Authors:: George Tsouloupas , Fotis Georgatos
+# License:: MIT/GPL
+# $Id$
+#
+# This work implements a part of the HPCBIOS project and is a component of the policy:
+# http://hpcbios.readthedocs.org/en/latest/HPCBIOS_2012-94.html
+#
+# Version >= 0.7.15
+# Author: Adam Huffman
+# The Francis Crick Institute
+#
+# Note that upstream development is mainly at: https://github.com/lh3/bwa
+#
+# 0.7.18
+# Erica Bianco (HPCNow!)
+##
+
+name = 'BWA'
+version = '0.7.18'
+
+homepage = 'http://bio-bwa.sourceforge.net/'
+description = """
+ Burrows-Wheeler Aligner (BWA) is an efficient program that aligns relatively
+ short nucleotide sequences against a long reference sequence such as the human
+ genome.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/lh3/%(name)s/archive/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['194788087f7b9a77c0114aa481b2ef21439f6abab72488c83917302e8d0e7870']
+
+builddependencies = [('binutils', '2.40')]
+
+dependencies = [
+ ('Perl', '5.36.1'),
+ ('zlib', '1.2.13'),
+]
+
+# Allow use of x86 intrinsics on PPC
+prebuildopts = 'export CFLAGS="$CFLAGS -fcommon -DNO_WARN_X86_INTRINSICS" && '
+prebuildopts += "sed -i 's|^CC=|#CC=|g' Makefile && "
+prebuildopts += "sed -i 's|^CFLAGS=|#CFLAGS=|g' Makefile && "
+prebuildopts += "sed -i 's|^LIBS=|LIBS= $(LDFLAGS) |g' Makefile && "
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/b/BamTools/BamTools-2.5.2-GCC-13.2.0.eb b/easybuild/easyconfigs/b/BamTools/BamTools-2.5.2-GCC-13.2.0.eb
new file mode 100644
index 00000000000..a8e5449e98c
--- /dev/null
+++ b/easybuild/easyconfigs/b/BamTools/BamTools-2.5.2-GCC-13.2.0.eb
@@ -0,0 +1,22 @@
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+name = 'BamTools'
+version = '2.5.2'
+
+homepage = 'https://github.com/pezmaster31/bamtools'
+description = "BamTools provides both a programmer's API and an end-user's toolkit for handling BAM files."
+
+toolchain = {'name': 'GCC', 'version': '13.2.0'}
+toolchainopts = {'pic': True}
+
+source_urls = [GITHUB_LOWER_SOURCE]
+sources = ['v%(version)s.tar.gz']
+checksums = ['4d8b84bd07b673d0ed41031348f10ca98dd6fa6a4460f9b9668d6f1d4084dfc8']
+
+builddependencies = [
+ ('CMake', '3.27.6'),
+]
+
+# https://github.com/pezmaster31/bamtools
+github_account = 'pezmaster31'
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/b/BamTools/BamTools-2.5.2-GCC-13.3.0.eb b/easybuild/easyconfigs/b/BamTools/BamTools-2.5.2-GCC-13.3.0.eb
new file mode 100644
index 00000000000..23e1ad0e743
--- /dev/null
+++ b/easybuild/easyconfigs/b/BamTools/BamTools-2.5.2-GCC-13.3.0.eb
@@ -0,0 +1,22 @@
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+name = 'BamTools'
+version = '2.5.2'
+
+homepage = 'https://github.com/pezmaster31/bamtools'
+description = "BamTools provides both a programmer's API and an end-user's toolkit for handling BAM files."
+
+toolchain = {'name': 'GCC', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = [GITHUB_LOWER_SOURCE]
+sources = ['v%(version)s.tar.gz']
+checksums = ['4d8b84bd07b673d0ed41031348f10ca98dd6fa6a4460f9b9668d6f1d4084dfc8']
+
+builddependencies = [
+ ('CMake', '3.29.3'),
+]
+
+# https://github.com/pezmaster31/bamtools
+github_account = 'pezmaster31'
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/b/Bandage/Bandage-0.9.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/b/Bandage/Bandage-0.9.0-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..acdc093c96d
--- /dev/null
+++ b/easybuild/easyconfigs/b/Bandage/Bandage-0.9.0-GCCcore-12.3.0.eb
@@ -0,0 +1,30 @@
+easyblock = 'MakeCp'
+
+name = 'Bandage'
+version = '0.9.0'
+
+homepage = 'http://rrwick.github.io/Bandage'
+description = "Bandage is a program for visualising de novo assembly graphs"
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = ['https://github.com/rrwick/Bandage/archive']
+sources = ['v%(version)s.tar.gz']
+checksums = ['04de8152d8bf5e5aa32b41a63cf1c23e1fee7b67ccd9f1407db8dc2824ca4e30']
+
+builddependencies = [('binutils', '2.40')]
+
+dependencies = [('Qt5', '5.15.10')]
+
+prebuildopts = "qmake Bandage.pro && "
+
+files_to_copy = [(['Bandage'], 'bin')]
+
+sanity_check_paths = {
+ 'files': ['bin/Bandage'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["Bandage --help && ldd $(which Bandage)"]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/b/BayesOpt/BayesOpt-0.9-GCC-12.3.0.eb b/easybuild/easyconfigs/b/BayesOpt/BayesOpt-0.9-GCC-12.3.0.eb
new file mode 100644
index 00000000000..2e20ceba904
--- /dev/null
+++ b/easybuild/easyconfigs/b/BayesOpt/BayesOpt-0.9-GCC-12.3.0.eb
@@ -0,0 +1,33 @@
+easyblock = 'CMakeMake'
+
+name = 'BayesOpt'
+version = '0.9'
+
+homepage = 'https://rmcantin.github.io/bayesopt'
+description = """BayesOpt is an efficient implementation of the Bayesian optimization methodology for
+nonlinear-optimization, experimental design, stochastic bandits and hyperparameter tunning"""
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+
+source_urls = ['https://github.com/rmcantin/bayesopt/archive/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['f4e60cfac380eccd2d1adc805b752b5bd22a1d8a27dc6aeb630c403adc04f28c']
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+]
+
+dependencies = [
+ ('Boost', '1.82.0'),
+ ('NLopt', '2.7.1'),
+]
+
+# don't build included version of NLopt (use provided dependency)
+configopts = "-DNLOPT_BUILD=OFF"
+
+sanity_check_paths = {
+ 'files': ['lib/libbayesopt.a'],
+ 'dirs': ['include/bayesopt'],
+}
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/b/BayesTraits/BayesTraits-4.1.2-Linux.eb b/easybuild/easyconfigs/b/BayesTraits/BayesTraits-4.1.2-Linux.eb
new file mode 100644
index 00000000000..541dedf129e
--- /dev/null
+++ b/easybuild/easyconfigs/b/BayesTraits/BayesTraits-4.1.2-Linux.eb
@@ -0,0 +1,40 @@
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+# Author: Pablo Escobar Lopez
+# Swiss Institute of Bioinformatics
+# Biozentrum - University of Basel
+
+# Updated by
+# Author: Alex Salois
+# Research Cyberinfrastructure
+# Montana State University
+
+easyblock = "Tarball"
+
+name = 'BayesTraits'
+version = '4.1.2'
+versionsuffix = '-Linux'
+
+homepage = 'https://www.evolution.reading.ac.uk/SoftwareMain.html'
+description = """ BayesTraits is a computer package for performing analyses of trait
+ evolution among groups of species for which a phylogeny or sample of phylogenies is
+ available. This new package incoporates our earlier and separate programes Multistate,
+ Discrete and Continuous. BayesTraits can be applied to the analysis of traits that adopt
+ a finite number of discrete states, or to the analysis of continuously varying traits.
+ Hypotheses can be tested about models of evolution, about ancestral states and about
+ correlations among pairs of traits. """
+
+toolchain = SYSTEM
+
+source_urls = ['https://www.evolution.reading.ac.uk/BayesTraitsV%(version)s/Files/']
+sources = ['BayesTraitsV%(version)s%(versionsuffix)s.tar.gz']
+checksums = ['d5251c2b256405fc63c55caf8371b267530a3c4ebd11cbfd3ebd4013c9d49db0']
+
+sanity_check_paths = {
+ 'files': ['BayesTraitsV4', 'Artiodactyl.trees', 'Bird.trees', 'Mammal.trees',
+ 'Marsupials.trees', 'NortheastBantu.trees', 'Primates.trees'],
+ 'dirs': [],
+}
+
+modextrapaths = {'PATH': ''}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/b/Bazel/Bazel-6.1.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/b/Bazel/Bazel-6.1.0-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..1bacc7b9363
--- /dev/null
+++ b/easybuild/easyconfigs/b/Bazel/Bazel-6.1.0-GCCcore-12.3.0.eb
@@ -0,0 +1,29 @@
+name = 'Bazel'
+version = '6.1.0'
+
+homepage = 'https://bazel.io/'
+description = """Bazel is a build tool that builds code quickly and reliably.
+It is used to build the majority of Google's software."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = ['https://github.com/bazelbuild/%(namelower)s/releases/download/%(version)s']
+sources = ['%(namelower)s-%(version)s-dist.zip']
+patches = ['Bazel-6.3.1_add-symlinks-in-runfiles.patch']
+checksums = [
+ {'bazel-6.1.0-dist.zip': 'c4b85675541cf66ee7cb71514097fdd6c5fc0e02527243617a4f20ca6b4f2932'},
+ {'Bazel-6.3.1_add-symlinks-in-runfiles.patch': '81db53aa87229557480b6f719c99a0f1af9c69dfec12185451e520b0128c3ae2'},
+]
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('Python', '3.11.3'),
+ ('Zip', '3.0'),
+]
+
+dependencies = [('Java', '11', '', SYSTEM)]
+
+runtest = True
+testopts = "-- //examples/cpp:hello-success_test //examples/py/... //examples/py_native:test //examples/shell/..."
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/b/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/BeautifulSoup/BeautifulSoup-4.12.2-GCCcore-12.3.0.eb b/easybuild/easyconfigs/b/BeautifulSoup/BeautifulSoup-4.12.2-GCCcore-12.3.0.eb
index cc388eeb4ca..8d4556012b6 100644
--- a/easybuild/easyconfigs/b/BeautifulSoup/BeautifulSoup-4.12.2-GCCcore-12.3.0.eb
+++ b/easybuild/easyconfigs/b/BeautifulSoup/BeautifulSoup-4.12.2-GCCcore-12.3.0.eb
@@ -9,12 +9,12 @@ description = "Beautiful Soup is a Python library designed for quick turnaround
toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
builddependencies = [
- ('binutils', '2.40')
+ ('binutils', '2.40'),
+ ('hatchling', '1.18.0'),
]
dependencies = [
('Python', '3.11.3'),
- ('hatchling', '1.18.0'),
]
use_pip = True
diff --git a/easybuild/easyconfigs/b/BeautifulSoup/BeautifulSoup-4.12.2-GCCcore-13.2.0.eb b/easybuild/easyconfigs/b/BeautifulSoup/BeautifulSoup-4.12.2-GCCcore-13.2.0.eb
index 4aeb23721ad..bbf74453cfd 100644
--- a/easybuild/easyconfigs/b/BeautifulSoup/BeautifulSoup-4.12.2-GCCcore-13.2.0.eb
+++ b/easybuild/easyconfigs/b/BeautifulSoup/BeautifulSoup-4.12.2-GCCcore-13.2.0.eb
@@ -9,12 +9,12 @@ description = "Beautiful Soup is a Python library designed for quick turnaround
toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
builddependencies = [
- ('binutils', '2.40')
+ ('binutils', '2.40'),
+ ('hatchling', '1.18.0'),
]
dependencies = [
('Python', '3.11.5'),
- ('hatchling', '1.18.0'),
]
use_pip = True
diff --git a/easybuild/easyconfigs/b/BeautifulSoup/BeautifulSoup-4.12.3-GCCcore-13.3.0.eb b/easybuild/easyconfigs/b/BeautifulSoup/BeautifulSoup-4.12.3-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..95cb6cf3228
--- /dev/null
+++ b/easybuild/easyconfigs/b/BeautifulSoup/BeautifulSoup-4.12.3-GCCcore-13.3.0.eb
@@ -0,0 +1,35 @@
+easyblock = 'PythonBundle'
+
+name = 'BeautifulSoup'
+version = '4.12.3'
+
+homepage = 'https://www.crummy.com/software/BeautifulSoup'
+description = "Beautiful Soup is a Python library designed for quick turnaround projects like screen-scraping."
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('hatchling', '1.24.2'),
+]
+
+dependencies = [
+ ('Python', '3.12.3'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('soupsieve', '2.5', {
+ 'checksums': ['5663d5a7b3bfaeee0bc4372e7fc48f9cff4940b3eec54a6451cc5299f1097690'],
+ }),
+ (name, version, {
+ 'modulename': 'bs4',
+ 'source_tmpl': 'beautifulsoup4-%(version)s.tar.gz',
+ 'source_urls': ['https://pypi.python.org/packages/source/b/beautifulsoup4'],
+ 'checksums': ['74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051'],
+ }),
+]
+
+moduleclass = 'data'
diff --git a/easybuild/easyconfigs/b/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/BioPerl/BioPerl-1.7.8-GCCcore-12.2.0.eb b/easybuild/easyconfigs/b/BioPerl/BioPerl-1.7.8-GCCcore-12.2.0.eb
index 8caddd5df22..e8e52099b07 100644
--- a/easybuild/easyconfigs/b/BioPerl/BioPerl-1.7.8-GCCcore-12.2.0.eb
+++ b/easybuild/easyconfigs/b/BioPerl/BioPerl-1.7.8-GCCcore-12.2.0.eb
@@ -5,7 +5,7 @@
# Fred Hutchinson Cancer Research Center
# Thomas Eylenbosch - Gluo NV
-easyblock = 'PerlModule'
+easyblock = 'Bundle'
name = 'BioPerl'
version = '1.7.8'
diff --git a/easybuild/easyconfigs/b/BioPerl/BioPerl-1.7.8-GCCcore-12.3.0.eb b/easybuild/easyconfigs/b/BioPerl/BioPerl-1.7.8-GCCcore-12.3.0.eb
index b47216124f8..4212570abb1 100644
--- a/easybuild/easyconfigs/b/BioPerl/BioPerl-1.7.8-GCCcore-12.3.0.eb
+++ b/easybuild/easyconfigs/b/BioPerl/BioPerl-1.7.8-GCCcore-12.3.0.eb
@@ -5,7 +5,7 @@
# Fred Hutchinson Cancer Research Center
# Thomas Eylenbosch - Gluo NV
-easyblock = 'PerlModule'
+easyblock = 'Bundle'
name = 'BioPerl'
version = '1.7.8'
diff --git a/easybuild/easyconfigs/b/BioPerl/BioPerl-1.7.8-GCCcore-13.3.0.eb b/easybuild/easyconfigs/b/BioPerl/BioPerl-1.7.8-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..ba3029a6a41
--- /dev/null
+++ b/easybuild/easyconfigs/b/BioPerl/BioPerl-1.7.8-GCCcore-13.3.0.eb
@@ -0,0 +1,58 @@
+# easybuild easyconfig
+#
+# John Dey jfdey@fredhutch.org
+#
+# Fred Hutchinson Cancer Research Center
+# Thomas Eylenbosch - Gluo NV
+
+easyblock = 'Bundle'
+
+name = 'BioPerl'
+version = '1.7.8'
+
+homepage = 'https://bioperl.org/'
+description = """Bioperl is the product of a community effort to produce Perl code which is useful in biology.
+ Examples include Sequence objects, Alignment objects and database searching objects."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+builddependencies = [('binutils', '2.42')]
+
+dependencies = [
+ ('Perl', '5.38.2'),
+ ('Perl-bundle-CPAN', '5.38.2'),
+ ('XML-LibXML', '2.0210'),
+ ('DB_File', '1.859'),
+]
+
+exts_defaultclass = 'PerlModule'
+exts_filter = ("perldoc -lm %(ext_name)s ", "")
+
+exts_list = [
+ ('XML::Writer', '0.900', {
+ 'source_tmpl': 'XML-Writer-%(version)s.tar.gz',
+ 'source_urls': ['https://cpan.metacpan.org/authors/id/J/JO/JOSEPHW'],
+ 'checksums': ['73c8f5bd3ecf2b350f4adae6d6676d52e08ecc2d7df4a9f089fa68360d400d1f'],
+ }),
+ (name, version, {
+ 'source_tmpl': '%(name)s-%(version)s.tar.gz',
+ 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CJ/CJFIELDS/'],
+ 'checksums': ['c490a3be7715ea6e4305efd9710e5edab82dabc55fd786b6505b550a30d71738'],
+ }),
+ ('Bio::Procedural', '1.7.4', {
+ 'source_tmpl': 'Bio-Procedural-%(version)s.tar.gz',
+ 'source_urls': ['https://cpan.metacpan.org/authors/id/C/CJ/CJFIELDS/'],
+ 'checksums': ['d2bd9cfbb091eee2d80ed6cf812ac3813b1c8a1aaca20671037f5f225d31d1da'],
+ }),
+]
+
+modextrapaths = {
+ 'PERL5LIB': 'lib/perl5/site_perl/%(perlver)s/',
+}
+
+sanity_check_paths = {
+ 'files': [],
+ 'dirs': ['bin', 'lib/perl5/site_perl/%(perlver)s/Bio'],
+}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/b/Biopython/Biopython-1.84-foss-2023b.eb b/easybuild/easyconfigs/b/Biopython/Biopython-1.84-foss-2023b.eb
new file mode 100644
index 00000000000..03c23f41186
--- /dev/null
+++ b/easybuild/easyconfigs/b/Biopython/Biopython-1.84-foss-2023b.eb
@@ -0,0 +1,46 @@
+# Updated from previous easyconfig
+# Author: Robert Mijakovic
+# Update: Pavel Tománek (INUITS)
+
+easyblock = 'PythonPackage'
+
+name = 'Biopython'
+version = '1.84'
+
+homepage = 'https://www.biopython.org'
+description = """Biopython is a set of freely available tools for biological
+ computation written in Python by an international team of developers. It is
+ a distributed collaborative effort to develop Python libraries and
+ applications which address the needs of current and future work in
+ bioinformatics. """
+
+toolchain = {'name': 'foss', 'version': '2023b'}
+
+source_urls = ['https://biopython.org/DIST']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['60fbe6f996e8a6866a42698c17e552127d99a9aab3259d6249fbaabd0e0cc7b4']
+
+dependencies = [
+ ('Python', '3.11.5'),
+ ('SciPy-bundle', '2023.11'),
+]
+
+download_dep_fail = True
+use_pip = True
+sanity_pip_check = True
+
+# Run only tests that don't require internet connection
+runtest = 'python setup.py test --offline'
+
+sanity_check_paths = {
+ 'files': [],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages/Bio',
+ 'lib/python%(pyshortver)s/site-packages/BioSQL']
+}
+
+# extra check to ensure numpy dependency is available
+sanity_check_commands = ["python -c 'import Bio.MarkovModel'"]
+
+options = {'modulename': 'Bio'}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/b/Biotite/Biotite-0.41.0-gfbf-2023a.eb b/easybuild/easyconfigs/b/Biotite/Biotite-0.41.0-gfbf-2023a.eb
new file mode 100644
index 00000000000..8d4385e45f5
--- /dev/null
+++ b/easybuild/easyconfigs/b/Biotite/Biotite-0.41.0-gfbf-2023a.eb
@@ -0,0 +1,32 @@
+easyblock = 'PythonBundle'
+
+name = 'Biotite'
+version = '0.41.0'
+
+homepage = 'https://www.biotite-python.org/'
+description = """Biotite is your Swiss army knife for bioinformatics. Whether you want to
+identify homologous sequence regions in a protein family or you would like to
+find disulfide bonds in a protein structure: Biotite has the right tool for
+you. This package bundles popular tasks in computational molecular biology into
+a uniform Python library."""
+
+toolchain = {'name': 'gfbf', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('SciPy-bundle', '2023.07'),
+ ('networkx', '3.1'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('biotite', version, {
+ 'checksums': ['a5fddb4d738291772735cf04dfa8b642e0bdd6b4c2c0c71e2db727c0a66bd106'],
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/b/Bison/Bison-3.8.2-GCCcore-13.3.0.eb b/easybuild/easyconfigs/b/Bison/Bison-3.8.2-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..168af69373e
--- /dev/null
+++ b/easybuild/easyconfigs/b/Bison/Bison-3.8.2-GCCcore-13.3.0.eb
@@ -0,0 +1,28 @@
+easyblock = 'ConfigureMake'
+
+name = 'Bison'
+version = '3.8.2'
+
+homepage = 'https://www.gnu.org/software/bison'
+description = """Bison is a general-purpose parser generator that converts an annotated context-free grammar
+ into a deterministic LR or generalized LR (GLR) parser employing LALR(1) parser tables."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = [GNU_SOURCE]
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['06c9e13bdf7eb24d4ceb6b59205a4f67c2c7e7213119644430fe82fbd14a0abb']
+
+builddependencies = [
+ ('M4', '1.4.19'),
+ # use same binutils version that was used when building GCCcore toolchain
+ ('binutils', '2.42', '', SYSTEM),
+]
+
+
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in ['bison', 'yacc']] + [('lib/liby.a', 'lib64/liby.a')],
+ 'dirs': [],
+}
+
+moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/b/Bison/Bison-3.8.2-GCCcore-14.2.0.eb b/easybuild/easyconfigs/b/Bison/Bison-3.8.2-GCCcore-14.2.0.eb
new file mode 100644
index 00000000000..427ebbbe2b7
--- /dev/null
+++ b/easybuild/easyconfigs/b/Bison/Bison-3.8.2-GCCcore-14.2.0.eb
@@ -0,0 +1,28 @@
+easyblock = 'ConfigureMake'
+
+name = 'Bison'
+version = '3.8.2'
+
+homepage = 'https://www.gnu.org/software/bison'
+description = """Bison is a general-purpose parser generator that converts an annotated context-free grammar
+ into a deterministic LR or generalized LR (GLR) parser employing LALR(1) parser tables."""
+
+toolchain = {'name': 'GCCcore', 'version': '14.2.0'}
+
+source_urls = [GNU_SOURCE]
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['06c9e13bdf7eb24d4ceb6b59205a4f67c2c7e7213119644430fe82fbd14a0abb']
+
+builddependencies = [
+ ('M4', '1.4.19'),
+ # use same binutils version that was used when building GCCcore toolchain
+ ('binutils', '2.42', '', SYSTEM),
+]
+
+
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in ['bison', 'yacc']] + [('lib/liby.a', 'lib64/liby.a')],
+ 'dirs': [],
+}
+
+moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/b/Block/Block-1.5.3-20200525-foss-2023a.eb b/easybuild/easyconfigs/b/Block/Block-1.5.3-20200525-foss-2023a.eb
new file mode 100644
index 00000000000..da1316c8aa6
--- /dev/null
+++ b/easybuild/easyconfigs/b/Block/Block-1.5.3-20200525-foss-2023a.eb
@@ -0,0 +1,56 @@
+easyblock = 'MakeCp'
+
+name = 'Block'
+version = '1.5.3-20200525'
+_commit = 'f95317b08043b7c531289576d59ad74a6d920741'
+
+homepage = 'https://sanshar.github.io/Block/'
+description = """Block implements the density matrix renormalization group (DMRG) algorithm for
+quantum chemistry."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'cstd': 'c++11', 'pic': True}
+
+# Version 1.5 is a major rewrite of Block that was named at some point StackBlock
+# sources are available in sanshar/StackBlock
+# sources at sanshar/Block@b0e3671aad and pyscf/Block@db27636b76 correspond to version 1.1.1
+source_urls = ['https://github.com/sanshar/StackBlock/archive']
+sources = [{'download_filename': '%s.tar.gz' % _commit, 'filename': '%(version)s.tar.gz'}]
+patches = [
+ 'Block-1.5.3_use-eb-environment.patch',
+ 'Block-1.5.3_replace_mpi_cxx_binds_with_boost_mpi.patch',
+ 'Block-1.5.3_resolve_deprecated_Bind_placeholder.patch'
+]
+checksums = [
+ {'1.5.3-20200525.tar.gz': '8d793c5e460d7747a0adcb06ce4b457c6750cf2d42cead1d060db8b44643c3b1'},
+ {'Block-1.5.3_use-eb-environment.patch': '7f3e8a52f28d251441d20dfde1f9cb8cdc0c34216defab61cc6980e540a6cf60'},
+ {'Block-1.5.3_replace_mpi_cxx_binds_with_boost_mpi.patch':
+ 'f53f1f88cb7b12ab38d1313f93a9bbd31c745dca1beca7a8d51d00e0ae4e762f'},
+ {'Block-1.5.3_resolve_deprecated_Bind_placeholder.patch':
+ '51d692f294e800e0a9e027ef35bf761612ecb9efe77ddb378ec973b55e39a1e8'},
+]
+
+dependencies = [
+ ('Boost.MPI', '1.82.0'),
+]
+
+buildopts = [
+ # Multi-threaded build (block.spin_adapted-serial)
+ 'OPENMP="yes" EXECUTABLE="block.spin_adapted-serial"',
+ # MPI build (block.spin_adapted)
+ 'USE_MPI="yes"',
+]
+
+files_to_copy = [(['block.spin_adapted*'], 'bin')]
+
+sanity_check_paths = {
+ 'files': ['bin/block.spin_adapted', 'bin/block.spin_adapted-serial'],
+ 'dirs': [],
+}
+
+sanity_check_commands = [
+ "block.spin_adapted-serial --version",
+ "%(mpi_cmd_prefix)s block.spin_adapted --version",
+]
+
+moduleclass = 'phys'
diff --git a/easybuild/easyconfigs/b/Boost.MPI/Boost.MPI-1.83.0-gompi-2023b.eb b/easybuild/easyconfigs/b/Boost.MPI/Boost.MPI-1.83.0-gompi-2023b.eb
new file mode 100644
index 00000000000..2378bf71abb
--- /dev/null
+++ b/easybuild/easyconfigs/b/Boost.MPI/Boost.MPI-1.83.0-gompi-2023b.eb
@@ -0,0 +1,29 @@
+easyblock = 'EB_Boost'
+
+name = 'Boost.MPI'
+version = '1.83.0'
+
+homepage = 'https://www.boost.org/'
+description = """Boost provides free peer-reviewed portable C++ source libraries."""
+
+toolchain = {'name': 'gompi', 'version': '2023b'}
+toolchainopts = {'pic': True, 'usempi': True}
+
+source_urls = ['https://boostorg.jfrog.io/artifactory/main/release/%(version)s/source/']
+sources = ['boost_%s.tar.gz' % '_'.join(version.split('.'))]
+checksums = ['c0685b68dd44cc46574cce86c4e17c0f611b15e195be9848dfd0769a0a207628']
+
+dependencies = [
+ ('bzip2', '1.0.8'),
+ ('zlib', '1.2.13'),
+ ('XZ', '5.4.4'),
+ ('zstd', '1.5.5'),
+ ('ICU', '74.1'),
+]
+
+configopts = '--without-libraries=python'
+
+boost_mpi = True
+tagged_layout = True
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/b/Boost.Python/Boost.Python-1.82.0-GCC-12.3.0.eb b/easybuild/easyconfigs/b/Boost.Python/Boost.Python-1.82.0-GCC-12.3.0.eb
new file mode 100644
index 00000000000..ee38c6983cd
--- /dev/null
+++ b/easybuild/easyconfigs/b/Boost.Python/Boost.Python-1.82.0-GCC-12.3.0.eb
@@ -0,0 +1,24 @@
+easyblock = 'EB_Boost'
+
+name = 'Boost.Python'
+version = '1.82.0'
+
+homepage = 'https://boostorg.github.io/python'
+description = """Boost.Python is a C++ library which enables seamless interoperability between C++
+ and the Python programming language."""
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://boostorg.jfrog.io/artifactory/main/release/%(version)s/source/']
+sources = ['boost_1_82_0.tar.gz']
+checksums = ['66a469b6e608a51f8347236f4912e27dc5c60c60d7d53ae9bfe4683316c6f04c']
+
+dependencies = [
+ ('Boost', version),
+ ('Python', '3.11.3'),
+]
+
+only_python_bindings = True
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/b/Boost/Boost-1.55.0-GCC-11.2.0.eb b/easybuild/easyconfigs/b/Boost/Boost-1.55.0-GCC-11.2.0.eb
new file mode 100644
index 00000000000..1814c8648e9
--- /dev/null
+++ b/easybuild/easyconfigs/b/Boost/Boost-1.55.0-GCC-11.2.0.eb
@@ -0,0 +1,21 @@
+name = 'Boost'
+version = '1.55.0'
+
+homepage = 'http://www.boost.org/'
+description = """Boost provides free peer-reviewed portable C++ source libraries."""
+
+toolchain = {'name': 'GCC', 'version': '11.2.0'}
+toolchainopts = {'pic': True}
+
+source_urls = [SOURCEFORGE_SOURCE]
+sources = ['%%(namelower)s_%s.tar.gz' % '_'.join(version.split('.'))]
+checksums = ['19c4305cd6669f2216260258802a7abc73c1624758294b2cad209d45cc13a767']
+
+dependencies = [
+ ('bzip2', '1.0.8'),
+ ('zlib', '1.2.11'),
+]
+
+configopts = '--without-libraries=python'
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/b/Boost/Boost-1.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/Boost/Boost-1.85.0-GCC-13.3.0.eb b/easybuild/easyconfigs/b/Boost/Boost-1.85.0-GCC-13.3.0.eb
new file mode 100644
index 00000000000..10518dc36a3
--- /dev/null
+++ b/easybuild/easyconfigs/b/Boost/Boost-1.85.0-GCC-13.3.0.eb
@@ -0,0 +1,31 @@
+##
+# Authors:: Denis Kristak
+##
+name = 'Boost'
+version = '1.85.0'
+
+homepage = 'https://www.boost.org/'
+description = """Boost provides free peer-reviewed portable C++ source libraries."""
+
+toolchain = {'name': 'GCC', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://boostorg.jfrog.io/artifactory/main/release/%(version)s/source/']
+sources = ['%%(namelower)s_%s.tar.gz' % '_'.join(version.split('.'))]
+checksums = ['be0d91732d5b0cc6fbb275c7939974457e79b54d6f07ce2e3dfdd68bef883b0b']
+
+dependencies = [
+ ('bzip2', '1.0.8'),
+ ('zlib', '1.3.1'),
+ ('XZ', '5.4.5'),
+ ('zstd', '1.5.6'),
+ ('ICU', '75.1'),
+]
+
+configopts = '--without-libraries=python,mpi'
+
+# disable MPI, build Boost libraries with tagged layout
+boost_mpi = False
+tagged_layout = True
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/b/Bowtie/Bowtie-1.3.1-GCC-12.2.0.eb b/easybuild/easyconfigs/b/Bowtie/Bowtie-1.3.1-GCC-12.2.0.eb
new file mode 100644
index 00000000000..202b84a2953
--- /dev/null
+++ b/easybuild/easyconfigs/b/Bowtie/Bowtie-1.3.1-GCC-12.2.0.eb
@@ -0,0 +1,30 @@
+##
+# This is a contribution from DeepThought HPC Service, Flinders University, Adelaide, Australia
+# Homepage: https://staff.flinders.edu.au/research/deep-thought
+#
+# Authors:: Robert Qiao
+# License:: Artistic v2.0
+#
+# Notes::
+##
+
+name = 'Bowtie'
+version = '1.3.1'
+
+homepage = 'http://bowtie-bio.sourceforge.net/index.shtml'
+description = """Bowtie is an ultrafast, memory-efficient short read aligner.
+ It aligns short DNA sequences (reads) to the human genome."""
+
+toolchain = {'name': 'GCC', 'version': '12.2.0'}
+toolchainopts = {'pic': True, 'cstd': 'gnu++98'}
+
+source_urls = ['https://sourceforge.net/projects/bowtie-bio/files/bowtie/%(version)s/']
+sources = ['%(namelower)s-%(version)s-src.zip']
+checksums = ['e23517aa53846ef828172be911750cd05748522117efcbbe5a36f3241fb40761']
+
+dependencies = [
+ ('tbb', '2021.9.0'),
+ ('zlib', '1.2.12'),
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/b/Bowtie/Bowtie-1.3.1-GCC-12.3.0.eb b/easybuild/easyconfigs/b/Bowtie/Bowtie-1.3.1-GCC-12.3.0.eb
new file mode 100644
index 00000000000..9617ba2e343
--- /dev/null
+++ b/easybuild/easyconfigs/b/Bowtie/Bowtie-1.3.1-GCC-12.3.0.eb
@@ -0,0 +1,30 @@
+##
+# This is a contribution from DeepThought HPC Service, Flinders University, Adelaide, Australia
+# Homepage: https://staff.flinders.edu.au/research/deep-thought
+#
+# Authors:: Robert Qiao
+# License:: Artistic v2.0
+#
+# Notes::
+##
+
+name = 'Bowtie'
+version = '1.3.1'
+
+homepage = 'http://bowtie-bio.sourceforge.net/index.shtml'
+description = """Bowtie is an ultrafast, memory-efficient short read aligner.
+ It aligns short DNA sequences (reads) to the human genome."""
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+toolchainopts = {'pic': True, 'cstd': 'gnu++98'}
+
+source_urls = ['https://sourceforge.net/projects/bowtie-bio/files/bowtie/%(version)s/']
+sources = ['%(namelower)s-%(version)s-src.zip']
+checksums = ['e23517aa53846ef828172be911750cd05748522117efcbbe5a36f3241fb40761']
+
+dependencies = [
+ ('tbb', '2021.11.0'),
+ ('zlib', '1.2.13'),
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/b/Braindecode/Braindecode-0.8.1-foss-2023a-PyTorch-2.1.2-CUDA-12.1.1.eb b/easybuild/easyconfigs/b/Braindecode/Braindecode-0.8.1-foss-2023a-PyTorch-2.1.2-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..80012266f49
--- /dev/null
+++ b/easybuild/easyconfigs/b/Braindecode/Braindecode-0.8.1-foss-2023a-PyTorch-2.1.2-CUDA-12.1.1.eb
@@ -0,0 +1,47 @@
+easyblock = 'PythonBundle'
+
+name = 'Braindecode'
+version = '0.8.1'
+local_torch_version = '2.1.2'
+versionsuffix = '-PyTorch-' + local_torch_version + '-CUDA-%(cudaver)s'
+
+homepage = 'https://braindecode.org/'
+description = """Braindecode is an open-source Python toolbox for decoding raw
+electrophysiological brain data with deep learning models. It includes dataset
+fetchers, data preprocessing and visualization tools, as well as
+implementations of several deep learning architectures and data augmentations
+for analysis of EEG, ECoG and MEG."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('CUDA', '12.1.1', '', SYSTEM),
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('einops', '0.7.0'),
+ ('h5py', '3.9.0'),
+ ('matplotlib', '3.7.2'),
+ ('MNE-Python', '1.6.1'),
+ ('MOABB', '1.0.0'),
+ ('skorch', '0.15.0', versionsuffix),
+]
+
+use_pip = True
+
+exts_list = [
+ ('docstring-inheritance', '2.1.2', {
+ 'modulename': 'docstring_inheritance',
+ 'checksums': ['ac9af95a7b06a305d43720274d0e62523d23f835bf94ce2bb814687e6fe3957b'],
+ }),
+ ('torchinfo', '1.8.0', {
+ 'checksums': ['72e94b0e9a3e64dc583a8e5b7940b8938a1ac0f033f795457f27e6f4e7afa2e9'],
+ }),
+ ('braindecode', version, {
+ 'use_pip_extras': 'moabb',
+ 'checksums': ['e80515c3d20a80f16800770936d1eb0012de15830a8175dce376256bdaf928e7'],
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'ai'
diff --git a/easybuild/easyconfigs/b/Brotli-python/Brotli-python-1.0.9-GCCcore-12.3.0.eb b/easybuild/easyconfigs/b/Brotli-python/Brotli-python-1.0.9-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..48f717c030a
--- /dev/null
+++ b/easybuild/easyconfigs/b/Brotli-python/Brotli-python-1.0.9-GCCcore-12.3.0.eb
@@ -0,0 +1,34 @@
+easyblock = 'PythonPackage'
+
+name = 'Brotli-python'
+version = '1.0.9'
+
+homepage = 'https://github.com/google/brotli'
+description = """Brotli is a generic-purpose lossless compression algorithm that compresses data using a combination
+ of a modern variant of the LZ77 algorithm, Huffman coding and 2nd order context modeling, with a compression ratio
+ comparable to the best currently available general-purpose compression methods. It is similar in speed with deflate
+ but offers more dense compression.
+The specification of the Brotli Compressed Data Format is defined in RFC 7932."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = ['https://pypi.python.org/packages/source/B/Brotli']
+sources = ['Brotli-%(version)s.zip']
+checksums = ['4d1b810aa0ed773f81dceda2cc7b403d01057458730e309856356d4ef4188438']
+
+builddependencies = [
+ ('binutils', '2.40'),
+]
+
+dependencies = [
+ ('Brotli', '1.0.9'),
+ ('Python', '3.11.3'),
+]
+
+download_dep_fail = True
+use_pip = True
+sanity_pip_check = True
+
+options = {'modulename': 'brotli'}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/b/Brotli/Brotli-1.1.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/b/Brotli/Brotli-1.1.0-GCCcore-13.2.0.eb
index eeacd739652..2e194e0d508 100644
--- a/easybuild/easyconfigs/b/Brotli/Brotli-1.1.0-GCCcore-13.2.0.eb
+++ b/easybuild/easyconfigs/b/Brotli/Brotli-1.1.0-GCCcore-13.2.0.eb
@@ -21,8 +21,11 @@ builddependencies = [
('CMake', '3.27.6'),
]
+configopts = ['-DBUILD_SHARED_LIBS=ON', '-DBUILD_SHARED_LIBS=OFF']
+
sanity_check_paths = {
- 'files': ['bin/brotli', 'lib/libbrotlidec.%s' % SHLIB_EXT, 'lib/libbrotlienc.%s' % SHLIB_EXT],
+ 'files': ['bin/brotli', 'lib/libbrotlidec.%s' % SHLIB_EXT, 'lib/libbrotlienc.%s' % SHLIB_EXT,
+ 'lib/libbrotlidec.a', 'lib/libbrotlienc.a'],
'dirs': [],
}
diff --git a/easybuild/easyconfigs/b/Brotli/Brotli-1.1.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/b/Brotli/Brotli-1.1.0-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..fe7258a493f
--- /dev/null
+++ b/easybuild/easyconfigs/b/Brotli/Brotli-1.1.0-GCCcore-13.3.0.eb
@@ -0,0 +1,34 @@
+easyblock = 'CMakeMake'
+
+name = 'Brotli'
+version = '1.1.0'
+
+homepage = 'https://github.com/google/brotli'
+description = """Brotli is a generic-purpose lossless compression algorithm that compresses data using a combination
+ of a modern variant of the LZ77 algorithm, Huffman coding and 2nd order context modeling, with a compression ratio
+ comparable to the best currently available general-purpose compression methods. It is similar in speed with deflate
+ but offers more dense compression.
+The specification of the Brotli Compressed Data Format is defined in RFC 7932."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://github.com/google/brotli/archive']
+sources = ['v%(version)s.tar.gz']
+checksums = ['e720a6ca29428b803f4ad165371771f5398faba397edf6778837a18599ea13ff']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('CMake', '3.29.3'),
+]
+
+configopts = ['-DBUILD_SHARED_LIBS=ON', '-DBUILD_SHARED_LIBS=OFF']
+
+sanity_check_paths = {
+ 'files': ['bin/brotli', 'lib/libbrotlidec.%s' % SHLIB_EXT, 'lib/libbrotlienc.%s' % SHLIB_EXT,
+ 'lib/libbrotlidec.a', 'lib/libbrotlienc.a'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["brotli --help"]
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/b/Brunsli/Brunsli-0.1-GCCcore-10.2.0.eb b/easybuild/easyconfigs/b/Brunsli/Brunsli-0.1-GCCcore-10.2.0.eb
index 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
new file mode 100644
index 00000000000..6481ba231cd
--- /dev/null
+++ b/easybuild/easyconfigs/b/Brunsli/Brunsli-0.1-GCCcore-13.2.0.eb
@@ -0,0 +1,53 @@
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+# Author: Denis Kristak
+# update: Thomas Hoffmann (EMBL)
+easyblock = 'CMakeMake'
+
+name = 'Brunsli'
+version = '0.1'
+
+homepage = 'https://github.com/google/brunsli/'
+description = """Brunsli is a lossless JPEG repacking library."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+source_urls = ['https://github.com/google/brunsli/archive/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['62762dc740f9fcc9706449c078f12c2a366416486d2882be50a9f201f99ac0bc']
+
+builddependencies = [
+ ('CMake', '3.27.6'),
+ ('binutils', '2.40'),
+]
+
+dependencies = [
+ ('Brotli', '1.1.0'),
+]
+
+# skip use of third_party directory, since we provide Brotli via a proper dependency
+preconfigopts = "sed -i 's/add_subdirectory(third_party)//g' ../brunsli-%(version)s/CMakeLists.txt && "
+preconfigopts += "sed -i 's/\\(brotli...\\)-static/\\1/g' ../brunsli-%(version)s/brunsli.cmake && "
+
+configopts = '-DCMAKE_CXX_FLAGS="$CXXFLAGS -lbrotlienc -lbrotlidec -lbrotlicommon" '
+
+# make sure that libraries end up in /lib (not lib64)
+configopts += "-DCMAKE_INSTALL_LIBDIR=lib "
+
+buildopts = "BROTLI_DIR=$EBROOTBROTLI BROTLI_INCLUDE=$EBROOTBROTLI/include"
+
+# also install dbrunsli binary and missing libraries
+postinstallcmds = [
+ "mkdir %(installdir)s/bin",
+ "cp dbrunsli %(installdir)s/bin/",
+ "cp libbrunsli*.a %(installdir)s/lib/",
+ "cp libbrunsli*.%s %%(installdir)s/lib/" % SHLIB_EXT,
+]
+
+sanity_check_paths = {
+ 'files': ['bin/dbrunsli'],
+ 'dirs': ['include/brunsli', 'lib'],
+}
+
+sanity_check_commands = ['dbrunsli 2>&1 | grep Usage']
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/b/Brunsli/Brunsli-0.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/b/Brunsli/Brunsli-0.1-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..3afc7fffd75
--- /dev/null
+++ b/easybuild/easyconfigs/b/Brunsli/Brunsli-0.1-GCCcore-13.3.0.eb
@@ -0,0 +1,53 @@
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+# Author: Denis Kristak
+# update: Thomas Hoffmann (EMBL)
+easyblock = 'CMakeMake'
+
+name = 'Brunsli'
+version = '0.1'
+
+homepage = 'https://github.com/google/brunsli/'
+description = """Brunsli is a lossless JPEG repacking library."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://github.com/google/brunsli/archive/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['62762dc740f9fcc9706449c078f12c2a366416486d2882be50a9f201f99ac0bc']
+
+builddependencies = [
+ ('CMake', '3.29.3'),
+ ('binutils', '2.42'),
+]
+
+dependencies = [
+ ('Brotli', '1.1.0'),
+]
+
+# skip use of third_party directory, since we provide Brotli via a proper dependency
+preconfigopts = "sed -i 's/add_subdirectory(third_party)//g' ../brunsli-%(version)s/CMakeLists.txt && "
+preconfigopts += "sed -i 's/\\(brotli...\\)-static/\\1/g' ../brunsli-%(version)s/brunsli.cmake && "
+
+configopts = '-DCMAKE_CXX_FLAGS="$CXXFLAGS -lbrotlienc -lbrotlidec -lbrotlicommon" '
+
+# make sure that libraries end up in /lib (not lib64)
+configopts += "-DCMAKE_INSTALL_LIBDIR=lib "
+
+buildopts = "BROTLI_DIR=$EBROOTBROTLI BROTLI_INCLUDE=$EBROOTBROTLI/include"
+
+# also install dbrunsli binary and missing libraries
+postinstallcmds = [
+ "mkdir %(installdir)s/bin",
+ "cp dbrunsli %(installdir)s/bin/",
+ "cp libbrunsli*.a %(installdir)s/lib/",
+ "cp libbrunsli*.%s %%(installdir)s/lib/" % SHLIB_EXT,
+]
+
+sanity_check_paths = {
+ 'files': ['bin/dbrunsli'],
+ 'dirs': ['include/brunsli', 'lib'],
+}
+
+sanity_check_commands = ['dbrunsli 2>&1 | grep Usage']
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/b/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/bcl-convert/bcl-convert-4.2.7-2el7.x86_64.eb b/easybuild/easyconfigs/b/bcl-convert/bcl-convert-4.2.7-2el7.x86_64.eb
new file mode 100644
index 00000000000..dfed34de942
--- /dev/null
+++ b/easybuild/easyconfigs/b/bcl-convert/bcl-convert-4.2.7-2el7.x86_64.eb
@@ -0,0 +1,26 @@
+easyblock = 'Rpm'
+
+name = 'bcl-convert'
+version = '4.2.7-2'
+versionsuffix = 'el7.x86_64'
+
+homepage = 'https://support.illumina.com/sequencing/sequencing_software/bcl-convert.html'
+description = """The Illumina BCL Convert v4.0 is a standalone local software app that converts the
+ Binary Base Call (BCL) files produced by Illumina sequencing systems to FASTQ files."""
+
+toolchain = SYSTEM
+
+builddependencies = [('rpmrebuild', '2.18')]
+
+source_urls = ['https://webdata.illumina.com/downloads/software/bcl-convert/']
+sources = ['bcl-convert-%(version)s.%(versionsuffix)s.rpm']
+checksums = ['ea508d763dc27d30d1a34f6a38d8da31ea67797d7b4971e8c10677bc48539565']
+
+sanity_check_paths = {
+ 'files': ['usr/bin/bcl-convert'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["bcl-convert --help"]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/b/bcrypt/bcrypt-4.1.3-GCCcore-13.2.0.eb b/easybuild/easyconfigs/b/bcrypt/bcrypt-4.1.3-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..cbada951cfd
--- /dev/null
+++ b/easybuild/easyconfigs/b/bcrypt/bcrypt-4.1.3-GCCcore-13.2.0.eb
@@ -0,0 +1,147 @@
+easyblock = 'CargoPythonPackage'
+
+name = 'bcrypt'
+version = '4.1.3'
+
+homepage = 'https://github.com/pyca/bcrypt/'
+description = """Acceptable password hashing for your software and your servers (but you should
+really use argon2id or scrypt)
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+toolchainopts = {'pic': True}
+
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('Rust', '1.73.0'),
+ ('setuptools-rust', '1.8.0'),
+]
+
+dependencies = [
+ ('Python', '3.11.5'),
+]
+
+crates = [
+ ('autocfg', '1.3.0'),
+ ('base64', '0.22.1'),
+ ('bcrypt', '0.15.1'),
+ ('bcrypt-pbkdf', '0.10.0'),
+ ('bitflags', '2.5.0'),
+ ('block-buffer', '0.10.4'),
+ ('blowfish', '0.9.1'),
+ ('byteorder', '1.5.0'),
+ ('cfg-if', '1.0.0'),
+ ('cipher', '0.4.4'),
+ ('cpufeatures', '0.2.12'),
+ ('crypto-common', '0.1.6'),
+ ('digest', '0.10.7'),
+ ('generic-array', '0.14.7'),
+ ('getrandom', '0.2.14'),
+ ('heck', '0.4.1'),
+ ('indoc', '2.0.5'),
+ ('inout', '0.1.3'),
+ ('libc', '0.2.154'),
+ ('lock_api', '0.4.12'),
+ ('memoffset', '0.9.1'),
+ ('once_cell', '1.19.0'),
+ ('parking_lot', '0.12.2'),
+ ('parking_lot_core', '0.9.10'),
+ ('pbkdf2', '0.12.2'),
+ ('portable-atomic', '1.6.0'),
+ ('proc-macro2', '1.0.81'),
+ ('pyo3', '0.21.2'),
+ ('pyo3-build-config', '0.21.2'),
+ ('pyo3-ffi', '0.21.2'),
+ ('pyo3-macros', '0.21.2'),
+ ('pyo3-macros-backend', '0.21.2'),
+ ('quote', '1.0.36'),
+ ('redox_syscall', '0.5.1'),
+ ('scopeguard', '1.2.0'),
+ ('sha2', '0.10.8'),
+ ('smallvec', '1.13.2'),
+ ('subtle', '2.5.0'),
+ ('syn', '2.0.60'),
+ ('target-lexicon', '0.12.14'),
+ ('typenum', '1.17.0'),
+ ('unicode-ident', '1.0.12'),
+ ('unindent', '0.2.3'),
+ ('version_check', '0.9.4'),
+ ('wasi', '0.11.0+wasi-snapshot-preview1'),
+ ('windows-targets', '0.52.5'),
+ ('windows_aarch64_gnullvm', '0.52.5'),
+ ('windows_aarch64_msvc', '0.52.5'),
+ ('windows_i686_gnu', '0.52.5'),
+ ('windows_i686_gnullvm', '0.52.5'),
+ ('windows_i686_msvc', '0.52.5'),
+ ('windows_x86_64_gnu', '0.52.5'),
+ ('windows_x86_64_gnullvm', '0.52.5'),
+ ('windows_x86_64_msvc', '0.52.5'),
+ ('zeroize', '1.7.0'),
+]
+
+sources = [SOURCE_TAR_GZ]
+checksums = [
+ {'bcrypt-4.1.3.tar.gz': '2ee15dd749f5952fe3f0430d0ff6b74082e159c50332a1413d51b5689cf06623'},
+ {'autocfg-1.3.0.tar.gz': '0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0'},
+ {'base64-0.22.1.tar.gz': '72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6'},
+ {'bcrypt-0.15.1.tar.gz': 'e65938ed058ef47d92cf8b346cc76ef48984572ade631927e9937b5ffc7662c7'},
+ {'bcrypt-pbkdf-0.10.0.tar.gz': '6aeac2e1fe888769f34f05ac343bbef98b14d1ffb292ab69d4608b3abc86f2a2'},
+ {'bitflags-2.5.0.tar.gz': 'cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1'},
+ {'block-buffer-0.10.4.tar.gz': '3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71'},
+ {'blowfish-0.9.1.tar.gz': 'e412e2cd0f2b2d93e02543ceae7917b3c70331573df19ee046bcbc35e45e87d7'},
+ {'byteorder-1.5.0.tar.gz': '1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b'},
+ {'cfg-if-1.0.0.tar.gz': 'baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd'},
+ {'cipher-0.4.4.tar.gz': '773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad'},
+ {'cpufeatures-0.2.12.tar.gz': '53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504'},
+ {'crypto-common-0.1.6.tar.gz': '1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3'},
+ {'digest-0.10.7.tar.gz': '9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292'},
+ {'generic-array-0.14.7.tar.gz': '85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a'},
+ {'getrandom-0.2.14.tar.gz': '94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c'},
+ {'heck-0.4.1.tar.gz': '95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8'},
+ {'indoc-2.0.5.tar.gz': 'b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5'},
+ {'inout-0.1.3.tar.gz': 'a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5'},
+ {'libc-0.2.154.tar.gz': 'ae743338b92ff9146ce83992f766a31066a91a8c84a45e0e9f21e7cf6de6d346'},
+ {'lock_api-0.4.12.tar.gz': '07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17'},
+ {'memoffset-0.9.1.tar.gz': '488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a'},
+ {'once_cell-1.19.0.tar.gz': '3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92'},
+ {'parking_lot-0.12.2.tar.gz': '7e4af0ca4f6caed20e900d564c242b8e5d4903fdacf31d3daf527b66fe6f42fb'},
+ {'parking_lot_core-0.9.10.tar.gz': '1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8'},
+ {'pbkdf2-0.12.2.tar.gz': 'f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2'},
+ {'portable-atomic-1.6.0.tar.gz': '7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0'},
+ {'proc-macro2-1.0.81.tar.gz': '3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba'},
+ {'pyo3-0.21.2.tar.gz': 'a5e00b96a521718e08e03b1a622f01c8a8deb50719335de3f60b3b3950f069d8'},
+ {'pyo3-build-config-0.21.2.tar.gz': '7883df5835fafdad87c0d888b266c8ec0f4c9ca48a5bed6bbb592e8dedee1b50'},
+ {'pyo3-ffi-0.21.2.tar.gz': '01be5843dc60b916ab4dad1dca6d20b9b4e6ddc8e15f50c47fe6d85f1fb97403'},
+ {'pyo3-macros-0.21.2.tar.gz': '77b34069fc0682e11b31dbd10321cbf94808394c56fd996796ce45217dfac53c'},
+ {'pyo3-macros-backend-0.21.2.tar.gz': '08260721f32db5e1a5beae69a55553f56b99bd0e1c3e6e0a5e8851a9d0f5a85c'},
+ {'quote-1.0.36.tar.gz': '0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7'},
+ {'redox_syscall-0.5.1.tar.gz': '469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e'},
+ {'scopeguard-1.2.0.tar.gz': '94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49'},
+ {'sha2-0.10.8.tar.gz': '793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8'},
+ {'smallvec-1.13.2.tar.gz': '3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67'},
+ {'subtle-2.5.0.tar.gz': '81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc'},
+ {'syn-2.0.60.tar.gz': '909518bc7b1c9b779f1bbf07f2929d35af9f0f37e47c6e9ef7f9dddc1e1821f3'},
+ {'target-lexicon-0.12.14.tar.gz': 'e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f'},
+ {'typenum-1.17.0.tar.gz': '42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825'},
+ {'unicode-ident-1.0.12.tar.gz': '3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b'},
+ {'unindent-0.2.3.tar.gz': 'c7de7d73e1754487cb58364ee906a499937a0dfabd86bcb980fa99ec8c8fa2ce'},
+ {'version_check-0.9.4.tar.gz': '49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f'},
+ {'wasi-0.11.0+wasi-snapshot-preview1.tar.gz': '9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423'},
+ {'windows-targets-0.52.5.tar.gz': '6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb'},
+ {'windows_aarch64_gnullvm-0.52.5.tar.gz': '7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263'},
+ {'windows_aarch64_msvc-0.52.5.tar.gz': '9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6'},
+ {'windows_i686_gnu-0.52.5.tar.gz': '88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670'},
+ {'windows_i686_gnullvm-0.52.5.tar.gz': '87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9'},
+ {'windows_i686_msvc-0.52.5.tar.gz': 'db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf'},
+ {'windows_x86_64_gnu-0.52.5.tar.gz': '4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9'},
+ {'windows_x86_64_gnullvm-0.52.5.tar.gz': '852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596'},
+ {'windows_x86_64_msvc-0.52.5.tar.gz': 'bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0'},
+ {'zeroize-1.7.0.tar.gz': '525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d'},
+]
+
+download_dep_fail = True
+use_pip = True
+sanity_pip_check = True
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/b/beagle-lib/beagle-lib-4.0.1-GCC-12.3.0-CUDA-12.1.1.eb b/easybuild/easyconfigs/b/beagle-lib/beagle-lib-4.0.1-GCC-12.3.0-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..2c2bbf6705b
--- /dev/null
+++ b/easybuild/easyconfigs/b/beagle-lib/beagle-lib-4.0.1-GCC-12.3.0-CUDA-12.1.1.eb
@@ -0,0 +1,35 @@
+easyblock = 'CMakeMake'
+
+name = 'beagle-lib'
+version = '4.0.1'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://github.com/beagle-dev/beagle-lib'
+description = """beagle-lib is a high-performance library that can perform the core calculations at the heart of most
+ Bayesian and Maximum Likelihood phylogenetics packages."""
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+
+source_urls = ['https://github.com/beagle-dev/beagle-lib/archive/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['9d258cd9bedd86d7c28b91587acd1132f4e01d4f095c657ad4dc93bd83d4f120']
+
+dependencies = [
+ ('Java', '11', '', SYSTEM),
+ ('CUDA', '12.1.1', '', SYSTEM),
+]
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+ ('pkgconf', '1.9.5'),
+]
+
+configopts = '-DBUILD_CUDA=ON '
+
+sanity_check_paths = {
+ 'files': ["include/libhmsbeagle-1/libhmsbeagle/%s" % x for x in ["beagle.h", "platform.h"]] +
+ ["lib/libhmsbeagle%s.%s" % (x, SHLIB_EXT) for x in ["-cpu", "-cpu-sse", "-jni", ""]],
+ 'dirs': []
+}
+
+moduleclass = 'numlib'
diff --git a/easybuild/easyconfigs/b/binutils/binutils-2.42-GCCcore-13.3.0.eb b/easybuild/easyconfigs/b/binutils/binutils-2.42-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..7a10c5ed2bc
--- /dev/null
+++ b/easybuild/easyconfigs/b/binutils/binutils-2.42-GCCcore-13.3.0.eb
@@ -0,0 +1,31 @@
+name = 'binutils'
+version = '2.42'
+
+homepage = 'https://directory.fsf.org/project/binutils/'
+description = "binutils: GNU binary utilities"
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = [GNU_SOURCE]
+sources = [SOURCE_TAR_GZ]
+checksums = ['5d2a6c1d49686a557869caae08b6c2e83699775efd27505e01b2f4db1a024ffc']
+
+builddependencies = [
+ ('flex', '2.6.4'),
+ ('Bison', '3.8.2'),
+ # use same binutils version that was used when building GCC toolchain, to 'bootstrap' this binutils
+ ('binutils', version, '', SYSTEM)
+]
+
+dependencies = [
+ # zlib is a runtime dep to avoid that it gets embedded in libbfd.so,
+ # see https://github.com/easybuilders/easybuild-easyblocks/issues/1350
+ ('zlib', '1.3.1'),
+]
+
+# avoid build failure when makeinfo command is not available
+# see https://sourceware.org/bugzilla/show_bug.cgi?id=15345
+buildopts = 'MAKEINFO=true'
+installopts = buildopts
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/b/binutils/binutils-2.42-GCCcore-14.2.0.eb b/easybuild/easyconfigs/b/binutils/binutils-2.42-GCCcore-14.2.0.eb
new file mode 100644
index 00000000000..94b762d7803
--- /dev/null
+++ b/easybuild/easyconfigs/b/binutils/binutils-2.42-GCCcore-14.2.0.eb
@@ -0,0 +1,31 @@
+name = 'binutils'
+version = '2.42'
+
+homepage = 'https://directory.fsf.org/project/binutils/'
+description = "binutils: GNU binary utilities"
+
+toolchain = {'name': 'GCCcore', 'version': '14.2.0'}
+
+source_urls = [GNU_SOURCE]
+sources = [SOURCE_TAR_GZ]
+checksums = ['5d2a6c1d49686a557869caae08b6c2e83699775efd27505e01b2f4db1a024ffc']
+
+builddependencies = [
+ ('flex', '2.6.4'),
+ ('Bison', '3.8.2'),
+ # use same binutils version that was used when building GCC toolchain, to 'bootstrap' this binutils
+ ('binutils', version, '', SYSTEM)
+]
+
+dependencies = [
+ # zlib is a runtime dep to avoid that it gets embedded in libbfd.so,
+ # see https://github.com/easybuilders/easybuild-easyblocks/issues/1350
+ ('zlib', '1.3.1'),
+]
+
+# avoid build failure when makeinfo command is not available
+# see https://sourceware.org/bugzilla/show_bug.cgi?id=15345
+buildopts = 'MAKEINFO=true'
+installopts = buildopts
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/b/biom-format/biom-format-2.1.16-foss-2023b.eb b/easybuild/easyconfigs/b/biom-format/biom-format-2.1.16-foss-2023b.eb
new file mode 100644
index 00000000000..91d9cecbd99
--- /dev/null
+++ b/easybuild/easyconfigs/b/biom-format/biom-format-2.1.16-foss-2023b.eb
@@ -0,0 +1,49 @@
+##
+# This is a contribution from DeepThought HPC Service, Flinders University, Adelaide, Australia
+# Homepage: https://staff.flinders.edu.au/research/deep-thought
+#
+# Authors:: Robert Qiao
+# License:: Revised BSD
+#
+# Notes:: updated by Kenneth Hoste (HPC-UGent) for foss/2021b
+##
+# Updated: Petr Král (INUITS)
+# Updated: Lara Peeters (Ghent University)
+
+easyblock = 'PythonPackage'
+
+name = 'biom-format'
+version = '2.1.16'
+
+homepage = 'https://biom-format.org'
+description = """
+The BIOM file format (canonically pronounced biome) is designed to be
+ a general-use format for representing biological sample by observation
+ contingency tables. BIOM is a recognized standard for the Earth Microbiome
+ Project and is a Genomics Standards Consortium supported project.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023b'}
+toolchainopts = {'usempi': True}
+
+sources = [SOURCE_TAR_GZ]
+checksums = ['47f88d57a94ecaa4d06f3578ca394e78db6d12e46ab0886634743181e67dcfc9']
+
+dependencies = [
+ ('Python', '3.11.5'),
+ ('SciPy-bundle', '2023.11'),
+ ('h5py', '3.11.0'),
+]
+
+use_pip = True
+sanity_pip_check = True
+download_dep_fail = True
+
+sanity_check_paths = {
+ 'files': ['bin/biom'],
+ 'dirs': ['lib'],
+}
+
+options = {'modulename': 'biom'}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/b/bitsandbytes/bitsandbytes-0.43.3-foss-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/b/bitsandbytes/bitsandbytes-0.43.3-foss-2023a-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..8127a86c558
--- /dev/null
+++ b/easybuild/easyconfigs/b/bitsandbytes/bitsandbytes-0.43.3-foss-2023a-CUDA-12.1.1.eb
@@ -0,0 +1,49 @@
+easyblock = 'CMakeMake'
+
+name = 'bitsandbytes'
+version = '0.43.3'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://huggingface.co/docs/bitsandbytes/main/en/index'
+description = "bitsandbytes enables accessible large language models via k-bit quantization for PyTorch."
+github_account = 'bitsandbytes-foundation'
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+source_urls = [GITHUB_LOWER_SOURCE]
+sources = ['%(version)s.tar.gz']
+checksums = ['7a468bc977da19c176cc578954bfd7a3c64182f387a6849e9f0a38d5cba1b4df']
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+ ('pkgconf', '1.9.5'),
+]
+
+dependencies = [
+ ('CUDA', '12.1.1', '', SYSTEM),
+ ('Python', '3.11.3'),
+ ('PyTorch', '2.1.2', versionsuffix),
+ ('SciPy-bundle', '2023.07'),
+]
+
+configopts = '-DCOMPUTE_BACKEND=cuda'
+skipsteps = ['install']
+
+postinstallcmds = [
+ 'pip install --prefix=%(installdir)s --no-deps --ignore-installed --no-index --no-build-isolation %(start_dir)s',
+]
+
+sanity_check_paths = {
+ 'files': ['lib/python%%(pyshortver)s/site-packages/bitsandbytes/libbitsandbytes_cuda121.%s' % SHLIB_EXT],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = [
+ "python -c 'import bitsandbytes'",
+]
+
+modextrapaths = {
+ 'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages']
+}
+
+moduleclass = 'ai'
diff --git a/easybuild/easyconfigs/b/bitsandbytes/bitsandbytes-0.43.3-foss-2023a.eb b/easybuild/easyconfigs/b/bitsandbytes/bitsandbytes-0.43.3-foss-2023a.eb
new file mode 100644
index 00000000000..8b360bb263b
--- /dev/null
+++ b/easybuild/easyconfigs/b/bitsandbytes/bitsandbytes-0.43.3-foss-2023a.eb
@@ -0,0 +1,46 @@
+easyblock = 'CMakeMake'
+
+name = 'bitsandbytes'
+version = '0.43.3'
+
+homepage = 'https://huggingface.co/docs/bitsandbytes/main/en/index'
+description = "bitsandbytes enables accessible large language models via k-bit quantization for PyTorch."
+github_account = 'bitsandbytes-foundation'
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+source_urls = [GITHUB_LOWER_SOURCE]
+sources = ['%(version)s.tar.gz']
+checksums = ['7a468bc977da19c176cc578954bfd7a3c64182f387a6849e9f0a38d5cba1b4df']
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+ ('pkgconf', '1.9.5'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('PyTorch', '2.1.2'),
+ ('SciPy-bundle', '2023.07'),
+]
+
+skipsteps = ['install']
+
+postinstallcmds = [
+ 'pip install --prefix=%(installdir)s --no-deps --ignore-installed --no-index --no-build-isolation %(start_dir)s',
+]
+
+sanity_check_paths = {
+ 'files': ['lib/python%%(pyshortver)s/site-packages/bitsandbytes/libbitsandbytes_cpu.%s' % SHLIB_EXT],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = [
+ "python -c 'import bitsandbytes'",
+]
+
+modextrapaths = {
+ 'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages']
+}
+
+moduleclass = 'ai'
diff --git a/easybuild/easyconfigs/b/bitshuffle/bitshuffle-0.5.1-foss-2023a.eb b/easybuild/easyconfigs/b/bitshuffle/bitshuffle-0.5.1-foss-2023a.eb
new file mode 100644
index 00000000000..3faf7d3a1ee
--- /dev/null
+++ b/easybuild/easyconfigs/b/bitshuffle/bitshuffle-0.5.1-foss-2023a.eb
@@ -0,0 +1,32 @@
+easyblock = 'PythonBundle'
+
+name = 'bitshuffle'
+version = '0.5.1'
+
+homepage = 'https://github.com/kiyo-masui/bitshuffle'
+description = """
+Filter for improving compression of typed binary data.
+Bitshuffle is an algorithm that rearranges typed, binary data for improving compression, as
+well as a python/C package that implements this algorithm within the Numpy framework.
+The library can be used along side HDF5 to compress and decompress datasets and is integrated
+through the dynamically loaded filters framework. Bitshuffle is HDF5 filter number 32008.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('h5py', '3.9.0'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ (name, version, {
+ 'checksums': ['988f224739aa6858475a4c59172968c7b51cc657d2249580c8f96848708fbae3'],
+ }),
+]
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/b/bliss/bliss-0.77-GCC-13.2.0.eb b/easybuild/easyconfigs/b/bliss/bliss-0.77-GCC-13.2.0.eb
new file mode 100644
index 00000000000..ec9a99bc306
--- /dev/null
+++ b/easybuild/easyconfigs/b/bliss/bliss-0.77-GCC-13.2.0.eb
@@ -0,0 +1,41 @@
+easyblock = 'CMakeMake'
+
+name = 'bliss'
+version = '0.77'
+
+homepage = 'https://users.aalto.fi/~tjunttil/bliss/'
+description = """Bliss is an open-source tool for computing canonical labelings and automorphism groups of graphs."""
+
+toolchain = {'name': 'GCC', 'version': '13.2.0'}
+
+source_urls = ['https://users.aalto.fi/~tjunttil/bliss/downloads/']
+sources = [SOURCE_ZIP]
+patches = ['bliss-0.77_install_fix.patch']
+checksums = [
+ {'bliss-0.77.zip': 'acc8b98034f30fad24c897f365abd866c13d9f1bb207e398d0caf136875972a4'},
+ {'bliss-0.77_install_fix.patch': '1550b6c7f8208f56093c0b6bf0d2e3df42afab81cd69eb70303515c9923e9513'},
+]
+
+builddependencies = [
+ ('CMake', '3.27.6'),
+]
+
+dependencies = [
+ ('GMP', '6.3.0'),
+]
+
+configopts = "-DUSE_GMP=ON "
+
+sanity_check_paths = {
+ 'files': [
+ 'bin/bliss',
+ 'lib/libbliss.%s' % SHLIB_EXT,
+ ],
+ 'dirs': [
+ 'include/%(name)s',
+ ],
+}
+
+sanity_check_commands = ["bliss -help"]
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/b/bliss/bliss-0.77_install_fix.patch b/easybuild/easyconfigs/b/bliss/bliss-0.77_install_fix.patch
new file mode 100644
index 00000000000..faea2ad4daf
--- /dev/null
+++ b/easybuild/easyconfigs/b/bliss/bliss-0.77_install_fix.patch
@@ -0,0 +1,33 @@
+Adds install commands to CMakeLists.txt
+Source: https://gitlab.archlinux.org/archlinux/packaging/packages/bliss/-/blob/0.77-3/make-install.patch
+diff -u CMakeLists.txt.orig CMakeLists.txt
+--- CMakeLists.txt.orig 2021-02-18 11:59:34.000000000 +0100
++++ CMakeLists.txt 2024-08-15 15:04:21.293765655 +0200
+@@ -62,3 +62,27 @@
+ target_link_libraries(bliss-executable ${GMP_LIBRARIES})
+ endif(USE_GMP)
+ set_target_properties(bliss-executable PROPERTIES OUTPUT_NAME bliss)
++
++include(GNUInstallDirs)
++
++set(
++ BLISS_HEADERS
++ src/bliss_C.h
++ src/uintseqhash.hh
++ src/abstractgraph.hh
++ src/stats.hh
++ src/digraph.hh
++ src/defs.hh
++ src/heap.hh
++ src/graph.hh
++ src/partition.hh
++ src/kqueue.hh
++ src/utils.hh
++ src/orbit.hh
++ src/timer.hh
++ src/bignum.hh
++)
++
++install(TARGETS bliss-executable RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
++install(TARGETS bliss LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
++install(FILES ${BLISS_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/bliss)
diff --git a/easybuild/easyconfigs/b/bokeh/bokeh-3.4.1-gfbf-2023b.eb b/easybuild/easyconfigs/b/bokeh/bokeh-3.4.1-gfbf-2023b.eb
new file mode 100644
index 00000000000..58f15fcf3e9
--- /dev/null
+++ b/easybuild/easyconfigs/b/bokeh/bokeh-3.4.1-gfbf-2023b.eb
@@ -0,0 +1,50 @@
+easyblock = 'PythonBundle'
+
+name = 'bokeh'
+version = '3.4.1'
+
+homepage = 'https://github.com/bokeh/bokeh'
+description = "Statistical and novel interactive HTML plots for Python"
+
+toolchain = {'name': 'gfbf', 'version': '2023b'}
+
+builddependencies = [
+ ('meson-python', '0.15.0'),
+]
+
+dependencies = [
+ ('Python', '3.11.5'),
+ ('Python-bundle-PyPI', '2023.10'),
+ ('SciPy-bundle', '2023.11'),
+ ('matplotlib', '3.8.2'),
+ ('PyYAML', '6.0.1'),
+ ('Pillow', '10.2.0'),
+ ('tornado', '6.4'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('contourpy', '1.2.1', {
+ 'checksums': ['4d8908b3bee1c889e547867ca4cdc54e5ab6be6d3e078556814a22457f49423c'],
+ }),
+ ('xyzservices', '2024.4.0', {
+ 'checksums': ['6a04f11487a6fb77d92a98984cd107fbd9157fd5e65f929add9c3d6e604ee88c'],
+ }),
+ (name, version, {
+ # bokeh uses git tags to get version, so we'll instead inject the version into setup.py
+ 'preinstallopts': """sed -i 's/setup(/setup(version="%(version)s",/g' setup.py && """,
+ 'checksums': ['d824961e4265367b0750ce58b07e564ad0b83ca64b335521cd3421e9b9f10d89'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/bokeh'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = ["bokeh --help"]
+
+sanity_pip_check = True
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/b/bokeh/bokeh-3.6.0-gfbf-2024a.eb b/easybuild/easyconfigs/b/bokeh/bokeh-3.6.0-gfbf-2024a.eb
new file mode 100644
index 00000000000..fadc3d201b6
--- /dev/null
+++ b/easybuild/easyconfigs/b/bokeh/bokeh-3.6.0-gfbf-2024a.eb
@@ -0,0 +1,49 @@
+easyblock = 'PythonBundle'
+
+name = 'bokeh'
+version = '3.6.0'
+
+homepage = 'https://github.com/bokeh/bokeh'
+description = "Statistical and novel interactive HTML plots for Python"
+
+toolchain = {'name': 'gfbf', 'version': '2024a'}
+
+builddependencies = [
+ ('meson-python', '0.16.0'),
+]
+
+dependencies = [
+ ('Python', '3.12.3'),
+ ('Python-bundle-PyPI', '2024.06'),
+ ('SciPy-bundle', '2024.05'),
+ ('matplotlib', '3.9.2'),
+ ('PyYAML', '6.0.2'),
+ ('Pillow', '10.4.0'),
+ ('tornado', '6.4.1'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('contourpy', '1.2.1', {
+ 'checksums': ['4d8908b3bee1c889e547867ca4cdc54e5ab6be6d3e078556814a22457f49423c'],
+ }),
+ ('xyzservices', '2024.4.0', {
+ 'checksums': ['6a04f11487a6fb77d92a98984cd107fbd9157fd5e65f929add9c3d6e604ee88c'],
+ }),
+ (name, version, {
+ 'preinstallopts': """sed -i 's/setup(/setup(version="%(version)s",/g' setup.py && """,
+ 'checksums': ['0032dc1e76ad097b07626e51584685ff48c65481fbaaad105663b1046165867a'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/bokeh'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = ["bokeh --help"]
+
+sanity_pip_check = True
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/b/boto3/boto3-1.35.36-GCCcore-13.3.0.eb b/easybuild/easyconfigs/b/boto3/boto3-1.35.36-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..4f327430573
--- /dev/null
+++ b/easybuild/easyconfigs/b/boto3/boto3-1.35.36-GCCcore-13.3.0.eb
@@ -0,0 +1,40 @@
+easyblock = 'PythonBundle'
+
+name = 'boto3'
+version = '1.35.36'
+
+homepage = 'https://github.com/boto/boto3'
+description = """Boto3 is the Amazon Web Services (AWS) Software Development Kit
+(SDK) for Python, which allows Python developers to write software that makes
+use of services like Amazon S3 and Amazon EC2."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+
+dependencies = [
+ ('Python', '3.12.3'),
+ ('Python-bundle-PyPI', '2024.06'),
+]
+
+exts_list = [
+ ('botocore', version, {
+ 'checksums': ['354ec1b766f0029b5d6ff0c45d1a0f9e5007b7d2f3ec89bcdd755b208c5bc797'],
+ }),
+ ('jmespath', '1.0.1', {
+ 'checksums': ['90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe'],
+ }),
+ ('s3transfer', '0.10.3', {
+ 'checksums': ['4f50ed74ab84d474ce614475e0b8d5047ff080810aac5d01ea25231cfc944b0c'],
+ }),
+ (name, version, {
+ 'checksums': ['586524b623e4fbbebe28b604c6205eb12f263cc4746bccb011562d07e217a4cb'],
+ }),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/b/bwa-mem2/bwa-mem2-2.2.1-intel-compilers-2023.1.0.eb b/easybuild/easyconfigs/b/bwa-mem2/bwa-mem2-2.2.1-intel-compilers-2023.1.0.eb
index 74c175b5994..e4edd8be316 100644
--- a/easybuild/easyconfigs/b/bwa-mem2/bwa-mem2-2.2.1-intel-compilers-2023.1.0.eb
+++ b/easybuild/easyconfigs/b/bwa-mem2/bwa-mem2-2.2.1-intel-compilers-2023.1.0.eb
@@ -15,10 +15,14 @@ toolchainopts = {'pic': True, 'oneapi': False}
github_account = 'bwa-mem2'
source_urls = [GITHUB_SOURCE]
sources = ['v%(version)s.tar.gz']
-patches = ['%(name)s-%(version)s_use_external_deps.patch']
+patches = [
+ 'bwa-mem2-%(version)s_use_external_deps.patch',
+ 'bwa-mem2-%(version)s_common_avx512_flags.patch',
+]
checksums = [
{'v2.2.1.tar.gz': '36ddd28ce7020d5a036ddeffa00e692296fd40c80380671bd4ea5757bd28841b'},
{'bwa-mem2-2.2.1_use_external_deps.patch': '0a9d7f7b3289029e19cf7dbab1778448097b9e0f92fa41a74a8cf81c9e114967'},
+ {'bwa-mem2-2.2.1_common_avx512_flags.patch': '1a784bca167c6e3576a83c11715cbf6f8dced09d46021c0d283f7a1b185d6569'},
]
dependencies = [('safestringlib', '20240228')]
diff --git a/easybuild/easyconfigs/b/bwa-mem2/bwa-mem2-2.2.1_common_avx512_flags.patch b/easybuild/easyconfigs/b/bwa-mem2/bwa-mem2-2.2.1_common_avx512_flags.patch
new file mode 100644
index 00000000000..b7e55ecf1f1
--- /dev/null
+++ b/easybuild/easyconfigs/b/bwa-mem2/bwa-mem2-2.2.1_common_avx512_flags.patch
@@ -0,0 +1,15 @@
+Use common AVX512 flagset to increase compatibility of bwa-mem2.avx512bw binary
+across platforms supporting AVX512
+see https://github.com/bwa-mem2/bwa-mem2/issues/236
+author: Alex Domingo (Vrije Universiteit Brussel)
+--- Makefile.orig 2024-04-29 14:52:21.634066000 +0200
++++ Makefile 2024-04-29 14:52:48.590282000 +0200
+@@ -76,7 +76,7 @@
+ endif
+ else ifeq ($(arch),avx512)
+ ifeq ($(CXX), icpc)
+- ARCH_FLAGS=-xCORE-AVX512
++ ARCH_FLAGS=-march=common-avx512 #-xCORE-AVX512
+ else
+ ARCH_FLAGS=-mavx512bw
+ endif
diff --git a/easybuild/easyconfigs/b/byacc/byacc-2.0.20240109-GCCcore-13.3.0.eb b/easybuild/easyconfigs/b/byacc/byacc-2.0.20240109-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..fa57e4306e6
--- /dev/null
+++ b/easybuild/easyconfigs/b/byacc/byacc-2.0.20240109-GCCcore-13.3.0.eb
@@ -0,0 +1,24 @@
+easyblock = 'ConfigureMake'
+
+name = 'byacc'
+version = '2.0.20240109'
+
+homepage = 'http://invisible-island.net/byacc/byacc.html'
+description = """Berkeley Yacc (byacc) is generally conceded to be the best yacc variant available.
+ In contrast to bison, it is written to avoid dependencies upon a particular compiler.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://invisible-island.net/archives/byacc/']
+sources = ['byacc-%s.tgz' % version.split('.')[2]]
+checksums = ['f2897779017189f1a94757705ef6f6e15dc9208ef079eea7f28abec577e08446']
+
+builddependencies = [('binutils', '2.42')]
+
+sanity_check_paths = {
+ 'files': ["bin/yacc"],
+ 'dirs': []
+}
+
+moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/b/bzip2/bzip2-1.0.8-GCCcore-13.3.0.eb b/easybuild/easyconfigs/b/bzip2/bzip2-1.0.8-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..adb4b34a9bb
--- /dev/null
+++ b/easybuild/easyconfigs/b/bzip2/bzip2-1.0.8-GCCcore-13.3.0.eb
@@ -0,0 +1,27 @@
+name = 'bzip2'
+version = '1.0.8'
+
+homepage = 'https://sourceware.org/bzip2'
+description = """
+ bzip2 is a freely available, patent free, high-quality data compressor. It
+ typically compresses files to within 10% to 15% of the best available
+ techniques (the PPM family of statistical compressors), whilst being around
+ twice as fast at compression and six times faster at decompression.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://sourceware.org/pub/%(name)s/']
+sources = [SOURCE_TAR_GZ]
+patches = ['bzip2-%(version)s-pkgconfig.patch']
+checksums = [
+ 'ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269', # bzip2-1.0.8.tar.gz
+ '9299e8ee4d014ea973777b6ea90661fe329dfa991f822add4c763ea9ddb9aab1', # bzip2-1.0.8-pkgconfig.patch
+]
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/c/CAMPARI/CAMPARI-4.0-foss-2023a.eb b/easybuild/easyconfigs/c/CAMPARI/CAMPARI-4.0-foss-2023a.eb
new file mode 100644
index 00000000000..af659719245
--- /dev/null
+++ b/easybuild/easyconfigs/c/CAMPARI/CAMPARI-4.0-foss-2023a.eb
@@ -0,0 +1,54 @@
+easyblock = 'ConfigureMake'
+
+name = 'CAMPARI'
+version = '4.0'
+_date = '12202020'
+
+homepage = 'http://campari.sourceforge.net/V4/index.html'
+description = """
+CAMPARI is a joint package for performing and analyzing molecular simulations, in particular of systems of biological
+relevance. It focuses on a wide availability of algorithms for (advanced) sampling and is capable of combining Monte
+Carlo and molecular dynamics in seamless fashion."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+source_urls = [SOURCEFORGE_SOURCE]
+sources = ['campari_v%s_%s.zip' % (version.split('.')[0], _date)]
+checksums = ['bc627fb286b5461a5c68aa3e1a551ecd81016495163685800163c734f7c4f1bd']
+
+builddependencies = [
+ ('Autotools', '20220317'),
+]
+
+dependencies = [
+ ('netCDF-Fortran', '4.6.1'),
+ ('libtirpc', '1.3.3'),
+]
+
+start_dir = 'source'
+
+# remove hardcoded paths in configure script
+preconfigopts = 'sed -i "s|/usr/share|$EBROOTAUTOMAKE/share|" configure &&'
+# ignore default compiler settings and use EB build environment
+local_fcflags = '$FCFLAGS -fallow-argument-mismatch $CPPFLAGS'
+configopts = '--enable-compiler=ignore --with-trailing-user-fcflags="%s" ' % local_fcflags
+configopts += '--enable-mpi=auto '
+configopts += 'LIBS="$LIBS $LIBFFT $LIBBLAS -ltirpc"'
+
+buildopts = 'all'
+
+maxparallel = 10
+
+postinstallcmds = ['cp -a %(builddir)s/campari/{data,doc,examples,params,tools,LICENSE} %(installdir)s/']
+
+_binaries = ['campari', 'campari_mpi', 'campari_mpi_threads', 'campari_threads', 'camp_ncminer', 'camp_ncminer_threads']
+_libraries = ['lcampari.a', 'lcampari_mpi.a', 'lcampari_mpi_threads.a', 'lcampari_threads.a', 'libxdrf.a']
+
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in _binaries] + ['lib/%s' % x for x in _libraries],
+ 'dirs': [],
+}
+
+sanity_check_commands = ['campari -h | grep "USAGE: CAMPARI"']
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/CAMPARI/CAMPARI-4.0-intel-2023a.eb b/easybuild/easyconfigs/c/CAMPARI/CAMPARI-4.0-intel-2023a.eb
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.3.0-iimpi-2022a.eb b/easybuild/easyconfigs/c/CDO/CDO-2.3.0-iimpi-2022a.eb
new file mode 100644
index 00000000000..58cf406d164
--- /dev/null
+++ b/easybuild/easyconfigs/c/CDO/CDO-2.3.0-iimpi-2022a.eb
@@ -0,0 +1,58 @@
+# updated to version 2.0.6, based on the previous 2.0.5 version
+# J. Sassmannshausen (Imperial College London, UK)
+# Alex Domingo (Vrije Universiteit Brussel, BE)
+# Maxim Masterov (SURF, NL)
+
+easyblock = 'ConfigureMake'
+
+name = 'CDO'
+version = '2.3.0'
+
+homepage = 'https://code.zmaw.de/projects/cdo'
+description = """CDO is a collection of command line Operators to manipulate and analyse Climate and NWP model Data."""
+
+toolchain = {'name': 'iimpi', 'version': '2022a'}
+toolchainopts = {'pic': True, 'usempi': True}
+
+source_urls = ['https://code.mpimet.mpg.de/attachments/download/29019/']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['10c878227baf718a6917837527d4426c2d0022cfac4457c65155b9c57f091f6b']
+
+builddependencies = [
+ ('pkgconf', '1.8.0'),
+]
+
+dependencies = [
+ ('cURL', '7.83.0'),
+ ('ecCodes', '2.27.0'),
+ ('FFTW', '3.3.10'),
+ ('HDF5', '1.12.2'),
+ ('libxml2', '2.9.13'),
+ ('netCDF', '4.9.0'),
+ ('PROJ', '9.0.0'),
+ ('Szip', '2.1.1'),
+ ('UDUNITS', '2.2.28'),
+ ('util-linux', '2.38'),
+]
+
+# Build libcdi
+configopts = "--enable-cdi-lib "
+
+# Use dependencies from EasyBuild
+configopts += "--with-curl=$EBROOTCURL --with-eccodes=$EBROOTECCODES --with-fftw3 --with-hdf5=$EBROOTHDF5 "
+configopts += "--with-netcdf=$EBROOTNETCDF --with-proj=$EBROOTPROJ --with-szlib=$EBROOTSZIP "
+configopts += "--with-udunits2=$EBROOTUDUNITS --with-util-linux-uuid=$EBROOTUTILMINLINUX "
+
+# Make sure that right Fortran compiler is used, also on non-x86_64 architectures
+configopts += 'CPPFLAGS="$CPPFLAGS -DgFortran" '
+
+buildopts = "V=1"
+
+sanity_check_paths = {
+ 'files': ['bin/cdo', 'lib/libcdi.a', 'lib/libcdi.%s' % SHLIB_EXT],
+ 'dirs': ['include'],
+}
+
+sanity_check_commands = ["cdo --version 2>&1 | grep 'CDI library version : %(version)s'"]
+
+moduleclass = 'data'
diff --git a/easybuild/easyconfigs/c/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/CESM-deps/CESM-deps-2-foss-2023a.eb b/easybuild/easyconfigs/c/CESM-deps/CESM-deps-2-foss-2023a.eb
new file mode 100644
index 00000000000..1144c2b34cc
--- /dev/null
+++ b/easybuild/easyconfigs/c/CESM-deps/CESM-deps-2-foss-2023a.eb
@@ -0,0 +1,51 @@
+easyblock = 'Bundle'
+
+name = 'CESM-deps'
+version = '2'
+
+homepage = 'https://www.cesm.ucar.edu/models/cesm2/'
+description = """CESM is a fully-coupled, community, global climate model that
+provides state-of-the-art computer simulations of the Earth's past, present,
+and future climate states."""
+
+# The following environment is suitable for CESM >= 2.2.2 and CTSM >= 5.2.0
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('CMake', '3.26.3'),
+ ('Python', '3.11.3'),
+ ('lxml', '4.9.2'),
+ ('Perl', '5.36.1'),
+ ('XML-LibXML', '2.0209'),
+ ('ESMF', '8.6.0'),
+ ('netCDF', '4.9.2'),
+ ('netCDF-Fortran', '4.6.1'),
+ ('netCDF-C++4', '4.3.1'),
+ ('PnetCDF', '1.12.3'),
+ ('git', '2.41.0', '-nodocs'),
+ ('git-lfs', '3.5.1', '', SYSTEM),
+]
+
+components = [
+ # install extra configuration tools and files for VSC clusters
+ ('cesm-config', '1.7.0', {
+ 'easyblock': 'Tarball',
+ 'source_urls': ['https://github.com/vub-hpc/%(name)s/archive'],
+ 'sources': [{'download_filename': 'v%(version)s.tar.gz', 'filename': SOURCE_TAR_GZ}],
+ 'checksums': ['c5aeb50595ca4d342a5024d593c2549acf16e72dadc5f39d9a7915d3dc8f3c13'],
+ 'start_dir': '%(name)s-%(version)s',
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/update-cesm-machines', 'scripts/case.pbs', 'scripts/case.slurm'],
+ 'dirs': ['machines', 'irods'],
+}
+
+usage = """Environment to build and run CESM v2 simulations
+ 1. Download a release of CESM v2: `git clone -b release-cesm2.2.2 https://github.com/ESCOMP/cesm.git cesm-2.2.2`
+ 2. Add external programs for CESM: `cd cesm-2.2.2; ./manage_externals/checkout_externals`
+ 3. Update config files: `update-cesm-machines cime/config/cesm/machines/ $EBROOTCESMMINDEPS/machines/`
+ 4. Create case: `cd cime/scripts && ./create_newcase --machine ...`"""
+
+moduleclass = 'geo'
diff --git a/easybuild/easyconfigs/c/CFITSIO/CFITSIO-4.4.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/c/CFITSIO/CFITSIO-4.4.1-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..eaa1b0866ac
--- /dev/null
+++ b/easybuild/easyconfigs/c/CFITSIO/CFITSIO-4.4.1-GCCcore-13.3.0.eb
@@ -0,0 +1,43 @@
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+# Author: Denis Kristak
+easyblock = 'ConfigureMake'
+
+name = 'CFITSIO'
+version = '4.4.1'
+
+homepage = 'https://heasarc.gsfc.nasa.gov/fitsio/'
+description = """CFITSIO is a library of C and Fortran subroutines for reading and writing data files in
+FITS (Flexible Image Transport System) data format."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c/']
+sources = [SOURCELOWER_TAR_GZ]
+patches = ['%(name)s-3.48_install_test_data.patch']
+checksums = [
+ {'cfitsio-4.4.1.tar.gz': '66a1dc3f21800f9eeabd9eac577b91fcdd9aabba678fbba3b8527319110d1d25'},
+ {'CFITSIO-3.48_install_test_data.patch': 'dbf16f857f133468fc1e6a793c6e89fca66d54796593e03606f2722a2a980c0c'},
+]
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+# curl for HTTPs support
+dependencies = [
+ ('cURL', '8.7.1'),
+]
+
+# make would create just static libcfitsio.a.
+# Let's create dynamic lib and testprog too.
+buildopts = "&& make shared && make testprog"
+
+
+sanity_check_paths = {
+ 'files': ['lib/libcfitsio.a', 'lib/libcfitsio.%s' % SHLIB_EXT],
+ 'dirs': ['include'],
+}
+
+sanity_check_commands = ['cd %(installdir)s/share && testprog']
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/c/CGAL/CGAL-5.6.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/c/CGAL/CGAL-5.6.1-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..01aa21c6311
--- /dev/null
+++ b/easybuild/easyconfigs/c/CGAL/CGAL-5.6.1-GCCcore-13.3.0.eb
@@ -0,0 +1,26 @@
+easyblock = 'CMakeMake'
+name = 'CGAL'
+version = '5.6.1'
+
+homepage = 'https://www.cgal.org/'
+description = """The goal of the CGAL Open Source Project is to provide easy access to efficient
+ and reliable geometric algorithms in the form of a C++ library."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'strict': True}
+
+source_urls = ['https://github.com/CGAL/cgal/releases/download/v%(version)s/']
+sources = [SOURCE_TAR_XZ]
+checksums = ['cdb15e7ee31e0663589d3107a79988a37b7b1719df3d24f2058545d1bcdd5837']
+
+builddependencies = [
+ ('CMake', '3.29.3'),
+ ('binutils', '2.42'),
+]
+
+sanity_check_paths = {
+ 'files': ['include/CGAL/Simple_cartesian.h'],
+ 'dirs': ['include/CGAL', 'lib/cmake/CGAL'],
+}
+
+moduleclass = 'numlib'
diff --git a/easybuild/easyconfigs/c/CIRCE/CIRCE-0.3.4-foss-2023a.eb b/easybuild/easyconfigs/c/CIRCE/CIRCE-0.3.4-foss-2023a.eb
new file mode 100644
index 00000000000..6a41b512096
--- /dev/null
+++ b/easybuild/easyconfigs/c/CIRCE/CIRCE-0.3.4-foss-2023a.eb
@@ -0,0 +1,55 @@
+easyblock = 'PythonBundle'
+
+name = 'CIRCE'
+version = '0.3.4'
+
+homepage = 'https://github.com/cantinilab/Circe'
+description = """This repo contains a python package for inferring co-accessibility networks
+ from single-cell ATAC-seq data, using skggm for the graphical lasso and scanpy for data processing."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+builddependencies = [
+ ('poetry', '1.5.1'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('scikit-learn', '1.3.1'),
+ ('scanpy', '1.9.8'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+# Some requirements are too strict.
+local_preinstallopts = """sed -i 's/pandas = "[^"]*"/pandas = "*"/g' pyproject.toml && """
+local_preinstallopts += """sed -i "s/'pandas>=[^']*'/'pandas'/g" setup.py && """
+
+# build the C components linking `flexiblas` instead of `lapack` and `blas`
+local_preinstallopts += """sed -i "s/lapack/flexiblas/g;s/, 'blas'//g" setup.py && """
+local_preinstallopts += """sed -i "s/lapack/flexiblas/g;/blas/d" pyquic_ext/pyquic.cpp && """
+
+exts_list = [
+ ('joblib', '1.4.2', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['06d478d5674cbc267e7496a410ee875abd68e4340feff4490bcb7afb88060ae6'],
+ }),
+ ('rich', '13.9.2', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['8c82a3d3f8dcfe9e734771313e606b39d8247bb6b826e196f4914b333b743cf1'],
+ }),
+ ('circe_py', version, {
+ 'preinstallopts': local_preinstallopts,
+ 'modulename': 'circe',
+ 'checksums': ['279004948dff84816361e857ee3fb383cdb17587f376c6f10f82a66810cba16c'],
+ }),
+]
+
+# NOTE This has been tested manually using the following script:
+# https://github.com/cantinilab/Circe/blob/a70e031f9de4760739eb3c7571277678d5e80c8a/Examples/Minimal_example.ipynb
+# with a small modification:
+# https://github.com/cantinilab/Circe/issues/5#issuecomment-2419821380
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/CLANS/CLANS-2.0.8-foss-2023a.eb b/easybuild/easyconfigs/c/CLANS/CLANS-2.0.8-foss-2023a.eb
new file mode 100644
index 00000000000..e1ce2f2a9e1
--- /dev/null
+++ b/easybuild/easyconfigs/c/CLANS/CLANS-2.0.8-foss-2023a.eb
@@ -0,0 +1,38 @@
+easyblock = "PythonBundle"
+
+name = 'CLANS'
+version = '2.0.8'
+
+homepage = 'https://github.com/inbalpaz/CLANS'
+description = """
+CLANS 2.0 is a Python-based program for clustering sequences in the 2D or 3D space, based on
+their sequence similarities. CLANS visualizes the dynamic clustering process and enables the
+user to interactively control it and explore the cluster map in various ways.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('numba', '0.58.1'),
+ ('VisPy', '0.12.2'),
+ ('Biopython', '1.83'),
+ ('Pillow', '10.0.0'),
+ ('PyQt5', '5.15.10'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ (name, version, {
+ 'source_urls': ['https://github.com/inbalpaz/CLANS/archive/refs/tags/'],
+ 'sources': ['%(version)s.tar.gz'],
+ 'checksums': ['7b856ec3b13c420dbe30169e8cdd7d6899acb79042ca66920eafd05adf4d2815'],
+ }),
+]
+
+sanity_check_commands = ['python -m clans -h']
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/c/CLHEP/CLHEP-2.4.7.1-GCC-12.3.0.eb b/easybuild/easyconfigs/c/CLHEP/CLHEP-2.4.7.1-GCC-12.3.0.eb
new file mode 100644
index 00000000000..4bf02eab9a1
--- /dev/null
+++ b/easybuild/easyconfigs/c/CLHEP/CLHEP-2.4.7.1-GCC-12.3.0.eb
@@ -0,0 +1,29 @@
+easyblock = 'CMakeMake'
+
+name = 'CLHEP'
+version = '2.4.7.1'
+
+homepage = 'https://proj-clhep.web.cern.ch/proj-clhep/'
+description = """The CLHEP project is intended to be a set of HEP-specific foundation and
+ utility classes such as random generators, physics vectors, geometry and linear algebra.
+ CLHEP is structured in a set of packages independent of any external package."""
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://proj-clhep.web.cern.ch/proj-clhep/dist1/']
+sources = [SOURCELOWER_TGZ]
+checksums = ['1c8304a7772ac6b99195f1300378c6e3ddf4ad07c85d64a04505652abb8a55f9']
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/clhep-config', 'lib/libCLHEP.a', 'lib/libCLHEP.%s' % SHLIB_EXT],
+ 'dirs': ['include/CLHEP'],
+}
+
+sanity_check_commands = ["clhep-config --help"]
+
+moduleclass = 'numlib'
diff --git a/easybuild/easyconfigs/c/CLUMPP/CLUMPP-1.1.2-Linux64.eb b/easybuild/easyconfigs/c/CLUMPP/CLUMPP-1.1.2-Linux64.eb
new file mode 100644
index 00000000000..3b42e01a2be
--- /dev/null
+++ b/easybuild/easyconfigs/c/CLUMPP/CLUMPP-1.1.2-Linux64.eb
@@ -0,0 +1,38 @@
+easyblock = 'Tarball'
+
+name = 'CLUMPP'
+version = '1.1.2'
+versionsuffix = '-Linux64'
+
+homepage = 'https://rosenberglab.stanford.edu/clumpp.html'
+description = """
+CLUMPP is a program that deals with label switching and multimodality problems
+in population-genetic cluster analyses."""
+
+toolchain = SYSTEM
+
+source_urls = ['https://rosenberglab.stanford.edu/software/']
+sources = ['%(name)s_Linux64.%(version)s.tar.gz']
+checksums = ['58cf3fe9e37f890621a76a244362256ffe4dde5e409346ae811d56af26cfe724']
+
+postinstallcmds = [
+ 'cd %(installdir)s && mkdir bin && mv CLUMPP bin/'
+]
+
+sanity_check_paths = {
+ 'files': ['bin/CLUMPP'],
+ 'dirs': [],
+}
+
+_clumpp_test_cmd = [
+ "tmpdir=$(mktemp -d)",
+ "cp %(installdir)s/{paramfile,arabid.popfile,arabid.permutationfile} $tmpdir",
+ "cd $tmpdir",
+ "CLUMPP",
+]
+
+sanity_check_commands = [
+ " && ".join(_clumpp_test_cmd),
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/CMake/CMake-3.29.3-GCCcore-13.3.0.eb b/easybuild/easyconfigs/c/CMake/CMake-3.29.3-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..d8c9cce51ca
--- /dev/null
+++ b/easybuild/easyconfigs/c/CMake/CMake-3.29.3-GCCcore-13.3.0.eb
@@ -0,0 +1,30 @@
+name = 'CMake'
+version = '3.29.3'
+
+homepage = 'https://www.cmake.org'
+
+description = """
+ CMake, the cross-platform, open-source build system. CMake is a family of
+ tools designed to build, test and package software.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://www.cmake.org/files/v%(version_major_minor)s']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['252aee1448d49caa04954fd5e27d189dd51570557313e7b281636716a238bccb']
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+
+dependencies = [
+ ('ncurses', '6.5'),
+ ('zlib', '1.3.1'),
+ ('bzip2', '1.0.8'),
+ ('cURL', '8.7.1'),
+ ('libarchive', '3.7.4'),
+ ('OpenSSL', '3', '', SYSTEM),
+]
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/c/COLMAP/COLMAP-3.8-foss-2022b.eb b/easybuild/easyconfigs/c/COLMAP/COLMAP-3.8-foss-2022b.eb
new file mode 100644
index 00000000000..1da3b634c94
--- /dev/null
+++ b/easybuild/easyconfigs/c/COLMAP/COLMAP-3.8-foss-2022b.eb
@@ -0,0 +1,45 @@
+easyblock = 'CMakeNinja'
+
+name = 'COLMAP'
+version = '3.8'
+
+homepage = 'https://colmap.github.io'
+description = """COLMAP is a general-purpose Structure-from-Motion (SfM) and Multi-View Stereo (MVS) pipeline
+with a graphical and command-line interface"""
+
+source_urls = ['https://github.com/colmap/colmap/archive/']
+sources = ['%(version)s.tar.gz']
+checksums = ['02288f8f61692fe38049d65608ed832b31246e7792692376afb712fa4cef8775']
+
+toolchain = {'name': 'foss', 'version': '2022b'}
+
+builddependencies = [
+ ('CMake', '3.24.3'),
+ ('Ninja', '1.11.1'),
+ ('Eigen', '3.4.0'),
+ ('googletest', '1.12.1'),
+]
+
+dependencies = [
+ ('Boost', '1.81.0'),
+ ('Qt5', '5.15.7'),
+ ('FLANN', '1.9.2'),
+ ('FreeImage', '3.18.0'),
+ ('METIS', '5.1.0'),
+ ('glog', '0.6.0'),
+ ('SQLite', '3.39.4'),
+ ('glew', '2.2.0', '-egl'),
+ ('CGAL', '5.5.2'),
+ ('Ceres-Solver', '2.2.0'),
+]
+
+configopts = "-DCMAKE_CXX_STANDARD=17"
+
+sanity_check_paths = {
+ 'files': ['bin/colmap', 'lib/colmap/libcolmap.a', 'lib/colmap/libpba.a', 'lib/colmap/libvlfeat.a'],
+ 'dirs': ['include/colmap'],
+}
+
+sanity_check_commands = ["colmap -h"]
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/c/COMEBin/COMEBin-1.0.3-20240310-foss-2022a.eb b/easybuild/easyconfigs/c/COMEBin/COMEBin-1.0.3-20240310-foss-2022a.eb
new file mode 100644
index 00000000000..4bc881dc9c1
--- /dev/null
+++ b/easybuild/easyconfigs/c/COMEBin/COMEBin-1.0.3-20240310-foss-2022a.eb
@@ -0,0 +1,77 @@
+easyblock = 'Tarball'
+
+name = 'COMEBin'
+local_commit = '987db95'
+version = '1.0.3-20240310'
+
+homepage = 'https://github.com/ziyewang/COMEBin'
+description = "Effective binning of metagenomic contigs using COntrastive Multi-viEw representation learning"
+
+toolchain = {'name': 'foss', 'version': '2022a'}
+
+source_urls = ['https://github.com/ziyewang/COMEBin/archive/']
+sources = [{'download_filename': '%s.tar.gz' % local_commit, 'filename': SOURCE_TAR_GZ}]
+patches = ['COMEBin-1.0.3_fix-run-script.patch']
+checksums = [
+ {'COMEBin-1.0.3-20240310.tar.gz': 'aa9c9e98d0cd121b2be60cae85d735527f510ad07df1a84ed6405cbc66eea684'},
+ {'COMEBin-1.0.3_fix-run-script.patch': 'e9ac578667d4f7233cf716cc98b134b8bd7cb7bcc70a06322500319d84b67773'},
+]
+
+dependencies = [
+ ('Python', '3.10.4'),
+ ('SciPy-bundle', '2022.05'),
+ ('matplotlib', '3.5.2'),
+ ('PyTorch', '1.12.0'),
+ ('tensorboard', '2.10.0'),
+ ('Biopython', '1.79'),
+ ('scikit-learn', '1.1.2'),
+ ('tqdm', '4.64.0'),
+ ('leidenalg', '0.9.1'),
+ ('BEDTools', '2.30.0'),
+ ('BWA', '0.7.17'),
+ ('CheckM', '1.2.2'),
+ ('FragGeneScan', '1.31'),
+ ('HMMER', '3.3.2'),
+ ('pplacer', '1.1.alpha19', '', SYSTEM),
+ ('prodigal', '2.6.3'),
+ ('SAMtools', '1.16.1'),
+ ('python-igraph', '0.10.3'),
+ ('PyYAML', '6.0'),
+]
+
+exts_defaultclass = 'PythonPackage'
+
+exts_default_options = {
+ 'source_urls': [PYPI_SOURCE],
+ 'use_pip': True,
+ 'download_dep_fail': True,
+ 'sanity_pip_check': True,
+}
+
+exts_list = [
+ ('fastjsonschema', '2.19.1', {
+ 'checksums': ['e3126a94bdc4623d3de4485f8d468a12f02a67921315ddc87836d6e456dc789d'],
+ }),
+ ('hnswlib', '0.8.0', {
+ 'checksums': ['cb6d037eedebb34a7134e7dc78966441dfd04c9cf5ee93911be911ced951c44c'],
+ }),
+ ('biolib', '0.1.9', {
+ 'checksums': ['bc9ae68c6d76d46e4295fe0b1df5a48b575fe96374bd96d624c3330feb94856f'],
+ }),
+]
+
+postinstallcmds = ["chmod a+x %(installdir)s/bin/run_comebin.sh"]
+
+modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'}
+
+sanity_check_paths = {
+ 'files': ['bin/run_comebin.sh', 'COMEBin/main.py'],
+ 'dirs': ['COMEBin/models', 'COMEBin/scripts'],
+}
+
+sanity_check_commands = [
+ "run_comebin.sh | grep '^Usage: bash run_comebin.sh'"
+ "python %(installdir)s/COMEBin/main.py --help",
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/COMEBin/COMEBin-1.0.3_fix-run-script.patch b/easybuild/easyconfigs/c/COMEBin/COMEBin-1.0.3_fix-run-script.patch
new file mode 100644
index 00000000000..1752260e69b
--- /dev/null
+++ b/easybuild/easyconfigs/c/COMEBin/COMEBin-1.0.3_fix-run-script.patch
@@ -0,0 +1,12 @@
+fix determining path to top-level directory,
+since run_comebin.sh is located in bin/run_comebin.sh
+--- bin/run_comebin.sh.orig 2024-06-04 16:27:24.373968000 +0200
++++ bin/run_comebin.sh 2024-06-04 16:27:38.413830000 +0200
+@@ -25,6 +25,7 @@
+ echo "";}
+
+ run_file_path=$(dirname $(which run_comebin.sh))
++run_file_path=$(dirname $(dirname $(which run_comebin.sh)))
+
+ if [[ $? -ne 0 ]]; then
+ echo "cannot find run_comebin.sh file - something went wrong with the installation!"
diff --git a/easybuild/easyconfigs/c/CORSIKA/CORSIKA-77550-foss-2023a.eb b/easybuild/easyconfigs/c/CORSIKA/CORSIKA-77550-foss-2023a.eb
new file mode 100644
index 00000000000..c6f619d9d75
--- /dev/null
+++ b/easybuild/easyconfigs/c/CORSIKA/CORSIKA-77550-foss-2023a.eb
@@ -0,0 +1,49 @@
+easyblock = "ConfigureMake"
+
+name = 'CORSIKA'
+version = '77550'
+
+homepage = "https://www.iap.kit.edu/corsika"
+description = """CORSIKA (COsmic Ray SImulations for KAscade) is a program for detailed
+simulation of extensive air showers initiated by high energy cosmic ray
+particles. Protons, light nuclei up to iron, photons, and many other particles
+may be treated as primaries."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'usempi': True}
+
+download_instructions = "Sources have to be requested to the developers"
+sources = [SOURCELOWER_TAR_GZ]
+patches = ['%(name)s-%(version)s_fix_include.patch']
+checksums = [
+ {'corsika-77550.tar.gz': 'fed74c144e22deb5a7c1d2dc1f04f0100eb2732cb48665a3da49ce471a3775ee'},
+ {'CORSIKA-77550_fix_include.patch': 'e858fc4c1fa33d31d050b2fca50e130c23b2d3e4b81b851af34dc3f39e9c709e'},
+]
+
+dependencies = [
+ ("ROOT", "6.30.06"),
+]
+
+# custom coconut script does not recognize -j
+parallel = False
+
+# execute ./coconut manually with your own options and extract configure command from top of config.log
+_mpi_opts = "--enable-PARALLEL --with-mpirunner-lib=src/parallel --enable-PARALLELIB "
+configopts = "CORDETECTOR=HORIZONTAL CORTIMELIB=TIMEAUTO CORHEMODEL=QGSJETII CORLEMODEL=URQMD "
+configopts += "--enable-UPWARD --enable-SLANT --enable-THIN --enable-COREAS "
+configopts += _mpi_opts
+
+build_cmd = "./coconut"
+buildopts = "--batch " + _mpi_opts
+
+install_cmd = ' && '.join([
+ 'mkdir -p %(installdir)s/bin',
+ 'cp %(builddir)s/%(namelower)s-%(version)s/run/* %(installdir)s/bin/',
+])
+
+sanity_check_paths = {
+ 'files': ['bin/mpi_corsika77550Linux_QGSII_urqmd_thin_coreas_parallel_runner'],
+ 'dirs': [],
+}
+
+moduleclass = "phys"
diff --git a/easybuild/easyconfigs/c/CORSIKA/CORSIKA-77550_fix_include.patch b/easybuild/easyconfigs/c/CORSIKA/CORSIKA-77550_fix_include.patch
new file mode 100644
index 00000000000..e7bc3863fae
--- /dev/null
+++ b/easybuild/easyconfigs/c/CORSIKA/CORSIKA-77550_fix_include.patch
@@ -0,0 +1,22 @@
+Move include out of function to avoid error:
+/usr/include/sys/stat.h:453:1: error: nested function ‘stat’ declared ‘extern’
+Author: Samuel Moors (Vrije Universiteit Brussel)
+diff -Nur corsika-77550.orig/src/parallel/mpi_runner.c corsika-77550/src/parallel/mpi_runner.c
+--- corsika-77550.orig/src/parallel/mpi_runner.c 2024-04-18 18:30:39.000000000 +0200
++++ corsika-77550/src/parallel/mpi_runner.c 2024-08-09 16:15:39.969688000 +0200
+@@ -99,6 +99,7 @@
+ #include
+ #include
+ #include "config.h"
++#include
+
+ /////////////////////initializing parameters///////////////////
+ //the number of data type block in the MPI message
+@@ -1023,7 +1024,6 @@
+ strcpy(str2, strtmp);
+ }
+ strcpy(statdir,str2);
+- #include
+ struct stat sb;
+ if (stat(statdir, &sb) == 0 && S_ISDIR(sb.st_mode))
+ {
diff --git a/easybuild/easyconfigs/c/COSTA/COSTA-2.2.2-foss-2023a.eb b/easybuild/easyconfigs/c/COSTA/COSTA-2.2.2-foss-2023a.eb
new file mode 100644
index 00000000000..0f347ce481e
--- /dev/null
+++ b/easybuild/easyconfigs/c/COSTA/COSTA-2.2.2-foss-2023a.eb
@@ -0,0 +1,27 @@
+easyblock = 'CMakeMake'
+
+name = 'COSTA'
+version = '2.2.2'
+
+homepage = 'https://github.com/eth-cscs/COSTA'
+description = """OSTA is a communication-optimal, highly-optimised algorithm for data redistribution
+accross multiple processors, using MPI and OpenMP and offering the possibility
+to transpose and scale some or all data."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'openmp': True}
+
+source_urls = ['https://github.com/eth-cscs/COSTA/archive']
+sources = ['v%(version)s.tar.gz']
+checksums = ['e87bc37aad14ac0c5922237be5d5390145c9ac6aef0350ed17d86cb2d994e67c']
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+]
+
+sanity_check_paths = {
+ 'files': ['lib/libcosta.a'],
+ 'dirs': ['include/costa'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/c/CP2K/CP2K-2023.1-foss-2023a.eb b/easybuild/easyconfigs/c/CP2K/CP2K-2023.1-foss-2023a.eb
index d16e202463a..d9ace4b896b 100644
--- a/easybuild/easyconfigs/c/CP2K/CP2K-2023.1-foss-2023a.eb
+++ b/easybuild/easyconfigs/c/CP2K/CP2K-2023.1-foss-2023a.eb
@@ -25,11 +25,16 @@ builddependencies = [
dependencies = [
('Libint', '2.7.2', '-lmax-6-cp2k'),
('libxc', '6.2.2'),
- ('libxsmm', '1.17'),
('libvori', '220621'),
('FFTW', '3.3.10'),
('PLUMED', '2.9.0'),
]
+if ARCH == 'x86_64':
+ # LIBXSMM is not supported supported on ARM with GCC 12.2.0 and 12.3.0
+ # see https://www.cp2k.org/dev:compiler_support
+ dependencies += [
+ ('libxsmm', '1.17'),
+ ]
type = 'psmp'
diff --git a/easybuild/easyconfigs/c/CPPE/CPPE-0.3.1-GCC-12.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/CSBDeep/CSBDeep-0.7.4-foss-2023a.eb b/easybuild/easyconfigs/c/CSBDeep/CSBDeep-0.7.4-foss-2023a.eb
new file mode 100644
index 00000000000..3b3b0f37650
--- /dev/null
+++ b/easybuild/easyconfigs/c/CSBDeep/CSBDeep-0.7.4-foss-2023a.eb
@@ -0,0 +1,37 @@
+# This easyconfig was created by the BEAR Software team at the University of Birmingham.
+# Update: Petr Král (INUITS)
+easyblock = 'PythonBundle'
+
+name = 'CSBDeep'
+version = '0.7.4'
+
+homepage = "https://csbdeep.bioimagecomputing.com/"
+description = """CSBDeep is a toolbox for Content-aware Image Restoration (CARE)."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('TensorFlow', '2.13.0'),
+ ('matplotlib', '3.7.2'),
+ ('tqdm', '4.66.1'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('tifffile', '2024.6.18', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['67299c0445fc47463bbc71f3cb4676da2ab0242b0c6c6542a0680801b4b97d8a'],
+ }),
+ ('%(namelower)s', version, {
+ 'source_tmpl': SOURCE_WHL,
+ 'checksums': ['155d61827439373dc9c2a730a1ef621f7e373fea16599d583e0a70f1e48bd6db'],
+ }),
+]
+
+sanity_check_commands = ['care_predict']
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/CUDA-Python/CUDA-Python-12.1.0-gfbf-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/c/CUDA-Python/CUDA-Python-12.1.0-gfbf-2023a-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..f58021c3a9a
--- /dev/null
+++ b/easybuild/easyconfigs/c/CUDA-Python/CUDA-Python-12.1.0-gfbf-2023a-CUDA-12.1.1.eb
@@ -0,0 +1,38 @@
+easyblock = 'PythonBundle'
+
+name = 'CUDA-Python'
+# Warning: major and minor versions of CUDA and CUDA-Python are tied
+version = '12.1.0'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://nvidia.github.io/cuda-python/'
+description = "Python bindings for CUDA"
+github_account = 'NVIDIA'
+
+toolchain = {'name': 'gfbf', 'version': '2023a'}
+
+dependencies = [
+ ('CUDA', '%(version_major)s.%(version_minor)s.1', '', SYSTEM),
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('pyclibrary', '0.2.2', {
+ 'checksums': ['9902fffe361bb86f57ab62aa4195ec4dd382b63c5c6892be6d9784ec0a3575f7'],
+ }),
+ ('cuda-python', version, {
+ 'modulename': 'cuda',
+ 'source_urls': ['https://github.com/%(github_account)s/%(namelower)s/archive'],
+ 'sources': [{'download_filename': 'v%(version)s.tar.gz', 'filename': '%(namelower)s-%(version)s.tar.gz'}],
+ 'checksums': ['6fdfacaabbd6bc7f5dddec3ecf6bb0968e4a6b5151896d6352703ff5e0fc4abb'],
+ }),
+]
+
+sanity_pip_check = True
+
+sanity_check_commands = ["python -c 'from cuda import cuda, nvrtc'"]
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/c/CUDA-Samples/CUDA-Samples-11.3-GCC-10.3.0-CUDA-11.3.1.eb b/easybuild/easyconfigs/c/CUDA-Samples/CUDA-Samples-11.3-GCC-10.3.0-CUDA-11.3.1.eb
index b71d2bfad4d..ad7b6aba80b 100644
--- a/easybuild/easyconfigs/c/CUDA-Samples/CUDA-Samples-11.3-GCC-10.3.0-CUDA-11.3.1.eb
+++ b/easybuild/easyconfigs/c/CUDA-Samples/CUDA-Samples-11.3-GCC-10.3.0-CUDA-11.3.1.eb
@@ -11,7 +11,11 @@ toolchain = {'name': 'GCC', 'version': '10.3.0'}
source_urls = ['https://github.com/NVIDIA/cuda-samples/archive/']
sources = ['v%(version)s.tar.gz']
-checksums = ['2bee5f7c89347259aaab75aa6df6e10375059bdbbaf04cc7936f5db7d54fa3ac']
+patches = ['cuda-samples-11.3_multiple-sms.patch']
+checksums = [
+ {'v11.3.tar.gz': '2bee5f7c89347259aaab75aa6df6e10375059bdbbaf04cc7936f5db7d54fa3ac'},
+ {'cuda-samples-11.3_multiple-sms.patch': 'b31613f4160456f0d0abf82999c7fb7eee781f0efadc8b9bbb5a02ef0f37e21d'},
+]
dependencies = [
('CUDA', '11.3.1', '', SYSTEM),
@@ -32,7 +36,7 @@ local_filters += "Samples/simpleVulkan/Makefile "
local_filters += "Samples/simpleVulkanMMAP/Makefile "
local_filters += "Samples/streamOrderedAllocationIPC/Makefile "
local_filters += "Samples/vulkanImageCUDA/Makefile"
-buildopts = "HOST_COMPILER=g++ FILTER_OUT='%s'" % local_filters
+buildopts = "HOST_COMPILER=g++ SMS='%%(cuda_cc_space_sep_no_period)s' FILTER_OUT='%s'" % local_filters
files_to_copy = [
(['bin/%s/linux/release/*' % ARCH], 'bin'),
diff --git a/easybuild/easyconfigs/c/CUDA-Samples/CUDA-Samples-11.6-GCC-11.3.0-CUDA-11.7.0.eb b/easybuild/easyconfigs/c/CUDA-Samples/CUDA-Samples-11.6-GCC-11.3.0-CUDA-11.7.0.eb
index d4240930bd1..ea78eae4061 100644
--- a/easybuild/easyconfigs/c/CUDA-Samples/CUDA-Samples-11.6-GCC-11.3.0-CUDA-11.7.0.eb
+++ b/easybuild/easyconfigs/c/CUDA-Samples/CUDA-Samples-11.6-GCC-11.3.0-CUDA-11.7.0.eb
@@ -11,7 +11,11 @@ toolchain = {'name': 'GCC', 'version': '11.3.0'}
source_urls = ['https://github.com/NVIDIA/cuda-samples/archive/']
sources = ['v%(version)s.tar.gz']
-checksums = ['75b858bcf9e534eaa0f129c418e661b83872d743de218df8a5278cc429f9ea98']
+patches = ['cuda-samples-11.6_multiple-sms.patch']
+checksums = [
+ {'v11.6.tar.gz': '75b858bcf9e534eaa0f129c418e661b83872d743de218df8a5278cc429f9ea98'},
+ {'cuda-samples-11.6_multiple-sms.patch': '8849e4882d797d155d6ebb71377fa1409205361776ade8da699452a4ecb94a0a'},
+]
dependencies = [
('CUDA', '11.7.0', '', SYSTEM),
@@ -33,7 +37,7 @@ local_filters += "Samples/simpleVulkanMMAP/Makefile "
local_filters += "Samples/streamOrderedAllocationIPC/Makefile "
local_filters += "Samples/vulkanImageCUDA/Makefile"
-buildopts = "HOST_COMPILER=g++ FILTER_OUT='%s'" % local_filters
+buildopts = "HOST_COMPILER=g++ SMS='%%(cuda_cc_space_sep_no_period)s' FILTER_OUT='%s'" % local_filters
files_to_copy = [
(['bin/%s/linux/release/*' % ARCH], 'bin'),
diff --git a/easybuild/easyconfigs/c/CUDA-Samples/CUDA-Samples-11.8-GCC-11.3.0-CUDA-11.7.0.eb b/easybuild/easyconfigs/c/CUDA-Samples/CUDA-Samples-11.8-GCC-11.3.0-CUDA-11.7.0.eb
new file mode 100644
index 00000000000..be16c76f3be
--- /dev/null
+++ b/easybuild/easyconfigs/c/CUDA-Samples/CUDA-Samples-11.8-GCC-11.3.0-CUDA-11.7.0.eb
@@ -0,0 +1,59 @@
+easyblock = 'MakeCp'
+
+name = 'CUDA-Samples'
+version = '11.8'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://github.com/NVIDIA/cuda-samples'
+description = "Samples for CUDA Developers which demonstrates features in CUDA Toolkit"
+
+toolchain = {'name': 'GCC', 'version': '11.3.0'}
+
+source_urls = ['https://github.com/NVIDIA/cuda-samples/archive/']
+sources = ['v%(version)s.tar.gz']
+patches = ['cuda-samples-11.6_multiple-sms.patch']
+checksums = [
+ {'v11.8.tar.gz': '1bc02c0ca42a323f3c7a05b5682eae703681a91e95b135bfe81f848b2d6a2c51'},
+ {'cuda-samples-11.6_multiple-sms.patch': '8849e4882d797d155d6ebb71377fa1409205361776ade8da699452a4ecb94a0a'},
+]
+
+dependencies = [
+ ('CUDA', '11.7.0', '', SYSTEM),
+]
+
+# Get rid of pre-built Windows DLLs and only build deviceQuery for now.
+prebuildopts = "rm -r bin/win64 && "
+
+# Filter out samples that require extensive dependencies.
+local_filters = "Samples/2_Concepts_and_Techniques/EGLStream_CUDA_Interop/Makefile "
+local_filters += "Samples/4_CUDA_Libraries/boxFilterNPP/Makefile "
+local_filters += "Samples/4_CUDA_Libraries/cannyEdgeDetectorNPP/Makefile "
+local_filters += "Samples/4_CUDA_Libraries/cudaNvSci/Makefile "
+local_filters += "Samples/4_CUDA_Libraries/cudaNvSciNvMedia/Makefile "
+local_filters += "Samples/5_Domain_Specific/simpleGL/Makefile "
+local_filters += "Samples/3_CUDA_Features/warpAggregatedAtomicsCG/Makefile "
+local_filters += "Samples/5_Domain_Specific/simpleVulkan/Makefile "
+local_filters += "Samples/5_Domain_Specific/simpleVulkanMMAP/Makefile "
+local_filters += "Samples/2_Concepts_and_Techniques/streamOrderedAllocationIPC/Makefile "
+local_filters += "Samples/5_Domain_Specific/vulkanImageCUDA/Makefile "
+local_filters += "Samples/6_Performance/LargeKernelParameter/Makefile "
+
+buildopts = "HOST_COMPILER=g++ SMS='%%(cuda_cc_space_sep_no_period)s' FILTER_OUT='%s'" % local_filters
+
+files_to_copy = [
+ (['bin/%s/linux/release/*' % ARCH], 'bin'),
+ 'LICENSE',
+]
+
+local_binaries = ['deviceQuery', 'matrixMul', 'bandwidthTest', 'cudaOpenMP']
+
+# Only paths are used for sanity checks.
+# Commands may fail due to missing compatibility libraries that might be needed
+# to be able to use this specific CUDA version in combination with the available
+# NVIDIA drivers.
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in local_binaries],
+ 'dirs': [],
+}
+
+moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/c/CUDA-Samples/CUDA-Samples-12.1-GCC-12.3.0-CUDA-12.1.1.eb b/easybuild/easyconfigs/c/CUDA-Samples/CUDA-Samples-12.1-GCC-12.3.0-CUDA-12.1.1.eb
index 3e7ffe79da0..5a886ca74d4 100644
--- a/easybuild/easyconfigs/c/CUDA-Samples/CUDA-Samples-12.1-GCC-12.3.0-CUDA-12.1.1.eb
+++ b/easybuild/easyconfigs/c/CUDA-Samples/CUDA-Samples-12.1-GCC-12.3.0-CUDA-12.1.1.eb
@@ -11,7 +11,11 @@ toolchain = {'name': 'GCC', 'version': '12.3.0'}
source_urls = ['https://github.com/NVIDIA/cuda-samples/archive/']
sources = ['v%(version)s.tar.gz']
-checksums = ['f758160645b366d79c2638d8dfd389f01029b8d179ab0c11726b9ef58aecebd9']
+patches = ['cuda-samples-11.6_multiple-sms.patch']
+checksums = [
+ {'v12.1.tar.gz': 'f758160645b366d79c2638d8dfd389f01029b8d179ab0c11726b9ef58aecebd9'},
+ {'cuda-samples-11.6_multiple-sms.patch': '8849e4882d797d155d6ebb71377fa1409205361776ade8da699452a4ecb94a0a'},
+]
dependencies = [
('CUDA', '12.1.1', '', SYSTEM),
@@ -58,7 +62,7 @@ if ARCH == 'aarch64':
local_filters += "Samples/3_CUDA_Features/cdpQuadtree/Makefile "
local_filters += "Samples/3_CUDA_Features/cdpAdvancedQuicksort/Makefile "
-buildopts = "HOST_COMPILER=g++ FILTER_OUT='%s'" % local_filters
+buildopts = "HOST_COMPILER=g++ SMS='%%(cuda_cc_space_sep_no_period)s' FILTER_OUT='%s'" % local_filters
# Remove libraries in the bin dir after a successful 'make'
buildopts += " && rm bin/*/linux/release/lib*.so.*"
diff --git a/easybuild/easyconfigs/c/CUDA-Samples/CUDA-Samples-12.2-GCC-11.3.0-CUDA-12.2.0.eb b/easybuild/easyconfigs/c/CUDA-Samples/CUDA-Samples-12.2-GCC-11.3.0-CUDA-12.2.0.eb
new file mode 100644
index 00000000000..89e1c6fc87b
--- /dev/null
+++ b/easybuild/easyconfigs/c/CUDA-Samples/CUDA-Samples-12.2-GCC-11.3.0-CUDA-12.2.0.eb
@@ -0,0 +1,63 @@
+easyblock = 'MakeCp'
+
+name = 'CUDA-Samples'
+version = '12.2'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://github.com/NVIDIA/cuda-samples'
+description = "Samples for CUDA Developers which demonstrates features in CUDA Toolkit"
+
+toolchain = {'name': 'GCC', 'version': '11.3.0'}
+
+source_urls = ['https://github.com/NVIDIA/cuda-samples/archive/']
+sources = ['v%(version)s.tar.gz']
+patches = ['cuda-samples-11.6_multiple-sms.patch']
+checksums = [
+ {'v12.2.tar.gz': '1823cfe28e97a9230107aa72b231f78952c0f178b71a920f036d360518480bdc'},
+ {'cuda-samples-11.6_multiple-sms.patch': '8849e4882d797d155d6ebb71377fa1409205361776ade8da699452a4ecb94a0a'},
+]
+
+builddependencies = [
+ ('CMake', '3.24.3'),
+]
+
+dependencies = [
+ ('CUDA', '12.2.0', '', SYSTEM),
+]
+
+# Get rid of pre-built Windows DLLs and only build deviceQuery for now.
+prebuildopts = "rm -r bin/win64 && "
+
+# Filter out samples that require extensive dependencies.
+local_filters = "Samples/2_Concepts_and_Techniques/EGLStream_CUDA_Interop/Makefile "
+local_filters += "Samples/4_CUDA_Libraries/boxFilterNPP/Makefile "
+local_filters += "Samples/4_CUDA_Libraries/cannyEdgeDetectorNPP/Makefile "
+local_filters += "Samples/4_CUDA_Libraries/cudaNvSci/Makefile "
+local_filters += "Samples/4_CUDA_Libraries/cudaNvSciNvMedia/Makefile "
+local_filters += "Samples/5_Domain_Specific/simpleGL/Makefile "
+local_filters += "Samples/3_CUDA_Features/warpAggregatedAtomicsCG/Makefile "
+local_filters += "Samples/5_Domain_Specific/simpleVulkan/Makefile "
+local_filters += "Samples/5_Domain_Specific/simpleVulkanMMAP/Makefile "
+local_filters += "Samples/2_Concepts_and_Techniques/streamOrderedAllocationIPC/Makefile "
+local_filters += "Samples/5_Domain_Specific/vulkanImageCUDA/Makefile "
+local_filters += "Samples/6_Performance/LargeKernelParameter/Makefile "
+
+buildopts = "HOST_COMPILER=g++ SMS='%%(cuda_cc_space_sep_no_period)s' FILTER_OUT='%s'" % local_filters
+
+files_to_copy = [
+ (['bin/%s/linux/release/*' % ARCH], 'bin'),
+ 'LICENSE',
+]
+
+local_binaries = ['deviceQuery', 'matrixMul', 'bandwidthTest', 'cudaOpenMP']
+
+# Only paths are used for sanity checks.
+# Commands may fail due to missing compatibility libraries that might be needed
+# to be able to use this specific CUDA version in combination with the available
+# NVIDIA drivers.
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in local_binaries],
+ 'dirs': [],
+}
+
+moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/c/CUDA-Samples/cuda-samples-11.3_multiple-sms.patch b/easybuild/easyconfigs/c/CUDA-Samples/cuda-samples-11.3_multiple-sms.patch
new file mode 100644
index 00000000000..b6613f6a3c4
--- /dev/null
+++ b/easybuild/easyconfigs/c/CUDA-Samples/cuda-samples-11.3_multiple-sms.patch
@@ -0,0 +1,31 @@
+# Fixes "nvcc fatal: Option '--ptx (-ptx)' is not allowed when compiling for multiple GPU architectures"
+# fatal compilation issue when building for multiple SM architectures
+# More info, see https://github.com/NVIDIA/cuda-samples/issues/289
+
+# Author: Caspar van Leeuwen
+
+diff -Nru cuda-samples-11.3.orig/Samples/memMapIPCDrv/Makefile cuda-samples-11.3/Samples/memMapIPCDrv/Makefile
+--- cuda-samples-11.3.orig/Samples/memMapIPCDrv/Makefile 2024-07-29 13:17:10.330743000 +0200
++++ cuda-samples-11.3/Samples/memMapIPCDrv/Makefile 2024-07-29 13:19:13.158507504 +0200
+@@ -321,6 +321,12 @@
+ ifneq ($(HIGHEST_SM),)
+ GENCODE_FLAGS += -gencode arch=compute_$(HIGHEST_SM),code=compute_$(HIGHEST_SM)
+ endif
++
++# Generate the explicit PTX file for the lowest SM architecture in $(SMS), so it works on all SMS listed there
++LOWEST_SM := $(firstword $(sort $(SMS)))
++ifneq ($(LOWEST_SM),)
++GENCODE_FLAGS_LOWEST_SM += -gencode arch=compute_$(LOWEST_SM),code=compute_$(LOWEST_SM)
++endif
+ endif
+
+ ifeq ($(TARGET_OS),darwin)
+@@ -401,7 +407,7 @@
+ endif
+
+ $(PTX_FILE): memMapIpc_kernel.cu
+- $(EXEC) $(NVCC) $(INCLUDES) $(ALL_CCFLAGS) $(GENCODE_FLAGS) -o $@ -ptx $<
++ $(EXEC) $(NVCC) $(INCLUDES) $(ALL_CCFLAGS) $(GENCODE_FLAGS_LOWEST_SM) -o $@ -ptx $<
+ $(EXEC) mkdir -p data
+ $(EXEC) cp -f $@ ./data
+ $(EXEC) mkdir -p ../../bin/$(TARGET_ARCH)/$(TARGET_OS)/$(BUILD_TYPE)
diff --git a/easybuild/easyconfigs/c/CUDA-Samples/cuda-samples-11.6_multiple-sms.patch b/easybuild/easyconfigs/c/CUDA-Samples/cuda-samples-11.6_multiple-sms.patch
new file mode 100644
index 00000000000..8c4e36f7e74
--- /dev/null
+++ b/easybuild/easyconfigs/c/CUDA-Samples/cuda-samples-11.6_multiple-sms.patch
@@ -0,0 +1,56 @@
+# Fixes "nvcc fatal: Option '--ptx (-ptx)' is not allowed when compiling for multiple GPU architectures"
+# fatal compilation issue when building for multiple SM architectures
+# More info, see https://github.com/NVIDIA/cuda-samples/issues/289
+
+# Author: Caspar van Leeuwen
+
+diff -Nru cuda-samples-12.2.orig/Samples/3_CUDA_Features/memMapIPCDrv/Makefile cuda-samples-12.2/Samples/3_CUDA_Features/memMapIPCDrv/Makefile
+--- cuda-samples-12.2.orig/Samples/3_CUDA_Features/memMapIPCDrv/Makefile 2024-07-29 12:14:28.538848000 +0200
++++ cuda-samples-12.2/Samples/3_CUDA_Features/memMapIPCDrv/Makefile 2024-07-29 13:02:45.134261829 +0200
+@@ -313,6 +313,12 @@
+ ifneq ($(HIGHEST_SM),)
+ GENCODE_FLAGS += -gencode arch=compute_$(HIGHEST_SM),code=compute_$(HIGHEST_SM)
+ endif
++
++# Generate the explicit PTX file for the lowest SM architecture in $(SMS), so it works on all SMS listed there
++LOWEST_SM := $(firstword $(sort $(SMS)))
++ifneq ($(LOWEST_SM),)
++GENCODE_FLAGS_LOWEST_SM += -gencode arch=compute_$(LOWEST_SM),code=compute_$(LOWEST_SM)
++endif
+ endif
+
+ ifeq ($(TARGET_OS),darwin)
+@@ -394,7 +400,7 @@
+ endif
+
+ $(PTX_FILE): memMapIpc_kernel.cu
+- $(EXEC) $(NVCC) $(INCLUDES) $(ALL_CCFLAGS) $(GENCODE_FLAGS) -o $@ -ptx $<
++ $(EXEC) $(NVCC) $(INCLUDES) $(ALL_CCFLAGS) $(GENCODE_FLAGS_LOWEST_SM) -o $@ -ptx $<
+ $(EXEC) mkdir -p data
+ $(EXEC) cp -f $@ ./data
+ $(EXEC) mkdir -p ../../../bin/$(TARGET_ARCH)/$(TARGET_OS)/$(BUILD_TYPE)
+diff -Nru cuda-samples-12.2.orig/Samples/3_CUDA_Features/ptxjit/Makefile cuda-samples-12.2/Samples/3_CUDA_Features/ptxjit/Makefile
+--- cuda-samples-12.2.orig/Samples/3_CUDA_Features/ptxjit/Makefile 2024-07-29 12:14:28.546771000 +0200
++++ cuda-samples-12.2/Samples/3_CUDA_Features/ptxjit/Makefile 2024-07-29 13:02:38.741961008 +0200
+@@ -307,6 +307,12 @@
+ ifneq ($(HIGHEST_SM),)
+ GENCODE_FLAGS += -gencode arch=compute_$(HIGHEST_SM),code=compute_$(HIGHEST_SM)
+ endif
++
++# Generate the explicit PTX file for the lowest SM architecture in $(SMS), so it works on all SMS listed there
++LOWEST_SM := $(firstword $(sort $(SMS)))
++ifneq ($(LOWEST_SM),)
++GENCODE_FLAGS_LOWEST_SM += -gencode arch=compute_$(LOWEST_SM),code=compute_$(LOWEST_SM)
++endif
+ endif
+
+ ifeq ($(TARGET_OS),darwin)
+@@ -390,7 +396,7 @@
+ endif
+
+ $(PTX_FILE): ptxjit_kernel.cu
+- $(EXEC) $(NVCC) $(INCLUDES) $(ALL_CCFLAGS) $(GENCODE_FLAGS) -o $@ -ptx $<
++ $(EXEC) $(NVCC) $(INCLUDES) $(ALL_CCFLAGS) $(GENCODE_FLAGS_LOWEST_SM) -o $@ -ptx $<
+ $(EXEC) mkdir -p data
+ $(EXEC) cp -f $@ ./data
+ $(EXEC) mkdir -p ../../../bin/$(TARGET_ARCH)/$(TARGET_OS)/$(BUILD_TYPE)
diff --git a/easybuild/easyconfigs/c/CUDA/CUDA-12.5.0.eb b/easybuild/easyconfigs/c/CUDA/CUDA-12.5.0.eb
new file mode 100644
index 00000000000..0a81b7bd4c1
--- /dev/null
+++ b/easybuild/easyconfigs/c/CUDA/CUDA-12.5.0.eb
@@ -0,0 +1,24 @@
+name = 'CUDA'
+version = '12.5.0'
+local_nv_version = '555.42.02'
+
+homepage = 'https://developer.nvidia.com/cuda-toolkit'
+description = """CUDA (formerly Compute Unified Device Architecture) is a parallel
+ computing platform and programming model created by NVIDIA and implemented by the
+ graphics processing units (GPUs) that they produce. CUDA gives developers access
+ to the virtual instruction set and memory of the parallel computational elements in CUDA GPUs."""
+
+toolchain = SYSTEM
+
+source_urls = ['https://developer.download.nvidia.com/compute/cuda/%(version)s/local_installers/']
+sources = ['cuda_%%(version)s_%s_linux%%(cudaarch)s.run' % local_nv_version]
+checksums = [{
+ 'cuda_%%(version)s_%s_linux.run' % local_nv_version:
+ '90fcc7df48226434065ff12a4372136b40b9a4cbf0c8602bb763b745f22b7a99',
+ 'cuda_%%(version)s_%s_linux_ppc64le.run' % local_nv_version:
+ '33f39ad7bc624d5c8e59938990358cec80b9966431e34d1ab2d6115d78a3f264',
+ 'cuda_%%(version)s_%s_linux_sbsa.run' % local_nv_version:
+ 'e7b864c9ae27cef77cafc78614ec33cbb0a27606af9375deffa09c4269a07f04'
+}]
+
+moduleclass = 'system'
diff --git a/easybuild/easyconfigs/c/CUDA/CUDA-12.6.0.eb b/easybuild/easyconfigs/c/CUDA/CUDA-12.6.0.eb
new file mode 100644
index 00000000000..24c7b5f5c90
--- /dev/null
+++ b/easybuild/easyconfigs/c/CUDA/CUDA-12.6.0.eb
@@ -0,0 +1,22 @@
+name = 'CUDA'
+version = '12.6.0'
+local_nv_version = '560.28.03'
+
+homepage = 'https://developer.nvidia.com/cuda-toolkit'
+description = """CUDA (formerly Compute Unified Device Architecture) is a parallel
+ computing platform and programming model created by NVIDIA and implemented by the
+ graphics processing units (GPUs) that they produce. CUDA gives developers access
+ to the virtual instruction set and memory of the parallel computational elements in CUDA GPUs."""
+
+toolchain = SYSTEM
+
+source_urls = ['https://developer.download.nvidia.com/compute/cuda/%(version)s/local_installers/']
+sources = ['cuda_%%(version)s_%s_linux%%(cudaarch)s.run' % local_nv_version]
+checksums = [{
+ 'cuda_%%(version)s_%s_linux.run' % local_nv_version:
+ '31ab04394e69b14dd8656e2b44c2877db1a0e898dff8a7546a4c628438101b94',
+ 'cuda_%%(version)s_%s_linux_sbsa.run' % local_nv_version:
+ '398db7baca17d51ad5035c606714c96380c965fd1742478c743bc6bbb1d8f63c'
+}]
+
+moduleclass = 'system'
diff --git a/easybuild/easyconfigs/c/CUDD/CUDD-3.0.0-GCC-13.2.0.eb b/easybuild/easyconfigs/c/CUDD/CUDD-3.0.0-GCC-13.2.0.eb
new file mode 100644
index 00000000000..c1f83cad099
--- /dev/null
+++ b/easybuild/easyconfigs/c/CUDD/CUDD-3.0.0-GCC-13.2.0.eb
@@ -0,0 +1,22 @@
+easyblock = 'ConfigureMake'
+
+name = 'CUDD'
+version = '3.0.0'
+
+homepage = 'https://github.com/ivmai/cudd'
+description = """The CUDD package is a package written in C for the manipulation of
+ decision diagrams. It supports binary decision diagrams (BDDs), algebraic decision
+ diagrams (ADDs), and Zero-Suppressed BDDs (ZDDs)."""
+
+toolchain = {'name': 'GCC', 'version': '13.2.0'}
+
+source_urls = ['https://github.com/ivmai/cudd/archive/refs/tags']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['5fe145041c594689e6e7cf4cd623d5f2b7c36261708be8c9a72aed72cf67acce']
+
+sanity_check_paths = {
+ 'files': ['include/cudd.h', 'lib/libcudd.a'],
+ 'dirs': [],
+}
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/c/CUTLASS/CUTLASS-3.4.0-foss-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/c/CUTLASS/CUTLASS-3.4.0-foss-2023a-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..3322e6b4b56
--- /dev/null
+++ b/easybuild/easyconfigs/c/CUTLASS/CUTLASS-3.4.0-foss-2023a-CUDA-12.1.1.eb
@@ -0,0 +1,49 @@
+easyblock = 'CMakeMake'
+
+name = 'CUTLASS'
+version = '3.4.0'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://github.com/NVIDIA/cutlass'
+description = """CUTLASS is a collection of CUDA C++ template
+abstractions for implementing high-performance matrix-matrix
+multiplication (GEMM) and related computations at all levels and scales
+within CUDA. It incorporates strategies for hierarchical decomposition
+and data movement similar to those used to implement cuBLAS and cuDNN.
+CUTLASS decomposes these "moving parts" into reusable, modular software
+components abstracted by C++ template classes. Primitives for different
+levels of a conceptual parallelization hierarchy can be specialized and
+tuned via custom tiling sizes, data types, and other algorithmic policy.
+The resulting flexibility simplifies their use as building blocks within
+custom kernels and applications."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+github_account = 'NVIDIA'
+source_urls = [GITHUB_LOWER_SOURCE]
+sources = ['v%(version)s.tar.gz']
+checksums = ['49f4b854acc2a520126ceefe4f701cfe8c2b039045873e311b1f10a8ca5d5de1']
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+ ('Python', '3.11.3'),
+]
+
+dependencies = [
+ ('CUDA', '12.1.1', '', SYSTEM),
+ ('cuDNN', '8.9.2.26', versionsuffix, SYSTEM),
+]
+
+_copts = [
+ '-DCUTLASS_NVCC_ARCHS="%(cuda_cc_cmake)s"',
+ '-DCUTLASS_ENABLE_CUBLAS=1',
+ '-DCUTLASS_ENABLE_CUDNN=1',
+]
+configopts = ' '.join(_copts)
+
+sanity_check_paths = {
+ 'files': ['include/cutlass/cutlass.h', 'lib/libcutlass.%s' % SHLIB_EXT],
+ 'dirs': ['lib/cmake'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/c/CUnit/CUnit-2.1-3-GCCcore-12.3.0.eb b/easybuild/easyconfigs/c/CUnit/CUnit-2.1-3-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..827f7ea4e80
--- /dev/null
+++ b/easybuild/easyconfigs/c/CUnit/CUnit-2.1-3-GCCcore-12.3.0.eb
@@ -0,0 +1,27 @@
+easyblock = 'ConfigureMake'
+
+name = 'CUnit'
+version = '2.1-3'
+
+homepage = 'https://sourceforge.net/projects/cunit/'
+description = "Automated testing framework for C."
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = [SOURCEFORGE_SOURCE]
+sources = [SOURCE_TAR_BZ2]
+checksums = ['f5b29137f845bb08b77ec60584fdb728b4e58f1023e6f249a464efa49a40f214']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('Autotools', '20220317'),
+]
+
+preconfigopts = "autoreconf -i && "
+
+sanity_check_paths = {
+ 'files': ['lib/libcunit.a', 'lib/libcunit.%s' % SHLIB_EXT],
+ 'dirs': ['include/CUnit', 'lib/pkgconfig', 'share'],
+}
+
+moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/c/CVX/CVX-2.2-MATLAB-2023a.eb b/easybuild/easyconfigs/c/CVX/CVX-2.2-MATLAB-2023a.eb
new file mode 100644
index 00000000000..b3c3ec1b113
--- /dev/null
+++ b/easybuild/easyconfigs/c/CVX/CVX-2.2-MATLAB-2023a.eb
@@ -0,0 +1,36 @@
+easyblock = 'Tarball'
+
+name = 'CVX'
+version = '2.2'
+_matlab_ver = '2023a'
+versionsuffix = '-MATLAB-%s' % _matlab_ver
+
+homepage = 'https://cvxr.com/cvx/'
+description = """CVX is a Matlab-based modeling system for convex optimization.
+ CVX turns Matlab into a modeling language, allowing constraints and objectives
+ to be specified using standard Matlab expression syntax.
+"""
+
+toolchain = SYSTEM
+
+source_urls = ['https://web.cvxr.com/cvx/']
+sources = ['%(namelower)s-a64.tar.gz']
+checksums = ['16e4622c80f2bf63152aaee59db4fe42afa4d2282179e5d216358953c7f9ea4d']
+
+dependencies = [
+ ('MATLAB', _matlab_ver),
+]
+
+sanity_check_paths = {
+ 'files': [],
+ 'dirs': ['lib', 'commands', 'sedumi', 'sdpt3'],
+}
+
+modloadmsg = "IMPORTANT: You need to run `cvx_setup` once inside MATLAB before using CVX."
+
+modextrapaths = {
+ 'MATLABPATH': ['', 'functions/vec_', 'structures', 'lib', 'functions',
+ 'commands', 'builtins'],
+}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/c/CVXOPT/CVXOPT-1.3.1-foss-2022a.eb b/easybuild/easyconfigs/c/CVXOPT/CVXOPT-1.3.1-foss-2022a.eb
index 9bac0454227..2c32ff36414 100644
--- a/easybuild/easyconfigs/c/CVXOPT/CVXOPT-1.3.1-foss-2022a.eb
+++ b/easybuild/easyconfigs/c/CVXOPT/CVXOPT-1.3.1-foss-2022a.eb
@@ -32,8 +32,15 @@ use_pip = True
sanity_pip_check = True
download_dep_fail = True
-preinstallopts = 'CVXOPT_BUILD_FFTW=1 CVXOPT_BUILD_GSL=1 CVXOPT_BLAS_EXTRA_LINK_ARGS="$LIBLAPACK" '
-preinstallopts += 'CVXOPT_FFTW_EXTRA_LINK_ARGS="$LIBFFT" CVXOPT_SUITESPARSE_SRC_DIR=$EBROOTSUITESPARSE'
+preinstallopts = " ".join([
+ 'CVXOPT_BUILD_FFTW=1',
+ 'CVXOPT_BUILD_GSL=1',
+ 'CVXOPT_BLAS_EXTRA_LINK_ARGS="$LIBBLAS"',
+ 'CVXOPT_LAPACK_EXTRA_LINK_ARGS="$LIBLAPACK"',
+ 'CVXOPT_FFTW_EXTRA_LINK_ARGS="$LIBFFT"',
+ 'CVXOPT_SUITESPARSE_LIB_DIR=$EBROOTSUITESPARSE/lib',
+ 'CVXOPT_SUITESPARSE_INC_DIR=$EBROOTSUITESPARSE/include',
+])
installopts = ' --no-binary cvxopt'
diff --git a/easybuild/easyconfigs/c/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/Catch2/Catch2-2.13.10-GCCcore-13.3.0.eb b/easybuild/easyconfigs/c/Catch2/Catch2-2.13.10-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..00abfac39c8
--- /dev/null
+++ b/easybuild/easyconfigs/c/Catch2/Catch2-2.13.10-GCCcore-13.3.0.eb
@@ -0,0 +1,30 @@
+easyblock = 'CMakeMake'
+
+name = 'Catch2'
+version = '2.13.10'
+
+homepage = 'https://github.com/catchorg/Catch2'
+description = """A modern, C++-native, header-only,
+ test framework for unit-tests, TDD and BDD
+ - using C++11, C++14, C++17 and later
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://github.com/catchorg/Catch2/archive/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['d54a712b7b1d7708bc7a819a8e6e47b2fde9536f487b89ccbca295072a7d9943']
+
+builddependencies = [
+ ('binutils', '2.42'), # to make CMake compiler health check pass on old systems
+ ('CMake', '3.29.3'),
+]
+
+separate_build_dir = True
+
+sanity_check_paths = {
+ 'files': ['include/catch2/catch.hpp'],
+ 'dirs': ['lib/cmake'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/c/CellBender/CellBender-0.3.0-foss-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/c/CellBender/CellBender-0.3.0-foss-2023a-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..94c6fc2c609
--- /dev/null
+++ b/easybuild/easyconfigs/c/CellBender/CellBender-0.3.0-foss-2023a-CUDA-12.1.1.eb
@@ -0,0 +1,72 @@
+easyblock = 'PythonBundle'
+
+name = 'CellBender'
+version = '0.3.0'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'http://github.com/broadinstitute/CellBender'
+description = """
+CellBender is a software package for eliminating technical artifacts from
+high-throughput single-cell RNA sequencing (scRNA-seq) data.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('CUDA', '12.1.1', '', SYSTEM),
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('matplotlib', '3.7.2'),
+ ('PyTorch', '2.1.2', versionsuffix),
+ ('IPython', '8.14.0'),
+ ('anndata', '0.10.5.post1'),
+ ('jupyter-contrib-nbextensions', '0.7.0'),
+ ('pyro-ppl', '1.9.0', versionsuffix),
+ ('loompy', '3.0.7'),
+ ('PyTables', '3.8.0'),
+ ('Qtconsole', '5.5.1'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('async-timeout', '4.0.3', {
+ 'checksums': ['4640d96be84d82d02ed59ea2b7105a0f7b33abe8703703cd0ab0bf87c427522f'],
+ }),
+ ('traitlets', '5.14.1', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['2e5a030e6eff91737c643231bfcf04a65b0132078dad75e4936700b213652e74'],
+ }),
+ ('jupyter_console', '6.6.3', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['309d33409fcc92ffdad25f0bcdf9a4a9daa61b6f341177570fdac03de5352485'],
+ }),
+ ('jupyter', '1.0.0', {
+ 'checksums': ['d9dc4b3318f310e34c82951ea5d6683f67bed7def4b259fafbfe4f1beb1d8e5f'],
+ }),
+ ('notebook', '6.5.7', {
+ 'checksums': ['04eb9011dfac634fbd4442adaf0a8c27cd26beef831fe1d19faf930c327768e4'],
+ }),
+ ('mistune', '0.8.4', {
+ 'checksums': ['59a3429db53c50b5c6bcc8a07f8848cb00d7dc8bdb431a4ab41920d201d4756e'],
+ }),
+ ('nbconvert', '6.5.4', {
+ 'checksums': ['9e3c7c6d491374cbdd5f35d268c05809357716d346f4573186bbeab32ee50bc1'],
+ }),
+ ('cellbender', version, {
+ 'checksums': ['94a46fb2b5921414ea86213cfdebca267b9ba6ba02df854cbd353980ab3aff42'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/cellbender'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = [
+ "cellbender --help",
+]
+
+sanity_pip_check = True
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/CellBender/CellBender-0.3.0-foss-2023a.eb b/easybuild/easyconfigs/c/CellBender/CellBender-0.3.0-foss-2023a.eb
new file mode 100644
index 00000000000..5fb9920fb70
--- /dev/null
+++ b/easybuild/easyconfigs/c/CellBender/CellBender-0.3.0-foss-2023a.eb
@@ -0,0 +1,70 @@
+easyblock = 'PythonBundle'
+
+name = 'CellBender'
+version = '0.3.0'
+
+homepage = 'http://github.com/broadinstitute/CellBender'
+description = """
+CellBender is a software package for eliminating technical artifacts from
+high-throughput single-cell RNA sequencing (scRNA-seq) data.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('matplotlib', '3.7.2'),
+ ('PyTorch', '2.1.2'),
+ ('IPython', '8.14.0'),
+ ('anndata', '0.10.5.post1'),
+ ('jupyter-contrib-nbextensions', '0.7.0'),
+ ('pyro-ppl', '1.9.0'),
+ ('loompy', '3.0.7'),
+ ('PyTables', '3.8.0'),
+ ('Qtconsole', '5.5.1'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('async-timeout', '4.0.3', {
+ 'checksums': ['4640d96be84d82d02ed59ea2b7105a0f7b33abe8703703cd0ab0bf87c427522f'],
+ }),
+ ('traitlets', '5.14.1', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['2e5a030e6eff91737c643231bfcf04a65b0132078dad75e4936700b213652e74'],
+ }),
+ ('jupyter_console', '6.6.3', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['309d33409fcc92ffdad25f0bcdf9a4a9daa61b6f341177570fdac03de5352485'],
+ }),
+ ('jupyter', '1.0.0', {
+ 'checksums': ['d9dc4b3318f310e34c82951ea5d6683f67bed7def4b259fafbfe4f1beb1d8e5f'],
+ }),
+ ('notebook', '6.5.7', {
+ 'checksums': ['04eb9011dfac634fbd4442adaf0a8c27cd26beef831fe1d19faf930c327768e4'],
+ }),
+ ('mistune', '0.8.4', {
+ 'checksums': ['59a3429db53c50b5c6bcc8a07f8848cb00d7dc8bdb431a4ab41920d201d4756e'],
+ }),
+ ('nbconvert', '6.5.4', {
+ 'checksums': ['9e3c7c6d491374cbdd5f35d268c05809357716d346f4573186bbeab32ee50bc1'],
+ }),
+ ('cellbender', version, {
+ 'checksums': ['94a46fb2b5921414ea86213cfdebca267b9ba6ba02df854cbd353980ab3aff42'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/cellbender'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = [
+ "cellbender --help",
+]
+
+sanity_pip_check = True
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/CellBender/CellBender-0.3.1-foss-2022a-CUDA-11.7.0.eb b/easybuild/easyconfigs/c/CellBender/CellBender-0.3.1-foss-2022a-CUDA-11.7.0.eb
deleted file mode 100644
index 88f92ec75ab..00000000000
--- a/easybuild/easyconfigs/c/CellBender/CellBender-0.3.1-foss-2022a-CUDA-11.7.0.eb
+++ /dev/null
@@ -1,85 +0,0 @@
-easyblock = 'PythonBundle'
-
-name = 'CellBender'
-local_commit = 'e2fb597'
-version = '0.3.1'
-versionsuffix = '-CUDA-%(cudaver)s'
-
-homepage = 'http://github.com/broadinstitute/CellBender'
-description = """
-CellBender is a software package for eliminating technical artifacts from
-high-throughput single-cell RNA sequencing (scRNA-seq) data.
-"""
-
-toolchain = {'name': 'foss', 'version': '2022a'}
-
-dependencies = [
- ('CUDA', '11.7.0', '', SYSTEM),
- ('Python', '3.10.4'),
- ('SciPy-bundle', '2022.05'),
- ('matplotlib', '3.5.2'),
- ('PyTorch', '1.12.0', versionsuffix),
- ('IPython', '8.5.0'),
- ('anndata', '0.8.0'),
- ('jupyter-contrib-nbextensions', '0.7.0'),
- ('pyro-ppl', '1.8.4', versionsuffix),
- ('loompy', '3.0.7'),
- ('PyTables', '3.8.0'),
- ('Qtconsole', '5.4.0'),
-]
-
-use_pip = True
-
-local_comm_preinstallopts = """sed -i -e 's/^requires.*hatchling.*/requires = ["setuptools"]/g' """
-local_comm_preinstallopts += """-e 's/^build-backend.*/build-backend = "setuptools.build_meta"/g' """
-local_comm_preinstallopts += """-e 's/^dynamic = .*version.*/version = "%(version)s"/g' pyproject.toml && """
-
-exts_list = [
- ('setuptools', '69.0.3', {
- 'checksums': ['be1af57fc409f93647f2e8e4573a142ed38724b8cdd389706a867bb4efcf1e78'],
- }),
- ('comm', '0.2.1', {
- 'checksums': ['0bc91edae1344d39d3661dcbc36937181fdaddb304790458f8b044dbc064b89a'],
- 'preinstallopts': local_comm_preinstallopts,
- }),
- # jupyter-console 6.6.3 requires ipykernel>=6.14
- ('ipykernel', '6.20.2', {
- 'source_tmpl': SOURCE_PY3_WHL,
- 'checksums': ['5d0675d5f48bf6a95fd517d7b70bcb3b2c5631b2069949b5c2d6e1d7477fb5a0'],
- }),
- # jupyter-console 6.6.3 requires jupyter-core!=5.0.*,>=4.12
- ('jupyter_core', '4.12.0', {
- 'source_tmpl': SOURCE_PY3_WHL,
- 'checksums': ['a54672c539333258495579f6964144924e0aa7b07f7069947bef76d7ea5cb4c1'],
- }),
- # jupyter-console 6.6.3 requires traitlets>=5.4
- ('traitlets', '5.14.1', {
- 'source_tmpl': SOURCE_PY3_WHL,
- 'checksums': ['2e5a030e6eff91737c643231bfcf04a65b0132078dad75e4936700b213652e74'],
- }),
- ('jupyter_console', '6.6.3', {
- 'source_tmpl': SOURCE_PY3_WHL,
- 'checksums': ['309d33409fcc92ffdad25f0bcdf9a4a9daa61b6f341177570fdac03de5352485'],
- }),
- ('jupyter', '1.0.0', {
- 'checksums': ['d9dc4b3318f310e34c82951ea5d6683f67bed7def4b259fafbfe4f1beb1d8e5f'],
- }),
- ('cellbender', version, {
- 'source_urls': ['https://github.com/broadinstitute/CellBender/archive'],
- 'sources': [{'download_filename': '%s.tar.gz' % local_commit, 'filename': '%(name)s-%(version)s.tar.gz'}],
- 'checksums': ['7eb67837d28495adb82147e80a2ab58eeb406c5d91aa69dd0cc120d9cb3d6396'],
- }),
-]
-
-sanity_check_paths = {
- 'files': ['bin/cellbender'],
- 'dirs': ['lib/python%(pyshortver)s/site-packages'],
-}
-
-sanity_check_commands = [
- "cellbender --help",
-]
-
-sanity_pip_check = True
-
-moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/CellBender/CellBender-0.3.1-foss-2022a.eb b/easybuild/easyconfigs/c/CellBender/CellBender-0.3.1-foss-2022a.eb
deleted file mode 100644
index 798e18442ab..00000000000
--- a/easybuild/easyconfigs/c/CellBender/CellBender-0.3.1-foss-2022a.eb
+++ /dev/null
@@ -1,83 +0,0 @@
-easyblock = 'PythonBundle'
-
-name = 'CellBender'
-local_commit = 'e2fb597'
-version = '0.3.1'
-
-homepage = 'http://github.com/broadinstitute/CellBender'
-description = """
-CellBender is a software package for eliminating technical artifacts from
-high-throughput single-cell RNA sequencing (scRNA-seq) data.
-"""
-
-toolchain = {'name': 'foss', 'version': '2022a'}
-
-dependencies = [
- ('Python', '3.10.4'),
- ('SciPy-bundle', '2022.05'),
- ('matplotlib', '3.5.2'),
- ('PyTorch', '1.12.0'),
- ('IPython', '8.5.0'),
- ('anndata', '0.8.0'),
- ('jupyter-contrib-nbextensions', '0.7.0'),
- ('pyro-ppl', '1.8.4'),
- ('loompy', '3.0.7'),
- ('PyTables', '3.8.0'),
- ('Qtconsole', '5.4.0'),
-]
-
-use_pip = True
-
-local_comm_preinstallopts = """sed -i -e 's/^requires.*hatchling.*/requires = ["setuptools"]/g' """
-local_comm_preinstallopts += """-e 's/^build-backend.*/build-backend = "setuptools.build_meta"/g' """
-local_comm_preinstallopts += """-e 's/^dynamic = .*version.*/version = "%(version)s"/g' pyproject.toml && """
-
-exts_list = [
- ('setuptools', '69.0.3', {
- 'checksums': ['be1af57fc409f93647f2e8e4573a142ed38724b8cdd389706a867bb4efcf1e78'],
- }),
- ('comm', '0.2.1', {
- 'checksums': ['0bc91edae1344d39d3661dcbc36937181fdaddb304790458f8b044dbc064b89a'],
- 'preinstallopts': local_comm_preinstallopts,
- }),
- # jupyter-console 6.6.3 requires ipykernel>=6.14
- ('ipykernel', '6.20.2', {
- 'source_tmpl': SOURCE_PY3_WHL,
- 'checksums': ['5d0675d5f48bf6a95fd517d7b70bcb3b2c5631b2069949b5c2d6e1d7477fb5a0'],
- }),
- # jupyter-console 6.6.3 requires jupyter-core!=5.0.*,>=4.12
- ('jupyter_core', '4.12.0', {
- 'source_tmpl': SOURCE_PY3_WHL,
- 'checksums': ['a54672c539333258495579f6964144924e0aa7b07f7069947bef76d7ea5cb4c1'],
- }),
- # jupyter-console 6.6.3 requires traitlets>=5.4
- ('traitlets', '5.14.1', {
- 'source_tmpl': SOURCE_PY3_WHL,
- 'checksums': ['2e5a030e6eff91737c643231bfcf04a65b0132078dad75e4936700b213652e74'],
- }),
- ('jupyter_console', '6.6.3', {
- 'source_tmpl': SOURCE_PY3_WHL,
- 'checksums': ['309d33409fcc92ffdad25f0bcdf9a4a9daa61b6f341177570fdac03de5352485'],
- }),
- ('jupyter', '1.0.0', {
- 'checksums': ['d9dc4b3318f310e34c82951ea5d6683f67bed7def4b259fafbfe4f1beb1d8e5f'],
- }),
- ('cellbender', version, {
- 'source_urls': ['https://github.com/broadinstitute/CellBender/archive'],
- 'sources': [{'download_filename': '%s.tar.gz' % local_commit, 'filename': '%(name)s-%(version)s.tar.gz'}],
- 'checksums': ['7eb67837d28495adb82147e80a2ab58eeb406c5d91aa69dd0cc120d9cb3d6396'],
- }),
-]
-
-sanity_check_paths = {
- 'files': ['bin/cellbender'],
- 'dirs': ['lib/python%(pyshortver)s/site-packages'],
-}
-
-sanity_check_commands = [
- "cellbender --help",
-]
-
-sanity_pip_check = True
-
-moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/CellOracle/CellOracle-0.18.0-foss-2023a.eb b/easybuild/easyconfigs/c/CellOracle/CellOracle-0.18.0-foss-2023a.eb
new file mode 100644
index 00000000000..d6eb8f4cead
--- /dev/null
+++ b/easybuild/easyconfigs/c/CellOracle/CellOracle-0.18.0-foss-2023a.eb
@@ -0,0 +1,66 @@
+easyblock = 'PythonBundle'
+
+name = 'CellOracle'
+version = '0.18.0'
+
+homepage = 'https://github.com/morris-lab/CellOracle'
+description = """CellOracle is a Python library for in silico gene perturbation analyses using single-cell omics data
+and Gene Regulatory Network models."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('R', '4.3.2'),
+ ('SciPy-bundle', '2023.07'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('numba', '0.58.1'),
+ ('matplotlib', '3.7.2'),
+ ('Seaborn', '0.13.2'),
+ ('scikit-learn', '1.3.1'),
+ ('h5py', '3.9.0'),
+ ('velocyto', '0.17.17'),
+ ('umap-learn', '0.5.5'),
+ ('Arrow', '14.0.1'),
+ ('tqdm', '4.66.1'),
+ ('python-igraph', '0.11.4'),
+ ('IPython', '8.14.0'),
+ ('scanpy', '1.9.8'),
+ ('GOATOOLS', '1.4.5'),
+ ('genomepy', '0.16.1'),
+ ('GimmeMotifs', '0.17.2'),
+ ('anndata', '0.10.5.post1'),
+ ('python-louvain', '0.16'),
+ ('jupyter-contrib-nbextensions', '0.7.0'),
+ ('Qtconsole', '5.5.1'),
+]
+
+use_pip = True
+
+# remove louvain from requirements, since CellOracle doesn't actually use it at all
+local_preinstallopts = "sed -i '/louvain/d' requirements.txt && "
+# drop strict version requirement for matplotlib dependency
+local_preinstallopts += "sed -i 's/matplotlib.*/matplotlib/g' requirements.txt && "
+# drop strict version requirement for pandas dependency
+local_preinstallopts += "sed -i 's/pandas.*/pandas/g' requirements.txt && "
+
+
+exts_list = [
+ ('jupyter_console', '6.6.3', {
+ 'source_tmpl': '%(name)s-%(version)s-py3-none-any.whl',
+ 'checksums': ['309d33409fcc92ffdad25f0bcdf9a4a9daa61b6f341177570fdac03de5352485'],
+ }),
+ ('jupyter', '1.0.0', {
+ 'checksums': ['d9dc4b3318f310e34c82951ea5d6683f67bed7def4b259fafbfe4f1beb1d8e5f'],
+ }),
+ ('celloracle', version, {
+ 'preinstallopts': local_preinstallopts,
+ 'checksums': ['a73bbdae36289748051e073409d853489a233bda90f50ab5031131b92dda2133'],
+ }),
+]
+
+sanity_check_commands = ["python -c 'import celloracle; celloracle.check_python_requirements()'"]
+
+sanity_pip_check = True
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/CellRanger-ARC/CellRanger-ARC-2.0.2.eb b/easybuild/easyconfigs/c/CellRanger-ARC/CellRanger-ARC-2.0.2.eb
new file mode 100644
index 00000000000..fc7d6955925
--- /dev/null
+++ b/easybuild/easyconfigs/c/CellRanger-ARC/CellRanger-ARC-2.0.2.eb
@@ -0,0 +1,37 @@
+# The STAR binary included in this version has been vectorized with AVX
+# hence it is not recommended for systems that do not support it.
+
+easyblock = 'Tarball'
+
+name = 'CellRanger-ARC'
+version = '2.0.2'
+
+homepage = 'https://support.10xgenomics.com/single-cell-multiome-atac-gex/software/pipelines/latest/'
+homepage += 'what-is-cell-ranger-arc'
+description = """Cell Ranger ARC is a set of analysis pipelines that process
+ Chromium Single Cell Multiome ATAC + Gene Expression sequencing data to generate a
+ variety of analyses pertaining to gene expression, chromatin accessibility and
+ their linkage. Furthermore, since the ATAC and gene expression measurements are on
+ the very same cell, we are able to perform analyses that link chromatin
+ accessibility and gene expression."""
+
+toolchain = SYSTEM
+
+download_instructions = """
+Download manually from:
+https://www.10xgenomics.com/support/software/cell-ranger-arc/downloads
+"""
+
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['02a02457938dcf8dcb418b6c65effac06b210282d167437bfa8b2f10023dacae']
+
+keepsymlinks = True
+
+sanity_check_paths = {
+ 'files': ["bin/cellranger-arc"],
+ 'dirs': ["bin/rna", "bin/tenkit"],
+}
+
+sanity_check_commands = ['cellranger-arc -h']
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/CellRanger/CellRanger-8.0.1.eb b/easybuild/easyconfigs/c/CellRanger/CellRanger-8.0.1.eb
new file mode 100644
index 00000000000..baa6b095438
--- /dev/null
+++ b/easybuild/easyconfigs/c/CellRanger/CellRanger-8.0.1.eb
@@ -0,0 +1,31 @@
+# The STAR binary included in this version has been vectorized with AVX
+# hence it is not recommended for systems that do not support it.
+
+easyblock = 'Tarball'
+
+name = 'CellRanger'
+version = '8.0.1'
+
+homepage = 'https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/what-is-cell-ranger'
+description = """Cell Ranger is a set of analysis pipelines that process Chromium
+ single-cell RNA-seq output to align reads, generate gene-cell matrices and perform
+ clustering and gene expression analysis."""
+
+toolchain = SYSTEM
+
+download_instructions = """
+Download manually from https://support.10xgenomics.com/single-cell-gene-expression/software/downloads/latest
+"""
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['ea2a35ac0f03961bab2ea485565d60cc6709a981c833a5e6c2b13a8fef641e81']
+
+keepsymlinks = True
+
+sanity_check_paths = {
+ 'files': ['bin/cellranger'],
+ 'dirs': ['bin/rna', 'bin/tenkit'],
+}
+
+sanity_check_commands = ['cellranger testrun --id=tiny']
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/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/Cellpose/Cellpose-2.2.2-foss-2022a-CUDA-11.7.0.eb b/easybuild/easyconfigs/c/Cellpose/Cellpose-2.2.2-foss-2022a-CUDA-11.7.0.eb
index d0f93dfe418..feace92583f 100644
--- a/easybuild/easyconfigs/c/Cellpose/Cellpose-2.2.2-foss-2022a-CUDA-11.7.0.eb
+++ b/easybuild/easyconfigs/c/Cellpose/Cellpose-2.2.2-foss-2022a-CUDA-11.7.0.eb
@@ -27,10 +27,17 @@ dependencies = [
('tqdm', '4.64.0'),
('imagecodecs', '2022.9.26'),
('scikit-build', '0.15.0'),
+ ('QtPy', '2.3.0'),
]
use_pip = True
+# avoid hatchling requirement to install
+# (since installing it introduces conflicting version requirements with poetry included with Python)
+_preinstallopts_no_hatchling = """sed -i -e 's/^build-backend = .*/build-backend = "setuptools.build_meta"/g' """
+_preinstallopts_no_hatchling += """-e 's/^requires = .*/requires = ["setuptools"]/g' """
+_preinstallopts_no_hatchling += r"""-e 's/dynamic = \["version"\]/version = "%(version)s"/g' pyproject.toml && """
+
exts_list = [
('tifffile', '2023.4.12', {
'checksums': ['2fa99f9890caab919d932a0acaa9d0f5843dc2ef3594e212963932e20713badd'],
@@ -47,6 +54,10 @@ exts_list = [
('roifile', '2023.5.12', {
'checksums': ['32eeba0d9ad52cc249d6a234b737c1808a6c5d7d9baae6453709eb74222b3433'],
}),
+ ('superqt', '0.6.6', {
+ 'preinstallopts': _preinstallopts_no_hatchling,
+ 'checksums': ['792e09165c8a788ee245bdb784e018f9077fb309253354d86793cdf1d092f99f'],
+ }),
(name, version, {
# OpenCV dependency provides opencv-contrib-python (equivalent to opencv-python-headless)
'preinstallopts': "sed -i 's/opencv-python-headless/opencv-contrib-python/g' setup.py && ",
diff --git a/easybuild/easyconfigs/c/Cellpose/Cellpose-2.2.2-foss-2022a.eb b/easybuild/easyconfigs/c/Cellpose/Cellpose-2.2.2-foss-2022a.eb
index ccb478c890b..90f73c6aef8 100644
--- a/easybuild/easyconfigs/c/Cellpose/Cellpose-2.2.2-foss-2022a.eb
+++ b/easybuild/easyconfigs/c/Cellpose/Cellpose-2.2.2-foss-2022a.eb
@@ -25,10 +25,17 @@ dependencies = [
('tqdm', '4.64.0'),
('imagecodecs', '2022.9.26'),
('scikit-build', '0.15.0'),
+ ('QtPy', '2.3.0'),
]
use_pip = True
+# avoid hatchling requirement to install
+# (since installing it introduces conflicting version requirements with poetry included with Python)
+_preinstallopts_no_hatchling = """sed -i -e 's/^build-backend = .*/build-backend = "setuptools.build_meta"/g' """
+_preinstallopts_no_hatchling += """-e 's/^requires = .*/requires = ["setuptools"]/g' """
+_preinstallopts_no_hatchling += r"""-e 's/dynamic = \["version"\]/version = "%(version)s"/g' pyproject.toml && """
+
exts_list = [
('tifffile', '2023.4.12', {
'checksums': ['2fa99f9890caab919d932a0acaa9d0f5843dc2ef3594e212963932e20713badd'],
@@ -45,6 +52,10 @@ exts_list = [
('roifile', '2023.5.12', {
'checksums': ['32eeba0d9ad52cc249d6a234b737c1808a6c5d7d9baae6453709eb74222b3433'],
}),
+ ('superqt', '0.6.6', {
+ 'preinstallopts': _preinstallopts_no_hatchling,
+ 'checksums': ['792e09165c8a788ee245bdb784e018f9077fb309253354d86793cdf1d092f99f'],
+ }),
(name, version, {
# OpenCV dependency provides opencv-contrib-python (equivalent to opencv-python-headless)
'preinstallopts': "sed -i 's/opencv-python-headless/opencv-contrib-python/g' setup.py && ",
diff --git a/easybuild/easyconfigs/c/Ceres-Solver/Ceres-Solver-2.2.0-foss-2022b.eb b/easybuild/easyconfigs/c/Ceres-Solver/Ceres-Solver-2.2.0-foss-2022b.eb
new file mode 100644
index 00000000000..e0adc9dd257
--- /dev/null
+++ b/easybuild/easyconfigs/c/Ceres-Solver/Ceres-Solver-2.2.0-foss-2022b.eb
@@ -0,0 +1,32 @@
+easyblock = 'CMakeMake'
+
+name = 'Ceres-Solver'
+version = '2.2.0'
+
+homepage = 'http://ceres-solver.org'
+description = """Ceres Solver is an open source C++ library for modeling and solving large, complicated optimization
+problems"""
+
+source_urls = ['http://ceres-solver.org/']
+sources = ['ceres-solver-%(version)s.tar.gz']
+checksums = ['48b2302a7986ece172898477c3bcd6deb8fb5cf19b3327bc49969aad4cede82d']
+
+toolchain = {'name': 'foss', 'version': '2022b'}
+
+builddependencies = [
+ ('CMake', '3.24.3'),
+ ('Eigen', '3.4.0'),
+]
+
+dependencies = [
+ ('glog', '0.6.0'),
+ ('gflags', '2.2.2'),
+ ('SuiteSparse', '5.13.0', '-METIS-5.1.0'),
+]
+
+sanity_check_paths = {
+ 'files': ['lib/libceres.a'],
+ 'dirs': ['include/ceres', 'lib/cmake/Ceres'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/c/CharLS/CharLS-2.4.2-GCCcore-12.3.0.eb b/easybuild/easyconfigs/c/CharLS/CharLS-2.4.2-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..9d814bdfc23
--- /dev/null
+++ b/easybuild/easyconfigs/c/CharLS/CharLS-2.4.2-GCCcore-12.3.0.eb
@@ -0,0 +1,30 @@
+easyblock = 'CMakeMake'
+
+name = 'CharLS'
+version = '2.4.2'
+
+homepage = 'https://github.com/team-charls/charls'
+description = """CharLS is a C++ implementation of the JPEG-LS standard for lossless and near-lossless image
+compression and decompression. JPEG-LS is a low-complexity image compression standard that matches JPEG 2000
+compression ratios."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/team-charls/charls/archive/']
+sources = ['%(version)s.tar.gz']
+checksums = ['d1c2c35664976f1e43fec7764d72755e6a50a80f38eca70fcc7553cad4fe19d9']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('CMake', '3.26.3')
+]
+
+configopts = '-DBUILD_SHARED_LIBS=ON '
+
+sanity_check_paths = {
+ 'files': ['lib/libcharls.%s' % SHLIB_EXT],
+ 'dirs': ['include'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/c/CheMPS2/CheMPS2-1.8.12-foss-2023a.eb b/easybuild/easyconfigs/c/CheMPS2/CheMPS2-1.8.12-foss-2023a.eb
new file mode 100644
index 00000000000..fb8dea8412b
--- /dev/null
+++ b/easybuild/easyconfigs/c/CheMPS2/CheMPS2-1.8.12-foss-2023a.eb
@@ -0,0 +1,32 @@
+easyblock = 'CMakeMake'
+
+name = 'CheMPS2'
+version = '1.8.12'
+
+homepage = 'https://github.com/SebWouters/CheMPS2'
+description = """CheMPS2 is a scientific library which contains a spin-adapted implementation of the
+density matrix renormalization group (DMRG) for ab initio quantum chemistry."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+source_urls = ['https://github.com/SebWouters/CheMPS2/archive/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['eef1b92d74ac07fde58c043f64e8cac02b5400c209c44dcbb51641f86e0c7c83']
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+]
+
+dependencies = [
+ ('HDF5', '1.14.0')
+]
+
+pretestopts = 'export OMP_NUM_THREADS=1 && '
+runtest = 'test'
+
+sanity_check_paths = {
+ 'files': ['bin/chemps2', 'lib64/libchemps2.%s' % SHLIB_EXT, 'lib64/libchemps2.a'],
+ 'dirs': ['include/chemps2']
+}
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/c/Check/Check-0.15.2-GCCcore-13.3.0.eb b/easybuild/easyconfigs/c/Check/Check-0.15.2-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..1e0764bfb44
--- /dev/null
+++ b/easybuild/easyconfigs/c/Check/Check-0.15.2-GCCcore-13.3.0.eb
@@ -0,0 +1,37 @@
+easyblock = 'ConfigureMake'
+
+name = 'Check'
+version = '0.15.2'
+
+homepage = 'https://libcheck.github.io/check/'
+description = """
+Check is a unit testing framework for C. It features a simple interface for
+defining unit tests, putting little in the way of the developer. Tests are
+run in a separate address space, so both assertion failures and code errors
+that cause segmentation faults or other signals can be caught. Test results
+are reportable in the following: Subunit, TAP, XML, and a generic logging
+format."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+github_account = 'libcheck'
+source_urls = [GITHUB_LOWER_SOURCE]
+sources = ['%(version)s.tar.gz']
+checksums = ['998d355294bb94072f40584272cf4424571c396c631620ce463f6ea97aa67d2e']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('Autotools', '20231222'),
+ ('pkgconf', '2.2.0'),
+]
+
+preconfigopts = "autoreconf -f -i && "
+configopts = "--disable-build-docs"
+
+sanity_check_paths = {
+ 'files': ['bin/checkmk', 'lib/libcheck.a', 'lib/libcheck.%s' % SHLIB_EXT],
+ 'dirs': ['include', 'share']
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/c/CheckM2/CheckM2-1.0.2-foss-2022b.eb b/easybuild/easyconfigs/c/CheckM2/CheckM2-1.0.2-foss-2022b.eb
new file mode 100644
index 00000000000..9f834b1a38f
--- /dev/null
+++ b/easybuild/easyconfigs/c/CheckM2/CheckM2-1.0.2-foss-2022b.eb
@@ -0,0 +1,64 @@
+easyblock = 'PythonBundle'
+
+name = 'CheckM2'
+version = '1.0.2'
+
+homepage = 'https://github.com/chklovski/CheckM2/'
+description = "Assessing the quality of metagenome-derived genome bins using machine learning"
+
+toolchain = {'name': 'foss', 'version': '2022b'}
+
+builddependencies = [('CMake', '3.24.3')]
+dependencies = [
+ ('Python', '3.10.8'),
+ ('SciPy-bundle', '2023.02'),
+ ('DIAMOND', '2.1.8'),
+ ('TensorFlow', '2.13.0'),
+ ('prodigal', '2.6.3'),
+ ('h5py', '3.8.0'),
+ ('tqdm', '4.64.1'),
+]
+
+exts_list = [
+ ('scikit-learn', '0.23.2', {
+ 'modulename': 'sklearn',
+ 'checksums': ['20766f515e6cd6f954554387dfae705d93c7b544ec0e6c6a5d8e006f6f7ef480'],
+ }),
+ ('lightgbm', '3.2.1', {
+ 'checksums': ['bd98e3b501b4c24dc127f4ad93e467f42923fe3eefa99e143b5b93158f024395'],
+ }),
+ (name, version, {
+ 'patches': ['%(name)s-%(version)s_fileManager.py-database-fix.patch'],
+ 'source_urls': ['https://github.com/chklovski/CheckM2/archive/'],
+ 'sources': ['%(version)s.tar.gz'],
+ 'checksums': [
+ {'1.0.2.tar.gz': '9d3129e4d0b53acc38519a259cc1e20a215dff0cbce51cef874545ca2fff005a'},
+ {'CheckM2-1.0.2_fileManager.py-database-fix.patch':
+ '953f0eeef49ea537c0cb97c173a2488c29f09b58cd10800c60078b436a7ea2c7'},
+ ],
+ }),
+]
+
+postinstallcmds = [
+ # np.float is depreciated in newer numpy
+ 'sed -i "s/np.float/float/g" %(installdir)s/lib/python%(pyshortver)s/site-packages/checkm2/predictQuality.py',
+ # update DB_LOCATION_DEFINITION in defaultValues.py to env CHECKM2DB
+ "cd %(installdir)s/lib/python%(pyshortver)s/site-packages/checkm2 && "
+ r"sed -i 's/\(DB_LOCATION_DEFINITION\) = .*/\1 = os.environ.get(\"CHECKM2DB\", \"Not Set\")/' defaultValues.py",
+]
+
+modloadmsg = """You need download a diamond database now and setup a path to this db:
+First you need to setup $CHECKM2DB as:
+$ export CHECKM2DB="path/to/database/CheckM2_database/uniref100.KO.1.dmnd"
+Next, download the database (/CheckM2_database/uniref100.KO.1.dmnd will be created):
+$ checkm2 database --download --path path/to/database
+You can check path to the database by:
+$ checkm2 database --current
+You can either test if everything is setup properly by:
+$ checkm2 testrun
+"""
+
+use_pip = True
+sanity_pip_check = True
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/CheckM2/CheckM2-1.0.2_fileManager.py-database-fix.patch b/easybuild/easyconfigs/c/CheckM2/CheckM2-1.0.2_fileManager.py-database-fix.patch
new file mode 100644
index 00000000000..5c64bd20738
--- /dev/null
+++ b/easybuild/easyconfigs/c/CheckM2/CheckM2-1.0.2_fileManager.py-database-fix.patch
@@ -0,0 +1,126 @@
+Author: Pavel Tomanek (Inuits) + Kenneth Hoste (HPC-UGent)
+This patch changes the way a path to the diamond database is set. It used to be stored in install dir in
+diamond_path.json, but since this is unmodifiable file for user, the path is stored in env variable CHECKM2DB.
+The patch needs to change whole file - there was a problem with dos style endings (CRLF).
+diff -ruZ CheckM2-1.0.2.orig/checkm2/fileManager.py CheckM2-1.0.2/checkm2/fileManager.py
+--- CheckM2-1.0.2.orig/checkm2/fileManager.py 2023-05-19 01:56:46.000000000 +0200
++++ CheckM2-1.0.2/checkm2/fileManager.py 2024-05-30 22:13:45.230761282 +0200
+@@ -22,62 +22,34 @@
+
+ diamond_definition = self.__get_db_file()
+
+- if diamond_definition['DBPATH'] == 'Not Set':
++ if diamond_definition == 'Not Set':
+ self.DATABASE_DIR = 'Not Set'
+ else:
+- self.DATABASE_DIR = diamond_definition['DBPATH']
++ self.DATABASE_DIR = diamond_definition
+ else:
+ diamond_definition = self.__get_db_file()
+
+- if diamond_definition['DBPATH'] == 'Not Set':
++ if diamond_definition == 'Not Set':
+ self.DATABASE_DIR = 'Not Set'
+ else:
+- self.DATABASE_DIR = diamond_definition['DBPATH']
++ self.DATABASE_DIR = diamond_definition
+
+
+ def __get_db_file(self):
+- diamond_location = DefaultValues.DB_LOCATION_DEFINITION
+- try:
+- with open(diamond_location) as f:
+- diamond_definition = json.load(f)
+- return diamond_definition
+- except:
+- logging.warning('Could not open DIAMOND location definition file. Creating new file.')
+- db_ref_file = {"Type": "DIAMONDDB", "DBPATH": "Not Set"}
+- with open(diamond_location, 'w') as dl:
+- json.dump(db_ref_file, dl)
+- try:
+- with open(diamond_location) as f:
+- diamond_definition = json.load(f)
+- return diamond_definition
+- except Exception as e:
+- logging.error('Could not create new file: {}'.format(e))
+- sys.exit(1)
+-
++ return DefaultValues.DB_LOCATION_DEFINITION
+
+ def get_DB_location(self):
+ if self.DATABASE_DIR == 'Not Set':
+- logging.error('DIAMOND database not found. Please download database using ')
++ logging.error(
++ 'DIAMOND database not found. Please download database using $ checkm2 database --download --path /path/to/database '
++ + ',but FIRST set CHECKM2DB to PATH by $ export CHECKM2DB=\"/path/to/database/CheckM2_database/uniref100.KO.1.dmnd\"'
++ )
+ sys.exit(1)
+ else:
+ return self.DATABASE_DIR
+
+ def set_DB_location(self, provided_location):
+- logging.info('Checking provided DIAMOND database location')
+- if versionControl.VersionControl().checksum_version_validate_DIAMOND(provided_location):
+- #great - let's set it
+- diamond_definition = self.__get_db_file()
+-
+- diamond_definition['DBPATH'] = os.path.abspath(provided_location)
+- with open(DefaultValues.DB_LOCATION_DEFINITION, 'w') as dd:
+- json.dump(diamond_definition, dd)
+-
+- logging.info("Database check successful! Database path successfully added.")
+-
+- else:
+- logging.error("Checksum in CheckM2 reference doesn't match provided database. Please check your files.")
+- sys.exit(1)
+-
++ logging.info("Set path to database location by: $ export CHECKM2DB=path/to/database/CheckM2_database/uniref100.KO.1.dmnd")
+
+ def download_database(self, download_location):
+
+@@ -87,32 +59,11 @@
+
+ diamond_location = DefaultValues.DB_LOCATION_DEFINITION
+
+- try:
+- with open(diamond_location) as f:
+- diamond_definition = json.load(f)
+- except:
+- logging.warning('Could not open DIAMOND location definition file. Creating new file.')
+- x = {"Type": "DIAMONDDB", "DBPATH": "Not Set"}
+- with open(diamond_location, 'w') as dl:
+- json.dump(x, dl)
+- try:
+- with open(diamond_location) as f:
+- diamond_definition = json.load(f)
+- except Exception as e:
+- logging.error('Could not create new file: {}'.format(e))
+- sys.exit(1)
+- if diamond_definition['DBPATH'] != 'Not Set':
+- logging.warning('DIAMOND database found at {}. Overwriting previous database.'.format(diamond_definition['DBPATH']))
+-
+-
+ make_sure_path_exists(os.path.join(download_location, 'CheckM2_database'))
+
+ backpack_downloader = zenodo_backpack.zenodo_backpack_downloader('INFO')
+ highest_compatible_version, DOI = versionControl.VersionControl().return_highest_compatible_DB_version()
+
+-
+- diamond_loc_final = os.path.join(download_location, 'CheckM2_database', 'uniref100.KO.1.dmnd')
+-
+ if download_location is not None:
+ #check we have writing permission
+ try:
+@@ -126,12 +77,6 @@
+
+ backpack_downloader.download_and_extract(download_location, DOI, progress_bar=True, no_check_version=False)
+
+- diamond_definition['DBPATH'] = os.path.abspath(diamond_loc_final)
+-
+- with open(diamond_location, 'w') as dd:
+- json.dump(diamond_definition, dd)
+-
+-
+ else:
+ logging.info('Failed to determine download location')
+ sys.exit(1)
diff --git a/easybuild/easyconfigs/c/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/Clang/Clang-17.0.6-GCCcore-13.2.0.eb b/easybuild/easyconfigs/c/Clang/Clang-17.0.6-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..1cb99d62d99
--- /dev/null
+++ b/easybuild/easyconfigs/c/Clang/Clang-17.0.6-GCCcore-13.2.0.eb
@@ -0,0 +1,55 @@
+##
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+#
+# Copyright:: Copyright 2013-2015 Dmitri Gribenko, Ward Poelmans
+# Authors:: Dmitri Gribenko
+# Authors:: Ward Poelmans
+# License:: GPLv2 or later, MIT, three-clause BSD.
+# $Id$
+##
+
+name = 'Clang'
+version = '17.0.6'
+
+homepage = 'https://clang.llvm.org/'
+description = """C, C++, Objective-C compiler, based on LLVM. Does not
+ include C++ standard library -- use libstdc++ from GCC."""
+
+# Clang also depends on libstdc++ during runtime, but this dependency is
+# already specified as the toolchain.
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+source_urls = ["https://github.com/llvm/llvm-project/releases/download/llvmorg-%(version)s"]
+sources = [
+ 'llvm-project-%(version)s.src.tar.xz',
+]
+checksums = ['58a8818c60e6627064f312dbf46c02d9949956558340938b71cf731ad8bc0813']
+
+builddependencies = [
+ ('CMake', '3.27.6'),
+ ('Perl', '5.38.0'),
+ # Including Python bindings would require this as a runtime dep
+ # and SWIG as an additional build dep
+ ('Python', '3.11.5'),
+]
+dependencies = [
+ # since Clang is a compiler, binutils is a runtime dependency too
+ ('binutils', '2.40'),
+ ('hwloc', '2.9.2'),
+ ('libxml2', '2.11.5'),
+ ('ncurses', '6.4'),
+ ('GMP', '6.3.0'),
+ ('Z3', '4.13.0'),
+]
+
+# If True, Flang does not currently support building with LLVM exceptions enabled.
+enable_rtti = False
+
+assertions = True
+python_bindings = False
+skip_all_tests = True
+
+llvm_runtimes = ['libunwind', 'libcxx', 'libcxxabi']
+llvm_projects = ['polly', 'lld', 'lldb', 'clang-tools-extra', 'flang']
+
+moduleclass = 'compiler'
diff --git a/easybuild/easyconfigs/c/Clang/Clang-18.1.8-GCCcore-13.3.0.eb b/easybuild/easyconfigs/c/Clang/Clang-18.1.8-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..8b096078c89
--- /dev/null
+++ b/easybuild/easyconfigs/c/Clang/Clang-18.1.8-GCCcore-13.3.0.eb
@@ -0,0 +1,55 @@
+##
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+#
+# Copyright:: Copyright 2013-2015 Dmitri Gribenko, Ward Poelmans
+# Authors:: Dmitri Gribenko
+# Authors:: Ward Poelmans
+# License:: GPLv2 or later, MIT, three-clause BSD.
+# $Id$
+##
+
+name = 'Clang'
+version = '18.1.8'
+
+homepage = 'https://clang.llvm.org/'
+description = """C, C++, Objective-C compiler, based on LLVM. Does not
+ include C++ standard library -- use libstdc++ from GCC."""
+
+# Clang also depends on libstdc++ during runtime, but this dependency is
+# already specified as the toolchain.
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ["https://github.com/llvm/llvm-project/releases/download/llvmorg-%(version)s"]
+sources = [
+ 'llvm-project-%(version)s.src.tar.xz',
+]
+checksums = ['0b58557a6d32ceee97c8d533a59b9212d87e0fc4d2833924eb6c611247db2f2a']
+
+builddependencies = [
+ ('CMake', '3.29.3'),
+ ('Perl', '5.38.2'),
+ # Including Python bindings would require this as a runtime dep
+ # and SWIG as an additional build dep
+ ('Python', '3.12.3'),
+]
+dependencies = [
+ # since Clang is a compiler, binutils is a runtime dependency too
+ ('binutils', '2.42'),
+ ('hwloc', '2.10.0'),
+ ('libxml2', '2.12.7'),
+ ('ncurses', '6.5'),
+ ('GMP', '6.3.0'),
+ ('Z3', '4.13.0'),
+]
+
+# If True, Flang does not currently support building with LLVM exceptions enabled.
+enable_rtti = False
+
+assertions = True
+python_bindings = False
+skip_all_tests = True
+
+llvm_runtimes = ['libunwind', 'libcxx', 'libcxxabi']
+llvm_projects = ['polly', 'lld', 'lldb', 'clang-tools-extra', 'flang']
+
+moduleclass = 'compiler'
diff --git a/easybuild/easyconfigs/c/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/CoCoALib/CoCoALib-0.99850-GCC-13.2.0.eb b/easybuild/easyconfigs/c/CoCoALib/CoCoALib-0.99850-GCC-13.2.0.eb
new file mode 100644
index 00000000000..f85edd9ec85
--- /dev/null
+++ b/easybuild/easyconfigs/c/CoCoALib/CoCoALib-0.99850-GCC-13.2.0.eb
@@ -0,0 +1,42 @@
+easyblock = 'ConfigureMake'
+
+name = 'CoCoALib'
+version = '0.99850'
+
+homepage = 'https://cocoa.dima.unige.it/cocoa/cocoalib/'
+description = "CoCoALib is a free GPL3 C++ library for doing Computations in Commutative Algebra."
+
+toolchain = {'name': 'GCC', 'version': '13.2.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://cocoa.dima.unige.it/cocoa/cocoalib/tgz']
+sources = [SOURCE_TGZ]
+checksums = ['d3e7af0153c6950f83f4e3556540f0177fedf5179f0f7667b7d6d670268fd445']
+
+dependencies = [
+ ('GMP', '6.3.0'),
+ ('cddlib', '0.94m'), # optional
+]
+
+# libreadline only needed for CoCoA-5
+configopts = "--only-cocoalib --no-readline --threadsafe-hack "
+# Use cddlib and GMP from EB
+configopts += "--with-libcddgmp=${EBROOTCDDLIB}/lib/libcddgmp.a --with-libgmp=$EBROOTGMP/lib/libgmp.a "
+
+buildopts = 'CXX="$CXX" CXXFLAGS="$CXXFLAGS"'
+
+# Makefile is not smart enough to create missing directories
+preinstallopts = "mkdir %(installdir)s/{include,lib} && "
+
+# Move doc and examples from include to share
+postinstallcmds = [
+ "mkdir %(installdir)s/share",
+ "mv %(installdir)s/include/CoCoA-%(version)s/{doc,examples} %(installdir)s/share/",
+]
+
+sanity_check_paths = {
+ 'files': ['lib/libcocoa.a'],
+ 'dirs': ['include/CoCoA-%(version)s', 'share/doc', 'share/examples']
+}
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/c/CodingQuarry/CodingQuarry-2.0-foss-2023a.eb b/easybuild/easyconfigs/c/CodingQuarry/CodingQuarry-2.0-foss-2023a.eb
new file mode 100644
index 00000000000..4757b9125f2
--- /dev/null
+++ b/easybuild/easyconfigs/c/CodingQuarry/CodingQuarry-2.0-foss-2023a.eb
@@ -0,0 +1,51 @@
+easyblock = 'MakeCp'
+
+name = 'CodingQuarry'
+version = '2.0'
+
+homepage = 'https://sourceforge.net/p/codingquarry'
+description = "Highly accurate hidden Markov model gene prediction in fungal genomes using RNA-seq transcripts"
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'openmp': True}
+
+source_urls = [SOURCEFORGE_SOURCE]
+sources = ['CodingQuarry_v%(version)s.tar.gz']
+patches = ['CodingQuarry-2.0_python3.patch']
+checksums = [
+ {'CodingQuarry_v2.0.tar.gz': '1198afbf7cebcf0975c5b20d92b7a2dd6d956072fcde6e86fdce6aeae4842504'},
+ {'CodingQuarry-2.0_python3.patch': '8e1b117431d8b104f2114875d8f751aa91c1c3c1b0ddd5a4f85251605c2ab9df'},
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Biopython', '1.83'),
+]
+
+buildopts = 'CFLAGS="$CFLAGS"'
+
+files_to_copy = [
+ (['CodingQuarry', 'CufflinksGTF_to_CodingQuarryGFF3.py'], 'bin'),
+ 'QuarryFiles',
+ 'TESTING',
+]
+
+fix_python_shebang_for = [
+ 'bin/CufflinksGTF_to_CodingQuarryGFF3.py',
+ 'QuarryFiles/scripts/*.py',
+]
+
+sanity_check_paths = {
+ 'files': ['bin/CodingQuarry', 'bin/CufflinksGTF_to_CodingQuarryGFF3.py'],
+ 'dirs': ['QuarryFiles/scripts', 'QuarryFiles/self_train', 'QuarryFiles/species', 'TESTING'],
+}
+
+sanity_check_commands = [
+ "CodingQuarry --help | grep '^CodingQuarry v. %(version)s'",
+ "mkdir -p %(builddir)s && cp -a %(installdir)s/TESTING %(builddir)s/TESTING",
+ "cd %(builddir)s/TESTING && CufflinksGTF_to_CodingQuarryGFF3.py Sp_transcripts.gtf > test.gff3",
+]
+
+modextravars = {'QUARRY_PATH': '%(installdir)s/QuarryFiles'}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/Compass/Compass-2024.04-foss-2021b.eb b/easybuild/easyconfigs/c/Compass/Compass-2024.04-foss-2021b.eb
new file mode 100644
index 00000000000..0ff4a4f9bdb
--- /dev/null
+++ b/easybuild/easyconfigs/c/Compass/Compass-2024.04-foss-2021b.eb
@@ -0,0 +1,42 @@
+easyblock = 'PythonBundle'
+
+name = 'Compass'
+version = '2024.04'
+
+homepage = 'https://github.com/YosefLab/Compass'
+description = """In-Silico Modeling of Metabolic Heterogeneity using Single-Cell Transcriptomes."""
+local_commit = "7664cb0"
+
+toolchain = {'name': 'foss', 'version': '2021b'}
+
+dependencies = [
+ ('Python', '3.9.6'),
+ ('SciPy-bundle', '2021.10'),
+ ('tqdm', '4.62.3'),
+ ('python-libsbml', '5.20.2'),
+ ('scikit-learn', '1.0.1'),
+ ('python-igraph', '0.9.8'),
+ ('leidenalg', '0.8.8'),
+ ('anndata', '0.9.2'),
+ ('CPLEX', '22.1.1'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('compass', version, {
+ 'source_urls': ['https://github.com/YosefLab/Compass/archive/'],
+ 'sources': [{'download_filename': '7664cb0.tar.gz', 'filename': '%(name)s-%(version)s-7664cb0.tar.gz'}],
+ 'checksums': ['87529c5fae108fa2a8e3e35438d3b25874faa78af670a2349228c76fa0843376'],
+ 'preinstallopts': "sed -i '/python-igraph/d' setup.py && ",
+ }),
+]
+
+sanity_check_commands = [
+ "compass -h",
+ "python -c 'import cplex'",
+ "python -c 'import igraph'",
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/Compress-Raw-Zlib/Compress-Raw-Zlib-2.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/Coreutils/Coreutils-9.5-GCCcore-13.3.0.eb b/easybuild/easyconfigs/c/Coreutils/Coreutils-9.5-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..60e5009dc91
--- /dev/null
+++ b/easybuild/easyconfigs/c/Coreutils/Coreutils-9.5-GCCcore-13.3.0.eb
@@ -0,0 +1,28 @@
+easyblock = 'ConfigureMake'
+
+name = "Coreutils"
+version = "9.5"
+
+homepage = 'https://www.gnu.org/software/coreutils/'
+description = """The GNU Core Utilities are the basic file, shell and text
+manipulation utilities of the GNU operating system. These are
+the core utilities which are expected to exist on every
+operating system.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'optarch': True, 'pic': True}
+
+source_urls = [GNU_SOURCE]
+sources = [SOURCELOWER_TAR_XZ]
+
+checksums = ['cd328edeac92f6a665de9f323c93b712af1858bc2e0d88f3f7100469470a1b8a']
+
+builddependencies = [('binutils', '2.42')]
+
+sanity_check_paths = {
+ 'files': ['bin/sort', 'bin/echo', 'bin/du', 'bin/date', 'bin/true'],
+ 'dirs': []
+}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/c/Critic2/Critic2-1.2-foss-2023a.eb b/easybuild/easyconfigs/c/Critic2/Critic2-1.2-foss-2023a.eb
new file mode 100644
index 00000000000..9d1605b7366
--- /dev/null
+++ b/easybuild/easyconfigs/c/Critic2/Critic2-1.2-foss-2023a.eb
@@ -0,0 +1,37 @@
+easyblock = 'CMakeMake'
+
+name = 'Critic2'
+version = '1.2'
+
+homepage = 'https://aoterodelaroza.github.io/critic2/'
+description = """Critic2 is a program for the analysis of quantum mechanical
+calculation results in molecules and periodic solids."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'extra_fflags': '-ffree-line-length-none'}
+
+source_urls = ['https://github.com/aoterodelaroza/critic2/archive/refs/tags/']
+sources = ['%(version)s.tar.gz']
+checksums = ['b59ecffd83405dbcc4b5d157d4a94bf2756916f72e83e09a94d277d54d0f2225']
+
+configopts = '-DLIBCINT_INCLUDE_DIRS=$EBROOTLIBCINT/include/ '
+configopts += '-DLIBCINT_LIBRARY=$EBROOTLIBCINT/lib64/libcint.so '
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+]
+
+dependencies = [
+ ('libxc', '6.2.2'),
+ ('libcint', '5.4.0'),
+ ('libreadline', '8.2'),
+]
+
+sanity_check_paths = {
+ 'files': ["bin/critic2"],
+ 'dirs': ["bin"],
+}
+
+sanity_check_commands = ['critic2 -h']
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/c/CubeLib/CubeLib-4.8.2-GCCcore-13.3.0.eb b/easybuild/easyconfigs/c/CubeLib/CubeLib-4.8.2-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..6b2414be446
--- /dev/null
+++ b/easybuild/easyconfigs/c/CubeLib/CubeLib-4.8.2-GCCcore-13.3.0.eb
@@ -0,0 +1,52 @@
+# Copyright 2019-2024 Juelich Supercomputing Centre, Germany
+# Copyright 2023-2024 TU Dresden, Germany
+# Authors:: Markus Geimer
+# Alexander Grund
+# Jan André Reuter
+# License:: 3-clause BSD
+#
+# This work is based on experiences from the UNITE project
+# http://apps.fz-juelich.de/unite/
+
+easyblock = 'EB_Score_minus_P'
+
+name = 'CubeLib'
+version = '4.8.2'
+
+homepage = 'https://www.scalasca.org/software/cube-4.x/download.html'
+description = """
+ Cube, which is used as performance report explorer for Scalasca and Score-P,
+ is a generic tool for displaying a multi-dimensional performance space
+ consisting of the dimensions (i) performance metric, (ii) call path, and
+ (iii) system resource. Each dimension can be represented as a tree, where
+ non-leaf nodes of the tree can be collapsed or expanded to achieve the
+ desired level of granularity.
+
+ This module provides the Cube general purpose C++ library component and
+ command-line tools.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://apps.fz-juelich.de/scalasca/releases/cube/%(version_major_minor)s/dist']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['d6fdef57b1bc9594f1450ba46cf08f431dd0d4ae595c47e2f3454e17e4ae74f4']
+
+builddependencies = [
+ # use same binutils version that was used when building GCCcore
+ ('binutils', '2.42'),
+ ('pkgconf', '2.2.0'),
+]
+dependencies = [
+ ('zlib', '1.3.1'),
+]
+
+configopts = '--enable-shared'
+
+sanity_check_paths = {
+ 'files': ['bin/cubelib-config',
+ 'lib/libcube4.a', 'lib/libcube4.%s' % SHLIB_EXT],
+ 'dirs': ['include/cubelib'],
+}
+
+moduleclass = 'perf'
diff --git a/easybuild/easyconfigs/c/CubeWriter/CubeWriter-4.8.2-GCCcore-13.3.0.eb b/easybuild/easyconfigs/c/CubeWriter/CubeWriter-4.8.2-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..e030f21ba6c
--- /dev/null
+++ b/easybuild/easyconfigs/c/CubeWriter/CubeWriter-4.8.2-GCCcore-13.3.0.eb
@@ -0,0 +1,52 @@
+# Copyright:: Copyright 2019-2024 Juelich Supercomputing Centre, Germany
+# Copyright 2023-2024 TU Dresden, Germany
+# Authors:: Markus Geimer
+# Alexander Grund
+# Jan André Reuter
+# License:: 3-clause BSD
+#
+# This work is based on experiences from the UNITE project
+# http://apps.fz-juelich.de/unite/
+
+easyblock = 'EB_Score_minus_P'
+
+name = 'CubeWriter'
+version = '4.8.2'
+
+homepage = 'https://www.scalasca.org/software/cube-4.x/download.html'
+description = """
+ Cube, which is used as performance report explorer for Scalasca and Score-P,
+ is a generic tool for displaying a multi-dimensional performance space
+ consisting of the dimensions (i) performance metric, (ii) call path, and
+ (iii) system resource. Each dimension can be represented as a tree, where
+ non-leaf nodes of the tree can be collapsed or expanded to achieve the
+ desired level of granularity.
+
+ This module provides the Cube high-performance C writer library component.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://apps.fz-juelich.de/scalasca/releases/cube/%(version_major_minor)s/dist']
+sources = ['cubew-%(version)s.tar.gz']
+checksums = ['4f3bcf0622c2429b8972b5eb3f14d79ec89b8161e3c1cc5862ceda417d7975d2']
+
+builddependencies = [
+ # use same binutils version that was used when building GCCcore
+ ('binutils', '2.42'),
+ ('pkgconf', '2.2.0'),
+]
+
+dependencies = [
+ ('zlib', '1.3.1'),
+]
+
+configopts = '--enable-shared'
+
+sanity_check_paths = {
+ 'files': ['bin/cubew-config',
+ 'lib/libcube4w.a', 'lib/libcube4w.%s' % SHLIB_EXT],
+ 'dirs': ['include/cubew'],
+}
+
+moduleclass = 'perf'
diff --git a/easybuild/easyconfigs/c/Cufflinks/Cufflinks-20190706-GCC-12.3.0.eb b/easybuild/easyconfigs/c/Cufflinks/Cufflinks-20190706-GCC-12.3.0.eb
new file mode 100644
index 00000000000..3f087e541cb
--- /dev/null
+++ b/easybuild/easyconfigs/c/Cufflinks/Cufflinks-20190706-GCC-12.3.0.eb
@@ -0,0 +1,49 @@
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+
+name = 'Cufflinks'
+version = '20190706'
+local_commit = 'dc3b0cb'
+
+homepage = 'http://cole-trapnell-lab.github.io/%(namelower)s/'
+description = "Transcript assembly, differential expression, and differential regulation for RNA-Seq"
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+toolchainopts = {'pic': True}
+
+github_account = 'cole-trapnell-lab'
+source_urls = [GITHUB_LOWER_SOURCE]
+sources = [{'download_filename': '%s.tar.gz' % local_commit, 'filename': SOURCE_TAR_GZ}]
+patches = ['Cufflinks-20190706_fix-automake.patch']
+checksums = [
+ {'Cufflinks-20190706.tar.gz': '444c632083a473fe4fd99ff189cef5bbd95daee0912e8eefe79534bf225fbcb6'},
+ {'Cufflinks-20190706_fix-automake.patch': '4eb2eb9e8e549eb6c2e17493801c36554dbfb009d9af86e28195e898a350b3a6'},
+]
+
+builddependencies = [
+ ('Eigen', '3.4.0'),
+ ('Autotools', '20220317'),
+ ('SAMtools', '1.18'),
+ ('Boost', '1.75.0'),
+]
+
+dependencies = [
+ ('zlib', '1.2.13'),
+ ('HTSlib', '1.18'),
+]
+
+preconfigopts = 'autoreconf -i && export LIBS="${LIBS} -lhts" && export CFLAGS="$CFLAGS -fcommon" && '
+configopts = '--with-boost=${EBROOTBOOST} --with-bam=${EBROOTSAMTOOLS}'
+
+buildopts = "BOOST_FILESYSTEM_LIB=$EBROOTBOOST/lib/libboost_filesystem.a "
+buildopts += "BOOST_SERIALIZATION_LIB=$EBROOTBOOST/lib/libboost_serialization.a "
+buildopts += "BOOST_SYSTEM_LIB=$EBROOTBOOST/lib/libboost_system.a "
+buildopts += "BOOST_THREAD_LIB=$EBROOTBOOST/lib/libboost_thread.a "
+
+sanity_check_paths = {
+ 'files': ['bin/cufflinks'],
+ 'dirs': []
+}
+
+sanity_check_commands = ["cufflinks 2>&1 | grep 'Usage:.* cufflinks'"]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/Cufflinks/Cufflinks-20190706_fix-automake.patch b/easybuild/easyconfigs/c/Cufflinks/Cufflinks-20190706_fix-automake.patch
new file mode 100644
index 00000000000..332b4c724e4
--- /dev/null
+++ b/easybuild/easyconfigs/c/Cufflinks/Cufflinks-20190706_fix-automake.patch
@@ -0,0 +1,14 @@
+fix for:
+error: AM_INIT_AUTOMAKE expanded multiple times
+author: Kenneth Hoste (HPC-UGent)
+--- cufflinks-dc3b0cb72a4ac2b6bbc887099e71fc0c21e107b7/configure.ac.orig 2019-07-06 18:28:01.000000000 +0200
++++ cufflinks-dc3b0cb72a4ac2b6bbc887099e71fc0c21e107b7/configure.ac 2024-09-27 13:39:13.512597490 +0200
+@@ -14,7 +14,7 @@
+ AC_CONFIG_SRCDIR([config.h.in])
+ AC_CONFIG_HEADERS([config.h])
+ AC_CONFIG_AUX_DIR([build-aux])
+-AM_INIT_AUTOMAKE
++#AM_INIT_AUTOMAKE
+
+ #AM_PATH_CPPUNIT(1.10.2)
+
diff --git a/easybuild/easyconfigs/c/Cython/Cython-3.0.10-GCCcore-13.2.0.eb b/easybuild/easyconfigs/c/Cython/Cython-3.0.10-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..194048d611d
--- /dev/null
+++ b/easybuild/easyconfigs/c/Cython/Cython-3.0.10-GCCcore-13.2.0.eb
@@ -0,0 +1,40 @@
+easyblock = 'PythonPackage'
+
+name = 'Cython'
+version = '3.0.10'
+
+homepage = 'https://cython.org/'
+description = """
+Cython is an optimising static compiler for both the Python programming
+language and the extended Cython programming language (based on Pyrex).
+"""
+docurls = [
+ 'https://cython.org/#documentation',
+ 'https://github.com/cython/cython',
+]
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+sources = [SOURCE_TAR_GZ]
+checksums = ['dcc96739331fb854dcf503f94607576cfe8488066c61ca50dfd55836f132de99']
+
+builddependencies = [
+ ('binutils', '2.40'),
+]
+
+dependencies = [
+ ('Python', '3.11.5'),
+]
+
+download_dep_fail = True
+use_pip = True
+sanity_pip_check = True
+
+sanity_check_paths = {
+ 'files': ['bin/cygdb', 'bin/cython', 'bin/cythonize'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = ["cython --version"]
+
+moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/c/Cython/Cython-3.0.10-GCCcore-13.3.0.eb b/easybuild/easyconfigs/c/Cython/Cython-3.0.10-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..c9e419d570a
--- /dev/null
+++ b/easybuild/easyconfigs/c/Cython/Cython-3.0.10-GCCcore-13.3.0.eb
@@ -0,0 +1,40 @@
+easyblock = 'PythonPackage'
+
+name = 'Cython'
+version = '3.0.10'
+
+homepage = 'https://cython.org/'
+description = """
+Cython is an optimising static compiler for both the Python programming
+language and the extended Cython programming language (based on Pyrex).
+"""
+docurls = [
+ 'https://cython.org/#documentation',
+ 'https://github.com/cython/cython',
+]
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+sources = [SOURCE_TAR_GZ]
+checksums = ['dcc96739331fb854dcf503f94607576cfe8488066c61ca50dfd55836f132de99']
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+
+dependencies = [
+ ('Python', '3.12.3'),
+]
+
+download_dep_fail = True
+use_pip = True
+sanity_pip_check = True
+
+sanity_check_paths = {
+ 'files': ['bin/cygdb', 'bin/cython', 'bin/cythonize'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = ["cython --version"]
+
+moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/c/cURL/cURL-8.7.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/c/cURL/cURL-8.7.1-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..02470220971
--- /dev/null
+++ b/easybuild/easyconfigs/c/cURL/cURL-8.7.1-GCCcore-13.3.0.eb
@@ -0,0 +1,43 @@
+easyblock = 'ConfigureMake'
+
+name = 'cURL'
+version = '8.7.1'
+
+homepage = 'https://curl.haxx.se'
+
+description = """
+ libcurl is a free and easy-to-use client-side URL transfer library,
+ supporting DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP,
+ LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP.
+ libcurl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP
+ form based upload, proxies, cookies, user+password authentication (Basic,
+ Digest, NTLM, Negotiate, Kerberos), file transfer resume, http proxy tunneling
+ and more.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://curl.haxx.se/download/']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['f91249c87f68ea00cf27c44fdfa5a78423e41e71b7d408e5901a9896d905c495']
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+
+dependencies = [
+ ('zlib', '1.3.1'),
+ ('OpenSSL', '3', '', SYSTEM),
+]
+
+configopts = '--with-zlib '
+configopts += '--with-ssl=$EBROOTOPENSSL '
+
+modextravars = {'CURL_INCLUDES': '%(installdir)s/include'}
+
+sanity_check_paths = {
+ 'files': ['bin/curl', 'lib/libcurl.a', 'lib/libcurl.%s' % SHLIB_EXT],
+ 'dirs': ['lib/pkgconfig', 'include/curl'],
+}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/c/cairo/cairo-1.18.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/c/cairo/cairo-1.18.0-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..2622f010126
--- /dev/null
+++ b/easybuild/easyconfigs/c/cairo/cairo-1.18.0-GCCcore-13.3.0.eb
@@ -0,0 +1,51 @@
+easyblock = 'MesonNinja'
+
+
+name = 'cairo'
+version = '1.18.0'
+
+homepage = 'https://cairographics.org'
+description = """Cairo is a 2D graphics library with support for multiple output devices.
+ Currently supported output targets include the X Window System (via both Xlib and XCB), Quartz, Win32, image buffers,
+ PostScript, PDF, and SVG file output. Experimental backends include OpenGL, BeOS, OS/2, and DirectFB"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = [
+ 'https://cairographics.org/releases/',
+ 'https://cairographics.org/snapshots/'
+]
+sources = [SOURCE_TAR_XZ]
+checksums = ['243a0736b978a33dee29f9cca7521733b78a65b5418206fef7bd1c3d4cf10b64']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('pkgconf', '2.2.0'),
+ ('Ninja', '1.12.1'),
+ ('Meson', '1.4.0'),
+]
+dependencies = [
+ ('bzip2', '1.0.8'),
+ ('zlib', '1.3.1'),
+ ('libpng', '1.6.43'),
+ ('freetype', '2.13.2'),
+ ('pixman', '0.43.4'),
+ ('expat', '2.6.2'),
+ ('GLib', '2.80.4'),
+ ('X11', '20240607'),
+]
+
+configopts = "--default-library=both" # static and shared library
+
+sanity_check_paths = {
+ 'files': ['bin/cairo-trace', 'lib/cairo/libcairo-trace.%s' % SHLIB_EXT, 'lib/cairo/libcairo-trace.a',
+ 'lib/libcairo.a', 'lib/libcairo-gobject.a', 'lib/libcairo-script-interpreter.a',
+ 'lib/libcairo.%s' % SHLIB_EXT, 'lib/libcairo-gobject.%s' % SHLIB_EXT,
+ 'lib/libcairo-script-interpreter.%s' % SHLIB_EXT] +
+ ['include/cairo/cairo%s.h' % x for x in ['', '-deprecated', '-features', '-ft', '-gobject', '-pdf', '-ps',
+ '-script', '-script-interpreter', '-svg', '-version', '-xcb',
+ '-xlib', '-xlib-xrender']],
+ 'dirs': ['lib/pkgconfig'],
+}
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/c/cairomm/cairomm-1.16.2-GCC-12.3.0.eb b/easybuild/easyconfigs/c/cairomm/cairomm-1.16.2-GCC-12.3.0.eb
new file mode 100644
index 00000000000..286c56e1bbb
--- /dev/null
+++ b/easybuild/easyconfigs/c/cairomm/cairomm-1.16.2-GCC-12.3.0.eb
@@ -0,0 +1,39 @@
+# Updated to MesonNinja as the autogen.sh complained.
+# Author: J. Sassmannshausen (Imperial College London)
+
+easyblock = 'MesonNinja'
+
+name = 'cairomm'
+version = '1.16.2'
+
+homepage = 'http://cairographics.org'
+description = "The Cairomm package provides a C++ interface to Cairo."
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+
+source_urls = ['http://cairographics.org/releases/']
+sources = [SOURCE_TAR_XZ]
+checksums = ['6a63bf98a97dda2b0f55e34d1b5f3fb909ef8b70f9b8d382cb1ff3978e7dc13f']
+
+builddependencies = [
+ ('Meson', '1.1.1'),
+ ('Ninja', '1.11.1'),
+ ('Doxygen', '1.9.7'),
+ ('M4', '1.4.19'),
+]
+
+dependencies = [
+ ('cairo', '1.17.8'),
+ ('libsigc++', '3.6.0'),
+ ('mm-common', '1.0.6'),
+ ('Boost', '1.82.0'),
+]
+
+runtest = 'ninja test'
+
+sanity_check_paths = {
+ 'files': ['lib/libcairomm-1.16.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/c/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/cddlib/cddlib-0.94m-GCCcore-13.2.0.eb b/easybuild/easyconfigs/c/cddlib/cddlib-0.94m-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..c747475d137
--- /dev/null
+++ b/easybuild/easyconfigs/c/cddlib/cddlib-0.94m-GCCcore-13.2.0.eb
@@ -0,0 +1,38 @@
+easyblock = 'ConfigureMake'
+
+name = 'cddlib'
+version = '0.94m'
+
+homepage = 'https://github.com/cddlib/cddlib'
+description = "An efficient implementation of the Double Description Method"
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+toolchainopts = {'pic': True}
+
+github_account = 'cddlib'
+source_urls = [GITHUB_SOURCE]
+sources = ['%(version)s.tar.gz']
+checksums = ['766d8ec2135989830748e5e2fe57f307ed0706431c135541c3c081cbec0bc34f']
+
+builddependencies = [
+ ('Autotools', '20220317'),
+ ('binutils', '2.40'),
+]
+
+dependencies = [('GMP', '6.3.0')]
+
+preconfigopts = "autoreconf -f -i && "
+
+buildopts = "SUBDIRS='lib-src src'" # build sources but spare the documentation in latex
+installopts = buildopts
+
+local_exes = ['adjacency', 'allfaces', 'cddexec', 'fourier', 'lcdd', 'projection', 'redcheck', 'scdd', 'testcdd1',
+ 'testcdd2', 'testlp1', 'testlp2', 'testlp3', 'testshoot']
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in local_exes] + ['bin/%s_gmp' % x for x in local_exes] +
+ ['lib/%s.%s' % (l, e) for l in ['libcdd', 'libcddgmp'] for e in ['a', SHLIB_EXT]] +
+ ['include/cddlib/%s.h' % h for h in ['cdd', 'cddmp', 'cddtypes', 'setoper', 'splitmix64']],
+ 'dirs': ['share/doc']
+}
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/c/cell2location/cell2location-0.05-alpha-fosscuda-2020b.eb b/easybuild/easyconfigs/c/cell2location/cell2location-0.05-alpha-fosscuda-2020b.eb
index 9a0eeba1628..1556b0f9dad 100644
--- a/easybuild/easyconfigs/c/cell2location/cell2location-0.05-alpha-fosscuda-2020b.eb
+++ b/easybuild/easyconfigs/c/cell2location/cell2location-0.05-alpha-fosscuda-2020b.eb
@@ -45,12 +45,6 @@ preinstallopts = "sed -i 's/theano/Theano-PyMC/g' setup.py && "
use_pip = True
-exts_default_options = {
- 'download_dep_fail': True,
- 'sanity_pip_check': True,
- 'use_pip': True,
-}
-
exts_list = [
('opt-einsum', '3.3.0', {
'source_tmpl': 'opt_einsum-%(version)s.tar.gz',
diff --git a/easybuild/easyconfigs/c/cffi/cffi-1.16.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/c/cffi/cffi-1.16.0-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..94a734e98da
--- /dev/null
+++ b/easybuild/easyconfigs/c/cffi/cffi-1.16.0-GCCcore-13.3.0.eb
@@ -0,0 +1,38 @@
+easyblock = "PythonBundle"
+
+name = 'cffi'
+version = '1.16.0'
+
+homepage = 'https://cffi.readthedocs.io/en/latest/'
+description = """C Foreign Function Interface for Python. Interact with almost any C code from
+Python, based on C-like declarations that you can often copy-paste from header
+files or documentation.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+
+dependencies = [
+ ('Python', '3.12.3'),
+]
+
+exts_default_options = {
+ 'download_dep_fail': True,
+ 'sanity_pip_check': True,
+ 'use_pip': True,
+}
+
+exts_list = [
+ ('pycparser', '2.22', {
+ 'checksums': ['491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6'],
+ }),
+ (name, version, {
+ 'checksums': ['bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0'],
+ }),
+]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/c/cfgrib/cfgrib-0.9.14.0-foss-2023a.eb b/easybuild/easyconfigs/c/cfgrib/cfgrib-0.9.14.0-foss-2023a.eb
new file mode 100644
index 00000000000..b6b2b66159c
--- /dev/null
+++ b/easybuild/easyconfigs/c/cfgrib/cfgrib-0.9.14.0-foss-2023a.eb
@@ -0,0 +1,41 @@
+easyblock = "PythonBundle"
+
+name = 'cfgrib'
+version = '0.9.14.0'
+
+homepage = 'https://github.com/ecmwf/cfgrib/'
+description = """
+A Python interface to map GRIB files to the NetCDF Common Data Model following the CF
+Convention using ecCodes.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+builddependencies = [
+ ('poetry', '1.7.1'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('ecCodes', '2.31.0'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('findlibs', '0.0.5', {
+ 'checksums': ['7a801571e999d0ee83f9b92cbb598c21f861ee26ca9dba74cea8958ba4335e7e'],
+ }),
+ ('eccodes', '1.7.1', {
+ 'checksums': ['d3c7e9bab779d35b624cfd7b3331de111602cba6a6f6368efcc12407f30b2697'],
+ }),
+ (name, version, {
+ 'checksums': ['2b9a1e6bd47397e585f878ffd8aaac5969f6c9a448da767c700917b89c275bb2'],
+ }),
+]
+
+sanity_check_commands = ['python -m cfgrib selfcheck']
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/c/chewBBACA/chewBBACA-3.3.9-foss-2022b.eb b/easybuild/easyconfigs/c/chewBBACA/chewBBACA-3.3.9-foss-2022b.eb
new file mode 100644
index 00000000000..b9964db690a
--- /dev/null
+++ b/easybuild/easyconfigs/c/chewBBACA/chewBBACA-3.3.9-foss-2022b.eb
@@ -0,0 +1,66 @@
+easyblock = 'PythonBundle'
+
+name = 'chewBBACA'
+version = '3.3.9'
+
+homepage = 'https://github.com/B-UMMI/chewBBACA'
+description = """chewBBACA is a software suite for the creation and evaluation of core genome and whole genome
+MultiLocus Sequence Typing (cg/wgMLST) schemas and results. The "BBACA" stands for "BSR-Based Allele Calling Algorithm".
+BSR stands for BLAST Score Ratio as proposed by Rasko DA et al. The "chew" part adds extra coolness to the name and
+could be thought of as "Comprehensive and Highly Efficient Workflow"."""
+
+toolchain = {'name': 'foss', 'version': '2022b'}
+
+dependencies = [
+ ('Python', '3.10.8'),
+ ('SciPy-bundle', '2023.02'),
+ # Cython 3 is required, see https://github.com/althonos/pyrodigal/issues/40
+ # Cython included with Python-bundle-PyPI (0.29.35) is too old
+ ('Cython', '3.0.8'),
+ ('Biopython', '1.81'),
+ ('plotly.py', '5.13.1'),
+ ('BLAST+', '2.14.0'),
+ ('prodigal', '2.6.3'),
+ ('MAFFT', '7.505', '-with-extensions'),
+ ('FastTree', '2.1.11'),
+ ('archspec', '0.2.0'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('pyrodigal', '3.5.1', {
+ 'checksums': ['20af59a6d968c88910b99d5f647bb7dd22d49e440ead95fe715cdd2c49f36e9f'],
+ }),
+ ('isodate', '0.6.1', {
+ 'checksums': ['48c5881de7e8b0a0d648cb024c8062dc84e7b840ed81e864c7614fd3c127bde9'],
+ }),
+ ('rdflib', '7.0.0', {
+ 'checksums': ['9995eb8569428059b8c1affd26b25eac510d64f5043d9ce8c84e0d0036e995ae'],
+ }),
+ ('SPARQLWrapper', '2.0.0', {
+ 'modulename': 'SPARQLWrapper',
+ 'checksums': ['3fed3ebcc77617a4a74d2644b86fd88e0f32e7f7003ac7b2b334c026201731f1'],
+ }),
+ (name, version, {
+ 'modulename': 'CHEWBBACA',
+ # relax numpy version requirement
+ 'preinstallopts': "sed -i 's/numpy~=1.24.3/numpy~=1.24.2/g' pyproject.toml && ",
+ 'runtest': "python setup.py test",
+ 'sources': ['%(namelower)s-%(version)s.tar.gz'],
+ 'checksums': ['4bf0792b8cdd1783b50340ac713748ef2a351209cacb50ad4c9e2fe2e7fba772'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/chewBBACA.py', 'bin/chewie'],
+ 'dirs': [],
+}
+
+sanity_check_commands = [
+ 'chewBBACA.py --help',
+ 'chewie --help',
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/chopper/chopper-0.9.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/c/chopper/chopper-0.9.0-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..b1788fb34f9
--- /dev/null
+++ b/easybuild/easyconfigs/c/chopper/chopper-0.9.0-GCCcore-12.3.0.eb
@@ -0,0 +1,315 @@
+easyblock = 'Cargo'
+
+name = 'chopper'
+version = '0.9.0'
+
+homepage = 'https://github.com/wdecoster/chopper'
+description = """Rust implementation of NanoFilt+NanoLyse, both
+originally written in Python. This tool, intended for long read
+sequencing such as PacBio or ONT, filters and trims a fastq file.
+Filtering is done on average read quality and minimal or maximal read
+length, and applying a headcrop (start of read) and tailcrop (end of
+read) while printing the reads passing the filter."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+github_account = 'wdecoster'
+source_urls = [GITHUB_SOURCE]
+sources = ['v%(version)s.tar.gz']
+patches = [
+ 'chopper-0.9.0_fix_incorrect_version.patch',
+]
+checksums = [
+ {'v0.9.0.tar.gz': 'ae5b6f8f5ffde45582998b63cb45b4221b25ee37a9fde7a256e653c7f3f12075'},
+ {'adler-1.0.2.tar.gz': 'f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe'},
+ {'aho-corasick-1.1.3.tar.gz': '8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916'},
+ {'anstream-0.6.13.tar.gz': 'd96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb'},
+ {'anstyle-1.0.6.tar.gz': '8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc'},
+ {'anstyle-parse-0.2.3.tar.gz': 'c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c'},
+ {'anstyle-query-1.0.2.tar.gz': 'e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648'},
+ {'anstyle-wincon-3.0.2.tar.gz': '1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7'},
+ {'anyhow-1.0.82.tar.gz': 'f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519'},
+ {'approx-0.5.1.tar.gz': 'cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6'},
+ {'atty-0.2.14.tar.gz': 'd9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8'},
+ {'autocfg-1.2.0.tar.gz': 'f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80'},
+ {'bio-1.6.0.tar.gz': '7a72cb93babf08c85b375c2938ac678cc637936b3ebb72266d433cec2577f6c2'},
+ {'bio-types-1.0.1.tar.gz': '9d45749b87f21808051025e9bf714d14ff4627f9d8ca967eade6946ea769aa4a'},
+ {'bit-set-0.5.3.tar.gz': '0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1'},
+ {'bit-vec-0.6.3.tar.gz': '349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb'},
+ {'buffer-redux-1.0.1.tar.gz': '4c9f8ddd22e0a12391d1e7ada69ec3b0da1914f1cec39c5cf977143c5b2854f5'},
+ {'bv-0.11.1.tar.gz': '8834bb1d8ee5dc048ee3124f2c7c1afcc6bc9aed03f11e9dfd8c69470a5db340'},
+ {'bytecount-0.6.8.tar.gz': '5ce89b21cab1437276d2650d57e971f9d548a2d9037cc231abdc0562b97498ce'},
+ {'bytemuck-1.15.0.tar.gz': '5d6d68c57235a3a081186990eca2867354726650f42f7516ca50c28d6281fd15'},
+ {'byteorder-1.5.0.tar.gz': '1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b'},
+ {'bzip2-0.4.4.tar.gz': 'bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8'},
+ {'bzip2-sys-0.1.11+1.0.8.tar.gz': '736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc'},
+ {'cc-1.0.94.tar.gz': '17f6e324229dc011159fcc089755d1e2e216a90d43a7dea6853ca740b84f35e7'},
+ {'cfg-if-1.0.0.tar.gz': 'baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd'},
+ {'clap-4.5.4.tar.gz': '90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0'},
+ {'clap_builder-4.5.2.tar.gz': 'ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4'},
+ {'clap_derive-4.5.4.tar.gz': '528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64'},
+ {'clap_lex-0.7.0.tar.gz': '98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce'},
+ {'cmake-0.1.50.tar.gz': 'a31c789563b815f77f4250caee12365734369f942439b7defd71e18a48197130'},
+ {'colorchoice-1.0.0.tar.gz': 'acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7'},
+ {'crc32fast-1.4.0.tar.gz': 'b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa'},
+ {'crossbeam-deque-0.8.5.tar.gz': '613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d'},
+ {'crossbeam-epoch-0.9.18.tar.gz': '5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e'},
+ {'crossbeam-utils-0.8.19.tar.gz': '248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345'},
+ {'csv-1.3.0.tar.gz': 'ac574ff4d437a7b5ad237ef331c17ccca63c46479e5b5453eb8e10bb99a759fe'},
+ {'csv-core-0.1.11.tar.gz': '5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70'},
+ {'custom_derive-0.1.7.tar.gz': 'ef8ae57c4978a2acd8b869ce6b9ca1dfe817bff704c220209fdef2c0b75a01b9'},
+ {'derive-new-0.5.9.tar.gz': '3418329ca0ad70234b9735dc4ceed10af4df60eff9c8e7b06cb5e520d92c3535'},
+ {'editdistancek-1.0.2.tar.gz': '3e02df23d5b1c6f9e69fa603b890378123b93073df998a21e6e33b9db0a32613'},
+ {'either-1.11.0.tar.gz': 'a47c1c47d2f5964e29c61246e81db715514cd532db6b5116a25ea3c03d6780a2'},
+ {'enum-map-2.7.3.tar.gz': '6866f3bfdf8207509a033af1a75a7b08abda06bbaaeae6669323fd5a097df2e9'},
+ {'enum-map-derive-0.17.0.tar.gz': 'f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb'},
+ {'equivalent-1.0.1.tar.gz': '5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5'},
+ {'feature-probe-0.1.1.tar.gz': '835a3dc7d1ec9e75e2b5fb4ba75396837112d2060b03f7d43bc1897c7f7211da'},
+ {'fixedbitset-0.4.2.tar.gz': '0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80'},
+ {'flate2-1.0.28.tar.gz': '46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e'},
+ {'fxhash-0.2.1.tar.gz': 'c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c'},
+ {'getrandom-0.2.14.tar.gz': '94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c'},
+ {'hashbrown-0.14.3.tar.gz': '290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604'},
+ {'heck-0.4.1.tar.gz': '95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8'},
+ {'heck-0.5.0.tar.gz': '2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea'},
+ {'hermit-abi-0.1.19.tar.gz': '62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33'},
+ {'indexmap-2.2.6.tar.gz': '168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26'},
+ {'itertools-0.11.0.tar.gz': 'b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57'},
+ {'itertools-num-0.1.3.tar.gz': 'a872a22f9e6f7521ca557660adb96dd830e54f0f490fa115bb55dd69d38b27e7'},
+ {'itoa-1.0.11.tar.gz': '49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b'},
+ {'lazy_static-1.4.0.tar.gz': 'e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646'},
+ {'libc-0.2.153.tar.gz': '9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd'},
+ {'libm-0.2.8.tar.gz': '4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058'},
+ {'libz-ng-sys-1.1.15.tar.gz': 'c6409efc61b12687963e602df8ecf70e8ddacf95bc6576bcf16e3ac6328083c5'},
+ {'libz-sys-1.1.16.tar.gz': '5e143b5e666b2695d28f6bca6497720813f699c9602dd7f5cac91008b8ada7f9'},
+ {'lzma-sys-0.1.20.tar.gz': '5fda04ab3764e6cde78b9974eec4f779acaba7c4e84b36eca3cf77c581b85d27'},
+ {'matrixmultiply-0.3.8.tar.gz': '7574c1cf36da4798ab73da5b215bbf444f50718207754cb522201d78d1cd0ff2'},
+ {'memchr-2.7.2.tar.gz': '6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d'},
+ {'minimap2-0.1.17+minimap2.2.27.tar.gz': 'd920763956405bd0cbeead7e4415097d5780f8a8ce4e1dde0415d15736597dfd'},
+ {'minimap2-sys-0.1.18+minimap2.2.27.tar.gz': '185d3f931e11c1df371455a01e93a0037041d011705b5ff1d283d619b234c47c'},
+ {'miniz_oxide-0.7.2.tar.gz': '9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7'},
+ {'multimap-0.9.1.tar.gz': 'e1a5d38b9b352dbd913288736af36af41c48d61b1a8cd34bcecd727561b7d511'},
+ {'nalgebra-0.29.0.tar.gz': 'd506eb7e08d6329505faa8a3a00a5dcc6de9f76e0c77e4b75763ae3c770831ff'},
+ {'nalgebra-macros-0.1.0.tar.gz': '01fcc0b8149b4632adc89ac3b7b31a12fb6099a0317a4eb2ebff574ef7de7218'},
+ {'ndarray-0.15.6.tar.gz': 'adb12d4e967ec485a5f71c6311fe28158e9d6f4bc4a447b474184d0f91a8fa32'},
+ {'needletail-0.5.1.tar.gz': 'db05a5ab397f64070d8c998fa0fbb84e484b81f95752af317dac183a82d9295d'},
+ {'newtype_derive-0.1.6.tar.gz': 'ac8cd24d9f185bb7223958d8c1ff7a961b74b1953fd05dba7cc568a63b3861ec'},
+ {'num-complex-0.4.5.tar.gz': '23c6602fda94a57c990fe0df199a035d83576b496aa29f4e634a8ac6004e68a6'},
+ {'num-integer-0.1.46.tar.gz': '7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f'},
+ {'num-rational-0.4.1.tar.gz': '0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0'},
+ {'num-traits-0.2.18.tar.gz': 'da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a'},
+ {'ordered-float-3.9.2.tar.gz': 'f1e1c390732d15f1d48471625cd92d154e66db2c56645e29a9cd26f4699f72dc'},
+ {'paste-1.0.14.tar.gz': 'de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c'},
+ {'petgraph-0.6.4.tar.gz': 'e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9'},
+ {'pkg-config-0.3.30.tar.gz': 'd231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec'},
+ {'ppv-lite86-0.2.17.tar.gz': '5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de'},
+ {'proc-macro2-1.0.81.tar.gz': '3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba'},
+ {'quote-1.0.36.tar.gz': '0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7'},
+ {'rand-0.8.5.tar.gz': '34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404'},
+ {'rand_chacha-0.3.1.tar.gz': 'e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88'},
+ {'rand_core-0.6.4.tar.gz': 'ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c'},
+ {'rand_distr-0.4.3.tar.gz': '32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31'},
+ {'rawpointer-0.2.1.tar.gz': '60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3'},
+ {'rayon-1.10.0.tar.gz': 'b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa'},
+ {'rayon-core-1.12.1.tar.gz': '1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2'},
+ {'regex-1.10.4.tar.gz': 'c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c'},
+ {'regex-automata-0.4.6.tar.gz': '86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea'},
+ {'regex-syntax-0.8.3.tar.gz': 'adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56'},
+ {'rustc_version-0.1.7.tar.gz': 'c5f5376ea5e30ce23c03eb77cbe4962b988deead10910c372b226388b594c084'},
+ {'rustversion-1.0.15.tar.gz': '80af6f9131f277a45a3fba6ce8e2258037bb0477a67e610d3c1fe046ab31de47'},
+ {'ryu-1.0.17.tar.gz': 'e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1'},
+ {'safe_arch-0.7.1.tar.gz': 'f398075ce1e6a179b46f51bd88d0598b92b00d3551f1a2d4ac49e771b56ac354'},
+ {'semver-0.1.20.tar.gz': 'd4f410fedcf71af0345d7607d246e7ad15faaadd49d240ee3b24e5dc21a820ac'},
+ {'serde-1.0.198.tar.gz': '9846a40c979031340571da2545a4e5b7c4163bdae79b301d5f86d03979451fcc'},
+ {'serde_derive-1.0.198.tar.gz': 'e88edab869b01783ba905e7d0153f9fc1a6505a96e4ad3018011eedb838566d9'},
+ {'simba-0.6.0.tar.gz': 'f0b7840f121a46d63066ee7a99fc81dcabbc6105e437cae43528cea199b5a05f'},
+ {'simdutf8-0.1.4.tar.gz': 'f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a'},
+ {'statrs-0.16.0.tar.gz': '2d08e5e1748192713cc281da8b16924fb46be7b0c2431854eadc785823e5696e'},
+ {'strsim-0.11.1.tar.gz': '7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f'},
+ {'strum-0.25.0.tar.gz': '290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125'},
+ {'strum_macros-0.25.3.tar.gz': '23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0'},
+ {'syn-1.0.109.tar.gz': '72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237'},
+ {'syn-2.0.60.tar.gz': '909518bc7b1c9b779f1bbf07f2929d35af9f0f37e47c6e9ef7f9dddc1e1821f3'},
+ {'thiserror-1.0.58.tar.gz': '03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297'},
+ {'thiserror-impl-1.0.58.tar.gz': 'c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7'},
+ {'triple_accel-0.4.0.tar.gz': '22048bc95dfb2ffd05b1ff9a756290a009224b60b2f0e7525faeee7603851e63'},
+ {'typenum-1.17.0.tar.gz': '42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825'},
+ {'unicode-ident-1.0.12.tar.gz': '3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b'},
+ {'utf8parse-0.2.1.tar.gz': '711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a'},
+ {'vcpkg-0.2.15.tar.gz': 'accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426'},
+ {'vec_map-0.8.2.tar.gz': 'f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191'},
+ {'wasi-0.11.0+wasi-snapshot-preview1.tar.gz': '9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423'},
+ {'wide-0.7.16.tar.gz': '81a1851a719f11d1d2fea40e15c72f6c00de8c142d7ac47c1441cc7e4d0d5bc6'},
+ {'winapi-0.3.9.tar.gz': '5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419'},
+ {'winapi-i686-pc-windows-gnu-0.4.0.tar.gz': 'ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6'},
+ {'winapi-x86_64-pc-windows-gnu-0.4.0.tar.gz': '712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f'},
+ {'windows-sys-0.52.0.tar.gz': '282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d'},
+ {'windows-targets-0.52.5.tar.gz': '6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb'},
+ {'windows_aarch64_gnullvm-0.52.5.tar.gz': '7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263'},
+ {'windows_aarch64_msvc-0.52.5.tar.gz': '9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6'},
+ {'windows_i686_gnu-0.52.5.tar.gz': '88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670'},
+ {'windows_i686_gnullvm-0.52.5.tar.gz': '87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9'},
+ {'windows_i686_msvc-0.52.5.tar.gz': 'db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf'},
+ {'windows_x86_64_gnu-0.52.5.tar.gz': '4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9'},
+ {'windows_x86_64_gnullvm-0.52.5.tar.gz': '852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596'},
+ {'windows_x86_64_msvc-0.52.5.tar.gz': 'bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0'},
+ {'xz2-0.1.7.tar.gz': '388c44dc09d76f1536602ead6d325eb532f5c122f17782bd57fb47baeeb767e2'},
+ {'chopper-0.9.0_fix_incorrect_version.patch': 'b3f3dfa620fbda6d00a73eafc8508a73ac4d96f6edfb0e804b3ff0bc149e37cd'},
+]
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('CMake', '3.26.3'),
+ ('Rust', '1.75.0'),
+]
+
+dependencies = [
+ ('bzip2', '1.0.8'),
+ ('XZ', '5.4.2'),
+]
+
+crates = [
+ ('adler', '1.0.2'),
+ ('aho-corasick', '1.1.3'),
+ ('anstream', '0.6.13'),
+ ('anstyle', '1.0.6'),
+ ('anstyle-parse', '0.2.3'),
+ ('anstyle-query', '1.0.2'),
+ ('anstyle-wincon', '3.0.2'),
+ ('anyhow', '1.0.82'),
+ ('approx', '0.5.1'),
+ ('atty', '0.2.14'),
+ ('autocfg', '1.2.0'),
+ ('bio', '1.6.0'),
+ ('bio-types', '1.0.1'),
+ ('bit-set', '0.5.3'),
+ ('bit-vec', '0.6.3'),
+ ('buffer-redux', '1.0.1'),
+ ('bv', '0.11.1'),
+ ('bytecount', '0.6.8'),
+ ('bytemuck', '1.15.0'),
+ ('byteorder', '1.5.0'),
+ ('bzip2', '0.4.4'),
+ ('bzip2-sys', '0.1.11+1.0.8'),
+ ('cc', '1.0.94'),
+ ('cfg-if', '1.0.0'),
+ ('clap', '4.5.4'),
+ ('clap_builder', '4.5.2'),
+ ('clap_derive', '4.5.4'),
+ ('clap_lex', '0.7.0'),
+ ('cmake', '0.1.50'),
+ ('colorchoice', '1.0.0'),
+ ('crc32fast', '1.4.0'),
+ ('crossbeam-deque', '0.8.5'),
+ ('crossbeam-epoch', '0.9.18'),
+ ('crossbeam-utils', '0.8.19'),
+ ('csv', '1.3.0'),
+ ('csv-core', '0.1.11'),
+ ('custom_derive', '0.1.7'),
+ ('derive-new', '0.5.9'),
+ ('editdistancek', '1.0.2'),
+ ('either', '1.11.0'),
+ ('enum-map', '2.7.3'),
+ ('enum-map-derive', '0.17.0'),
+ ('equivalent', '1.0.1'),
+ ('feature-probe', '0.1.1'),
+ ('fixedbitset', '0.4.2'),
+ ('flate2', '1.0.28'),
+ ('fxhash', '0.2.1'),
+ ('getrandom', '0.2.14'),
+ ('hashbrown', '0.14.3'),
+ ('heck', '0.4.1'),
+ ('heck', '0.5.0'),
+ ('hermit-abi', '0.1.19'),
+ ('indexmap', '2.2.6'),
+ ('itertools', '0.11.0'),
+ ('itertools-num', '0.1.3'),
+ ('itoa', '1.0.11'),
+ ('lazy_static', '1.4.0'),
+ ('libc', '0.2.153'),
+ ('libm', '0.2.8'),
+ ('libz-ng-sys', '1.1.15'),
+ ('libz-sys', '1.1.16'),
+ ('lzma-sys', '0.1.20'),
+ ('matrixmultiply', '0.3.8'),
+ ('memchr', '2.7.2'),
+ ('minimap2', '0.1.17+minimap2.2.27'),
+ ('minimap2-sys', '0.1.18+minimap2.2.27'),
+ ('miniz_oxide', '0.7.2'),
+ ('multimap', '0.9.1'),
+ ('nalgebra', '0.29.0'),
+ ('nalgebra-macros', '0.1.0'),
+ ('ndarray', '0.15.6'),
+ ('needletail', '0.5.1'),
+ ('newtype_derive', '0.1.6'),
+ ('num-complex', '0.4.5'),
+ ('num-integer', '0.1.46'),
+ ('num-rational', '0.4.1'),
+ ('num-traits', '0.2.18'),
+ ('ordered-float', '3.9.2'),
+ ('paste', '1.0.14'),
+ ('petgraph', '0.6.4'),
+ ('pkg-config', '0.3.30'),
+ ('ppv-lite86', '0.2.17'),
+ ('proc-macro2', '1.0.81'),
+ ('quote', '1.0.36'),
+ ('rand', '0.8.5'),
+ ('rand_chacha', '0.3.1'),
+ ('rand_core', '0.6.4'),
+ ('rand_distr', '0.4.3'),
+ ('rawpointer', '0.2.1'),
+ ('rayon', '1.10.0'),
+ ('rayon-core', '1.12.1'),
+ ('regex', '1.10.4'),
+ ('regex-automata', '0.4.6'),
+ ('regex-syntax', '0.8.3'),
+ ('rustc_version', '0.1.7'),
+ ('rustversion', '1.0.15'),
+ ('ryu', '1.0.17'),
+ ('safe_arch', '0.7.1'),
+ ('semver', '0.1.20'),
+ ('serde', '1.0.198'),
+ ('serde_derive', '1.0.198'),
+ ('simba', '0.6.0'),
+ ('simdutf8', '0.1.4'),
+ ('statrs', '0.16.0'),
+ ('strsim', '0.11.1'),
+ ('strum', '0.25.0'),
+ ('strum_macros', '0.25.3'),
+ ('syn', '1.0.109'),
+ ('syn', '2.0.60'),
+ ('thiserror', '1.0.58'),
+ ('thiserror-impl', '1.0.58'),
+ ('triple_accel', '0.4.0'),
+ ('typenum', '1.17.0'),
+ ('unicode-ident', '1.0.12'),
+ ('utf8parse', '0.2.1'),
+ ('vcpkg', '0.2.15'),
+ ('vec_map', '0.8.2'),
+ ('wasi', '0.11.0+wasi-snapshot-preview1'),
+ ('wide', '0.7.16'),
+ ('winapi', '0.3.9'),
+ ('winapi-i686-pc-windows-gnu', '0.4.0'),
+ ('winapi-x86_64-pc-windows-gnu', '0.4.0'),
+ ('windows-sys', '0.52.0'),
+ ('windows-targets', '0.52.5'),
+ ('windows_aarch64_gnullvm', '0.52.5'),
+ ('windows_aarch64_msvc', '0.52.5'),
+ ('windows_i686_gnu', '0.52.5'),
+ ('windows_i686_gnullvm', '0.52.5'),
+ ('windows_i686_msvc', '0.52.5'),
+ ('windows_x86_64_gnu', '0.52.5'),
+ ('windows_x86_64_gnullvm', '0.52.5'),
+ ('windows_x86_64_msvc', '0.52.5'),
+ ('xz2', '0.1.7'),
+]
+sanity_check_paths = {
+ 'files': ['bin/chopper'],
+ 'dirs': [],
+}
+
+sanity_check_commands = [
+ 'chopper --help',
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/chopper/chopper-0.9.0_fix_incorrect_version.patch b/easybuild/easyconfigs/c/chopper/chopper-0.9.0_fix_incorrect_version.patch
new file mode 100644
index 00000000000..57c15b94db4
--- /dev/null
+++ b/easybuild/easyconfigs/c/chopper/chopper-0.9.0_fix_incorrect_version.patch
@@ -0,0 +1,28 @@
+Fix incorrect version number in the 0.9.0 tar file.
+
+Åke Sandgren, 2024-09-16
+diff --git a/Cargo.lock b/Cargo.lock
+index 3e8f1fe..53fa5da 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -236,7 +236,7 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+ [[package]]
+ name = "chopper"
+-version = "0.8.0"
++version = "0.9.0"
+ dependencies = [
+ "approx",
+ "atty",
+diff --git a/Cargo.toml b/Cargo.toml
+index f268dce..7f7277a 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -1,6 +1,6 @@
+ [package]
+ name = "chopper"
+-version = "0.8.0"
++version = "0.9.0"
+ authors = ["wdecoster "]
+ edition = "2021"
+
diff --git a/easybuild/easyconfigs/c/cisDIVERSITY/cisDIVERSITY-1.1-foss-2023a-Python-2.7.18.eb b/easybuild/easyconfigs/c/cisDIVERSITY/cisDIVERSITY-1.1-foss-2023a-Python-2.7.18.eb
new file mode 100644
index 00000000000..76a00927a51
--- /dev/null
+++ b/easybuild/easyconfigs/c/cisDIVERSITY/cisDIVERSITY-1.1-foss-2023a-Python-2.7.18.eb
@@ -0,0 +1,56 @@
+easyblock = 'MakeCp'
+
+name = 'cisDIVERSITY'
+version = '1.1'
+versionsuffix = '-Python-%(pyver)s'
+
+homepage = 'https://github.com/NarlikarLab/cisDIVERSITY/'
+description = """A module discovery tool used for finding diverse sequence architectures,
+each one characterized by presence or absence of de novo motifs."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+source_urls = ['https://github.com/NarlikarLab/cisDIVERSITY/releases/download/v%(version)s/']
+sources = [{
+ 'download_filename': '%(name)s_v%(version)s.tar.gz',
+ 'filename': SOURCE_TAR_GZ,
+}]
+checksums = ['4ba5967fa754ec78b9dd6b6dc9d2ee5de87dbb4d7906d47e57e73aec87897725']
+
+dependencies = [
+ ('Python', '2.7.18'),
+ ('R', '4.3.2'),
+ ('numpy', '1.16.6', versionsuffix),
+]
+
+exts_defaultclass = 'RPackage'
+exts_default_options = {
+ 'source_urls': [
+ 'https://cran.r-project.org/src/contrib/Archive/%(name)s', # package archive
+ 'https://cran.r-project.org/src/contrib/', # current version of packages
+ 'https://cran.freestatistics.org/src/contrib', # mirror alternative for current packages
+ ],
+ 'source_tmpl': '%(name)s_%(version)s.tar.gz',
+}
+
+exts_list = [
+ ('corrplot', '0.95', {
+ 'checksums': ['84a31f675041e589201b4d640753302abc10ccc2c0ca0a409b5153861989d776'],
+ }),
+]
+
+files_to_copy = [(['learnDiverseModules'], 'bin')]
+
+modextrapaths = {'R_LIBS_SITE': ''}
+
+sanity_check_paths = {
+ 'files': ['bin/learnDiverseModules'],
+ 'dirs': ['corrplot'],
+}
+
+sanity_check_commands = [
+ 'learnDiverseModules -h',
+ 'Rscript -e "library(corrplot)"',
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/cliquer/cliquer-1.21-GCCcore-13.2.0.eb b/easybuild/easyconfigs/c/cliquer/cliquer-1.21-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..3fa7d597761
--- /dev/null
+++ b/easybuild/easyconfigs/c/cliquer/cliquer-1.21-GCCcore-13.2.0.eb
@@ -0,0 +1,42 @@
+easyblock = 'MakeCp'
+
+name = 'cliquer'
+version = '1.21'
+
+homepage = 'https://users.aalto.fi/~pat/cliquer.html'
+description = """Cliquer is a set of C routines for finding cliques in an arbitrary weighted graph.
+ It uses an exact branch-and-bound algorithm developed by Patric Ostergard. It is designed with
+ the aim of being efficient while still being flexible and easy to use."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['http://users.aalto.fi/~pat/cliquer/']
+sources = [SOURCE_TAR_GZ]
+checksums = ['ff306d27eda82383c0257065e3ffab028415ac9af73bccfdd9c2405b797ed1f1']
+
+builddependencies = [('binutils', '2.40')]
+
+local_sharedlib = 'libcliquer.%s' % SHLIB_EXT
+
+prebuildopts = 'sed -i "s/^CFLAGS=/CFLAGS=$CFLAGS /" Makefile && '
+
+buildopts = ' && $CC -shared $CFLAGS $LDFLAGS -o %s *.o' % local_sharedlib
+
+local_headers = ['cliquer', 'set', 'graph', 'misc', 'reorder', 'cliquerconf']
+
+files_to_copy = [
+ (['cl'], 'bin'),
+ ([local_sharedlib], 'lib'),
+ (['%s.h' % h for h in local_headers], 'include/cliquer'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/cl', 'lib/%s' % local_sharedlib] +
+ ['include/cliquer/%s.h' % h for h in local_headers],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["cl --help"]
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/c/cmcrameri/cmcrameri-1.9-gfbf-2023a.eb b/easybuild/easyconfigs/c/cmcrameri/cmcrameri-1.9-gfbf-2023a.eb
new file mode 100644
index 00000000000..81e043144e9
--- /dev/null
+++ b/easybuild/easyconfigs/c/cmcrameri/cmcrameri-1.9-gfbf-2023a.eb
@@ -0,0 +1,27 @@
+easyblock = 'PythonBundle'
+
+name = 'cmcrameri'
+version = '1.9'
+
+homepage = 'https://github.com/callumrollo/cmcrameri'
+description = "Python wrapper around Fabio Crameri's perceptually uniform colormaps."
+
+toolchain = {'name': 'gfbf', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('matplotlib', '3.7.2'),
+]
+
+use_pip = True
+
+exts_list = [
+ (name, version, {
+ 'checksums': ['56faf9b7f53eb03fed450137bec7dc25c1854929d7b841b9c75616fc2c357640'],
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/c/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.89.1.eb b/easybuild/easyconfigs/c/code-server/code-server-4.89.1.eb
new file mode 100644
index 00000000000..dfd586cb4fc
--- /dev/null
+++ b/easybuild/easyconfigs/c/code-server/code-server-4.89.1.eb
@@ -0,0 +1,20 @@
+name = 'code-server'
+version = '4.89.1'
+
+homepage = 'https://github.com/coder/code-server'
+description = """Run VS Code on any machine anywhere and access it in the browser."""
+
+toolchain = SYSTEM
+
+source_urls = ['https://github.com/coder/code-server/releases/download/v%(version)s/']
+sources = ['code-server-%(version)s-linux-%(mapped_arch)s.tar.gz']
+checksums = [
+ {
+ 'code-server-%(version)s-linux-amd64.tar.gz':
+ '5c3769b1ab5cbb2eceb092524dc46f558905e4260155b477d3a313f9ea25ca33',
+ 'code-server-%(version)s-linux-arm64.tar.gz':
+ '69d3d1f7158d6e2125bd2f831611ab959a2aa80d5a7d96422a44070eb2b8645b',
+ }
+]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/c/code-server/code-server-4.90.2.eb b/easybuild/easyconfigs/c/code-server/code-server-4.90.2.eb
new file mode 100644
index 00000000000..d85b34c752c
--- /dev/null
+++ b/easybuild/easyconfigs/c/code-server/code-server-4.90.2.eb
@@ -0,0 +1,20 @@
+name = 'code-server'
+version = '4.90.2'
+
+homepage = 'https://github.com/coder/code-server'
+description = """Run VS Code on any machine anywhere and access it in the browser."""
+
+toolchain = SYSTEM
+
+source_urls = ['https://github.com/coder/code-server/releases/download/v%(version)s/']
+sources = ['code-server-%(version)s-linux-%(mapped_arch)s.tar.gz']
+checksums = [
+ {
+ 'code-server-%(version)s-linux-amd64.tar.gz':
+ 'c66b57759e41c66c28577eaefa4cce106f7b5ad5fb3ab394baea5eaa5b604cce',
+ 'code-server-%(version)s-linux-arm64.tar.gz':
+ '12e51e3575069c438aa4dee93bddfc221e7850192a7745b84fc77b420cedf205',
+ }
+]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/c/code-server/code-server-4.93.1.eb b/easybuild/easyconfigs/c/code-server/code-server-4.93.1.eb
new file mode 100644
index 00000000000..3217ab284bf
--- /dev/null
+++ b/easybuild/easyconfigs/c/code-server/code-server-4.93.1.eb
@@ -0,0 +1,20 @@
+name = 'code-server'
+version = '4.93.1'
+
+homepage = 'https://github.com/coder/code-server'
+description = """Run VS Code on any machine anywhere and access it in the browser."""
+
+toolchain = SYSTEM
+
+source_urls = ['https://github.com/coder/code-server/releases/download/v%(version)s/']
+sources = ['code-server-%(version)s-linux-%(mapped_arch)s.tar.gz']
+checksums = [
+ {
+ 'code-server-%(version)s-linux-amd64.tar.gz':
+ '8c001f865cf082e914375e8f28e9e15b25faa1f3de455ddc30158d54fc2326d3',
+ 'code-server-%(version)s-linux-arm64.tar.gz':
+ '1e29278529d0d8376d1344ed816b37f4e88a5ba16ce74cb1173fe437c8519852',
+ }
+]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/c/colorize/colorize-0.7.7-GCC-12.3.0.eb b/easybuild/easyconfigs/c/colorize/colorize-0.7.7-GCC-12.3.0.eb
new file mode 100644
index 00000000000..35921013c3e
--- /dev/null
+++ b/easybuild/easyconfigs/c/colorize/colorize-0.7.7-GCC-12.3.0.eb
@@ -0,0 +1,27 @@
+easyblock = 'RubyGem'
+
+name = 'colorize'
+version = '0.7.7'
+
+homepage = 'https://github.com/fazibear/colorize'
+description = """Ruby gem for colorizing text using ANSI escape sequences.
+Extends String class or add a ColorizedString with methods to set the text color, background color and text effects."""
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+
+source_urls = ['https://rubygems.org/downloads/']
+sources = ['%(name)s-%(version)s.gem']
+checksums = ['d6ab95a5fcdea3c36c3327d38c1e79e2950ee1788506d8489ae35db330937a99']
+
+gem_file = '%(name)s-%(version)s.gem'
+
+dependencies = [
+ ('Ruby', '3.3.0'),
+]
+
+sanity_check_paths = {
+ 'files': [],
+ 'dirs': ['gems/%(namelower)s-%(version)s'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/c/columba/columba-1.2-20240326-GCC-13.3.0.eb b/easybuild/easyconfigs/c/columba/columba-1.2-20240326-GCC-13.3.0.eb
new file mode 100644
index 00000000000..bbdb6d884b8
--- /dev/null
+++ b/easybuild/easyconfigs/c/columba/columba-1.2-20240326-GCC-13.3.0.eb
@@ -0,0 +1,29 @@
+easyblock = 'CMakeMake'
+
+name = 'columba'
+local_commit = '526b0a0'
+version = '1.2-20240326'
+
+homepage = 'https://github.com/biointec/columba'
+description = "Fast Approximate Pattern Matching using Search Schemes"
+
+toolchain = {'name': 'GCC', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/biointec/columba/archive']
+sources = [{'download_filename': '%s.tar.gz' % local_commit, 'filename': SOURCE_TAR_GZ}]
+checksums = ['018898cf6ba93a974a141b397b68a7df13457e80bf92b1747f7b30c4a0d756f1']
+
+builddependencies = [
+ ('CMake', '3.29.3'),
+ ('sparsehash', '2.0.4'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/columba', 'bin/columba_build'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["columba --help"]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/c/configurable-http-proxy/configurable-http-proxy-4.6.1-GCCcore-13.2.0.eb b/easybuild/easyconfigs/c/configurable-http-proxy/configurable-http-proxy-4.6.1-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..c8aae63595d
--- /dev/null
+++ b/easybuild/easyconfigs/c/configurable-http-proxy/configurable-http-proxy-4.6.1-GCCcore-13.2.0.eb
@@ -0,0 +1,32 @@
+easyblock = 'Binary'
+
+name = 'configurable-http-proxy'
+version = '4.6.1'
+
+homepage = 'https://github.com/jupyterhub/configurable-http-proxy'
+description = """HTTP proxy for node.js including a REST API for updating the routing table.
+ Developed as a part of the Jupyter Hub multi-user server."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+source_urls = ['https://github.com/jupyterhub/%(name)s/archive/']
+sources = ['%(version)s.tar.gz']
+checksums = ['52bac444b1a0629e7817102949f685bdb719d0cbfd0abbaeaa91d42f1ed60852']
+
+builddependencies = [
+ ('binutils', '2.40'),
+]
+dependencies = [
+ ('nodejs', '20.9.0'),
+]
+
+install_cmd = "npm install --no-package-lock -g --prefix %(installdir)s %(version)s.tar.gz"
+
+sanity_check_paths = {
+ 'files': ['bin/%(name)s'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ['%(name)s --version']
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/c/connected-components-3d/connected-components-3d-3.14.1-foss-2023a.eb b/easybuild/easyconfigs/c/connected-components-3d/connected-components-3d-3.14.1-foss-2023a.eb
new file mode 100644
index 00000000000..5a366beb6d0
--- /dev/null
+++ b/easybuild/easyconfigs/c/connected-components-3d/connected-components-3d-3.14.1-foss-2023a.eb
@@ -0,0 +1,26 @@
+easyblock = 'PythonPackage'
+
+name = 'connected-components-3d'
+version = '3.14.1'
+
+homepage = 'https://github.com/seung-lab/connected-components-3d/'
+description = """cc3d is an implementation of connected components in three dimensions using a 26, 18,
+ or 6-connected neighborhood in 3D or 4 and 8-connected in 2D."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+sources = [SOURCE_TAR_GZ]
+checksums = ['fdc4099508b734b266a42ee12534ee42e29467c28506b137e8c1edc8c7513c92']
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+]
+
+download_dep_fail = True
+use_pip = True
+sanity_pip_check = True
+
+options = {'modulename': 'cc3d'}
+
+moduleclass = 'data'
diff --git a/easybuild/easyconfigs/c/cooler/cooler-0.10.2-foss-2023a.eb b/easybuild/easyconfigs/c/cooler/cooler-0.10.2-foss-2023a.eb
new file mode 100644
index 00000000000..57091228de3
--- /dev/null
+++ b/easybuild/easyconfigs/c/cooler/cooler-0.10.2-foss-2023a.eb
@@ -0,0 +1,49 @@
+easyblock = 'PythonBundle'
+
+name = 'cooler'
+version = '0.10.2'
+
+homepage = 'https://open2c.github.io/cooler'
+description = """Cooler is a support library for a storage format, also called cooler, used to store
+ genomic interaction data of any size, such as Hi-C contact matrices."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+builddependencies = [
+ ('hatchling', '1.18.0'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('h5py', '3.9.0'),
+ ('PyYAML', '6.0'),
+ ('pyfaidx', '0.8.1.1'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('asciitree', '0.3.3', {
+ 'checksums': ['4aa4b9b649f85e3fcb343363d97564aa1fb62e249677f2e18a96765145cc0f6e'],
+ }),
+ ('toolz', '0.12.0', {
+ 'checksums': ['88c570861c440ee3f2f6037c4654613228ff40c93a6c25e0eba70d17282c6194'],
+ }),
+ ('cytoolz', '0.12.3', {
+ 'checksums': ['4503dc59f4ced53a54643272c61dc305d1dbbfbd7d6bdf296948de9f34c3a282'],
+ }),
+ ('dill', '0.3.8', {
+ 'checksums': ['3ebe3c479ad625c4553aca177444d89b486b1d84982eeacded644afc0cf797ca'],
+ }),
+ ('multiprocess', '0.70.16', {
+ 'checksums': ['161af703d4652a0e1410be6abccecde4a7ddffd19341be0a7011b94aeb171ac1'],
+ }),
+ (name, version, {
+ 'checksums': ['3780a2e69b2ec89882dfc2775de5d9b54ccb79569dc5f042b4851599388112dc'],
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/cooler/cooler-0.10.2-foss-2023b.eb b/easybuild/easyconfigs/c/cooler/cooler-0.10.2-foss-2023b.eb
new file mode 100644
index 00000000000..f092666e99d
--- /dev/null
+++ b/easybuild/easyconfigs/c/cooler/cooler-0.10.2-foss-2023b.eb
@@ -0,0 +1,46 @@
+easyblock = 'PythonBundle'
+
+name = 'cooler'
+version = '0.10.2'
+
+homepage = 'https://open2c.github.io/cooler'
+description = """Cooler is a support library for a storage format, also called cooler, used to store
+ genomic interaction data of any size, such as Hi-C contact matrices."""
+
+toolchain = {'name': 'foss', 'version': '2023b'}
+
+builddependencies = [
+ ('hatchling', '1.18.0'),
+]
+
+dependencies = [
+ ('Python', '3.11.5'),
+ ('Python-bundle-PyPI', '2023.10'),
+ ('SciPy-bundle', '2023.11'),
+ ('h5py', '3.11.0'),
+ ('PyYAML', '6.0.1'),
+ ('pyfaidx', '0.8.1.1'),
+ ('dill', '0.3.8'),
+ ('multiprocess', '0.70.16'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('asciitree', '0.3.3', {
+ 'checksums': ['4aa4b9b649f85e3fcb343363d97564aa1fb62e249677f2e18a96765145cc0f6e'],
+ }),
+ ('toolz', '1.0.0', {
+ 'checksums': ['2c86e3d9a04798ac556793bced838816296a2f085017664e4995cb40a1047a02'],
+ }),
+ ('cytoolz', '1.0.0', {
+ 'checksums': ['eb453b30182152f9917a5189b7d99046b6ce90cdf8aeb0feff4b2683e600defd'],
+ }),
+ (name, version, {
+ 'checksums': ['3780a2e69b2ec89882dfc2775de5d9b54ccb79569dc5f042b4851599388112dc'],
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/coxeter/coxeter-20180226-GCCcore-13.2.0.eb b/easybuild/easyconfigs/c/coxeter/coxeter-20180226-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..247bb5ac24d
--- /dev/null
+++ b/easybuild/easyconfigs/c/coxeter/coxeter-20180226-GCCcore-13.2.0.eb
@@ -0,0 +1,45 @@
+easyblock = 'ConfigureMake'
+
+name = 'coxeter'
+version = '20180226'
+local_commit = '7b5a1f0'
+
+homepage = 'https://github.com/tscrim/coxeter'
+description = """A library for the study of combinatorial aspects of Coxeter group theory"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+source_urls = ['https://github.com/tscrim/coxeter/archive/%s/' % local_commit]
+sources = [SOURCE_TAR_GZ]
+patches = [
+ 'coxeter-20180226_makefile.patch',
+ ('coxeter-20180226_sage_interface.patch', 0),
+]
+checksums = [
+ {'coxeter-20180226.tar.gz': '5e0668c40b29c03c438a6ebc0f49f13aaf155b4bcbff56303a753390e6fce3aa'},
+ {'coxeter-20180226_makefile.patch': '229ed201e41bae0ae7b22aa21d5007127aeb52fd158543dd5fff2e89797e211f'},
+ {'coxeter-20180226_sage_interface.patch': '18ba75e51a944ffccb7fa440b823f68a0aad9066e8edcdd2b52bac6b43404bd3'},
+]
+
+builddependencies = [('binutils', '2.40')]
+
+skipsteps = ['configure']
+
+buildopts = 'CC="$CC" CFLAGS="$CFLAGS"'
+preinstallopts = 'mkdir -p "%(installdir)s/bin" "%(installdir)s/lib" && '
+installopts = 'SAGE_LOCAL="%(installdir)s"'
+
+sanity_check_paths = {
+ 'files': [
+ 'bin/%(name)s',
+ 'lib/lib%%(name)s3.%s' % SHLIB_EXT,
+ ],
+ 'dirs': [
+ 'include/%(name)s',
+ 'share/%(name)s',
+ ]
+}
+
+sanity_check_commands = ['echo "qq" | coxeter']
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/c/coxeter/coxeter-20180226_makefile.patch b/easybuild/easyconfigs/c/coxeter/coxeter-20180226_makefile.patch
new file mode 100644
index 00000000000..d00d6860689
--- /dev/null
+++ b/easybuild/easyconfigs/c/coxeter/coxeter-20180226_makefile.patch
@@ -0,0 +1,101 @@
+Allows installation of files needed for Sagemath
+Source: https://gitlab.archlinux.org/archlinux/packaging/packages/coxeter/-/blob/main/coxeter-makefile.patch
+diff -u makefile.orig makefile
+--- makefile.orig 2018-02-26 13:57:36.000000000 +0100
++++ makefile 2024-08-16 14:15:51.889503570 +0200
+@@ -12,6 +12,7 @@
+ gflags = -c $(includedirs) -g
+
+ cflags = $(gflags) # the default setting
++cflags = -c $(includedirs) $(CPPFLAGS) $(CXXFLAGS) -fPIC
+
+ ifdef optimize
+ NDEBUG = true
+@@ -22,18 +23,74 @@
+ cflags = $(pflags)
+ endif
+
+-cc = g++
++EXENAME = coxeter
++LIBNAME = coxeter3
++ifeq ($(UNAME),Darwin)
++ EXEEXT =
++ LIBPREFIX = lib
++ LIBEXT = .dylib
++ LIBDIR = lib
++ LINKFLAGS = -dynamiclib -Wl,-headerpad_max_install_names,-undefined,dynamic_lookup,-compatibility_version,3.0,-current_version,3.0,-install_name,$(SAGE_LOCAL)/lib/$(LIBPREFIX)$(LIBNAME)$(LIBEXT)
++ LINKLIBS =
++else
++ifeq ($(UNAME),CYGWIN)
++ EXEEXT = .exe
++ LIBPREFIX = cyg
++ LIBEXT = .dll
++ LIBDIR = bin
++ IMPLIB = lib$(LIBNAME).dll.a
++ LINKFLAGS = -shared -Wl,--out-implib=$(IMPLIB) -Wl,--export-all-symbols
++ LINKLIBS = -lc
++else
++ EXEEXT =
++ LIBPREFIX = lib
++ LIBEXT = .so
++ LIBDIR = lib
++ LINKFLAGS = $(LDFLAGS) -shared -Wl,-soname,libcoxeter3.so
++ LINKLIBS = -lc
++endif
++endif
++LIBRARY = $(LIBPREFIX)$(LIBNAME)$(LIBEXT)
+
+-all: coxeter #clean
++all: coxeter executable
+
+ coxeter: $(objects)
+- $(cc) -o coxeter $(objects)
++ $(CXX) $(LINKFLAGS) -o $(LIBRARY) $(objects) $(LINKLIBS)
++
++executable: $(objects)
++ $(CXX) $(LDFLAGS) -o $(EXENAME)$(EXEEXT) $(objects)
++
++DATADIR="$$SAGE_LOCAL/share/coxeter/"
++INCLUDEDIR="$$SAGE_LOCAL/include/coxeter/"
++LIBRARYDIR="$$SAGE_LOCAL/$(LIBDIR)"
++
++install: coxeter executable
++ cp $(EXENAME)$(EXEEXT) "$$SAGE_LOCAL/bin/"
++ cp $(LIBRARY) $(LIBRARYDIR)
++ if [ $(UNAME) = "CYGWIN" ]; then \
++ cp $(IMPLIB) "$$SAGE_LOCAL/lib/"; \
++ fi
++
++ mkdir -p $(DATADIR)
++ cp -r coxeter_matrices headers messages $(DATADIR)
++ mkdir -p $(INCLUDEDIR)
++ cp -r *.h *.hpp $(INCLUDEDIR)
++
++check: coxeter executable
++ $(EXENAME)$(EXEEXT) < test.input > test.output
++
++ if ! diff test.output.expected test.output > /dev/null; then \
++ echo >&2 "Error testing coxeter on test.input:"; \
++ diff test.output.expected test.output; \
++ exit 1; \
++ fi
++ rm -f test.output
+
+ clean:
+ rm -f $(objects)
+
+ %.o:%.cpp
+- $(cc) $(cflags) $*.cpp
++ $(CXX) $(cflags) $*.cpp
+
+ # dependencies --- these were generated automatically by make depend on my
+ # system; they are explicitly copied for portability. Only local dependencies
+@@ -43,7 +100,7 @@
+ # contents of tmp in lieu of the dependencies listed here.
+
+ %.d:%.cpp
+- @$(cc) -MM $*.cpp
++ @$(CXX) -MM $*.cpp
+ depend: $(dependencies)
+
+ affine.o: affine.cpp affine.h globals.h coxgroup.h coxtypes.h io.h list.h \
diff --git a/easybuild/easyconfigs/c/coxeter/coxeter-20180226_sage_interface.patch b/easybuild/easyconfigs/c/coxeter/coxeter-20180226_sage_interface.patch
new file mode 100644
index 00000000000..2b4cd427ca9
--- /dev/null
+++ b/easybuild/easyconfigs/c/coxeter/coxeter-20180226_sage_interface.patch
@@ -0,0 +1,89 @@
+Adds sage interface. See https://github.com/tscrim/coxeter/pull/14
+Source: https://gitlab.archlinux.org/archlinux/packaging/packages/coxeter/-/blob/git.20180226-4/coxeter-sage.patch
+diff -u /dev/null sage.h
+--- /dev/null 2024-08-27 08:29:37.672016778 +0200
++++ sage.h 2024-08-27 12:17:23.716096310 +0200
+@@ -0,0 +1,23 @@
++/*
++ Coxeter version 3.0 Copyright (C) 2009 Mike Hansen
++ See file main.cpp for full copyright notice
++*/
++
++#ifndef SAGE_H /* guard against multiple inclusions */
++#define SAGE_H
++
++#include "globals.h"
++#include "coxgroup.h"
++#include "coxtypes.h"
++#include "schubert.h"
++#include "list.h"
++
++namespace sage {
++ using namespace coxeter;
++ using namespace coxtypes;
++ using namespace list;
++
++ void interval(List& result, CoxGroup& W, const CoxWord& g, const CoxWord& h);
++}
++
++#endif
+diff -u /dev/null sage.cpp
+--- /dev/null 2024-08-27 08:29:37.672016778 +0200
++++ sage.cpp 2024-08-27 12:17:23.716096310 +0200
+@@ -0,0 +1,56 @@
++/*
++ Coxeter version 3.0 Copyright (C) 2009 Mike Hansen
++ See file main.cpp for full copyright notice
++*/
++
++#include "sage.h"
++
++namespace sage {
++
++ void interval(List& list, CoxGroup& W, const CoxWord& g, const CoxWord& h)
++
++ /*
++ Returns a list of the elements in the Bruhat interval between g and h.
++ Note that this assumes that g and h are in order.
++ */
++ {
++ if (not W.inOrder(g,h)) {
++ return;
++ }
++
++ W.extendContext(h);
++
++ CoxNbr x = W.contextNumber(g);
++ CoxNbr y = W.contextNumber(h);
++
++ BitMap b(W.contextSize());
++ W.extractClosure(b,y);
++
++ BitMap::ReverseIterator b_rend = b.rend();
++ List res(0);
++
++ for (BitMap::ReverseIterator i = b.rbegin(); i != b_rend; ++i)
++ if (not W.inOrder(x,*i)) {
++ BitMap bi(W.contextSize());
++ W.extractClosure(bi,*i);
++ CoxNbr z = *i; // andnot will invalidate iterator
++ b.andnot(bi);
++ b.setBit(z); // otherwise the decrement will not be correct
++ } else
++ res.append(*i);
++
++ schubert::NFCompare nfc(W.schubert(),W.ordering());
++ Permutation a(res.size());
++ sortI(res,nfc,a);
++
++ list.setSize(0);
++ for (size_t j = 0; j < res.size(); ++j) {
++ CoxWord w(0);
++ W.schubert().append(w, res[a[j]]);
++ list.append(w);
++ }
++
++ return;
++ }
++
++}
diff --git a/easybuild/easyconfigs/c/cp2k-input-tools/cp2k-input-tools-0.9.1-foss-2023a.eb b/easybuild/easyconfigs/c/cp2k-input-tools/cp2k-input-tools-0.9.1-foss-2023a.eb
new file mode 100644
index 00000000000..6e8baed0be5
--- /dev/null
+++ b/easybuild/easyconfigs/c/cp2k-input-tools/cp2k-input-tools-0.9.1-foss-2023a.eb
@@ -0,0 +1,45 @@
+easyblock = 'PythonBundle'
+
+name = 'cp2k-input-tools'
+version = '0.9.1'
+
+homepage = 'https://github.com/cp2k/cp2k-input-tools'
+description = "Fully validating pure-python CP2K input file parsers including preprocessing capabilities"
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+builddependencies = [
+ ('poetry', '1.5.1'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('Pint', '0.23'),
+ ('pydantic', '2.5.3'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('transitions', '0.9.2', {
+ 'checksums': ['2f8490dbdbd419366cef1516032ab06d07ccb5839ef54905e842a472692d4204'],
+ }),
+ (name, version, {
+ 'sources': ['cp2k_input_tools-%(version)s.tar.gz'],
+ 'checksums': ['bf7d229bbcfa41b1caaa32e7eb3c1c689d56bd1cbd4de674bd2fde8de4efb27c'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/fromcp2k'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = [
+ "fromcp2k --help",
+]
+
+sanity_pip_check = True
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/c/cpio/cpio-2.15-GCCcore-12.2.0.eb b/easybuild/easyconfigs/c/cpio/cpio-2.15-GCCcore-12.2.0.eb
new file mode 100644
index 00000000000..f97452acc3d
--- /dev/null
+++ b/easybuild/easyconfigs/c/cpio/cpio-2.15-GCCcore-12.2.0.eb
@@ -0,0 +1,28 @@
+easyblock = 'ConfigureMake'
+name = 'cpio'
+version = '2.15'
+
+homepage = "https://savannah.gnu.org/projects/cpio/"
+description = """The cpio package contains tools for archiving."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.2.0'}
+
+source_urls = [GNU_SOURCE]
+sources = [SOURCE_TAR_BZ2]
+checksums = ['937610b97c329a1ec9268553fb780037bcfff0dcffe9725ebc4fd9c1aa9075db']
+
+builddependencies = [
+ ('binutils', '2.39'),
+ ('makeinfo', '7.0.3'),
+]
+
+postinstallcmds = ['makeinfo --plaintext -o %(installdir)s/doc/cpio.txt doc/cpio.texi']
+
+sanity_check_paths = {
+ 'files': ['bin/cpio'],
+ 'dirs': []
+}
+
+sanity_check_commands = ['cpio --help']
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/c/cpio/cpio-2.15-GCCcore-12.3.0.eb b/easybuild/easyconfigs/c/cpio/cpio-2.15-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..88be666ec15
--- /dev/null
+++ b/easybuild/easyconfigs/c/cpio/cpio-2.15-GCCcore-12.3.0.eb
@@ -0,0 +1,28 @@
+easyblock = 'ConfigureMake'
+name = 'cpio'
+version = '2.15'
+
+homepage = "https://savannah.gnu.org/projects/cpio/"
+description = """The cpio package contains tools for archiving."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = [GNU_SOURCE]
+sources = [SOURCE_TAR_BZ2]
+checksums = ['937610b97c329a1ec9268553fb780037bcfff0dcffe9725ebc4fd9c1aa9075db']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('makeinfo', '7.0.3'),
+]
+
+postinstallcmds = ['makeinfo --plaintext -o %(installdir)s/doc/cpio.txt doc/cpio.texi']
+
+sanity_check_paths = {
+ 'files': ['bin/cpio'],
+ 'dirs': []
+}
+
+sanity_check_commands = ['cpio --help']
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/c/cpio/cpio-2.15-GCCcore-13.2.0.eb b/easybuild/easyconfigs/c/cpio/cpio-2.15-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..43cc1783368
--- /dev/null
+++ b/easybuild/easyconfigs/c/cpio/cpio-2.15-GCCcore-13.2.0.eb
@@ -0,0 +1,28 @@
+easyblock = 'ConfigureMake'
+name = 'cpio'
+version = '2.15'
+
+homepage = "https://savannah.gnu.org/projects/cpio/"
+description = """The cpio package contains tools for archiving."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+source_urls = [GNU_SOURCE]
+sources = [SOURCE_TAR_BZ2]
+checksums = ['937610b97c329a1ec9268553fb780037bcfff0dcffe9725ebc4fd9c1aa9075db']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('makeinfo', '7.1'),
+]
+
+postinstallcmds = ['makeinfo --plaintext -o %(installdir)s/doc/cpio.txt doc/cpio.texi']
+
+sanity_check_paths = {
+ 'files': ['bin/cpio'],
+ 'dirs': []
+}
+
+sanity_check_commands = ['cpio --help']
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/c/cpio/cpio-2.15-GCCcore-13.3.0.eb b/easybuild/easyconfigs/c/cpio/cpio-2.15-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..3640f333607
--- /dev/null
+++ b/easybuild/easyconfigs/c/cpio/cpio-2.15-GCCcore-13.3.0.eb
@@ -0,0 +1,28 @@
+easyblock = 'ConfigureMake'
+name = 'cpio'
+version = '2.15'
+
+homepage = "https://savannah.gnu.org/projects/cpio/"
+description = """The cpio package contains tools for archiving."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = [GNU_SOURCE]
+sources = [SOURCE_TAR_BZ2]
+checksums = ['937610b97c329a1ec9268553fb780037bcfff0dcffe9725ebc4fd9c1aa9075db']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('makeinfo', '7.1'),
+]
+
+postinstallcmds = ['makeinfo --plaintext -o %(installdir)s/doc/cpio.txt doc/cpio.texi']
+
+sanity_check_paths = {
+ 'files': ['bin/cpio'],
+ 'dirs': []
+}
+
+sanity_check_commands = ['cpio --help']
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/c/cppy/cppy-1.2.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/c/cppy/cppy-1.2.1-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..3043857d925
--- /dev/null
+++ b/easybuild/easyconfigs/c/cppy/cppy-1.2.1-GCCcore-13.3.0.eb
@@ -0,0 +1,32 @@
+easyblock = 'PythonPackage'
+
+name = 'cppy'
+version = '1.2.1'
+
+homepage = "https://github.com/nucleic/cppy"
+description = """A small C++ header library which makes it easier to write
+Python extension modules. The primary feature is a PyObject smart pointer
+which automatically handles reference counting and provides convenience
+methods for performing common object operations."""
+
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+builddependencies = [('binutils', '2.42')]
+
+dependencies = [
+ ('Python', '3.12.3'),
+]
+
+sources = ['%(name)s-%(version)s.tar.gz']
+patches = ['cppy-1.2.1-manual_version.patch']
+checksums = [
+ {'cppy-1.2.1.tar.gz': '83b43bf17b1085ac15c5debdb42154f138b928234b21447358981f69d0d6fe1b'},
+ {'cppy-1.2.1-manual_version.patch': '048aa0a86fd2e99c6896443b07ec83eaa369724297f639ef74c65c404b8f288f'},
+]
+
+download_dep_fail = True
+sanity_pip_check = True
+use_pip = True
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/c/cppyy/cppyy-3.1.2-GCCcore-13.2.0.eb b/easybuild/easyconfigs/c/cppyy/cppyy-3.1.2-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..89c6bc40e3d
--- /dev/null
+++ b/easybuild/easyconfigs/c/cppyy/cppyy-3.1.2-GCCcore-13.2.0.eb
@@ -0,0 +1,46 @@
+easyblock = 'PythonBundle'
+
+name = 'cppyy'
+version = '3.1.2'
+
+homepage = "https://cppyy.readthedocs.io"
+description = """cppyy is an automatic, run-time, Python-C++ bindings generator,
+ for calling C++ from Python and Python from C++."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('CMake', '3.27.6'),
+]
+
+dependencies = [
+ ('Python', '3.11.5'),
+]
+
+exts_list = [
+ ('cppyy-cling', '6.30.0', {
+ 'modulename': False,
+ 'preinstallopts': 'MAKE_NPROCS=%(parallel)s',
+ 'checksums': ['5d9e0551a4cb618eb3392001b3dc2c6294f02257f02fcd4d868999ba04f92af1'],
+ }),
+ ('cppyy-backend', '1.15.2', {
+ 'checksums': ['8d0ec169f6ea40d26999a61b274ce2ac880082e8d16aace6a0702933d3d835fc'],
+ }),
+ ('CPyCppyy', '1.12.16', {
+ 'modulename': False,
+ 'checksums': ['09a845652ac1a82777ec499dda862f54493c1560e9df4cadecda09ecde9e4202'],
+ }),
+ (name, version, {
+ 'checksums': ['7937d184af02e1510f44d5655e0bcc3c6a7888ef5b3f06c3dd09ba93d1c1f19b'],
+ }),
+ ('cppyythonizations', '1.2.3', {
+ 'source_tmpl': 'cppyythonizations-%(version)s-py3-none-any.whl',
+ 'checksums': ['a08bb4fbaf0fc6b980211e7b549b06869f5b9f9cb835b3ab6224cae5905fd8c2'],
+ }),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/c/cramino/cramino-0.14.5-GCC-12.3.0.eb b/easybuild/easyconfigs/c/cramino/cramino-0.14.5-GCC-12.3.0.eb
new file mode 100644
index 00000000000..49c61ff64fb
--- /dev/null
+++ b/easybuild/easyconfigs/c/cramino/cramino-0.14.5-GCC-12.3.0.eb
@@ -0,0 +1,351 @@
+easyblock = 'Cargo'
+
+name = 'cramino'
+version = '0.14.5'
+
+homepage = 'https://github.com/wdecoster/cramino'
+description = """A tool for quick quality assessment of cram and bam files, intended for long read sequencing."""
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+
+source_urls = ['https://github.com/wdecoster/cramino/archive/']
+sources = ['v%(version)s.tar.gz']
+checksums = [
+ {'v0.14.5.tar.gz': 'd3b31ab76808ca76171e2539cfe30e66fe24cbd4af4ff9a941c282a0bc438032'},
+ {'ahash-0.8.9.tar.gz': 'd713b3834d76b85304d4d525563c1276e2e30dc97cc67bfb4585a4a29fc2c89f'},
+ {'aho-corasick-1.1.2.tar.gz': 'b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0'},
+ {'android-tzdata-0.1.1.tar.gz': 'e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0'},
+ {'android_system_properties-0.1.5.tar.gz': '819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311'},
+ {'anstream-0.6.12.tar.gz': '96b09b5178381e0874812a9b157f7fe84982617e48f71f4e3235482775e5b540'},
+ {'anstyle-1.0.6.tar.gz': '8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc'},
+ {'anstyle-parse-0.2.3.tar.gz': 'c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c'},
+ {'anstyle-query-1.0.2.tar.gz': 'e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648'},
+ {'anstyle-wincon-3.0.2.tar.gz': '1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7'},
+ {'arrow-50.0.0.tar.gz': 'aa285343fba4d829d49985bdc541e3789cf6000ed0e84be7c039438df4a4e78c'},
+ {'arrow-arith-50.0.0.tar.gz': '753abd0a5290c1bcade7c6623a556f7d1659c5f4148b140b5b63ce7bd1a45705'},
+ {'arrow-array-50.0.0.tar.gz': 'd390feeb7f21b78ec997a4081a025baef1e2e0d6069e181939b61864c9779609'},
+ {'arrow-buffer-50.0.0.tar.gz': '69615b061701bcdffbc62756bc7e85c827d5290b472b580c972ebbbf690f5aa4'},
+ {'arrow-cast-50.0.0.tar.gz': 'e448e5dd2f4113bf5b74a1f26531708f5edcacc77335b7066f9398f4bcf4cdef'},
+ {'arrow-csv-50.0.0.tar.gz': '46af72211f0712612f5b18325530b9ad1bfbdc87290d5fbfd32a7da128983781'},
+ {'arrow-data-50.0.0.tar.gz': '67d644b91a162f3ad3135ce1184d0a31c28b816a581e08f29e8e9277a574c64e'},
+ {'arrow-ipc-50.0.0.tar.gz': '03dea5e79b48de6c2e04f03f62b0afea7105be7b77d134f6c5414868feefb80d'},
+ {'arrow-json-50.0.0.tar.gz': '8950719280397a47d37ac01492e3506a8a724b3fb81001900b866637a829ee0f'},
+ {'arrow-ord-50.0.0.tar.gz': '1ed9630979034077982d8e74a942b7ac228f33dd93a93b615b4d02ad60c260be'},
+ {'arrow-row-50.0.0.tar.gz': '007035e17ae09c4e8993e4cb8b5b96edf0afb927cd38e2dff27189b274d83dcf'},
+ {'arrow-schema-50.0.0.tar.gz': '0ff3e9c01f7cd169379d269f926892d0e622a704960350d09d331be3ec9e0029'},
+ {'arrow-select-50.0.0.tar.gz': '1ce20973c1912de6514348e064829e50947e35977bb9d7fb637dc99ea9ffd78c'},
+ {'arrow-string-50.0.0.tar.gz': '00f3b37f2aeece31a2636d1b037dabb69ef590e03bdc7eb68519b51ec86932a7'},
+ {'autocfg-1.1.0.tar.gz': 'd468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa'},
+ {'base64-0.21.7.tar.gz': '9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567'},
+ {'bio-types-1.0.1.tar.gz': '9d45749b87f21808051025e9bf714d14ff4627f9d8ca967eade6946ea769aa4a'},
+ {'bitflags-1.3.2.tar.gz': 'bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a'},
+ {'bumpalo-3.15.1.tar.gz': 'c764d619ca78fccbf3069b37bd7af92577f044bb15236036662d79b6559f25b7'},
+ {'byteorder-1.5.0.tar.gz': '1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b'},
+ {'bytes-1.5.0.tar.gz': 'a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223'},
+ {'bzip2-sys-0.1.11+1.0.8.tar.gz': '736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc'},
+ {'cc-1.0.86.tar.gz': '7f9fa1897e4325be0d68d48df6aa1a71ac2ed4d27723887e7754192705350730'},
+ {'cfg-if-1.0.0.tar.gz': 'baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd'},
+ {'chrono-0.4.34.tar.gz': '5bc015644b92d5890fab7489e49d21f879d5c990186827d42ec511919404f38b'},
+ {'clap-4.5.1.tar.gz': 'c918d541ef2913577a0f9566e9ce27cb35b6df072075769e0b26cb5a554520da'},
+ {'clap_builder-4.5.1.tar.gz': '9f3e7391dad68afb0c2ede1bf619f579a3dc9c2ec67f089baa397123a2f3d1eb'},
+ {'clap_derive-4.5.0.tar.gz': '307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47'},
+ {'clap_lex-0.7.0.tar.gz': '98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce'},
+ {'cmake-0.1.50.tar.gz': 'a31c789563b815f77f4250caee12365734369f942439b7defd71e18a48197130'},
+ {'colorchoice-1.0.0.tar.gz': 'acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7'},
+ {'const-random-0.1.17.tar.gz': '5aaf16c9c2c612020bcfd042e170f6e32de9b9d75adb5277cdbbd2e2c8c8299a'},
+ {'const-random-macro-0.1.16.tar.gz': 'f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e'},
+ {'core-foundation-sys-0.8.6.tar.gz': '06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f'},
+ {'crossbeam-deque-0.8.5.tar.gz': '613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d'},
+ {'crossbeam-epoch-0.9.18.tar.gz': '5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e'},
+ {'crossbeam-utils-0.8.19.tar.gz': '248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345'},
+ {'crunchy-0.2.2.tar.gz': '7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7'},
+ {'csv-1.3.0.tar.gz': 'ac574ff4d437a7b5ad237ef331c17ccca63c46479e5b5453eb8e10bb99a759fe'},
+ {'csv-core-0.1.11.tar.gz': '5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70'},
+ {'ctor-0.2.6.tar.gz': '30d2b3721e861707777e3195b0158f950ae6dc4a27e4d02ff9f67e3eb3de199e'},
+ {'curl-sys-0.4.72+curl-8.6.0.tar.gz': '29cbdc8314c447d11e8fd156dcdd031d9e02a7a976163e396b548c03153bc9ea'},
+ {'custom_derive-0.1.7.tar.gz': 'ef8ae57c4978a2acd8b869ce6b9ca1dfe817bff704c220209fdef2c0b75a01b9'},
+ {'derive-new-0.5.9.tar.gz': '3418329ca0ad70234b9735dc4ceed10af4df60eff9c8e7b06cb5e520d92c3535'},
+ {'either-1.10.0.tar.gz': '11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a'},
+ {'env_filter-0.1.0.tar.gz': 'a009aa4810eb158359dda09d0c87378e4bbb89b5a801f016885a4707ba24f7ea'},
+ {'env_logger-0.11.2.tar.gz': '6c012a26a7f605efc424dd53697843a72be7dc86ad2d01f7814337794a12231d'},
+ {'equivalent-1.0.1.tar.gz': '5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5'},
+ {'flatbuffers-23.5.26.tar.gz': '4dac53e22462d78c16d64a1cd22371b54cc3fe94aa15e7886a2fa6e5d1ab8640'},
+ {'form_urlencoded-1.2.1.tar.gz': 'e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456'},
+ {'fs-utils-1.1.4.tar.gz': '6fc7a9dc005c944c98a935e7fd626faf5bf7e5a609f94bc13e42fc4a02e52593'},
+ {'getrandom-0.2.12.tar.gz': '190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5'},
+ {'glob-0.3.1.tar.gz': 'd2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b'},
+ {'half-2.3.1.tar.gz': 'bc52e53916c08643f1b56ec082790d1e86a32e58dc5268f897f313fbae7b4872'},
+ {'hashbrown-0.14.3.tar.gz': '290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604'},
+ {'heck-0.4.1.tar.gz': '95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8'},
+ {'hts-sys-2.1.1.tar.gz': 'deebfb779c734d542e7f14c298597914b9b5425e4089aef482eacb5cab941915'},
+ {'humantime-2.1.0.tar.gz': '9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4'},
+ {'iana-time-zone-0.1.60.tar.gz': 'e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141'},
+ {'iana-time-zone-haiku-0.1.2.tar.gz': 'f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f'},
+ {'idna-0.5.0.tar.gz': '634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6'},
+ {'ieee754-0.2.6.tar.gz': '9007da9cacbd3e6343da136e98b0d2df013f553d35bdec8b518f07bea768e19c'},
+ {'indexmap-2.2.3.tar.gz': '233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177'},
+ {'itertools-0.12.1.tar.gz': 'ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569'},
+ {'itoa-1.0.10.tar.gz': 'b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c'},
+ {'js-sys-0.3.68.tar.gz': '406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee'},
+ {'lazy_static-1.4.0.tar.gz': 'e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646'},
+ {'lexical-core-0.8.5.tar.gz': '2cde5de06e8d4c2faabc400238f9ae1c74d5412d03a7bd067645ccbc47070e46'},
+ {'lexical-parse-float-0.8.5.tar.gz': '683b3a5ebd0130b8fb52ba0bdc718cc56815b6a097e28ae5a6997d0ad17dc05f'},
+ {'lexical-parse-integer-0.8.6.tar.gz': '6d0994485ed0c312f6d965766754ea177d07f9c00c9b82a5ee62ed5b47945ee9'},
+ {'lexical-util-0.8.5.tar.gz': '5255b9ff16ff898710eb9eb63cb39248ea8a5bb036bea8085b1a767ff6c4e3fc'},
+ {'lexical-write-float-0.8.5.tar.gz': 'accabaa1c4581f05a3923d1b4cfd124c329352288b7b9da09e766b0668116862'},
+ {'lexical-write-integer-0.8.5.tar.gz': 'e1b6f3d1f4422866b68192d62f77bc5c700bee84f3069f2469d7bc8c77852446'},
+ {'libc-0.2.153.tar.gz': '9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd'},
+ {'libm-0.2.8.tar.gz': '4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058'},
+ {'libz-sys-1.1.15.tar.gz': '037731f5d3aaa87a5675e895b63ddff1a87624bc29f77004ea829809654e48f6'},
+ {'linear-map-1.2.0.tar.gz': 'bfae20f6b19ad527b550c223fddc3077a547fc70cda94b9b566575423fd303ee'},
+ {'log-0.4.20.tar.gz': 'b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f'},
+ {'lzma-sys-0.1.20.tar.gz': '5fda04ab3764e6cde78b9974eec4f779acaba7c4e84b36eca3cf77c581b85d27'},
+ {'memchr-2.7.1.tar.gz': '523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149'},
+ {'newtype_derive-0.1.6.tar.gz': 'ac8cd24d9f185bb7223958d8c1ff7a961b74b1953fd05dba7cc568a63b3861ec'},
+ {'num-0.4.1.tar.gz': 'b05180d69e3da0e530ba2a1dae5110317e49e3b7f3d41be227dc5f92e49ee7af'},
+ {'num-bigint-0.4.4.tar.gz': '608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0'},
+ {'num-complex-0.4.5.tar.gz': '23c6602fda94a57c990fe0df199a035d83576b496aa29f4e634a8ac6004e68a6'},
+ {'num-integer-0.1.46.tar.gz': '7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f'},
+ {'num-iter-0.1.44.tar.gz': 'd869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9'},
+ {'num-rational-0.4.1.tar.gz': '0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0'},
+ {'num-traits-0.2.18.tar.gz': 'da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a'},
+ {'once_cell-1.19.0.tar.gz': '3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92'},
+ {'openssl-src-300.2.3+3.2.1.tar.gz': '5cff92b6f71555b61bb9315f7c64da3ca43d87531622120fea0195fc761b4843'},
+ {'openssl-sys-0.9.100.tar.gz': 'ae94056a791d0e1217d18b6cbdccb02c61e3054fc69893607f4067e3bb0b1fd1'},
+ {'percent-encoding-2.3.1.tar.gz': 'e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e'},
+ {'pkg-config-0.3.30.tar.gz': 'd231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec'},
+ {'proc-macro2-1.0.78.tar.gz': 'e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae'},
+ {'quick-error-1.2.3.tar.gz': 'a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0'},
+ {'quote-1.0.35.tar.gz': '291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef'},
+ {'rayon-1.8.1.tar.gz': 'fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051'},
+ {'rayon-core-1.12.1.tar.gz': '1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2'},
+ {'regex-1.10.3.tar.gz': 'b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15'},
+ {'regex-automata-0.4.5.tar.gz': '5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd'},
+ {'regex-syntax-0.8.2.tar.gz': 'c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f'},
+ {'rust-htslib-0.46.0.tar.gz': 'aec6f9ca4601beb4ae75ff8c99144dd15de5a873f6adf058da299962c760968e'},
+ {'rustc_version-0.1.7.tar.gz': 'c5f5376ea5e30ce23c03eb77cbe4962b988deead10910c372b226388b594c084'},
+ {'rustc_version-0.4.0.tar.gz': 'bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366'},
+ {'rustversion-1.0.14.tar.gz': '7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4'},
+ {'ryu-1.0.17.tar.gz': 'e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1'},
+ {'semver-0.1.20.tar.gz': 'd4f410fedcf71af0345d7607d246e7ad15faaadd49d240ee3b24e5dc21a820ac'},
+ {'semver-1.0.22.tar.gz': '92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca'},
+ {'serde-1.0.197.tar.gz': '3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2'},
+ {'serde_derive-1.0.197.tar.gz': '7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b'},
+ {'serde_json-1.0.114.tar.gz': 'c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0'},
+ {'static_assertions-1.1.0.tar.gz': 'a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f'},
+ {'strsim-0.11.0.tar.gz': '5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01'},
+ {'strum_macros-0.25.3.tar.gz': '23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0'},
+ {'syn-1.0.109.tar.gz': '72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237'},
+ {'syn-2.0.50.tar.gz': '74f1bdc9872430ce9b75da68329d1c1746faf50ffac5f19e02b71e37ff881ffb'},
+ {'thiserror-1.0.57.tar.gz': '1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b'},
+ {'thiserror-impl-1.0.57.tar.gz': 'a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81'},
+ {'tiny-keccak-2.0.2.tar.gz': '2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237'},
+ {'tinyvec-1.6.0.tar.gz': '87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50'},
+ {'tinyvec_macros-0.1.1.tar.gz': '1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20'},
+ {'unicode-bidi-0.3.15.tar.gz': '08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75'},
+ {'unicode-ident-1.0.12.tar.gz': '3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b'},
+ {'unicode-normalization-0.1.23.tar.gz': 'a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5'},
+ {'unzip-n-0.1.2.tar.gz': 'c2e7e85a0596447f0f2ac090e16bc4c516c6fe91771fb0c0ccf7fa3dae896b9c'},
+ {'url-2.5.0.tar.gz': '31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633'},
+ {'utf8parse-0.2.1.tar.gz': '711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a'},
+ {'vcpkg-0.2.15.tar.gz': 'accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426'},
+ {'version_check-0.9.4.tar.gz': '49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f'},
+ {'wasi-0.11.0+wasi-snapshot-preview1.tar.gz': '9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423'},
+ {'wasm-bindgen-0.2.91.tar.gz': 'c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f'},
+ {'wasm-bindgen-backend-0.2.91.tar.gz': 'c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b'},
+ {'wasm-bindgen-macro-0.2.91.tar.gz': 'b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed'},
+ {'wasm-bindgen-macro-support-0.2.91.tar.gz': '642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66'},
+ {'wasm-bindgen-shared-0.2.91.tar.gz': '4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838'},
+ {'windows-core-0.52.0.tar.gz': '33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9'},
+ {'windows-sys-0.52.0.tar.gz': '282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d'},
+ {'windows-targets-0.52.0.tar.gz': '8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd'},
+ {'windows_aarch64_gnullvm-0.52.0.tar.gz': 'cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea'},
+ {'windows_aarch64_msvc-0.52.0.tar.gz': 'bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef'},
+ {'windows_i686_gnu-0.52.0.tar.gz': 'a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313'},
+ {'windows_i686_msvc-0.52.0.tar.gz': 'ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a'},
+ {'windows_x86_64_gnu-0.52.0.tar.gz': '3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd'},
+ {'windows_x86_64_gnullvm-0.52.0.tar.gz': '1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e'},
+ {'windows_x86_64_msvc-0.52.0.tar.gz': 'dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04'},
+ {'zerocopy-0.7.32.tar.gz': '74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be'},
+ {'zerocopy-derive-0.7.32.tar.gz': '9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6'},
+]
+
+crates = [
+ ('ahash', '0.8.9'),
+ ('aho-corasick', '1.1.2'),
+ ('android-tzdata', '0.1.1'),
+ ('android_system_properties', '0.1.5'),
+ ('anstream', '0.6.12'),
+ ('anstyle', '1.0.6'),
+ ('anstyle-parse', '0.2.3'),
+ ('anstyle-query', '1.0.2'),
+ ('anstyle-wincon', '3.0.2'),
+ ('arrow', '50.0.0'),
+ ('arrow-arith', '50.0.0'),
+ ('arrow-array', '50.0.0'),
+ ('arrow-buffer', '50.0.0'),
+ ('arrow-cast', '50.0.0'),
+ ('arrow-csv', '50.0.0'),
+ ('arrow-data', '50.0.0'),
+ ('arrow-ipc', '50.0.0'),
+ ('arrow-json', '50.0.0'),
+ ('arrow-ord', '50.0.0'),
+ ('arrow-row', '50.0.0'),
+ ('arrow-schema', '50.0.0'),
+ ('arrow-select', '50.0.0'),
+ ('arrow-string', '50.0.0'),
+ ('autocfg', '1.1.0'),
+ ('base64', '0.21.7'),
+ ('bio-types', '1.0.1'),
+ ('bitflags', '1.3.2'),
+ ('bumpalo', '3.15.1'),
+ ('byteorder', '1.5.0'),
+ ('bytes', '1.5.0'),
+ ('bzip2-sys', '0.1.11+1.0.8'),
+ ('cc', '1.0.86'),
+ ('cfg-if', '1.0.0'),
+ ('chrono', '0.4.34'),
+ ('clap', '4.5.1'),
+ ('clap_builder', '4.5.1'),
+ ('clap_derive', '4.5.0'),
+ ('clap_lex', '0.7.0'),
+ ('cmake', '0.1.50'),
+ ('colorchoice', '1.0.0'),
+ ('const-random', '0.1.17'),
+ ('const-random-macro', '0.1.16'),
+ ('core-foundation-sys', '0.8.6'),
+ ('crossbeam-deque', '0.8.5'),
+ ('crossbeam-epoch', '0.9.18'),
+ ('crossbeam-utils', '0.8.19'),
+ ('crunchy', '0.2.2'),
+ ('csv', '1.3.0'),
+ ('csv-core', '0.1.11'),
+ ('ctor', '0.2.6'),
+ ('curl-sys', '0.4.72+curl-8.6.0'),
+ ('custom_derive', '0.1.7'),
+ ('derive-new', '0.5.9'),
+ ('either', '1.10.0'),
+ ('env_filter', '0.1.0'),
+ ('env_logger', '0.11.2'),
+ ('equivalent', '1.0.1'),
+ ('flatbuffers', '23.5.26'),
+ ('form_urlencoded', '1.2.1'),
+ ('fs-utils', '1.1.4'),
+ ('getrandom', '0.2.12'),
+ ('glob', '0.3.1'),
+ ('half', '2.3.1'),
+ ('hashbrown', '0.14.3'),
+ ('heck', '0.4.1'),
+ ('hts-sys', '2.1.1'),
+ ('humantime', '2.1.0'),
+ ('iana-time-zone', '0.1.60'),
+ ('iana-time-zone-haiku', '0.1.2'),
+ ('idna', '0.5.0'),
+ ('ieee754', '0.2.6'),
+ ('indexmap', '2.2.3'),
+ ('itertools', '0.12.1'),
+ ('itoa', '1.0.10'),
+ ('js-sys', '0.3.68'),
+ ('lazy_static', '1.4.0'),
+ ('lexical-core', '0.8.5'),
+ ('lexical-parse-float', '0.8.5'),
+ ('lexical-parse-integer', '0.8.6'),
+ ('lexical-util', '0.8.5'),
+ ('lexical-write-float', '0.8.5'),
+ ('lexical-write-integer', '0.8.5'),
+ ('libc', '0.2.153'),
+ ('libm', '0.2.8'),
+ ('libz-sys', '1.1.15'),
+ ('linear-map', '1.2.0'),
+ ('log', '0.4.20'),
+ ('lzma-sys', '0.1.20'),
+ ('memchr', '2.7.1'),
+ ('newtype_derive', '0.1.6'),
+ ('num', '0.4.1'),
+ ('num-bigint', '0.4.4'),
+ ('num-complex', '0.4.5'),
+ ('num-integer', '0.1.46'),
+ ('num-iter', '0.1.44'),
+ ('num-rational', '0.4.1'),
+ ('num-traits', '0.2.18'),
+ ('once_cell', '1.19.0'),
+ ('openssl-src', '300.2.3+3.2.1'),
+ ('openssl-sys', '0.9.100'),
+ ('percent-encoding', '2.3.1'),
+ ('pkg-config', '0.3.30'),
+ ('proc-macro2', '1.0.78'),
+ ('quick-error', '1.2.3'),
+ ('quote', '1.0.35'),
+ ('rayon', '1.8.1'),
+ ('rayon-core', '1.12.1'),
+ ('regex', '1.10.3'),
+ ('regex-automata', '0.4.5'),
+ ('regex-syntax', '0.8.2'),
+ ('rust-htslib', '0.46.0'),
+ ('rustc_version', '0.1.7'),
+ ('rustc_version', '0.4.0'),
+ ('rustversion', '1.0.14'),
+ ('ryu', '1.0.17'),
+ ('semver', '0.1.20'),
+ ('semver', '1.0.22'),
+ ('serde', '1.0.197'),
+ ('serde_derive', '1.0.197'),
+ ('serde_json', '1.0.114'),
+ ('static_assertions', '1.1.0'),
+ ('strsim', '0.11.0'),
+ ('strum_macros', '0.25.3'),
+ ('syn', '1.0.109'),
+ ('syn', '2.0.50'),
+ ('thiserror', '1.0.57'),
+ ('thiserror-impl', '1.0.57'),
+ ('tiny-keccak', '2.0.2'),
+ ('tinyvec', '1.6.0'),
+ ('tinyvec_macros', '0.1.1'),
+ ('unicode-bidi', '0.3.15'),
+ ('unicode-ident', '1.0.12'),
+ ('unicode-normalization', '0.1.23'),
+ ('unzip-n', '0.1.2'),
+ ('url', '2.5.0'),
+ ('utf8parse', '0.2.1'),
+ ('vcpkg', '0.2.15'),
+ ('version_check', '0.9.4'),
+ ('wasi', '0.11.0+wasi-snapshot-preview1'),
+ ('wasm-bindgen', '0.2.91'),
+ ('wasm-bindgen-backend', '0.2.91'),
+ ('wasm-bindgen-macro', '0.2.91'),
+ ('wasm-bindgen-macro-support', '0.2.91'),
+ ('wasm-bindgen-shared', '0.2.91'),
+ ('windows-core', '0.52.0'),
+ ('windows-sys', '0.52.0'),
+ ('windows-targets', '0.52.0'),
+ ('windows_aarch64_gnullvm', '0.52.0'),
+ ('windows_aarch64_msvc', '0.52.0'),
+ ('windows_i686_gnu', '0.52.0'),
+ ('windows_i686_msvc', '0.52.0'),
+ ('windows_x86_64_gnu', '0.52.0'),
+ ('windows_x86_64_gnullvm', '0.52.0'),
+ ('windows_x86_64_msvc', '0.52.0'),
+ ('zerocopy', '0.7.32'),
+ ('zerocopy-derive', '0.7.32'),
+]
+
+builddependencies = [
+ ('Rust', '1.75.0'),
+ ('CMake', '3.26.3'),
+]
+
+dependencies = [
+ ('bzip2', '1.0.8'),
+ ('OpenSSL', '1.1', '', SYSTEM),
+ ('Perl', '5.36.1'),
+ ('Perl-bundle-CPAN', '5.36.1'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/%(name)s'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["%(name)s --help"]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/crb-blast/crb-blast-0.6.9-GCC-12.3.0.eb b/easybuild/easyconfigs/c/crb-blast/crb-blast-0.6.9-GCC-12.3.0.eb
new file mode 100644
index 00000000000..c9e4de852a5
--- /dev/null
+++ b/easybuild/easyconfigs/c/crb-blast/crb-blast-0.6.9-GCC-12.3.0.eb
@@ -0,0 +1,58 @@
+easyblock = 'Bundle'
+
+name = 'crb-blast'
+version = '0.6.9'
+
+homepage = 'https://github.com/cboursnell/crb-blast'
+description = """Conditional Reciprocal Best BLAST - high confidence ortholog assignment."""
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+
+dependencies = [
+ ('Ruby', '3.3.0'),
+]
+
+exts_default_options = {
+ 'source_urls': ['https://rubygems.org/downloads/'],
+ 'source_tmpl': '%(name)s-%(version)s.gem',
+}
+
+exts_defaultclass = 'RubyGem'
+
+exts_list = [
+ ('facade', '1.2.1', {
+ 'checksums': ['0764de5519088227675a2a67da23322500c3c507b89486d91296e031d87d036e'],
+ }),
+ ('pathname2', '1.8.4', {
+ 'checksums': ['1711264f3f7c1b380f96e1f0383b135d9703488f7b1acf66346a176efc257b7a'],
+ }),
+ ('fixwhich', '1.0.2', {
+ 'checksums': ['c6a8f796a7eb60ffbc29f0d2af85461761a36c2864d25e445ff18bfbd1657078'],
+ }),
+ ('bindeps', '1.2.1', {
+ 'checksums': ['3c11d75aa722bed67246852bb430a182361a128910d384b664b91f3e65bc34b5'],
+ }),
+ ('bio', '1.6.0.pre.20181210', {
+ 'checksums': ['c4114aeb99b012f90660b92ead4ca88c1578fd58252ed3ec46eb45dc4a2c6cc9'],
+ }),
+ ('threach', '0.2.0', {
+ 'checksums': ['432cbf3569bf9b09e26f93d0959fd6fb911c71e790e8a4cc4d1110e139a2ffca'],
+ }),
+ ('trollop', '2.9.10', {
+ 'checksums': ['ceca2d91f349163d6ee3e792d356d4ded7472e6da31ac6dcc5956d1b03607bf7'],
+ }),
+ (name, version, {
+ 'checksums': ['69c346e7d83efe9b9a383a39b57e7cce186a82b7074f275b14906f8f05678e3e'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/%(namelower)s'],
+ 'dirs': ['gems/%(namelower)s-%(version)s'],
+}
+
+sanity_check_commands = ["%(namelower)s --help"]
+
+modextrapaths = {'GEM_PATH': ['']}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/crypt4gh/crypt4gh-1.7-GCC-12.3.0.eb b/easybuild/easyconfigs/c/crypt4gh/crypt4gh-1.7-GCC-12.3.0.eb
new file mode 100644
index 00000000000..c52d7b3d83d
--- /dev/null
+++ b/easybuild/easyconfigs/c/crypt4gh/crypt4gh-1.7-GCC-12.3.0.eb
@@ -0,0 +1,32 @@
+easyblock = 'PythonBundle'
+
+name = 'crypt4gh'
+version = '1.7'
+
+homepage = 'https://github.com/EGA-archive/crypt4gh'
+description = """crypt4gh is a Python tool to encrypt, decrypt or re-encrypt files,
+according to the GA4GH encryption file format."""
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('PyYAML', '6.0'),
+ ('cryptography', '41.0.1'),
+ ('bcrypt', '4.0.1'),
+]
+
+use_pip = True
+
+exts_list = [
+ (name, version, {
+ 'checksums': ['1569bc4ff9b689c8852e3892ac3f6fea4b31948ca0b1e5bc28d0d2f80def2a28'],
+ }),
+]
+
+sanity_pip_check = True
+
+sanity_check_commands = ['crypt4gh -h']
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/c/cryptography/cryptography-42.0.8-GCCcore-13.3.0.eb b/easybuild/easyconfigs/c/cryptography/cryptography-42.0.8-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..be6bff8c478
--- /dev/null
+++ b/easybuild/easyconfigs/c/cryptography/cryptography-42.0.8-GCCcore-13.3.0.eb
@@ -0,0 +1,131 @@
+easyblock = 'CargoPythonPackage'
+
+name = 'cryptography'
+version = '42.0.8'
+
+homepage = 'https://github.com/pyca/cryptography'
+description = "cryptography is a package designed to expose cryptographic primitives and recipes to Python developers."
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('pkgconf', '2.2.0'),
+ ('Rust', '1.78.0'), # required for cryptography
+ ('hatchling', '1.24.2'),
+ ('setuptools-rust', '1.9.0'),
+]
+
+dependencies = [
+ ('Python', '3.12.3'),
+ ('cffi', '1.16.0'),
+]
+crates = [
+ ('asn1', '0.15.5'),
+ ('asn1_derive', '0.15.5'),
+ ('autocfg', '1.1.0'),
+ ('base64', '0.21.7'),
+ ('bitflags', '1.3.2'),
+ ('bitflags', '2.4.2'),
+ ('cc', '1.0.83'),
+ ('cfg-if', '1.0.0'),
+ ('foreign-types', '0.3.2'),
+ ('foreign-types-shared', '0.1.1'),
+ ('heck', '0.4.1'),
+ ('indoc', '2.0.4'),
+ ('libc', '0.2.152'),
+ ('lock_api', '0.4.11'),
+ ('memoffset', '0.9.0'),
+ ('once_cell', '1.19.0'),
+ ('openssl', '0.10.64'),
+ ('openssl-macros', '0.1.1'),
+ ('openssl-sys', '0.9.102'),
+ ('parking_lot', '0.12.1'),
+ ('parking_lot_core', '0.9.9'),
+ ('pem', '3.0.3'),
+ ('pkg-config', '0.3.29'),
+ ('portable-atomic', '1.6.0'),
+ ('proc-macro2', '1.0.78'),
+ ('pyo3', '0.20.3'),
+ ('pyo3-build-config', '0.20.3'),
+ ('pyo3-ffi', '0.20.3'),
+ ('pyo3-macros', '0.20.3'),
+ ('pyo3-macros-backend', '0.20.3'),
+ ('quote', '1.0.35'),
+ ('redox_syscall', '0.4.1'),
+ ('scopeguard', '1.2.0'),
+ ('self_cell', '1.0.3'),
+ ('smallvec', '1.13.1'),
+ ('syn', '2.0.48'),
+ ('target-lexicon', '0.12.13'),
+ ('unicode-ident', '1.0.12'),
+ ('unindent', '0.2.3'),
+ ('vcpkg', '0.2.15'),
+ ('windows-targets', '0.48.5'),
+ ('windows_aarch64_gnullvm', '0.48.5'),
+ ('windows_aarch64_msvc', '0.48.5'),
+ ('windows_i686_gnu', '0.48.5'),
+ ('windows_i686_msvc', '0.48.5'),
+ ('windows_x86_64_gnu', '0.48.5'),
+ ('windows_x86_64_gnullvm', '0.48.5'),
+ ('windows_x86_64_msvc', '0.48.5'),
+]
+sources = [SOURCE_TAR_GZ]
+checksums = [
+ {'cryptography-42.0.8.tar.gz': '8d09d05439ce7baa8e9e95b07ec5b6c886f548deb7e0f69ef25f64b3bce842f2'},
+ {'asn1-0.15.5.tar.gz': 'ae3ecbce89a22627b5e8e6e11d69715617138290289e385cde773b1fe50befdb'},
+ {'asn1_derive-0.15.5.tar.gz': '861af988fac460ac69a09f41e6217a8fb9178797b76fcc9478444be6a59be19c'},
+ {'autocfg-1.1.0.tar.gz': 'd468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa'},
+ {'base64-0.21.7.tar.gz': '9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567'},
+ {'bitflags-1.3.2.tar.gz': 'bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a'},
+ {'bitflags-2.4.2.tar.gz': 'ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf'},
+ {'cc-1.0.83.tar.gz': 'f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0'},
+ {'cfg-if-1.0.0.tar.gz': 'baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd'},
+ {'foreign-types-0.3.2.tar.gz': 'f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1'},
+ {'foreign-types-shared-0.1.1.tar.gz': '00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b'},
+ {'heck-0.4.1.tar.gz': '95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8'},
+ {'indoc-2.0.4.tar.gz': '1e186cfbae8084e513daff4240b4797e342f988cecda4fb6c939150f96315fd8'},
+ {'libc-0.2.152.tar.gz': '13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7'},
+ {'lock_api-0.4.11.tar.gz': '3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45'},
+ {'memoffset-0.9.0.tar.gz': '5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c'},
+ {'once_cell-1.19.0.tar.gz': '3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92'},
+ {'openssl-0.10.64.tar.gz': '95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f'},
+ {'openssl-macros-0.1.1.tar.gz': 'a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c'},
+ {'openssl-sys-0.9.102.tar.gz': 'c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2'},
+ {'parking_lot-0.12.1.tar.gz': '3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f'},
+ {'parking_lot_core-0.9.9.tar.gz': '4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e'},
+ {'pem-3.0.3.tar.gz': '1b8fcc794035347fb64beda2d3b462595dd2753e3f268d89c5aae77e8cf2c310'},
+ {'pkg-config-0.3.29.tar.gz': '2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb'},
+ {'portable-atomic-1.6.0.tar.gz': '7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0'},
+ {'proc-macro2-1.0.78.tar.gz': 'e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae'},
+ {'pyo3-0.20.3.tar.gz': '53bdbb96d49157e65d45cc287af5f32ffadd5f4761438b527b055fb0d4bb8233'},
+ {'pyo3-build-config-0.20.3.tar.gz': 'deaa5745de3f5231ce10517a1f5dd97d53e5a2fd77aa6b5842292085831d48d7'},
+ {'pyo3-ffi-0.20.3.tar.gz': '62b42531d03e08d4ef1f6e85a2ed422eb678b8cd62b762e53891c05faf0d4afa'},
+ {'pyo3-macros-0.20.3.tar.gz': '7305c720fa01b8055ec95e484a6eca7a83c841267f0dd5280f0c8b8551d2c158'},
+ {'pyo3-macros-backend-0.20.3.tar.gz': '7c7e9b68bb9c3149c5b0cade5d07f953d6d125eb4337723c4ccdb665f1f96185'},
+ {'quote-1.0.35.tar.gz': '291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef'},
+ {'redox_syscall-0.4.1.tar.gz': '4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa'},
+ {'scopeguard-1.2.0.tar.gz': '94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49'},
+ {'self_cell-1.0.3.tar.gz': '58bf37232d3bb9a2c4e641ca2a11d83b5062066f88df7fed36c28772046d65ba'},
+ {'smallvec-1.13.1.tar.gz': 'e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7'},
+ {'syn-2.0.48.tar.gz': '0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f'},
+ {'target-lexicon-0.12.13.tar.gz': '69758bda2e78f098e4ccb393021a0963bb3442eac05f135c30f61b7370bbafae'},
+ {'unicode-ident-1.0.12.tar.gz': '3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b'},
+ {'unindent-0.2.3.tar.gz': 'c7de7d73e1754487cb58364ee906a499937a0dfabd86bcb980fa99ec8c8fa2ce'},
+ {'vcpkg-0.2.15.tar.gz': 'accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426'},
+ {'windows-targets-0.48.5.tar.gz': '9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c'},
+ {'windows_aarch64_gnullvm-0.48.5.tar.gz': '2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8'},
+ {'windows_aarch64_msvc-0.48.5.tar.gz': 'dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc'},
+ {'windows_i686_gnu-0.48.5.tar.gz': 'a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e'},
+ {'windows_i686_msvc-0.48.5.tar.gz': '8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406'},
+ {'windows_x86_64_gnu-0.48.5.tar.gz': '53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e'},
+ {'windows_x86_64_gnullvm-0.48.5.tar.gz': '0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc'},
+ {'windows_x86_64_msvc-0.48.5.tar.gz': 'ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538'},
+]
+
+download_dep_fail = True
+use_pip = True
+sanity_pip_check = True
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/c/ctffind5/ctffind5-5.0.2-foss-2023a.eb b/easybuild/easyconfigs/c/ctffind5/ctffind5-5.0.2-foss-2023a.eb
new file mode 100644
index 00000000000..29cb349d816
--- /dev/null
+++ b/easybuild/easyconfigs/c/ctffind5/ctffind5-5.0.2-foss-2023a.eb
@@ -0,0 +1,83 @@
+# Thomas Hoffmann, EMBL Heidelberg, structures-it@embl.de, 2024/05
+easyblock = 'ConfigureMake'
+
+name = 'ctffind5'
+version = '5.0.2'
+
+local_commit = 'b21db55a91366fe4f75301c56091d213bbd326eb'
+local_branch = 'ctffind5_merge'
+
+homepage = 'https://grigoriefflab.umassmed.edu/ctf_estimation_ctffind_ctftilt'
+description = """Program for finding CTFs of electron micrographs."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+# Use git_config in order to allow setting CISTEM_CURRENT_BRANCH and CISTEM_VERSION_TEXT by configure
+sources = [{
+ 'download_filename': '%s.tar.gz' % local_commit,
+ 'filename': 'cisTEM-ctffind5-%s.tar.gz' % local_commit[:7],
+ 'git_config': {
+ 'url': 'https://github.com/timothygrant80',
+ 'repo_name': 'cisTEM',
+ 'commit': local_commit,
+ 'keep_git_dir': True,
+ }
+}]
+
+# no checksume, due to git_config
+checksums = [None]
+
+# Alternative source:
+# https://grigoriefflab.umassmed.edu/sites/default/files/cisTEM-ctffind5-b21db55.tar.gz
+
+# switch branch in order to inject proper branch name into binary:
+preconfigopts = 'git switch --create %s &&' % local_branch
+
+# disable all targets except for ctffind and applyctf (do not build any other cisTEM tool):
+local_remove_targets = """sed -i "s/^bin_PROGRAMS/"""
+local_remove_targets += """bin_PROGRAMS=ctffind applyctf\\nnoinst_PROGRAMS/g" """
+local_remove_targets += """ src/Makefile.am &&"""
+preconfigopts += local_remove_targets
+
+# run autotools
+preconfigopts += './regenerate_project.b &&'
+
+
+local_configureopts = [
+ # '--enable-latest-instruction-set', # don't use; managed by CFLAGS
+ '--enable-shared',
+ '--with-gnu-ld',
+ '--with-wx-config=$EBROOTWXWIDGETS/bin/wx-config',
+ '--disable-silent-rules',
+ '--enable-openmp',
+ '--disable-debugmode'
+ '--disable-staticmode',
+ '--enable-experimental',
+ '--without-cuda',
+]
+
+configopts = ' '.join(local_configureopts)
+
+builddependencies = [
+ ('Autotools', '20220317'),
+ ('git', '2.41.0', '-nodocs')
+]
+
+dependencies = [
+ ('wxWidgets', '3.2.2.1')
+]
+
+sanity_check_paths = {
+ 'files': ['bin/ctffind', 'bin/applyctf'],
+ 'dirs': ['bin'],
+}
+
+sanity_check_commands = [
+ # ctffind command expects filename of input image via stdin,
+ # so we pipe in a newline via 'echo' to make it exit
+ 'echo | ctffind | grep Version | grep %(version)s',
+ 'echo | ctffind | grep "Library Version" | grep %s' % local_commit[:7],
+ 'echo | ctffind | grep "Branch" | grep %s' % local_branch,
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/cuDNN/cuDNN-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/currentNe/currentNe-1.0.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/c/currentNe/currentNe-1.0.0-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..d90b8442fa5
--- /dev/null
+++ b/easybuild/easyconfigs/c/currentNe/currentNe-1.0.0-GCCcore-12.3.0.eb
@@ -0,0 +1,38 @@
+easyblock = 'MakeCp'
+
+name = 'currentNe'
+version = '1.0.0'
+local_commit = '37daed5'
+
+homepage = 'https://github.com/esrud/currentNe'
+description = """Estimation of current effective population using artificial neural networks."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+github_account = 'esrud'
+source_urls = [GITHUB_SOURCE]
+sources = [{
+ "download_filename": "%s.tar.gz" % local_commit,
+ "filename": "%(name)s-%(version)s.tar.gz",
+}]
+checksums = ['77aab8e7403b726b30f34474d3177a3b118afb4b0dc57636dc0b2b93274c6bca']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('make', '4.4.1'),
+]
+
+files_to_copy = [
+ 'lib',
+ (['currentNe.cpp'], 'lib'),
+ (['currentNe'], 'bin'),
+]
+
+sanity_check_paths = {
+ 'files': ['lib/currentNe.cpp'],
+ 'dirs': ['bin', 'lib']
+}
+
+sanity_check_commands = ['currentNe -h 2>&1 | grep "USAGE"']
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/cutadapt/cutadapt-4.9-GCCcore-12.3.0.eb b/easybuild/easyconfigs/c/cutadapt/cutadapt-4.9-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..1f54c552c2e
--- /dev/null
+++ b/easybuild/easyconfigs/c/cutadapt/cutadapt-4.9-GCCcore-12.3.0.eb
@@ -0,0 +1,60 @@
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+# Author: Pablo Escobar Lopez
+# Swiss Institute of Bioinformatics (SIB)
+# Biozentrum - University of Basel
+# Modified by: Adam Huffman, Jonas Demeulemeester
+# The Francis Crick Institute
+# Modified by: Albert Bogdanowicz
+# Institute of Biochemistry and Biophysics PAS
+# Modified by: Jasper Grimm
+# University of York
+
+easyblock = 'PythonBundle'
+
+name = 'cutadapt'
+version = '4.9'
+
+homepage = 'https://opensource.scilifelab.se/projects/cutadapt/'
+description = """Cutadapt finds and removes adapter sequences, primers, poly-A tails and
+ other types of unwanted sequence from your high-throughput sequencing reads."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('Cython', '3.0.8'), # required for dnaio
+]
+
+dependencies = [
+ ('pigz', '2.8'),
+ ('Python', '3.11.3'),
+ ('python-isal', '1.1.0'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ # note: newer xopen versions require newer python-isal
+ ('xopen', '1.7.0', {
+ 'checksums': ['901f9c8298e95ed74767a4bd76d9f4cf71d8de27b8cf296ac3e7bc1c11520d9f'],
+ }),
+ ('dnaio', '1.2.1', {
+ 'checksums': ['4786dc63614b9f3011463d9ea9d981723dd38d1091a415a557f71d8c74400f38'],
+ }),
+ (name, version, {
+ 'checksums': ['da3b45775b07334d2e2580a7b154d19ea7e872f0da813bb1ac2a4da712bfc223'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/cutadapt'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = [
+ "cutadapt --help",
+ "cutadapt --version",
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/c/cysignals/cysignals-1.11.4-GCCcore-13.2.0.eb b/easybuild/easyconfigs/c/cysignals/cysignals-1.11.4-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..08a87d938bb
--- /dev/null
+++ b/easybuild/easyconfigs/c/cysignals/cysignals-1.11.4-GCCcore-13.2.0.eb
@@ -0,0 +1,41 @@
+#
+# Author: Fenglai Liu
+# fenglai@accre.vanderbilt.edu
+# Vanderbilt University
+#
+# Update: Petr Král (INUITS)
+#
+easyblock = 'PythonPackage'
+
+name = 'cysignals'
+version = '1.11.4'
+
+homepage = 'https://pypi.org/project/cysignals/'
+description = """The cysignals package provides mechanisms to handle
+interrupts (and other signals and errors) in Cython code."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+sources = [SOURCE_TAR_GZ]
+checksums = ['0f1e321e55a07f901c86a36a1e4497f6ff9dfe700681d0130a38c36e4eb238c3']
+
+builddependencies = [
+ ('Autotools', '20220317'),
+ ('binutils', '2.40'),
+ ('Cython', '3.0.10'),
+]
+
+dependencies = [
+ ('Python', '3.11.5'),
+]
+
+use_pip = True
+download_dep_fail = True
+sanity_pip_check = True
+
+sanity_check_paths = {
+ 'files': ['bin/cysignals-CSI'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/c/cyvcf2/cyvcf2-0.31.1-gfbf-2023a.eb b/easybuild/easyconfigs/c/cyvcf2/cyvcf2-0.31.1-gfbf-2023a.eb
new file mode 100644
index 00000000000..6604fb2a1af
--- /dev/null
+++ b/easybuild/easyconfigs/c/cyvcf2/cyvcf2-0.31.1-gfbf-2023a.eb
@@ -0,0 +1,45 @@
+# Author: Pavel Grochal (INUITS)
+# License: GPLv2
+easyblock = 'PythonBundle'
+
+name = 'cyvcf2'
+version = '0.31.1'
+
+homepage = 'https://github.com/brentp/cyvcf2'
+description = "cyvcf2 is a cython wrapper around htslib built for fast parsing of Variant Call Format (VCF) files."
+
+toolchain = {'name': 'gfbf', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('HTSlib', '1.18'),
+]
+
+fix_python_shebang_for = ['bin/*']
+
+use_pip = True
+
+exts_list = [
+ ('humanfriendly', '10.0', {
+ 'checksums': ['6b0b831ce8f15f7300721aa49829fc4e83921a9a301cc7f606be6686a2288ddc'],
+ }),
+ ('coloredlogs', '15.0.1', {
+ 'checksums': ['7c991aa71a4577af2f82600d8f8f3a89f936baeaf9b50a9c197da014e5bf16b0'],
+ }),
+ (name, version, {
+ 'preinstallopts': 'CYVCF2_HTSLIB_MODE=EXTERNAL',
+ 'checksums': ['00bd0e09a3719d29fbc02bc8a40a690ac2c475e91744648750907d1816558fc5'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/cyvcf2'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = ["cyvcf2 --help"]
+
+sanity_pip_check = True
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/d/DB/DB-18.1.40-GCCcore-13.3.0.eb b/easybuild/easyconfigs/d/DB/DB-18.1.40-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..64022827805
--- /dev/null
+++ b/easybuild/easyconfigs/d/DB/DB-18.1.40-GCCcore-13.3.0.eb
@@ -0,0 +1,33 @@
+name = 'DB'
+version = '18.1.40'
+
+homepage = 'https://www.oracle.com/technetwork/products/berkeleydb'
+
+description = """Berkeley DB enables the development of custom data management
+ solutions, without the overhead traditionally associated with such custom
+ projects."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+# use http to allow auto-downloading...
+source_urls = ['http://download.oracle.com/berkeley-db/']
+sources = [SOURCELOWER_TAR_GZ]
+patches = ['%(name)s-%(version)s_fix_doc_install.patch']
+checksums = [
+ '0cecb2ef0c67b166de93732769abdeba0555086d51de1090df325e18ee8da9c8', # db-18.1.40.tar.gz
+ '441f48568156f72f02a8662998d293cc7edad687604b4f8af722f21c6db2a52d', # DB-18.1.40_fix_doc_install.patch
+]
+
+builddependencies = [('binutils', '2.42')]
+
+dependencies = [('OpenSSL', '3', '', SYSTEM)]
+
+sanity_check_paths = {
+ 'files': ['bin/db_%s' % x for x in ['archive', 'checkpoint', 'convert', 'deadlock', 'dump', 'hotbackup',
+ 'load', 'log_verify', 'printlog', 'recover', 'replicate', 'stat',
+ 'tuner', 'upgrade', 'verify']] +
+ ['include/db.h', 'lib/libdb.a', 'lib/libdb.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/d/DBD-mysql/DBD-mysql-4.050-GCC-12.3.0.eb b/easybuild/easyconfigs/d/DBD-mysql/DBD-mysql-4.050-GCC-12.3.0.eb
new file mode 100644
index 00000000000..eec33081a4c
--- /dev/null
+++ b/easybuild/easyconfigs/d/DBD-mysql/DBD-mysql-4.050-GCC-12.3.0.eb
@@ -0,0 +1,30 @@
+easyblock = 'PerlModule'
+
+name = 'DBD-mysql'
+version = '4.050'
+
+homepage = 'https://metacpan.org/pod/distribution/DBD-mysql/lib/DBD/mysql.pm'
+description = "Perl binding for MySQL"
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+
+source_urls = ['https://cpan.metacpan.org/authors/id/D/DV/DVEEDEN']
+sources = [SOURCE_TAR_GZ]
+checksums = ['4f48541ff15a0a7405f76adc10f81627c33996fbf56c95c26c094444c0928d78']
+
+dependencies = [
+ ('Perl', '5.36.1'),
+ ('Perl-bundle-CPAN', '5.36.1'),
+ ('MariaDB', '11.6.0'),
+ ('zlib', '1.2.13'),
+ ('OpenSSL', '1.1', '', SYSTEM),
+]
+
+options = {'modulename': 'DBD::mysql'}
+
+sanity_check_paths = {
+ 'files': ['lib/perl5/site_perl/%%(perlver)s/%s-linux-thread-multi/DBD/mysql.pm' % ARCH],
+ 'dirs': ['lib/perl5/site_perl/%%(perlver)s/%s-linux-thread-multi/DBD/mysql' % ARCH],
+}
+
+moduleclass = 'data'
diff --git a/easybuild/easyconfigs/d/DBD-mysql/DBD-mysql-4.051-GCC-13.3.0.eb b/easybuild/easyconfigs/d/DBD-mysql/DBD-mysql-4.051-GCC-13.3.0.eb
new file mode 100644
index 00000000000..f8f26485760
--- /dev/null
+++ b/easybuild/easyconfigs/d/DBD-mysql/DBD-mysql-4.051-GCC-13.3.0.eb
@@ -0,0 +1,30 @@
+easyblock = 'PerlModule'
+
+name = 'DBD-mysql'
+version = '4.051'
+
+homepage = 'https://metacpan.org/pod/distribution/DBD-mysql/lib/DBD/mysql.pm'
+description = "Perl binding for MySQL"
+
+toolchain = {'name': 'GCC', 'version': '13.3.0'}
+
+source_urls = ['https://cpan.metacpan.org/authors/id/D/DV/DVEEDEN']
+sources = [SOURCE_TAR_GZ]
+checksums = ['16969bfae7a080384167be3fb1803450fde87f7b0e2682276b3f6469fa147864']
+
+dependencies = [
+ ('Perl', '5.38.2'),
+ ('Perl-bundle-CPAN', '5.38.2'),
+ ('MariaDB', '11.7.0'),
+ ('zlib', '1.3.1'),
+ ('OpenSSL', '3', '', SYSTEM),
+]
+
+options = {'modulename': 'DBD::mysql'}
+
+sanity_check_paths = {
+ 'files': ['lib/perl5/site_perl/%%(perlver)s/%s-linux-thread-multi/DBD/mysql.pm' % ARCH],
+ 'dirs': ['lib/perl5/site_perl/%%(perlver)s/%s-linux-thread-multi/DBD/mysql' % ARCH],
+}
+
+moduleclass = 'data'
diff --git a/easybuild/easyconfigs/d/DB_File/DB_File-1.859-GCCcore-13.3.0.eb b/easybuild/easyconfigs/d/DB_File/DB_File-1.859-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..e7120c9c13e
--- /dev/null
+++ b/easybuild/easyconfigs/d/DB_File/DB_File-1.859-GCCcore-13.3.0.eb
@@ -0,0 +1,31 @@
+easyblock = 'PerlModule'
+
+name = 'DB_File'
+version = '1.859'
+
+homepage = 'https://perldoc.perl.org/DB_File.html'
+description = """Perl5 access to Berkeley DB version 1.x."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://www.cpan.org/modules/by-module/DB_File/PMQS']
+sources = [SOURCE_TAR_GZ]
+checksums = ['5674e0d2cd0b060c4d1253670ea022c64d842a55257f9eb8edb19c0f53e2565c']
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+
+dependencies = [
+ ('Perl', '5.38.2'),
+ ('DB', '18.1.40'),
+]
+
+preconfigopts = 'env DB_FILE_INCLUDE="$EBROOTDB/include" DB_FILE_LIB="$EBROOTDB/lib" '
+
+sanity_check_paths = {
+ 'files': ['lib/perl5/site_perl/%(perlver)s/%(arch)s-linux-thread-multi/DB_File.pm'],
+ 'dirs': [],
+}
+
+moduleclass = 'data'
diff --git a/easybuild/easyconfigs/d/DBus/DBus-1.15.8-GCCcore-13.3.0.eb b/easybuild/easyconfigs/d/DBus/DBus-1.15.8-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..ca182becfcd
--- /dev/null
+++ b/easybuild/easyconfigs/d/DBus/DBus-1.15.8-GCCcore-13.3.0.eb
@@ -0,0 +1,45 @@
+easyblock = 'CMakeMake'
+
+name = 'DBus'
+version = '1.15.8'
+
+homepage = 'https://dbus.freedesktop.org/'
+
+description = """
+ D-Bus is a message bus system, a simple way for applications to talk
+ to one another. In addition to interprocess communication, D-Bus helps
+ coordinate process lifecycle; it makes it simple and reliable to code
+ a "single instance" application or daemon, and to launch applications
+ and daemons on demand when their services are needed.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://dbus.freedesktop.org/releases/dbus']
+sources = [SOURCELOWER_TAR_XZ]
+checksums = ['84fc597e6ec82f05dc18a7d12c17046f95bad7be99fc03c15bc254c4701ed204']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('CMake', '3.29.3'),
+ ('pkgconf', '2.2.0'),
+]
+
+dependencies = [
+ ('expat', '2.6.2'),
+]
+
+configopts = '-DENABLE_SYSTEMD=OFF '
+# disable documentation
+configopts += '-DDBUS_ENABLE_XML_DOCS=OFF -DDBUS_ENABLE_QTHELP_DOCS=OFF -DDBUS_ENABLE_DOXYGEN_DOCS=OFF '
+
+sanity_check_paths = {
+ 'files': ['bin/dbus-%s' % x for x in
+ ['cleanup-sockets', 'daemon', 'launch', 'monitor',
+ 'run-session', 'send', 'uuidgen']] +
+ ['lib/libdbus-1.%s' % SHLIB_EXT],
+ 'dirs': ['include', 'share'],
+}
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/d/DETONATE/DETONATE-1.11-GCC-12.3.0.eb b/easybuild/easyconfigs/d/DETONATE/DETONATE-1.11-GCC-12.3.0.eb
index c1457cc041c..24a8b13835c 100644
--- a/easybuild/easyconfigs/d/DETONATE/DETONATE-1.11-GCC-12.3.0.eb
+++ b/easybuild/easyconfigs/d/DETONATE/DETONATE-1.11-GCC-12.3.0.eb
@@ -33,6 +33,7 @@ builddependencies = [
]
dependencies = [
+ ('Perl', '5.36.1'),
('Boost', '1.82.0'),
('sparsehash', '2.0.4'),
('BamTools', '2.5.2'),
@@ -45,16 +46,20 @@ buildopts = 'CXX="$CXX" CXXFLAGS="$CXXFLAGS -fopenmp" && cd ../rsem-eval && make
runtest = 'test'
-files_to_copy = [(['ref-eval', 'ref-eval-estimate-true-assembly', '../rsem-eval/rsem-*'], 'bin')]
+files_to_copy = [
+ (['ref-eval', 'ref-eval-estimate-true-assembly', '../rsem-eval/rsem-*', '../rsem-eval/*.pm'], 'bin'),
+]
sanity_check_paths = {
'files': ['bin/%s' % x for x in ['ref-eval', 'ref-eval-estimate-true-assembly', 'rsem-build-read-index',
'rsem-eval-calculate-score', 'rsem-eval-estimate-transcript-length-distribution',
'rsem-eval-run-em', 'rsem-extract-reference-transcripts',
- 'rsem-parse-alignments', 'rsem-plot-model', 'rsem-preref', 'rsem-sam-validator',
- 'rsem-scan-for-paired-end-reads', 'rsem-simulate-reads',
+ 'rsem-parse-alignments', 'rsem_perl_utils.pm', 'rsem-plot-model', 'rsem-preref',
+ 'rsem-sam-validator', 'rsem-scan-for-paired-end-reads', 'rsem-simulate-reads',
'rsem-synthesis-reference-transcripts']],
'dirs': [],
}
+sanity_check_commands = [r"rsem-eval-calculate-score --help 2>&1 | grep 'rsem-eval-calculate-score \[options\]'"]
+
moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/d/DFT-D4/DFT-D4-3.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/DL_POLY_4/DL_POLY_4-5.1.0-foss-2023a.eb b/easybuild/easyconfigs/d/DL_POLY_4/DL_POLY_4-5.1.0-foss-2023a.eb
new file mode 100644
index 00000000000..1d47dce62d0
--- /dev/null
+++ b/easybuild/easyconfigs/d/DL_POLY_4/DL_POLY_4-5.1.0-foss-2023a.eb
@@ -0,0 +1,24 @@
+easyblock = 'CMakeMake'
+
+name = "DL_POLY_4"
+version = "5.1.0"
+
+homepage = "https://www.scd.stfc.ac.uk/Pages/DL_POLY.aspx"
+description = "DL_POLY is a general purpose classical molecular dynamics (MD) simulation software"
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+source_urls = ['https://gitlab.com/ccp5/dl-poly/-/archive/%(version)s/']
+sources = ['dl_poly_%(version)s.tar.bz2']
+checksums = ['da5364986cd71e047e080753f6ca75135bf19bd5607770b839dea3734c2fdfaa']
+
+builddependencies = [('CMake', '3.26.3')]
+
+sanity_check_paths = {
+ 'files': ['bin/DLPOLY.Z'],
+ 'dirs': []
+}
+
+sanity_check_commands = ['DLPOLY.Z -h']
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/d/DL_POLY_Classic_GUI/DL_POLY_Classic_GUI-1.10.eb b/easybuild/easyconfigs/d/DL_POLY_Classic_GUI/DL_POLY_Classic_GUI-1.10.eb
new file mode 100644
index 00000000000..84de0bbf36a
--- /dev/null
+++ b/easybuild/easyconfigs/d/DL_POLY_Classic_GUI/DL_POLY_Classic_GUI-1.10.eb
@@ -0,0 +1,34 @@
+easyblock = 'JAR'
+
+name = 'DL_POLY_Classic_GUI'
+version = '1.10'
+
+homepage = 'https://gitlab.com/DL_POLY_Classic/dl_poly'
+description = """
+The DL_POLY Graphical User Interface (or GUI) is a program written in the
+Java language and is intended for use with the DL_POLY molecular
+simulation program.
+This is the GUI for DL_POLY Classic, it can also be used for DL_POLY_4.
+"""
+
+toolchain = SYSTEM
+
+source_urls = ['https://gitlab.com/DL_POLY_Classic/dl_poly/-/raw/RELEASE-%(version_major)s-%(version_minor)s/java/']
+sources = ['GUI.jar']
+checksums = ['8d3a5ed75d5ee8eb2e4403d8ed9355cd214c7e5b7afc8161c89a50edbc0a481d']
+
+dependencies = [
+ ('Java', '17', '', SYSTEM),
+]
+
+
+sanity_check_paths = {
+ 'files': ['GUI.jar'],
+ 'dirs': [''],
+}
+
+modloadmsg = """
+To execute this Graphical User Interface run: java GUI
+"""
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/d/DMTCP/DMTCP-3.0.0-GCCcore-12.2.0.eb b/easybuild/easyconfigs/d/DMTCP/DMTCP-3.0.0-GCCcore-12.2.0.eb
new file mode 100644
index 00000000000..0474c5e8f88
--- /dev/null
+++ b/easybuild/easyconfigs/d/DMTCP/DMTCP-3.0.0-GCCcore-12.2.0.eb
@@ -0,0 +1,26 @@
+easyblock = 'ConfigureMake'
+
+name = 'DMTCP'
+version = '3.0.0'
+
+homepage = 'http://dmtcp.sourceforge.net/index.html'
+description = """DMTCP is a tool to transparently checkpoint the state of multiple
+simultaneous applications, including multi-threaded and distributed applications.
+It operates directly on the user binary executable, without any Linux kernel modules
+or other kernel modifications."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.2.0'}
+
+source_urls = ['https://github.com/dmtcp/dmtcp/archive/']
+sources = ['%(version)s.tar.gz']
+checksums = ['2c7e95e1dbc55db33433bfee48a65f274298e98f246a36ab6dad1e0694750d37']
+
+builddependencies = [('binutils', '2.39')]
+
+sanity_check_paths = {
+ 'files': ['bin/dmtcp_command', 'bin/dmtcp_discover_rm', 'bin/dmtcp_nocheckpoint', 'bin/dmtcp_srun_helper',
+ 'bin/dmtcp_sshd', 'bin/dmtcp_coordinator', 'bin/dmtcp_launch', 'bin/dmtcp_restart', 'bin/dmtcp_ssh'],
+ 'dirs': [],
+}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/d/DMTCP/DMTCP-3.0.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/d/DMTCP/DMTCP-3.0.0-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..9947d4f758d
--- /dev/null
+++ b/easybuild/easyconfigs/d/DMTCP/DMTCP-3.0.0-GCCcore-12.3.0.eb
@@ -0,0 +1,26 @@
+easyblock = 'ConfigureMake'
+
+name = 'DMTCP'
+version = '3.0.0'
+
+homepage = 'http://dmtcp.sourceforge.net/index.html'
+description = """DMTCP is a tool to transparently checkpoint the state of multiple
+simultaneous applications, including multi-threaded and distributed applications.
+It operates directly on the user binary executable, without any Linux kernel modules
+or other kernel modifications."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = ['https://github.com/dmtcp/dmtcp/archive/']
+sources = ['%(version)s.tar.gz']
+checksums = ['2c7e95e1dbc55db33433bfee48a65f274298e98f246a36ab6dad1e0694750d37']
+
+builddependencies = [('binutils', '2.40')]
+
+sanity_check_paths = {
+ 'files': ['bin/dmtcp_command', 'bin/dmtcp_discover_rm', 'bin/dmtcp_nocheckpoint', 'bin/dmtcp_srun_helper',
+ 'bin/dmtcp_sshd', 'bin/dmtcp_coordinator', 'bin/dmtcp_launch', 'bin/dmtcp_restart', 'bin/dmtcp_ssh'],
+ 'dirs': [],
+}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/d/DMTCP/DMTCP-3.0.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/d/DMTCP/DMTCP-3.0.0-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..9721668c208
--- /dev/null
+++ b/easybuild/easyconfigs/d/DMTCP/DMTCP-3.0.0-GCCcore-13.2.0.eb
@@ -0,0 +1,26 @@
+easyblock = 'ConfigureMake'
+
+name = 'DMTCP'
+version = '3.0.0'
+
+homepage = 'http://dmtcp.sourceforge.net/index.html'
+description = """DMTCP is a tool to transparently checkpoint the state of multiple
+simultaneous applications, including multi-threaded and distributed applications.
+It operates directly on the user binary executable, without any Linux kernel modules
+or other kernel modifications."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+source_urls = ['https://github.com/dmtcp/dmtcp/archive/']
+sources = ['%(version)s.tar.gz']
+checksums = ['2c7e95e1dbc55db33433bfee48a65f274298e98f246a36ab6dad1e0694750d37']
+
+builddependencies = [('binutils', '2.40')]
+
+sanity_check_paths = {
+ 'files': ['bin/dmtcp_command', 'bin/dmtcp_discover_rm', 'bin/dmtcp_nocheckpoint', 'bin/dmtcp_srun_helper',
+ 'bin/dmtcp_sshd', 'bin/dmtcp_coordinator', 'bin/dmtcp_launch', 'bin/dmtcp_restart', 'bin/dmtcp_ssh'],
+ 'dirs': [],
+}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/d/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/Doxygen/Doxygen-1.11.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/d/Doxygen/Doxygen-1.11.0-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..da8dc7f5808
--- /dev/null
+++ b/easybuild/easyconfigs/d/Doxygen/Doxygen-1.11.0-GCCcore-13.3.0.eb
@@ -0,0 +1,41 @@
+easyblock = 'CMakeMake'
+
+name = 'Doxygen'
+version = '1.11.0'
+
+homepage = 'https://www.doxygen.org'
+description = """
+ Doxygen is a documentation system for C++, C, Java, Objective-C, Python,
+ IDL (Corba and Microsoft flavors), Fortran, VHDL, PHP, C#, and to some
+ extent D.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = [SOURCEFORGE_SOURCE]
+sources = ['%(namelower)s-%(version)s.src.tar.gz']
+checksums = ['c9edfdf8c5f3e8bee0c4c967850caead27099883ee7ff8b11044e6d63faf3607']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('Bison', '3.8.2'),
+ ('CMake', '3.29.3'),
+ ('flex', '2.6.4'),
+ ('pkgconf', '2.2.0'),
+ ('Python', '3.12.3'),
+]
+
+dependencies = [
+ ('libiconv', '1.17'),
+]
+
+configopts = "-DICONV_DIR=$EBROOTLIBICONV -DICONV_IN_GLIBC=OFF"
+
+sanity_check_paths = {
+ 'files': ["bin/doxygen"],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["doxygen --help"]
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/d/dask-labextension/dask-labextension-7.0.0-foss-2023a.eb b/easybuild/easyconfigs/d/dask-labextension/dask-labextension-7.0.0-foss-2023a.eb
new file mode 100644
index 00000000000..a0baf17a0ae
--- /dev/null
+++ b/easybuild/easyconfigs/d/dask-labextension/dask-labextension-7.0.0-foss-2023a.eb
@@ -0,0 +1,37 @@
+easyblock = 'PythonBundle'
+
+name = 'dask-labextension'
+version = '7.0.0'
+
+homepage = 'https://github.com/dask/dask-labextension'
+description = """This package provides a JupyterLab extension to manage Dask clusters, as well
+as embed Dask's dashboard plots directly into JupyterLab panes."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('JupyterLab', '4.0.5'),
+ ('jupyter-server-proxy', '4.0.0'),
+ ('dask', '2023.9.2'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('dask_labextension', version, {
+ 'sources': ['%(name)s-%(version)s-py3-none-any.whl'],
+ 'checksums': ['34fd1ee80a7259dc292a789cc82e4563d7cd1f5a26eb2ee8b434517482f82027'],
+ }),
+]
+
+sanity_pip_check = True
+
+sanity_check_paths = {
+ 'files': [],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages/dask_labextension', 'etc/jupyter', 'share/jupyter'],
+}
+
+modextrapaths = {'EB_ENV_JUPYTER_ROOT': ''}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/d/dask-labextension/dask-labextension-7.0.0-gfbf-2023b.eb b/easybuild/easyconfigs/d/dask-labextension/dask-labextension-7.0.0-gfbf-2023b.eb
new file mode 100644
index 00000000000..7ff6ec31bf7
--- /dev/null
+++ b/easybuild/easyconfigs/d/dask-labextension/dask-labextension-7.0.0-gfbf-2023b.eb
@@ -0,0 +1,37 @@
+easyblock = 'PythonBundle'
+
+name = 'dask-labextension'
+version = '7.0.0'
+
+homepage = 'https://github.com/dask/dask-labextension'
+description = """This package provides a JupyterLab extension to manage Dask clusters, as well
+as embed Dask's dashboard plots directly into JupyterLab panes."""
+
+toolchain = {'name': 'gfbf', 'version': '2023b'}
+
+dependencies = [
+ ('Python', '3.11.5'),
+ ('JupyterLab', '4.2.0'),
+ ('jupyter-server-proxy', '4.1.2'),
+ ('dask', '2024.5.1'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('dask_labextension', version, {
+ 'sources': ['%(name)s-%(version)s-py3-none-any.whl'],
+ 'checksums': ['34fd1ee80a7259dc292a789cc82e4563d7cd1f5a26eb2ee8b434517482f82027'],
+ }),
+]
+
+sanity_pip_check = True
+
+sanity_check_paths = {
+ 'files': [],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages/dask_labextension', 'etc/jupyter', 'share/jupyter'],
+}
+
+modextrapaths = {'EB_ENV_JUPYTER_ROOT': ''}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/d/dask/dask-2024.5.1-gfbf-2023b.eb b/easybuild/easyconfigs/d/dask/dask-2024.5.1-gfbf-2023b.eb
new file mode 100644
index 00000000000..36229e3f967
--- /dev/null
+++ b/easybuild/easyconfigs/d/dask/dask-2024.5.1-gfbf-2023b.eb
@@ -0,0 +1,67 @@
+easyblock = 'PythonBundle'
+
+name = 'dask'
+version = '2024.5.1'
+
+homepage = 'https://dask.org/'
+description = """ Dask natively scales Python. Dask provides advanced parallelism for analytics,
+enabling performance at scale for the tools you love."""
+
+toolchain = {'name': 'gfbf', 'version': '2023b'}
+
+dependencies = [
+ ('Python', '3.11.5'),
+ ('Python-bundle-PyPI', '2023.10'),
+ ('SciPy-bundle', '2023.11'),
+ ('PyYAML', '6.0.1'),
+ ('bokeh', '3.4.1'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('toolz', '0.12.1', {
+ 'checksums': ['ecca342664893f177a13dac0e6b41cbd8ac25a358e5f215316d43e2100224f4d'],
+ }),
+ ('locket', '1.0.0', {
+ 'checksums': ['5c0d4c052a8bbbf750e056a8e65ccd309086f4f0f18a2eac306a8dfa4112a632'],
+ }),
+ ('partd', '1.4.2', {
+ 'checksums': ['d022c33afbdc8405c226621b015e8067888173d85f7f5ecebb3cafed9a20f02c'],
+ }),
+ ('HeapDict', '1.0.1', {
+ 'checksums': ['8495f57b3e03d8e46d5f1b2cc62ca881aca392fd5cc048dc0aa2e1a6d23ecdb6'],
+ }),
+ ('zict', '3.0.0', {
+ 'checksums': ['e321e263b6a97aafc0790c3cfb3c04656b7066e6738c37fffcca95d803c9fba5'],
+ }),
+ ('tblib', '3.0.0', {
+ 'checksums': ['93622790a0a29e04f0346458face1e144dc4d32f493714c6c3dff82a4adb77e6'],
+ }),
+ (name, version, {
+ 'checksums': ['e071fda67031c314569e37ca70b3e88bb30f1d91ff8ee4122b541845847cc264'],
+ }),
+ ('distributed', version, {
+ 'checksums': ['c4e641e5fc014de3b43c584c70f703a7d44557b51b1143db812b8bc861aa84e2'],
+ }),
+ ('dask-mpi', '2022.4.0', {
+ 'checksums': ['0a04f1d7d35a06cdff506593330d4414ea242c9172498ce191f5742eac499e17'],
+ }),
+ ('docrep', '0.3.2', {
+ 'checksums': ['ed8a17e201abd829ef8da78a0b6f4d51fb99a4cbd0554adbed3309297f964314'],
+ }),
+ ('dask-jobqueue', '0.8.5', {
+ 'checksums': ['f6923f9d7ff894b96efbf706118b2cd37fd37751d567e91c22dfd3e2eaa93202'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/dask-%s' % x for x in ['mpi', 'scheduler', 'ssh', 'worker']],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = ["dask-scheduler --help"]
+
+sanity_pip_check = True
+
+moduleclass = 'data'
diff --git a/easybuild/easyconfigs/d/dask/dask-2024.9.1-gfbf-2024a.eb b/easybuild/easyconfigs/d/dask/dask-2024.9.1-gfbf-2024a.eb
new file mode 100644
index 00000000000..93df8dc002f
--- /dev/null
+++ b/easybuild/easyconfigs/d/dask/dask-2024.9.1-gfbf-2024a.eb
@@ -0,0 +1,64 @@
+easyblock = 'PythonBundle'
+
+name = 'dask'
+version = '2024.9.1'
+
+homepage = 'https://dask.org/'
+description = """ Dask natively scales Python. Dask provides advanced parallelism for analytics,
+enabling performance at scale for the tools you love."""
+
+toolchain = {'name': 'gfbf', 'version': '2024a'}
+
+dependencies = [
+ ('Python', '3.12.3'),
+ ('Python-bundle-PyPI', '2024.06'),
+ ('SciPy-bundle', '2024.05'),
+ ('PyYAML', '6.0.2'),
+ ('bokeh', '3.6.0'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('toolz', '0.12.1', {
+ 'checksums': ['ecca342664893f177a13dac0e6b41cbd8ac25a358e5f215316d43e2100224f4d'],
+ }),
+ ('locket', '1.0.0', {
+ 'checksums': ['5c0d4c052a8bbbf750e056a8e65ccd309086f4f0f18a2eac306a8dfa4112a632'],
+ }),
+ ('partd', '1.4.2', {
+ 'checksums': ['d022c33afbdc8405c226621b015e8067888173d85f7f5ecebb3cafed9a20f02c'],
+ }),
+ ('HeapDict', '1.0.1', {
+ 'checksums': ['8495f57b3e03d8e46d5f1b2cc62ca881aca392fd5cc048dc0aa2e1a6d23ecdb6'],
+ }),
+ ('zict', '3.0.0', {
+ 'checksums': ['e321e263b6a97aafc0790c3cfb3c04656b7066e6738c37fffcca95d803c9fba5'],
+ }),
+ ('tblib', '3.0.0', {
+ 'checksums': ['93622790a0a29e04f0346458face1e144dc4d32f493714c6c3dff82a4adb77e6'],
+ }),
+ (name, version, {
+ 'checksums': ['06eccc6a68d2882bcd9de24548fa96e8d0da7fbfff0baed3f3c2a526b73dfbb4'],
+ }),
+ ('distributed', version, {
+ 'checksums': ['4d573d89ff4fdde0dd96ad5cfdb843ce8ecef8caf002435bc60d14414dc1e819'],
+ }),
+ ('docrep', '0.3.2', {
+ 'checksums': ['ed8a17e201abd829ef8da78a0b6f4d51fb99a4cbd0554adbed3309297f964314'],
+ }),
+ ('dask-jobqueue', '0.8.5', {
+ 'checksums': ['f6923f9d7ff894b96efbf706118b2cd37fd37751d567e91c22dfd3e2eaa93202'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/dask-%s' % x for x in ['scheduler', 'ssh', 'worker']],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = ["dask-scheduler --help"]
+
+sanity_pip_check = True
+
+moduleclass = 'data'
diff --git a/easybuild/easyconfigs/d/datalad/datalad-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..3e1eb388a12
--- /dev/null
+++ b/easybuild/easyconfigs/d/decona/decona-1.4-20240731-foss-2023a.eb
@@ -0,0 +1,41 @@
+easyblock = 'Tarball'
+
+name = 'decona'
+version = '1.4-20240731'
+local_commit = 'f7488ad'
+
+homepage = 'https://github.com/Saskia-Oosterbroek/decona'
+description = "fastq to polished sequenses: pipeline suitable for mixed samples and long (Nanopore) reads"
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+source_urls = ['https://github.com/Saskia-Oosterbroek/decona/archive']
+sources = ['%s.tar.gz' % local_commit]
+checksums = ['7504160481ccdd3410fc79348c01a9a3bf0795ad73679cc305e1dcdf3e395962']
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('NanoFilt', '2.8.0'),
+ ('qcat', '1.1.0'),
+ ('CD-HIT', '4.8.1'),
+ ('minimap2', '2.26'),
+ ('Racon', '1.5.0'),
+ ('medaka', '1.11.3'),
+ ('BLAST+', '2.14.1'),
+]
+
+fix_python_shebang_for = ['decona']
+
+modextrapaths = {
+ 'PATH': '',
+ 'PYTHONPATH': '',
+}
+
+sanity_check_paths = {
+ 'files': ['decona'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["decona -v | grep 'This is Decona %s'" % version.split('-')[0]]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/d/deepTools/deepTools-3.5.5-gfbf-2023a.eb b/easybuild/easyconfigs/d/deepTools/deepTools-3.5.5-gfbf-2023a.eb
new file mode 100644
index 00000000000..88204ce2678
--- /dev/null
+++ b/easybuild/easyconfigs/d/deepTools/deepTools-3.5.5-gfbf-2023a.eb
@@ -0,0 +1,53 @@
+easyblock = 'PythonBundle'
+
+name = 'deepTools'
+version = '3.5.5'
+
+homepage = 'https://deeptools.readthedocs.io/'
+description = """deepTools is a suite of python tools particularly developed for the efficient analysis of
+ high-throughput sequencing data, such as ChIP-seq, RNA-seq or MNase-seq."""
+
+toolchain = {'name': 'gfbf', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('matplotlib', '3.7.2'),
+ ('plotly.py', '5.16.0'),
+ ('Pysam', '0.22.0'),
+ ('pyBigWig', '0.3.22'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('py2bit', '0.3.0', {
+ 'checksums': ['450555c40cba66957ac8c9a4b6afb625fb34c4bb41638de78c87661ff8b682ef'],
+ }),
+ ('deeptoolsintervals', '0.1.9', {
+ 'checksums': ['7d94c36fd2b6f10d8b99e536d2672e8228971f1fc810497d33527bba2c40d4f6'],
+ }),
+ ('numpydoc', '1.5.0', {
+ 'checksums': ['b0db7b75a32367a0e25c23b397842c65e344a1206524d16c8069f0a1c91b5f4c'],
+ }),
+ (name, version, {
+ 'checksums': ['1c04870187117fa42eb11de95e7ff136f1445965b49ad5dae46099c3ed273f7b'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/bamCompare', 'bin/bamCoverage', 'bin/bamPEFragmentSize', 'bin/computeGCBias', 'bin/computeMatrix',
+ 'bin/correctGCBias', 'bin/multiBamSummary', 'bin/plotCorrelation', 'bin/plotCoverage',
+ 'bin/plotHeatmap', 'bin/plotProfile'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = [
+ "bamCompare --help",
+ "multiBamSummary --help",
+ "plotHeatmap --help",
+]
+
+sanity_pip_check = True
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/d/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/E-ANTIC/E-ANTIC-2.0.2-gfbf-2023b.eb b/easybuild/easyconfigs/e/E-ANTIC/E-ANTIC-2.0.2-gfbf-2023b.eb
new file mode 100644
index 00000000000..fcb851f1091
--- /dev/null
+++ b/easybuild/easyconfigs/e/E-ANTIC/E-ANTIC-2.0.2-gfbf-2023b.eb
@@ -0,0 +1,38 @@
+easyblock = 'ConfigureMake'
+
+name = 'E-ANTIC'
+version = '2.0.2'
+
+homepage = 'https://github.com/flatsurf/e-antic'
+description = """E-ANTIC is a C/C++ library to deal with real embedded number fields built on
+top of ANTIC (https://github.com/wbhart/antic). Its aim is to have as fast as
+possible exact arithmetic operations and comparisons."""
+
+toolchain = {'name': 'gfbf', 'version': '2023b'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/flatsurf/e-antic/releases/download/%(version)s']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['8328e6490129dfec7f4aa478ebd54dc07686bd5e5e7f5f30dcf20c0f11b67f60']
+
+dependencies = [
+ ('FLINT', '3.1.1'),
+ ('Boost', '1.83.0'),
+ ('Python', '3.11.5'),
+ ('cppyy', '3.1.2'),
+]
+
+configopts = '--without-benchmark --without-byexample --without-pytest --without-doc'
+
+sanity_check_paths = {
+ 'files': ['lib/lib%s.%s' % (lib, ext) for lib in ['eantic', 'eanticxx'] for ext in ['a', SHLIB_EXT]] +
+ ['include/e-antic/%s.h' % h for h in ['e-antic', 'fmpq_poly_extra', 'renf',
+ 'renf_elem', 'renfxx']],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = ["python -c 'import pyeantic'"]
+
+modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'}
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/e/ECL/ECL-24.5.10-GCCcore-13.2.0.eb b/easybuild/easyconfigs/e/ECL/ECL-24.5.10-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..cb4390c3499
--- /dev/null
+++ b/easybuild/easyconfigs/e/ECL/ECL-24.5.10-GCCcore-13.2.0.eb
@@ -0,0 +1,32 @@
+easyblock = 'ConfigureMake'
+
+name = 'ECL'
+version = '24.5.10'
+
+homepage = 'https://ecl.common-lisp.dev/'
+description = """ECL (Embeddable Common-Lisp) is an interpreter of the Common-Lisp language
+ as described in the X3J13 Ansi specification, featuring CLOS (Common-Lisp Object System),
+ conditions, loops, etc, plus a translator to C, which can produce standalone executables."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+source_urls = ['https://common-lisp.net/project/ecl/static/files/release']
+sources = [SOURCELOWER_TGZ]
+checksums = ['e4ea65bb1861e0e495386bfa8bc673bd014e96d3cf9d91e9038f91435cbe622b']
+
+builddependencies = [('binutils', '2.40')]
+
+dependencies = [
+ ('GMP', '6.3.0'),
+]
+
+configopts = "--enable-manual=no "
+
+sanity_check_paths = {
+ 'files': ['bin/ecl', 'bin/ecl-config', 'include/ecl/ecl.h', 'lib/libecl.%s' % SHLIB_EXT],
+ 'dirs': ['share'],
+}
+
+sanity_check_commands = ["ecl --help"]
+
+moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/e/EGA-QuickView/EGA-QuickView-20240620-GCC-12.3.0.eb b/easybuild/easyconfigs/e/EGA-QuickView/EGA-QuickView-20240620-GCC-12.3.0.eb
new file mode 100644
index 00000000000..24e7302367a
--- /dev/null
+++ b/easybuild/easyconfigs/e/EGA-QuickView/EGA-QuickView-20240620-GCC-12.3.0.eb
@@ -0,0 +1,43 @@
+easyblock = 'ConfigureMake'
+
+name = 'EGA-QuickView'
+version = '20240620'
+local_commit = 'fe2034d'
+
+homepage = 'https://github.com/EGA-archive/ega-quickview'
+description = """EGA-QuickView is a FUSE file system to access EGA files remotely."""
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+
+github_account = 'EGA-archive'
+source_urls = [GITHUB_SOURCE]
+sources = [{
+ 'download_filename': '%s.tar.gz' % local_commit,
+ 'filename': '%(name)s-%(version)s.tar.gz',
+}]
+checksums = ['90836e42009736a8e20a2569918638f3cb2b53574265ca4f4bed7abd81a5e887']
+
+builddependencies = [
+ ('make', '4.4.1'),
+ ('Autotools', '20220317'),
+ ('pkgconf', '1.9.5'),
+]
+
+dependencies = [
+ ('libsodium', '1.0.18'),
+ ('FUSE', '3.16.2'),
+ ('GLib', '2.77.1'),
+]
+
+preconfigopts = "autoreconf -i && "
+# fix Makefile to create /bin in installdir
+preinstallopts = "sed -i 's/install: $(TARGET)/install: $(TARGET) $(bindir)/' Makefile && "
+
+sanity_check_paths = {
+ 'files': ['bin/ega-qv'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ['ega-qv -h']
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/e/ELPA/ELPA-2024.05.001-foss-2024a.eb b/easybuild/easyconfigs/e/ELPA/ELPA-2024.05.001-foss-2024a.eb
new file mode 100644
index 00000000000..8dcbc6ed3f2
--- /dev/null
+++ b/easybuild/easyconfigs/e/ELPA/ELPA-2024.05.001-foss-2024a.eb
@@ -0,0 +1,46 @@
+# #
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+#
+# Authors:: Inge Gutheil , Alan O'Cais
+# License:: MIT/GPL
+#
+# #
+
+name = 'ELPA'
+version = '2024.05.001'
+local_version = version.replace('.', '_')
+
+homepage = 'https://elpa.mpcdf.mpg.de/'
+description = "Eigenvalue SoLvers for Petaflop-Applications."
+
+toolchain = {'name': 'foss', 'version': '2024a'}
+toolchainopts = {'openmp': True, 'usempi': True}
+
+source_urls = ['https://gitlab.mpcdf.mpg.de/elpa/elpa/-/archive/release_%s/' % local_version]
+sources = ['{}-release_{}.tar.gz'.format('%(namelower)s', local_version)]
+patches = [
+ '%(name)s-2023.05.001_fix_hardcoded_perl_path.patch',
+ '%(name)s-2023.05.001_fix_AVX512_support.patch',
+]
+checksums = [
+ {'elpa-release_2024_05_001.tar.gz': '5e0c685536869bb91c230d70cac5e779ff418575681836f240b3e64e10b23f3e'},
+ {'ELPA-2023.05.001_fix_hardcoded_perl_path.patch':
+ '0548105065777a2ed07dde306636251c4f96e555a801647564de37d1ddd7b0b5'},
+ {'ELPA-2023.05.001_fix_AVX512_support.patch': 'ecf08b64fe1da432a218040fa45d4ecfbb3269d58cb018b12da5a2d854bf96be'},
+]
+
+builddependencies = [
+ ('Autotools', '20231222'),
+ ('Python', '3.12.3'),
+ ('Perl', '5.38.2'),
+]
+
+preconfigopts = './autogen.sh && export LDFLAGS="-lm $LDFLAGS" && autoreconf && '
+
+# When building in parallel, the file test_setup_mpi.mod is sometimes
+# used before it is built, leading to an error. This must be a bug in
+# the makefile affecting parallel builds.
+maxparallel = 1
+
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/e/ELSI/ELSI-2.11.0-foss-2023a-PEXSI.eb b/easybuild/easyconfigs/e/ELSI/ELSI-2.11.0-foss-2023a-PEXSI.eb
new file mode 100644
index 00000000000..a1be84f6de9
--- /dev/null
+++ b/easybuild/easyconfigs/e/ELSI/ELSI-2.11.0-foss-2023a-PEXSI.eb
@@ -0,0 +1,47 @@
+name = 'ELSI'
+version = '2.11.0'
+versionsuffix = '-PEXSI'
+
+homepage = 'https://wordpress.elsi-interchange.org/'
+description = """ELSI provides and enhances scalable, open-source software library solutions for
+ electronic structure calculations in materials science, condensed matter physics, chemistry, and many other fields.
+ ELSI focuses on methods that solve or circumvent eigenvalue problems in electronic structure theory.
+ The ELSI infrastructure should also be useful for other challenging eigenvalue problems.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'usempi': True, 'pic': True, 'cstd': 'c++11', 'extra_fflags': '-fallow-argument-mismatch'}
+
+source_urls = ['https://gitlab.com/elsi_project/elsi_interface/-/archive/v2.11.0/']
+sources = ['elsi_interface-v%(version)s.tar.gz']
+patches = [
+ 'ELSI-2.11.0_bison_3.8_compat.patch',
+]
+checksums = [
+ {'elsi_interface-v2.11.0.tar.gz': '2e6929827ed9c99a32381ed9da40482e862c28608d59d4f27db7dcbcaed1520d'},
+ {'ELSI-2.11.0_bison_3.8_compat.patch': 'a1284f5c0f442129610aa0fb463cc2b54450e3511a2fd6c871fadc21a16e9504'},
+]
+
+builddependencies = [
+ ('flex', '2.6.4'),
+ ('Bison', '3.8.2'),
+ ('CMake', '3.26.3'),
+]
+
+dependencies = [
+ ('ELPA', '2023.05.001'),
+ ('NTPoly', '3.1.0'),
+]
+
+abs_path_compilers = True
+build_internal_pexsi = True
+
+configopts = '-DENABLE_BSEPACK=ON '
+
+# Tests use 4 MPI ranks, they require a minimum of 4 cores
+# Map each MPI process to a single CPU core to avoid tests fails
+pretestopts = "export OMPI_MCA_rmaps_base_mapping_policy=slot:PE=1 && "
+
+runtest = True
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/e/ELSI/ELSI-2.11.0_bison_3.8_compat.patch b/easybuild/easyconfigs/e/ELSI/ELSI-2.11.0_bison_3.8_compat.patch
new file mode 100644
index 00000000000..255ed4a5575
--- /dev/null
+++ b/easybuild/easyconfigs/e/ELSI/ELSI-2.11.0_bison_3.8_compat.patch
@@ -0,0 +1,14 @@
+Make it compatible with Bison 3.7
+Author: Åke Sandgren, 20211020
+Update: Cintia Willemyns (Vrije Universiteit Brussel)
+--- elsi_interface-v2.11.0.orig/external/SCOTCH/CMakeLists.txt 2024-09-10 19:01:11.447551000 +0200
++++ elsi_interface-v2.11.0/external/SCOTCH/CMakeLists.txt 2024-09-10 19:08:44.913993743 +0200
+@@ -56,7 +56,7 @@
+ COMMAND mv ${PROJECT_BINARY_DIR}/generated/tmp2.c ${PROJECT_BINARY_DIR}/generated/parser_yy.c
+ # Versions of bison > 2.X insert a '#include tmp2.h' in tmp2.c. A simple 'mv' will not work.
+ # The file needs to remain in the directory with the old name. Hence the 'cp'
+- COMMAND cp ${PROJECT_BINARY_DIR}/generated/tmp2.h ${PROJECT_BINARY_DIR}/generated/parser_ly.h
++ COMMAND ln -s ${PROJECT_BINARY_DIR}/generated/tmp2.h ${PROJECT_BINARY_DIR}/generated/parser_ly.h
+ COMMAND flex -Pscotchyy -o${PROJECT_BINARY_DIR}/generated/tmp1.c ${SCOTCH_DIR}/parser_ll.l
+ COMMAND mv ${PROJECT_BINARY_DIR}/generated/tmp1.c ${PROJECT_BINARY_DIR}/generated/parser_ll.c
+ DEPENDS ${SCOTCH_DIR}/parser_yy.y ${SCOTCH_DIR}/parser_ll.l ${SCOTCH_DIR}/parser_yy.h ${SCOTCH_DIR}/parser_ll.h
diff --git a/easybuild/easyconfigs/e/ELSI/ELSI-2.9.1-foss-2022a-PEXSI.eb b/easybuild/easyconfigs/e/ELSI/ELSI-2.9.1-foss-2022a-PEXSI.eb
new file mode 100644
index 00000000000..d5ef7e3da14
--- /dev/null
+++ b/easybuild/easyconfigs/e/ELSI/ELSI-2.9.1-foss-2022a-PEXSI.eb
@@ -0,0 +1,45 @@
+name = 'ELSI'
+version = '2.9.1'
+versionsuffix = '-PEXSI'
+
+homepage = 'https://wordpress.elsi-interchange.org/'
+description = """ELSI provides and enhances scalable, open-source software library solutions for
+ electronic structure calculations in materials science, condensed matter physics, chemistry, and many other fields.
+ ELSI focuses on methods that solve or circumvent eigenvalue problems in electronic structure theory.
+ The ELSI infrastructure should also be useful for other challenging eigenvalue problems.
+"""
+
+toolchain = {'name': 'foss', 'version': '2022a'}
+toolchainopts = {'usempi': True, 'pic': True, 'cstd': 'c++11', 'extra_fflags': '-fallow-argument-mismatch'}
+
+source_urls = ['https://wordpress.elsi-interchange.org/wp-content/uploads/2022/05']
+sources = ['elsi_interface-v%(version)s.tar.gz']
+patches = [
+ 'pexsi-1.2.0-mpi30.patch',
+ 'ELSI-2.7.1_bison_3.7_compat.patch',
+]
+checksums = [
+ {'elsi_interface-v2.9.1.tar.gz': 'ad3dc163159a79f7a83f360265f2446920c151ecce9c294136e630fe424f1d29'},
+ {'pexsi-1.2.0-mpi30.patch': 'd5580de710cee652c27622f167a10933f792546481d9c08d62f452885cb63abb'},
+ {'ELSI-2.7.1_bison_3.7_compat.patch': '986f95c2eb22c8a8bef13357a10242dcf0a0fac562c88bdc9bdf46cc6e7a1edb'},
+]
+
+builddependencies = [
+ ('flex', '2.6.4'),
+ ('Bison', '3.8.2'),
+ ('CMake', '3.23.1'),
+]
+
+dependencies = [
+ ('ELPA', '2021.11.001'),
+ ('NTPoly', '2.7.1'),
+]
+
+abs_path_compilers = True
+build_internal_pexsi = True
+
+configopts = '-DENABLE_BSEPACK=ON '
+
+runtest = True
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/e/EMMAX/EMMAX-20100310-foss-2023a.eb b/easybuild/easyconfigs/e/EMMAX/EMMAX-20100310-foss-2023a.eb
new file mode 100644
index 00000000000..c68628823fb
--- /dev/null
+++ b/easybuild/easyconfigs/e/EMMAX/EMMAX-20100310-foss-2023a.eb
@@ -0,0 +1,40 @@
+easyblock = 'MakeCp'
+
+name = 'EMMAX'
+# version is based on datestamp of files in emmax-beta-src.tar.gz
+# (last checked on 13 Aug 2024)
+version = '20100310'
+
+homepage = 'https://csg.sph.umich.edu//kang/emmax'
+description = """EMMAX is a statistical test for large scale human or model organism
+ association mapping accounting for the sample structure"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+source_urls = ['https://csg.sph.umich.edu//kang/emmax/download/']
+sources = [{'download_filename': 'emmax-beta-src.tar.gz', 'filename': SOURCE_TAR_GZ}]
+patches = ['EMMAX-20100310_fix-build.patch']
+checksums = [
+ {'EMMAX-20100310.tar.gz': '79670917a0ac74ff1899fb27361e2e07b0f3a7911a9d9c6e0c18cf066b8987ea'},
+ {'EMMAX-20100310_fix-build.patch': 'fae62d1f9f7bd4b94c81cdeb01d5134cc2825bcab050ddbfa89ce232eca8497e'},
+]
+
+dependencies = [
+ ('zlib', '1.2.13'),
+]
+
+buildopts = 'CC="$CC $CFLAGS" CLIBS="-lflexiblas -lm -lz"'
+
+files_to_copy = [(['emmax', 'emmax-kin'], 'bin')]
+
+sanity_check_paths = {
+ 'files': ['bin/emmax', 'bin/emmax-kin'],
+ 'dirs': [],
+}
+
+sanity_check_commands = [
+ "emmax 2>&1 | grep '^Usage: emmax'",
+ "emmax-kin 2>&1 | grep '^Usage: emmax_IBS_kin'",
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/e/EMMAX/EMMAX-20100310_fix-build.patch b/easybuild/easyconfigs/e/EMMAX/EMMAX-20100310_fix-build.patch
new file mode 100644
index 00000000000..c2827ab10a9
--- /dev/null
+++ b/easybuild/easyconfigs/e/EMMAX/EMMAX-20100310_fix-build.patch
@@ -0,0 +1,88 @@
+fix build with recent compiler & BLAS/LAPACK library
+author: Kenneth Hoste (HPC-UGent)
+
+--- emmax-beta-src/emmax.c.orig 2024-08-13 16:28:41.536119000 +0200
++++ emmax-beta-src/emmax.c 2024-08-13 16:54:06.856501202 +0200
+@@ -7,7 +7,8 @@
+ #include
+ #include
+ #include
+-#include
++#include
++#include
+ #include
+ //#include "lapack_wrapper.h"
+
+@@ -1621,15 +1622,13 @@
+ double *W,
+ double *WORK, int LWORK, int *IWORK, int LIWORK)
+ {
+- extern void dsyevd_ (char *JOBZp, char *UPLOp, int *Np,
+- double *A, int *LDAp,
+- double *W,
+- double *WORK, int *LWORKp, int *IWORK, int *LIWORKp,
+- int *INFOp);
+ int INFO;
+- dsyevd_ (&JOBZ, &UPLO, &N, A, &LDA,
++ int32_t N32 = N;
++ int32_t LDA32 = LDA;
++ int32_t LWORK32 = LWORK;
++ dsyevd_ (&JOBZ, &UPLO, &N32, A, &LDA32,
+ W,
+- WORK, &LWORK, IWORK, &LIWORK, &INFO);
++ WORK, &LWORK32, IWORK, &LIWORK, &INFO, 1, 1);
+
+ return INFO;
+ }
+@@ -1640,16 +1639,11 @@
+ double *W, double *Z, int LDZ, int *ISUPPZ,
+ double *WORK, int LWORK, int *IWORK, int LIWORK)
+ {
+- extern void dsyevr_ (char *JOBZp, char *RANGEp, char *UPLOp, int *Np,
+- double *A, int *LDAp, double *VLp, double *VUp,
+- int *ILp, int *IUp, double *ABSTOLp, int *Mp,
+- double *W, double *Z, int *LDZp, int *ISUPPZ,
+- double *WORK, int *LWORKp, int *IWORK, int *LIWORKp,
+- int *INFOp);
+ int INFO;
+- dsyevr_ (&JOBZ, &RANGE, &UPLO, &N, A, &LDA, &VL, &VU,
+- &IL, &IU, &ABSTOL, M, W, Z, &LDZ, ISUPPZ,
+- WORK, &LWORK, IWORK, &LIWORK, &INFO);
++ int32_t N32 = N, LDA32 = LDA, IL32 = IL, IU32 = IU, LDZ32 = LDZ, LWORK32 = LWORK, LIWORK32 = LIWORK;
++ dsyevr_ (&JOBZ, &RANGE, &UPLO, &N32, A, &LDA32, &VL, &VU,
++ &IL32, &IU32, &ABSTOL, M, W, Z, &LDZ32, ISUPPZ,
++ WORK, &LWORK32, IWORK, &LIWORK32, &INFO, 1, 1, 1);
+
+ return INFO;
+ }
+@@ -1739,16 +1733,27 @@
+ }
+
+ /* Turn Y into its LU form, store pivot matrix */
+- info = clapack_dgetrf (CblasColMajor, n, n, Y, n, ipiv);
++ dgetrf_(&n, &n, Y, &n, ipiv, &info);
+
+ /* Don't bother continuing when illegal argument (info<0) or singularity (info>0) occurs */
+- if (info!=0) return info;
++ if (info != 0) {
++ free(ipiv);
++ return info;
++ }
+
+ /* Feed this to the lapack inversion routine. */
+- info = clapack_dgetri (CblasColMajor, n, Y, n, ipiv);
++ int lwork = n * n;
++ double *work = malloc(lwork * sizeof(double));
++ if (work == NULL) {
++ printf("malloc failed for work array in matrix_invert\n");
++ free(ipiv);
++ return 2;
++ }
++ dgetri_(&n, Y, &n, ipiv, work, &lwork, &info);
+
+ /* Cleanup and exit */
+ free(ipiv);
++ free(work);
+ return info;
+ }
+
diff --git a/easybuild/easyconfigs/e/ESIpy/ESIpy-20240731-foss-2022a.eb b/easybuild/easyconfigs/e/ESIpy/ESIpy-20240731-foss-2022a.eb
new file mode 100644
index 00000000000..290a85e008e
--- /dev/null
+++ b/easybuild/easyconfigs/e/ESIpy/ESIpy-20240731-foss-2022a.eb
@@ -0,0 +1,40 @@
+easyblock = 'Tarball'
+
+name = 'ESIpy'
+version = '20240731'
+_commit = '25ff61c'
+
+homepage = 'https://github.com/jgrebol/ESIpy'
+description = """Program aimed at the calculation of population analysis and aromaticity
+indicators from different Hilbert space partitions."""
+
+toolchain = {'name': 'foss', 'version': '2022a'}
+
+sources = [
+ {
+ 'source_urls': ['https://github.com/jgrebol/ESIpy/archive'],
+ 'download_filename': '%s.tar.gz' % _commit,
+ 'filename': SOURCE_TAR_GZ,
+ },
+]
+checksums = ['d8b7bf723ea37426ba6a3d4ddc07c2e969c75afd1ff4843c7d21b2faa1f035b0']
+
+dependencies = [
+ ('Python', '3.10.4'),
+ ('PySCF', '2.1.1'),
+]
+
+sanity_check_paths = {
+ 'files': ['esi.py'],
+ 'dirs': ['utils', 'examples'],
+}
+
+sanity_check_commands = [
+ "python -c 'import esi'",
+]
+
+modextrapaths = {
+ 'PYTHONPATH': '',
+}
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/e/ESM-2/ESM-2-2.0.0-foss-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/e/ESM-2/ESM-2-2.0.0-foss-2023a-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..eae9330bcdb
--- /dev/null
+++ b/easybuild/easyconfigs/e/ESM-2/ESM-2-2.0.0-foss-2023a-CUDA-12.1.1.eb
@@ -0,0 +1,42 @@
+easyblock = 'PythonBundle'
+
+name = 'ESM-2'
+version = '2.0.0'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://github.com/facebookresearch/esm'
+description = """ESM-2 outperforms all tested single-sequence protein language models
+ across a range of structure prediction tasks. ESMFold harnesses the ESM-2 language model to generate
+ accurate structure predictions end to end directly from the sequence of a protein."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+builddependencies = [
+ ('Java', '11', '', SYSTEM), # needed by ANTLR4 runtime
+]
+
+dependencies = [
+ ('CUDA', '12.1.1', '', SYSTEM),
+ ('Python', '3.11.3'),
+ ('PyTorch', '2.1.2', versionsuffix),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+# omegaconf is required for esmfold (in addition to OpenFold-1.0.1)
+exts_list = [
+ ('antlr4-python3-runtime', '4.9.3', {
+ 'modulename': 'antlr4',
+ 'checksums': ['f224469b4168294902bb1efa80a8bf7855f24c99aef99cbefc1bcd3cce77881b'],
+ }),
+ ('omegaconf', '2.3.0', {
+ 'checksums': ['d5d4b6d29955cc50ad50c46dc269bcd92c6e00f5f90d23ab5fee7bfca4ba4cc7'],
+ }),
+ ('fair-esm', version, {
+ 'modulename': "esm, esm.pretrained",
+ 'checksums': ['4ed34d4598ec75ed6550a4e581d023bf8d4a8375317ecba6269bb68135f80c85'],
+ }),
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/e/ESM-2/ESM-2-2.0.0-foss-2023a.eb b/easybuild/easyconfigs/e/ESM-2/ESM-2-2.0.0-foss-2023a.eb
new file mode 100644
index 00000000000..8b461b544cc
--- /dev/null
+++ b/easybuild/easyconfigs/e/ESM-2/ESM-2-2.0.0-foss-2023a.eb
@@ -0,0 +1,40 @@
+easyblock = 'PythonBundle'
+
+name = 'ESM-2'
+version = '2.0.0'
+
+homepage = 'https://github.com/facebookresearch/esm'
+description = """ESM-2 outperforms all tested single-sequence protein language models
+ across a range of structure prediction tasks. ESMFold harnesses the ESM-2 language model to generate
+ accurate structure predictions end to end directly from the sequence of a protein."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+builddependencies = [
+ ('Java', '11', '', SYSTEM), # needed by ANTLR4 runtime
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('PyTorch', '2.1.2'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+# omegaconf is required for esmfold (in addition to OpenFold-1.0.1)
+exts_list = [
+ ('antlr4-python3-runtime', '4.9.3', {
+ 'modulename': 'antlr4',
+ 'checksums': ['f224469b4168294902bb1efa80a8bf7855f24c99aef99cbefc1bcd3cce77881b'],
+ }),
+ ('omegaconf', '2.3.0', {
+ 'checksums': ['d5d4b6d29955cc50ad50c46dc269bcd92c6e00f5f90d23ab5fee7bfca4ba4cc7'],
+ }),
+ ('fair-esm', version, {
+ 'modulename': "esm, esm.pretrained",
+ 'checksums': ['4ed34d4598ec75ed6550a4e581d023bf8d4a8375317ecba6269bb68135f80c85'],
+ }),
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/e/ESM3/ESM3-3.0.0.post2-foss-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/e/ESM3/ESM3-3.0.0.post2-foss-2023a-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..1382c12efc6
--- /dev/null
+++ b/easybuild/easyconfigs/e/ESM3/ESM3-3.0.0.post2-foss-2023a-CUDA-12.1.1.eb
@@ -0,0 +1,53 @@
+easyblock = 'PythonBundle'
+
+name = 'ESM3'
+version = '3.0.0.post2'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://www.evolutionaryscale.ai/'
+description = """ESM3 is a frontier generative model for biology, able to jointly reason across
+three fundamental biological properties of proteins: sequence, structure, and
+function. These three data modalities are represented as tracks of discrete
+tokens at the input and output of ESM3. You can present the model with a
+combination of partial inputs across the tracks, and ESM3 will provide output
+predictions for all the tracks.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('CUDA', '12.1.1', '', SYSTEM),
+ ('Python', '3.11.3'),
+ ('PyTorch-bundle', '2.1.2', versionsuffix),
+ ('Transformers', '4.39.3'),
+ ('Biopython', '1.83'),
+ ('Biotite', '0.41.0'),
+ ('Brotli-python', '1.0.9'),
+ ('einops', '0.7.0'),
+ ('IPython', '8.14.0'),
+ ('scikit-learn', '1.3.1'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('msgpack-numpy', '0.4.8', {
+ 'checksums': ['c667d3180513422f9c7545be5eec5d296dcbb357e06f72ed39cc683797556e69'],
+ }),
+ ('cloudpathlib', '0.16.0', {
+ 'checksums': ['cdfcd35d46d529587d744154a0bdf962aca953b725c8784cd2ec478354ea63a3'],
+ }),
+ ('esm', version, {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['5544b6974945d791205226408100429c2ea6e49b30265aea1d359caabe20bb14'],
+ }),
+]
+
+sanity_pip_check = True
+
+sanity_check_commands = [
+ "python -c 'import esm'",
+ "python -c 'from esm.models.esm3 import ESM3'",
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/e/ESM3/ESM3-3.0.0.post2-foss-2023a.eb b/easybuild/easyconfigs/e/ESM3/ESM3-3.0.0.post2-foss-2023a.eb
new file mode 100644
index 00000000000..60125c1af46
--- /dev/null
+++ b/easybuild/easyconfigs/e/ESM3/ESM3-3.0.0.post2-foss-2023a.eb
@@ -0,0 +1,51 @@
+easyblock = 'PythonBundle'
+
+name = 'ESM3'
+version = '3.0.0.post2'
+
+homepage = 'https://www.evolutionaryscale.ai/'
+description = """ESM3 is a frontier generative model for biology, able to jointly reason across
+three fundamental biological properties of proteins: sequence, structure, and
+function. These three data modalities are represented as tracks of discrete
+tokens at the input and output of ESM3. You can present the model with a
+combination of partial inputs across the tracks, and ESM3 will provide output
+predictions for all the tracks.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('PyTorch-bundle', '2.1.2'),
+ ('Transformers', '4.39.3'),
+ ('Biopython', '1.83'),
+ ('Biotite', '0.41.0'),
+ ('Brotli-python', '1.0.9'),
+ ('einops', '0.7.0'),
+ ('IPython', '8.14.0'),
+ ('scikit-learn', '1.3.1'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('msgpack-numpy', '0.4.8', {
+ 'checksums': ['c667d3180513422f9c7545be5eec5d296dcbb357e06f72ed39cc683797556e69'],
+ }),
+ ('cloudpathlib', '0.16.0', {
+ 'checksums': ['cdfcd35d46d529587d744154a0bdf962aca953b725c8784cd2ec478354ea63a3'],
+ }),
+ ('esm', version, {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['5544b6974945d791205226408100429c2ea6e49b30265aea1d359caabe20bb14'],
+ }),
+]
+
+sanity_pip_check = True
+
+sanity_check_commands = [
+ "python -c 'import esm'",
+ "python -c 'from esm.models.esm3 import ESM3'",
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/e/ESMF/ESMF-8.6.0-foss-2023a.eb b/easybuild/easyconfigs/e/ESMF/ESMF-8.6.0-foss-2023a.eb
new file mode 100644
index 00000000000..356f3864756
--- /dev/null
+++ b/easybuild/easyconfigs/e/ESMF/ESMF-8.6.0-foss-2023a.eb
@@ -0,0 +1,37 @@
+name = 'ESMF'
+version = '8.6.0'
+
+homepage = 'https://www.earthsystemcog.org/projects/esmf/'
+description = """The Earth System Modeling Framework (ESMF) is a suite of software tools for developing
+ high-performance, multi-component Earth science modeling applications."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'usempi': True, 'openmp': True, 'cstd': 'c++11', 'pic': True}
+
+source_urls = ['https://github.com/esmf-org/esmf/archive/']
+sources = ['v%(version)s.tar.gz']
+patches = ['ESMF-6.1.1_libopts.patch']
+checksums = [
+ 'ed057eaddb158a3cce2afc0712b49353b7038b45b29aee86180f381457c0ebe7', # v8.6.0.tar.gz
+ '3851627f07c32a7da55d99072d619942bd3a1d9dd002e1557716158e7aacdaf4', # ESMF-6.1.1_libopts.patch
+]
+
+builddependencies = [('CMake', '3.26.3')]
+
+dependencies = [
+ ('netCDF', '4.9.2'),
+ ('netCDF-Fortran', '4.6.1'),
+ ('netCDF-C++4', '4.3.1'),
+ ('libarchive', '3.6.2'),
+]
+
+# disable errors from GCC 10 on mismatches between actual and dummy argument lists (GCC 9 behaviour)
+prebuildopts = 'ESMF_F90COMPILEOPTS="${ESMF_F90COMPILEOPTS} -fallow-argument-mismatch"'
+
+buildopts = 'ESMF_NETCDF_INCLUDE=$EBROOTNETCDFMINFORTRAN/include '
+buildopts += 'ESMF_NETCDF_LIBS="`nc-config --libs` `nf-config --flibs` `ncxx4-config --libs`"'
+
+# too parallel causes the build to become really slow
+maxparallel = 8
+
+moduleclass = 'geo'
diff --git a/easybuild/easyconfigs/e/ESMF/ESMF-8.6.1-foss-2023b.eb b/easybuild/easyconfigs/e/ESMF/ESMF-8.6.1-foss-2023b.eb
new file mode 100644
index 00000000000..d8471ef09d1
--- /dev/null
+++ b/easybuild/easyconfigs/e/ESMF/ESMF-8.6.1-foss-2023b.eb
@@ -0,0 +1,37 @@
+name = 'ESMF'
+version = '8.6.1'
+
+homepage = 'https://www.earthsystemcog.org/projects/esmf/'
+description = """The Earth System Modeling Framework (ESMF) is a suite of software tools for developing
+ high-performance, multi-component Earth science modeling applications."""
+
+toolchain = {'name': 'foss', 'version': '2023b'}
+toolchainopts = {'usempi': True, 'openmp': True, 'cstd': 'c++11', 'pic': True}
+
+source_urls = ['https://github.com/esmf-org/esmf/archive/']
+sources = ['v%(version)s.tar.gz']
+patches = ['ESMF-6.1.1_libopts.patch']
+checksums = [
+ {'v8.6.1.tar.gz': 'dc270dcba1c0b317f5c9c6a32ab334cb79468dda283d1e395d98ed2a22866364'},
+ {'ESMF-6.1.1_libopts.patch': '3851627f07c32a7da55d99072d619942bd3a1d9dd002e1557716158e7aacdaf4'},
+]
+
+builddependencies = [('CMake', '3.27.6')]
+
+dependencies = [
+ ('netCDF', '4.9.2'),
+ ('netCDF-Fortran', '4.6.1'),
+ ('netCDF-C++4', '4.3.1'),
+ ('libarchive', '3.7.2'),
+]
+
+# disable errors from GCC 10 on mismatches between actual and dummy argument lists (GCC 9 behaviour)
+prebuildopts = 'ESMF_F90COMPILEOPTS="${ESMF_F90COMPILEOPTS} -fallow-argument-mismatch"'
+
+buildopts = 'ESMF_NETCDF_INCLUDE=$EBROOTNETCDFMINFORTRAN/include '
+buildopts += 'ESMF_NETCDF_LIBS="`nc-config --libs` `nf-config --flibs` `ncxx4-config --libs`"'
+
+# too parallel causes the build to become really slow
+maxparallel = 8
+
+moduleclass = 'geo'
diff --git a/easybuild/easyconfigs/e/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/ESPResSo/ESPResSo-4.2.2-foss-2023a.eb b/easybuild/easyconfigs/e/ESPResSo/ESPResSo-4.2.2-foss-2023a.eb
new file mode 100644
index 00000000000..eb16f7546f5
--- /dev/null
+++ b/easybuild/easyconfigs/e/ESPResSo/ESPResSo-4.2.2-foss-2023a.eb
@@ -0,0 +1,55 @@
+easyblock = 'CMakeMake'
+
+name = 'ESPResSo'
+version = '4.2.2'
+
+homepage = 'https://espressomd.org/wordpress'
+description = """A software package for performing and analyzing scientific Molecular Dynamics simulations."""
+
+source_urls = ['https://github.com/espressomd/espresso/releases/download/%(version)s/']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['2bc02f91632b0030f1203759768bd718bd8a0005f72696980b12331b4bfa0d76']
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'usempi': True, 'pic': True}
+
+builddependencies = [('CMake', '3.26.3')]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('Boost.MPI', '1.82.0'),
+ ('HDF5', '1.14.0'),
+ ('Mesa', '23.1.4'),
+ ('GSL', '2.7'),
+ ('IPython', '8.14.0'),
+ ('Pint', '0.23'),
+]
+
+configopts = ' -DCMAKE_SKIP_RPATH=OFF -DWITH_TESTS=ON -DWITH_CUDA=OFF'
+# make sure the right Python is used (note: -DPython3_EXECUTABLE or -DPython_EXECUTABLE does not work!)
+configopts += ' -DPYTHON_EXECUTABLE=$EBROOTPYTHON/bin/python '
+
+runtest = 'check_unit_tests && make check_python'
+
+modextrapaths = {'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages']}
+
+_binaries = ['ipypresso', 'pypresso']
+_libs = [
+ 'Espresso_config', 'Espresso_core', 'Espresso_script_interface', 'Espresso_shapes',
+ '_init', 'analyze', 'code_info', 'electrokinetics', 'galilei',
+ 'integrate', 'interactions', 'lb', 'particle_data', 'polymer', 'profiler',
+ 'script_interface', 'system', 'thermostat', 'utils', 'version',
+]
+
+_lib_path = 'lib/python%(pyshortver)s/site-packages/espressomd'
+
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in _binaries] +
+ [_lib_path + '/%s.' % x + SHLIB_EXT for x in _libs],
+ 'dirs': ['bin', 'lib']
+}
+
+sanity_check_commands = ['pypresso -h', 'ipypresso -h']
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/e/ESPResSo/ESPResSo-4.2.2-foss-2023b.eb b/easybuild/easyconfigs/e/ESPResSo/ESPResSo-4.2.2-foss-2023b.eb
new file mode 100644
index 00000000000..950f31dba26
--- /dev/null
+++ b/easybuild/easyconfigs/e/ESPResSo/ESPResSo-4.2.2-foss-2023b.eb
@@ -0,0 +1,55 @@
+easyblock = 'CMakeMake'
+
+name = 'ESPResSo'
+version = '4.2.2'
+
+homepage = 'https://espressomd.org/wordpress'
+description = """A software package for performing and analyzing scientific Molecular Dynamics simulations."""
+
+source_urls = ['https://github.com/espressomd/espresso/releases/download/%(version)s/']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['2bc02f91632b0030f1203759768bd718bd8a0005f72696980b12331b4bfa0d76']
+
+toolchain = {'name': 'foss', 'version': '2023b'}
+toolchainopts = {'usempi': True, 'pic': True}
+
+builddependencies = [('CMake', '3.27.6')]
+
+dependencies = [
+ ('Python', '3.11.5'),
+ ('SciPy-bundle', '2023.11'),
+ ('Boost.MPI', '1.83.0'),
+ ('HDF5', '1.14.3'),
+ ('Mesa', '23.1.9'),
+ ('GSL', '2.7'),
+ ('IPython', '8.17.2'),
+ ('Pint', '0.24'),
+]
+
+configopts = ' -DCMAKE_SKIP_RPATH=OFF -DWITH_TESTS=ON -DWITH_CUDA=OFF'
+# make sure the right Python is used (note: -DPython3_EXECUTABLE or -DPython_EXECUTABLE does not work!)
+configopts += ' -DPYTHON_EXECUTABLE=$EBROOTPYTHON/bin/python '
+
+runtest = 'check_unit_tests && make check_python'
+
+modextrapaths = {'PYTHONPATH': ['lib/python%(pyshortver)s/site-packages']}
+
+_binaries = ['ipypresso', 'pypresso']
+_libs = [
+ 'Espresso_config', 'Espresso_core', 'Espresso_script_interface', 'Espresso_shapes',
+ '_init', 'analyze', 'code_info', 'electrokinetics', 'galilei',
+ 'integrate', 'interactions', 'lb', 'particle_data', 'polymer', 'profiler',
+ 'script_interface', 'system', 'thermostat', 'utils', 'version',
+]
+
+_lib_path = 'lib/python%(pyshortver)s/site-packages/espressomd'
+
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in _binaries] +
+ [_lib_path + '/%s.' % x + SHLIB_EXT for x in _libs],
+ 'dirs': ['bin', 'lib']
+}
+
+sanity_check_commands = ['pypresso -h', 'ipypresso -h']
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/e/EVcouplings/EVcouplings-0.1.1-foss-2023a.eb b/easybuild/easyconfigs/e/EVcouplings/EVcouplings-0.1.1-foss-2023a.eb
new file mode 100644
index 00000000000..cc4bc9b90bc
--- /dev/null
+++ b/easybuild/easyconfigs/e/EVcouplings/EVcouplings-0.1.1-foss-2023a.eb
@@ -0,0 +1,61 @@
+easyblock = 'PythonBundle'
+
+name = 'EVcouplings'
+version = '0.1.1'
+
+homepage = 'https://github.com/debbiemarkslab/EVcouplings'
+description = """
+Predict protein structure, function and mutations using evolutionary sequence covariation.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+builddependencies = [
+ ('hatchling', '1.18.0'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('numba', '0.58.1'),
+ ('SciPy-bundle', '2023.07'),
+ ('ruamel.yaml', '0.17.32'),
+ ('matplotlib', '3.7.2'),
+ ('bokeh', '3.2.2'),
+ ('Biopython', '1.83'),
+ ('Seaborn', '0.13.2'),
+ ('scikit-learn', '1.3.1'),
+ ('HMMER', '3.4'),
+ # Needs plmc installed with single precision
+ ('plmc', '20230121', '-32bit'),
+]
+
+exts_list = [
+ ('mmtf-python', '1.1.3', {
+ 'modulename': 'mmtf',
+ 'checksums': ['12a02fe1b7131f0a2b8ce45b46f1e0cdd28b9818fe4499554c26884987ea0c32'],
+ }),
+ ('filelock', '3.13.4', {
+ 'checksums': ['d13f466618bfde72bd2c18255e269f72542c6e70e7bac83a0232d6b1cc5c8cf4'],
+ }),
+ ('billiard', '4.2.0', {
+ 'checksums': ['9a3c3184cb275aa17a732f93f65b20c525d3d9f253722d26a82194803ade5a2c'],
+ }),
+ ('evcouplings', version, {
+ 'patches': ['EVcouplings-%(version)s_fix-import-Iterable-Mapping.patch'],
+ 'sources': ['%(name)s-%(version)s.zip'],
+ 'checksums': [
+ {'evcouplings-0.1.1.zip': 'aba07acdc39a0da73f39f48a8cac915d5b671abc008c123bbe30e6759a2499d2'},
+ {'EVcouplings-0.1.1_fix-import-Iterable-Mapping.patch':
+ 'db2cff1de3488baaa1f0ac186c02c61432c27a3e5221525f1c773817722e7ba9'},
+ ],
+ }),
+]
+
+sanity_check_commands = [
+ "evcouplings --help",
+]
+
+use_pip = True
+sanity_pip_check = True
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/e/EVcouplings/EVcouplings-0.1.1_fix-import-Iterable-Mapping.patch b/easybuild/easyconfigs/e/EVcouplings/EVcouplings-0.1.1_fix-import-Iterable-Mapping.patch
new file mode 100644
index 00000000000..59caa949d96
--- /dev/null
+++ b/easybuild/easyconfigs/e/EVcouplings/EVcouplings-0.1.1_fix-import-Iterable-Mapping.patch
@@ -0,0 +1,77 @@
+The Iterable and Mapping were removed from collections in Python 3.10
+Import Iterable and Mapping from collections.abc
+Author: Cintia Willemyns (Vrije Universiteit Brussel)
+diff -Naru evcouplings-0.1.1.orig/evcouplings/align/protocol.py evcouplings-0.1.1/evcouplings/align/protocol.py
+--- evcouplings-0.1.1.orig/evcouplings/align/protocol.py 2024-06-04 17:15:24.409905000 +0200
++++ evcouplings-0.1.1/evcouplings/align/protocol.py 2024-06-04 17:16:54.492901448 +0200
+@@ -8,7 +8,8 @@
+
+ """
+
+-from collections import OrderedDict, Iterable
++from collections import OrderedDict
++from collections.abc import Iterable
+ import re
+ from shutil import copy
+ import os
+diff -Naru evcouplings-0.1.1.orig/evcouplings/compare/pdb.py evcouplings-0.1.1/evcouplings/compare/pdb.py
+--- evcouplings-0.1.1.orig/evcouplings/compare/pdb.py 2024-06-04 17:15:24.419850000 +0200
++++ evcouplings-0.1.1/evcouplings/compare/pdb.py 2024-06-04 17:52:31.882593767 +0200
+@@ -5,7 +5,8 @@
+ Thomas A. Hopf
+ """
+
+-from collections import OrderedDict, Iterable
++from collections import OrderedDict
++from collections.abc import Iterable
+ from os import path
+ from urllib.error import HTTPError
+
+diff -Naru evcouplings-0.1.1.orig/evcouplings/couplings/mapping.py evcouplings-0.1.1/evcouplings/couplings/mapping.py
+--- evcouplings-0.1.1.orig/evcouplings/couplings/mapping.py 2024-06-04 17:15:24.405238000 +0200
++++ evcouplings-0.1.1/evcouplings/couplings/mapping.py 2024-06-04 17:52:59.165312780 +0200
+@@ -7,7 +7,7 @@
+ Anna G. Green (MultiSegmentCouplingsModel)
+ """
+
+-from collections import Iterable
++from collections.abc import Iterable
+ from copy import deepcopy
+ from evcouplings.couplings.model import CouplingsModel
+ import pandas as pd
+diff -Naru evcouplings-0.1.1.orig/evcouplings/couplings/model.py evcouplings-0.1.1/evcouplings/couplings/model.py
+--- evcouplings-0.1.1.orig/evcouplings/couplings/model.py 2024-06-04 17:15:24.407628000 +0200
++++ evcouplings-0.1.1/evcouplings/couplings/model.py 2024-06-04 17:53:16.476317130 +0200
+@@ -6,7 +6,7 @@
+ Authors:
+ Thomas A. Hopf
+ """
+-from collections import Iterable
++from collections.abc import Iterable
+ from copy import deepcopy
+
+ from numba import jit
+diff -Naru evcouplings-0.1.1.orig/evcouplings/utils/app.py evcouplings-0.1.1/evcouplings/utils/app.py
+--- evcouplings-0.1.1.orig/evcouplings/utils/app.py 2024-06-04 17:15:24.424719000 +0200
++++ evcouplings-0.1.1/evcouplings/utils/app.py 2024-06-04 17:53:56.971793813 +0200
+@@ -14,7 +14,7 @@
+ import re
+ from copy import deepcopy
+ from os import path, environ
+-from collections import Mapping
++from collections.abc import Mapping
+
+ import click
+
+diff -Naru evcouplings-0.1.1.orig/evcouplings/utils/tracker/mongodb.py evcouplings-0.1.1/evcouplings/utils/tracker/mongodb.py
+--- evcouplings-0.1.1.orig/evcouplings/utils/tracker/mongodb.py 2024-06-04 17:15:24.421959000 +0200
++++ evcouplings-0.1.1/evcouplings/utils/tracker/mongodb.py 2024-06-04 17:54:25.411050098 +0200
+@@ -16,7 +16,7 @@
+
+ import os
+ from datetime import datetime
+-from collections import Mapping
++from collections.abc import Mapping
+
+ from pymongo import MongoClient, errors
+ import gridfs
diff --git a/easybuild/easyconfigs/e/EVidenceModeler/EVidenceModeler-2.0.0_set-correct-CFlags-for-ParaFly.patch b/easybuild/easyconfigs/e/EVidenceModeler/EVidenceModeler-2.0.0_set-correct-CFlags-for-ParaFly.patch
new file mode 100644
index 00000000000..3920012f0c7
--- /dev/null
+++ b/easybuild/easyconfigs/e/EVidenceModeler/EVidenceModeler-2.0.0_set-correct-CFlags-for-ParaFly.patch
@@ -0,0 +1,14 @@
+take into account $CFLAGS and $CXXFLAGS set in build environment when building ParaFly
+author: Lara Peeters (HPC-UGent)
+diff -ru EVidenceModeler.orig/Makefile EVidenceModeler/Makefile
+--- EVidenceModeler.orig/Makefile 2024-10-10 09:25:20.000000000 +0200
++++ EVidenceModeler/Makefile 2024-10-16 10:58:57.509308850 +0200
+@@ -6,7 +6,7 @@
+ CC = gcc
+
+ parafly:
+- cd plugins/ParaFly && sh ./configure --prefix=`pwd` CXX=$(CXX) CC=$(CC) CFLAGS="-fopenmp" CXXFLAGS="-fopenmp" && $(MAKE) install
++ cd plugins/ParaFly && sh ./configure --prefix=`pwd` CXX=$(CXX) CC=$(CC) CFLAGS="$(CFLAGS) -fopenmp" CXXFLAGS="$(CXXFLAGS) -fopenmp" && $(MAKE) install
+
+
+
diff --git a/easybuild/easyconfigs/e/EVidenceModeler/EVidenceModeler-2.1.0-foss-2023a.eb b/easybuild/easyconfigs/e/EVidenceModeler/EVidenceModeler-2.1.0-foss-2023a.eb
new file mode 100644
index 00000000000..62454399723
--- /dev/null
+++ b/easybuild/easyconfigs/e/EVidenceModeler/EVidenceModeler-2.1.0-foss-2023a.eb
@@ -0,0 +1,47 @@
+easyblock = 'Tarball'
+
+name = 'EVidenceModeler'
+version = '2.1.0'
+
+homepage = 'https://github.com/EVidenceModeler/EVidenceModeler'
+description = """ EVM provides a flexible and intuitive framework for
+combining diverse evidence types into a single automated gene structure annotation system."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+sources = [{
+ 'filename': '%(name)s-v%(version)s.tar.gz',
+ 'git_config': {
+ 'url': 'https://github.com/EVidenceModeler',
+ 'repo_name': '%(name)s',
+ 'tag': '%(name)s-v%(version)s',
+ 'recursive': True,
+ }
+}]
+patches = ['EVidenceModeler-2.0.0_set-correct-CFlags-for-ParaFly.patch']
+checksums = [
+ None, # EVidenceModeler-v2.1.0.tar.gz
+ '619fc54db10fad3638daa177373c19c9ba4b69dcb80585822bfa9b2500f57d13',
+ # EVidenceModeler-2.0.0_set-correct-CFlags-for-ParaFly.patch
+]
+
+dependencies = [
+ ('PASA', '2.5.3',),
+]
+
+# Install ParaFly
+postinstallcmds = ["cd %(installdir)s && rm plugins/ParaFly/bin/ParaFly && make"]
+
+sanity_check_paths = {
+ 'files': ['EVidenceModeler', 'plugins/ParaFly/bin/ParaFly'],
+ 'dirs': ['plugins/ParaFly', 'testing'],
+}
+
+modextrapaths = {
+ 'EVM_HOME': '',
+ 'PATH': '',
+}
+
+sanity_check_commands = ["EVidenceModeler -h 2>&1 | grep 'Evidence Modeler'"]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/e/EasyBuild/EasyBuild-4.9.2.eb b/easybuild/easyconfigs/e/EasyBuild/EasyBuild-4.9.2.eb
new file mode 100644
index 00000000000..cb476c53d7f
--- /dev/null
+++ b/easybuild/easyconfigs/e/EasyBuild/EasyBuild-4.9.2.eb
@@ -0,0 +1,56 @@
+easyblock = 'EB_EasyBuildMeta'
+
+name = 'EasyBuild'
+version = '4.9.2'
+
+homepage = 'https://easybuilders.github.io/easybuild'
+description = """EasyBuild is a software build and installation framework
+ written in Python that allows you to install software in a structured,
+ repeatable and robust way."""
+
+toolchain = SYSTEM
+
+source_urls = [
+ # easybuild-framework
+ 'https://files.pythonhosted.org/packages/cc/1f/676fc9e29c68e9c39c6dadf150ab4e5bf4907de4b9afd2bc6e0afd24ab7c/',
+ # easybuild-easyblocks
+ 'https://files.pythonhosted.org/packages/5d/85/e8593ceeb00c61253204e74d2a8360076ce016f42d83d33841f8e7de57a1/',
+ # easybuild-easyconfigs
+ 'https://files.pythonhosted.org/packages/99/b2/d899b4310bc54a10e0fb46995a2abc333857db16d116f22a53b0313d13d7/',
+]
+# note: subdirectory for each unpacked source tarball is renamed because custom easyblock in older EasyBuild version
+# that is used for installing EasyBuild with EasyBuild expects subdirectories with '-' rather than '_';
+# see also https://github.com/easybuilders/easybuild-easyblocks/pull/3358
+sources = [
+ {
+ 'filename': 'easybuild_framework-%(version)s.tar.gz',
+ 'extract_cmd': "tar xfvz %s && mv easybuild_framework-%(version)s easybuild-framework-%(version)s",
+ },
+ {
+ 'filename': 'easybuild_easyblocks-%(version)s.tar.gz',
+ 'extract_cmd': "tar xfvz %s && mv easybuild_easyblocks-%(version)s easybuild-easyblocks-%(version)s",
+ },
+ {
+ 'filename': 'easybuild_easyconfigs-%(version)s.tar.gz',
+ 'extract_cmd': "tar xfvz %s && mv easybuild_easyconfigs-%(version)s easybuild-easyconfigs-%(version)s",
+ },
+]
+checksums = [
+ {'easybuild_framework-4.9.2.tar.gz': 'cc6e0fe7bab2a96d424656ed70bf33e3b083eef5ceaa5d5fed88aa7b91dd3d63'},
+ {'easybuild_easyblocks-4.9.2.tar.gz': '48202a89995a3d0a19228a35e409228bb6aa190ec7d7a7560e449303954953df'},
+ {'easybuild_easyconfigs-4.9.2.tar.gz': '52d6f6378fc331cda8a94ff196d5bd6bb74c8029c973ee6a92763c256571eec7'},
+]
+
+# order matters a lot, to avoid having dependencies auto-resolved (--no-deps easy_install option doesn't work?)
+# EasyBuild is a (set of) Python packages, so it depends on Python
+# usually, we want to use the system Python, so no actual Python dependency is listed
+allow_system_deps = [('Python', SYS_PYTHON_VERSION)]
+
+local_pyshortver = '.'.join(SYS_PYTHON_VERSION.split('.')[:2])
+
+sanity_check_paths = {
+ 'files': ['bin/eb'],
+ 'dirs': ['lib/python%s/site-packages' % local_pyshortver],
+}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/e/EasyBuild/EasyBuild-4.9.3.eb b/easybuild/easyconfigs/e/EasyBuild/EasyBuild-4.9.3.eb
new file mode 100644
index 00000000000..4059b342213
--- /dev/null
+++ b/easybuild/easyconfigs/e/EasyBuild/EasyBuild-4.9.3.eb
@@ -0,0 +1,56 @@
+easyblock = 'EB_EasyBuildMeta'
+
+name = 'EasyBuild'
+version = '4.9.3'
+
+homepage = 'https://easybuilders.github.io/easybuild'
+description = """EasyBuild is a software build and installation framework
+ written in Python that allows you to install software in a structured,
+ repeatable and robust way."""
+
+toolchain = SYSTEM
+
+source_urls = [
+ # easybuild-framework
+ 'https://files.pythonhosted.org/packages/10/a0/e5484d4078f7450042cd7b7a1af24fd3f8d0cb4818f4578e4c322ba488d8/',
+ # easybuild-easyblocks
+ 'https://files.pythonhosted.org/packages/ee/40/4f6412917f83429f9389b977903c8905f216cb211c8bf3111f28c3017677/',
+ # easybuild-easyconfigs
+ 'https://files.pythonhosted.org/packages/13/95/44d1e10ceaaf08219ef50d1d97d500ba3b6b34f2d76dd1ff64def71612dc/',
+]
+# note: subdirectory for each unpacked source tarball is renamed because custom easyblock in older EasyBuild version
+# that is used for installing EasyBuild with EasyBuild expects subdirectories with '-' rather than '_';
+# see also https://github.com/easybuilders/easybuild-easyblocks/pull/3358
+sources = [
+ {
+ 'filename': 'easybuild_framework-%(version)s.tar.gz',
+ 'extract_cmd': "tar xfvz %s && mv easybuild_framework-%(version)s easybuild-framework-%(version)s",
+ },
+ {
+ 'filename': 'easybuild_easyblocks-%(version)s.tar.gz',
+ 'extract_cmd': "tar xfvz %s && mv easybuild_easyblocks-%(version)s easybuild-easyblocks-%(version)s",
+ },
+ {
+ 'filename': 'easybuild_easyconfigs-%(version)s.tar.gz',
+ 'extract_cmd': "tar xfvz %s && mv easybuild_easyconfigs-%(version)s easybuild-easyconfigs-%(version)s",
+ },
+]
+checksums = [
+ {'easybuild_framework-4.9.3.tar.gz': '43bbcaa0a7b075eb6483054428ef4b1279a9fc850301171688f86899eaebfff8'},
+ {'easybuild_easyblocks-4.9.3.tar.gz': '4f036be918f88fe2dadba87f15d696e9b4d3f8f06986c675b9fafc77b591649d'},
+ {'easybuild_easyconfigs-4.9.3.tar.gz': 'f7f501c87cb16a8eb393f5e98cb3cd5f8e84314901e81ff50f8140681b415676'},
+]
+
+# order matters a lot, to avoid having dependencies auto-resolved (--no-deps easy_install option doesn't work?)
+# EasyBuild is a (set of) Python packages, so it depends on Python
+# usually, we want to use the system Python, so no actual Python dependency is listed
+allow_system_deps = [('Python', SYS_PYTHON_VERSION)]
+
+local_pyshortver = '.'.join(SYS_PYTHON_VERSION.split('.')[:2])
+
+sanity_check_paths = {
+ 'files': ['bin/eb'],
+ 'dirs': ['lib/python%s/site-packages' % local_pyshortver],
+}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/e/EasyBuild/EasyBuild-4.9.4.eb b/easybuild/easyconfigs/e/EasyBuild/EasyBuild-4.9.4.eb
new file mode 100644
index 00000000000..064536bb936
--- /dev/null
+++ b/easybuild/easyconfigs/e/EasyBuild/EasyBuild-4.9.4.eb
@@ -0,0 +1,59 @@
+easyblock = 'EB_EasyBuildMeta'
+
+name = 'EasyBuild'
+version = '4.9.4'
+
+homepage = 'https://easybuilders.github.io/easybuild'
+description = """EasyBuild is a software build and installation framework
+ written in Python that allows you to install software in a structured,
+ repeatable and robust way."""
+
+toolchain = SYSTEM
+
+source_urls = [
+ # easybuild-framework
+ 'https://files.pythonhosted.org/packages/bd/25/512d9e895a86f4df198274e8a5f6868406d97cc75da9acc5797f78139b52/',
+ # easybuild-easyblocks
+ 'https://files.pythonhosted.org/packages/d7/b0/b9289c78fafc21c5c01b225aeee89c69914166742e5f80955d49ed8f9722/',
+ # easybuild-easyconfigs
+ 'https://files.pythonhosted.org/packages/ed/2c/7b2b22235ffe9310a93cbfef06fb3723466aa8ccc4aca4888b59433e55a6/',
+]
+# note: subdirectory for each unpacked source tarball is renamed because custom easyblock in older EasyBuild version
+# that is used for installing EasyBuild with EasyBuild expects subdirectories with '-' rather than '_';
+# see also https://github.com/easybuilders/easybuild-easyblocks/pull/3358
+sources = [
+ {
+ 'filename': 'easybuild_framework-%(version)s.tar.gz',
+ 'extract_cmd': "tar xfvz %s && mv easybuild_framework-%(version)s easybuild-framework-%(version)s",
+ },
+ {
+ 'filename': 'easybuild_easyblocks-%(version)s.tar.gz',
+ 'extract_cmd': "tar xfvz %s && mv easybuild_easyblocks-%(version)s easybuild-easyblocks-%(version)s",
+ },
+ {
+ 'filename': 'easybuild_easyconfigs-%(version)s.tar.gz',
+ 'extract_cmd': "tar xfvz %s && mv easybuild_easyconfigs-%(version)s easybuild-easyconfigs-%(version)s",
+ },
+]
+patches = ['EasyBuild-4.9.4_fix-riscv-toolchain-opts-typo.patch']
+checksums = [
+ {'easybuild_framework-4.9.4.tar.gz': '5b380a2e3a359f64f06789c390200b922a840f6b10b441e5163696a34bd9bc27'},
+ {'easybuild_easyblocks-4.9.4.tar.gz': '1272f1e294090caafde8cbda72ae344ef400fdd161163781f67b3cffe761dd62'},
+ {'easybuild_easyconfigs-4.9.4.tar.gz': 'beee4e098f5fee18f2029d6a0b893549aba26e075b147cc0008cb16fd4c8d982'},
+ {'EasyBuild-4.9.4_fix-riscv-toolchain-opts-typo.patch':
+ '602d9abfdd90f435bdc877b1d2710a17ae577c790914e7bf61428dc7073ad1b6'},
+]
+
+# order matters a lot, to avoid having dependencies auto-resolved (--no-deps easy_install option doesn't work?)
+# EasyBuild is a (set of) Python packages, so it depends on Python
+# usually, we want to use the system Python, so no actual Python dependency is listed
+allow_system_deps = [('Python', SYS_PYTHON_VERSION)]
+
+local_pyshortver = '.'.join(SYS_PYTHON_VERSION.split('.')[:2])
+
+sanity_check_paths = {
+ 'files': ['bin/eb'],
+ 'dirs': ['lib/python%s/site-packages' % local_pyshortver],
+}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/e/EasyBuild/EasyBuild-4.9.4_fix-riscv-toolchain-opts-typo.patch b/easybuild/easyconfigs/e/EasyBuild/EasyBuild-4.9.4_fix-riscv-toolchain-opts-typo.patch
new file mode 100644
index 00000000000..f93ba6247c4
--- /dev/null
+++ b/easybuild/easyconfigs/e/EasyBuild/EasyBuild-4.9.4_fix-riscv-toolchain-opts-typo.patch
@@ -0,0 +1,23 @@
+https://github.com/easybuilders/easybuild-framework/pull/4668
+From 688c6709504c4b54f881b9a674c3c5dfd6acd241 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Bob=20Dr=C3=B6ge?=
+Date: Fri, 4 Oct 2024 16:35:35 +0200
+Subject: [PATCH] fix typo in veryloose toolchain option
+
+---
+ easybuild/toolchains/compiler/gcc.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/easybuild/toolchains/compiler/gcc.py b/easybuild/toolchains/compiler/gcc.py
+index e9748f3bda..fd50ad2c03 100644
+--- a/easybuild/toolchains/compiler/gcc.py
++++ b/easybuild/toolchains/compiler/gcc.py
+@@ -85,7 +85,7 @@ class Gcc(Compiler):
+ COMPILER_UNIQUE_OPTION_MAP['strict'] = []
+ COMPILER_UNIQUE_OPTION_MAP['precise'] = []
+ COMPILER_UNIQUE_OPTION_MAP['loose'] = ['fno-math-errno']
+- COMPILER_UNIQUE_OPTION_MAP['verloose'] = ['fno-math-errno']
++ COMPILER_UNIQUE_OPTION_MAP['veryloose'] = ['fno-math-errno']
+
+ # used when 'optarch' toolchain option is enabled (and --optarch is not specified)
+ COMPILER_OPTIMAL_ARCHITECTURE_OPTION = {
diff --git a/easybuild/easyconfigs/e/EasyMocap/EasyMocap-0.2-foss-2022a-CUDA-11.7.0.eb b/easybuild/easyconfigs/e/EasyMocap/EasyMocap-0.2-foss-2022a-CUDA-11.7.0.eb
new file mode 100644
index 00000000000..f5a93adc6f7
--- /dev/null
+++ b/easybuild/easyconfigs/e/EasyMocap/EasyMocap-0.2-foss-2022a-CUDA-11.7.0.eb
@@ -0,0 +1,81 @@
+easyblock = 'PythonBundle'
+
+name = 'EasyMocap'
+version = '0.2'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://chingswy.github.io/easymocap-public-doc/'
+description = """EasyMoCap is an open-source toolbox designed for markerless
+ human motion capture from RGB videos. This project offers a wide range of motion
+ capture methods across various settings."""
+
+toolchain = {'name': 'foss', 'version': '2022a'}
+
+dependencies = [
+ ('CUDA', '11.7.0', '', SYSTEM),
+ ('Python', '3.10.4'),
+ ('PyTorch', '1.12.0', versionsuffix),
+ ('torchvision', '0.13.1', versionsuffix),
+ ('tqdm', '4.64.0'),
+ ('OpenCV', '4.6.0', '-CUDA-%(cudaver)s-contrib'),
+ ('flatbuffers', '2.0.7'),
+ ('matplotlib', '3.5.2'),
+ ('PortAudio', '19.7.0'),
+ # for pyrender
+ ('freetype-py', '2.4.0'),
+ ('imageio', '2.22.2'),
+ ('networkx', '2.8.4'),
+ ('PyOpenGL', '3.1.6'),
+ ('trimesh', '3.17.1'),
+ # for ipdb
+ ('IPython', '8.5.0'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('chumpy', '0.70', {
+ 'checksums': ['a0275c2018784ca1302875567dc81761f5fd469fab9f3ac0f3e7c39e9180350a'],
+ }),
+ ('func_timeout', '4.3.5', {
+ 'checksums': ['74cd3c428ec94f4edfba81f9b2f14904846d5ffccc27c92433b8b5939b5575dd'],
+ }),
+ ('ipdb', '0.13.13', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['45529994741c4ab6d2388bfa5d7b725c2cf7fe9deffabdb8a6113aa5ed449ed4'],
+ }),
+ ('termcolor', '2.4.0', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['9297c0df9c99445c2412e832e882a7884038a25617c60cea2ad69488d4040d63'],
+ }),
+ ('yacs', '0.1.8', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['99f893e30497a4b66842821bac316386f7bd5c4f47ad35c9073ef089aa33af32'],
+ }),
+ ('pyglet', '2.0.15', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['9e4cc16efc308106fd3a9ff8f04e7a6f4f6a807c6ac8a331375efbbac8be85af'],
+ }),
+ ('pyrender', '0.1.45', {
+ # PyOpenGL requirement is too strict
+ 'preinstallopts': "sed -i 's/PyOpenGL==3.1.0/PyOpenGL>=3.1.0/g' setup.py && ",
+ 'checksums': ['284b2432bf6832f05c5216c4b979ceb514ea78163bf53b8ce2bdf0069cb3b92e'],
+ }),
+ # Building from source fails. See https://github.com/google/mediapipe/issues/5247
+ ('mediapipe', '0.10.11', {
+ 'sources': ['mediapipe-%(version)s-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl'],
+ 'checksums': ['fc5283a50227a93d7755fd0f83d0d6daeb0f1c841df1ac9101e96e32e7e03ba1'],
+ }),
+ ('sounddevice', '0.4.6', {
+ 'source_tmpl': SOURCE_PY3_WHL,
+ 'checksums': ['5de768ba6fe56ad2b5aaa2eea794b76b73e427961c95acad2ee2ed7f866a4b20'],
+ }),
+ (name, version, {
+ 'source_urls': ['https://github.com/zju3dv/EasyMocap/archive'],
+ 'sources': ['v%(version)s.tar.gz'],
+ 'checksums': ['d4c42b82ea8a53662354ff70b775e505c654ca4fd51524029214acbc16aa9773'],
+ }),
+]
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/e/Eigen/Eigen-3.4.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/e/Eigen/Eigen-3.4.0-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..f6a47336ef1
--- /dev/null
+++ b/easybuild/easyconfigs/e/Eigen/Eigen-3.4.0-GCCcore-13.3.0.eb
@@ -0,0 +1,21 @@
+name = 'Eigen'
+version = '3.4.0'
+
+homepage = 'https://eigen.tuxfamily.org'
+description = """Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers,
+ and related algorithms."""
+
+# only includes header files, but requires CMake so using non-system toolchain
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://gitlab.com/libeigen/eigen/-/archive/%(version)s']
+sources = [SOURCELOWER_TAR_BZ2]
+checksums = ['b4c198460eba6f28d34894e3a5710998818515104d6e74e5cc331ce31e46e626']
+
+# using CMake built with GCCcore to avoid relying on the system compiler to build it
+builddependencies = [
+ ('binutils', '2.42'), # to make CMake compiler health check pass on old systems
+ ('CMake', '3.29.3'),
+]
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/e/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/Extrae/Extrae-4.2.0-debug_add_event.patch b/easybuild/easyconfigs/e/Extrae/Extrae-4.2.0-debug_add_event.patch
new file mode 100644
index 00000000000..bd5c925f69f
--- /dev/null
+++ b/easybuild/easyconfigs/e/Extrae/Extrae-4.2.0-debug_add_event.patch
@@ -0,0 +1,12 @@
+diff -Nru extrae-4.2.0.orig/src/tracer/hwc/papi_hwc.c extrae-4.2.0/src/tracer/hwc/papi_hwc.c
+--- extrae-4.2.0.orig/src/tracer/hwc/papi_hwc.c 2024-07-01 16:12:04.562957639 +0200
++++ extrae-4.2.0/src/tracer/hwc/papi_hwc.c 2024-07-02 17:21:19.783586061 +0200
+@@ -615,7 +615,7 @@
+ char EventName[PAPI_MAX_STR_LEN];
+
+ PAPI_event_code_to_name (HWC_sets[i].counters[j], EventName);
+- fprintf (stderr, PACKAGE_NAME": Error! Hardware counter %s (0x%08x) cannot be added in set %d (task %d, thread %d)\n", EventName, HWC_sets[i].counters[j], i+1, TASKID, threadid);
++ fprintf (stderr, PACKAGE_NAME": Error! Hardware counter %s (0x%08x) cannot be added in set %d (task %d, thread %d) because of %d\n", EventName, HWC_sets[i].counters[j], i+1, TASKID, threadid, rc);
+ HWC_sets[i].counters[j] = NO_COUNTER;
+ /* break; */
+ }
diff --git a/easybuild/easyconfigs/e/Extrae/Extrae-4.2.0-detect_binutils.patch b/easybuild/easyconfigs/e/Extrae/Extrae-4.2.0-detect_binutils.patch
new file mode 100644
index 00000000000..ae5847ad80e
--- /dev/null
+++ b/easybuild/easyconfigs/e/Extrae/Extrae-4.2.0-detect_binutils.patch
@@ -0,0 +1,42 @@
+diff -Nru extrae-4.2.0.orig/config/macros.m4 extrae-4.2.0/config/macros.m4
+--- extrae-4.2.0.orig/config/macros.m4 2024-07-01 16:12:03.689962036 +0200
++++ extrae-4.2.0/config/macros.m4 2024-07-01 16:13:05.811649165 +0200
+@@ -779,6 +779,8 @@
+ elif test -r "${binutils_home_dir}/lib/libbfd.a" -a \
+ "${binutils_require_shared}" = "no" ; then
+ BFD_LIBSDIR="${binutils_home_dir}/lib"
++ elif test -r "${binutils_home_dir}/libbfd.so" ; then
++ BFD_LIBSDIR="${binutils_home_dir}"
+ else
+ dnl Try something more automatic using find command
+ libbfd_lib=""
+@@ -814,6 +816,8 @@
+ LIBERTY_LIBSDIR="${binutils_home_dir}/lib"
+ elif test -r "${binutils_home_dir}/lib/libiberty.a" ; then
+ LIBERTY_LIBSDIR="${binutils_home_dir}/lib"
++ elif test -r "${binutils_home_dir}/libiberty.a" ; then
++ LIBERTY_LIBSDIR="${binutils_home_dir}"
+ else
+ dnl Try something more automatic using find command
+ libiberty_lib=""
+diff -Nru extrae-4.2.0.orig/configure extrae-4.2.0/configure
+--- extrae-4.2.0.orig/configure 2024-07-01 16:12:03.308963954 +0200
++++ extrae-4.2.0/configure 2024-07-01 16:17:00.458465744 +0200
+@@ -35074,6 +35074,8 @@
+ elif test -r "${binutils_home_dir}/lib/libbfd.a" -a \
+ "${binutils_require_shared}" = "no" ; then
+ BFD_LIBSDIR="${binutils_home_dir}/lib"
++ elif test -r "${binutils_home_dir}/libbfd.so" ; then
++ BFD_LIBSDIR="${binutils_home_dir}"
+ else
+ libbfd_lib=""
+
+@@ -35108,6 +35110,8 @@
+ LIBERTY_LIBSDIR="${binutils_home_dir}/lib"
+ elif test -r "${binutils_home_dir}/lib/libiberty.a" ; then
+ LIBERTY_LIBSDIR="${binutils_home_dir}/lib"
++ elif test -r "${binutils_home_dir}/libiberty.a" ; then
++ LIBERTY_LIBSDIR="${binutils_home_dir}"
+ else
+ libiberty_lib=""
+
diff --git a/easybuild/easyconfigs/e/Extrae/Extrae-4.2.0-fix-hw-counters-checks.patch b/easybuild/easyconfigs/e/Extrae/Extrae-4.2.0-fix-hw-counters-checks.patch
new file mode 100644
index 00000000000..2d588694b4c
--- /dev/null
+++ b/easybuild/easyconfigs/e/Extrae/Extrae-4.2.0-fix-hw-counters-checks.patch
@@ -0,0 +1,137 @@
+diff -Nru extrae-4.2.0.orig/tests/functional/hw-counters/check_Extrae_PAPI_TOT_CYC.sh extrae-4.2.0/tests/functional/hw-counters/check_Extrae_PAPI_TOT_CYC.sh
+--- extrae-4.2.0.orig/tests/functional/hw-counters/check_Extrae_PAPI_TOT_CYC.sh 2024-07-01 16:12:03.454963219 +0200
++++ extrae-4.2.0/tests/functional/hw-counters/check_Extrae_PAPI_TOT_CYC.sh 2024-07-03 16:51:00.533542188 +0200
+@@ -10,7 +10,29 @@
+ EXTRAE_CONFIG_FILE=extrae-PAPI_TOT_CYC.xml ./check_Extrae_counters_xml
+ ../../../src/merger/mpi2prv -f TRACE.mpits -o ${TRACE}.prv
+
+-# Check
++# Check PAPI availability
++if ! command -v papi_avail &> /dev/null
++then
++ echo "papi_avail could not be found"
++ exit 0
++fi
++
++# Check COUNTER availability
++PAPI_TOT_CYC_available=`papi_avail | grep PAPI_TOT_CYC | awk '{print $3}'`
++if [[ "$PAPI_TOT_CYC_available" == No ]]
++then
++ echo "PAPI_TOT_CYC is not available"
++ exit 0
++fi
++
++# Check that HW counters are accessible
++ACCESS_LEVEL=`sysctl kernel.perf_event_paranoid |awk '{print $3}'`
++if [ $ACCESS_LEVEL \> 1 ]
++then
++ echo "perf_event_paranoid configuration does not allow access to HW counters"
++ exit 0
++fi
++
+ CheckEntryInPCF ${TRACE}.pcf PAPI_TOT_CYC
+
+ rm -fr TRACE* set-0 ${TRACE}.???
+diff -Nru extrae-4.2.0.orig/tests/functional/hw-counters/check_Extrae_PAPI_TOT_INS_CYC.sh extrae-4.2.0/tests/functional/hw-counters/check_Extrae_PAPI_TOT_INS_CYC.sh
+--- extrae-4.2.0.orig/tests/functional/hw-counters/check_Extrae_PAPI_TOT_INS_CYC.sh 2024-07-01 16:12:03.448963249 +0200
++++ extrae-4.2.0/tests/functional/hw-counters/check_Extrae_PAPI_TOT_INS_CYC.sh 2024-07-03 16:52:55.509932826 +0200
+@@ -10,7 +10,30 @@
+ EXTRAE_CONFIG_FILE=extrae-PAPI_TOT_INS_CYC.xml ./check_Extrae_counters_xml
+ ../../../src/merger/mpi2prv -f TRACE.mpits -o ${TRACE}.prv
+
+-# Check
++# Check PAPI availability
++if ! command -v papi_avail &> /dev/null
++then
++ echo "papi_avail could not be found"
++ exit 0
++fi
++
++# Check COUNTER availability
++PAPI_TOT_CYC_available=`papi_avail | grep PAPI_TOT_CYC | awk '{print $3}'`
++if [[ "$PAPI_TOT_CYC_available" == No ]]
++then
++ echo "PAPI_TOT_CYC is not available"
++ exit 0
++fi
++
++# Check counters accessibility level
++ACCESS_LEVEL=`sysctl kernel.perf_event_paranoid |awk '{print $3}'`
++if [ $ACCESS_LEVEL \> 1 ]
++then
++ echo "perf_event_paranoid configuration does not allow access to HW counters"
++ exit 0
++fi
++
++
+ CheckEntryInPCF ${TRACE}.pcf PAPI_TOT_INS
+ CheckEntryInPCF ${TRACE}.pcf PAPI_TOT_CYC
+
+diff -Nru extrae-4.2.0.orig/tests/functional/hw-counters/check_Extrae_PAPI_TOT_INS.sh extrae-4.2.0/tests/functional/hw-counters/check_Extrae_PAPI_TOT_INS.sh
+--- extrae-4.2.0.orig/tests/functional/hw-counters/check_Extrae_PAPI_TOT_INS.sh 2024-07-01 16:12:03.455963214 +0200
++++ extrae-4.2.0/tests/functional/hw-counters/check_Extrae_PAPI_TOT_INS.sh 2024-07-03 16:54:17.878497036 +0200
+@@ -10,7 +10,29 @@
+ EXTRAE_CONFIG_FILE=extrae-PAPI_TOT_INS.xml ./check_Extrae_counters_xml
+ ../../../src/merger/mpi2prv -f TRACE.mpits -o ${TRACE}.prv
+
+-# Check
++# Check PAPI availability
++if ! command -v papi_avail &> /dev/null
++then
++ echo "papi_avail could not be found"
++ exit 0
++fi
++
++# Check COUNTERS availability
++PAPI_TOT_INS_available=`papi_avail | grep PAPI_TOT_INS | awk '{print $3}'`
++if [[ "$PAPI_TOT_INS_available" == No ]]
++then
++ echo "PAPI_TOT_INS is not available"
++ exit 0
++fi
++
++# Check COUNTERS accessibility level
++ACCESS_LEVEL=`sysctl kernel.perf_event_paranoid |awk '{print $3}'`
++if [ $ACCESS_LEVEL \> 1 ]
++then
++ echo "perf_event_paranoid configuration does not allow access to HW counters"
++ exit 0
++fi
++
+ CheckEntryInPCF ${TRACE}.pcf PAPI_TOT_INS
+
+ rm -fr TRACE* set-0 ${TRACE}.???
+diff -Nru extrae-4.2.0.orig/tests/functional/xml/check_Extrae_xml_envvar_counters.sh extrae-4.2.0/tests/functional/xml/check_Extrae_xml_envvar_counters.sh
+--- extrae-4.2.0.orig/tests/functional/xml/check_Extrae_xml_envvar_counters.sh 2024-07-01 16:12:03.484963068 +0200
++++ extrae-4.2.0/tests/functional/xml/check_Extrae_xml_envvar_counters.sh 2024-07-03 16:56:41.975736132 +0200
+@@ -10,7 +10,29 @@
+ COUNTERS=PAPI_TOT_INS EXTRAE_CONFIG_FILE=extrae_envvar_counters.xml ./check_Extrae_xml
+ ../../../src/merger/mpi2prv -f TRACE.mpits -o ${TRACE}.prv
+
+-# Check
++# Check PAPI availability
++if ! command -v papi_avail &> /dev/null
++then
++ echo "papi_avail could not be found"
++ exit 0
++fi
++
++# Check COUNTER availability
++PAPI_TOT_INS_available=`papi_avail | grep PAPI_TOT_INS | awk '{print $3}'`
++if [[ "$PAPI_TOT_INS_available" == No ]]
++then
++ echo "PAPI_TOT_INS is not available"
++ exit 0
++fi
++
++# Check COUNTERS accessibility level
++ACCESS_LEVEL=`sysctl kernel.perf_event_paranoid |awk '{print $3}'`
++if [ $ACCESS_LEVEL \> 1 ]
++then
++ echo "perf_event_paranoid configuration does not allow access to HW counters"
++ exit 0
++fi
++
+ CheckEntryInPCF ${TRACE}.pcf PAPI_TOT_INS
+
+ rm -fr TRACE* set-0 ${TRACE}.???
diff --git a/easybuild/easyconfigs/e/Extrae/Extrae-4.2.0-gompi-2023b.eb b/easybuild/easyconfigs/e/Extrae/Extrae-4.2.0-gompi-2023b.eb
new file mode 100644
index 00000000000..4fca4663aca
--- /dev/null
+++ b/easybuild/easyconfigs/e/Extrae/Extrae-4.2.0-gompi-2023b.eb
@@ -0,0 +1,54 @@
+name = 'Extrae'
+version = '4.2.0'
+
+homepage = 'https://tools.bsc.es/extrae'
+description = """Extrae is the package devoted to generate Paraver trace-files for a post-mortem analysis.
+Extrae is a tool that uses different interposition mechanisms to inject probes into the target application
+so as to gather information regarding the application performance."""
+
+toolchain = {'name': 'gompi', 'version': '2023b'}
+
+toolchainopts = {'usempi': True}
+
+source_urls = ['https://ftp.tools.bsc.es/%(namelower)s']
+
+sources = ['%(namelower)s-%(version)s-src.tar.bz2']
+
+patches = [
+ 'Extrae-4.2.0-detect_binutils.patch',
+ 'Extrae-4.2.0-fix-hw-counters-checks.patch',
+ 'Extrae-4.2.0-debug_add_event.patch',
+]
+
+checksums = [
+ # extrae-4.2.0-src.tar.bz2
+ '7b83a1ed008440bbc1bda88297d2d0e9256780db1cf8401b3c12718451f8919a',
+ '1c7bf9d97405c5c2f9dba3604faf141c1563c70958e942822aab521eb7ea0c9e', # Extrae-4.2.0-detect_binutils.patch
+ '147d897a5a9ba6ebb1b5de32c964b2cd73534f31a540125a94fd37f2ceb1edfe', # Extrae-4.2.0-fix-hw-counters-checks.patch
+ '9c3541b16f1acf6ff56ab44a24d44c2ec91f9415be217c39f9c0a32e2093ccca', # Extrae-4.2.0-debug_add_event.patch
+]
+
+builddependencies = [
+ ('Automake', '1.16.5'),
+]
+
+dependencies = [
+ ('zlib', '1.2.13'),
+ ('Boost', '1.83.0'),
+ ('libxml2', '2.11.5'),
+ ('libdwarf', '0.9.2'),
+ ('PAPI', '7.1.0'),
+]
+
+# libunwind causes segv errors on aarch64
+if ARCH != 'aarch64':
+ dependencies.append(
+ ('libunwind', '1.6.2'),
+ )
+
+# Disable dynamic memory instrumentation for this release, has been seen to sometimes cause MPI test failures
+configopts = '--disable-instrument-dynamic-memory'
+
+runtest = 'check'
+
+moduleclass = 'perf'
diff --git a/easybuild/easyconfigs/e/e3nn/e3nn-0.3.3-foss-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/e/e3nn/e3nn-0.3.3-foss-2023a-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..8c30352e396
--- /dev/null
+++ b/easybuild/easyconfigs/e/e3nn/e3nn-0.3.3-foss-2023a-CUDA-12.1.1.eb
@@ -0,0 +1,40 @@
+easyblock = 'PythonBundle'
+
+name = 'e3nn'
+version = '0.3.3'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://e3nn.org/'
+description = """
+Euclidean neural networks (e3nn) is a python library based on pytorch to create equivariant
+neural networks for the group O(3).
+"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('CUDA', '12.1.1', '', SYSTEM),
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('PyTorch', '2.1.2', versionsuffix),
+ ('sympy', '1.12'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('opt-einsum', '3.3.0', {
+ 'source_tmpl': 'opt_einsum-%(version)s.tar.gz',
+ 'checksums': ['59f6475f77bbc37dcf7cd748519c0ec60722e91e63ca114e68821c0c54a46549'],
+ }),
+ ('opt_einsum_fx', '0.1.4', {
+ 'checksums': ['7eeb7f91ecb70be65e6179c106ea7f64fc1db6319e3d1289a4518b384f81e74f'],
+ }),
+ (name, version, {
+ 'checksums': ['532b34a5644153659253c59943fe4224cd9c3c46ce8a79f1dc7c00afccb44ecb'],
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/e/ecBuild/ecBuild-3.8.5-GCCcore-13.3.0.eb b/easybuild/easyconfigs/e/ecBuild/ecBuild-3.8.5-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..97c3992ce77
--- /dev/null
+++ b/easybuild/easyconfigs/e/ecBuild/ecBuild-3.8.5-GCCcore-13.3.0.eb
@@ -0,0 +1,37 @@
+easyblock = 'Tarball'
+
+name = 'ecBuild'
+version = '3.8.5'
+
+homepage = 'https://ecbuild.readthedocs.io/'
+
+description = """
+A CMake-based build system, consisting of a collection of CMake macros and
+functions that ease the managing of software build systems """
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+github_account = 'ecmwf'
+sources = [
+ {
+ 'source_urls': [GITHUB_SOURCE],
+ 'filename': '%(version)s.tar.gz',
+ 'extract_cmd': 'tar -xzf %s --strip-components=1',
+ },
+]
+checksums = ['aa0c44cab0fffec4c0b3542e91ebcc736b3d41b68a068d30c023ec0df5f93425']
+
+builddependencies = [('binutils', '2.42')]
+
+buildininstalldir = True
+
+skipsteps = ['install']
+
+sanity_check_paths = {
+ 'files': ['bin/ecbuild', 'cmake/ecbuild-config.cmake'],
+ 'dirs': ['bin', 'lib', 'share', 'cmake'],
+}
+
+sanity_check_commands = ['ecbuild --help']
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/e/ecCodes/ecCodes-2.27.0-iimpi-2022a.eb b/easybuild/easyconfigs/e/ecCodes/ecCodes-2.27.0-iimpi-2022a.eb
new file mode 100644
index 00000000000..33fddc6886a
--- /dev/null
+++ b/easybuild/easyconfigs/e/ecCodes/ecCodes-2.27.0-iimpi-2022a.eb
@@ -0,0 +1,47 @@
+easyblock = 'CMakeMake'
+
+name = 'ecCodes'
+version = '2.27.0'
+
+homepage = 'https://software.ecmwf.int/wiki/display/ECC/ecCodes+Home'
+description = """ecCodes is a package developed by ECMWF which provides an application programming interface and
+ a set of tools for decoding and encoding messages in the following formats: WMO FM-92 GRIB edition 1 and edition 2,
+ WMO FM-94 BUFR edition 3 and edition 4, WMO GTS abbreviated header (only decoding)."""
+
+toolchain = {'name': 'iimpi', 'version': '2022a'}
+toolchainopts = {'usempi': False}
+
+source_urls = ['https://confluence.ecmwf.int/download/attachments/45757960/']
+sources = ['eccodes-%(version)s-Source.tar.gz']
+checksums = ['ede5b3ffd503967a5eac89100e8ead5e16a881b7585d02f033584ed0c4269c99']
+
+builddependencies = [('CMake', '3.23.1')]
+
+dependencies = [
+ ('netCDF', '4.9.0'),
+ ('JasPer', '2.0.33'),
+ ('libjpeg-turbo', '2.1.3'),
+ ('libpng', '1.6.37'),
+ ('zlib', '1.2.12'),
+ ('libaec', '1.0.6'),
+]
+
+# Python bindings are provided by a separate package 'eccodes-python'
+configopts = "-DENABLE_NETCDF=ON -DENABLE_PNG=ON -DENABLE_PYTHON=OFF "
+configopts += "-DENABLE_JPG=ON -DENABLE_JPG_LIBJASPER=ON "
+configopts += "-DENABLE_ECCODES_THREADS=ON" # multi-threading with pthreads
+
+local_exes = ['%s_%s' % (a, b)
+ for a in ['bufr', 'grib', 'gts', 'metar']
+ for b in ['compare', 'copy', 'dump', 'filter', 'get', 'ls']]
+local_exes += ['codes_%s' % c for c in ['count', 'info', 'split_file']]
+
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in local_exes] +
+ ['lib/libeccodes_f90.%s' % SHLIB_EXT, 'lib/libeccodes.%s' % SHLIB_EXT],
+ 'dirs': ['include'],
+}
+
+sanity_check_commands = ['%s -V' % x for x in local_exes if not x.startswith('codes_')]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/e/ecCodes/ecCodes-2.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/einops/einops-0.7.0-GCCcore-12.2.0.eb b/easybuild/easyconfigs/e/einops/einops-0.7.0-GCCcore-12.2.0.eb
new file mode 100644
index 00000000000..7af581e455f
--- /dev/null
+++ b/easybuild/easyconfigs/e/einops/einops-0.7.0-GCCcore-12.2.0.eb
@@ -0,0 +1,29 @@
+easyblock = 'PythonPackage'
+
+name = 'einops'
+version = '0.7.0'
+
+homepage = 'https://einops.rocks/'
+description = """
+Flexible and powerful tensor operations for readable and reliable code.
+Supports numpy, pytorch, tensorflow, jax, and others."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.2.0'}
+
+sources = [SOURCE_TAR_GZ]
+checksums = ['b2b04ad6081a3b227080c9bf5e3ace7160357ff03043cd66cc5b2319eb7031d1']
+
+builddependencies = [
+ ('binutils', '2.39'),
+]
+
+dependencies = [
+ ('Python', '3.10.8'),
+]
+
+download_dep_fail = True
+use_pip = True
+
+sanity_pip_check = True
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/e/elfutils/elfutils-0.191-GCCcore-13.3.0.eb b/easybuild/easyconfigs/e/elfutils/elfutils-0.191-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..e5eb4ef3c7d
--- /dev/null
+++ b/easybuild/easyconfigs/e/elfutils/elfutils-0.191-GCCcore-13.3.0.eb
@@ -0,0 +1,41 @@
+easyblock = 'ConfigureMake'
+
+name = 'elfutils'
+version = '0.191'
+
+homepage = 'https://elfutils.org/'
+
+description = """
+ The elfutils project provides libraries and tools for ELF files
+ and DWARF data.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://sourceware.org/elfutils/ftp/%(version)s/']
+sources = [SOURCE_TAR_BZ2]
+checksums = ['df76db71366d1d708365fc7a6c60ca48398f14367eb2b8954efc8897147ad871']
+
+builddependencies = [
+ ('M4', '1.4.19'),
+ ('pkgconf', '2.2.0'),
+]
+
+dependencies = [
+ ('binutils', '2.42'),
+ ('bzip2', '1.0.8'),
+ ('libarchive', '3.7.4'),
+ ('XZ', '5.4.5'),
+ ('zstd', '1.5.6'),
+]
+
+configopts = "--disable-debuginfod --disable-libdebuginfod"
+
+sanity_check_paths = {
+ 'files': ['bin/eu-elfcmp', 'include/dwarf.h', 'lib/libelf.%s' % SHLIB_EXT],
+ 'dirs': []
+}
+
+sanity_check_commands = ["eu-elfcmp --help"]
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/e/empanada-dl/empanada-dl-0.1.7-foss-2023a.eb b/easybuild/easyconfigs/e/empanada-dl/empanada-dl-0.1.7-foss-2023a.eb
new file mode 100644
index 00000000000..168c3e3c751
--- /dev/null
+++ b/easybuild/easyconfigs/e/empanada-dl/empanada-dl-0.1.7-foss-2023a.eb
@@ -0,0 +1,43 @@
+easyblock = 'PythonBundle'
+
+name = 'empanada-dl'
+version = '0.1.7'
+
+homepage = 'https://empanada.readthedocs.io/'
+description = "Tool for panoptic segmentation of organelles in 2D and 3D electron microscopy (EM) images."
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('SciPy-bundle', '2023.07'),
+ ('numba', '0.58.1'),
+ ('OpenCV', '4.8.1', '-contrib'),
+ ('PyYAML', '6.0'),
+ ('zarr', '2.17.1'),
+ ('torchvision', '0.16.0'),
+ ('Albumentations', '1.4.0'),
+ ('dask', '2023.9.2'),
+ ('connected-components-3d', '3.14.1'),
+ ('matplotlib', '3.7.2'),
+ ('imagecodecs', '2024.1.1'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('cztile', '0.1.2', {
+ 'checksums': ['3e42c4a93fd7b2df985b42e66dc3c585b3ebd9c1167e9f7e7d5c34c57697b929'],
+ }),
+ (name, version, {
+ # fix requirements - numpy version and opencv-python>=4.5.3 - pip is not aware of cv2 in OpenCV from EB
+ 'preinstallopts': "sed -i 's/numpy==1.22/numpy>=1.22/g' setup.cfg && sed -i '34d' setup.cfg && ",
+ 'modulename': 'empanada',
+ 'checksums': ['4289e69842242203be77cdb656a12fb2be4ed83816969b24a0b4eab1d67c3b91'],
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/e/empanada-napari/empanada-napari-1.1.0-foss-2023a.eb b/easybuild/easyconfigs/e/empanada-napari/empanada-napari-1.1.0-foss-2023a.eb
new file mode 100644
index 00000000000..e429617f718
--- /dev/null
+++ b/easybuild/easyconfigs/e/empanada-napari/empanada-napari-1.1.0-foss-2023a.eb
@@ -0,0 +1,38 @@
+easyblock = 'PythonBundle'
+
+name = 'empanada-napari'
+version = '1.1.0'
+
+homepage = 'https://empanada.readthedocs.io/'
+description = "Panoptic segmentation algorithms for 2D and 3D electron microscopy in napari."
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('SciPy-bundle', '2023.07'),
+ ('napari', '0.4.18'),
+ ('MLflow', '2.10.2'),
+ ('openpyxl', '3.1.2'),
+ ('SimpleITK', '2.3.1'),
+ ('imagecodecs', '2024.1.1'),
+ ('Albumentations', '1.4.0'),
+ ('connected-components-3d', '3.14.1'),
+ ('empanada-dl', '0.1.7'),
+]
+
+exts_list = [
+ ('ImageHash', '4.3.1', {
+ 'checksums': ['7038d1b7f9e0585beb3dd8c0a956f02b95a346c0b5f24a9e8cc03ebadaf0aa70'],
+ }),
+ (name, version, {
+ 'preinstallopts': "sed -i 's/numpy==1.22/numpy>=1.22/g' setup.cfg && ",
+ 'checksums': ['f4890cb6f20689933e28903dd7d43238aeae32afb53fa225bdf41d4bdcfc2c71'],
+ }),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/e/enchant-2/enchant-2-2.6.5-GCCcore-12.3.0.eb b/easybuild/easyconfigs/e/enchant-2/enchant-2-2.6.5-GCCcore-12.3.0.eb
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/expat/expat-2.6.2-GCCcore-13.3.0.eb b/easybuild/easyconfigs/e/expat/expat-2.6.2-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..41b5a1340fb
--- /dev/null
+++ b/easybuild/easyconfigs/e/expat/expat-2.6.2-GCCcore-13.3.0.eb
@@ -0,0 +1,31 @@
+easyblock = 'ConfigureMake'
+
+name = 'expat'
+version = '2.6.2'
+
+homepage = 'https://libexpat.github.io'
+
+description = """Expat is an XML parser library written in C. It is a stream-oriented parser
+in which an application registers handlers for things the parser might find
+in the XML document (like start tags)."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/libexpat/libexpat/releases/download/R_%s/' % version.replace('.', '_')]
+sources = [SOURCE_TAR_BZ2]
+checksums = ['9c7c1b5dcbc3c237c500a8fb1493e14d9582146dd9b42aa8d3ffb856a3b927e0']
+
+builddependencies = [('binutils', '2.42')]
+
+# Since expat 2.2.6, docbook2X is needed to produce manpage of xmlwf.
+# Docbook2X needs XML-Parser and XML-Parser needs expat.
+# -> circular dependency. "--without-docbook" breaks this circle.
+configopts = ['--without-docbook']
+
+sanity_check_paths = {
+ 'files': ['include/expat.h', 'lib/libexpat.a', 'lib/libexpat.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/e/expecttest/expecttest-0.2.1-GCCcore-13.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/FFTW.MPI/FFTW.MPI-3.3.10-gmpich-2024.06.eb b/easybuild/easyconfigs/f/FFTW.MPI/FFTW.MPI-3.3.10-gmpich-2024.06.eb
new file mode 100644
index 00000000000..4b79e9e7c27
--- /dev/null
+++ b/easybuild/easyconfigs/f/FFTW.MPI/FFTW.MPI-3.3.10-gmpich-2024.06.eb
@@ -0,0 +1,19 @@
+name = 'FFTW.MPI'
+version = '3.3.10'
+
+homepage = 'https://www.fftw.org'
+description = """FFTW is a C subroutine library for computing the discrete Fourier transform (DFT)
+in one or more dimensions, of arbitrary input size, and of both real and complex data."""
+
+toolchain = {'name': 'gmpich', 'version': '2024.06'}
+toolchainopts = {'pic': True}
+
+source_urls = [homepage]
+sources = ['fftw-%(version)s.tar.gz']
+checksums = ['56c932549852cddcfafdab3820b0200c7742675be92179e59e6215b340e26467']
+
+dependencies = [('FFTW', '3.3.10')]
+
+runtest = 'check'
+
+moduleclass = 'numlib'
diff --git a/easybuild/easyconfigs/f/FFTW.MPI/FFTW.MPI-3.3.10-gompi-2024.05.eb b/easybuild/easyconfigs/f/FFTW.MPI/FFTW.MPI-3.3.10-gompi-2024.05.eb
new file mode 100644
index 00000000000..b6ab2a2d4f0
--- /dev/null
+++ b/easybuild/easyconfigs/f/FFTW.MPI/FFTW.MPI-3.3.10-gompi-2024.05.eb
@@ -0,0 +1,19 @@
+name = 'FFTW.MPI'
+version = '3.3.10'
+
+homepage = 'https://www.fftw.org'
+description = """FFTW is a C subroutine library for computing the discrete Fourier transform (DFT)
+in one or more dimensions, of arbitrary input size, and of both real and complex data."""
+
+toolchain = {'name': 'gompi', 'version': '2024.05'}
+toolchainopts = {'pic': True}
+
+source_urls = [homepage]
+sources = ['fftw-%(version)s.tar.gz']
+checksums = ['56c932549852cddcfafdab3820b0200c7742675be92179e59e6215b340e26467']
+
+dependencies = [('FFTW', '3.3.10')]
+
+runtest = 'check'
+
+moduleclass = 'numlib'
diff --git a/easybuild/easyconfigs/f/FFTW.MPI/FFTW.MPI-3.3.10-gompi-2024a.eb b/easybuild/easyconfigs/f/FFTW.MPI/FFTW.MPI-3.3.10-gompi-2024a.eb
new file mode 100644
index 00000000000..2ed420c412f
--- /dev/null
+++ b/easybuild/easyconfigs/f/FFTW.MPI/FFTW.MPI-3.3.10-gompi-2024a.eb
@@ -0,0 +1,19 @@
+name = 'FFTW.MPI'
+version = '3.3.10'
+
+homepage = 'https://www.fftw.org'
+description = """FFTW is a C subroutine library for computing the discrete Fourier transform (DFT)
+in one or more dimensions, of arbitrary input size, and of both real and complex data."""
+
+toolchain = {'name': 'gompi', 'version': '2024a'}
+toolchainopts = {'pic': True}
+
+source_urls = [homepage]
+sources = ['fftw-%(version)s.tar.gz']
+checksums = ['56c932549852cddcfafdab3820b0200c7742675be92179e59e6215b340e26467']
+
+dependencies = [('FFTW', '3.3.10')]
+
+runtest = 'check'
+
+moduleclass = 'numlib'
diff --git a/easybuild/easyconfigs/f/FFTW/FFTW-3.3.10-GCC-13.3.0.eb b/easybuild/easyconfigs/f/FFTW/FFTW-3.3.10-GCC-13.3.0.eb
new file mode 100644
index 00000000000..bf18544e701
--- /dev/null
+++ b/easybuild/easyconfigs/f/FFTW/FFTW-3.3.10-GCC-13.3.0.eb
@@ -0,0 +1,17 @@
+name = 'FFTW'
+version = '3.3.10'
+
+homepage = 'https://www.fftw.org'
+description = """FFTW is a C subroutine library for computing the discrete Fourier transform (DFT)
+in one or more dimensions, of arbitrary input size, and of both real and complex data."""
+
+toolchain = {'name': 'GCC', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = [homepage]
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['56c932549852cddcfafdab3820b0200c7742675be92179e59e6215b340e26467']
+
+runtest = 'check'
+
+moduleclass = 'numlib'
diff --git a/easybuild/easyconfigs/f/FFmpeg/FFmpeg-5.0.1-GCCcore-11.3.0.eb b/easybuild/easyconfigs/f/FFmpeg/FFmpeg-5.0.1-GCCcore-11.3.0.eb
index 5f6462eec21..6a468c1f81d 100644
--- a/easybuild/easyconfigs/f/FFmpeg/FFmpeg-5.0.1-GCCcore-11.3.0.eb
+++ b/easybuild/easyconfigs/f/FFmpeg/FFmpeg-5.0.1-GCCcore-11.3.0.eb
@@ -33,7 +33,7 @@ dependencies = [
configopts = '--enable-pic --enable-shared --enable-gpl --enable-version3 --enable-nonfree --cc="$CC" --cxx="$CXX" '
configopts += '--enable-libx264 --enable-libx265 --enable-libmp3lame --enable-libfreetype --enable-fontconfig '
-configopts += '--enable-libfribidi --enable-sdl2'
+configopts += '--enable-libfribidi --enable-sdl2 --disable-htmlpages'
sanity_check_paths = {
'files': ['bin/ff%s' % x for x in ['mpeg', 'probe', 'play']] +
diff --git a/easybuild/easyconfigs/f/FFmpeg/FFmpeg-5.1.2-GCCcore-12.2.0.eb b/easybuild/easyconfigs/f/FFmpeg/FFmpeg-5.1.2-GCCcore-12.2.0.eb
index b06aee26953..dfe40032efc 100644
--- a/easybuild/easyconfigs/f/FFmpeg/FFmpeg-5.1.2-GCCcore-12.2.0.eb
+++ b/easybuild/easyconfigs/f/FFmpeg/FFmpeg-5.1.2-GCCcore-12.2.0.eb
@@ -33,7 +33,7 @@ dependencies = [
configopts = '--enable-pic --enable-shared --enable-gpl --enable-version3 --enable-nonfree --cc="$CC" --cxx="$CXX" '
configopts += '--enable-libx264 --enable-libx265 --enable-libmp3lame --enable-libfreetype --enable-fontconfig '
-configopts += '--enable-libfribidi --enable-sdl2'
+configopts += '--enable-libfribidi --enable-sdl2 --disable-htmlpages'
sanity_check_paths = {
'files': ['bin/ff%s' % x for x in ['mpeg', 'probe', 'play']] +
diff --git a/easybuild/easyconfigs/f/FFmpeg/FFmpeg-6.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/f/FFmpeg/FFmpeg-6.0-GCCcore-12.3.0.eb
index 4f5fb4a0bc5..caa80fed59d 100644
--- a/easybuild/easyconfigs/f/FFmpeg/FFmpeg-6.0-GCCcore-12.3.0.eb
+++ b/easybuild/easyconfigs/f/FFmpeg/FFmpeg-6.0-GCCcore-12.3.0.eb
@@ -33,7 +33,7 @@ dependencies = [
configopts = '--enable-pic --enable-shared --enable-gpl --enable-version3 --enable-nonfree --cc="$CC" --cxx="$CXX" '
configopts += '--enable-libx264 --enable-libx265 --enable-libmp3lame --enable-libfreetype --enable-fontconfig '
-configopts += '--enable-libfribidi --enable-sdl2'
+configopts += '--enable-libfribidi --enable-sdl2 --disable-htmlpages'
sanity_check_paths = {
'files': ['bin/ff%s' % x for x in ['mpeg', 'probe', 'play']] +
diff --git a/easybuild/easyconfigs/f/FFmpeg/FFmpeg-6.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/f/FFmpeg/FFmpeg-6.0-GCCcore-13.2.0.eb
index fab8972c089..c75695951f6 100644
--- a/easybuild/easyconfigs/f/FFmpeg/FFmpeg-6.0-GCCcore-13.2.0.eb
+++ b/easybuild/easyconfigs/f/FFmpeg/FFmpeg-6.0-GCCcore-13.2.0.eb
@@ -33,7 +33,7 @@ dependencies = [
configopts = '--enable-pic --enable-shared --enable-gpl --enable-version3 --enable-nonfree --cc="$CC" --cxx="$CXX" '
configopts += '--enable-libx264 --enable-libx265 --enable-libmp3lame --enable-libfreetype --enable-fontconfig '
-configopts += '--enable-libfribidi --enable-sdl2'
+configopts += '--enable-libfribidi --enable-sdl2 --disable-htmlpages'
sanity_check_paths = {
'files': ['bin/ff%s' % x for x in ['mpeg', 'probe', 'play']] +
diff --git a/easybuild/easyconfigs/f/FFmpeg/FFmpeg-7.0.2-GCCcore-13.3.0.eb b/easybuild/easyconfigs/f/FFmpeg/FFmpeg-7.0.2-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..246a8306b76
--- /dev/null
+++ b/easybuild/easyconfigs/f/FFmpeg/FFmpeg-7.0.2-GCCcore-13.3.0.eb
@@ -0,0 +1,45 @@
+easyblock = 'ConfigureMake'
+
+name = 'FFmpeg'
+version = '7.0.2'
+
+homepage = 'https://www.ffmpeg.org/'
+description = "A complete, cross-platform solution to record, convert and stream audio and video."
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://%(namelower)s.org/releases/']
+sources = [SOURCELOWER_TAR_BZ2]
+checksums = ['1ed250407ea8f955cca2f1139da3229fbc13032a0802e4b744be195865ff1541']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('pkgconf', '2.2.0'),
+ ('ffnvcodec', '12.2.72.0', '', SYSTEM), # optional nvenc/dec support
+]
+dependencies = [
+ ('NASM', '2.16.03'),
+ ('zlib', '1.3.1'),
+ ('bzip2', '1.0.8'),
+ ('x264', '20240513'),
+ ('LAME', '3.100'),
+ ('x265', '3.6'),
+ ('X11', '20240607'),
+ ('freetype', '2.13.2'),
+ ('fontconfig', '2.15.0'),
+ ('FriBidi', '1.0.15'),
+ ('SDL2', '2.30.6'),
+]
+
+configopts = '--enable-pic --enable-shared --enable-gpl --enable-version3 --enable-nonfree --cc="$CC" --cxx="$CXX" '
+configopts += '--enable-libx264 --enable-libx265 --enable-libmp3lame --enable-libfreetype --enable-fontconfig '
+configopts += '--enable-libfribidi --enable-sdl2 --disable-htmlpages'
+
+sanity_check_paths = {
+ 'files': ['bin/ff%s' % x for x in ['mpeg', 'probe', 'play']] +
+ ['lib/lib%s.%s' % (x, y) for x in ['avdevice', 'avfilter', 'avformat', 'avcodec', 'postproc',
+ 'swresample', 'swscale', 'avutil'] for y in [SHLIB_EXT, 'a']],
+ 'dirs': ['include']
+}
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/f/FLAC/FLAC-1.4.3-GCCcore-13.2.0.eb b/easybuild/easyconfigs/f/FLAC/FLAC-1.4.3-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..a0abaac6ca9
--- /dev/null
+++ b/easybuild/easyconfigs/f/FLAC/FLAC-1.4.3-GCCcore-13.2.0.eb
@@ -0,0 +1,30 @@
+easyblock = 'ConfigureMake'
+
+name = 'FLAC'
+version = '1.4.3'
+
+homepage = 'https://xiph.org/flac/'
+description = """FLAC stands for Free Lossless Audio Codec, an audio format similar to MP3, but lossless, meaning
+that audio is compressed in FLAC without any loss in quality."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+source_urls = ['https://ftp.osuosl.org/pub/xiph/releases/flac/']
+sources = [SOURCELOWER_TAR_XZ]
+checksums = ['6c58e69cd22348f441b861092b825e591d0b822e106de6eb0ee4d05d27205b70']
+
+builddependencies = [('binutils', '2.40')]
+
+dependencies = [('libogg', '1.3.5')]
+
+configopts = '--enable-static --enable-shared'
+
+sanity_check_paths = {
+ 'files': ['bin/flac', 'lib/libFLAC.a', 'lib/libFLAC++.a',
+ 'lib/libFLAC.%s' % SHLIB_EXT, 'lib/libFLAC++.%s' % SHLIB_EXT],
+ 'dirs': ['include/FLAC', 'include/FLAC++'],
+}
+
+sanity_check_commands = ["flac --help"]
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/f/FLAC/FLAC-1.4.3-GCCcore-13.3.0.eb b/easybuild/easyconfigs/f/FLAC/FLAC-1.4.3-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..f767483f7cd
--- /dev/null
+++ b/easybuild/easyconfigs/f/FLAC/FLAC-1.4.3-GCCcore-13.3.0.eb
@@ -0,0 +1,30 @@
+easyblock = 'ConfigureMake'
+
+name = 'FLAC'
+version = '1.4.3'
+
+homepage = 'https://xiph.org/flac/'
+description = """FLAC stands for Free Lossless Audio Codec, an audio format similar to MP3, but lossless, meaning
+that audio is compressed in FLAC without any loss in quality."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://ftp.osuosl.org/pub/xiph/releases/flac/']
+sources = [SOURCELOWER_TAR_XZ]
+checksums = ['6c58e69cd22348f441b861092b825e591d0b822e106de6eb0ee4d05d27205b70']
+
+builddependencies = [('binutils', '2.42')]
+
+dependencies = [('libogg', '1.3.5')]
+
+configopts = '--enable-static --enable-shared'
+
+sanity_check_paths = {
+ 'files': ['bin/flac', 'lib/libFLAC.a', 'lib/libFLAC++.a',
+ 'lib/libFLAC.%s' % SHLIB_EXT, 'lib/libFLAC++.%s' % SHLIB_EXT],
+ 'dirs': ['include/FLAC', 'include/FLAC++'],
+}
+
+sanity_check_commands = ["flac --help"]
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/f/FLANN/FLANN-1.9.2-foss-2022b.eb b/easybuild/easyconfigs/f/FLANN/FLANN-1.9.2-foss-2022b.eb
new file mode 100644
index 00000000000..ce4946fff26
--- /dev/null
+++ b/easybuild/easyconfigs/f/FLANN/FLANN-1.9.2-foss-2022b.eb
@@ -0,0 +1,42 @@
+# Contribution from the NIHR Biomedical Research Centre
+# Guy's and St Thomas' NHS Foundation Trust and King's College London
+# uploaded by J. Sassmannshausen
+
+easyblock = 'CMakeMake'
+
+name = 'FLANN'
+version = '1.9.2'
+
+homepage = 'https://github.com/mariusmuja/flann/'
+description = "FLANN is a library for performing fast approximate nearest neighbor searches in high dimensional spaces."
+
+toolchain = {'name': 'foss', 'version': '2022b'}
+toolchainopts = {'openmp': True}
+
+source_urls = ['https://github.com/mariusmuja/flann/archive/']
+sources = ['%(version)s.tar.gz']
+checksums = ['e26829bb0017f317d9cc45ab83ddcb8b16d75ada1ae07157006c1e7d601c8824']
+
+builddependencies = [
+ ('CMake', '3.24.3'),
+]
+
+dependencies = [
+ ('Python', '3.10.8'),
+ ('SciPy-bundle', '2023.02'),
+ ('lz4', '1.9.4'),
+]
+
+configopts = "-DUSE_OPENMP=ON -DUSE_MPI=ON -DBUILD_PYTHON_BINDINGS=ON -DBUILD_C_BINDINGS=ON"
+
+modextrapaths = {'PYTHONPATH': ['share/flann/python']}
+
+sanity_check_paths = {
+ 'files': ['lib/libflann_cpp_s.a', 'lib/libflann_s.a',
+ 'lib/libflann_cpp.%s' % SHLIB_EXT, 'lib/libflann.%s' % SHLIB_EXT],
+ 'dirs': ['include/flann', 'lib/pkgconfig', 'share/flann/python'],
+}
+
+sanity_check_commands = ["python -c 'import pyflann'"]
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/f/FLANN/FLANN-1.9.2-foss-2023a.eb b/easybuild/easyconfigs/f/FLANN/FLANN-1.9.2-foss-2023a.eb
new file mode 100644
index 00000000000..37143785fe1
--- /dev/null
+++ b/easybuild/easyconfigs/f/FLANN/FLANN-1.9.2-foss-2023a.eb
@@ -0,0 +1,40 @@
+# Contribution from the NIHR Biomedical Research Centre
+# Guy's and St Thomas' NHS Foundation Trust and King's College London
+# uploaded by J. Sassmannshausen
+
+easyblock = 'CMakeMake'
+
+name = 'FLANN'
+version = '1.9.2'
+
+homepage = 'https://github.com/mariusmuja/flann/'
+description = "FLANN is a library for performing fast approximate nearest neighbor searches in high dimensional spaces."
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'openmp': True}
+
+source_urls = ['https://github.com/mariusmuja/flann/archive/']
+sources = ['%(version)s.tar.gz']
+checksums = ['e26829bb0017f317d9cc45ab83ddcb8b16d75ada1ae07157006c1e7d601c8824']
+
+builddependencies = [('CMake', '3.26.3')]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('lz4', '1.9.4'),
+]
+
+configopts = "-DUSE_OPENMP=ON -DUSE_MPI=ON -DBUILD_PYTHON_BINDINGS=ON -DBUILD_C_BINDINGS=ON"
+
+modextrapaths = {'PYTHONPATH': ['share/flann/python']}
+
+sanity_check_paths = {
+ 'files': ['lib/libflann_cpp_s.a', 'lib/libflann_s.a',
+ 'lib/libflann_cpp.%s' % SHLIB_EXT, 'lib/libflann.%s' % SHLIB_EXT],
+ 'dirs': ['include/flann', 'lib/pkgconfig', 'share/flann/python'],
+}
+
+sanity_check_commands = ["python -c 'import pyflann'"]
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/f/FLINT/FLINT-3.1.2-gfbf-2024a.eb b/easybuild/easyconfigs/f/FLINT/FLINT-3.1.2-gfbf-2024a.eb
new file mode 100644
index 00000000000..970496a35d0
--- /dev/null
+++ b/easybuild/easyconfigs/f/FLINT/FLINT-3.1.2-gfbf-2024a.eb
@@ -0,0 +1,45 @@
+easyblock = 'CMakeMake'
+
+name = 'FLINT'
+version = '3.1.2'
+
+homepage = 'https://www.flintlib.org/'
+
+description = """FLINT (Fast Library for Number Theory) is a C library in support of computations
+ in number theory. Operations that can be performed include conversions, arithmetic, computing GCDs,
+ factoring, solving linear systems, and evaluating special functions. In addition, FLINT provides
+ various low-level routines for fast arithmetic. FLINT is extensively documented and tested."""
+
+toolchain = {'name': 'gfbf', 'version': '2024a'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://www.flintlib.org']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['fdb3a431a37464834acff3bdc145f4fe8d0f951dd5327c4c6f93f4cbac5c2700']
+
+builddependencies = [
+ ('CMake', '3.29.3'),
+ ('Python', '3.12.3'),
+]
+
+dependencies = [
+ ('GMP', '6.3.0'),
+ ('MPFR', '4.2.1'),
+ ('NTL', '11.5.1'),
+]
+
+# Make flexiblas the first to be found and used to avoid linking openblas.
+preconfigopts = 'sed -i "s/PATH_SUFFIXES openblas/PATH_SUFFIXES flexiblas openblas/g;'
+preconfigopts += 's/accelerate openblas/accelerate flexiblas openblas/g" '
+preconfigopts += '%(builddir)s/%(namelower)s-%(version)s/CMake/FindCBLAS.cmake && '
+
+configopts = '-DWITH_NTL=on -DBUILD_TESTING=yes'
+
+runtest = 'test'
+
+sanity_check_paths = {
+ 'files': ['lib/lib%%(namelower)s.%s' % SHLIB_EXT],
+ 'dirs': ['include'],
+}
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/f/FLTK/FLTK-1.3.9-GCCcore-13.2.0.eb b/easybuild/easyconfigs/f/FLTK/FLTK-1.3.9-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..3afeffc0a2c
--- /dev/null
+++ b/easybuild/easyconfigs/f/FLTK/FLTK-1.3.9-GCCcore-13.2.0.eb
@@ -0,0 +1,43 @@
+easyblock = 'ConfigureMake'
+
+name = 'FLTK'
+version = '1.3.9'
+
+homepage = 'https://www.fltk.org'
+description = """FLTK is a cross-platform C++ GUI toolkit for UNIX/Linux (X11), Microsoft Windows,
+ and MacOS X. FLTK provides modern GUI functionality without the bloat and supports 3D graphics via OpenGL
+ and its built-in GLUT emulation."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://fltk.org/pub/%(namelower)s/%(version)s/']
+sources = ['%(namelower)s-%(version)s-source.tar.gz']
+patches = ['FLTK-1.3.6_fix-LDFLAGS.patch']
+checksums = [
+ {'fltk-1.3.9-source.tar.gz': 'd736b0445c50d607432c03d5ba5e82f3fba2660b10bc1618db8e077a42d9511b'},
+ {'FLTK-1.3.6_fix-LDFLAGS.patch': 'f8af2414a1ee193a186b0d98d1e3567add0ee003f44ec64dce2ce2dfd6d95ebf'},
+]
+
+configopts = '--enable-shared --enable-threads --enable-xft'
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('groff', '1.23.0'),
+]
+
+dependencies = [
+ ('Mesa', '23.1.9'),
+ ('libGLU', '9.0.3'),
+ ('libpng', '1.6.40'),
+ ('libjpeg-turbo', '3.0.1'),
+ ('xprop', '1.2.7'),
+ ('zlib', '1.2.13'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/fltk-config', 'bin/fluid', 'lib/libfltk.a', 'lib/libfltk.%s' % SHLIB_EXT],
+ 'dirs': ['lib'],
+}
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/f/FUSE/FUSE-3.14.1-GCCcore-11.3.0.eb b/easybuild/easyconfigs/f/FUSE/FUSE-3.14.1-GCCcore-11.3.0.eb
index 856159422b1..f82d2647ceb 100644
--- a/easybuild/easyconfigs/f/FUSE/FUSE-3.14.1-GCCcore-11.3.0.eb
+++ b/easybuild/easyconfigs/f/FUSE/FUSE-3.14.1-GCCcore-11.3.0.eb
@@ -18,13 +18,15 @@ builddependencies = [
('binutils', '2.38'),
]
-# -Dutils=True only works as root
-configopts = '-Dutils=False'
+# avoid that root permissions are required when installing utils (like fusermount)
+configopts = "-Dinitscriptdir=%(installdir)s/etc/init.d -Dudevrulesdir=%(installdir)s/udev/rules.d -Duseroot=false"
sanity_check_paths = {
- 'files': ['lib64/libfuse%%(version_major)s.%s' % SHLIB_EXT,
- 'lib64/pkgconfig/fuse%(version_major)s.pc'],
- 'dirs': ['include/fuse%(version_major)s'],
+ 'files': ['bin/fusermount3', 'etc/fuse.conf', 'lib/libfuse%%(version_major)s.%s' % SHLIB_EXT,
+ 'lib/pkgconfig/fuse%(version_major)s.pc'],
+ 'dirs': ['include/fuse%(version_major)s', 'share/man'],
}
+sanity_check_commands = ["fusermount3 -h | grep '^fusermount3'"]
+
moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/f/FUSE/FUSE-3.14.1-GCCcore-12.2.0.eb b/easybuild/easyconfigs/f/FUSE/FUSE-3.14.1-GCCcore-12.2.0.eb
index 1be42749206..b16a0debad6 100644
--- a/easybuild/easyconfigs/f/FUSE/FUSE-3.14.1-GCCcore-12.2.0.eb
+++ b/easybuild/easyconfigs/f/FUSE/FUSE-3.14.1-GCCcore-12.2.0.eb
@@ -18,13 +18,15 @@ builddependencies = [
('binutils', '2.39')
]
-# -Dutils=True only works as root
-configopts = '-Dutils=False'
+# avoid that root permissions are required when installing utils (like fusermount)
+configopts = "-Dinitscriptdir=%(installdir)s/etc/init.d -Dudevrulesdir=%(installdir)s/udev/rules.d -Duseroot=false"
sanity_check_paths = {
- 'files': ['lib64/libfuse%%(version_major)s.%s' % SHLIB_EXT,
- 'lib64/pkgconfig/fuse%(version_major)s.pc'],
- 'dirs': ['include/fuse%(version_major)s'],
+ 'files': ['bin/fusermount3', 'etc/fuse.conf', 'lib/libfuse%%(version_major)s.%s' % SHLIB_EXT,
+ 'lib/pkgconfig/fuse%(version_major)s.pc'],
+ 'dirs': ['include/fuse%(version_major)s', 'share/man'],
}
+sanity_check_commands = ["fusermount3 -h | grep '^fusermount3'"]
+
moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/f/FUSE/FUSE-3.16.2-GCCcore-12.3.0.eb b/easybuild/easyconfigs/f/FUSE/FUSE-3.16.2-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..341358950aa
--- /dev/null
+++ b/easybuild/easyconfigs/f/FUSE/FUSE-3.16.2-GCCcore-12.3.0.eb
@@ -0,0 +1,32 @@
+easyblock = 'MesonNinja'
+
+name = 'FUSE'
+version = '3.16.2'
+
+homepage = 'https://github.com/libfuse/libfuse'
+description = "The reference implementation of the Linux FUSE (Filesystem in Userspace) interface"
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = ['https://github.com/libfuse/libfuse/archive/']
+sources = ['fuse-%(version)s.tar.gz']
+checksums = ['1bc306be1a1f4f6c8965fbdd79c9ccca021fdc4b277d501483a711cbd7dbcd6c']
+
+builddependencies = [
+ ('Meson', '1.1.1'),
+ ('Ninja', '1.11.1'),
+ ('binutils', '2.40'),
+]
+
+# avoid that root permissions are required when installing utils (like fusermount)
+configopts = "-Dinitscriptdir=%(installdir)s/etc/init.d -Dudevrulesdir=%(installdir)s/udev/rules.d -Duseroot=false"
+
+sanity_check_paths = {
+ 'files': ['bin/fusermount3', 'etc/fuse.conf', 'lib/libfuse%%(version_major)s.%s' % SHLIB_EXT,
+ 'lib/pkgconfig/fuse%(version_major)s.pc'],
+ 'dirs': ['include/fuse%(version_major)s', 'share/man'],
+}
+
+sanity_check_commands = ["fusermount3 -h | grep '^fusermount3'"]
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/f/Faiss/Faiss-1.7.4-foss-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/f/Faiss/Faiss-1.7.4-foss-2023a-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..1a9b1727bba
--- /dev/null
+++ b/easybuild/easyconfigs/f/Faiss/Faiss-1.7.4-foss-2023a-CUDA-12.1.1.eb
@@ -0,0 +1,70 @@
+# Author: Jasper Grimm (UoY)
+easyblock = 'CMakePythonPackage'
+
+name = 'Faiss'
+version = '1.7.4'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://github.com/facebookresearch/faiss'
+description = """
+Faiss is a library for efficient similarity search and clustering of dense
+ vectors. It contains algorithms that search in sets of vectors of any size, up
+ to ones that possibly do not fit in RAM. It also contains supporting code for
+ evaluation and parameter tuning. Faiss is written in C++ with complete
+ wrappers for Python/numpy. Some of the most useful algorithms are implemented
+ on the GPU. It is developed primarily at Meta's Fundamental AI Research group.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+github_account = 'facebookresearch'
+source_urls = [GITHUB_LOWER_SOURCE]
+sources = ['v%(version)s.tar.gz']
+checksums = ['d9a7b31bf7fd6eb32c10b7ea7ff918160eed5be04fe63bb7b4b4b5f2bbde01ad']
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+ ('SWIG', '4.1.1'),
+]
+
+dependencies = [
+ ('CUDA', '12.1.1', '', SYSTEM),
+ ('Python', '3.11.3'),
+ ('PyTorch', '2.1.2', versionsuffix),
+ ('SciPy-bundle', '2023.07'),
+]
+
+_copts = [
+ '-DFAISS_ENABLE_GPU=ON',
+ '-DFAISS_ENABLE_PYTHON=ON',
+ '-DFAISS_ENABLE_C_API=ON',
+ '-DBUILD_TESTING=ON',
+ '-DBUILD_SHARED_LIBS=ON',
+ '-DPython_EXECUTABLE="${EBROOTPYTHON}/bin/python"',
+ '-DCUDAToolkit_ROOT="${CUDA_ROOT}"',
+ '-DCMAKE_CUDA_ARCHITECTURES="%(cuda_cc_cmake)s"',
+ '-DCMAKE_INSTALL_LIBDIR=%(installdir)s/lib',
+]
+
+configopts = ' '.join(_copts)
+
+buildopts = 'faiss swigfaiss'
+
+postinstallcmds = [
+ ' && '.join([
+ # run a pip install in the 'faiss/python' subdir
+ 'cd ../easybuild_obj/%(namelower)s/python',
+ 'python -m pip install --prefix=%(installdir)s --no-build-isolation .',
+ # for some reason, 'libfaiss_python_callbacks.so' doesn't get installed, so copy this manually
+ 'cp libfaiss_python_callbacks.%s %%(installdir)s/lib/python%%(pyshortver)s/site-packages/faiss' % SHLIB_EXT
+ ])
+]
+
+modextrapaths = {'LD_LIBRARY_PATH': "lib/python%(pyshortver)s/site-packages/faiss"}
+
+sanity_check_paths = {
+ 'files': ['lib/lib%%(namelower)s.%s' % SHLIB_EXT],
+ 'dirs': ['include/%(namelower)s', 'lib/python%(pyshortver)s/site-packages/%(namelower)s'],
+}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/f/FastTree/FastTree-2.1.11-GCCcore-12.2.0.eb b/easybuild/easyconfigs/f/FastTree/FastTree-2.1.11-GCCcore-12.2.0.eb
new file mode 100644
index 00000000000..abb4f293128
--- /dev/null
+++ b/easybuild/easyconfigs/f/FastTree/FastTree-2.1.11-GCCcore-12.2.0.eb
@@ -0,0 +1,42 @@
+# Updated from previous config
+# Author: Pavel Grochal (INUITS)
+# License: GPLv2
+
+easyblock = 'CmdCp'
+
+name = 'FastTree'
+version = '2.1.11'
+
+homepage = 'http://www.microbesonline.org/fasttree/'
+description = """FastTree infers approximately-maximum-likelihood phylogenetic trees from alignments of nucleotide
+ or protein sequences. FastTree can handle alignments with up to a million of sequences in a reasonable amount of
+ time and memory. """
+
+toolchain = {'name': 'GCCcore', 'version': '12.2.0'}
+toolchainopts = {'openmp': True}
+
+# HTTPS cert error:
+# hostname 'www.microbesonline.org' doesn't match either of 'genomics.lbl.gov', 'mojave.qb3.berkeley.edu', ...
+source_urls = ['http://www.microbesonline.org/fasttree/']
+sources = [{'filename': '%(name)s-%(version)s.c', 'extract_cmd': 'cp %s FastTree.c'}]
+checksums = ['9026ae550307374be92913d3098f8d44187d30bea07902b9dcbfb123eaa2050f']
+
+builddependencies = [('binutils', '2.39')]
+
+cmds_map = [('%(name)s-%(version)s.c', '$CC -DOPENMP $CFLAGS $LIBS %%(source)s -o %(name)s')]
+
+files_to_copy = [(['FastTree'], 'bin')]
+
+# as FastTree is built with OpenMP, the correct binary is FastTreeMP
+# the FastTree binary should normally be built without OpenMP, but let’s keep it as is for backward compatibility
+# see http://www.microbesonline.org/fasttree/#OpenMP
+postinstallcmds = ['cd %(installdir)s/bin && ln -s FastTree FastTreeMP']
+
+sanity_check_paths = {
+ 'files': ['bin/FastTree'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ['FastTree 2>&1 | grep "FastTree Version %(version)s"']
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/f/FastTree/FastTree-2.1.11-GCCcore-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/FlexiBLAS/FlexiBLAS-3.4.4-GCC-13.3.0.eb b/easybuild/easyconfigs/f/FlexiBLAS/FlexiBLAS-3.4.4-GCC-13.3.0.eb
new file mode 100644
index 00000000000..9b9f5e8edb2
--- /dev/null
+++ b/easybuild/easyconfigs/f/FlexiBLAS/FlexiBLAS-3.4.4-GCC-13.3.0.eb
@@ -0,0 +1,59 @@
+easyblock = 'Bundle'
+
+name = 'FlexiBLAS'
+version = '3.4.4'
+
+homepage = 'https://gitlab.mpi-magdeburg.mpg.de/software/flexiblas-release'
+description = """FlexiBLAS is a wrapper library that enables the exchange of the BLAS and LAPACK implementation
+used by a program without recompiling or relinking it."""
+
+toolchain = {'name': 'GCC', 'version': '13.3.0'}
+local_extra_flags = "-fstack-protector-strong -fstack-clash-protection"
+toolchainopts = {'pic': True, 'extra_cflags': local_extra_flags, 'extra_fflags': local_extra_flags}
+
+builddependencies = [
+ ('CMake', '3.29.3'),
+ ('Python', '3.12.3'), # required for running the tests
+ ('BLIS', '1.0'),
+]
+
+dependencies = [
+ ('OpenBLAS', '0.3.27'),
+]
+
+# note: first listed backend will be used as default by FlexiBLAS,
+# unless otherwise specified via easyconfig parameter flexiblas_default
+local_backends = ['OpenBLAS', 'BLIS']
+
+# imkl supplies its backend via the imkl module, not as a dependency
+if ARCH == 'x86_64':
+ local_backends.append('imkl')
+
+default_component_specs = {'start_dir': '%(namelower)s-%(version)s'}
+sanity_check_all_components = True
+
+# Also build and install LAPACKE, which FlexiBLAS does not support yet
+components = [
+ (name, version, {
+ 'source_urls':
+ ['https://gitlab.mpi-magdeburg.mpg.de/api/v4/projects/386/packages/generic/flexiblas-source/v3.4.4/'],
+ 'sources': [SOURCELOWER_TAR_GZ],
+ 'checksums': ['05040ae092142dd0bf38d1bb9ce33f6b475d9f9bb455e33be997932ae855c22b'],
+ 'backends': local_backends,
+ }),
+ ('LAPACK', '3.12.0', {
+ 'easyblock': 'CMakeMake',
+ 'source_urls': ['https://github.com/Reference-LAPACK/lapack/archive/'],
+ 'sources': ['v%(version)s.tar.gz'],
+ 'checksums': ['eac9570f8e0ad6f30ce4b963f4f033f0f643e7c3912fc9ee6cd99120675ad48b'],
+ 'configopts': ('-DBUILD_SHARED_LIBS=ON -DUSE_OPTIMIZED_BLAS=ON -DLAPACKE=ON '
+ '-DUSE_OPTIMIZED_LAPACK=ON -DBUILD_DEPRECATED=ON '
+ '-DCMAKE_INSTALL_INCLUDEDIR=%(installdir)s/include/flexiblas'),
+ 'sanity_check_paths': {
+ 'files': ['lib/liblapacke.%s' % SHLIB_EXT, 'include/flexiblas/lapacke.h'],
+ 'dirs': [],
+ },
+ }),
+]
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/f/FloPy/FloPy-3.8.2-gfbf-2023a.eb b/easybuild/easyconfigs/f/FloPy/FloPy-3.8.2-gfbf-2023a.eb
new file mode 100644
index 00000000000..50f72e07c0d
--- /dev/null
+++ b/easybuild/easyconfigs/f/FloPy/FloPy-3.8.2-gfbf-2023a.eb
@@ -0,0 +1,26 @@
+easyblock = 'PythonBundle'
+
+name = 'FloPy'
+version = '3.8.2'
+homepage = 'https://flopy.readthedocs.io'
+
+description = "FloPy is a Python package to create, run, and post-process MODFLOW-based models"
+
+toolchain = {'name': 'gfbf', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('matplotlib', '3.7.2'),
+]
+
+exts_list = [
+ ('flopy', version, {
+ 'checksums': ['0ce2941f4095df2ca1d510f28df57224bdeb90636a3f3beeb199f09f635ddc62'],
+ }),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+moduleclass = 'geo'
diff --git a/easybuild/easyconfigs/f/Flye/Flye-2.9.4-GCC-13.2.0.eb b/easybuild/easyconfigs/f/Flye/Flye-2.9.4-GCC-13.2.0.eb
new file mode 100644
index 00000000000..c11373f69a1
--- /dev/null
+++ b/easybuild/easyconfigs/f/Flye/Flye-2.9.4-GCC-13.2.0.eb
@@ -0,0 +1,33 @@
+easyblock = 'PythonPackage'
+
+name = 'Flye'
+version = '2.9.4'
+
+homepage = 'https://github.com/fenderglass/Flye'
+description = """Flye is a de novo assembler for long and noisy reads, such as those produced by PacBio
+ and Oxford Nanopore Technologies."""
+
+toolchain = {'name': 'GCC', 'version': '13.2.0'}
+
+source_urls = ['https://github.com/fenderglass/Flye/archive/']
+sources = ['%(version)s.tar.gz']
+checksums = ['197a2dfe39fc324a39d8e1901af4f539609159c4a64a578ec8e60f73f5ea4696']
+
+dependencies = [('Python', '3.11.5')]
+
+download_dep_fail = True
+use_pip = True
+
+if ARCH == "aarch64":
+ preinstallopts = 'export arm_neon=1 && export aarch64=1 && '
+
+sanity_check_paths = {
+ 'files': ['bin/flye'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = ['%(namelower)s --help']
+
+sanity_pip_check = True
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/f/FragGeneScan/FragGeneScan-1.31-GCCcore-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/fastahack/fastahack-1.0.0-GCCcore-12.2.0.eb b/easybuild/easyconfigs/f/fastahack/fastahack-1.0.0-GCCcore-12.2.0.eb
new file mode 100644
index 00000000000..2d430c8a5f2
--- /dev/null
+++ b/easybuild/easyconfigs/f/fastahack/fastahack-1.0.0-GCCcore-12.2.0.eb
@@ -0,0 +1,36 @@
+# Updated: Denis Kristak (INUITS)
+# Updated: Petr Král (INUITS)
+
+easyblock = 'ConfigureMake'
+
+name = 'fastahack'
+version = '1.0.0'
+
+homepage = 'https://github.com/ekg/fastahack'
+description = """Utilities for indexing and sequence extraction from FASTA files."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.2.0'}
+
+github_account = 'ekg'
+source_urls = [GITHUB_SOURCE]
+sources = ['v%(version)s.tar.gz']
+patches = ['%(name)s-%(version)s_build-libs.patch']
+checksums = [
+ 'cc1c04729b0c8ba3647cbb7e15e2b490ce701d73773f30f5892d68c36a1dceae', # v1.0.0.tar.gz
+ '7f804486c6bafd9b1572cb5f86ff28dbebb4d6da551bde1091d6ff8f82748bf4', # fastahack-1.0.0_build-libs.patch
+]
+
+builddependencies = [('binutils', '2.39')]
+
+skipsteps = ['configure']
+
+installopts = 'PREFIX=%(installdir)s '
+
+sanity_check_paths = {
+ 'files': ['bin/%(name)s', 'lib/libfastahack.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+
+sanity_check_commands = ['%(name)s --help']
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/f/fastfilters/fastfilters-0.3-foss-2023a.eb b/easybuild/easyconfigs/f/fastfilters/fastfilters-0.3-foss-2023a.eb
new file mode 100644
index 00000000000..a9d67a03798
--- /dev/null
+++ b/easybuild/easyconfigs/f/fastfilters/fastfilters-0.3-foss-2023a.eb
@@ -0,0 +1,46 @@
+easyblock = 'CMakeMake'
+
+name = 'fastfilters'
+version = '0.3'
+
+homepage = 'https://github.com/ilastik/fastfilters/'
+description = """Fast gaussian and derivative convolutional filters."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'optarch': False}
+
+sources = [{
+ 'filename': 'v%(version)s.tar.gz',
+ 'git_config': {
+ 'url': 'https://github.com/ilastik',
+ 'repo_name': 'fastfilters',
+ 'tag': 'v%(version)s',
+ 'recursive': True,
+ 'keep_git_dir': True,
+ }
+}]
+checksums = [None]
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+]
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('SciPy-bundle', '2023.07'),
+ ('pybind11', '2.11.1'),
+]
+
+configopts = '-DFF_INSTALL_DIR="%(installdir)s/lib/python%(pyshortver)s/site-packages/" '
+configopts += '-DPYTHON_EXECUTABLE="$EBROOTPYTHON/bin/python"'
+
+sanity_check_paths = {
+ 'files': [],
+ 'dirs': ['lib', 'include'],
+}
+
+sanity_check_commands = ["python -c 'import fastfilters'"]
+
+modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/f/fastp/fastp-0.23.4-GCC-13.2.0.eb b/easybuild/easyconfigs/f/fastp/fastp-0.23.4-GCC-13.2.0.eb
new file mode 100644
index 00000000000..49b2a29c4f9
--- /dev/null
+++ b/easybuild/easyconfigs/f/fastp/fastp-0.23.4-GCC-13.2.0.eb
@@ -0,0 +1,38 @@
+easyblock = 'ConfigureMake'
+
+name = 'fastp'
+version = '0.23.4'
+
+homepage = 'https://github.com/OpenGene/fastp'
+description = """A tool designed to provide fast all-in-one preprocessing for FastQ files.
+ This tool is developed in C++ with multithreading supported to afford high performance."""
+
+toolchain = {'name': 'GCC', 'version': '13.2.0'}
+
+github_account = 'OpenGene'
+source_urls = [GITHUB_SOURCE]
+sources = ['v%(version)s.tar.gz']
+checksums = ['4fad6db156e769d46071add8a778a13a5cb5186bc1e1a5f9b1ffd499d84d72b5']
+
+dependencies = [
+ ('zlib', '1.2.13'),
+ ('libdeflate', '1.19'),
+ ('ISA-L', '2.31.0'),
+]
+
+skipsteps = ['configure']
+
+buildopts = ' CXX=${CXX}'
+
+preinstallopts = 'mkdir -p %(installdir)s/bin && '
+
+installopts = 'PREFIX=%(installdir)s'
+
+sanity_check_paths = {
+ 'files': ['bin/fastp'],
+ 'dirs': [],
+}
+
+sanity_check_commands = [('fastp', '--help')]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/f/fastparquet/fastparquet-2023.4.0-gfbf-2022b.eb b/easybuild/easyconfigs/f/fastparquet/fastparquet-2023.4.0-gfbf-2022b.eb
index 2320c4b7539..95fbef237e5 100644
--- a/easybuild/easyconfigs/f/fastparquet/fastparquet-2023.4.0-gfbf-2022b.eb
+++ b/easybuild/easyconfigs/f/fastparquet/fastparquet-2023.4.0-gfbf-2022b.eb
@@ -1,4 +1,4 @@
-easyblock = 'PythonBundle'
+easyblock = 'CargoPythonBundle'
name = 'fastparquet'
version = '2023.4.0'
@@ -12,12 +12,77 @@ toolchain = {'name': 'gfbf', 'version': '2022b'}
builddependencies = [
('patchelf', '0.17.2'),
+ ('maturin', '1.1.0'), # for cramjam
]
dependencies = [
('Python', '3.10.8'),
('SciPy-bundle', '2023.02'),
- ('maturin', '1.1.0'),
+]
+
+crates = [
+ ('adler', '1.0.2'),
+ ('ahash', '0.7.6'),
+ ('alloc-no-stdlib', '2.0.4'),
+ ('alloc-stdlib', '0.2.2'),
+ ('autocfg', '1.1.0'),
+ ('bitflags', '1.3.2'),
+ ('brotli', '3.3.4'),
+ ('brotli-decompressor', '2.3.2'),
+ ('bzip2', '0.4.3'),
+ ('bzip2-sys', '0.1.11+1.0.8'),
+ ('cc', '1.0.73'),
+ ('cfg-if', '1.0.0'),
+ ('crc32fast', '1.3.2'),
+ ('flate2', '1.0.23'),
+ ('getrandom', '0.2.8'),
+ ('indoc', '1.0.6'),
+ ('jobserver', '0.1.24'),
+ ('libc', '0.2.126'),
+ ('libmimalloc-sys', '0.1.25'),
+ ('lock_api', '0.4.7'),
+ ('lz4', '1.23.3'),
+ ('lz4-sys', '1.9.4'),
+ ('matrixmultiply', '0.3.2'),
+ ('memoffset', '0.6.5'),
+ ('mimalloc', '0.1.29'),
+ ('miniz_oxide', '0.5.1'),
+ ('ndarray', '0.15.4'),
+ ('num-complex', '0.4.1'),
+ ('num-integer', '0.1.45'),
+ ('num-traits', '0.2.15'),
+ ('numpy', '0.17.2'),
+ ('once_cell', '1.10.0'),
+ ('parking_lot', '0.12.0'),
+ ('parking_lot_core', '0.9.3'),
+ ('pkg-config', '0.3.25'),
+ ('proc-macro2', '1.0.39'),
+ ('pyo3', '0.17.3'),
+ ('pyo3-build-config', '0.17.3'),
+ ('pyo3-ffi', '0.17.3'),
+ ('pyo3-macros', '0.17.3'),
+ ('pyo3-macros-backend', '0.17.3'),
+ ('quote', '1.0.18'),
+ ('rawpointer', '0.2.1'),
+ ('redox_syscall', '0.2.13'),
+ ('scopeguard', '1.1.0'),
+ ('smallvec', '1.8.0'),
+ ('snap', '1.0.5'),
+ ('syn', '1.0.95'),
+ ('target-lexicon', '0.12.3'),
+ ('unicode-ident', '1.0.0'),
+ ('unindent', '0.1.9'),
+ ('version_check', '0.9.4'),
+ ('wasi', '0.11.0+wasi-snapshot-preview1'),
+ ('windows-sys', '0.36.1'),
+ ('windows_aarch64_msvc', '0.36.1'),
+ ('windows_i686_gnu', '0.36.1'),
+ ('windows_i686_msvc', '0.36.1'),
+ ('windows_x86_64_gnu', '0.36.1'),
+ ('windows_x86_64_msvc', '0.36.1'),
+ ('zstd', '0.11.2+zstd.1.5.2'),
+ ('zstd-safe', '5.0.2+zstd.1.5.2'),
+ ('zstd-sys', '2.0.1+zstd.1.5.2'),
]
use_pip = True
diff --git a/easybuild/easyconfigs/f/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/file/file-5.43-GCCcore-13.2.0.eb b/easybuild/easyconfigs/f/file/file-5.43-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..dcd8b7cbfa0
--- /dev/null
+++ b/easybuild/easyconfigs/f/file/file-5.43-GCCcore-13.2.0.eb
@@ -0,0 +1,30 @@
+easyblock = 'ConfigureMake'
+
+name = 'file'
+version = '5.43'
+
+homepage = 'https://www.darwinsys.com/file/'
+description = """The file command is 'a file type guesser', that is, a command-line tool
+ that tells you in words what kind of data a file contains."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+source_urls = ['ftp://ftp.astron.com/pub/file/']
+sources = [SOURCE_TAR_GZ]
+checksums = ['8c8015e91ae0e8d0321d94c78239892ef9dbc70c4ade0008c0e95894abfb1991']
+
+builddependencies = [
+ ('Autotools', '20220317'),
+ ('binutils', '2.40'),
+]
+
+preconfigopts = "autoreconf -f -i && "
+
+sanity_check_paths = {
+ 'files': ['bin/file', 'include/magic.h', 'lib/libmagic.%s' % SHLIB_EXT],
+ 'dirs': ['share']
+}
+
+sanity_check_commands = ['%(name)s --help']
+
+moduleclass = 'system'
diff --git a/easybuild/easyconfigs/f/filevercmp/filevercmp-20191210-GCCcore-12.2.0.eb b/easybuild/easyconfigs/f/filevercmp/filevercmp-20191210-GCCcore-12.2.0.eb
new file mode 100644
index 00000000000..f9acad2dfe3
--- /dev/null
+++ b/easybuild/easyconfigs/f/filevercmp/filevercmp-20191210-GCCcore-12.2.0.eb
@@ -0,0 +1,37 @@
+# Updated: Denis Kristak (INUITS)
+# Updated: Petr Král (INUITS)
+
+easyblock = 'ConfigureMake'
+
+name = 'filevercmp'
+version = '20191210'
+local_commit = 'df20dcc'
+
+homepage = 'https://github.com/ekg/filevercmp'
+description = """filevercmp function as in sort --version-sort."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.2.0'}
+
+github_account = 'ekg'
+source_urls = [GITHUB_SOURCE]
+sources = ['%s.tar.gz' % local_commit]
+patches = ['%(name)s-%(version)s_build-libs.patch']
+checksums = [
+ '89835829a7829f7a25783b2cf9d482f1e3c794703343c9214c15c66a8c7f4aae', # df20dcc.tar.gz
+ '051438f76dd04219abfb283f61101c04d748407031e180b7ae3841344416ec4f', # filevercmp-20191210_build-libs.patch
+]
+
+builddependencies = [('binutils', '2.39')]
+
+skipsteps = ['configure']
+
+installopts = 'DESTDIR="" PREFIX=%(installdir)s '
+
+sanity_check_paths = {
+ 'files': ['bin/%(name)s', 'lib/libfilevercmp.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+
+sanity_check_commands = ['%(name)s abca bcac']
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/f/fish/fish-3.7.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/f/fish/fish-3.7.1-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..0c7e084ac23
--- /dev/null
+++ b/easybuild/easyconfigs/f/fish/fish-3.7.1-GCCcore-13.3.0.eb
@@ -0,0 +1,36 @@
+easyblock = 'CMakeMake'
+
+name = 'fish'
+
+version = '3.7.1'
+
+homepage = 'https://fishshell.com/'
+description = """
+fish is a smart and user-friendly command line shell for Linux, macOS, and the rest of the family.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://github.com/fish-shell/fish-shell/releases/download/%(version)s/']
+sources = [SOURCELOWER_TAR_XZ]
+checksums = ['614c9f5643cd0799df391395fa6bbc3649427bb839722ce3b114d3bbc1a3b250']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('CMake', '3.29.3')
+]
+
+dependencies = [
+ ('ncurses', '6.5'),
+]
+
+configopts = '-DBUILD_DOCS=off '
+
+sanity_check_paths = {
+ 'files': ['bin/fish'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ['fish --version']
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/f/flash-attention/flash-attention-2.6.3-foss-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/f/flash-attention/flash-attention-2.6.3-foss-2023a-CUDA-12.1.1.eb
new file mode 100644
index 00000000000..754eef2c70e
--- /dev/null
+++ b/easybuild/easyconfigs/f/flash-attention/flash-attention-2.6.3-foss-2023a-CUDA-12.1.1.eb
@@ -0,0 +1,41 @@
+easyblock = 'PythonBundle'
+
+name = 'flash-attention'
+version = '2.6.3'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://github.com/Dao-AILab/flash-attention'
+description = """Fast and memory-efficient exact attention."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+builddependencies = [('Ninja', '1.11.1')]
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('CUDA', '12.1.1', '', SYSTEM),
+ ('PyTorch-bundle', '2.1.2', versionsuffix),
+ ('einops', '0.7.0'),
+ ('CUTLASS', '3.4.0', versionsuffix),
+]
+
+sanity_pip_check = True
+use_pip = True
+
+exts_list = [
+ (name, version, {
+ 'modulename': 'flash_attn',
+ # solves Invalid cross-device link error
+ # https://github.com/Dao-AILab/flash-attention/issues/875
+ 'preinstallopts': "sed -i 's/os.rename/shutil.move/' setup.py && ",
+ 'source_urls': ['https://github.com/Dao-AILab/flash-attention/archive/'],
+ 'sources': ['v%(version)s.tar.gz'],
+ 'checksums': ['136e149165d4c8c67273d16daa957b5cd5e6fc629061ffd39fa5a25224454d6c'],
+ }),
+]
+
+sanity_check_commands = [
+ "python -c 'from flash_attn import flash_attn_qkvpacked_func, flash_attn_func'",
+]
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/f/flatbuffers-python/flatbuffers-python-24.3.25-GCCcore-13.3.0.eb b/easybuild/easyconfigs/f/flatbuffers-python/flatbuffers-python-24.3.25-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..6e3bd315965
--- /dev/null
+++ b/easybuild/easyconfigs/f/flatbuffers-python/flatbuffers-python-24.3.25-GCCcore-13.3.0.eb
@@ -0,0 +1,27 @@
+easyblock = 'PythonPackage'
+
+name = 'flatbuffers-python'
+version = '24.3.25'
+
+homepage = 'https://github.com/google/flatbuffers/'
+description = """Python Flatbuffers runtime library."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://pypi.python.org/packages/source/f/flatbuffers']
+sources = [{'download_filename': 'flatbuffers-%(version)s.tar.gz', 'filename': SOURCE_TAR_GZ}]
+checksums = ['de2ec5b203f21441716617f38443e0a8ebf3d25bf0d9c0bb0ce68fa00ad546a4']
+
+dependencies = [
+ ('binutils', '2.42'),
+ ('Python', '3.12.3'),
+]
+
+download_dep_fail = True
+use_pip = True
+sanity_pip_check = True
+
+preinstallopts = 'VERSION=%(version)s '
+options = {'modulename': 'flatbuffers'}
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/f/flatbuffers/flatbuffers-24.3.25-GCCcore-13.3.0.eb b/easybuild/easyconfigs/f/flatbuffers/flatbuffers-24.3.25-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..42c0b9a28f1
--- /dev/null
+++ b/easybuild/easyconfigs/f/flatbuffers/flatbuffers-24.3.25-GCCcore-13.3.0.eb
@@ -0,0 +1,33 @@
+##
+# Author: Robert Mijakovic
+##
+easyblock = 'CMakeNinja'
+
+name = 'flatbuffers'
+version = '24.3.25'
+
+homepage = 'https://github.com/google/flatbuffers/'
+description = """FlatBuffers: Memory Efficient Serialization Library"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/google/flatbuffers/archive/v%(version)s/']
+sources = [SOURCE_TAR_GZ]
+checksums = ['4157c5cacdb59737c5d627e47ac26b140e9ee28b1102f812b36068aab728c1ed']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('CMake', '3.29.3'),
+ ('Ninja', '1.12.1'),
+ ('Python', '3.12.3'),
+]
+
+configopts = '-DFLATBUFFERS_ENABLE_PCH=ON '
+
+sanity_check_paths = {
+ 'files': ['include/flatbuffers/flatbuffers.h', 'bin/flatc', 'lib/libflatbuffers.a'],
+ 'dirs': ['lib/cmake'],
+}
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/f/flex/flex-2.6.4-GCCcore-13.3.0.eb b/easybuild/easyconfigs/f/flex/flex-2.6.4-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..dda9307eaea
--- /dev/null
+++ b/easybuild/easyconfigs/f/flex/flex-2.6.4-GCCcore-13.3.0.eb
@@ -0,0 +1,34 @@
+name = 'flex'
+version = '2.6.4'
+
+homepage = 'https://github.com/westes/flex'
+
+description = """
+ Flex (Fast Lexical Analyzer) is a tool for generating scanners. A scanner,
+ sometimes called a tokenizer, is a program which recognizes lexical patterns
+ in text.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/westes/flex/releases/download/v%(version)s/']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['e87aae032bf07c26f85ac0ed3250998c37621d95f8bd748b31f15b33c45ee995']
+
+builddependencies = [
+ ('Bison', '3.8.2'),
+ ('help2man', '1.49.3'),
+ # use same binutils version that was used when building GCC toolchain
+ ('binutils', '2.42', '', SYSTEM),
+]
+
+dependencies = [
+ ('M4', '1.4.19'),
+]
+
+# glibc 2.26 requires _GNU_SOURCE defined to expose reallocarray in the correct
+# header, see https://github.com/westes/flex/issues/241
+preconfigopts = 'export CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE" && '
+
+moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/f/flex/flex-2.6.4-GCCcore-14.2.0.eb b/easybuild/easyconfigs/f/flex/flex-2.6.4-GCCcore-14.2.0.eb
new file mode 100644
index 00000000000..d91f13aa5d0
--- /dev/null
+++ b/easybuild/easyconfigs/f/flex/flex-2.6.4-GCCcore-14.2.0.eb
@@ -0,0 +1,34 @@
+name = 'flex'
+version = '2.6.4'
+
+homepage = 'https://github.com/westes/flex'
+
+description = """
+ Flex (Fast Lexical Analyzer) is a tool for generating scanners. A scanner,
+ sometimes called a tokenizer, is a program which recognizes lexical patterns
+ in text.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '14.2.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/westes/flex/releases/download/v%(version)s/']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['e87aae032bf07c26f85ac0ed3250998c37621d95f8bd748b31f15b33c45ee995']
+
+builddependencies = [
+ ('Bison', '3.8.2'),
+ ('help2man', '1.49.3'),
+ # use same binutils version that was used when building GCC toolchain
+ ('binutils', '2.42', '', SYSTEM),
+]
+
+dependencies = [
+ ('M4', '1.4.19'),
+]
+
+# glibc 2.26 requires _GNU_SOURCE defined to expose reallocarray in the correct
+# header, see https://github.com/westes/flex/issues/241
+preconfigopts = 'export CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE" && '
+
+moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/f/flit/flit-3.9.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/f/flit/flit-3.9.0-GCCcore-12.3.0.eb
index 15b9ad83d78..a19ba324250 100644
--- a/easybuild/easyconfigs/f/flit/flit-3.9.0-GCCcore-12.3.0.eb
+++ b/easybuild/easyconfigs/f/flit/flit-3.9.0-GCCcore-12.3.0.eb
@@ -17,11 +17,8 @@ dependencies = [
('Python', '3.11.3'),
]
-exts_default_options = {
- 'download_dep_fail': True,
- 'sanity_pip_check': True,
- 'use_pip': True,
-}
+sanity_pip_check = True
+use_pip = True
exts_list = [
('idna', '3.4', {
diff --git a/easybuild/easyconfigs/f/flit/flit-3.9.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/f/flit/flit-3.9.0-GCCcore-13.2.0.eb
index 79b1a625e7e..9ef1de6c8b7 100644
--- a/easybuild/easyconfigs/f/flit/flit-3.9.0-GCCcore-13.2.0.eb
+++ b/easybuild/easyconfigs/f/flit/flit-3.9.0-GCCcore-13.2.0.eb
@@ -18,11 +18,8 @@ dependencies = [
('Python', '3.11.5'),
]
-exts_default_options = {
- 'download_dep_fail': True,
- 'sanity_pip_check': True,
- 'use_pip': True,
-}
+sanity_pip_check = True
+use_pip = True
exts_list = [
('idna', '3.4', {
diff --git a/easybuild/easyconfigs/f/flit/flit-3.9.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/f/flit/flit-3.9.0-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..650b15edaa5
--- /dev/null
+++ b/easybuild/easyconfigs/f/flit/flit-3.9.0-GCCcore-13.3.0.eb
@@ -0,0 +1,72 @@
+easyblock = 'PythonBundle'
+
+name = 'flit'
+version = '3.9.0'
+
+homepage = 'https://github.com/pypa/flit'
+description = "A simple packaging tool for simple packages."
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('hatchling', '1.24.2'),
+]
+
+dependencies = [
+ ('Python', '3.12.3'),
+]
+
+sanity_pip_check = True
+use_pip = True
+
+exts_list = [
+ ('idna', '3.7', {
+ 'checksums': ['028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc'],
+ }),
+ ('certifi', '2024.6.2', {
+ 'checksums': ['3cd43f1c6fa7dedc5899d69d3ad0398fd018ad1a17fba83ddaf78aa46c747516'],
+ }),
+ ('urllib3', '2.2.1', {
+ 'checksums': ['d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19'],
+ }),
+ ('charset-normalizer', '3.3.2', {
+ 'checksums': ['f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5'],
+ }),
+ ('packaging', '24.1', {
+ 'checksums': ['026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002'],
+ }),
+ ('setuptools-scm', '8.1.0', {
+ 'sources': ['setuptools_scm-%(version)s.tar.gz'],
+ 'checksums': ['42dea1b65771cba93b7a515d65a65d8246e560768a66b9106a592c8e7f26c8a7'],
+ }),
+ ('typing-extensions', '4.12.2', {
+ 'sources': ['typing_extensions-%(version)s.tar.gz'],
+ 'checksums': ['1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8'],
+ }),
+ ('flit-scm', '1.7.0', {
+ 'sources': ['flit_scm-%(version)s.tar.gz'],
+ 'checksums': ['961bd6fb24f31bba75333c234145fff88e6de0a90fc0f7e5e7c79deca69f6bb2'],
+ }),
+ ('requests', '2.32.3', {
+ 'checksums': ['55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760'],
+ }),
+ ('docutils', '0.21.2', {
+ 'checksums': ['3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f'],
+ }),
+ ('tomli-w', '1.0.0', {
+ 'sources': ['tomli_w-%(version)s.tar.gz'],
+ 'checksums': ['f463434305e0336248cac9c2dc8076b707d8a12d019dd349f5c1e382dd1ae1b9'],
+ }),
+ (name, version, {
+ 'checksums': ['d75edf5eb324da20d53570a6a6f87f51e606eee8384925cd66a90611140844c7'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/%(namelower)s'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages/%(namelower)s'],
+}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/f/fmt/fmt-10.2.1-GCCcore-13.2.0.eb b/easybuild/easyconfigs/f/fmt/fmt-10.2.1-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..45cfe72e73f
--- /dev/null
+++ b/easybuild/easyconfigs/f/fmt/fmt-10.2.1-GCCcore-13.2.0.eb
@@ -0,0 +1,27 @@
+easyblock = 'CMakeMake'
+
+name = 'fmt'
+version = '10.2.1'
+
+homepage = 'http://fmtlib.net/'
+description = "fmt (formerly cppformat) is an open-source formatting library."
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/fmtlib/fmt/releases/download/%(version)s/']
+sources = ['fmt-%(version)s.zip']
+checksums = ['312151a2d13c8327f5c9c586ac6cf7cddc1658e8f53edae0ec56509c8fa516c9']
+
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('CMake', '3.27.6'),
+]
+
+sanity_check_paths = {
+ 'files': ['lib/libfmt.a'],
+ 'dirs': ['include/fmt', 'lib/cmake'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/f/fmt/fmt-11.0.2-GCCcore-13.3.0.eb b/easybuild/easyconfigs/f/fmt/fmt-11.0.2-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..cfb38383787
--- /dev/null
+++ b/easybuild/easyconfigs/f/fmt/fmt-11.0.2-GCCcore-13.3.0.eb
@@ -0,0 +1,26 @@
+easyblock = 'CMakeMake'
+
+name = 'fmt'
+version = '11.0.2'
+
+homepage = 'http://fmtlib.net/'
+description = "fmt (formerly cppformat) is an open-source formatting library."
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/fmtlib/fmt/releases/download/%(version)s/']
+sources = ['fmt-%(version)s.zip']
+checksums = ['40fc58bebcf38c759e11a7bd8fdc163507d2423ef5058bba7f26280c5b9c5465']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('CMake', '3.29.3'),
+]
+
+sanity_check_paths = {
+ 'files': ['lib/libfmt.a'],
+ 'dirs': ['include/fmt', 'lib/cmake'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/f/fontconfig/fontconfig-2.15.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/f/fontconfig/fontconfig-2.15.0-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..e2586c86e8c
--- /dev/null
+++ b/easybuild/easyconfigs/f/fontconfig/fontconfig-2.15.0-GCCcore-13.3.0.eb
@@ -0,0 +1,40 @@
+easyblock = 'ConfigureMake'
+
+name = 'fontconfig'
+version = '2.15.0'
+
+homepage = 'https://www.freedesktop.org/wiki/Software/fontconfig/'
+
+description = """
+ Fontconfig is a library designed to provide system-wide font configuration,
+ customization and application access.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://www.freedesktop.org/software/fontconfig/release/']
+sources = [SOURCE_TAR_GZ]
+checksums = ['f5f359d6332861bd497570848fcb42520964a9e83d5e3abe397b6b6db9bcaaf4']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('gperf', '3.1'),
+ ('pkgconf', '2.2.0'),
+ ('Python', '3.12.3'),
+]
+
+dependencies = [
+ ('expat', '2.6.2'),
+ ('freetype', '2.13.2'),
+ ('util-linux', '2.40'),
+]
+
+configopts = '--disable-docs '
+
+sanity_check_paths = {
+ 'files': ['include/fontconfig/fontconfig.h', 'lib/libfontconfig.%s' % SHLIB_EXT],
+ 'dirs': []
+}
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/f/fonttools/fonttools-4.53.1-GCCcore-11.3.0.eb b/easybuild/easyconfigs/f/fonttools/fonttools-4.53.1-GCCcore-11.3.0.eb
new file mode 100644
index 00000000000..8453a35a695
--- /dev/null
+++ b/easybuild/easyconfigs/f/fonttools/fonttools-4.53.1-GCCcore-11.3.0.eb
@@ -0,0 +1,27 @@
+easyblock = 'PythonPackage'
+
+name = 'fonttools'
+version = '4.53.1'
+
+homepage = 'https://python-markdown.github.io/'
+description = """
+fontTools is a library for manipulating fonts, written in Python.
+The project includes the TTX tool, that can convert TrueType and OpenType fonts to and from an XML text format,
+which is also called TTX.
+It supports TrueType, OpenType, AFM and to an extent Type 1 and some Mac-specific formats."""
+
+toolchain = {'name': 'GCCcore', 'version': '11.3.0'}
+
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['e128778a8e9bc11159ce5447f76766cefbd876f44bd79aff030287254e4752c4']
+
+builddependencies = [('binutils', '2.38')]
+dependencies = [('Python', '3.10.4')]
+
+download_dep_fail = True
+sanity_pip_check = True
+use_pip = True
+
+options = {'modulename': 'fontTools'}
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/f/fonttools/fonttools-4.53.1-GCCcore-12.2.0.eb b/easybuild/easyconfigs/f/fonttools/fonttools-4.53.1-GCCcore-12.2.0.eb
new file mode 100644
index 00000000000..cfaada6dee8
--- /dev/null
+++ b/easybuild/easyconfigs/f/fonttools/fonttools-4.53.1-GCCcore-12.2.0.eb
@@ -0,0 +1,27 @@
+easyblock = 'PythonPackage'
+
+name = 'fonttools'
+version = '4.53.1'
+
+homepage = 'https://python-markdown.github.io/'
+description = """
+fontTools is a library for manipulating fonts, written in Python.
+The project includes the TTX tool, that can convert TrueType and OpenType fonts to and from an XML text format,
+which is also called TTX.
+It supports TrueType, OpenType, AFM and to an extent Type 1 and some Mac-specific formats."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.2.0'}
+
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['e128778a8e9bc11159ce5447f76766cefbd876f44bd79aff030287254e4752c4']
+
+builddependencies = [('binutils', '2.39')]
+dependencies = [('Python', '3.10.8')]
+
+download_dep_fail = True
+sanity_pip_check = True
+use_pip = True
+
+options = {'modulename': 'fontTools'}
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/f/fonttools/fonttools-4.53.1-GCCcore-12.3.0.eb b/easybuild/easyconfigs/f/fonttools/fonttools-4.53.1-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..bf71a8f341f
--- /dev/null
+++ b/easybuild/easyconfigs/f/fonttools/fonttools-4.53.1-GCCcore-12.3.0.eb
@@ -0,0 +1,27 @@
+easyblock = 'PythonPackage'
+
+name = 'fonttools'
+version = '4.53.1'
+
+homepage = 'https://python-markdown.github.io/'
+description = """
+fontTools is a library for manipulating fonts, written in Python.
+The project includes the TTX tool, that can convert TrueType and OpenType fonts to and from an XML text format,
+which is also called TTX.
+It supports TrueType, OpenType, AFM and to an extent Type 1 and some Mac-specific formats."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['e128778a8e9bc11159ce5447f76766cefbd876f44bd79aff030287254e4752c4']
+
+builddependencies = [('binutils', '2.40')]
+dependencies = [('Python', '3.11.3')]
+
+download_dep_fail = True
+sanity_pip_check = True
+use_pip = True
+
+options = {'modulename': 'fontTools'}
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/f/fonttools/fonttools-4.53.1-GCCcore-13.2.0.eb b/easybuild/easyconfigs/f/fonttools/fonttools-4.53.1-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..0e8a62e088b
--- /dev/null
+++ b/easybuild/easyconfigs/f/fonttools/fonttools-4.53.1-GCCcore-13.2.0.eb
@@ -0,0 +1,27 @@
+easyblock = 'PythonPackage'
+
+name = 'fonttools'
+version = '4.53.1'
+
+homepage = 'https://python-markdown.github.io/'
+description = """
+fontTools is a library for manipulating fonts, written in Python.
+The project includes the TTX tool, that can convert TrueType and OpenType fonts to and from an XML text format,
+which is also called TTX.
+It supports TrueType, OpenType, AFM and to an extent Type 1 and some Mac-specific formats."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['e128778a8e9bc11159ce5447f76766cefbd876f44bd79aff030287254e4752c4']
+
+builddependencies = [('binutils', '2.40')]
+dependencies = [('Python', '3.11.5')]
+
+download_dep_fail = True
+sanity_pip_check = True
+use_pip = True
+
+options = {'modulename': 'fontTools'}
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/f/fonttools/fonttools-4.53.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/f/fonttools/fonttools-4.53.1-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..ed395cfd0ee
--- /dev/null
+++ b/easybuild/easyconfigs/f/fonttools/fonttools-4.53.1-GCCcore-13.3.0.eb
@@ -0,0 +1,27 @@
+easyblock = 'PythonPackage'
+
+name = 'fonttools'
+version = '4.53.1'
+
+homepage = 'https://python-markdown.github.io/'
+description = """
+fontTools is a library for manipulating fonts, written in Python.
+The project includes the TTX tool, that can convert TrueType and OpenType fonts to and from an XML text format,
+which is also called TTX.
+It supports TrueType, OpenType, AFM and to an extent Type 1 and some Mac-specific formats."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['e128778a8e9bc11159ce5447f76766cefbd876f44bd79aff030287254e4752c4']
+
+builddependencies = [('binutils', '2.42')]
+dependencies = [('Python', '3.12.3')]
+
+download_dep_fail = True
+sanity_pip_check = True
+use_pip = True
+
+options = {'modulename': 'fontTools'}
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/f/foss/foss-2024.05.eb b/easybuild/easyconfigs/f/foss/foss-2024.05.eb
new file mode 100644
index 00000000000..0d3f8fac41a
--- /dev/null
+++ b/easybuild/easyconfigs/f/foss/foss-2024.05.eb
@@ -0,0 +1,28 @@
+easyblock = 'Toolchain'
+
+name = 'foss'
+version = '2024.05'
+
+homepage = 'https://easybuild.readthedocs.io/en/master/Common-toolchains.html#foss-toolchain'
+description = """GNU Compiler Collection (GCC) based compiler toolchain, including
+ OpenMPI for MPI support, OpenBLAS (BLAS and LAPACK support), FFTW and ScaLAPACK."""
+
+toolchain = SYSTEM
+
+local_gccver = '13.3.0'
+
+# toolchain used to build foss dependencies
+local_comp_mpi_tc = ('gompi', version)
+
+# we need GCC and OpenMPI as explicit dependencies instead of gompi toolchain
+# because of toolchain preparation functions
+dependencies = [
+ ('GCC', local_gccver),
+ ('OpenMPI', '5.0.3', '', ('GCC', local_gccver)),
+ ('FlexiBLAS', '3.4.4', '', ('GCC', local_gccver)),
+ ('FFTW', '3.3.10', '', ('GCC', local_gccver)),
+ ('FFTW.MPI', '3.3.10', '', local_comp_mpi_tc),
+ ('ScaLAPACK', '2.2.0', '-fb', local_comp_mpi_tc),
+]
+
+moduleclass = 'toolchain'
diff --git a/easybuild/easyconfigs/f/foss/foss-2024a.eb b/easybuild/easyconfigs/f/foss/foss-2024a.eb
new file mode 100644
index 00000000000..7e9a4ba5112
--- /dev/null
+++ b/easybuild/easyconfigs/f/foss/foss-2024a.eb
@@ -0,0 +1,28 @@
+easyblock = 'Toolchain'
+
+name = 'foss'
+version = '2024a'
+
+homepage = 'https://easybuild.readthedocs.io/en/master/Common-toolchains.html#foss-toolchain'
+description = """GNU Compiler Collection (GCC) based compiler toolchain, including
+ OpenMPI for MPI support, OpenBLAS (BLAS and LAPACK support), FFTW and ScaLAPACK."""
+
+toolchain = SYSTEM
+
+local_gccver = '13.3.0'
+
+# toolchain used to build foss dependencies
+local_comp_mpi_tc = ('gompi', version)
+
+# we need GCC and OpenMPI as explicit dependencies instead of gompi toolchain
+# because of toolchain preparation functions
+dependencies = [
+ ('GCC', local_gccver),
+ ('OpenMPI', '5.0.3', '', ('GCC', local_gccver)),
+ ('FlexiBLAS', '3.4.4', '', ('GCC', local_gccver)),
+ ('FFTW', '3.3.10', '', ('GCC', local_gccver)),
+ ('FFTW.MPI', '3.3.10', '', local_comp_mpi_tc),
+ ('ScaLAPACK', '2.2.0', '-fb', local_comp_mpi_tc),
+]
+
+moduleclass = 'toolchain'
diff --git a/easybuild/easyconfigs/f/fplll/fplll-5.4.5-GCCcore-13.2.0.eb b/easybuild/easyconfigs/f/fplll/fplll-5.4.5-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..5184f1f3c1e
--- /dev/null
+++ b/easybuild/easyconfigs/f/fplll/fplll-5.4.5-GCCcore-13.2.0.eb
@@ -0,0 +1,32 @@
+easyblock = 'ConfigureMake'
+
+name = 'fplll'
+version = '5.4.5'
+
+homepage = 'https://github.com/fplll/fplll'
+description = """fplll contains implementations of several lattice algorithms.
+ The implementation relies on floating-point orthogonalization, and the 1982 paper from
+Lenstra, Lenstra Jr. and Lovasz (LLL) is central to the code, hence the name."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+source_urls = ['https://github.com/fplll/fplll/releases/download/%(version)s']
+sources = [SOURCE_TAR_GZ]
+checksums = ['76d3778f0326597ed7505bab19493a9bf6b73a5c5ca614e8fb82f42105c57d00']
+
+builddependencies = [
+ ('binutils', '2.40'),
+]
+
+dependencies = [
+ ('MPFR', '4.2.1'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/fplll', 'lib/libfplll.%s' % SHLIB_EXT, 'include/fplll.h'],
+ 'dirs': ['share']
+}
+
+sanity_check_commands = ["fplll --help"]
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/f/fpylll/fpylll-0.6.1-foss-2023b.eb b/easybuild/easyconfigs/f/fpylll/fpylll-0.6.1-foss-2023b.eb
new file mode 100644
index 00000000000..5361252deb7
--- /dev/null
+++ b/easybuild/easyconfigs/f/fpylll/fpylll-0.6.1-foss-2023b.eb
@@ -0,0 +1,26 @@
+easyblock = 'PythonPackage'
+
+name = 'fpylll'
+version = '0.6.1'
+
+homepage = 'https://pypi.org/project/fpylll'
+description = "A Python wrapper for fplll."
+
+# can be moved down to gfbf in more recent toolchain versions
+toolchain = {'name': 'foss', 'version': '2023b'}
+
+sources = [SOURCE_TAR_GZ]
+checksums = ['dfd9529a26c50993a2a716177debd7994312219070574cad31b35b4f0c040a19']
+
+dependencies = [
+ ('Python', '3.11.5'),
+ ('SciPy-bundle', '2023.11'),
+ ('cysignals', '1.11.4'),
+ ('fplll', '5.4.5'),
+]
+
+use_pip = True
+download_dep_fail = True
+sanity_pip_check = True
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/f/freetype/freetype-2.13.2-GCCcore-13.3.0.eb b/easybuild/easyconfigs/f/freetype/freetype-2.13.2-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..1c6fa03dfa0
--- /dev/null
+++ b/easybuild/easyconfigs/f/freetype/freetype-2.13.2-GCCcore-13.3.0.eb
@@ -0,0 +1,43 @@
+name = 'freetype'
+version = '2.13.2'
+
+homepage = 'https://www.freetype.org'
+
+description = """
+ FreeType 2 is a software font engine that is designed to be small, efficient,
+ highly customizable, and portable while capable of producing high-quality
+ output (glyph images). It can be used in graphics libraries, display servers,
+ font conversion tools, text image generation tools, and many other products
+ as well.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = [
+ GNU_SAVANNAH_SOURCE,
+ SOURCEFORGE_SOURCE,
+]
+sources = [SOURCE_TAR_GZ]
+checksums = ['1ac27e16c134a7f2ccea177faba19801131116fd682efc1f5737037c5db224b5']
+
+builddependencies = [('binutils', '2.42')]
+
+dependencies = [
+ ('bzip2', '1.0.8'),
+ ('libpng', '1.6.43'),
+ ('zlib', '1.3.1'),
+ ('Brotli', '1.1.0'),
+]
+
+configopts = '--enable-freetype-config --with-harfbuzz=no'
+
+sanity_check_paths = {
+ 'files': ['bin/freetype-config', 'lib/libfreetype.a',
+ 'lib/libfreetype.%s' % SHLIB_EXT, 'lib/pkgconfig/freetype2.pc'],
+ 'dirs': ['include/freetype2'],
+}
+
+sanity_check_commands = ["freetype-config --help"]
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/f/freud-analysis/freud-analysis-2.6.2-foss-2021a.eb b/easybuild/easyconfigs/f/freud-analysis/freud-analysis-2.6.2-foss-2021a.eb
new file mode 100644
index 00000000000..8274a709f9f
--- /dev/null
+++ b/easybuild/easyconfigs/f/freud-analysis/freud-analysis-2.6.2-foss-2021a.eb
@@ -0,0 +1,46 @@
+##
+# Author: Robert Mijakovic
+##
+easyblock = 'PythonBundle'
+
+name = 'freud-analysis'
+version = '2.6.2'
+
+homepage = 'https://github.com/glotzerlab/freud'
+description = """The freud Python library provides a simple, flexible, powerful set of tools for analyzing trajectories
+obtained from molecular dynamics or Monte Carlo simulations. High performance, parallelized C++ is used to compute
+standard tools such as radial distribution functions, correlation functions, order parameters, and clusters, as well as
+original analysis methods including potentials of mean force and torque (PMFTs) and local environment matching. The
+freud library supports many input formats and outputs NumPy arrays, enabling integration with the scientific Python
+ecosystem for many typical materials science workflows."""
+
+toolchain = {'name': 'foss', 'version': '2021a'}
+
+builddependencies = [
+ ('pkg-config', '0.29.2'),
+ ('CMake', '3.20.1'),
+ ('scikit-build', '0.11.1'),
+]
+
+dependencies = [
+ ('Python', '3.9.5'),
+ ('SciPy-bundle', '2021.05'),
+ ('tbb', '2020.3'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('rowan', '1.3.0.post1', {
+ 'source_urls': ['https://pypi.python.org/packages/source/r/rowan'],
+ 'checksums': ['8f1d0e3279f80c6ae1ee68a90955301853b5586f64e42ba4c27d85504d525e4f'],
+ }),
+ (name, version, {
+ 'modulename': 'freud',
+ 'source_urls': ['https://pypi.python.org/packages/source/f/freud-analysis'],
+ 'checksums': ['1cc1b95a8a386e0ac7162246b42be800cfdaf335684a614aae02841aa4df6614'],
+ }),
+]
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/f/fsm-lite/fsm-lite-1.0-GCCcore-12.2.0.eb b/easybuild/easyconfigs/f/fsm-lite/fsm-lite-1.0-GCCcore-12.2.0.eb
new file mode 100644
index 00000000000..65a1167d998
--- /dev/null
+++ b/easybuild/easyconfigs/f/fsm-lite/fsm-lite-1.0-GCCcore-12.2.0.eb
@@ -0,0 +1,36 @@
+# This easyconfig was created by the BEAR Software team at the University of Birmingham.
+easyblock = "MakeCp"
+
+name = 'fsm-lite'
+version = '1.0'
+
+homepage = "https://github.com/nvalimak/fsm-lite"
+description = """A singe-core implemetation of frequency-based substring mining."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.2.0'}
+
+source_urls = ['https://github.com/nvalimak/%(name)s/archive/']
+sources = ['v%(version)s-stable.tar.gz']
+checksums = ['f781a9fbab5265bd09b3b5b7e1cba904582ec201c3d30baed36e28a03de3ac61']
+
+builddependencies = [
+ ('CMake', '3.24.3'),
+ ('binutils', '2.39'),
+]
+
+dependencies = [
+ ('sdsl-lite', '2.0.3'),
+]
+
+prebuildopts = "sed -i '1s/.*/SDSL_INSTALL_PREFIX=${EBROOTSDSLMINLITE}/' Makefile && make depend &&"
+
+files_to_copy = [(['fsm-lite'], 'bin')]
+
+sanity_check_paths = {
+ 'files': ['bin/fsm-lite'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["fsm-lite --help 2>&1 | grep usage"]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/f/fsom/fsom-20151117-GCCcore-12.2.0.eb b/easybuild/easyconfigs/f/fsom/fsom-20151117-GCCcore-12.2.0.eb
new file mode 100644
index 00000000000..b9de5b70eff
--- /dev/null
+++ b/easybuild/easyconfigs/f/fsom/fsom-20151117-GCCcore-12.2.0.eb
@@ -0,0 +1,43 @@
+# Updated: Denis Kristak (INUITS)
+# Updated: Petr Král (INUITS)
+
+easyblock = 'ConfigureMake'
+
+name = 'fsom'
+version = '20151117'
+local_commit = '56695e1'
+
+homepage = 'https://github.com/ekg/fsom'
+description = """A tiny C library for managing SOM (Self-Organizing Maps) neural networks."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.2.0'}
+
+github_account = 'ekg'
+
+source_urls = [GITHUB_SOURCE]
+sources = ['%s.tar.gz' % local_commit]
+
+patches = [
+ '%(name)s-%(version)s_build-libs.patch',
+ '%(name)s-20141119_fix-abs-overload.patch'
+]
+
+checksums = [
+ '1ba3360985be781bb9f79d974705c86e7bb0719cb83638955e113b5dd83ec8dd', # 56695e1.tar.gz
+ 'd4e19b2db054cc5d3153ceba88ad2b11e5143e3a3c243103ce1e6994a83c43fe', # fsom-20151117_build-libs.patch
+ '54dd6ae76033535fe1b0231142d8bd41a815950dc3fd269dc321f698d4973639', # fsom-20141119_fix-abs-overload.patch
+]
+
+builddependencies = [('binutils', '2.39')]
+
+skipsteps = ['configure']
+
+installopts = 'PREFIX=%(installdir)s '
+
+sanity_check_paths = {
+ 'files': ['bin/%(name)s', 'lib/libfsom.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+sanity_check_commands = ["%(name)s --help"]
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/f/funannotate/funannotate-1.8.13-foss-2021b.eb b/easybuild/easyconfigs/f/funannotate/funannotate-1.8.13-foss-2021b.eb
index 78068a53cc2..18991c61de3 100644
--- a/easybuild/easyconfigs/f/funannotate/funannotate-1.8.13-foss-2021b.eb
+++ b/easybuild/easyconfigs/f/funannotate/funannotate-1.8.13-foss-2021b.eb
@@ -9,6 +9,7 @@ description = """funannotate is a pipeline for genome annotation (built specific
toolchain = {'name': 'foss', 'version': '2021b'}
+# see also https://github.com/nextgenusfs/funannotate/blob/master/docs/dependencies.rst
dependencies = [
('Python', '3.9.6'),
('SciPy-bundle', '2021.10'),
@@ -17,6 +18,41 @@ dependencies = [
('matplotlib', '3.4.3'),
('scikit-learn', '1.0.1'),
('Seaborn', '0.11.2'),
+ ('tbl2asn', '20220427', '-linux64', SYSTEM),
+ ('DBD-mysql', '4.050'),
+ ('CodingQuarry', '2.0'),
+ ('Trinity', '2.15.1'),
+ ('AUGUSTUS', '3.4.0'),
+ ('BamTools', '2.5.2'),
+ ('BEDTools', '2.30.0'),
+ ('BLAST+', '2.12.0'), # provides makeblastdb, tblastn
+ ('BLAT', '3.7'),
+ ('DIAMOND', '2.0.13'),
+ ('eggnog-mapper', '2.1.7'),
+ ('ETE', '3.1.2'),
+ ('Exonerate', '2.4.0'),
+ ('FASTA', '36.3.8i'),
+ ('GlimmerHMM', '3.0.4c'),
+ ('GMAP-GSNAP', '2021-12-17'), # provides gmap
+ ('GeneMark-ET', '4.71'), # provides gmes_petap.pl
+ ('HISAT2', '2.2.1'),
+ ('HMMER', '3.3.2'), # provides hmmscan, hmmsearch
+ ('kallisto', '0.48.0'),
+ ('MAFFT', '7.490', '-with-extensions'),
+ ('minimap2', '2.22'),
+ ('pigz', '2.6'),
+ ('Proteinortho', '6.2.3'),
+ ('Kent_tools', '422'), # provides pslCDnaFilter
+ ('Salmon', '1.4.0'),
+ ('SAMtools', '1.14'),
+ ('SignalP', '6.0g', '-fast'),
+ ('SNAP', '2.0.1'),
+ ('StringTie', '2.2.1'),
+ ('tRNAscan-SE', '2.0.12'),
+ ('tantan', '40'),
+ ('trimAl', '1.4.1'),
+ ('Trimmomatic', '0.39', '-Java-11', SYSTEM),
+ ('BioPerl', '1.7.8'),
]
use_pip = True
@@ -38,7 +74,10 @@ sanity_check_paths = {
'dirs': [],
}
-sanity_check_commands = ["funannotate --help 2>&1 | grep 'Usage:[ ]*funannotate'"]
+sanity_check_commands = [
+ "funannotate --help 2>&1 | grep 'Usage:[ ]*funannotate'",
+ "funannotate check --show-versions",
+]
sanity_pip_check = True
diff --git a/easybuild/easyconfigs/f/funannotate/funannotate-1.8.17-foss-2023a.eb b/easybuild/easyconfigs/f/funannotate/funannotate-1.8.17-foss-2023a.eb
new file mode 100644
index 00000000000..ed9d5580415
--- /dev/null
+++ b/easybuild/easyconfigs/f/funannotate/funannotate-1.8.17-foss-2023a.eb
@@ -0,0 +1,94 @@
+easyblock = 'PythonBundle'
+
+name = 'funannotate'
+version = '1.8.17'
+
+homepage = 'https://funannotate.readthedocs.io'
+description = """funannotate is a pipeline for genome annotation (built specifically for fungi, but will also work
+ with higher eukaryotes)"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+# see also https://github.com/nextgenusfs/funannotate/blob/master/docs/dependencies.rst
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('Biopython', '1.83'),
+ ('GOATOOLS', '1.4.5'),
+ ('matplotlib', '3.7.2'),
+ ('scikit-learn', '1.3.1'),
+ ('Seaborn', '0.13.2'),
+ ('tbl2asn', '20230713'),
+ ('DBD-mysql', '4.050'),
+ ('CodingQuarry', '2.0'),
+ ('Trinity', '2.15.2'),
+ ('AUGUSTUS', '3.5.0'),
+ ('BamTools', '2.5.2'),
+ ('BEDTools', '2.31.0'),
+ ('BLAST+', '2.14.1'), # provides makeblastdb, tblastn
+ ('BLAT', '3.7'),
+ ('DIAMOND', '2.1.8'),
+ ('eggnog-mapper', '2.1.12'),
+ ('ETE', '3.1.3'),
+ ('Exonerate', '2.4.0'),
+ ('FASTA', '36.3.8i'),
+ ('GlimmerHMM', '3.0.4c'),
+ ('GMAP-GSNAP', '2023-04-20'), # provides gmap
+ ('GeneMark-ET', '4.72'), # provides gmes_petap.pl
+ ('HISAT2', '2.2.1'),
+ ('HMMER', '3.4'), # provides hmmscan, hmmsearch
+ ('kallisto', '0.51.1'),
+ ('MAFFT', '7.520', '-with-extensions'),
+ ('minimap2', '2.26'),
+ ('pigz', '2.8'),
+ ('Proteinortho', '6.3.2'),
+ ('Kent_tools', '468'), # provides pslCDnaFilter
+ ('Salmon', '1.10.3'),
+ ('SAMtools', '1.18'),
+ ('SignalP', '6.0h', '-fast'),
+ ('SNAP-HMM', '20221022'),
+ ('StringTie', '2.2.3'),
+ ('tRNAscan-SE', '2.0.12'),
+ ('tantan', '50'),
+ ('trimAl', '1.4.1'),
+ ('Trimmomatic', '0.39', '-Java-11', SYSTEM),
+ ('BioPerl', '1.7.8'),
+ ('EVidenceModeler', '2.1.0'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('distro', '1.9.0', {
+ 'checksums': ['2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed'],
+ }),
+ ('natsort', '8.4.0', {
+ 'checksums': ['45312c4a0e5507593da193dedd04abb1469253b601ecaf63445ad80f0a1ea581'],
+ }),
+ (name, version, {
+ 'checksums': ['bdadfd7a5636383c1c40c26dab37c5908a77e8c4064adced84f1ba9e86187a04'],
+ 'preinstallopts': (
+ """sed -i 's|REQUIRES_PYTHON = ">=3.6.0, <3.10"|REQUIRES_PYTHON = ">=3.6.0"|' setup.py && """
+ """sed -i 's|"biopython<1.80",|"biopython",|' setup.py && """
+ )
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/funannotate'],
+ 'dirs': [],
+}
+
+modextrapaths = {
+ 'GENEMARK_PATH': '$EBROOTGENEMARKMINET',
+}
+
+sanity_check_commands = [
+ "funannotate --help 2>&1 | grep 'Usage:[ ]*funannotate'",
+ "funannotate check --show-versions",
+]
+
+
+sanity_pip_check = True
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/g/GATE/GATE-9.4-foss-2023a.eb b/easybuild/easyconfigs/g/GATE/GATE-9.4-foss-2023a.eb
new file mode 100644
index 00000000000..6fd245d2079
--- /dev/null
+++ b/easybuild/easyconfigs/g/GATE/GATE-9.4-foss-2023a.eb
@@ -0,0 +1,29 @@
+name = 'GATE'
+version = '9.4'
+
+homepage = 'http://www.opengatecollaboration.org/'
+description = """GATE is an advanced opensource software developed by the international OpenGATE collaboration and
+ dedicated to the numerical simulations in medical imaging. It currently supports simulations of Emission Tomography
+ (Positron Emission Tomography - PET and Single Photon Emission Computed Tomography - SPECT), and Computed Tomography"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+source_urls = ['https://github.com/OpenGATE/Gate/archive/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['96c53f6ab1b25c0e540d8f9564bce0049371b378de80a7118a0ff8834c6c117c']
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+]
+dependencies = [
+ ('Geant4', '11.2.2'),
+ ('CLHEP', '2.4.7.1'),
+ ('ROOT', '6.30.06'),
+]
+
+preinstallopts = "sed -i 's|/usr/local/bin|%(installdir)s/bin|g' Makefile &&"
+
+# enable extra capabilities (Davis requires Geant4 10.04 or newer)
+configopts = "-DGATE_USE_OPTICAL=1 -DGATE_USE_DAVIS=1"
+
+moduleclass = 'cae'
diff --git a/easybuild/easyconfigs/g/GATK/GATK-4.3.0.0-GCCcore-12.3.0-Java-11.eb b/easybuild/easyconfigs/g/GATK/GATK-4.3.0.0-GCCcore-12.3.0-Java-11.eb
new file mode 100644
index 00000000000..c5247c1cf5a
--- /dev/null
+++ b/easybuild/easyconfigs/g/GATK/GATK-4.3.0.0-GCCcore-12.3.0-Java-11.eb
@@ -0,0 +1,55 @@
+##
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+#
+# Copyright:: Copyright 2012-2013 Cyprus Institute / CaSToRC, University of Luxembourg / LCSB
+# Authors:: George Tsouloupas , Fotis Georgatos ,
+# Kenneth Hoste (UGent)
+# License:: MIT/GPL
+# $Id$
+#
+# This work implements a part of the HPCBIOS project and is a component of the policy:
+# http://hpcbios.readthedocs.org/en/latest/HPCBIOS_2012-94.html
+# Modified by: Adam Huffman, Jonas Demeulemeester
+# The Francis Crick Institute
+# Modified for version 4.0.5.1 by: Ruben van Dijk, University of Groningen
+# Modified for version 4.2.3.0 by: J. Sassmannshausen / GSTT
+# Modified for version 4.4.0.0 by: Thomas Eylenbosch / Gluo NV
+##
+
+easyblock = 'Tarball'
+
+name = 'GATK'
+version = '4.3.0.0'
+versionsuffix = '-Java-%(javaver)s'
+
+homepage = 'https://www.broadinstitute.org/gatk/'
+description = """The Genome Analysis Toolkit or GATK is a software package developed at the Broad Institute
+ to analyse next-generation resequencing data. The toolkit offers a wide variety of tools,
+ with a primary focus on variant discovery and genotyping as well as strong emphasis on
+ data quality assurance. Its robust architecture, powerful processing engine and
+ high-performance computing features make it capable of taking on projects of any size."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = ['https://github.com/broadinstitute/gatk/releases/download/%(version)s/']
+sources = ['gatk-%(version)s.zip']
+checksums = ['e2c27229b34c3e22445964adf00639a0909887bbfcc040f6910079177bc6e2dd']
+
+dependencies = [
+ ('Java', '11', '', SYSTEM),
+ ('Python', '3.11.3'),
+]
+
+modextrapaths = {'PATH': ''}
+
+sanity_check_paths = {
+ 'files': ['gatk'],
+ 'dirs': [],
+}
+
+sanity_check_commands = [
+ "gatk --help",
+ "gatk --list",
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/g/GATK/GATK-4.6.0.0-GCCcore-13.2.0-Java-17.eb b/easybuild/easyconfigs/g/GATK/GATK-4.6.0.0-GCCcore-13.2.0-Java-17.eb
new file mode 100644
index 00000000000..1c700e8eab0
--- /dev/null
+++ b/easybuild/easyconfigs/g/GATK/GATK-4.6.0.0-GCCcore-13.2.0-Java-17.eb
@@ -0,0 +1,55 @@
+##
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+#
+# Copyright:: Copyright 2012-2013 Cyprus Institute / CaSToRC, University of Luxembourg / LCSB
+# Authors:: George Tsouloupas , Fotis Georgatos ,
+# Kenneth Hoste (UGent)
+# License:: MIT/GPL
+# $Id$
+#
+# This work implements a part of the HPCBIOS project and is a component of the policy:
+# http://hpcbios.readthedocs.org/en/latest/HPCBIOS_2012-94.html
+# Modified by: Adam Huffman, Jonas Demeulemeester
+# The Francis Crick Institute
+# Modified for version 4.0.5.1 by: Ruben van Dijk, University of Groningen
+# Modified for version 4.2.3.0 by: J. Sassmannshausen / GSTT
+# Modified for version 4.4.0.0 by: Thomas Eylenbosch / Gluo NV
+##
+
+easyblock = 'Tarball'
+
+name = 'GATK'
+version = '4.6.0.0'
+versionsuffix = '-Java-%(javaver)s'
+
+homepage = 'https://www.broadinstitute.org/gatk/'
+description = """The Genome Analysis Toolkit or GATK is a software package developed at the Broad Institute
+ to analyse next-generation resequencing data. The toolkit offers a wide variety of tools,
+ with a primary focus on variant discovery and genotyping as well as strong emphasis on
+ data quality assurance. Its robust architecture, powerful processing engine and
+ high-performance computing features make it capable of taking on projects of any size."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+source_urls = ['https://github.com/broadinstitute/gatk/releases/download/%(version)s/']
+sources = ['gatk-%(version)s.zip']
+checksums = ['a5d31e34630f355e5a119894f2587fec47049fedff04300f6633c31ef14c3a66']
+
+dependencies = [
+ ('Java', '17', '', SYSTEM),
+ ('Python', '3.11.5'),
+]
+
+modextrapaths = {'PATH': ''}
+
+sanity_check_paths = {
+ 'files': ['gatk'],
+ 'dirs': [],
+}
+
+sanity_check_commands = [
+ "gatk --help",
+ "gatk --list",
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/g/GCC/GCC-13.3.0.eb b/easybuild/easyconfigs/g/GCC/GCC-13.3.0.eb
new file mode 100644
index 00000000000..3428422c0b9
--- /dev/null
+++ b/easybuild/easyconfigs/g/GCC/GCC-13.3.0.eb
@@ -0,0 +1,22 @@
+easyblock = 'Bundle'
+
+name = 'GCC'
+version = '13.3.0'
+
+homepage = 'https://gcc.gnu.org/'
+description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada,
+ as well as libraries for these languages (libstdc++, libgcj,...)."""
+
+toolchain = SYSTEM
+
+dependencies = [
+ ('GCCcore', version),
+ # binutils built on top of GCCcore, which was built on top of binutils (built with system toolchain)
+ ('binutils', '2.42', '', ('GCCcore', version)),
+]
+
+altroot = 'GCCcore'
+altversion = 'GCCcore'
+
+# this bundle serves as a compiler-only toolchain, so it should be marked as compiler (important for HMNS)
+moduleclass = 'compiler'
diff --git a/easybuild/easyconfigs/g/GCC/GCC-14.2.0.eb b/easybuild/easyconfigs/g/GCC/GCC-14.2.0.eb
new file mode 100644
index 00000000000..7126db6c52d
--- /dev/null
+++ b/easybuild/easyconfigs/g/GCC/GCC-14.2.0.eb
@@ -0,0 +1,22 @@
+easyblock = 'Bundle'
+
+name = 'GCC'
+version = '14.2.0'
+
+homepage = 'https://gcc.gnu.org/'
+description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada,
+ as well as libraries for these languages (libstdc++, libgcj,...)."""
+
+toolchain = SYSTEM
+
+dependencies = [
+ ('GCCcore', version),
+ # binutils built on top of GCCcore, which was built on top of binutils (built with system toolchain)
+ ('binutils', '2.42', '', ('GCCcore', version)),
+]
+
+altroot = 'GCCcore'
+altversion = 'GCCcore'
+
+# this bundle serves as a compiler-only toolchain, so it should be marked as compiler (important for HMNS)
+moduleclass = 'compiler'
diff --git a/easybuild/easyconfigs/g/GCCcore/GCCcore-13.3.0.eb b/easybuild/easyconfigs/g/GCCcore/GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..77acc578454
--- /dev/null
+++ b/easybuild/easyconfigs/g/GCCcore/GCCcore-13.3.0.eb
@@ -0,0 +1,65 @@
+easyblock = 'EB_GCC'
+
+name = 'GCCcore'
+version = '13.3.0'
+
+homepage = 'https://gcc.gnu.org/'
+description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada,
+ as well as libraries for these languages (libstdc++, libgcj,...)."""
+
+toolchain = SYSTEM
+
+source_urls = [
+ 'https://ftpmirror.gnu.org/gnu/gcc/gcc-%(version)s', # GCC auto-resolving HTTP mirror
+ 'https://sourceware.org/pub/gcc/releases/gcc-%(version)s', # fallback URL for GCC
+ 'https://ftpmirror.gnu.org/gnu/gmp', # idem for GMP
+ 'https://ftpmirror.gnu.org/gnu/mpfr', # idem for MPFR
+ 'https://ftpmirror.gnu.org/gnu/mpc', # idem for MPC
+ 'ftp://gcc.gnu.org/pub/gcc/infrastructure/', # GCC dependencies
+ 'https://gcc.gnu.org/pub/gcc/infrastructure/', # HTTPS mirror for GCC dependencies
+ 'https://libisl.sourceforge.io/', # fallback URL for isl
+ 'https://sourceware.org/pub/newlib/', # for newlib
+ 'https://github.com/MentorEmbedded/nvptx-tools/archive', # for nvptx-tools
+]
+sources = [
+ 'gcc-%(version)s.tar.gz',
+ 'gmp-6.3.0.tar.bz2',
+ 'mpfr-4.2.1.tar.bz2',
+ 'mpc-1.3.1.tar.gz',
+ 'isl-0.26.tar.bz2',
+ 'newlib-4.4.0.20231231.tar.gz',
+ {'download_filename': '9962793.tar.gz', 'filename': 'nvptx-tools-20240419.tar.gz'},
+]
+patches = [
+ 'GCCcore-6.2.0-fix-find-isl.patch',
+ 'GCCcore-9.3.0_gmp-c99.patch',
+ 'GCCcore-12.x_riscv_multiarch_support.patch',
+]
+checksums = [
+ {'gcc-13.3.0.tar.gz': '3a2b10cab86e32358fdac871546d57e2700e9bdb5875ef33fff5b601265b9e32'},
+ {'gmp-6.3.0.tar.bz2': 'ac28211a7cfb609bae2e2c8d6058d66c8fe96434f740cf6fe2e47b000d1c20cb'},
+ {'mpfr-4.2.1.tar.bz2': 'b9df93635b20e4089c29623b19420c4ac848a1b29df1cfd59f26cab0d2666aa0'},
+ {'mpc-1.3.1.tar.gz': 'ab642492f5cf882b74aa0cb730cd410a81edcdbec895183ce930e706c1c759b8'},
+ {'isl-0.26.tar.bz2': '5eac8664e9d67be6bd0bee5085d6840b8baf738c06814df47eaf4166d9776436'},
+ {'newlib-4.4.0.20231231.tar.gz': '0c166a39e1bf0951dfafcd68949fe0e4b6d3658081d6282f39aeefc6310f2f13'},
+ {'nvptx-tools-20240419.tar.gz': 'a4f65efe0ba960d75a18741faf2b93dbf51c2492a53b734d590ce5da4bd3f237'},
+ {'GCCcore-6.2.0-fix-find-isl.patch': '5ad909606d17d851c6ad629b4fddb6c1621844218b8d139fed18c502a7696c68'},
+ {'GCCcore-9.3.0_gmp-c99.patch': '0e135e1cc7cec701beea9d7d17a61bab34cfd496b4b555930016b98db99f922e'},
+ {'GCCcore-12.x_riscv_multiarch_support.patch': '92fc2b17b6943611a657904500fbf3db8160eddbcea320828d4a50a885e2778f'},
+]
+
+builddependencies = [
+ ('M4', '1.4.19'),
+ ('binutils', '2.42'),
+]
+
+languages = ['c', 'c++', 'fortran']
+
+withisl = True
+withnvptx = True
+
+# Perl is only required when building with NVPTX support
+if withnvptx:
+ osdependencies = ['perl']
+
+moduleclass = 'compiler'
diff --git a/easybuild/easyconfigs/g/GCCcore/GCCcore-14.2.0.eb b/easybuild/easyconfigs/g/GCCcore/GCCcore-14.2.0.eb
new file mode 100644
index 00000000000..438a848145f
--- /dev/null
+++ b/easybuild/easyconfigs/g/GCCcore/GCCcore-14.2.0.eb
@@ -0,0 +1,63 @@
+easyblock = 'EB_GCC'
+
+name = 'GCCcore'
+version = '14.2.0'
+
+homepage = 'https://gcc.gnu.org/'
+description = """The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada,
+ as well as libraries for these languages (libstdc++, libgcj,...)."""
+
+toolchain = SYSTEM
+
+source_urls = [
+ 'https://ftpmirror.gnu.org/gnu/gcc/gcc-%(version)s', # GCC auto-resolving HTTP mirror
+ 'https://sourceware.org/pub/gcc/releases/gcc-%(version)s', # fallback URL for GCC
+ 'https://ftpmirror.gnu.org/gnu/gmp', # idem for GMP
+ 'https://ftpmirror.gnu.org/gnu/mpfr', # idem for MPFR
+ 'https://ftpmirror.gnu.org/gnu/mpc', # idem for MPC
+ 'ftp://gcc.gnu.org/pub/gcc/infrastructure/', # GCC dependencies
+ 'https://gcc.gnu.org/pub/gcc/infrastructure/', # HTTPS mirror for GCC dependencies
+ 'https://libisl.sourceforge.io/', # fallback URL for isl
+ 'https://sourceware.org/pub/newlib/', # for newlib
+ 'https://github.com/MentorEmbedded/nvptx-tools/archive', # for nvptx-tools
+]
+sources = [
+ 'gcc-%(version)s.tar.gz',
+ 'gmp-6.3.0.tar.bz2',
+ 'mpfr-4.2.1.tar.bz2',
+ 'mpc-1.3.1.tar.gz',
+ 'isl-0.26.tar.bz2',
+ 'newlib-4.4.0.20231231.tar.gz',
+ {'download_filename': '3136cf9.tar.gz', 'filename': 'nvptx-tools-20240801.tar.gz'},
+]
+patches = [
+ 'GCCcore-6.2.0-fix-find-isl.patch',
+ 'GCCcore-9.3.0_gmp-c99.patch',
+]
+checksums = [
+ {'gcc-14.2.0.tar.gz': '7d376d445f93126dc545e2c0086d0f647c3094aae081cdb78f42ce2bc25e7293'},
+ {'gmp-6.3.0.tar.bz2': 'ac28211a7cfb609bae2e2c8d6058d66c8fe96434f740cf6fe2e47b000d1c20cb'},
+ {'mpfr-4.2.1.tar.bz2': 'b9df93635b20e4089c29623b19420c4ac848a1b29df1cfd59f26cab0d2666aa0'},
+ {'mpc-1.3.1.tar.gz': 'ab642492f5cf882b74aa0cb730cd410a81edcdbec895183ce930e706c1c759b8'},
+ {'isl-0.26.tar.bz2': '5eac8664e9d67be6bd0bee5085d6840b8baf738c06814df47eaf4166d9776436'},
+ {'newlib-4.4.0.20231231.tar.gz': '0c166a39e1bf0951dfafcd68949fe0e4b6d3658081d6282f39aeefc6310f2f13'},
+ {'nvptx-tools-20240801.tar.gz': 'a1106bf11b66d12e67194d8aa37196bb96996b614f44b3d3bc1b5854eefec03c'},
+ {'GCCcore-6.2.0-fix-find-isl.patch': '5ad909606d17d851c6ad629b4fddb6c1621844218b8d139fed18c502a7696c68'},
+ {'GCCcore-9.3.0_gmp-c99.patch': '0e135e1cc7cec701beea9d7d17a61bab34cfd496b4b555930016b98db99f922e'},
+]
+
+builddependencies = [
+ ('M4', '1.4.19'),
+ ('binutils', '2.42'),
+]
+
+languages = ['c', 'c++', 'fortran']
+
+withisl = True
+withnvptx = True
+
+# Perl is only required when building with NVPTX support
+if withnvptx:
+ osdependencies = ['perl']
+
+moduleclass = 'compiler'
diff --git a/easybuild/easyconfigs/g/GDAL/GDAL-3.6.2-foss-2022b.eb b/easybuild/easyconfigs/g/GDAL/GDAL-3.6.2-foss-2022b.eb
index c293d01731d..576d90e74d6 100644
--- a/easybuild/easyconfigs/g/GDAL/GDAL-3.6.2-foss-2022b.eb
+++ b/easybuild/easyconfigs/g/GDAL/GDAL-3.6.2-foss-2022b.eb
@@ -61,9 +61,9 @@ dependencies = [
# common configopts for static, shared library builds
_base_configopts = ' '.join([
'-DGDAL_USE_INTERNAL_LIBS=OFF',
- '-DArrow_DIR=$EBROOTARROW',
'-DGEOTIFF_INCLUDE_DIR=$EBROOTLIBGEOTIFF/include',
'-DPython_ROOT=$EBROOTPYTHON',
+ '-DGDAL_USE_MYSQL=OFF',
])
# iterative build for both static and shared libraries
diff --git a/easybuild/easyconfigs/g/GDAL/GDAL-3.7.1-foss-2023a.eb b/easybuild/easyconfigs/g/GDAL/GDAL-3.7.1-foss-2023a.eb
index 92bfe549e74..88e35cd4db4 100644
--- a/easybuild/easyconfigs/g/GDAL/GDAL-3.7.1-foss-2023a.eb
+++ b/easybuild/easyconfigs/g/GDAL/GDAL-3.7.1-foss-2023a.eb
@@ -61,7 +61,7 @@ dependencies = [
]
# iterative build for both static and shared libraries
-local_configopts_common = "-DGDAL_USE_INTERNAL_LIBS=OFF -DArrow_DIR=$EBROOTARROW "
+local_configopts_common = "-DGDAL_USE_INTERNAL_LIBS=OFF -DGDAL_USE_MYSQL=OFF "
local_configopts_common += "-DGEOTIFF_INCLUDE_DIR=$EBROOTLIBGEOTIFF/include -DPython_ROOT=$EBROOTPYTHON "
configopts = [
diff --git a/easybuild/easyconfigs/g/GDAL/GDAL-3.9.0-foss-2023b.eb b/easybuild/easyconfigs/g/GDAL/GDAL-3.9.0-foss-2023b.eb
new file mode 100644
index 00000000000..21299457516
--- /dev/null
+++ b/easybuild/easyconfigs/g/GDAL/GDAL-3.9.0-foss-2023b.eb
@@ -0,0 +1,81 @@
+easyblock = 'CMakeMake'
+
+name = 'GDAL'
+version = '3.9.0'
+
+homepage = 'https://www.gdal.org'
+description = """GDAL is a translator library for raster geospatial data formats that is released under an X/MIT style
+ Open Source license by the Open Source Geospatial Foundation. As a library, it presents a single abstract data model
+ to the calling application for all supported formats. It also comes with a variety of useful commandline utilities for
+ data translation and processing."""
+
+toolchain = {'name': 'foss', 'version': '2023b'}
+toolchainopts = {'usempi': True}
+
+source_urls = ['https://download.osgeo.org/%(namelower)s/%(version)s/']
+sources = [SOURCELOWER_TAR_XZ]
+patches = ['%(name)s-3.6.2_fix-python-CC-CXX.patch']
+checksums = [
+ {'gdal-3.9.0.tar.xz': '577f80e9d14ff7c90b6bfbc34201652b4546700c01543efb4f4c3050e0b3fda2'},
+ {'GDAL-3.6.2_fix-python-CC-CXX.patch': '859b874b0c8ff7626a76d51f008bf05b7f89a35b325bdd1d126d2364154acc63'},
+]
+
+builddependencies = [
+ ('CMake', '3.27.6'),
+ ('pkgconf', '2.0.3'),
+ ('Bison', '3.8.2'),
+]
+dependencies = [
+ ('Python', '3.11.5'),
+ ('netCDF', '4.9.2'),
+ ('expat', '2.5.0'),
+ ('GEOS', '3.12.1'),
+ ('SQLite', '3.43.1'),
+ ('libarchive', '3.7.2'),
+ ('libxml2', '2.11.5'),
+ ('libpng', '1.6.40'),
+ ('libjpeg-turbo', '3.0.1'),
+ ('LibTIFF', '4.6.0'),
+ ('zlib', '1.2.13'),
+ ('cURL', '8.3.0'),
+ ('PCRE', '8.45'),
+ ('PROJ', '9.3.1'),
+ ('libgeotiff', '1.7.3'),
+ ('SciPy-bundle', '2023.11'),
+ ('HDF5', '1.14.3'),
+ ('HDF', '4.2.16-2'),
+ ('Armadillo', '12.8.0'),
+ ('CFITSIO', '4.3.1'),
+ ('zstd', '1.5.5'),
+ ('giflib', '5.2.1'),
+ ('json-c', '0.17'),
+ ('Xerces-C++', '3.2.5'),
+ ('PCRE2', '10.42'),
+ ('OpenEXR', '3.2.0'),
+ ('Brunsli', '0.1'),
+ ('Qhull', '2020.2'),
+ ('LERC', '4.0.0'),
+ ('OpenJPEG', '2.5.0'),
+ ('SWIG', '4.1.1'),
+]
+
+# iterative build for both static and shared libraries
+local_configopts_common = "-DGDAL_USE_INTERNAL_LIBS=OFF -DGDAL_USE_MYSQL=OFF "
+local_configopts_common += "-DGEOTIFF_INCLUDE_DIR=$EBROOTLIBGEOTIFF/include -DPython_ROOT=$EBROOTPYTHON "
+
+configopts = [
+ local_configopts_common + "-DBUILD_SHARED_LIBS=OFF",
+ local_configopts_common
+]
+
+
+sanity_check_paths = {
+ 'files': ['lib/libgdal.a', 'lib/libgdal.%s' % SHLIB_EXT],
+ 'dirs': ['bin', 'include', 'lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = ["python -c 'import osgeo.%(namelower)s'"]
+
+modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'}
+
+moduleclass = 'data'
diff --git a/easybuild/easyconfigs/g/GDB/GDB-14.2-GCCcore-13.3.0.eb b/easybuild/easyconfigs/g/GDB/GDB-14.2-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..7cb65516ac9
--- /dev/null
+++ b/easybuild/easyconfigs/g/GDB/GDB-14.2-GCCcore-13.3.0.eb
@@ -0,0 +1,49 @@
+easyblock = 'ConfigureMake'
+
+name = 'GDB'
+version = '14.2'
+
+homepage = 'https://www.gnu.org/software/gdb/gdb.html'
+description = "The GNU Project Debugger"
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = [GNU_SOURCE]
+sources = [SOURCELOWER_TAR_XZ]
+checksums = ['2d4dd8061d8ded12b6c63f55e45344881e8226105f4d2a9b234040efa5ce7772']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('makeinfo', '7.1'),
+]
+
+dependencies = [
+ ('zlib', '1.3.1'),
+ ('libreadline', '8.2'),
+ ('ncurses', '6.5'),
+ ('expat', '2.6.2'),
+ ('Python', '3.12.3'),
+ ('ISL', '0.26'),
+ ('MPC', '1.3.1'),
+]
+
+preconfigopts = "mkdir obj && cd obj && "
+configure_cmd_prefix = '../'
+prebuildopts = "cd obj && "
+preinstallopts = prebuildopts
+
+configopts = '--with-system-zlib --with-system-readline --with-expat=$EBROOTEXPAT '
+configopts += '--with-python=$EBROOTPYTHON/bin/python --with-isl=$EBROOTISL --with-mpc=$EBROOTMPC '
+configopts += '--enable-tui --enable-plugins --disable-install-libbfd '
+
+sanity_check_paths = {
+ 'files': ['bin/gdb', 'bin/gdbserver'],
+ 'dirs': [],
+}
+
+sanity_check_commands = [
+ 'gdb --help',
+ 'gdbserver --help',
+]
+
+moduleclass = 'debugger'
diff --git a/easybuild/easyconfigs/g/GDMA/GDMA-2.3.3_20230603-GCC-12.3.0.eb b/easybuild/easyconfigs/g/GDMA/GDMA-2.3.3_20230603-GCC-12.3.0.eb
new file mode 100644
index 00000000000..d22b6d74689
--- /dev/null
+++ b/easybuild/easyconfigs/g/GDMA/GDMA-2.3.3_20230603-GCC-12.3.0.eb
@@ -0,0 +1,42 @@
+easyblock = 'ConfigureMake'
+
+name = 'GDMA'
+version = '2.3.3_20230603'
+_commit = '6b8e81ec'
+
+homepage = 'https://gitlab.com/anthonyjs/gdma'
+description = """
+The GDMA program carries out Distributed Multipole Analysis of wavefunctions
+calculated by the Gaussian system of programs or the Psi4 package, using the
+formatted checkpoint files that they can produce. The result is a set of
+multipole moments at sites defined by the user (usually at the positions of the
+atomic nuclei) which, given an accurate wavefunction, provide an accurate
+description of the electrostatic field of the molecule."""
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+
+sources = [{
+ 'source_urls': ['https://gitlab.com/anthonyjs/gdma/-/archive/'],
+ 'download_filename': '%s.tar.gz' % _commit,
+ 'filename': SOURCE_TAR_GZ,
+}]
+checksums = ['cc008932ae8768e6cbd444337a998e02b2100c123492c260d6020590e76bec1e']
+
+parallel = 1
+
+skipsteps = ['configure']
+
+# avoid using git to obtain the commit: not a cloned repo
+prebuildopts = """sed -i "/^log =/,/^commit =/c commit = '%s'" src/version.py && """ % _commit
+
+preinstallopts = 'mkdir -p %(installdir)s/bin && '
+installopts = 'INSTALL_DIR=%(installdir)s/bin'
+
+sanity_check_paths = {
+ 'files': ['bin/gdma'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ['echo|gdma']
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.1-GCCcore-10.2.0-CUDA-11.1.1.eb b/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.1-GCCcore-10.2.0-CUDA-11.1.1.eb
index c99c15a13e4..915d01b254a 100644
--- a/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.1-GCCcore-10.2.0-CUDA-11.1.1.eb
+++ b/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.1-GCCcore-10.2.0-CUDA-11.1.1.eb
@@ -27,21 +27,21 @@ dependencies = [
('Check', '0.15.2'),
]
-# This easyconfig only installs the library and binaries of GDRCopy. Please
-# keep in mind that GDRCopy also needs the following kernel modules at runtime:
-#
-# 1. Kernel module for GDRCopy: improves Host to GPU communication
-# https://github.com/NVIDIA/gdrcopy
-# RPM: 'gdrcopy-kmod', DEB: 'gdrdrv-dkms'
-# Requirements: version of GDRCopy kernel module (gdrdrv.ko) >= 2.0
-#
-# 2. (optional) Kernel module for GPUDirect RDMA: improves GPU to GPU communication
-# https://github.com/Mellanox/nv_peer_memory
-# RPM: 'nvidia_peer_memory'
-# Requirements: Mellanox HCA with MLNX_OFED 2.1
-#
-# These kernel modules are not listed as system dependencies to lower the system
-# requirements to build this easyconfig, as they are not needed for the build.
+build_info_msg = """This easyconfig only installs the library and binaries of GDRCopy. Please
+keep in mind that GDRCopy also needs the following kernel modules at runtime:
+
+1. Kernel module for GDRCopy: improves Host to GPU communication
+ https://github.com/NVIDIA/gdrcopy
+ RPM: 'gdrcopy-kmod', DEB: 'gdrdrv-dkms'
+ Requirements: version of GDRCopy kernel module (gdrdrv.ko) >= 2.0
+
+2. (optional) Kernel module for GPUDirect RDMA: improves GPU to GPU communication
+ https://github.com/Mellanox/nv_peer_memory
+ RPM: 'nvidia_peer_memory'
+ Requirements: Mellanox HCA with MLNX_OFED 2.1
+
+These kernel modules are not listed as system dependencies to lower the system
+requirements to build this easyconfig, as they are not needed for the build."""
skipsteps = ['configure']
diff --git a/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.1-GCCcore-10.2.0-CUDA-11.2.1.eb b/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.1-GCCcore-10.2.0-CUDA-11.2.1.eb
index accc04a5bde..443bbdd4af7 100644
--- a/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.1-GCCcore-10.2.0-CUDA-11.2.1.eb
+++ b/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.1-GCCcore-10.2.0-CUDA-11.2.1.eb
@@ -27,21 +27,21 @@ dependencies = [
('Check', '0.15.2'),
]
-# This easyconfig only installs the library and binaries of GDRCopy. Please
-# keep in mind that GDRCopy also needs the following kernel modules at runtime:
-#
-# 1. Kernel module for GDRCopy: improves Host to GPU communication
-# https://github.com/NVIDIA/gdrcopy
-# RPM: 'gdrcopy-kmod', DEB: 'gdrdrv-dkms'
-# Requirements: version of GDRCopy kernel module (gdrdrv.ko) >= 2.0
-#
-# 2. (optional) Kernel module for GPUDirect RDMA: improves GPU to GPU communication
-# https://github.com/Mellanox/nv_peer_memory
-# RPM: 'nvidia_peer_memory'
-# Requirements: Mellanox HCA with MLNX_OFED 2.1
-#
-# These kernel modules are not listed as system dependencies to lower the system
-# requirements to build this easyconfig, as they are not needed for the build.
+build_info_msg = """This easyconfig only installs the library and binaries of GDRCopy. Please
+keep in mind that GDRCopy also needs the following kernel modules at runtime:
+
+1. Kernel module for GDRCopy: improves Host to GPU communication
+ https://github.com/NVIDIA/gdrcopy
+ RPM: 'gdrcopy-kmod', DEB: 'gdrdrv-dkms'
+ Requirements: version of GDRCopy kernel module (gdrdrv.ko) >= 2.0
+
+2. (optional) Kernel module for GPUDirect RDMA: improves GPU to GPU communication
+ https://github.com/Mellanox/nv_peer_memory
+ RPM: 'nvidia_peer_memory'
+ Requirements: Mellanox HCA with MLNX_OFED 2.1
+
+These kernel modules are not listed as system dependencies to lower the system
+requirements to build this easyconfig, as they are not needed for the build."""
skipsteps = ['configure']
diff --git a/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.1-GCCcore-9.3.0-CUDA-11.0.2.eb b/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.1-GCCcore-9.3.0-CUDA-11.0.2.eb
index 864159cc441..3c02c5d5c02 100644
--- a/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.1-GCCcore-9.3.0-CUDA-11.0.2.eb
+++ b/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.1-GCCcore-9.3.0-CUDA-11.0.2.eb
@@ -27,21 +27,21 @@ dependencies = [
('Check', '0.15.2'),
]
-# This easyconfig only installs the library and binaries of GDRCopy. Please
-# keep in mind that GDRCopy also needs the following kernel modules at runtime:
-#
-# 1. Kernel module for GDRCopy: improves Host to GPU communication
-# https://github.com/NVIDIA/gdrcopy
-# RPM: 'gdrcopy-kmod', DEB: 'gdrdrv-dkms'
-# Requirements: version of GDRCopy kernel module (gdrdrv.ko) >= 2.0
-#
-# 2. (optional) Kernel module for GPUDirect RDMA: improves GPU to GPU communication
-# https://github.com/Mellanox/nv_peer_memory
-# RPM: 'nvidia_peer_memory'
-# Requirements: Mellanox HCA with MLNX_OFED 2.1
-#
-# These kernel modules are not listed as system dependencies to lower the system
-# requirements to build this easyconfig, as they are not needed for the build.
+build_info_msg = """This easyconfig only installs the library and binaries of GDRCopy. Please
+keep in mind that GDRCopy also needs the following kernel modules at runtime:
+
+1. Kernel module for GDRCopy: improves Host to GPU communication
+ https://github.com/NVIDIA/gdrcopy
+ RPM: 'gdrcopy-kmod', DEB: 'gdrdrv-dkms'
+ Requirements: version of GDRCopy kernel module (gdrdrv.ko) >= 2.0
+
+2. (optional) Kernel module for GPUDirect RDMA: improves GPU to GPU communication
+ https://github.com/Mellanox/nv_peer_memory
+ RPM: 'nvidia_peer_memory'
+ Requirements: Mellanox HCA with MLNX_OFED 2.1
+
+These kernel modules are not listed as system dependencies to lower the system
+requirements to build this easyconfig, as they are not needed for the build."""
skipsteps = ['configure']
diff --git a/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.2-GCCcore-10.2.0.eb b/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.2-GCCcore-10.2.0.eb
index 85810e2394d..f6498b61ef3 100644
--- a/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.2-GCCcore-10.2.0.eb
+++ b/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.2-GCCcore-10.2.0.eb
@@ -20,21 +20,21 @@ builddependencies = [
('pkg-config', '0.29.2'),
]
-# This easyconfig only installs the library of GDRCopy. Please keep in mind
-# that GDRCopy also needs the following kernel modules at runtime:
-#
-# 1. Kernel module for GDRCopy: improves Host to GPU communication
-# https://github.com/NVIDIA/gdrcopy
-# RPM: 'gdrcopy-kmod', DEB: 'gdrdrv-dkms'
-# Requirements: version of GDRCopy kernel module (gdrdrv.ko) >= 2.0
-#
-# 2. (optional) Kernel module for GPUDirect RDMA: improves GPU to GPU communication
-# https://github.com/Mellanox/nv_peer_memory
-# RPM: 'nvidia_peer_memory'
-# Requirements: Mellanox HCA with MLNX_OFED 2.1
-#
-# These kernel modules are not listed as system dependencies to lower the system
-# requirements to build this easyconfig, as they are not needed for the build.
+build_info_msg = """This easyconfig only installs the library of GDRCopy. Please keep in mind
+that GDRCopy also needs the following kernel modules at runtime:
+
+1. Kernel module for GDRCopy: improves Host to GPU communication
+ https://github.com/NVIDIA/gdrcopy
+ RPM: 'gdrcopy-kmod', DEB: 'gdrdrv-dkms'
+ Requirements: version of GDRCopy kernel module (gdrdrv.ko) >= 2.0
+
+2. (optional) Kernel module for GPUDirect RDMA: improves GPU to GPU communication
+ https://github.com/Mellanox/nv_peer_memory
+ RPM: 'nvidia_peer_memory'
+ Requirements: Mellanox HCA with MLNX_OFED 2.1
+
+These kernel modules are not listed as system dependencies to lower the system
+requirements to build this easyconfig, as they are not needed for the build."""
skipsteps = ['configure']
diff --git a/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.2-GCCcore-10.3.0.eb b/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.2-GCCcore-10.3.0.eb
index e9750d55747..cd3d0ee01c6 100644
--- a/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.2-GCCcore-10.3.0.eb
+++ b/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.2-GCCcore-10.3.0.eb
@@ -20,21 +20,21 @@ builddependencies = [
('pkg-config', '0.29.2'),
]
-# This easyconfig only installs the library of GDRCopy. Please keep in mind
-# that GDRCopy also needs the following kernel modules at runtime:
-#
-# 1. Kernel module for GDRCopy: improves Host to GPU communication
-# https://github.com/NVIDIA/gdrcopy
-# RPM: 'gdrcopy-kmod', DEB: 'gdrdrv-dkms'
-# Requirements: version of GDRCopy kernel module (gdrdrv.ko) >= 2.0
-#
-# 2. (optional) Kernel module for GPUDirect RDMA: improves GPU to GPU communication
-# https://github.com/Mellanox/nv_peer_memory
-# RPM: 'nvidia_peer_memory'
-# Requirements: Mellanox HCA with MLNX_OFED 2.1
-#
-# These kernel modules are not listed as system dependencies to lower the system
-# requirements to build this easyconfig, as they are not needed for the build.
+build_info_msg = """This easyconfig only installs the library of GDRCopy. Please keep in mind
+that GDRCopy also needs the following kernel modules at runtime:
+
+1. Kernel module for GDRCopy: improves Host to GPU communication
+ https://github.com/NVIDIA/gdrcopy
+ RPM: 'gdrcopy-kmod', DEB: 'gdrdrv-dkms'
+ Requirements: version of GDRCopy kernel module (gdrdrv.ko) >= 2.0
+
+2. (optional) Kernel module for GPUDirect RDMA: improves GPU to GPU communication
+ https://github.com/Mellanox/nv_peer_memory
+ RPM: 'nvidia_peer_memory'
+ Requirements: Mellanox HCA with MLNX_OFED 2.1
+
+These kernel modules are not listed as system dependencies to lower the system
+requirements to build this easyconfig, as they are not needed for the build."""
skipsteps = ['configure']
diff --git a/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.3-GCCcore-11.2.0.eb b/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.3-GCCcore-11.2.0.eb
index 7074317643e..b6d234c96b7 100644
--- a/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.3-GCCcore-11.2.0.eb
+++ b/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.3-GCCcore-11.2.0.eb
@@ -20,21 +20,21 @@ builddependencies = [
('pkg-config', '0.29.2'),
]
-# This easyconfig only installs the library of GDRCopy. Please keep in mind
-# that GDRCopy also needs the following kernel modules at runtime:
-#
-# 1. Kernel module for GDRCopy: improves Host to GPU communication
-# https://github.com/NVIDIA/gdrcopy
-# RPM: 'gdrcopy-kmod', DEB: 'gdrdrv-dkms'
-# Requirements: version of GDRCopy kernel module (gdrdrv.ko) >= 2.0
-#
-# 2. (optional) Kernel module for GPUDirect RDMA: improves GPU to GPU communication
-# https://github.com/Mellanox/nv_peer_memory
-# RPM: 'nvidia_peer_memory'
-# Requirements: Mellanox HCA with MLNX_OFED 2.1
-#
-# These kernel modules are not listed as system dependencies to lower the system
-# requirements to build this easyconfig, as they are not needed for the build.
+build_info_msg = """This easyconfig only installs the library of GDRCopy. Please keep in mind
+that GDRCopy also needs the following kernel modules at runtime:
+
+1. Kernel module for GDRCopy: improves Host to GPU communication
+ https://github.com/NVIDIA/gdrcopy
+ RPM: 'gdrcopy-kmod', DEB: 'gdrdrv-dkms'
+ Requirements: version of GDRCopy kernel module (gdrdrv.ko) >= 2.0
+
+2. (optional) Kernel module for GPUDirect RDMA: improves GPU to GPU communication
+ https://github.com/Mellanox/nv_peer_memory
+ RPM: 'nvidia_peer_memory'
+ Requirements: Mellanox HCA with MLNX_OFED 2.1
+
+These kernel modules are not listed as system dependencies to lower the system
+requirements to build this easyconfig, as they are not needed for the build."""
skipsteps = ['configure']
diff --git a/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.3-GCCcore-11.3.0.eb b/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.3-GCCcore-11.3.0.eb
index 43ffd95b310..d155d8ae274 100644
--- a/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.3-GCCcore-11.3.0.eb
+++ b/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.3-GCCcore-11.3.0.eb
@@ -20,21 +20,21 @@ builddependencies = [
('pkgconf', '1.8.0'),
]
-# This easyconfig only installs the library of GDRCopy. Please keep in mind
-# that GDRCopy also needs the following kernel modules at runtime:
-#
-# 1. Kernel module for GDRCopy: improves Host to GPU communication
-# https://github.com/NVIDIA/gdrcopy
-# RPM: 'gdrcopy-kmod', DEB: 'gdrdrv-dkms'
-# Requirements: version of GDRCopy kernel module (gdrdrv.ko) >= 2.0
-#
-# 2. (optional) Kernel module for GPUDirect RDMA: improves GPU to GPU communication
-# https://github.com/Mellanox/nv_peer_memory
-# RPM: 'nvidia_peer_memory'
-# Requirements: Mellanox HCA with MLNX_OFED 2.1
-#
-# These kernel modules are not listed as system dependencies to lower the system
-# requirements to build this easyconfig, as they are not needed for the build.
+build_info_msg = """This easyconfig only installs the library of GDRCopy. Please keep in mind
+that GDRCopy also needs the following kernel modules at runtime:
+
+1. Kernel module for GDRCopy: improves Host to GPU communication
+ https://github.com/NVIDIA/gdrcopy
+ RPM: 'gdrcopy-kmod', DEB: 'gdrdrv-dkms'
+ Requirements: version of GDRCopy kernel module (gdrdrv.ko) >= 2.0
+
+2. (optional) Kernel module for GPUDirect RDMA: improves GPU to GPU communication
+ https://github.com/Mellanox/nv_peer_memory
+ RPM: 'nvidia_peer_memory'
+ Requirements: Mellanox HCA with MLNX_OFED 2.1
+
+These kernel modules are not listed as system dependencies to lower the system
+requirements to build this easyconfig, as they are not needed for the build."""
skipsteps = ['configure']
diff --git a/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.3-GCCcore-12.2.0.eb b/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.3-GCCcore-12.2.0.eb
index c9c58812cf5..44973308cfc 100644
--- a/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.3-GCCcore-12.2.0.eb
+++ b/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.3-GCCcore-12.2.0.eb
@@ -20,21 +20,21 @@ builddependencies = [
('pkgconf', '1.9.3'),
]
-# This easyconfig only installs the library of GDRCopy. Please keep in mind
-# that GDRCopy also needs the following kernel modules at runtime:
-#
-# 1. Kernel module for GDRCopy: improves Host to GPU communication
-# https://github.com/NVIDIA/gdrcopy
-# RPM: 'gdrcopy-kmod', DEB: 'gdrdrv-dkms'
-# Requirements: version of GDRCopy kernel module (gdrdrv.ko) >= 2.0
-#
-# 2. (optional) Kernel module for GPUDirect RDMA: improves GPU to GPU communication
-# https://github.com/Mellanox/nv_peer_memory
-# RPM: 'nvidia_peer_memory'
-# Requirements: Mellanox HCA with MLNX_OFED 2.1
-#
-# These kernel modules are not listed as system dependencies to lower the system
-# requirements to build this easyconfig, as they are not needed for the build.
+build_info_msg = """This easyconfig only installs the library of GDRCopy. Please keep in mind
+that GDRCopy also needs the following kernel modules at runtime:
+
+1. Kernel module for GDRCopy: improves Host to GPU communication
+ https://github.com/NVIDIA/gdrcopy
+ RPM: 'gdrcopy-kmod', DEB: 'gdrdrv-dkms'
+ Requirements: version of GDRCopy kernel module (gdrdrv.ko) >= 2.0
+
+2. (optional) Kernel module for GPUDirect RDMA: improves GPU to GPU communication
+ https://github.com/Mellanox/nv_peer_memory
+ RPM: 'nvidia_peer_memory'
+ Requirements: Mellanox HCA with MLNX_OFED 2.1
+
+These kernel modules are not listed as system dependencies to lower the system
+requirements to build this easyconfig, as they are not needed for the build."""
skipsteps = ['configure']
diff --git a/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.3.1-GCCcore-12.3.0.eb b/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.3.1-GCCcore-12.3.0.eb
index 9eb358afb3f..b0c0227e952 100644
--- a/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.3.1-GCCcore-12.3.0.eb
+++ b/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.3.1-GCCcore-12.3.0.eb
@@ -20,21 +20,21 @@ builddependencies = [
('pkgconf', '1.9.5'),
]
-# This easyconfig only installs the library of GDRCopy. Please keep in mind
-# that GDRCopy also needs the following kernel modules at runtime:
-#
-# 1. Kernel module for GDRCopy: improves Host to GPU communication
-# https://github.com/NVIDIA/gdrcopy
-# RPM: 'gdrcopy-kmod', DEB: 'gdrdrv-dkms'
-# Requirements: version of GDRCopy kernel module (gdrdrv.ko) >= 2.0
-#
-# 2. (optional) Kernel module for GPUDirect RDMA: improves GPU to GPU communication
-# https://github.com/Mellanox/nv_peer_memory
-# RPM: 'nvidia_peer_memory'
-# Requirements: Mellanox HCA with MLNX_OFED 2.1
-#
-# These kernel modules are not listed as system dependencies to lower the system
-# requirements to build this easyconfig, as they are not needed for the build.
+build_info_msg = """This easyconfig only installs the library of GDRCopy. Please keep in mind
+that GDRCopy also needs the following kernel modules at runtime:
+
+1. Kernel module for GDRCopy: improves Host to GPU communication
+ https://github.com/NVIDIA/gdrcopy
+ RPM: 'gdrcopy-kmod', DEB: 'gdrdrv-dkms'
+ Requirements: version of GDRCopy kernel module (gdrdrv.ko) >= 2.0
+
+2. (optional) Kernel module for GPUDirect RDMA: improves GPU to GPU communication
+ https://github.com/Mellanox/nv_peer_memory
+ RPM: 'nvidia_peer_memory'
+ Requirements: Mellanox HCA with MLNX_OFED 2.1
+
+These kernel modules are not listed as system dependencies to lower the system
+requirements to build this easyconfig, as they are not needed for the build."""
skipsteps = ['configure']
diff --git a/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.4-GCCcore-13.2.0.eb b/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.4-GCCcore-13.2.0.eb
index d871eaf60d3..56d6902c8a7 100644
--- a/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.4-GCCcore-13.2.0.eb
+++ b/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.4-GCCcore-13.2.0.eb
@@ -20,21 +20,21 @@ builddependencies = [
('pkgconf', '2.0.3'),
]
-# This easyconfig only installs the library of GDRCopy. Please keep in mind
-# that GDRCopy also needs the following kernel modules at runtime:
-#
-# 1. Kernel module for GDRCopy: improves Host to GPU communication
-# https://github.com/NVIDIA/gdrcopy
-# RPM: 'gdrcopy-kmod', DEB: 'gdrdrv-dkms'
-# Requirements: version of GDRCopy kernel module (gdrdrv.ko) >= 2.0
-#
-# 2. (optional) Kernel module for GPUDirect RDMA: improves GPU to GPU communication
-# https://github.com/Mellanox/nv_peer_memory
-# RPM: 'nvidia_peer_memory'
-# Requirements: Mellanox HCA with MLNX_OFED 2.1
-#
-# These kernel modules are not listed as system dependencies to lower the system
-# requirements to build this easyconfig, as they are not needed for the build.
+build_info_msg = """This easyconfig only installs the library of GDRCopy. Please keep in mind
+that GDRCopy also needs the following kernel modules at runtime:
+
+1. Kernel module for GDRCopy: improves Host to GPU communication
+ https://github.com/NVIDIA/gdrcopy
+ RPM: 'gdrcopy-kmod', DEB: 'gdrdrv-dkms'
+ Requirements: version of GDRCopy kernel module (gdrdrv.ko) >= 2.0
+
+2. (optional) Kernel module for GPUDirect RDMA: improves GPU to GPU communication
+ https://github.com/Mellanox/nv_peer_memory
+ RPM: 'nvidia_peer_memory'
+ Requirements: Mellanox HCA with MLNX_OFED 2.1
+
+These kernel modules are not listed as system dependencies to lower the system
+requirements to build this easyconfig, as they are not needed for the build."""
skipsteps = ['configure']
diff --git a/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.4.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.4.1-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..f8e2370943b
--- /dev/null
+++ b/easybuild/easyconfigs/g/GDRCopy/GDRCopy-2.4.1-GCCcore-13.3.0.eb
@@ -0,0 +1,52 @@
+easyblock = 'ConfigureMake'
+
+name = 'GDRCopy'
+version = '2.4.1'
+
+homepage = 'https://github.com/NVIDIA/gdrcopy'
+description = "A low-latency GPU memory copy library based on NVIDIA GPUDirect RDMA technology."
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+github_account = 'NVIDIA'
+source_urls = [GITHUB_SOURCE]
+sources = ['v%(version)s.tar.gz']
+checksums = ['faa7e816e9bad3301e53d6721457f7ef5ab42b7aa3b01ffda51f8e5620bb20ed']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('Autotools', '20231222'),
+ ('pkgconf', '2.2.0'),
+]
+
+build_info_msg = """This easyconfig only installs the library of GDRCopy. Please keep in mind
+that GDRCopy also needs the following kernel modules at runtime:
+
+1. Kernel module for GDRCopy: improves Host to GPU communication
+ https://github.com/NVIDIA/gdrcopy
+ RPM: 'gdrcopy-kmod', DEB: 'gdrdrv-dkms'
+ Requirements: version of GDRCopy kernel module (gdrdrv.ko) >= 2.0
+
+2. (optional) Kernel module for GPUDirect RDMA: improves GPU to GPU communication
+ https://github.com/Mellanox/nv_peer_memory
+ RPM: 'nvidia_peer_memory'
+ Requirements: Mellanox HCA with MLNX_OFED 2.1
+
+These kernel modules are not listed as system dependencies to lower the system
+requirements to build this easyconfig, as they are not needed for the build."""
+
+skipsteps = ['configure']
+
+local_envopts = "prefix=%(installdir)s"
+prebuildopts = "PATH=$PATH:/sbin " # ensures that ldconfig is found
+buildopts = "config lib %s" % local_envopts
+install_cmd = "make lib_install"
+installopts = local_envopts
+
+sanity_check_paths = {
+ 'files': ['lib/libgdrapi.%s' % SHLIB_EXT],
+ 'dirs': ['include'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/g/GEOS/GEOS-3.12.1-GCC-13.2.0.eb b/easybuild/easyconfigs/g/GEOS/GEOS-3.12.1-GCC-13.2.0.eb
new file mode 100644
index 00000000000..8dc235ab95c
--- /dev/null
+++ b/easybuild/easyconfigs/g/GEOS/GEOS-3.12.1-GCC-13.2.0.eb
@@ -0,0 +1,26 @@
+easyblock = 'CMakeMake'
+
+name = 'GEOS'
+version = '3.12.1'
+
+homepage = 'https://trac.osgeo.org/geos'
+description = """GEOS (Geometry Engine - Open Source) is a C++ port of the Java Topology Suite (JTS)"""
+
+toolchain = {'name': 'GCC', 'version': '13.2.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://download.osgeo.org/geos/']
+sources = [SOURCELOWER_TAR_BZ2]
+checksums = ['d6ea7e492224b51193e8244fe3ec17c4d44d0777f3c32ca4fb171140549a0d03']
+
+builddependencies = [('CMake', '3.27.6')]
+
+# Build static and shared libraries
+configopts = ['', '-DBUILD_SHARED_LIBS=OFF']
+
+sanity_check_paths = {
+ 'files': ['bin/geos-config', 'lib/libgeos.%s' % SHLIB_EXT, 'lib/libgeos.a', 'include/geos.h'],
+ 'dirs': [],
+}
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/g/GEOS/GEOS-3.12.2-GCC-13.3.0.eb b/easybuild/easyconfigs/g/GEOS/GEOS-3.12.2-GCC-13.3.0.eb
new file mode 100644
index 00000000000..6b174f0bf8a
--- /dev/null
+++ b/easybuild/easyconfigs/g/GEOS/GEOS-3.12.2-GCC-13.3.0.eb
@@ -0,0 +1,27 @@
+easyblock = 'CMakeMake'
+
+name = 'GEOS'
+version = '3.12.2'
+
+homepage = 'https://trac.osgeo.org/geos'
+description = """GEOS (Geometry Engine - Open Source) is a C++ port of the Java Topology Suite (JTS)"""
+
+toolchain = {'name': 'GCC', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://download.osgeo.org/geos/']
+sources = [SOURCELOWER_TAR_BZ2]
+checksums = ['34c7770bf0090ee88488af98767d08e779f124fa33437e0aabec8abd4609fec6']
+
+builddependencies = [('CMake', '3.29.3')]
+
+# Build static and shared libraries
+configopts = ['', '-DBUILD_SHARED_LIBS=OFF']
+
+sanity_check_paths = {
+ 'files': ['bin/geos-config', 'lib/libgeos.%s' % SHLIB_EXT, 'lib/libgeos.a', 'lib/libgeos_c.%s' % SHLIB_EXT,
+ 'include/geos.h'],
+ 'dirs': [],
+}
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/g/GHC/GHC-9.10.1-x86_64.eb b/easybuild/easyconfigs/g/GHC/GHC-9.10.1-x86_64.eb
new file mode 100644
index 00000000000..2074b920ebd
--- /dev/null
+++ b/easybuild/easyconfigs/g/GHC/GHC-9.10.1-x86_64.eb
@@ -0,0 +1,82 @@
+# This is a binary install that requires a './configure' and 'make install' steps for GHC.
+# We pull the centos7 binary tarball as is the one built against oldest system libs,
+# making it upwards compatible with newer distros.
+#
+# To get a functional 'ghc' binary on the SYSTEM toolchain we need
+# gmp headers and ncurses libtinfo.so.5, to avoid requiring extra OS deps for them
+# we include them in this bundle.
+# Binaries obtained with ghc do not require them, so it should be possible to use this bundle
+# just as builddep among different toolchains.
+#
+# For details, see the PR discussion:
+# https://github.com/easybuilders/easybuild-easyconfigs/pull/11310
+
+easyblock = 'Bundle'
+
+name = 'GHC'
+version = '9.10.1'
+versionsuffix = '-x86_64'
+
+homepage = 'https://haskell.org/ghc/'
+description = """The Glorious/Glasgow Haskell Compiler"""
+
+toolchain = SYSTEM
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('M4', '1.4.19'),
+]
+
+default_easyblock = 'ConfigureMake'
+
+local_distro_tarball = 'centos7'
+
+components = [
+ ('GMP', '6.3.0', {
+ 'source_urls': [GNU_SOURCE],
+ 'sources': [SOURCELOWER_TAR_BZ2],
+ 'checksums': ['ac28211a7cfb609bae2e2c8d6058d66c8fe96434f740cf6fe2e47b000d1c20cb'],
+ 'configopts': ' --enable-cxx',
+ 'start_dir': '%(namelower)s-%(version)s',
+ }),
+ ('ncurses', '5.9', {
+ 'source_urls': [GNU_SOURCE],
+ 'sources': [SOURCE_TAR_GZ],
+ 'patches': [
+ 'ncurses-%(version)s_configure_darwin.patch',
+ 'ncurses-%(version)s_fix-missing-const.patch',
+ ],
+ 'checksums': [
+ '9046298fb440324c9d4135ecea7879ffed8546dd1b58e59430ea07a4633f563b',
+ '8c471fc2b1961a6e6e5981b7f7b3512e7fe58fcb04461aa4520157d4c1159998',
+ '027f7bd5876b761b48db624ddbdd106fa1c535dfb2752ef5a0eddeb2a8896cfd',
+ ],
+ 'preconfigopts': "export CPPFLAGS='-P -std=c++14' && ",
+ 'configopts': ' --with-shared --enable-overwrite --with-termlib=tinfo',
+ 'start_dir': '%(namelower)s-%(version)s',
+ }),
+ (name, version, {
+ 'source_urls': ['https://downloads.haskell.org/~ghc/%(version)s/'],
+ 'sources': ['%%(namelower)s-%%(version)s-x86_64-%s-linux.tar.xz' % local_distro_tarball],
+ 'checksums': ['fab143f10f845629cb1b373309b5680667cbaab298cf49827e383ee8a9ddf683'],
+ # ghc-8.6.5-x86_64-centos7-linux.tar.xz
+ 'skipsteps': ['build'],
+ 'preinstallopts': 'LD_LIBRARY_PATH="%(installdir)s/lib:$LD_LIBRARY_PATH" ',
+ 'start_dir': '%(namelower)s-%(version)s-x86_64-unknown-linux',
+ }),
+]
+
+local_ncurses_libs = ["form", "menu", "ncurses", "panel", "tinfo"]
+
+sanity_check_paths = {
+ 'files': ['lib/lib%s.%s' % (x, y) for x in ['gmp', 'gmpxx'] for y in [SHLIB_EXT, 'a']] +
+ ['include/gmp.h', 'include/gmpxx.h'] +
+ ['lib/lib%s%s.a' % (x, y) for x in local_ncurses_libs for y in ['', '_g']] +
+ ['lib/lib%s.%s' % (x, y) for x in local_ncurses_libs for y in [SHLIB_EXT]] +
+ ['bin/ghc', 'bin/ghci', 'bin/ghc-pkg', 'bin/runghc', 'bin/runhaskell'],
+ 'dirs': ['bin', 'lib', 'share', 'include'],
+}
+
+sanity_check_commands = ['ghc --version']
+
+moduleclass = 'compiler'
diff --git a/easybuild/easyconfigs/g/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/GL2PS/GL2PS-1.4.2-GCCcore-12.3.0.eb b/easybuild/easyconfigs/g/GL2PS/GL2PS-1.4.2-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..55df4c13600
--- /dev/null
+++ b/easybuild/easyconfigs/g/GL2PS/GL2PS-1.4.2-GCCcore-12.3.0.eb
@@ -0,0 +1,34 @@
+easyblock = 'CMakeMake'
+
+name = 'GL2PS'
+version = '1.4.2'
+
+homepage = 'https://www.geuz.org/gl2ps/'
+description = """GL2PS: an OpenGL to PostScript printing library"""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = ['https://geuz.org/gl2ps/src/']
+sources = [SOURCELOWER_TGZ]
+checksums = ['8d1c00c1018f96b4b97655482e57dcb0ce42ae2f1d349cd6d4191e7848d9ffe9']
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+ ('binutils', '2.40'),
+]
+
+dependencies = [
+ ('X11', '20230603'),
+ ('Mesa', '23.1.4'),
+ ('libGLU', '9.0.3'),
+ ('freeglut', '3.4.0'),
+ ('libpng', '1.6.39'),
+ ('zlib', '1.2.13'),
+]
+
+sanity_check_paths = {
+ 'files': ['include/gl2ps.h', 'lib/libgl2ps.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/g/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/GLib/GLib-2.80.4-GCCcore-13.3.0.eb b/easybuild/easyconfigs/g/GLib/GLib-2.80.4-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..f95eacd4a7b
--- /dev/null
+++ b/easybuild/easyconfigs/g/GLib/GLib-2.80.4-GCCcore-13.3.0.eb
@@ -0,0 +1,53 @@
+easyblock = 'MesonNinja'
+
+name = 'GLib'
+version = '2.80.4'
+
+homepage = 'https://www.gtk.org/'
+description = """GLib is one of the base libraries of the GTK+ project"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = [FTPGNOME_SOURCE]
+sources = [SOURCELOWER_TAR_XZ]
+checksums = ['24e029c5dfc9b44e4573697adf33078a9827c48938555004b3b9096fa4ea034f']
+
+builddependencies = [
+ # Python is required for building against GLib, at least when
+ # gdbus-codegen or one of the other python scripts are used.
+ # Since Meson 0.50 and later are Python >=3.5 only we can't build
+ # Python specific versions of GLib that uses Python 2.x
+ # thus Python should not be a runtime dependency for GLib.
+ # Packages that use GLib should either have an explicit
+ # (build)dependency on Python or it will use the system version
+ # EasyBuild itself uses.
+ ('Python', '3.12.3'),
+ ('Meson', '1.4.0'),
+ ('Ninja', '1.12.1'),
+ ('binutils', '2.42'),
+ ('pkgconf', '2.2.0'),
+]
+
+dependencies = [
+ ('libffi', '3.4.5'),
+ ('gettext', '0.22.5'),
+ ('libxml2', '2.12.7'),
+ ('PCRE2', '10.43'),
+ ('util-linux', '2.40'),
+]
+
+# avoid using hardcoded path to Python binary in build step
+preconfigopts = "export PYTHON=python && "
+
+configopts = "--buildtype=release --default-library=both "
+
+fix_python_shebang_for = ['bin/*']
+
+sanity_check_paths = {
+ 'files': ['lib/libglib-%(version_major)s.0.a', 'lib/libglib-%%(version_major)s.0.%s' % SHLIB_EXT],
+ 'dirs': ['bin', 'include'],
+}
+
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/g/GLibmm/GLibmm-2.72.1-GCCcore-11.3.0.eb b/easybuild/easyconfigs/g/GLibmm/GLibmm-2.72.1-GCCcore-11.3.0.eb
new file mode 100644
index 00000000000..728b2ec6a20
--- /dev/null
+++ b/easybuild/easyconfigs/g/GLibmm/GLibmm-2.72.1-GCCcore-11.3.0.eb
@@ -0,0 +1,34 @@
+easyblock = 'MesonNinja'
+
+name = 'GLibmm'
+version = '2.72.1'
+
+homepage = 'https://www.gtk.org/'
+description = """C++ bindings for Glib"""
+
+toolchain = {'name': 'GCCcore', 'version': '11.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://ftp.gnome.org/pub/gnome/sources/glibmm/%(version_major_minor)s/']
+sources = ['%(namelower)s-%(version)s.tar.xz']
+checksums = ['2a7649a28ab5dc53ac4dabb76c9f61599fbc628923ab6a7dd74bf675d9155cd8']
+
+builddependencies = [
+ ('binutils', '2.38'),
+ ('pkgconf', '1.8.0'),
+ ('Meson', '0.62.1'),
+ ('Ninja', '1.10.2'),
+]
+
+dependencies = [
+ ('GLib', '2.72.1'),
+ ('libsigc++', '3.4.0'),
+]
+
+sanity_check_paths = {
+ 'files': ['lib/libglibmm-2.68.%s' % SHLIB_EXT, 'lib/libgiomm-2.68.%s' % SHLIB_EXT,
+ 'include/glibmm-2.68/glibmm.h', 'include/giomm-2.68/giomm.h'],
+ 'dirs': ['lib/pkgconfig'],
+}
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/g/GLibmm/GLibmm-2.75.0-GCCcore-12.2.0.eb b/easybuild/easyconfigs/g/GLibmm/GLibmm-2.75.0-GCCcore-12.2.0.eb
new file mode 100644
index 00000000000..ba2c86f4057
--- /dev/null
+++ b/easybuild/easyconfigs/g/GLibmm/GLibmm-2.75.0-GCCcore-12.2.0.eb
@@ -0,0 +1,34 @@
+easyblock = 'MesonNinja'
+
+name = 'GLibmm'
+version = '2.75.0'
+
+homepage = 'https://www.gtk.org/'
+description = """C++ bindings for Glib"""
+
+toolchain = {'name': 'GCCcore', 'version': '12.2.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://ftp.gnome.org/pub/gnome/sources/glibmm/%(version_major_minor)s/']
+sources = ['%(namelower)s-%(version)s.tar.xz']
+checksums = ['60bb12e66488aa8ce41f0eb2f3612f89f5ddc887e3e4d45498524bf60b266b3d']
+
+builddependencies = [
+ ('binutils', '2.39'),
+ ('pkgconf', '1.9.3'),
+ ('Meson', '0.64.0'),
+ ('Ninja', '1.11.1'),
+]
+
+dependencies = [
+ ('GLib', '2.75.0'),
+ ('libsigc++', '3.6.0'),
+]
+
+sanity_check_paths = {
+ 'files': ['lib/libglibmm-2.68.%s' % SHLIB_EXT, 'lib/libgiomm-2.68.%s' % SHLIB_EXT,
+ 'include/glibmm-2.68/glibmm.h', 'include/giomm-2.68/giomm.h'],
+ 'dirs': ['lib/pkgconfig'],
+}
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/g/GLibmm/GLibmm-2.77.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/g/GLibmm/GLibmm-2.77.0-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..768bdcbb2ed
--- /dev/null
+++ b/easybuild/easyconfigs/g/GLibmm/GLibmm-2.77.0-GCCcore-12.3.0.eb
@@ -0,0 +1,34 @@
+easyblock = 'MesonNinja'
+
+name = 'GLibmm'
+version = '2.77.0'
+
+homepage = 'https://www.gtk.org/'
+description = """C++ bindings for Glib"""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://ftp.gnome.org/pub/gnome/sources/glibmm/%(version_major_minor)s/']
+sources = ['%(namelower)s-%(version)s.tar.xz']
+checksums = ['7cb34684e7ac6dfbf83492a52dff3f919e2fff63eb7810613bf71eb272d5450e']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('pkgconf', '1.9.5'),
+ ('Meson', '1.1.1'),
+ ('Ninja', '1.11.1'),
+]
+
+dependencies = [
+ ('GLib', '2.77.1'),
+ ('libsigc++', '3.6.0'),
+]
+
+sanity_check_paths = {
+ 'files': ['lib/libglibmm-2.68.%s' % SHLIB_EXT, 'lib/libgiomm-2.68.%s' % SHLIB_EXT,
+ 'include/glibmm-2.68/glibmm.h', 'include/giomm-2.68/giomm.h'],
+ 'dirs': ['lib/pkgconfig'],
+}
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/g/GLibmm/GLibmm-2.78.1-GCCcore-13.2.0.eb b/easybuild/easyconfigs/g/GLibmm/GLibmm-2.78.1-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..1cfbeec1c85
--- /dev/null
+++ b/easybuild/easyconfigs/g/GLibmm/GLibmm-2.78.1-GCCcore-13.2.0.eb
@@ -0,0 +1,34 @@
+easyblock = 'MesonNinja'
+
+name = 'GLibmm'
+version = '2.78.1'
+
+homepage = 'https://www.gtk.org/'
+description = """C++ bindings for Glib"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://ftp.gnome.org/pub/gnome/sources/glibmm/%(version_major_minor)s/']
+sources = ['%(namelower)s-%(version)s.tar.xz']
+checksums = ['f473f2975d26c3409e112ed11ed36406fb3843fa975df575c22d4cb843085f61']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('pkgconf', '2.0.3'),
+ ('Meson', '1.2.3'),
+ ('Ninja', '1.11.1'),
+]
+
+dependencies = [
+ ('GLib', '2.78.1'),
+ ('libsigc++', '3.6.0'),
+]
+
+sanity_check_paths = {
+ 'files': ['lib/libglibmm-2.68.%s' % SHLIB_EXT, 'lib/libgiomm-2.68.%s' % SHLIB_EXT,
+ 'include/glibmm-2.68/glibmm.h', 'include/giomm-2.68/giomm.h'],
+ 'dirs': ['lib/pkgconfig'],
+}
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/g/GMAP-GSNAP/GMAP-GSNAP-2023-04-20-GCC-12.3.0.eb b/easybuild/easyconfigs/g/GMAP-GSNAP/GMAP-GSNAP-2023-04-20-GCC-12.3.0.eb
new file mode 100644
index 00000000000..bdd355aef6b
--- /dev/null
+++ b/easybuild/easyconfigs/g/GMAP-GSNAP/GMAP-GSNAP-2023-04-20-GCC-12.3.0.eb
@@ -0,0 +1,55 @@
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+# Author: Pablo Escobar Lopez
+# Swiss Institute of Bioinformatics
+# Biozentrum - University of Basel
+# 2016-11-07 modified by:
+# Adam Huffman
+# The Francis Crick Institute
+
+easyblock = 'ConfigureMake'
+
+name = 'GMAP-GSNAP'
+version = '2023-04-20'
+
+homepage = 'http://research-pub.gene.com/gmap/'
+description = """GMAP: A Genomic Mapping and Alignment Program for mRNA and EST Sequences
+ GSNAP: Genomic Short-read Nucleotide Alignment Program"""
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+
+source_urls = ['http://research-pub.gene.com/gmap/src/']
+sources = [SOURCELOWER_TAR_GZ]
+patches = [
+ 'GMAP-GSNAP-2023-02-17_cleanup-headers.patch',
+ 'GMAP-GSNAP-2023-02-17_fix-typecast.patch',
+]
+checksums = [
+ {'gmap-gsnap-2023-04-20.tar.gz': 'f858bc699cbcc9b3f06751ace55c86bfc21e4ca821a90b10681feac2172b725e'},
+ {'GMAP-GSNAP-2023-02-17_cleanup-headers.patch': '7d17d4cbc717556e3a64475eb931b692e9d564b486acf6c9dbf4c2bf29853832'},
+ {'GMAP-GSNAP-2023-02-17_fix-typecast.patch': 'eafe728cf00cf52320bbf4b710ef76b662df92533d22fa67dc273855c180296f'},
+]
+
+# with these deps you can use standard compressed files
+# details in http://research-pub.gene.com/gmap/src/README
+dependencies = [
+ ('bzip2', '1.0.8'),
+ ('zlib', '1.2.13'),
+]
+
+# GSNAP uses MAX_STACK_READLENGTH to control the use of stack or heap memory depending on the read length
+# details in http://research-pub.gene.com/gmap/src/README
+# configopts = 'MAX_STACK_READLENGTH=300'
+
+runtest = 'check'
+
+sanity_check_paths = {
+ 'files': ['bin/gmap', 'bin/gsnap'],
+ 'dirs': [],
+}
+
+sanity_check_commands = [
+ "gmap --help",
+ "gsnap --help",
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/g/GMAP-GSNAP/GMAP-GSNAP-2024-09-18-GCC-13.3.0.eb b/easybuild/easyconfigs/g/GMAP-GSNAP/GMAP-GSNAP-2024-09-18-GCC-13.3.0.eb
new file mode 100644
index 00000000000..25bc1f03a06
--- /dev/null
+++ b/easybuild/easyconfigs/g/GMAP-GSNAP/GMAP-GSNAP-2024-09-18-GCC-13.3.0.eb
@@ -0,0 +1,54 @@
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+# Author: Pablo Escobar Lopez
+# Swiss Institute of Bioinformatics
+# Biozentrum - University of Basel
+# 2016-11-07 modified by:
+# Adam Huffman
+# The Francis Crick Institute
+
+easyblock = 'ConfigureMake'
+
+name = 'GMAP-GSNAP'
+version = '2024-09-18'
+
+homepage = 'http://research-pub.gene.com/gmap/'
+description = """GMAP: A Genomic Mapping and Alignment Program for mRNA and EST Sequences
+ GSNAP: Genomic Short-read Nucleotide Alignment Program"""
+
+toolchain = {'name': 'GCC', 'version': '13.3.0'}
+
+source_urls = ['http://research-pub.gene.com/gmap/src/']
+sources = [SOURCELOWER_TAR_GZ]
+patches = [
+ 'GMAP-GSNAP-2024-09-18_fix-source-files-for-haswell.patch',
+]
+checksums = [
+ {'gmap-gsnap-2024-09-18.tar.gz': '00d28c1a8c95295c8edd006cc0d1b5154cabe185de1f5a5dd8ccdb01fab38a18'},
+ {'GMAP-GSNAP-2024-09-18_fix-source-files-for-haswell.patch':
+ 'a7ce5bbc83c16d7d4b5f79cf9d96311943fecb114ecab7c6a45e85e95ba54748'},
+]
+
+# with these deps you can use standard compressed files
+# details in http://research-pub.gene.com/gmap/src/README
+dependencies = [
+ ('bzip2', '1.0.8'),
+ ('zlib', '1.3.1'),
+]
+
+# GSNAP uses MAX_STACK_READLENGTH to control the use of stack or heap memory depending on the read length
+# details in http://research-pub.gene.com/gmap/src/README
+# configopts = 'MAX_STACK_READLENGTH=300'
+
+runtest = 'check'
+
+sanity_check_paths = {
+ 'files': ['bin/gmap', 'bin/gsnap'],
+ 'dirs': [],
+}
+
+sanity_check_commands = [
+ "gmap --help",
+ "gsnap --help",
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/g/GMAP-GSNAP/GMAP-GSNAP-2024-09-18_fix-source-files-for-haswell.patch b/easybuild/easyconfigs/g/GMAP-GSNAP/GMAP-GSNAP-2024-09-18_fix-source-files-for-haswell.patch
new file mode 100644
index 00000000000..05112c3e4b5
--- /dev/null
+++ b/easybuild/easyconfigs/g/GMAP-GSNAP/GMAP-GSNAP-2024-09-18_fix-source-files-for-haswell.patch
@@ -0,0 +1,13 @@
+Fix source files for Haswell architecture
+diff -ru gmap-2024-09-18.orig/src/select64-common.h gmap-2024-09-18/src/select64-common.h
+--- gmap-2024-09-18.orig/src/select64-common.h 2023-10-26 02:31:15.000000000 +0200
++++ gmap-2024-09-18/src/select64-common.h 2024-10-15 16:51:04.695772640 +0200
+@@ -67,7 +67,7 @@
+ return place + kSelectInByte[((x >> place) & 0xFF) | (byteRank << 8)];
+ #elif defined(__GNUC__) || defined(__clang__)
+ // GCC and Clang won't inline the intrinsics.
+- uint64_t result = uint64_t(1) << k;
++ uint64_t result = (uint64_t)1 << k;
+
+ asm("pdep %1, %0, %0\n\t"
+ "tzcnt %0, %0"
diff --git a/easybuild/easyconfigs/g/GMP-ECM/GMP-ECM-7.0.5-GCCcore-13.2.0.eb b/easybuild/easyconfigs/g/GMP-ECM/GMP-ECM-7.0.5-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..41f00635646
--- /dev/null
+++ b/easybuild/easyconfigs/g/GMP-ECM/GMP-ECM-7.0.5-GCCcore-13.2.0.eb
@@ -0,0 +1,29 @@
+easyblock = 'ConfigureMake'
+
+name = 'GMP-ECM'
+version = '7.0.5'
+
+homepage = 'https://gitlab.inria.fr/zimmerma/ecm'
+description = "Yet another implementation of the Elliptic Curve Method."
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+source_urls = ['https://gitlab.inria.fr/zimmerma/ecm/uploads/89f6f0d65d3e980cef33dc922004e4b2']
+sources = ['ecm-%(version)s.tar.gz']
+checksums = ['c721dd22e557c4a5dac9ac7e156a400cd2298812dd1f9b56e89966de01471ba8']
+
+builddependencies = [
+ ('M4', '1.4.19'),
+ ('binutils', '2.40'),
+]
+
+dependencies = [('GMP', '6.3.0')]
+
+configopts = "--with-gmp=$EBROOTGMP --enable-shared "
+
+sanity_check_paths = {
+ 'files': ['bin/ecm', 'include/ecm.h'] + ['lib/libecm.%s' % e for e in ['a', SHLIB_EXT]],
+ 'dirs': [],
+}
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/g/GMP/GMP-6.3.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/g/GMP/GMP-6.3.0-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..29f69f73299
--- /dev/null
+++ b/easybuild/easyconfigs/g/GMP/GMP-6.3.0-GCCcore-13.3.0.eb
@@ -0,0 +1,40 @@
+easyblock = 'ConfigureMake'
+
+name = 'GMP'
+version = '6.3.0'
+
+homepage = 'https://gmplib.org/'
+description = """
+ GMP is a free library for arbitrary precision arithmetic, operating on signed
+ integers, rational numbers, and floating point numbers.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'precise': True, 'pic': True}
+
+source_urls = ['https://ftp.gnu.org/gnu/%(namelower)s']
+sources = [SOURCELOWER_TAR_BZ2]
+checksums = ['ac28211a7cfb609bae2e2c8d6058d66c8fe96434f740cf6fe2e47b000d1c20cb']
+
+builddependencies = [
+ ('Autotools', '20231222'),
+ ('binutils', '2.42'),
+]
+
+# enable C++ interface
+configopts = '--enable-cxx'
+
+# copy libgmp.so* to /lib to make sure that it is picked up by tests
+# when EasyBuild is configured with --rpath, and clean up afterwards (let 'make install' do its job)
+pretestopts = "mkdir -p %%(installdir)s/lib && cp -a .libs/libgmp.%s* %%(installdir)s/lib && " % SHLIB_EXT
+testopts = " && rm -r %(installdir)s/lib"
+
+runtest = 'check'
+
+sanity_check_paths = {
+ 'files': ['lib/lib%s.%s' % (l, e) for l in ['gmp', 'gmpxx'] for e in [SHLIB_EXT, 'a']] +
+ ['include/gmp.h', 'include/gmpxx.h'],
+ 'dirs': ['share'],
+}
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/g/GOATOOLS/GOATOOLS-1.4.5-foss-2022b.eb b/easybuild/easyconfigs/g/GOATOOLS/GOATOOLS-1.4.5-foss-2022b.eb
new file mode 100644
index 00000000000..46728a39e63
--- /dev/null
+++ b/easybuild/easyconfigs/g/GOATOOLS/GOATOOLS-1.4.5-foss-2022b.eb
@@ -0,0 +1,73 @@
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+# Author: Denis Kristak
+# Update: Pavel Tománek (Inuits)
+easyblock = 'PythonPackage'
+
+name = 'GOATOOLS'
+version = '1.4.5'
+
+homepage = 'https://github.com/tanghaibao/goatools'
+description = "A Python library for Gene Ontology analyses"
+
+toolchain = {'name': 'foss', 'version': '2022b'}
+
+# must download sources via git to preserve .git directory,
+# since setuptools-scm is used to determine version
+sources = [{
+ 'git_config': {
+ 'url': 'https://github.com/tanghaibao',
+ 'repo_name': 'goatools',
+ 'tag': 'v%(version)s',
+ 'keep_git_dir': True,
+ },
+ 'filename': SOURCE_TAR_GZ,
+}]
+checksums = [None]
+
+builddependencies = [('cURL', '7.86.0')]
+
+dependencies = [
+ ('Python', '3.10.8'),
+ ('SciPy-bundle', '2023.02'),
+ ('XlsxWriter', '3.1.2'),
+ ('statsmodels', '0.14.0'),
+ ('pydot', '2.0.0'),
+ ('openpyxl', '3.1.2'),
+]
+
+exts_defaultclass = 'PythonPackage'
+exts_default_options = {
+ 'source_urls': [PYPI_SOURCE],
+ 'download_dep_fail': True,
+ 'use_pip': True,
+ 'sanity_pip_check': True,
+}
+
+exts_list = [
+ ('ftpretty', '0.4.0', {
+ 'checksums': ['61233b9212f2cceec96ee2c972738fa31cae7248e92d0874c99c04ee739bb5a9'],
+ }),
+]
+
+download_dep_fail = True
+use_pip = True
+
+postinstallcmds = ["cp -a %(builddir)s/goatools/data/ %(installdir)s/"]
+
+sanity_check_paths = {
+ 'files': ['bin/find_enrichment.py'],
+ 'dirs': ['data', 'lib/python%(pyshortver)s/site-packages'],
+}
+
+# example test run, see https://github.com/tanghaibao/goatools/blob/master/run.sh
+sanity_check_commands = [
+ "mkdir -p %(builddir)s",
+ "cd %(builddir)s && curl -OL http://geneontology.org/ontology/go-basic.obo",
+ "cd %(builddir)s && curl -OL http://www.geneontology.org/ontology/subsets/goslim_generic.obo",
+ "cd %(builddir)s && cp -a %(installdir)s/data .",
+ "cd %(builddir)s && find_enrichment.py --pval=0.05 --indent data/study data/population data/association",
+]
+
+sanity_pip_check = True
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/g/GOATOOLS/GOATOOLS-1.4.5-foss-2023a.eb b/easybuild/easyconfigs/g/GOATOOLS/GOATOOLS-1.4.5-foss-2023a.eb
new file mode 100644
index 00000000000..02e35cba627
--- /dev/null
+++ b/easybuild/easyconfigs/g/GOATOOLS/GOATOOLS-1.4.5-foss-2023a.eb
@@ -0,0 +1,72 @@
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+# Author: Denis Kristak
+# Update: Pavel Tománek (Inuits)
+
+easyblock = 'PythonPackage'
+
+name = 'GOATOOLS'
+version = '1.4.5'
+
+homepage = 'https://github.com/tanghaibao/goatools'
+description = "A Python library for Gene Ontology analyses"
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+sources = [{
+ 'git_config': {
+ 'url': 'https://github.com/tanghaibao',
+ 'repo_name': 'goatools',
+ 'tag': 'v%(version)s',
+ 'keep_git_dir': True,
+ },
+ 'filename': SOURCE_TAR_GZ,
+}]
+checksums = [None]
+
+builddependencies = [('cURL', '8.0.1')]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('XlsxWriter', '3.1.3'),
+ ('statsmodels', '0.14.1'),
+ ('pydot', '2.0.0'),
+ ('openpyxl', '3.1.2'),
+]
+
+exts_defaultclass = 'PythonPackage'
+exts_default_options = {
+ 'source_urls': [PYPI_SOURCE],
+ 'download_dep_fail': True,
+ 'use_pip': True,
+ 'sanity_pip_check': True,
+}
+
+exts_list = [
+ ('ftpretty', '0.4.0', {
+ 'checksums': ['61233b9212f2cceec96ee2c972738fa31cae7248e92d0874c99c04ee739bb5a9'],
+ }),
+]
+
+download_dep_fail = True
+use_pip = True
+
+postinstallcmds = ["cp -a %(builddir)s/goatools/data/ %(installdir)s/"]
+
+sanity_check_paths = {
+ 'files': ['bin/find_enrichment.py'],
+ 'dirs': ['data', 'lib/python%(pyshortver)s/site-packages'],
+}
+
+# example test run, see https://github.com/tanghaibao/goatools/blob/master/run.sh
+sanity_check_commands = [
+ "mkdir -p %(builddir)s",
+ "cd %(builddir)s && curl -OL http://geneontology.org/ontology/go-basic.obo",
+ "cd %(builddir)s && curl -OL http://www.geneontology.org/ontology/subsets/goslim_generic.obo",
+ "cd %(builddir)s && cp -a %(installdir)s/data .",
+ "cd %(builddir)s && find_enrichment.py --pval=0.05 --indent data/study data/population data/association",
+]
+
+sanity_pip_check = True
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/g/GOMC/GOMC-2.76-20230613-GCC-11.3.0-CUDA-11.7.0.eb b/easybuild/easyconfigs/g/GOMC/GOMC-2.76-20230613-GCC-11.3.0-CUDA-11.7.0.eb
new file mode 100644
index 00000000000..fbe1458a01a
--- /dev/null
+++ b/easybuild/easyconfigs/g/GOMC/GOMC-2.76-20230613-GCC-11.3.0-CUDA-11.7.0.eb
@@ -0,0 +1,49 @@
+easyblock = 'CMakeMake'
+
+name = 'GOMC'
+version = '2.76-20230613'
+versionsuffix = '-CUDA-%(cudaver)s'
+_commit = '9fc85fb'
+
+homepage = 'https://gomc-wsu.org/'
+description = """GPU Optimized Monte Carlo (GOMC) is a parallel molecular
+simulation code designed for high-performance simulation of large systems."""
+
+toolchain = {'name': 'GCC', 'version': '11.3.0'}
+
+sources = [
+ {
+ 'source_urls': ['https://github.com/GOMC-WSU/GOMC/archive'],
+ 'download_filename': '%s.tar.gz' % _commit,
+ 'filename': SOURCE_TAR_GZ,
+ },
+]
+checksums = ['14725836707e4525cc7daea219a6eb47a8aeb675d01ef6d16ad60a9986dd3c1e']
+
+builddependencies = [
+ ('CMake', '3.23.1'),
+]
+dependencies = [
+ ('CUDA', '11.7.0', '', SYSTEM),
+ ('UCX-CUDA', '1.12.1', versionsuffix),
+]
+
+# default CUDA compute capabilities to use (override via --cuda-compute-capabilities)
+cuda_compute_capabilities = ['6.0', '7.0', '7.5', '8.0', '8.6']
+configopts = '-DCMAKE_CUDA_ARCHITECTURES="%(cuda_cc_cmake)s" '
+
+preinstallopts = 'mkdir %(installdir)s/bin &&'
+install_cmd = 'cp'
+installopts = '%(builddir)s/easybuild_obj/%(name)s_{CPU,GPU}_* %(installdir)s/bin'
+
+_gomc_exe = ['GOMC_CPU_GCMC', 'GOMC_CPU_GEMC', 'GOMC_CPU_NPT', 'GOMC_CPU_NVT', 'GOMC_GPU_GCMC',
+ 'GOMC_GPU_GEMC', 'GOMC_GPU_NPT', 'GOMC_GPU_NVT']
+
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in _gomc_exe],
+ 'dirs': [],
+}
+
+sanity_check_commands = ['%s | grep "Info: GOMC"' % x for x in _gomc_exe]
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/g/GOTCHA/GOTCHA-1.0.7-GCCcore-13.3.0.eb b/easybuild/easyconfigs/g/GOTCHA/GOTCHA-1.0.7-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..4810ca2d6d3
--- /dev/null
+++ b/easybuild/easyconfigs/g/GOTCHA/GOTCHA-1.0.7-GCCcore-13.3.0.eb
@@ -0,0 +1,37 @@
+easyblock = "CMakeMake"
+
+name = "GOTCHA"
+version = "1.0.7"
+
+homepage = "https://gotcha.readthedocs.io/en/latest/"
+description = """Gotcha is a library that wraps functions. Tools can use gotcha to install hooks into other
+libraries, for example putting a wrapper function around libc's malloc. It is similar to LD_PRELOAD, but
+operates via a programmable API. This enables easy methods of accomplishing tasks like code instrumentation
+or wholesale replacement of mechanisms in programs without disrupting their source code."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/LLNL/GOTCHA/archive/']
+sources = ['%(version)s.tar.gz']
+checksums = ['1ecc1917a46ba0a63b75f0668b280e447afcb7623ad171caa35c596355d986f7']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('CMake', '3.29.3'),
+ ('Check', '0.15.2')
+]
+
+configopts = [
+ "-DGOTCHA_ENABLE_TESTS=ON",
+ "-DDEPENDENCIES_PREINSTALLED=ON"
+]
+
+sanity_check_paths = {
+ 'files': [('lib/libgotcha.%s' % SHLIB_EXT, 'lib64/libgotcha.%s' % SHLIB_EXT),
+ 'lib/cmake/gotcha/gotcha-config.cmake',
+ 'include/gotcha/gotcha.h'],
+ 'dirs': []
+}
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.80.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.80.1-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..83ab6981ae3
--- /dev/null
+++ b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.80.1-GCCcore-13.3.0.eb
@@ -0,0 +1,51 @@
+easyblock = 'MesonNinja'
+
+name = 'GObject-Introspection'
+version = '1.80.1'
+
+homepage = 'https://gi.readthedocs.io/en/latest/'
+description = """GObject introspection is a middleware layer between C libraries
+ (using GObject) and language bindings. The C library can be scanned at
+ compile time and generate a metadata file, in addition to the actual
+ native C library. Then at runtime, language bindings can read this
+ metadata and automatically provide bindings to call into the C library."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = [FTPGNOME_SOURCE]
+sources = [SOURCELOWER_TAR_XZ]
+patches = ['GObject-Introspection-1.80.1_install-GLib-GIR-files.patch']
+checksums = [
+ {'gobject-introspection-1.80.1.tar.xz': 'a1df7c424e15bda1ab639c00e9051b9adf5cea1a9e512f8a603b53cd199bc6d8'},
+ {'GObject-Introspection-1.80.1_install-GLib-GIR-files.patch':
+ 'c1909f1b7fd30784ae789ac0b5e45e0ca3dd2456890b864efa86a2f8c2e563aa'},
+]
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('pkgconf', '2.2.0'),
+ ('CMake', '3.29.3'),
+ ('Meson', '1.4.0'),
+ ('Ninja', '1.12.1'),
+ ('Python', '3.12.3'),
+ ('Bison', '3.8.2'),
+ ('cairo', '1.18.0'),
+ ('flex', '2.6.4'),
+]
+
+dependencies = [
+ ('GLib', '2.80.4'),
+ ('libffi', '3.4.5'),
+ ('util-linux', '2.40'),
+]
+
+preconfigopts = "env GI_SCANNER_DISABLE_CACHE=true "
+configopts = "-Dcairo=enabled"
+
+sanity_check_paths = {
+ 'files': ['bin/g-ir-%s' % x for x in ['annotation-tool', 'compiler', 'generate', 'scanner']] +
+ ['lib/libgirepository-1.0.' + SHLIB_EXT],
+ 'dirs': ['include', 'share']
+}
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.80.1_install-GLib-GIR-files.patch b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.80.1_install-GLib-GIR-files.patch
new file mode 100644
index 00000000000..5c09ded1cb2
--- /dev/null
+++ b/easybuild/easyconfigs/g/GObject-Introspection/GObject-Introspection-1.80.1_install-GLib-GIR-files.patch
@@ -0,0 +1,52 @@
+This reverts a commit from upstream
+> build: Do not install generated GLib GIR files
+>
+> GLib 2.79 ships its own introspection data.
+
+However GObject-Introspection requires (optionally) Cairo, which requires GLib
+which requires GLib-Introspection for generating the introspection data.
+
+So there is a cyclic dependency, see https://gitlab.gnome.org/GNOME/gobject-introspection/-/issues/517
+
+Author: Alexander Grund (TU Dresden)
+
+diff --git a/gir/meson.build b/gir/meson.build
+index 3a016831..312aa886 100644
+--- a/gir/meson.build
++++ b/gir/meson.build
+@@ -241,6 +241,8 @@ glib_gir = custom_target('gir-glib',
+ output: 'GLib-2.0.gir',
+ depends: [gir_giscanner_pymod, glib_gir_dep, gdump],
+ depend_files: gir_giscanner_built_files,
++ install: true,
++ install_dir: girdir,
+ env: g_ir_scanner_env,
+ command: glib_command + [
+ '--cflags-begin'] + glib_includes + extra_giscanner_cflags + [
+@@ -308,6 +310,8 @@ gobject_gir = custom_target('gir-gobject',
+ output: 'GObject-2.0.gir',
+ depends: [glib_gir, gir_giscanner_pymod, gobject_gir_dep, gdump],
+ depend_files: gir_giscanner_built_files,
++ install: true,
++ install_dir: girdir,
+ env: g_ir_scanner_env,
+ command: gobject_command + [
+ '--include-uninstalled=' + glib_gir.full_path(),
+@@ -360,6 +364,8 @@ uninstalled_gir_files += custom_target('gir-gmodule',
+ output: 'GModule-2.0.gir',
+ depends: [glib_gir, gir_giscanner_pymod, gmodule_gir_dep, gdump],
+ depend_files: gir_giscanner_built_files,
++ install: true,
++ install_dir: girdir,
+ env: g_ir_scanner_env,
+ command: gmodule_command + [
+ '--include-uninstalled=' + glib_gir.full_path(),
+@@ -455,6 +461,8 @@ gio_gir = custom_target('gir-gio',
+ output: 'Gio-2.0.gir',
+ depends: [gobject_gir, gir_giscanner_pymod, gio_gir_dep, gdump],
+ depend_files: gir_giscanner_built_files,
++ install: true,
++ install_dir: girdir,
+ env: g_ir_scanner_env,
+ command: gio_command + [
+ '--include-uninstalled=' + gobject_gir.full_path(),
diff --git a/easybuild/easyconfigs/g/GPAW/GPAW-24.6.0-foss-2023a-ASE-3.23.0.eb b/easybuild/easyconfigs/g/GPAW/GPAW-24.6.0-foss-2023a-ASE-3.23.0.eb
new file mode 100644
index 00000000000..62db4b69440
--- /dev/null
+++ b/easybuild/easyconfigs/g/GPAW/GPAW-24.6.0-foss-2023a-ASE-3.23.0.eb
@@ -0,0 +1,52 @@
+easyblock = "PythonPackage"
+
+name = 'GPAW'
+version = '24.6.0'
+_aseversion = '3.23.0'
+versionsuffix = '-ASE-' + _aseversion
+
+homepage = 'https://wiki.fysik.dtu.dk/gpaw/'
+description = """GPAW is a density-functional theory (DFT) Python code based on the projector-augmented wave (PAW)
+ method and the atomic simulation environment (ASE). It uses real-space uniform grids and multigrid methods or
+ atom-centered basis-functions."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'usempi': True, 'openmp': False}
+
+source_urls = [PYPI_LOWER_SOURCE]
+sources = [SOURCELOWER_TAR_GZ]
+patches = [
+ ('GPAW-20.1.0-Add-Easybuild-configuration-files.patch', 1),
+]
+checksums = [
+ {'gpaw-24.6.0.tar.gz': 'fb48ef0db48c0e321ce5967126a47900bba20c7efb420d6e7b5459983bd8f6f6'},
+ {'GPAW-20.1.0-Add-Easybuild-configuration-files.patch':
+ '2b337399479bf018a86156ed073dd7a78ec8c0df1f28b015f9284c6bf9fa5f15'},
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('SciPy-bundle', '2023.07'),
+ ('ASE', _aseversion),
+ ('libxc', '6.2.2'),
+ ('libvdwxc', '0.4.0'),
+ ('ELPA', '2023.05.001'),
+ ('PyYAML', '6.0'),
+ ('GPAW-setups', '24.1.0', '', SYSTEM),
+]
+
+prebuildopts = 'GPAW_CONFIG=doc/platforms/Linux/EasyBuild/config_foss.py'
+preinstallopts = prebuildopts
+
+download_dep_fail = True
+use_pip = True
+sanity_pip_check = True
+
+sanity_check_paths = {
+ 'files': ['bin/gpaw%s' % x for x in ['', '-analyse-basis', '-basis', '-plot-parallel-timings',
+ '-runscript', '-setup', '-upfplot']],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages']
+}
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/g/GPAW/GPAW-24.6.0-foss-2024a.eb b/easybuild/easyconfigs/g/GPAW/GPAW-24.6.0-foss-2024a.eb
new file mode 100644
index 00000000000..9b8721280c8
--- /dev/null
+++ b/easybuild/easyconfigs/g/GPAW/GPAW-24.6.0-foss-2024a.eb
@@ -0,0 +1,50 @@
+easyblock = "PythonPackage"
+
+name = 'GPAW'
+version = '24.6.0'
+
+homepage = 'https://wiki.fysik.dtu.dk/gpaw/'
+description = """GPAW is a density-functional theory (DFT) Python code based on the projector-augmented wave (PAW)
+ method and the atomic simulation environment (ASE). It uses real-space uniform grids and multigrid methods or
+ atom-centered basis-functions."""
+
+toolchain = {'name': 'foss', 'version': '2024a'}
+toolchainopts = {'usempi': True, 'openmp': False}
+
+source_urls = [PYPI_LOWER_SOURCE]
+sources = [SOURCELOWER_TAR_GZ]
+patches = [
+ ('GPAW-20.1.0-Add-Easybuild-configuration-files.patch', 1),
+]
+checksums = [
+ {'gpaw-24.6.0.tar.gz': 'fb48ef0db48c0e321ce5967126a47900bba20c7efb420d6e7b5459983bd8f6f6'},
+ {'GPAW-20.1.0-Add-Easybuild-configuration-files.patch':
+ '2b337399479bf018a86156ed073dd7a78ec8c0df1f28b015f9284c6bf9fa5f15'},
+]
+
+dependencies = [
+ ('Python', '3.12.3'),
+ ('Python-bundle-PyPI', '2024.06'),
+ ('SciPy-bundle', '2024.05'),
+ ('ASE', '3.23.0'),
+ ('libxc', '6.2.2'),
+ ('libvdwxc', '0.4.0'),
+ ('ELPA', '2024.05.001'),
+ ('PyYAML', '6.0.2'),
+ ('GPAW-setups', '24.1.0', '', SYSTEM),
+]
+
+prebuildopts = 'GPAW_CONFIG=doc/platforms/Linux/EasyBuild/config_foss.py'
+preinstallopts = prebuildopts
+
+download_dep_fail = True
+use_pip = True
+sanity_pip_check = True
+
+sanity_check_paths = {
+ 'files': ['bin/gpaw%s' % x for x in ['', '-analyse-basis', '-basis', '-plot-parallel-timings',
+ '-runscript', '-setup', '-upfplot']],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages']
+}
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/g/GPAW/GPAW-24.6.0-intel-2023a-ASE-3.23.0.eb b/easybuild/easyconfigs/g/GPAW/GPAW-24.6.0-intel-2023a-ASE-3.23.0.eb
new file mode 100644
index 00000000000..dc4091af2d3
--- /dev/null
+++ b/easybuild/easyconfigs/g/GPAW/GPAW-24.6.0-intel-2023a-ASE-3.23.0.eb
@@ -0,0 +1,51 @@
+easyblock = "PythonPackage"
+
+name = 'GPAW'
+version = '24.6.0'
+_aseversion = '3.23.0'
+versionsuffix = '-ASE-' + _aseversion
+
+homepage = 'https://wiki.fysik.dtu.dk/gpaw/'
+description = """GPAW is a density-functional theory (DFT) Python code based on the projector-augmented wave (PAW)
+ method and the atomic simulation environment (ASE). It uses real-space uniform grids and multigrid methods or
+ atom-centered basis-functions."""
+
+toolchain = {'name': 'intel', 'version': '2023a'}
+toolchainopts = {'usempi': True, 'openmp': False}
+
+source_urls = [PYPI_LOWER_SOURCE]
+sources = [SOURCELOWER_TAR_GZ]
+patches = [
+ ('GPAW-20.1.0-Add-Easybuild-configuration-files.patch', 1),
+]
+checksums = [
+ {'gpaw-24.6.0.tar.gz': 'fb48ef0db48c0e321ce5967126a47900bba20c7efb420d6e7b5459983bd8f6f6'},
+ {'GPAW-20.1.0-Add-Easybuild-configuration-files.patch':
+ '2b337399479bf018a86156ed073dd7a78ec8c0df1f28b015f9284c6bf9fa5f15'},
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('SciPy-bundle', '2023.07'),
+ ('ASE', _aseversion),
+ ('libxc', '6.2.2'),
+ ('ELPA', '2023.05.001'),
+ ('PyYAML', '6.0'),
+ ('GPAW-setups', '24.1.0', '', SYSTEM),
+]
+
+prebuildopts = 'GPAW_CONFIG=doc/platforms/Linux/EasyBuild/config_intel.py'
+preinstallopts = prebuildopts
+
+download_dep_fail = True
+use_pip = True
+sanity_pip_check = True
+
+sanity_check_paths = {
+ 'files': ['bin/gpaw%s' % x for x in ['', '-analyse-basis', '-basis', '-plot-parallel-timings',
+ '-runscript', '-setup', '-upfplot']],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages']
+}
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/g/GPflow/GPflow-2.9.2-foss-2022a-CUDA-11.7.0.eb b/easybuild/easyconfigs/g/GPflow/GPflow-2.9.2-foss-2022a-CUDA-11.7.0.eb
new file mode 100644
index 00000000000..8838542f89b
--- /dev/null
+++ b/easybuild/easyconfigs/g/GPflow/GPflow-2.9.2-foss-2022a-CUDA-11.7.0.eb
@@ -0,0 +1,49 @@
+easyblock = 'PythonBundle'
+
+name = 'GPflow'
+version = '2.9.2'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://gpflow.github.io'
+description = """GPflow is a package for building Gaussian process models in Python. It
+implements modern Gaussian process inference for composable kernels and
+likelihoods."""
+
+toolchain = {'name': 'foss', 'version': '2022a'}
+
+dependencies = [
+ ('CUDA', '11.7.0', '', SYSTEM),
+ ('Python', '3.10.4'),
+ ('TensorFlow', '2.11.0', versionsuffix),
+ ('tensorflow-probability', '0.19.0', versionsuffix),
+]
+
+use_pip = True
+
+exts_list = [
+ ('Deprecated', '1.2.14', {
+ 'checksums': ['e5323eb936458dccc2582dc6f9c322c852a775a27065ff2b0c4970b9d53d01b3'],
+ }),
+ ('dropstackframe', '0.1.0', {
+ 'source_tmpl': '%(name)s-%(version)s-py3-none-any.whl',
+ 'checksums': ['d619c7f87d144660f4569d447648830932f7920d570fd14f0dec552c81a0eb22'],
+ }),
+ ('lark', '1.1.9', {
+ 'checksums': ['15fa5236490824c2c4aba0e22d2d6d823575dcaf4cdd1848e34b6ad836240fba'],
+ }),
+ ('check_shapes', '1.1.1', {
+ 'checksums': ['b699fcb1e60bb17e2c97007e444b89eeeea2a9102ff11d61fb52454af5348403'],
+ }),
+ ('multipledispatch', '1.0.0', {
+ 'checksums': ['5c839915465c68206c3e9c473357908216c28383b425361e5d144594bf85a7e0'],
+ }),
+ ('gpflow', version, {
+ 'source_tmpl': 'v%(version)s.tar.gz',
+ 'source_urls': ['https://github.com/GPflow/GPflow/archive/'],
+ 'checksums': ['a32914c2b581b1dd2ac9a6f40352adb5f6f2c32f53028382e542014dd829553e'],
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/g/GPflow/GPflow-2.9.2-foss-2022a.eb b/easybuild/easyconfigs/g/GPflow/GPflow-2.9.2-foss-2022a.eb
new file mode 100644
index 00000000000..b94a4e3bc29
--- /dev/null
+++ b/easybuild/easyconfigs/g/GPflow/GPflow-2.9.2-foss-2022a.eb
@@ -0,0 +1,47 @@
+easyblock = 'PythonBundle'
+
+name = 'GPflow'
+version = '2.9.2'
+
+homepage = 'https://gpflow.github.io'
+description = """GPflow is a package for building Gaussian process models in Python. It
+implements modern Gaussian process inference for composable kernels and
+likelihoods."""
+
+toolchain = {'name': 'foss', 'version': '2022a'}
+
+dependencies = [
+ ('Python', '3.10.4'),
+ ('TensorFlow', '2.11.0'),
+ ('tensorflow-probability', '0.19.0'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('Deprecated', '1.2.14', {
+ 'checksums': ['e5323eb936458dccc2582dc6f9c322c852a775a27065ff2b0c4970b9d53d01b3'],
+ }),
+ ('dropstackframe', '0.1.0', {
+ 'source_tmpl': '%(name)s-%(version)s-py3-none-any.whl',
+ 'checksums': ['d619c7f87d144660f4569d447648830932f7920d570fd14f0dec552c81a0eb22'],
+ }),
+ ('lark', '1.1.9', {
+ 'checksums': ['15fa5236490824c2c4aba0e22d2d6d823575dcaf4cdd1848e34b6ad836240fba'],
+ }),
+ ('check_shapes', '1.1.1', {
+ 'checksums': ['b699fcb1e60bb17e2c97007e444b89eeeea2a9102ff11d61fb52454af5348403'],
+ }),
+ ('multipledispatch', '1.0.0', {
+ 'checksums': ['5c839915465c68206c3e9c473357908216c28383b425361e5d144594bf85a7e0'],
+ }),
+ ('gpflow', version, {
+ 'source_tmpl': 'v%(version)s.tar.gz',
+ 'source_urls': ['https://github.com/GPflow/GPflow/archive/'],
+ 'checksums': ['a32914c2b581b1dd2ac9a6f40352adb5f6f2c32f53028382e542014dd829553e'],
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/g/GPflow/GPflow-2.9.2-foss-2023a.eb b/easybuild/easyconfigs/g/GPflow/GPflow-2.9.2-foss-2023a.eb
new file mode 100644
index 00000000000..a2a0f0a5adc
--- /dev/null
+++ b/easybuild/easyconfigs/g/GPflow/GPflow-2.9.2-foss-2023a.eb
@@ -0,0 +1,51 @@
+easyblock = 'PythonBundle'
+
+name = 'GPflow'
+version = '2.9.2'
+
+homepage = 'https://gpflow.github.io'
+description = """GPflow is a package for building Gaussian process models in Python. It
+implements modern Gaussian process inference for composable kernels and
+likelihoods."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+builddependencies = [
+ ('poetry', '1.7.1'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('TensorFlow', '2.13.0'),
+ ('tensorflow-probability', '0.20.0'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('Deprecated', '1.2.14', {
+ 'checksums': ['e5323eb936458dccc2582dc6f9c322c852a775a27065ff2b0c4970b9d53d01b3'],
+ }),
+ ('dropstackframe', '0.1.0', {
+ 'source_tmpl': '%(name)s-%(version)s-py3-none-any.whl',
+ 'checksums': ['d619c7f87d144660f4569d447648830932f7920d570fd14f0dec552c81a0eb22'],
+ }),
+ ('lark', '1.1.9', {
+ 'checksums': ['15fa5236490824c2c4aba0e22d2d6d823575dcaf4cdd1848e34b6ad836240fba'],
+ }),
+ ('check_shapes', '1.1.1', {
+ 'checksums': ['b699fcb1e60bb17e2c97007e444b89eeeea2a9102ff11d61fb52454af5348403'],
+ }),
+ ('multipledispatch', '1.0.0', {
+ 'checksums': ['5c839915465c68206c3e9c473357908216c28383b425361e5d144594bf85a7e0'],
+ }),
+ ('gpflow', version, {
+ 'source_tmpl': 'v%(version)s.tar.gz',
+ 'source_urls': ['https://github.com/GPflow/GPflow/archive/'],
+ 'checksums': ['a32914c2b581b1dd2ac9a6f40352adb5f6f2c32f53028382e542014dd829553e'],
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/g/GPyOpt/GPyOpt-1.2.6-foss-2023a.eb b/easybuild/easyconfigs/g/GPyOpt/GPyOpt-1.2.6-foss-2023a.eb
new file mode 100644
index 00000000000..ca08a08a88c
--- /dev/null
+++ b/easybuild/easyconfigs/g/GPyOpt/GPyOpt-1.2.6-foss-2023a.eb
@@ -0,0 +1,63 @@
+easyblock = 'PythonBundle'
+
+name = 'GPyOpt'
+version = '1.2.6'
+
+homepage = 'https://sheffieldml.github.io/GPyOpt'
+description = "GPyOpt is a Python open-source library for Bayesian Optimization"
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('matplotlib', '3.7.2'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('paramz', '0.9.6', {
+ 'sources': ['%(name)s-%(version)s-py3-none-any.whl'],
+ 'checksums': ['4916be6f77f457316bcac8460be9c226026aed81fe7be302b32c0ba74e2ac6dd'],
+ }),
+ ('GPy', '1.13.2', {
+ 'modulename': 'GPy',
+ 'checksums': ['a38256b4dda536a5b5e6134a3924b42d454e987ee801fb6fc8b55a922da27920'],
+ }),
+ ('python-dateutil', '2.9.0.post0', {
+ 'modulename': 'dateutil',
+ 'checksums': ['37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3'],
+ }),
+ ('pyDOE', '0.3.8', {
+ 'modulename': '%(name)s',
+ 'sources': ['%(name)s-%(version)s.zip'],
+ 'checksums': ['cbd6f14ae26d3c9f736013205f53ea1191add4567033c3ee77b7dd356566c4b6'],
+ }),
+ ('sobol-seq', '0.2.0', {
+ 'sources': ['sobol_seq-%(version)s.tar.gz'],
+ 'checksums': ['e16e701bd7b03ec6ce65b3a64c9205799f6a2d00c2054dd8c4ff4343f3981172'],
+ }),
+ ('emcee', '2.2.1', {
+ 'checksums': ['b83551e342b37311897906b3b8acf32979f4c5542e0a25786ada862d26241172'],
+ }),
+ (name, version, {
+ 'modulename': 'GPyOpt',
+ 'checksums': ['e714daa035bb529a6db23c53665a762a4ab3456b9329c19ad3b03983f94c9b2a'],
+ }),
+]
+
+local_GPy_file = '%(installdir)s/lib/python%(pyshortver)s/site-packages/GPy/plotting/matplot_dep/plot_definitions.py'
+
+# Fix GPy with matplotlib>=3.4.0
+# see issue 953 and fix from https://github.com/SheffieldML/GPy/pull/960
+postinstallcmds = [
+ 'sed -i '
+ '''-e 's|ax._process_unit_info(xdata=X, ydata=y1)|ax._process_unit_info([("x", X), ("y", y1)], convert=False)|' '''
+ '''-e 's|ax._process_unit_info(ydata=y2)|ax._process_unit_info([("y", y2)], convert=False)|' %s''' % local_GPy_file,
+]
+
+
+sanity_pip_check = True
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/g/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.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.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
new file mode 100644
index 00000000000..a8f48c5966b
--- /dev/null
+++ b/easybuild/easyconfigs/g/GTDB-Tk/GTDB-Tk-2.4.0-foss-2023a.eb
@@ -0,0 +1,46 @@
+# Updated from previous config
+# Author: Pavel Grochal (INUITS)
+# License: GPLv2
+
+easyblock = 'PythonBundle'
+
+name = 'GTDB-Tk'
+version = '2.4.0'
+
+homepage = 'https://github.com/Ecogenomics/GTDBTk'
+description = "A toolkit for assigning objective taxonomic classifications to bacterial and archaeal genomes."
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('DendroPy', '4.6.1'),
+ ('matplotlib', '3.7.2'),
+ ('prodigal', '2.6.3'),
+ ('HMMER', '3.4'),
+ ('pplacer', '1.1.alpha19', '', SYSTEM),
+ ('skani', '0.2.2'),
+ ('FastTree', '2.1.11'),
+ ('Mash', '2.3'),
+ ('tqdm', '4.66.1'),
+ ('pydantic', '1.10.13'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('gtdbtk', version, {
+ 'checksums': ['e67bab2c8f3e47c7242c70236c78e85bb9dc4721636bbf5044b171f18f22b1f7'],
+ }),
+]
+
+sanity_pip_check = True
+
+sanity_check_paths = {
+ 'files': ['bin/gtdbtk'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = ["gtdbtk --help"]
+
+moduleclass = 'bio'
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/GeoDict/GeoDict-2024.SP2-gmpich-2024.06.eb b/easybuild/easyconfigs/g/GeoDict/GeoDict-2024.SP2-gmpich-2024.06.eb
new file mode 100644
index 00000000000..42186eafddb
--- /dev/null
+++ b/easybuild/easyconfigs/g/GeoDict/GeoDict-2024.SP2-gmpich-2024.06.eb
@@ -0,0 +1,41 @@
+easyblock = 'Tarball'
+
+name = 'GeoDict'
+version = '2024.SP2'
+
+homepage = 'https://www.math2market.com/geodict-software/geodict-applications.html'
+description = """
+The innovative and easy-to-use material simulator GeoDict is the most complete software
+solution for multi-scale 3D image processing, modeling of materials, visualization, material
+property characterization, simulation-based material development, and optimization of
+processes.
+"""
+
+toolchain = {'name': 'gmpich', 'version': '2024.06'}
+
+source_urls = [
+ 'https://www.gddownload.de/Releases'
+]
+sources = [
+ '%(name)s2024-3-4-Linux-x86_64-ServicePack2.tar.gz',
+ '%(name)s2024-3-4-Linux-x86_64-ServicePack2-Tools.tar.gz'
+]
+checksums = [
+ {'GeoDict2024-3-4-Linux-x86_64-ServicePack2.tar.gz':
+ '049401063d892eac65696d7d1ed8d4b915c9a81bb13e325cc0657c60ce8aeb28'},
+ {'GeoDict2024-3-4-Linux-x86_64-ServicePack2-Tools.tar.gz':
+ '1b50fb840e8e78c225c748d73eaca60faedd822de33f20c716b1e98b15492eac'},
+]
+
+dependencies = [
+ ('X11', '20230603'),
+]
+
+modextrapaths = {'PATH': '.'}
+
+sanity_check_paths = {
+ 'files': ['geodict2024'],
+ 'dirs': ['Python', 'Tools'],
+}
+
+moduleclass = 'geo'
diff --git a/easybuild/easyconfigs/g/GetOrganelle/GetOrganelle-1.7.7.1-foss-2023a.eb b/easybuild/easyconfigs/g/GetOrganelle/GetOrganelle-1.7.7.1-foss-2023a.eb
new file mode 100644
index 00000000000..4c6746689d9
--- /dev/null
+++ b/easybuild/easyconfigs/g/GetOrganelle/GetOrganelle-1.7.7.1-foss-2023a.eb
@@ -0,0 +1,43 @@
+easyblock = 'PythonPackage'
+
+name = 'GetOrganelle'
+version = '1.7.7.1'
+
+homepage = 'https://github.com/Kinggerm/GetOrganelle'
+description = """This toolkit assemblies organelle genome from genomic skimming data."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+source_urls = ['https://github.com/Kinggerm/GetOrganelle/archive/']
+sources = ['%(version)s.tar.gz']
+checksums = ['cf8e14766de43967182be839de20c9d1709b60fae38a0b3d175742dfad7a5d44']
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Bandage', '0.9.0'),
+ ('SciPy-bundle', '2023.07'),
+ ('sympy', '1.12'),
+ ('SPAdes', '3.15.4'),
+ ('Bowtie2', '2.5.1'),
+ ('BLAST+', '2.14.1'),
+ ('Perl', '5.36.1'),
+ ('matplotlib', '3.7.2')
+]
+
+download_dep_fail = True
+use_pip = True
+
+options = {'modulename': False}
+
+fix_python_shebang_for = ['bin/*.py']
+
+sanity_pip_check = True
+
+sanity_check_commands = ["get_organelle_from_reads.py -h"]
+
+sanity_check_paths = {
+ 'files': ['bin/check_annotations.py', 'bin/get_organelle_from_reads.py', 'bin/slim_graph.py'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/g/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/GimmeMotifs/GimmeMotifs-0.17.2-foss-2023a.eb b/easybuild/easyconfigs/g/GimmeMotifs/GimmeMotifs-0.17.2-foss-2023a.eb
new file mode 100644
index 00000000000..64b42485b8f
--- /dev/null
+++ b/easybuild/easyconfigs/g/GimmeMotifs/GimmeMotifs-0.17.2-foss-2023a.eb
@@ -0,0 +1,81 @@
+easyblock = 'PythonBundle'
+
+name = 'GimmeMotifs'
+version = '0.17.2'
+
+homepage = 'https://github.com/vanheeringen-lab/gimmemotifs'
+description = "Suite of motif tools, including a motif prediction pipeline for ChIP-seq experiments"
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+builddependencies = [('poetry', '1.5.1')]
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('SciPy-bundle', '2023.07'),
+ ('matplotlib', '3.7.2'),
+ ('pybedtools', '0.9.1'),
+ ('Pysam', '0.22.0'),
+ ('scikit-learn', '1.3.1'),
+ ('Seaborn', '0.13.2'),
+ ('statsmodels', '0.14.1'),
+ ('tqdm', '4.66.1'),
+ ('genomepy', '0.16.1'),
+ ('qnorm', '0.8.1'),
+ ('Arrow', '14.0.1'), # provides pyarrow, required by feather-format
+ ('HTSeq', '2.0.7'), # required by biofluff
+ ('pyBigWig', '0.3.22'), # required by biofluff
+]
+
+use_pip = True
+
+exts_list = [
+ ('palettable', '3.3.3', {
+ 'checksums': ['094dd7d9a5fc1cca4854773e5c1fc6a315b33bd5b3a8f47064928facaf0490a8'],
+ }),
+ ('biofluff', '3.0.4', {
+ 'modulename': 'fluff',
+ # remove pyBigWig dependency - pip_check fails with "import pybigwig"
+ 'preinstallopts': "sed -i '/pyBigWig/d' setup.py && ",
+ 'checksums': ['ef7b0a54103a830f197f21aa3d1ade8bdcddf613b437ea38c95260bb45324d6b'],
+ }),
+ ('diskcache', '5.6.3', {
+ 'checksums': ['2c3a3fa2743d8535d832ec61c2054a1641f41775aa7c556758a109941e33e4fc'],
+ }),
+ ('feather-format', '0.4.1', {
+ 'modulename': 'feather',
+ 'checksums': ['45f67e3745d394d4f160ca6d636bbfd4f8b68d01199dc1649b6e487d3e878903'],
+ }),
+ ('iteround', '1.0.4', {
+ 'source_urls': ['https://github.com/cgdeboer/iteround/archive/'],
+ 'sources': ['v%(version)s.tar.gz'],
+ 'checksums': ['445e4f0c793ae558e4db3cdee7e23d77459b9c586e8021667aa60c14ba7ff45f'],
+ }),
+ ('logomaker', '0.8', {
+ 'checksums': ['d8c7501a7d6d7961cd68e5a44e939000ebf1b0c4197a0c9198351e1d681d3f6d'],
+ }),
+ ('loguru', '0.7.2', {
+ 'checksums': ['e671a53522515f34fd406340ee968cb9ecafbc4b36c679da03c18fd8d0bd51ac'],
+ }),
+ ('xxhash', '3.4.1', {
+ 'checksums': ['0379d6cf1ff987cd421609a264ce025e74f346e3e145dd106c0cc2e3ec3f99a9'],
+ }),
+ ('xdg', '6.0.0', {
+ 'checksums': ['24278094f2d45e846d1eb28a2ebb92d7b67fc0cab5249ee3ce88c95f649a1c92'],
+ }),
+ ('gimmemotifs', version, {
+ 'preinstallopts': """sed -i '/"configparser"/d' setup.py && """,
+ 'checksums': ['fbf70997abce6a75451c10b96994f8dbc03152b01df5cf30bf4397c98a9b54d2'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/gimme'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = ["gimme --help"]
+
+sanity_pip_check = True
+
+moduleclass = 'bio'
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/GnuTLS/GnuTLS-3.7.8-GCCcore-12.3.0.eb b/easybuild/easyconfigs/g/GnuTLS/GnuTLS-3.7.8-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..320c4782a22
--- /dev/null
+++ b/easybuild/easyconfigs/g/GnuTLS/GnuTLS-3.7.8-GCCcore-12.3.0.eb
@@ -0,0 +1,48 @@
+easyblock = 'ConfigureMake'
+
+name = 'GnuTLS'
+version = '3.7.8'
+
+homepage = 'https://www.gnutls.org'
+description = """GnuTLS is a secure communications library implementing the SSL, TLS
+ and DTLS protocols and technologies around them. It provides a simple
+ C language application programming interface (API) to access the secure
+ communications protocols as well as APIs to parse and write X.509, PKCS #12,
+ OpenPGP and other required structures. It is aimed to be portable
+ and efficient with focus on security and interoperability."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = ['https://www.gnupg.org/ftp/gcrypt/gnutls/v%(version_major_minor)s']
+sources = [SOURCELOWER_TAR_XZ]
+checksums = ['c58ad39af0670efe6a8aee5e3a8b2331a1200418b64b7c51977fb396d4617114']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('pkgconf', '1.9.5'),
+]
+
+dependencies = [
+ ('GMP', '6.2.1'),
+ ('nettle', '3.9.1'),
+ ('Guile', '3.0.9'),
+ ('libtasn1', '4.19.0'),
+ ('libidn2', '2.3.7'),
+ ('p11-kit', '0.25.3'),
+ ('zlib', '1.2.13'),
+ ('zstd', '1.5.5'),
+]
+
+configopts = "--with-guile-site-dir=%(installdir)s/lib/guile --enable-openssl-compatibility "
+configopts += "--with-guile-site-ccache-dir=%(installdir)s/lib/guile/site-ccache "
+configopts += "--with-guile-extension-dir=%(installdir)s/lib/guile/extensions "
+configopts += "--with-idn --with-p11-kit --with-zlib --with-zstd --without-brotli --without-tpm --without-tpm2"
+
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in ['certtool', 'gnutls-cli', 'gnutls-cli-debug',
+ 'gnutls-serv', 'ocsptool', 'psktool', 'srptool']] +
+ ['lib/libgnutls%s' % x for x in ['.%s' % SHLIB_EXT, 'xx.%s' % SHLIB_EXT, '-openssl.%s' % SHLIB_EXT]],
+ 'dirs': ['include/gnutls', 'lib/guile'],
+}
+
+moduleclass = 'system'
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-2.4.0.eb b/easybuild/easyconfigs/g/Gubbins/Gubbins-2.4.0.eb
similarity index 98%
rename from easybuild/easyconfigs/g/gubbins/gubbins-2.4.0.eb
rename to easybuild/easyconfigs/g/Gubbins/Gubbins-2.4.0.eb
index c209965f2eb..7b9bbd1be45 100644
--- a/easybuild/easyconfigs/g/gubbins/gubbins-2.4.0.eb
+++ b/easybuild/easyconfigs/g/Gubbins/Gubbins-2.4.0.eb
@@ -10,7 +10,7 @@
easyblock = 'Conda'
-name = 'gubbins'
+name = 'Gubbins'
version = '2.4.0'
homepage = 'https://sanger-pathogens.github.io/gubbins'
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
new file mode 100644
index 00000000000..99c52d785fd
--- /dev/null
+++ b/easybuild/easyconfigs/g/Gubbins/Gubbins-3.3.5-foss-2022b.eb
@@ -0,0 +1,65 @@
+# This easyconfig was created by the BEAR Software team at the University of Birmingham.
+easyblock = 'ConfigureMake'
+
+name = 'Gubbins'
+version = '3.3.5'
+
+homepage = "https://nickjcroucher.github.io/gubbins/"
+description = """Gubbins (Genealogies Unbiased By recomBinations In Nucleotide Sequences) is an algorithm that
+ iteratively identifies loci containing elevated densities of base substitutions, which are marked as recombinations,
+ while concurrently constructing a phylogeny based on the putative point mutations outside of these regions.
+ Simulations demonstrate the algorithm generates highly accurate reconstructions under realistic models of short-term
+ bacterial evolution, and can be run in only a few hours on alignments of hundreds of bacterial genome sequences."""
+
+toolchain = {'name': 'foss', 'version': '2022b'}
+
+source_urls = ['https://github.com/nickjcroucher/gubbins/archive/refs/tags/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['4ee363f82708bdda0c00d1c6c334cf20127bd852ee488619f61140771a279774']
+
+builddependencies = [
+ ('Autotools', '20220317'),
+ ('Autoconf-archive', '2023.02.20'),
+ ('pkgconf', '1.9.3'),
+ ('Check', '0.15.2'),
+ ('subunit', '1.4.3'),
+]
+
+dependencies = [
+ ('Python', '3.10.8'),
+ ('Biopython', '1.81'),
+ ('DendroPy', '4.5.2'),
+ ('numba', '0.58.1'),
+ ('SciPy-bundle', '2023.02'),
+ ('FastTree', '2.1.11'),
+ ('IQ-TREE', '2.2.2.6'),
+ ('rapidNJ', '2.3.3'),
+ ('RAxML', '8.2.12', '-avx2'),
+ ('RAxML-NG', '1.2.0'),
+ ('SKA2', '0.3.7'),
+ ('dill', '0.3.7'),
+ ('multiprocess', '0.70.15'),
+]
+
+preconfigopts = "autoreconf -i && "
+# runtest = 'check' # runs the Python tests and this causes package to be installed into the Python install
+postinstallcmds = [
+ """sed -i 's/self.executable = "iqtree"/self.executable = "iqtree2"/' python/gubbins/treebuilders.py""",
+ "cd python && python -m pip install --prefix %(installdir)s --no-build-isolation . "
+]
+
+modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'}
+
+sanity_check_paths = {
+ 'files': ['bin/gubbins', 'lib/libgubbins.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+
+sanity_check_commands = [
+ "gubbins --help",
+ "run_gubbins.py --version",
+ '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/Guile/Guile-3.0.10-GCCcore-13.3.0.eb b/easybuild/easyconfigs/g/Guile/Guile-3.0.10-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..46917679856
--- /dev/null
+++ b/easybuild/easyconfigs/g/Guile/Guile-3.0.10-GCCcore-13.3.0.eb
@@ -0,0 +1,46 @@
+easyblock = 'ConfigureMake'
+
+name = 'Guile'
+version = '3.0.10'
+
+homepage = 'https://www.gnu.org/software/guile/'
+
+description = """
+ Guile is a programming language, designed to help programmers create flexible
+ applications that can be extended by users or other programmers with plug-ins,
+ modules, or scripts.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = [GNU_SOURCE]
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['2dbdbc97598b2faf31013564efb48e4fed44131d28e996c26abe8a5b23b56c2a']
+
+builddependencies = [
+ ('Autotools', '20231222'),
+ ('binutils', '2.42'),
+ ('pkgconf', '2.2.0'),
+]
+
+dependencies = [
+ ('gc', '8.2.6'),
+ ('GMP', '6.3.0'),
+ ('libffi', '3.4.5'),
+ ('libunistring', '1.2'),
+]
+
+postinstallcmds = ["cd %(installdir)s/bin && ln -s guile guile%(version_major)s"]
+
+sanity_check_paths = {
+ 'files': ['bin/guild', 'bin/guile', 'bin/guile-config',
+ 'bin/guile-snarf', 'bin/guile-tools',
+ 'include/guile/%(version_major_minor)s/libguile.h',
+ 'lib/libguile-%(version_major_minor)s.a',
+ 'lib/libguile-%%(version_major_minor)s.%s' % SHLIB_EXT],
+ 'dirs': ['include/guile/%(version_major_minor)s/libguile',
+ 'lib/guile/%(version_major_minor)s/ccache'],
+}
+
+moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/g/Gurobi/Gurobi-11.0.2-GCCcore-12.3.0.eb b/easybuild/easyconfigs/g/Gurobi/Gurobi-11.0.2-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..0e8c4d8115e
--- /dev/null
+++ b/easybuild/easyconfigs/g/Gurobi/Gurobi-11.0.2-GCCcore-12.3.0.eb
@@ -0,0 +1,63 @@
+name = 'Gurobi'
+version = '11.0.2'
+
+homepage = 'https://www.gurobi.com'
+description = """The Gurobi Optimizer is a state-of-the-art solver for mathematical programming.
+The solvers in the Gurobi Optimizer were designed from the ground up to exploit modern
+architectures and multi-core processors, using the most advanced implementations of the
+latest algorithms."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = ['https://packages.gurobi.com/%(version_major_minor)s/']
+local_archs = {'aarch64': 'armlinux64', 'x86_64': 'linux64'}
+sources = ['gurobi%%(version)s_%s.tar.gz' % local_archs[ARCH]]
+patches = ['Gurobi-11.0.0_use-eb-python-gurobi-shell.patch']
+checksums = [
+ {'gurobi11.0.2_linux64.tar.gz': 'f43ac8a3edb987b9a0a61452acd9d8dbe9eb37368c6da7ce36e5247cb2a1a368',
+ 'gurobi11.0.2_armlinux64.tar.gz': '311b38a89717e26f3f829479ef8e6776674b2711c427a90b84ac9978acd19ff2'},
+ {'Gurobi-11.0.0_use-eb-python-gurobi-shell.patch':
+ '566473a3ba4e35b0e74595368f9f4133fc4a3c97cca84154c4b938645786e663'},
+]
+
+builddependencies = [
+ ('binutils', '2.40'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+]
+
+exts_defaultclass = 'PythonPackage'
+
+exts_default_options = {
+ 'source_urls': [PYPI_SOURCE],
+ 'download_dep_fail': True,
+ 'use_pip': True,
+}
+
+exts_list = [
+ ('gurobipy', version, {
+ 'sources': ['gurobipy-%(version)s-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_%(arch)s.whl'],
+ 'checksums': [{
+ 'gurobipy-%(version)s-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_aarch64.whl':
+ '871e818026c8f288d7440fcd4b842becdf1006f43495fc4f6e3ec6d9b8ba3d7a',
+ 'gurobipy-%(version)s-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl':
+ '86265b7a9a8f3e531c1bbee6e61c1e7d0b68264e976795b4cf7aec68b9e66eb8',
+ }],
+ }),
+]
+
+# remove bundled Python interpreter in favour of the dependency in EB
+postinstallcmds = ['rm %(installdir)s/bin/python*']
+
+# license is mandatory for installation
+# use EB_GUROBI_LICENSE_FILE environment variable, or
+# uncomment and modify the following variable:
+# license_file = '/path/to/my-license-file'
+
+modloadmsg = """Gurobi shell based on Python %(pyver)s can be launched with command `gurobi.sh`
+Gurobi Python Interface can be loaded in Python %(pyver)s with 'import gurobipy'
+"""
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/g/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/Gymnasium/Gymnasium-0.29.1-foss-2023a.eb b/easybuild/easyconfigs/g/Gymnasium/Gymnasium-0.29.1-foss-2023a.eb
new file mode 100644
index 00000000000..e389e3ef7d7
--- /dev/null
+++ b/easybuild/easyconfigs/g/Gymnasium/Gymnasium-0.29.1-foss-2023a.eb
@@ -0,0 +1,52 @@
+easyblock = 'PythonBundle'
+
+name = 'Gymnasium'
+version = '0.29.1'
+
+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 = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('OpenCV', '4.8.1', '-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/g2lib/g2lib-3.2.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/g/g2lib/g2lib-3.2.0-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..04674a29ff7
--- /dev/null
+++ b/easybuild/easyconfigs/g/g2lib/g2lib-3.2.0-GCCcore-13.2.0.eb
@@ -0,0 +1,32 @@
+name = 'g2lib'
+version = '3.2.0'
+
+homepage = 'https://www.nco.ncep.noaa.gov/pmb/codes/GRIB2/'
+description = """Library contains GRIB2 encoder/decoder and search/indexing routines."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+source_urls = [homepage]
+sources = ['%(name)s-%(version)s.tar']
+patches = [
+ '%(name)s-%(version)s_makefile.patch',
+]
+checksums = [
+ '9d3866de32e13e80798bfb08dbbea9223f32cec3fce3c57b6838e76f27d5a1d3', # g2lib-3.2.0.tar
+ 'e434394a6ec8bd68dbd57e3fdb44c47372b07380e362ed955bb038b78dd81812', # g2lib-3.2.0_makefile.patch
+]
+
+builddependencies = [('binutils', '2.40')]
+
+dependencies = [
+ ('JasPer', '4.0.0'),
+ ('libpng', '1.6.40'),
+]
+
+buildopts = 'CFLAGS="$CFLAGS -DLINUXG95 -D__64BIT__" FC=$FC CC=$CC '
+buildopts += 'FFLAGS="$FFLAGS -fno-range-check -fallow-invalid-boz -fallow-argument-mismatch -I."'
+
+# parallel build tends to fail
+parallel = 1
+
+moduleclass = 'data'
diff --git a/easybuild/easyconfigs/g/gap/gap-4.13.0-foss-2023b.eb b/easybuild/easyconfigs/g/gap/gap-4.13.0-foss-2023b.eb
new file mode 100644
index 00000000000..248ab5ded0a
--- /dev/null
+++ b/easybuild/easyconfigs/g/gap/gap-4.13.0-foss-2023b.eb
@@ -0,0 +1,55 @@
+easyblock = 'ConfigureMake'
+
+name = 'gap'
+version = '4.13.0'
+
+homepage = 'https://www.gap-system.org'
+description = """GAP is a system for computational discrete algebra,
+with particular emphasis on Computational Group Theory."""
+
+toolchain = {'name': 'foss', 'version': '2023b'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://www.gap-system.org/pub/gap/gap-%(version_major_minor)s/tar.gz/']
+sources = [SOURCE_TAR_GZ]
+checksums = ['cc76ecbe33d6719450a593e613fb87e9e4247faa876f632dd0f97c398f92265d']
+
+unpack_options = '--strip-components=1'
+
+builddependencies = [
+ ('Perl', '5.38.0'), # needed to install NormalizInterface
+]
+
+dependencies = [
+ ('GMP', '6.3.0'),
+ ('libreadline', '8.2'),
+ ('zlib', '1.2.13'),
+ ('4ti2', '1.6.10'), # needed by 4ti2Interface, HeLP
+ ('cddlib', '0.94m'), # needed by CddInterface
+ ('cURL', '8.3.0'), # needed by curlInterface
+ ('lrslib', '7.2'), # needed by HeLP
+ ('ncurses', '6.4'), # needed by Browse
+ ('Normaliz', '3.10.3'), # needed by NormalizInterface, HeLP
+ ('Singular', '4.4.0'), # needed by singular
+ ('ZeroMQ', '4.3.5'), # needed by ZeroMQInterface
+]
+
+# install target is incomplete and hardcodes the build path
+buildininstalldir = True
+
+# Disable bundled script to download and build Normaliz
+prebuildopts = "sed -i 's|./build-normaliz.sh|continue # build-normaliz.sh|' bin/BuildPackages.sh && "
+# BuildPackages.sh tries to build any GAP packages that require compilation
+# If one fails due to missing dependencies, it's skipped automatically
+buildopts = ' && cd pkg && ../bin/BuildPackages.sh'
+
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in ['gap', 'gac']] +
+ ['include/gap/%s.h' % h for h in ['gap', 'system', 'version']] +
+ ['lib/libgap.%s' % SHLIB_EXT],
+ 'dirs': ['share/gap']
+}
+
+sanity_check_commands = ["gap tst/testinstall.g"]
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/g/gawk/gawk-5.3.0-GCC-12.3.0.eb b/easybuild/easyconfigs/g/gawk/gawk-5.3.0-GCC-12.3.0.eb
new file mode 100644
index 00000000000..8c63821d169
--- /dev/null
+++ b/easybuild/easyconfigs/g/gawk/gawk-5.3.0-GCC-12.3.0.eb
@@ -0,0 +1,23 @@
+easyblock = 'ConfigureMake'
+
+name = 'gawk'
+version = '5.3.0'
+
+homepage = 'https://www.gnu.org/software/gawk'
+description = """The awk utility interprets a special-purpose programming language that makes it possible to handle
+simple data-reformatting jobs with just a few lines of code."""
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+
+source_urls = [GNU_SOURCE]
+sources = [SOURCE_TAR_GZ]
+checksums = ['378f8864ec21cfceaa048f7e1869ac9b4597b449087caf1eb55e440d30273336']
+
+sanity_check_paths = {
+ 'files': ['bin/gawk'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["gawk --help"]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/g/gc/gc-8.2.6-GCCcore-13.3.0.eb b/easybuild/easyconfigs/g/gc/gc-8.2.6-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..3a120e6a4e9
--- /dev/null
+++ b/easybuild/easyconfigs/g/gc/gc-8.2.6-GCCcore-13.3.0.eb
@@ -0,0 +1,42 @@
+easyblock = 'ConfigureMake'
+
+name = 'gc'
+version = '8.2.6'
+local_libatomic_version = '7.8.2'
+
+homepage = 'https://hboehm.info/gc/'
+description = """The Boehm-Demers-Weiser conservative garbage collector can be used as a
+garbage collecting replacement for C malloc or C++ new.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = [
+ 'https://github.com/ivmai/bdwgc/releases/download/v%(version)s/', # preferred for gc-%(version)s.tar.gz
+ 'https://hboehm.info/gc/gc_source/', # alternate for gc-%(version)s.tar.gz
+ 'https://github.com/ivmai/libatomic_ops/releases/download/v%s/' % local_libatomic_version,
+]
+sources = [
+ SOURCE_TAR_GZ,
+ 'libatomic_ops-%s.tar.gz' % local_libatomic_version,
+]
+checksums = [
+ {'gc-8.2.6.tar.gz': 'b9183fe49d4c44c7327992f626f8eaa1d8b14de140f243edb1c9dcff7719a7fc'},
+ {'libatomic_ops-7.8.2.tar.gz': 'd305207fe207f2b3fb5cb4c019da12b44ce3fcbc593dfd5080d867b1a2419b51'},
+]
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+
+preconfigopts = 'ln -s %(builddir)s/libatomic_ops*/ libatomic_ops && '
+
+configopts = "--enable-static"
+
+sanity_check_paths = {
+ 'files': ['include/gc.h', 'lib/libcord.a', 'lib/libcord.%s' % SHLIB_EXT,
+ 'lib/libgc.a', 'lib/libgc.%s' % SHLIB_EXT],
+ 'dirs': ['include/gc', 'share'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/g/genomepy/genomepy-0.16.1-foss-2023a.eb b/easybuild/easyconfigs/g/genomepy/genomepy-0.16.1-foss-2023a.eb
new file mode 100644
index 00000000000..345af8fe325
--- /dev/null
+++ b/easybuild/easyconfigs/g/genomepy/genomepy-0.16.1-foss-2023a.eb
@@ -0,0 +1,56 @@
+easyblock = 'PythonBundle'
+
+name = 'genomepy'
+version = '0.16.1'
+
+homepage = 'https://github.com/vanheeringen-lab/genomepy'
+description = "genomepy is designed to provide a simple and straightforward way to download and use genomic data"
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+builddependencies = [('hatchling', '1.18.0')]
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('SciPy-bundle', '2023.07'),
+ ('tqdm', '4.66.1'),
+ ('Biopython', '1.83'),
+ ('mygene', '3.2.2'),
+ ('pyfaidx', '0.8.1.1'),
+ ('PyYAML', '6.0'),
+ ('protobuf-python', '4.24.0'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('diskcache', '5.6.3', {
+ 'checksums': ['2c3a3fa2743d8535d832ec61c2054a1641f41775aa7c556758a109941e33e4fc'],
+ }),
+ ('loguru', '0.7.2', {
+ 'checksums': ['e671a53522515f34fd406340ee968cb9ecafbc4b36c679da03c18fd8d0bd51ac'],
+ }),
+ ('mysql-connector-python', '8.4.0', {
+ 'modulename': 'mysql.connector',
+ 'sources': ['mysql_connector_python-%(version)s-py2.py3-none-any.whl'],
+ 'checksums': ['35939c4ff28f395a5550bae67bafa4d1658ea72ea3206f457fff64a0fbec17e4'],
+ }),
+ ('norns', '0.1.6', {
+ 'preinstallopts': "sed -i '/nose/d' setup.py && ",
+ 'checksums': ['1f3c6ccbe79b2cb3076f66a352cd76462593adbabe9ebb262f879a9d0a6634e4'],
+ }),
+ (name, version, {
+ 'checksums': ['22e81827acfdb4d9e6adda1f8e4cfafbb97f1c1788348e86b930c9daa51088c5'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/genomepy'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = ["genomepy --help"]
+
+sanity_pip_check = True
+
+moduleclass = 'bio'
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/gettext/gettext-0.22.5-GCCcore-13.3.0.eb b/easybuild/easyconfigs/g/gettext/gettext-0.22.5-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..b5e182315e9
--- /dev/null
+++ b/easybuild/easyconfigs/g/gettext/gettext-0.22.5-GCCcore-13.3.0.eb
@@ -0,0 +1,38 @@
+easyblock = 'ConfigureMake'
+
+name = 'gettext'
+version = '0.22.5'
+
+homepage = 'https://www.gnu.org/software/gettext/'
+description = """GNU 'gettext' is an important step for the GNU Translation Project, as it is an asset on which we may
+build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools
+and documentation"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = [GNU_SOURCE]
+sources = [SOURCE_TAR_GZ]
+checksums = ['ec1705b1e969b83a9f073144ec806151db88127f5e40fe5a94cb6c8fa48996a0']
+
+builddependencies = [('binutils', '2.42')]
+
+dependencies = [
+ ('libxml2', '2.12.7'),
+ ('ncurses', '6.5'),
+ ('libiconv', '1.17'),
+]
+
+configopts = '--without-emacs --with-libxml2-prefix=$EBROOTLIBXML2'
+
+sanity_check_paths = {
+ 'files': ['bin/gettext', 'lib/libasprintf.a', 'lib/libasprintf.%s' % SHLIB_EXT,
+ 'lib/libgettextpo.a', 'lib/libgettextpo.%s' % SHLIB_EXT],
+ 'dirs': ['include'],
+}
+
+sanity_check_commands = [
+ "gettext --help",
+ "msginit --help",
+]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/g/gettext/gettext-0.22.5.eb b/easybuild/easyconfigs/g/gettext/gettext-0.22.5.eb
new file mode 100644
index 00000000000..9c596a9eb89
--- /dev/null
+++ b/easybuild/easyconfigs/g/gettext/gettext-0.22.5.eb
@@ -0,0 +1,39 @@
+easyblock = 'ConfigureMake'
+
+name = 'gettext'
+version = '0.22.5'
+
+homepage = 'https://www.gnu.org/software/gettext/'
+description = """GNU 'gettext' is an important step for the GNU Translation Project, as it is an asset on which we may
+build many other steps. This package offers to programmers, translators, and even users, a well integrated set of tools
+and documentation"""
+
+# This is a basic stripped down version of gettext without any
+# dependencies on other packages used as initial builddep for XZ
+# It is the first step in the cyclic dependency chain of
+# XZ -> libxml2 -> gettext -> XZ
+
+toolchain = SYSTEM
+
+source_urls = [GNU_SOURCE]
+sources = [SOURCE_TAR_GZ]
+checksums = ['ec1705b1e969b83a9f073144ec806151db88127f5e40fe5a94cb6c8fa48996a0']
+
+dependencies = [
+ ('ncurses', '6.5'),
+]
+
+configopts = '--without-emacs --with-included-libxml --without-xz --without-bzip2'
+
+sanity_check_paths = {
+ 'files': ['bin/gettext', 'lib/libasprintf.a', 'lib/libasprintf.%s' % SHLIB_EXT,
+ 'lib/libgettextpo.a', 'lib/libgettextpo.%s' % SHLIB_EXT],
+ 'dirs': ['include'],
+}
+
+sanity_check_commands = [
+ "gettext --help",
+ "msginit --help",
+]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/g/gfbf/gfbf-2024.05.eb b/easybuild/easyconfigs/g/gfbf/gfbf-2024.05.eb
new file mode 100644
index 00000000000..f0c1233309a
--- /dev/null
+++ b/easybuild/easyconfigs/g/gfbf/gfbf-2024.05.eb
@@ -0,0 +1,20 @@
+easyblock = 'Toolchain'
+
+name = 'gfbf'
+version = '2024.05'
+
+homepage = '(none)'
+description = """GNU Compiler Collection (GCC) based compiler toolchain, including
+ FlexiBLAS (BLAS and LAPACK support) and (serial) FFTW."""
+
+toolchain = SYSTEM
+
+local_gccver = '13.3.0'
+
+dependencies = [
+ ('GCC', local_gccver),
+ ('FlexiBLAS', '3.4.4', '', ('GCC', local_gccver)),
+ ('FFTW', '3.3.10', '', ('GCC', local_gccver)),
+]
+
+moduleclass = 'toolchain'
diff --git a/easybuild/easyconfigs/g/gfbf/gfbf-2024a.eb b/easybuild/easyconfigs/g/gfbf/gfbf-2024a.eb
new file mode 100644
index 00000000000..51b74722cb5
--- /dev/null
+++ b/easybuild/easyconfigs/g/gfbf/gfbf-2024a.eb
@@ -0,0 +1,20 @@
+easyblock = 'Toolchain'
+
+name = 'gfbf'
+version = '2024a'
+
+homepage = '(none)'
+description = """GNU Compiler Collection (GCC) based compiler toolchain, including
+ FlexiBLAS (BLAS and LAPACK support) and (serial) FFTW."""
+
+toolchain = SYSTEM
+
+local_gccver = '13.3.0'
+
+dependencies = [
+ ('GCC', local_gccver),
+ ('FlexiBLAS', '3.4.4', '', ('GCC', local_gccver)),
+ ('FFTW', '3.3.10', '', ('GCC', local_gccver)),
+]
+
+moduleclass = 'toolchain'
diff --git a/easybuild/easyconfigs/g/gffread/gffread-0.12.7-GCCcore-12.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/gh/gh-2.52.0.eb b/easybuild/easyconfigs/g/gh/gh-2.52.0.eb
new file mode 100644
index 00000000000..53a5bb57d66
--- /dev/null
+++ b/easybuild/easyconfigs/g/gh/gh-2.52.0.eb
@@ -0,0 +1,28 @@
+easyblock = 'GoPackage'
+
+name = 'gh'
+version = '2.52.0'
+
+homepage = 'https://github.com/cli/'
+description = "GitHub’s official command line tool"
+
+toolchain = SYSTEM
+
+source_urls = ['https://github.com/cli/cli/archive']
+sources = ['v%(version)s.tar.gz']
+checksums = ['41de39d0f1bcacb454d9b8a46e5b97ff8b8e803cd26d284e553e45bf025325d9']
+
+builddependencies = [
+ ('Go', '1.22.1')
+]
+
+installopts = './cmd/%(name)s'
+
+sanity_check_paths = {
+ 'files': ['bin/%(name)s'],
+ 'dirs': []
+}
+
+sanity_check_commands = ['%(name)s --version']
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/g/giac/giac-1.9.0-99-gfbf-2023b.eb b/easybuild/easyconfigs/g/giac/giac-1.9.0-99-gfbf-2023b.eb
new file mode 100644
index 00000000000..7680e38cbdb
--- /dev/null
+++ b/easybuild/easyconfigs/g/giac/giac-1.9.0-99-gfbf-2023b.eb
@@ -0,0 +1,43 @@
+easyblock = 'ConfigureMake'
+
+name = 'giac'
+version = '1.9.0-99'
+
+homepage = 'https://www-fourier.ujf-grenoble.fr/~parisse/giac.html'
+description = """Giac is a C++ library, it is the CAS computing kernel.
+ It may be used inside other C++ programs, and also Python, Java and Javascript programs."""
+
+toolchain = {'name': 'gfbf', 'version': '2023b'}
+toolchainopts = {'cstd': 'gnu++14'}
+
+source_urls = ['https://www-fourier.ujf-grenoble.fr/~parisse/debian/dists/stable/main/source/']
+sources = ['giac_%(version)s.tar.gz']
+checksums = ['166775fbf2becd583c6ffa23ca6ca8a0b44dd7790dca8d966da767d3f6647ce4']
+
+dependencies = [
+ ('FLTK', '1.3.9'),
+ ('GLPK', '5.0'),
+ ('GMP-ECM', '7.0.5'),
+ ('GSL', '2.7'),
+ ('MPFI', '1.5.4'),
+ ('NTL', '11.5.1'),
+ ('PARI-GP', '2.15.5'),
+ ('CoCoALib', '0.99850'),
+ ('cURL', '8.3.0'),
+ ('cliquer', '1.21'),
+ ('libpng', '1.6.40'),
+ ('libreadline', '8.2'),
+ ('nauty', '2.8.8'),
+ ('hevea', '2.36'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in ['cas_help', 'hevea2mml', 'icas', 'pgiac', 'xcas']] +
+ ['lib/libgiac.%s' % e for e in ['a', SHLIB_EXT]] +
+ ['include/giac/giac.h'],
+ 'dirs': ['share'],
+}
+
+sanity_check_commands = ["giac <(echo '?findhelp') | grep \"Returns the help about the command\""]
+
+moduleclass = 'math'
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/git/git-2.45.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/g/git/git-2.45.1-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..3cd07e7cc61
--- /dev/null
+++ b/easybuild/easyconfigs/g/git/git-2.45.1-GCCcore-13.3.0.eb
@@ -0,0 +1,42 @@
+easyblock = 'ConfigureMake'
+
+name = 'git'
+version = '2.45.1'
+
+homepage = 'https://git-scm.com'
+description = """Git is a free and open source distributed version control system designed
+to handle everything from small to very large projects with speed and efficiency."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://github.com/git/git/archive']
+sources = ['v%(version)s.tar.gz']
+checksums = ['d98c8f70d58f49f7546d59b25e25f2deae6999eb036a33b0fe6f5d07c33f67c6']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('Autotools', '20231222'),
+]
+
+dependencies = [
+ ('cURL', '8.7.1'),
+ ('expat', '2.6.2'),
+ ('gettext', '0.22.5'),
+ ('Perl', '5.38.2'),
+ ('OpenSSL', '3', '', SYSTEM),
+]
+
+preconfigopts = 'make configure && '
+
+# Work around git build system bug. If LIBS contains -lpthread, then configure
+# will not append -lpthread to LDFLAGS, but Makefile ignores LIBS.
+configopts = "--with-perl=${EBROOTPERL}/bin/perl --enable-pthreads='-lpthread'"
+
+postinstallcmds = ['cd contrib/subtree; make install']
+
+sanity_check_paths = {
+ 'files': ['bin/git'],
+ 'dirs': ['libexec/git-core', 'share'],
+}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/g/glew/glew-2.2.0-GCCcore-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/glew/glew-2.2.0-GCCcore-12.3.0-egl.eb b/easybuild/easyconfigs/g/glew/glew-2.2.0-GCCcore-12.3.0-egl.eb
new file mode 100644
index 00000000000..81bca17cbb7
--- /dev/null
+++ b/easybuild/easyconfigs/g/glew/glew-2.2.0-GCCcore-12.3.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.3.0'}
+
+source_urls = ['https://github.com/nigels-com/glew/releases/download/%(name)s-%(version)s/']
+sources = ['%(name)s-%(version)s.tgz']
+checksums = ['d4fc82893cfb00109578d0a1a2337fb8ca335b3ceccf97b97e5cc7f08e4353e1']
+
+builddependencies = [('binutils', '2.40')]
+
+dependencies = [
+ ('Mesa', '23.1.4'),
+ ('X11', '20230603'),
+]
+
+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/gmpflf/gmpflf-2024.06.eb b/easybuild/easyconfigs/g/gmpflf/gmpflf-2024.06.eb
new file mode 100644
index 00000000000..bd4f74361b7
--- /dev/null
+++ b/easybuild/easyconfigs/g/gmpflf/gmpflf-2024.06.eb
@@ -0,0 +1,27 @@
+easyblock = 'Toolchain'
+
+name = 'gmpflf'
+version = '2024.06'
+
+homepage = '(none)'
+description = """GNU Compiler Collection (GCC) based compiler toolchain, including
+ MPICH for MPI support, FlexiBLAS (OpenBLAS and LAPACK), FFTW and ScaLAPACK."""
+
+toolchain = SYSTEM
+
+local_gccver = '12.3.0'
+
+# toolchain used to build gmpflf dependencies
+local_comp_mpi_tc = ('gmpich', version)
+
+# we need GCC and MPICH as explicit dependencies instead of gompi toolchain
+# because of toolchain preparation functions
+dependencies = [
+ ('GCC', local_gccver),
+ ('MPICH', '4.2.1', '', ('GCC', local_gccver)),
+ ('FlexiBLAS', '3.3.1', '', ('GCC', local_gccver)),
+ ('FFTW', '3.3.10', '', ('GCC', local_gccver)),
+ ('FFTW.MPI', '3.3.10', '', local_comp_mpi_tc),
+ ('ScaLAPACK', '2.2.0', '-fb', local_comp_mpi_tc),
+]
+moduleclass = 'toolchain'
diff --git a/easybuild/easyconfigs/g/gmpich/gmpich-2024.06.eb b/easybuild/easyconfigs/g/gmpich/gmpich-2024.06.eb
new file mode 100644
index 00000000000..14afd408f3d
--- /dev/null
+++ b/easybuild/easyconfigs/g/gmpich/gmpich-2024.06.eb
@@ -0,0 +1,20 @@
+easyblock = 'Toolchain'
+
+name = 'gmpich'
+version = '2024.06'
+
+
+homepage = '(none)'
+description = """gcc and GFortran based compiler toolchain,
+ including MPICH for MPI support."""
+
+toolchain = SYSTEM
+
+local_gccver = '12.3.0'
+
+dependencies = [
+ ('GCC', local_gccver),
+ ('MPICH', '4.2.1', '', ('GCC', local_gccver)),
+]
+
+moduleclass = 'toolchain'
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/gnupg-bundle/gnupg-bundle-20240306-GCCcore-13.2.0.eb b/easybuild/easyconfigs/g/gnupg-bundle/gnupg-bundle-20240306-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..67d7657a048
--- /dev/null
+++ b/easybuild/easyconfigs/g/gnupg-bundle/gnupg-bundle-20240306-GCCcore-13.2.0.eb
@@ -0,0 +1,66 @@
+easyblock = 'Bundle'
+
+name = 'gnupg-bundle'
+version = '20240306'
+
+homepage = 'https://www.gnupg.org/software/index.html'
+description = """GnuPG — The Universal Crypto Engine"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+builddependencies = [('binutils', '2.40')]
+
+default_easyblock = 'ConfigureMake'
+
+default_component_specs = {
+ 'sources': [SOURCE_TAR_BZ2],
+ 'start_dir': '%(name)s-%(version)s',
+}
+
+components = [
+ ('libgpg-error', '1.48', { # 2024-02-23
+ 'source_urls': ['https://www.gnupg.org/ftp/gcrypt/libgpg-error/'],
+ 'checksums': ['89ce1ae893e122924b858de84dc4f67aae29ffa610ebf668d5aa539045663d6f'],
+ }),
+ ('libassuan', '2.5.7', { # 2024-03-06
+ 'source_urls': ['https://www.gnupg.org/ftp/gcrypt/libassuan/'],
+ 'checksums': ['0103081ffc27838a2e50479153ca105e873d3d65d8a9593282e9c94c7e6afb76'],
+ }),
+ ('libgcrypt', '1.10.3', { # 2023-11-14
+ 'source_urls': ['https://www.gnupg.org/ftp/gcrypt/libgcrypt/'],
+ 'checksums': ['8b0870897ac5ac67ded568dcfadf45969cfa8a6beb0fd60af2a9eadc2a3272aa'],
+ }),
+ ('libksba', '1.6.6', { # 2024-02-23
+ 'source_urls': ['https://www.gnupg.org/ftp/gcrypt/libksba/'],
+ 'checksums': ['5dec033d211559338838c0c4957c73dfdc3ee86f73977d6279640c9cd08ce6a4'],
+ }),
+ ('npth', '1.7', { # 2024-02-23
+ 'source_urls': ['https://www.gnupg.org/ftp/gcrypt/npth/'],
+ 'checksums': ['8589f56937b75ce33b28d312fccbf302b3b71ec3f3945fde6aaa74027914ad05'],
+ }),
+ ('gnupg', '2.4.5', { # 2024-03-07
+ 'source_urls': ['https://www.gnupg.org/ftp/gcrypt/gnupg/'],
+ 'checksums': ['f68f7d75d06cb1635c336d34d844af97436c3f64ea14bcb7c869782f96f44277'],
+ }),
+ ('gpgme', '1.23.2', { # 2023-11-28
+ 'source_urls': ['https://www.gnupg.org/ftp/gcrypt/gpgme/'],
+ 'checksums': ['9499e8b1f33cccb6815527a1bc16049d35a6198a6c5fae0185f2bd561bce5224'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': [
+ 'bin/gpgrt-config',
+ 'bin/libassuan-config',
+ 'bin/libgcrypt-config',
+ 'include/gpg-error.h',
+ 'include/gcrypt.h',
+ 'include/gpgrt.h',
+ 'include/gpgme.h',
+ 'include/npth.h',
+ 'include/assuan.h',
+ ],
+ 'dirs': ['lib/pkgconfig'],
+}
+
+moduleclass = 'system'
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/gompi/gompi-2024.05.eb b/easybuild/easyconfigs/g/gompi/gompi-2024.05.eb
new file mode 100644
index 00000000000..c3f4137cd28
--- /dev/null
+++ b/easybuild/easyconfigs/g/gompi/gompi-2024.05.eb
@@ -0,0 +1,20 @@
+easyblock = 'Toolchain'
+
+name = 'gompi'
+version = '2024.05'
+
+homepage = '(none)'
+description = """GNU Compiler Collection (GCC) based compiler toolchain,
+ including OpenMPI for MPI support."""
+
+toolchain = SYSTEM
+
+local_gccver = '13.3.0'
+
+# compiler toolchain dependencies
+dependencies = [
+ ('GCC', local_gccver), # includes both GCC and binutils
+ ('OpenMPI', '5.0.3', '', ('GCC', local_gccver)),
+]
+
+moduleclass = 'toolchain'
diff --git a/easybuild/easyconfigs/g/gompi/gompi-2024a.eb b/easybuild/easyconfigs/g/gompi/gompi-2024a.eb
new file mode 100644
index 00000000000..c49f4050ff8
--- /dev/null
+++ b/easybuild/easyconfigs/g/gompi/gompi-2024a.eb
@@ -0,0 +1,20 @@
+easyblock = 'Toolchain'
+
+name = 'gompi'
+version = '2024a'
+
+homepage = '(none)'
+description = """GNU Compiler Collection (GCC) based compiler toolchain,
+ including OpenMPI for MPI support."""
+
+toolchain = SYSTEM
+
+local_gccver = '13.3.0'
+
+# compiler toolchain dependencies
+dependencies = [
+ ('GCC', local_gccver), # includes both GCC and binutils
+ ('OpenMPI', '5.0.3', '', ('GCC', local_gccver)),
+]
+
+moduleclass = 'toolchain'
diff --git a/easybuild/easyconfigs/g/googletest/googletest-1.15.2-GCCcore-13.3.0.eb b/easybuild/easyconfigs/g/googletest/googletest-1.15.2-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..16b74bdae1b
--- /dev/null
+++ b/easybuild/easyconfigs/g/googletest/googletest-1.15.2-GCCcore-13.3.0.eb
@@ -0,0 +1,28 @@
+easyblock = 'CMakeMake'
+
+name = 'googletest'
+version = '1.15.2'
+
+homepage = 'https://github.com/google/googletest'
+description = "Google's framework for writing C++ tests on a variety of platforms"
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://github.com/google/googletest/archive/refs/tags/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['7b42b4d6ed48810c5362c265a17faebe90dc2373c885e5216439d37927f02926']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('CMake', '3.29.3'),
+]
+# build twice, once for static, once for shared libraries
+configopts = ['', ' -DBUILD_SHARED_LIBS=ON ']
+
+sanity_check_paths = {
+ 'files': ['lib/lib%s.%s' % (local_lib, local_ext) for local_lib in ['gmock', 'gmock_main', 'gtest', 'gtest_main']
+ for local_ext in ['a', SHLIB_EXT]],
+ 'dirs': ['include/gmock', 'include/gtest'],
+}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/g/gperf/gperf-3.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/g/gperf/gperf-3.1-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..0cc2e3debee
--- /dev/null
+++ b/easybuild/easyconfigs/g/gperf/gperf-3.1-GCCcore-13.3.0.eb
@@ -0,0 +1,32 @@
+easyblock = 'ConfigureMake'
+
+name = 'gperf'
+version = '3.1'
+
+homepage = 'https://www.gnu.org/software/gperf/'
+description = """
+ GNU gperf is a perfect hash function generator. For a given list of strings,
+ it produces a hash function and hash table, in form of C or C++ code, for
+ looking up a value depending on the input string. The hash function is
+ perfect, which means that the hash table has no collisions, and the hash
+ table lookup needs a single string comparison only.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = [GNU_SOURCE]
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['588546b945bba4b70b6a3a616e80b4ab466e3f33024a352fc2198112cdbb3ae2']
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/gperf'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["gperf --help"]
+
+moduleclass = 'devel'
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/graph-tool/graph-tool-2.59-foss-2023a.eb b/easybuild/easyconfigs/g/graph-tool/graph-tool-2.59-foss-2023a.eb
new file mode 100644
index 00000000000..307e764d139
--- /dev/null
+++ b/easybuild/easyconfigs/g/graph-tool/graph-tool-2.59-foss-2023a.eb
@@ -0,0 +1,62 @@
+# Author: J. Sassmannshausen (Imperial College London/UK)
+# Update: Pavel Tománek (Inuits)
+
+easyblock = 'ConfigureMake'
+
+name = 'graph-tool'
+version = '2.59'
+
+homepage = 'https://graph-tool.skewed.de/'
+description = """Graph-tool is an efficient Python module for manipulation and
+ statistical analysis of graphs (a.k.a. networks). Contrary to
+ most other python modules with similar functionality, the core
+ data structures and algorithms are implemented in C++, making
+ extensive use of template metaprogramming, based heavily on
+ the Boost Graph Library. This confers it a level of
+ performance that is comparable (both in memory usage and
+ computation time) to that of a pure C/C++ library."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'cstd': 'c++17', 'openmp': True}
+
+source_urls = ['https://downloads.skewed.de/%(name)s/']
+sources = [SOURCE_TAR_BZ2]
+checksums = ['cde479c0a7254b72f6e795d03b0273b0a7d81611a6a3364ba649c2c85c99acae']
+
+builddependencies = [
+ ('gawk', '5.3.0'),
+ ('pkgconf', '1.9.5'),
+ ('expat', '2.5.0'),
+ ('CGAL', '5.6'),
+ ('GMP', '6.2.1'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Boost.Python', '1.82.0'),
+ ('sparsehash', '2.0.4'),
+ ('matplotlib', '3.7.2'),
+ ('PyCairo', '1.25.0'),
+ ('cairomm', '1.16.2'),
+ ('PyGObject', '3.46.0'),
+ ('GTK3', '3.24.37'),
+]
+
+configopts = '--enable-openmp --with-cgal=$EBROOTCGAL --with-boost=$EBROOTBOOST '
+configopts += '--with-boost-python=boost_python311 '
+configopts += '--with-python-module-path=%(installdir)s/lib/python%(pyshortver)s/site-packages '
+
+
+sanity_check_paths = {
+ 'files': ['lib/python%(pyshortver)s/site-packages/graph_tool/all.py'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages/graph_tool/include', 'share'],
+}
+
+sanity_check_commands = [
+ "python -c 'from graph_tool.all import Graph, BlockState'",
+ "python -c 'import graph_tool.inference'",
+]
+
+modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'}
+
+moduleclass = 'math'
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/groff/groff-1.23.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/g/groff/groff-1.23.0-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..000049dbdda
--- /dev/null
+++ b/easybuild/easyconfigs/g/groff/groff-1.23.0-GCCcore-13.3.0.eb
@@ -0,0 +1,26 @@
+easyblock = 'ConfigureMake'
+
+name = 'groff'
+version = '1.23.0'
+
+homepage = 'https://www.gnu.org/software/groff'
+description = """Groff (GNU troff) is a typesetting system that reads plain text mixed with formatting commands
+ and produces formatted output."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://ftp.gnu.org/gnu/groff']
+sources = [SOURCE_TAR_GZ]
+checksums = ['6b9757f592b7518b4902eb6af7e54570bdccba37a871fddb2d30ae3863511c13']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('M4', '1.4.19'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/groff', 'bin/nroff', 'bin/troff'],
+ 'dirs': ['lib/groff', 'share'],
+}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/g/grpcio/grpcio-1.57.0-GCCcore-12.2.0.eb b/easybuild/easyconfigs/g/grpcio/grpcio-1.57.0-GCCcore-12.2.0.eb
new file mode 100644
index 00000000000..27e974c5de0
--- /dev/null
+++ b/easybuild/easyconfigs/g/grpcio/grpcio-1.57.0-GCCcore-12.2.0.eb
@@ -0,0 +1,54 @@
+easyblock = 'PythonBundle'
+
+name = 'grpcio'
+version = '1.57.0'
+
+homepage = 'https://grpc.io/'
+description = """gRPC is a modern, open source, high-performance remote procedure call (RPC)
+framework that can run anywhere. gRPC enables client and server applications to
+communicate transparently, and simplifies the building of connected systems."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.2.0'}
+toolchainopts = {'pic': True}
+
+use_pip = True
+sanity_pip_check = True
+
+builddependencies = [
+ ('binutils', '2.39'),
+ ('OpenSSL', '1.1', '', SYSTEM),
+ ('RE2', '2023-03-01'),
+]
+
+dependencies = [
+ ('Python', '3.10.8'),
+ ('protobuf-python', '4.23.0'),
+ ('Abseil', '20230125.2'),
+]
+
+exts_list = [
+ (name, version, {
+ 'modulename': 'grpc',
+ 'preinstallopts': (
+ # patch hardcoded /usr paths to prefix them with alternate sysroot path (if defined)
+ "sed -i 's@/usr@%(sysroot)s/usr@g' setup.py && "
+ "export GRPC_PYTHON_BUILD_EXT_COMPILER_JOBS=%(parallel)s && "
+ # Required to avoid building with non-default C++ standard but keep other flags,
+ # see https://github.com/grpc/grpc/issues/34256
+ 'export GRPC_PYTHON_CFLAGS="-fvisibility=hidden -fno-wrapv -fno-exceptions" &&'
+ "GRPC_PYTHON_BUILD_SYSTEM_OPENSSL=True "
+ "GRPC_PYTHON_BUILD_SYSTEM_ZLIB=True "
+ "GRPC_PYTHON_BUILD_SYSTEM_RE2=True "
+ "GRPC_PYTHON_BUILD_SYSTEM_ABSL=True "
+ ),
+ 'patches': ['grpcio-1.57.0_use-ebroot.patch'],
+ 'checksums': [
+ {'grpcio-1.57.0.tar.gz':
+ '4b089f7ad1eb00a104078bab8015b0ed0ebcb3b589e527ab009c53893fd4e613'},
+ {'grpcio-1.57.0_use-ebroot.patch':
+ '5faf822cd817b723ae9361e43656d0ecc7b3333a166bbab2df80b43ae588e510'},
+ ],
+ }),
+]
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/g/grpcio/grpcio-1.57.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/g/grpcio/grpcio-1.57.0-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..01d839324bb
--- /dev/null
+++ b/easybuild/easyconfigs/g/grpcio/grpcio-1.57.0-GCCcore-12.3.0.eb
@@ -0,0 +1,54 @@
+easyblock = 'PythonBundle'
+
+name = 'grpcio'
+version = '1.57.0'
+
+homepage = 'https://grpc.io/'
+description = """gRPC is a modern, open source, high-performance remote procedure call (RPC)
+framework that can run anywhere. gRPC enables client and server applications to
+communicate transparently, and simplifies the building of connected systems."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+toolchainopts = {'pic': True}
+
+use_pip = True
+sanity_pip_check = True
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('OpenSSL', '1.1', '', SYSTEM),
+ ('RE2', '2023-08-01'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('protobuf-python', '4.24.0'),
+ ('Abseil', '20230125.3'),
+]
+
+exts_list = [
+ (name, version, {
+ 'modulename': 'grpc',
+ 'preinstallopts': (
+ # patch hardcoded /usr paths to prefix them with alternate sysroot path (if defined)
+ "sed -i 's@/usr@%(sysroot)s/usr@g' setup.py && "
+ "export GRPC_PYTHON_BUILD_EXT_COMPILER_JOBS=%(parallel)s && "
+ # Required to avoid building with non-default C++ standard but keep other flags,
+ # see https://github.com/grpc/grpc/issues/34256
+ 'export GRPC_PYTHON_CFLAGS="-fvisibility=hidden -fno-wrapv -fno-exceptions" &&'
+ "GRPC_PYTHON_BUILD_SYSTEM_OPENSSL=True "
+ "GRPC_PYTHON_BUILD_SYSTEM_ZLIB=True "
+ "GRPC_PYTHON_BUILD_SYSTEM_RE2=True "
+ "GRPC_PYTHON_BUILD_SYSTEM_ABSL=True "
+ ),
+ 'patches': ['grpcio-1.57.0_use-ebroot.patch'],
+ 'checksums': [
+ {'grpcio-1.57.0.tar.gz':
+ '4b089f7ad1eb00a104078bab8015b0ed0ebcb3b589e527ab009c53893fd4e613'},
+ {'grpcio-1.57.0_use-ebroot.patch':
+ '5faf822cd817b723ae9361e43656d0ecc7b3333a166bbab2df80b43ae588e510'},
+ ],
+ }),
+]
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/g/grpcio/grpcio-1.57.0_use-ebroot.patch b/easybuild/easyconfigs/g/grpcio/grpcio-1.57.0_use-ebroot.patch
new file mode 100644
index 00000000000..3a7bc8cc255
--- /dev/null
+++ b/easybuild/easyconfigs/g/grpcio/grpcio-1.57.0_use-ebroot.patch
@@ -0,0 +1,51 @@
+diff --git a/setup.py b/setup.py
+index 97c1dcec54..cc7bc8552e 100644
+--- a/setup.py
++++ b/setup.py
+@@ -313,29 +313,33 @@ if "win32" in sys.platform:
+ CORE_C_FILES = filter(lambda x: "third_party/cares" not in x, CORE_C_FILES)
+
+ if BUILD_WITH_SYSTEM_OPENSSL:
++ EBROOTOPENSSL = os.environ.get('EBROOTOPENSSL')
+ CORE_C_FILES = filter(
+ lambda x: "third_party/boringssl" not in x, CORE_C_FILES
+ )
+ CORE_C_FILES = filter(lambda x: "src/boringssl" not in x, CORE_C_FILES)
+- SSL_INCLUDE = (os.path.join("/usr", "include", "openssl"),)
++ SSL_INCLUDE = (os.path.join(EBROOTOPENSSL, "include", "openssl"),)
+
+ if BUILD_WITH_SYSTEM_ZLIB:
++ EBROOTZLIB = os.environ.get('EBROOTZLIB')
+ CORE_C_FILES = filter(lambda x: "third_party/zlib" not in x, CORE_C_FILES)
+- ZLIB_INCLUDE = (os.path.join("/usr", "include"),)
++ ZLIB_INCLUDE = (os.path.join(EBROOTZLIB, "include"),)
+
+ if BUILD_WITH_SYSTEM_CARES:
+ CORE_C_FILES = filter(lambda x: "third_party/cares" not in x, CORE_C_FILES)
+ CARES_INCLUDE = (os.path.join("/usr", "include"),)
+
+ if BUILD_WITH_SYSTEM_RE2:
++ EBROOTRE2 = os.environ.get('EBROOTRE2')
+ CORE_C_FILES = filter(lambda x: "third_party/re2" not in x, CORE_C_FILES)
+- RE2_INCLUDE = (os.path.join("/usr", "include", "re2"),)
++ RE2_INCLUDE = (os.path.join(EBROOTRE2, "include", "re2"),)
+
+ if BUILD_WITH_SYSTEM_ABSL:
++ EBROOTABSEIL = os.environ.get('EBROOTABSEIL')
+ CORE_C_FILES = filter(
+ lambda x: "third_party/abseil-cpp" not in x, CORE_C_FILES
+ )
+- ABSL_INCLUDE = (os.path.join("/usr", "include"),)
++ ABSL_INCLUDE = (os.path.join(EBROOTABSEIL, "include"),)
+
+ EXTENSION_INCLUDE_DIRECTORIES = (
+ (PYTHON_STEM,)
+@@ -378,7 +382,7 @@ if BUILD_WITH_SYSTEM_RE2:
+ EXTENSION_LIBRARIES += ("re2",)
+ if BUILD_WITH_SYSTEM_ABSL:
+ EXTENSION_LIBRARIES += tuple(
+- lib.stem[3:] for lib in pathlib.Path("/usr").glob("lib*/libabsl_*.so")
++ lib.stem[3:] for lib in pathlib.Path(EBROOTABSEIL).glob("lib*/libabsl_*.so")
+ )
+
+ DEFINE_MACROS = (("_WIN32_WINNT", 0x600),)
diff --git a/easybuild/easyconfigs/g/gsutil/gsutil-5.29-GCCcore-13.2.0.eb b/easybuild/easyconfigs/g/gsutil/gsutil-5.29-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..209e6e8c1fc
--- /dev/null
+++ b/easybuild/easyconfigs/g/gsutil/gsutil-5.29-GCCcore-13.2.0.eb
@@ -0,0 +1,90 @@
+easyblock = 'PythonBundle'
+
+name = 'gsutil'
+version = '5.29'
+
+homepage = 'https://cloud.google.com/storage/docs/gsutil'
+description = """gsutil is a Python application that lets you access Cloud Storage from the command line."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+builddependencies = [
+ ('binutils', '2.40')
+]
+
+dependencies = [
+ ('Python', '3.11.5'),
+ ('Python-bundle-PyPI', '2023.10'),
+ ('aiohttp', '3.9.5'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('httplib2', '0.20.4', {
+ 'checksums': ['58a98e45b4b1a48273073f905d2961666ecf0fbac4250ea5b47aef259eb5c585'],
+ }),
+ ('argcomplete', '3.3.0', {
+ 'checksums': ['fd03ff4a5b9e6580569d34b273f741e85cd9e072f3feeeee3eba4891c70eda62'],
+ }),
+ ('fasteners', '0.19', {
+ 'checksums': ['b4f37c3ac52d8a445af3a66bce57b33b5e90b97c696b7b984f530cf8f0ded09c'],
+ }),
+ ('google-auth', '2.17.0', {
+ 'modulename': 'google.auth',
+ 'checksums': ['f51d26ebb3e5d723b9a7dbd310b6c88654ef1ad1fc35750d1fdba48ca4d82f52'],
+ }),
+ ('rsa', '4.7.2', {
+ 'checksums': ['9d689e6ca1b3038bc82bf8d23e944b6b6037bc02301a574935b2dd946e0353b9'],
+ }),
+ ('google-apitools', '0.5.32', {
+ 'modulename': 'apitools',
+ 'checksums': ['c3763e52289f61e21c41d5531e20fbda9cc8484a088b8686fd460770db8bad13'],
+ }),
+ ('google-auth-httplib2', '0.2.0', {
+ 'checksums': ['38aa7badf48f974f1eb9861794e9c0cb2a0511a4ec0679b1f886d108f5640e05'],
+ }),
+ ('google-reauth', '0.1.1', {
+ 'checksums': ['f9f6852a55c2c5453d581cd01f3d1278e86147c03d008409800390a834235892'],
+ }),
+ ('monotonic', '1.6', {
+ 'checksums': ['3a55207bcfed53ddd5c5bae174524062935efed17792e9de2ad0205ce9ad63f7'],
+ }),
+ ('pyOpenSSL', '24.1.0', {
+ 'modulename': 'OpenSSL',
+ 'checksums': ['cabed4bfaa5df9f1a16c0ef64a0cb65318b5cd077a7eda7d6970131ca2f41a6f'],
+ }),
+ ('boto', '2.49.0', {
+ 'checksums': ['ea0d3b40a2d852767be77ca343b58a9e3a4b00d9db440efb8da74b4e58025e5a'],
+ }),
+ ('cachetools', '5.3.3', {
+ 'checksums': ['ba29e2dfa0b8b556606f097407ed1aa62080ee108ab0dc5ec9d6a723a007d105'],
+ }),
+ ('oauth2client', '4.1.3', {
+ 'checksums': ['d486741e451287f69568a4d26d70d9acd73a2bbfa275746c535b4209891cccc6'],
+ }),
+ ('pyasn1_modules', '0.4.0', {
+ 'checksums': ['831dbcea1b177b28c9baddf4c6d1013c24c3accd14a1873fffaa6a2e905f17b6'],
+ }),
+ ('pyu2f', '0.1.5', {
+ 'checksums': ['a3caa3a11842fc7d5746376f37195e6af5f17c0a15737538bb1cebf656fb306b'],
+ }),
+ ('crcmod', '1.7', {
+ 'checksums': ['dc7051a0db5f2bd48665a990d3ec1cc305a466a77358ca4492826f41f283601e'],
+ }),
+ ('gcs-oauth2-boto-plugin', '3.2', {
+ 'checksums': ['a46817f3abed2bc4f6b4b12b0de7c8bf5ff5f1822dc03c45fa1ae6ed7a455843'],
+ }),
+ ('retry_decorator', '1.1.1', {
+ 'checksums': ['e1e8ad02e518fe11073f2ea7d80b6b8be19daa27a60a1838aff7c731ddcf2ebe'],
+ }),
+ (name, version, {
+ 'modulename': 'gslib',
+ 'checksums': ['0ba61c0ca97a592a2ed9d6eeb74b20434831bc6ceba380138103b24d2d53b921'],
+ }),
+]
+
+sanity_check_commands = ['gsutil help']
+
+moduleclass = 'tools'
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/g/gzip/gzip-1.13-GCCcore-13.3.0.eb b/easybuild/easyconfigs/g/gzip/gzip-1.13-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..62e179b0998
--- /dev/null
+++ b/easybuild/easyconfigs/g/gzip/gzip-1.13-GCCcore-13.3.0.eb
@@ -0,0 +1,24 @@
+easyblock = 'ConfigureMake'
+
+name = 'gzip'
+version = '1.13'
+
+homepage = 'https://www.gnu.org/software/gzip/'
+description = "gzip (GNU zip) is a popular data compression program as a replacement for compress"
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = [GNU_SOURCE]
+sources = [SOURCE_TAR_GZ]
+checksums = ['20fc818aeebae87cdbf209d35141ad9d3cf312b35a5e6be61bfcfbf9eddd212a']
+
+builddependencies = [('binutils', '2.42')]
+
+sanity_check_paths = {
+ 'files': ["bin/gunzip", "bin/gzip", "bin/uncompress"],
+ 'dirs': [],
+}
+
+sanity_check_commands = [True, ('gzip', '--version')]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/h/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 453ca292d42..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.
@@ -12,7 +12,7 @@ description = """
toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
toolchainopts = {'pic': True}
-source_urls = ['http://www.hdfgroup.org/ftp/%(name)s/releases/%(name)s%(version)s/src/']
+source_urls = ['http://support.hdfgroup.org/ftp/%(name)s/releases/%(name)s%(version)s/src/']
sources = [SOURCELOWER_TAR_GZ]
checksums = [
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 6f54f50d488..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.
@@ -12,7 +12,7 @@ description = """
toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
toolchainopts = {'pic': True}
-source_urls = ['http://www.hdfgroup.org/ftp/%(name)s/releases/%(name)s%(version)s/src/']
+source_urls = ['http://support.hdfgroup.org/ftp/%(name)s/releases/%(name)s%(version)s/src/']
sources = [SOURCELOWER_TAR_GZ]
checksums = [
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 d24dbfac77e..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
@@ -13,7 +13,7 @@ description = """
toolchain = {'name': 'GCCcore', 'version': '12.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 = ['2bd48dcefb5ab4829fba27dca6fad20b842d495dfd64944b2412b2b0968bf167']
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/HOMER/HOMER-4.11-foss-2023a-R-4.3.2.eb b/easybuild/easyconfigs/h/HOMER/HOMER-4.11-foss-2023a-R-4.3.2.eb
new file mode 100644
index 00000000000..49de16a3d99
--- /dev/null
+++ b/easybuild/easyconfigs/h/HOMER/HOMER-4.11-foss-2023a-R-4.3.2.eb
@@ -0,0 +1,49 @@
+easyblock = 'Binary'
+
+name = 'HOMER'
+version = '4.11'
+versionsuffix = '-R-%(rver)s'
+
+homepage = "http://homer.ucsd.edu/homer/"
+description = """HOMER (Hypergeometric Optimization of Motif EnRichment) is a suite of tools for Motif Discovery and
+ next-gen sequencing analysis. It is a collection of command line programs for unix-style operating systems written
+ in Perl and C++. HOMER was primarily written as a de novo motif discovery algorithm and is well suited for finding
+ 8-20 bp motifs in large scale genomics data. HOMER contains many useful tools for analyzing ChIP-Seq, GRO-Seq,
+ RNA-Seq, DNase-Seq, Hi-C and numerous other types of functional genomics sequencing data sets."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+source_urls = ['http://homer.ucsd.edu/homer']
+sources = ['configureHomer.pl']
+checksums = ['ccdaa3004a0e0df0882634671d4a1acc88364761e0e6c7ea329ebbf1eb729537']
+
+builddependencies = [
+ ('wget', '1.24.5'),
+ ('Zip', '3.0'),
+ ('UnZip', '6.0'),
+]
+
+dependencies = [
+ ('Perl', '5.36.1'),
+ ('R', '4.3.2'),
+ ('SAMtools', '1.18'),
+ ('R-bundle-Bioconductor', '3.18', versionsuffix)
+]
+
+postinstallcmds = ["cd %(installdir)s && perl ./configureHomer.pl -install homer -version v%(version)s"]
+
+sanity_check_paths = {
+ 'files': [
+ 'bin/homer',
+ 'bin/getGenomeTilingPeaks',
+ 'config.txt',
+ 'DoughnutDocumentation.pdf',
+ 'data/accession/homologene.data',
+ 'motifs/hnf1b.motif',
+ ],
+ 'dirs': ['bin', 'data', 'motifs', 'update'],
+}
+
+sanity_check_commands = ["%(namelower)s --help"]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/h/HOMER/HOMER-4.11.1-foss-2022b.eb b/easybuild/easyconfigs/h/HOMER/HOMER-4.11.1-foss-2022b.eb
new file mode 100644
index 00000000000..0131cad9771
--- /dev/null
+++ b/easybuild/easyconfigs/h/HOMER/HOMER-4.11.1-foss-2022b.eb
@@ -0,0 +1,57 @@
+easyblock = 'Binary'
+
+name = 'HOMER'
+version = '4.11.1'
+
+homepage = 'http://homer.ucsd.edu/homer/'
+description = """HOMER (Hypergeometric Optimization of Motif EnRichment) is a suite of tools for Motif Discovery and
+next-gen sequencing analysis. It is a collection of command line programs for unix-style operating systems written
+in Perl and C++. HOMER was primarily written as a de novo motif discovery algorithm and is well suited for finding
+8-20 bp motifs in large scale genomics data. HOMER contains many useful tools for analyzing ChIP-Seq, GRO-Seq,
+RNA-Seq, DNase-Seq, Hi-C and numerous other types of functional genomics sequencing data sets."""
+
+toolchain = {'name': 'foss', 'version': '2022b'}
+
+source_urls = ['http://homer.ucsd.edu/homer/data/software']
+sources = ['homer.v%(version)s.zip']
+checksums = ['80d1cd00616729894017b24a36a2ef81f9cde8bd364e875aead1e0cfb500c82b']
+
+extract_sources = True
+
+builddependencies = [
+ ('wget', '1.21.4'),
+ ('Zip', '3.0'),
+ ('UnZip', '6.0'),
+]
+
+dependencies = [
+ ('Perl', '5.36.0'),
+ ('weblogo', '2.8.2'),
+ ('SAMtools', '1.17'),
+ ('Kent_tools', '461'),
+ ('R', '4.2.2'),
+ ('R-bundle-Bioconductor', '3.16', '-R-4.2.2')
+]
+
+buildininstalldir = True
+skipsteps = ['install']
+
+# This installs the entire suite, to install only base Homer package run :
+# cd %(installdir)s; perl ./configureHomer.pl -install homer
+postinstallcmds = ['perl ./configureHomer.pl -install -all -keepScript']
+
+sanity_check_paths = {
+ 'dirs': ['bin', 'data', 'motifs', 'update'],
+ 'files': [
+ 'bin/homer',
+ 'bin/getGenomeTilingPeaks',
+ 'config.txt',
+ 'DoughnutDocumentation.pdf',
+ 'data/accession/homologene.data',
+ 'motifs/hnf1b.motif',
+ ],
+}
+
+sanity_check_commands = ["%(namelower)s --help"]
+
+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/HPL/HPL-2.3-foss-2024.05.eb b/easybuild/easyconfigs/h/HPL/HPL-2.3-foss-2024.05.eb
new file mode 100644
index 00000000000..8dd7ddcfa9c
--- /dev/null
+++ b/easybuild/easyconfigs/h/HPL/HPL-2.3-foss-2024.05.eb
@@ -0,0 +1,21 @@
+name = 'HPL'
+version = '2.3'
+
+homepage = 'https://www.netlib.org/benchmark/hpl/'
+description = """HPL is a software package that solves a (random) dense linear system in double precision (64 bits)
+ arithmetic on distributed-memory computers. It can thus be regarded as a portable as well as freely available
+ implementation of the High Performance Computing Linpack Benchmark."""
+
+toolchain = {'name': 'foss', 'version': '2024.05'}
+toolchainopts = {'usempi': True}
+
+source_urls = ['https://www.netlib.org/benchmark/%(namelower)s']
+sources = [SOURCELOWER_TAR_GZ]
+# fix Make dependencies, so parallel build also works
+patches = ['HPL_parallel-make.patch']
+checksums = [
+ '32c5c17d22330e6f2337b681aded51637fb6008d3f0eb7c277b163fadd612830', # hpl-2.3.tar.gz
+ '2a5bf9c4f328049828ddecec7ba3f05a9e25d236f4212747c53bd22fea80c5e6', # HPL_parallel-make.patch
+]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/h/HPL/HPL-2.3-foss-2024a.eb b/easybuild/easyconfigs/h/HPL/HPL-2.3-foss-2024a.eb
new file mode 100644
index 00000000000..8a70a42bb41
--- /dev/null
+++ b/easybuild/easyconfigs/h/HPL/HPL-2.3-foss-2024a.eb
@@ -0,0 +1,21 @@
+name = 'HPL'
+version = '2.3'
+
+homepage = 'https://www.netlib.org/benchmark/hpl/'
+description = """HPL is a software package that solves a (random) dense linear system in double precision (64 bits)
+ arithmetic on distributed-memory computers. It can thus be regarded as a portable as well as freely available
+ implementation of the High Performance Computing Linpack Benchmark."""
+
+toolchain = {'name': 'foss', 'version': '2024a'}
+toolchainopts = {'usempi': True}
+
+source_urls = ['https://www.netlib.org/benchmark/%(namelower)s']
+sources = [SOURCELOWER_TAR_GZ]
+# fix Make dependencies, so parallel build also works
+patches = ['HPL_parallel-make.patch']
+checksums = [
+ '32c5c17d22330e6f2337b681aded51637fb6008d3f0eb7c277b163fadd612830', # hpl-2.3.tar.gz
+ '2a5bf9c4f328049828ddecec7ba3f05a9e25d236f4212747c53bd22fea80c5e6', # HPL_parallel-make.patch
+]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/h/HPL/HPL-2.3-gmpflf-2024.06.eb b/easybuild/easyconfigs/h/HPL/HPL-2.3-gmpflf-2024.06.eb
new file mode 100644
index 00000000000..a6a7fb49164
--- /dev/null
+++ b/easybuild/easyconfigs/h/HPL/HPL-2.3-gmpflf-2024.06.eb
@@ -0,0 +1,21 @@
+name = 'HPL'
+version = '2.3'
+
+homepage = 'https://www.netlib.org/benchmark/hpl/'
+description = """HPL is a software package that solves a (random) dense linear system in double precision (64 bits)
+ arithmetic on distributed-memory computers. It can thus be regarded as a portable as well as freely available
+ implementation of the High Performance Computing Linpack Benchmark."""
+
+toolchain = {'name': 'gmpflf', 'version': '2024.06'}
+toolchainopts = {'usempi': True}
+
+source_urls = ['https://www.netlib.org/benchmark/%(namelower)s']
+sources = [SOURCELOWER_TAR_GZ]
+# fix Make dependencies, so parallel build also works
+patches = ['HPL_parallel-make.patch']
+checksums = [
+ '32c5c17d22330e6f2337b681aded51637fb6008d3f0eb7c277b163fadd612830', # hpl-2.3.tar.gz
+ '2a5bf9c4f328049828ddecec7ba3f05a9e25d236f4212747c53bd22fea80c5e6', # HPL_parallel-make.patch
+]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/h/HPL/HPL-2.3-intel-2024a.eb b/easybuild/easyconfigs/h/HPL/HPL-2.3-intel-2024a.eb
new file mode 100644
index 00000000000..5544839d177
--- /dev/null
+++ b/easybuild/easyconfigs/h/HPL/HPL-2.3-intel-2024a.eb
@@ -0,0 +1,21 @@
+name = 'HPL'
+version = '2.3'
+
+homepage = 'https://www.netlib.org/benchmark/hpl/'
+description = """HPL is a software package that solves a (random) dense linear system in double precision (64 bits)
+ arithmetic on distributed-memory computers. It can thus be regarded as a portable as well as freely available
+ implementation of the High Performance Computing Linpack Benchmark."""
+
+toolchain = {'name': 'intel', 'version': '2024a'}
+toolchainopts = {'usempi': True}
+
+source_urls = ['https://www.netlib.org/benchmark/%(namelower)s']
+sources = [SOURCELOWER_TAR_GZ]
+# fix Make dependencies, so parallel build also works
+patches = ['HPL_parallel-make.patch']
+checksums = [
+ '32c5c17d22330e6f2337b681aded51637fb6008d3f0eb7c277b163fadd612830', # hpl-2.3.tar.gz
+ '2a5bf9c4f328049828ddecec7ba3f05a9e25d236f4212747c53bd22fea80c5e6', # HPL_parallel-make.patch
+]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/h/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/HTSeq/HTSeq-2.0.7-foss-2023a.eb b/easybuild/easyconfigs/h/HTSeq/HTSeq-2.0.7-foss-2023a.eb
new file mode 100644
index 00000000000..60ffab860b4
--- /dev/null
+++ b/easybuild/easyconfigs/h/HTSeq/HTSeq-2.0.7-foss-2023a.eb
@@ -0,0 +1,43 @@
+# Updated to PythonBundle and latest version from Pypi
+# Author: J. Sassmannshausen (Imperial College London/UK)
+# Update: P.Tománek (Inuits)
+
+easyblock = 'PythonBundle'
+
+name = 'HTSeq'
+version = '2.0.7'
+
+homepage = 'https://github.com/simon-anders/htseq'
+description = """HTSeq is a Python library to facilitate processing and analysis
+ of data from high-throughput sequencing (HTS) experiments."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+builddependencies = [('SWIG', '4.1.1')]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('Pysam', '0.22.0'),
+ ('SciPy-bundle', '2023.07'),
+ ('matplotlib', '3.7.2'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('htseq', version, {
+ 'modulename': 'HTSeq',
+ 'checksums': ['c1490cede77fb04c8f3a9efeb44d41399cd466a6082180529e63c1dade203fdd'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/%(namelower)s-count', 'bin/%(namelower)s-qa'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages/%(name)s/scripts'],
+}
+
+sanity_check_commands = ['%(namelower)s-count --help']
+
+moduleclass = 'bio'
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/HiCMatrix/HiCMatrix-17.2-foss-2023a.eb b/easybuild/easyconfigs/h/HiCMatrix/HiCMatrix-17.2-foss-2023a.eb
new file mode 100644
index 00000000000..474b8906ff5
--- /dev/null
+++ b/easybuild/easyconfigs/h/HiCMatrix/HiCMatrix-17.2-foss-2023a.eb
@@ -0,0 +1,33 @@
+easyblock = 'PythonBundle'
+
+name = 'HiCMatrix'
+version = '17.2'
+
+homepage = 'https://github.com/deeptools/HiCMatrix'
+description = "This library implements the central class of HiCExplorer to manage Hi-C interaction matrices."
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('PyTables', '3.8.0'),
+ ('cooler', '0.10.2'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('intervaltree', '3.1.0', {
+ 'checksums': ['902b1b88936918f9b2a19e0e5eb7ccb430ae45cde4f39ea4b36932920d33952d'],
+ }),
+ (name, version, {
+ 'source_tmpl': '%(version)s.tar.gz',
+ 'source_urls': ['https://github.com/deeptools/HiCMatrix/archive/'],
+ 'checksums': ['a2428676b5aad014e7b1653e3effe94f7ea8a68cc78be83e4b67f2255f6b4fbb'],
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/h/Highway/Highway-1.0.3-GCCcore-11.3.0.eb b/easybuild/easyconfigs/h/Highway/Highway-1.0.3-GCCcore-11.3.0.eb
index 987a76bd0c1..9202b5b1d43 100644
--- a/easybuild/easyconfigs/h/Highway/Highway-1.0.3-GCCcore-11.3.0.eb
+++ b/easybuild/easyconfigs/h/Highway/Highway-1.0.3-GCCcore-11.3.0.eb
@@ -12,7 +12,11 @@ toolchain = {'name': 'GCCcore', 'version': '11.3.0'}
source_urls = ['https://github.com/google/highway/archive/refs/tags/']
sources = ['%(version)s.tar.gz']
-checksums = ['566fc77315878473d9a6bd815f7de78c73734acdcb745c3dde8579560ac5440e']
+patches = ['Highway-1.0.3_disable_AVX3_DL.patch']
+checksums = [
+ '566fc77315878473d9a6bd815f7de78c73734acdcb745c3dde8579560ac5440e',
+ {'Highway-1.0.3_disable_AVX3_DL.patch': '5729765a75c42551056f95f24fc81031293066253978548c573d06eb33bf9853'},
+]
builddependencies = [
('binutils', '2.38'),
diff --git a/easybuild/easyconfigs/h/Highway/Highway-1.0.3-GCCcore-12.2.0.eb b/easybuild/easyconfigs/h/Highway/Highway-1.0.3-GCCcore-12.2.0.eb
index f1833e66b17..198469448b6 100644
--- a/easybuild/easyconfigs/h/Highway/Highway-1.0.3-GCCcore-12.2.0.eb
+++ b/easybuild/easyconfigs/h/Highway/Highway-1.0.3-GCCcore-12.2.0.eb
@@ -12,7 +12,11 @@ toolchain = {'name': 'GCCcore', 'version': '12.2.0'}
source_urls = ['https://github.com/google/highway/archive/refs/tags/']
sources = ['%(version)s.tar.gz']
-checksums = ['566fc77315878473d9a6bd815f7de78c73734acdcb745c3dde8579560ac5440e']
+patches = ['Highway-1.0.3_disable_AVX3_DL.patch']
+checksums = [
+ '566fc77315878473d9a6bd815f7de78c73734acdcb745c3dde8579560ac5440e',
+ {'Highway-1.0.3_disable_AVX3_DL.patch': '5729765a75c42551056f95f24fc81031293066253978548c573d06eb33bf9853'},
+]
builddependencies = [
('binutils', '2.39'),
diff --git a/easybuild/easyconfigs/h/Highway/Highway-1.0.3_disable_AVX3_DL.patch b/easybuild/easyconfigs/h/Highway/Highway-1.0.3_disable_AVX3_DL.patch
new file mode 100644
index 00000000000..cbbdc731467
--- /dev/null
+++ b/easybuild/easyconfigs/h/Highway/Highway-1.0.3_disable_AVX3_DL.patch
@@ -0,0 +1,31 @@
+Using AVX3_DL in the baseline doesn't work in 1.0.3 causing the build to fail with
+> #error "Logic error: best baseline should be included in dynamic targets"
+
+This is caused by using a wrong defined and fixed by
+https://github.com/google/highway/commit/f0f688b6d6d1ec94489cc989ccb9729b0342aa58
+However that leads to a test failure:
+> HwyConvertTestGroup/HwyConvertTest.TestAllTruncate/AVX3_DL
+> u8x16 expect [0+ ->]:
+> 0x00,0x01,0x02,0x03,0x04,0x05,0x06,
+> u8x16 actual [0+ ->]:
+> 0x00,0x1A,0x02,0x1A,0x04,0x1A,0x06,
+> Abort at .../hwy/tests/convert_test.cc:386: AVX3_DL, u8x16 lane 1 mismatch: expected '0x01', got '0x1A'.
+
+Hence AVX3_DL in 1.0.3 seems to be broken and must not be used.
+This patch disables it by making the condition always false.
+
+Author: Alexander Grund (TU Dresden)
+
+diff --git a/hwy/detect_targets.h b/hwy/detect_targets.h
+index 2beca95b..379c4525 100644
+--- a/hwy/detect_targets.h
++++ b/hwy/detect_targets.h
+@@ -340,7 +340,7 @@
+ #if HWY_BASELINE_AVX3 != 0 && defined(__AVXVNNI__) && defined(__VAES__) && \
+ defined(__VPCLMULQDQ__) && defined(__AVX512VBMI__) && \
+ defined(__AVX512VBMI2__) && defined(__AVX512VPOPCNTDQ__) && \
+- defined(__AVX512BITALG__)
++ defined(__AVX512BITALG__) && 0
+ #define HWY_BASELINE_AVX3_DL HWY_AVX3_DL
+ #else
+ #define HWY_BASELINE_AVX3_DL 0
diff --git a/easybuild/easyconfigs/h/Highway/Highway-1.0.4-GCCcore-12.3.0.eb b/easybuild/easyconfigs/h/Highway/Highway-1.0.4-GCCcore-12.3.0.eb
index a05239847d3..993087b828c 100644
--- a/easybuild/easyconfigs/h/Highway/Highway-1.0.4-GCCcore-12.3.0.eb
+++ b/easybuild/easyconfigs/h/Highway/Highway-1.0.4-GCCcore-12.3.0.eb
@@ -12,7 +12,13 @@ toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
source_urls = ['https://github.com/google/highway/archive/refs/tags/']
sources = ['%(version)s.tar.gz']
-checksums = ['faccd343935c9e98afd1016e9d20e0b8b89d908508d1af958496f8c2d3004ac2']
+patches = ['Highway-1.0.4-zen4-fix-TruncateTo-bug.patch']
+
+checksums = [
+ {'1.0.4.tar.gz': 'faccd343935c9e98afd1016e9d20e0b8b89d908508d1af958496f8c2d3004ac2'},
+ {'Highway-1.0.4-zen4-fix-TruncateTo-bug.patch':
+ 'e571413c290076a729dbb1df105a4bfa106099238d1b438e74a9dfc9557eb4a2'},
+]
builddependencies = [
('binutils', '2.40'),
diff --git a/easybuild/easyconfigs/h/Highway/Highway-1.0.4-zen4-fix-TruncateTo-bug.patch b/easybuild/easyconfigs/h/Highway/Highway-1.0.4-zen4-fix-TruncateTo-bug.patch
new file mode 100644
index 00000000000..f489a6bd15f
--- /dev/null
+++ b/easybuild/easyconfigs/h/Highway/Highway-1.0.4-zen4-fix-TruncateTo-bug.patch
@@ -0,0 +1,59 @@
+A single test failed when building on AMD Genoa a.k.a Zen4 with the error message
+reported in https://github.com/google/highway/issues/1913
+
+Building v1.0.5 passed all tests. Hence, this patch uses some of the changes made
+in v1.0.5 to let the single failing test succeed.
+
+Looking at the PRs added by v1.0.5 a promising candidate was identified
+(https://github.com/google/highway/pull/1276) and all changed files in the PR
+were "studied in detail" (assessed if the changes could be related to the failing
+test on Zen4). Luckily, the four changes provided in the patch below were
+found to resolve the issue. It was also tested if a subset of these four changes
+would resolve the issue, but this did not succeed.
+
+Author: Thomas Roeblitz (University of Bergen)
+
+diff --git a/hwy/ops/x86_256-inl.h b/hwy/ops/x86_256-inl.h
+index 4e2e83e8..2fbf99c7 100644
+--- a/hwy/ops/x86_256-inl.h
++++ b/hwy/ops/x86_256-inl.h
+@@ -4185,7 +4185,7 @@ HWY_INLINE Vec128 LookupAndConcatHalves(Vec256 v) {
+ #if HWY_TARGET <= HWY_AVX3_DL
+ alignas(32) static constexpr uint32_t kMap[8] = {
+ LO, HI, 0x10101010 + LO, 0x10101010 + HI, 0, 0, 0, 0};
+- const auto result = _mm256_permutexvar_epi8(v.raw, Load(d32, kMap).raw);
++ const auto result = _mm256_permutexvar_epi8(Load(d32, kMap).raw, v.raw);
+ #else
+ alignas(32) static constexpr uint32_t kMap[8] = {LO, HI, ~0u, ~0u,
+ ~0u, ~0u, LO, HI};
+@@ -4208,7 +4208,7 @@ HWY_INLINE Vec128 LookupAndConcatQuarters(Vec256 v) {
+ #if HWY_TARGET <= HWY_AVX3_DL
+ alignas(32) static constexpr uint16_t kMap[16] = {
+ LO, HI, 0x1010 + LO, 0x1010 + HI, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+- const auto result = _mm256_permutexvar_epi8(v.raw, Load(d16, kMap).raw);
++ const auto result = _mm256_permutexvar_epi8(Load(d16, kMap).raw, v.raw);
+ return LowerHalf(Vec128{_mm256_castsi256_si128(result)});
+ #else
+ constexpr uint16_t ff = static_cast(~0u);
+@@ -4229,7 +4229,7 @@ HWY_API Vec32 TruncateTo(D /* tag */, Vec256 v) {
+ #if HWY_TARGET <= HWY_AVX3_DL
+ alignas(32) static constexpr uint32_t kMap[8] = {0x18100800u, 0, 0, 0,
+ 0, 0, 0, 0};
+- const auto result = _mm256_permutexvar_epi8(v.raw, Load(d32, kMap).raw);
++ const auto result = _mm256_permutexvar_epi8(Load(d32, kMap).raw, v.raw);
+ return LowerHalf(LowerHalf(LowerHalf(Vec256{result})));
+ #else
+ alignas(32) static constexpr uint32_t kMap[8] = {0xFFFF0800u, ~0u, ~0u, ~0u,
+diff --git a/hwy/ops/x86_512-inl.h b/hwy/ops/x86_512-inl.h
+index 167922d8..83f2ee67 100644
+--- a/hwy/ops/x86_512-inl.h
++++ b/hwy/ops/x86_512-inl.h
+@@ -3497,7 +3497,7 @@ HWY_API Vec128 TruncateTo(D /* tag */, const Vec512 v) {
+ alignas(16) static constexpr uint8_t k8From32[16] = {
+ 0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60};
+ const Vec512 bytes{
+- _mm512_permutexvar_epi32(LoadDup128(d8, k8From32).raw, v.raw)};
++ _mm512_permutexvar_epi8(LoadDup128(d8, k8From32).raw, v.raw)};
+ #else
+ const Full512 d32;
+ // In each 128 bit block, gather the lower byte of 4 uint32_t lanes into the
diff --git a/easybuild/easyconfigs/h/Highway/Highway-1.2.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/h/Highway/Highway-1.2.0-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..27739befe52
--- /dev/null
+++ b/easybuild/easyconfigs/h/Highway/Highway-1.2.0-GCCcore-13.3.0.eb
@@ -0,0 +1,32 @@
+easyblock = 'CMakeMake'
+
+name = 'Highway'
+version = '1.2.0'
+
+homepage = 'https://github.com/google/highway'
+
+description = """Highway is a C++ library for SIMD (Single Instruction, Multiple Data), i.e. applying the same
+operation to 'lanes'."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://github.com/google/highway/archive/refs/tags/']
+sources = ['%(version)s.tar.gz']
+checksums = ['7e0be78b8318e8bdbf6fa545d2ecb4c90f947df03f7aadc42c1967f019e63343']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('CMake', '3.29.3'),
+ ('googletest', '1.15.2'),
+]
+
+configopts = "-DHWY_SYSTEM_GTEST=ON"
+
+runtest = "test"
+
+sanity_check_paths = {
+ 'files': ['lib/libhwy.a'],
+ 'dirs': ['include/hwy'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/h/Hypre/Hypre-2.31.0-foss-2023b.eb b/easybuild/easyconfigs/h/Hypre/Hypre-2.31.0-foss-2023b.eb
new file mode 100644
index 00000000000..62d72e357a8
--- /dev/null
+++ b/easybuild/easyconfigs/h/Hypre/Hypre-2.31.0-foss-2023b.eb
@@ -0,0 +1,18 @@
+name = 'Hypre'
+version = '2.31.0'
+
+homepage = 'https://computation.llnl.gov/projects/hypre-scalable-linear-solvers-multigrid-methods'
+description = """Hypre is a library for solving large, sparse linear systems of equations on massively
+ parallel computers. The problems of interest arise in the simulation codes being developed at LLNL
+ and elsewhere to study physical phenomena in the defense, environmental, energy, and biological sciences."""
+
+toolchain = {'name': 'foss', 'version': '2023b'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/hypre-space/hypre/archive/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['9a7916e2ac6615399de5010eb39c604417bb3ea3109ac90e199c5c63b0cb4334']
+
+start_dir = 'src'
+
+moduleclass = 'numlib'
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.2.0.eb b/easybuild/easyconfigs/h/hatch-jupyter-builder/hatch-jupyter-builder-0.9.1-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..a1c10cc3b01
--- /dev/null
+++ b/easybuild/easyconfigs/h/hatch-jupyter-builder/hatch-jupyter-builder-0.9.1-GCCcore-13.2.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.2.0'}
+
+builddependencies = [
+ ('binutils', '2.40'),
+]
+dependencies = [
+ ('Python', '3.11.5'),
+ ('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/hatchling/hatchling-1.24.2-GCCcore-13.3.0.eb b/easybuild/easyconfigs/h/hatchling/hatchling-1.24.2-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..d936671cca9
--- /dev/null
+++ b/easybuild/easyconfigs/h/hatchling/hatchling-1.24.2-GCCcore-13.3.0.eb
@@ -0,0 +1,59 @@
+easyblock = 'PythonBundle'
+
+name = 'hatchling'
+version = '1.24.2'
+
+homepage = 'https://hatch.pypa.io'
+description = """Extensible, standards compliant build backend used by Hatch,
+a modern, extensible Python project manager."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+
+dependencies = [
+ ('Python', '3.12.3'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('pathspec', '0.12.1', {
+ 'checksums': ['a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712'],
+ }),
+ ('pluggy', '1.5.0', {
+ 'checksums': ['2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1'],
+ }),
+ ('editables', '0.5', {
+ 'checksums': ['309627d9b5c4adc0e668d8c6fa7bac1ba7c8c5d415c2d27f60f081f8e80d1de2'],
+ }),
+ ('trove-classifiers', '2024.5.22', {
+ 'sources': ['trove_classifiers-%(version)s-py3-none-any.whl'],
+ 'checksums': ['c43ade18704823e4afa3d9db7083294bc4708a5e02afbcefacd0e9d03a7a24ef'],
+ }),
+ (name, version, {
+ 'checksums': ['41ddc27cdb25db9ef7b68bef075f829c84cb349aa1bff8240797d012510547b0'],
+ }),
+ ('hatch-vcs', '0.4.0', {
+ 'sources': ['hatch_vcs-%(version)s.tar.gz'],
+ 'checksums': ['093810748fe01db0d451fabcf2c1ac2688caefd232d4ede967090b1c1b07d9f7'],
+ }),
+ ('hatch-fancy-pypi-readme', '24.1.0', {
+ 'sources': ['hatch_fancy_pypi_readme-%(version)s.tar.gz'],
+ 'checksums': ['44dd239f1a779b9dcf8ebc9401a611fd7f7e3e14578dcf22c265dfaf7c1514b8'],
+ }),
+ ('hatch-requirements-txt', '0.4.1', {
+ 'source_tmpl': 'hatch_requirements_txt-%(version)s.tar.gz',
+ 'checksums': ['2c686e5758fd05bb55fa7d0c198fdd481f8d3aaa3c693260f5c0d74ce3547d20'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/%(namelower)s'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages/%(namelower)s'],
+}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/h/help2man/help2man-1.49.3-GCCcore-13.3.0.eb b/easybuild/easyconfigs/h/help2man/help2man-1.49.3-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..631d7becc2b
--- /dev/null
+++ b/easybuild/easyconfigs/h/help2man/help2man-1.49.3-GCCcore-13.3.0.eb
@@ -0,0 +1,25 @@
+easyblock = 'ConfigureMake'
+
+name = 'help2man'
+version = '1.49.3'
+
+homepage = 'https://www.gnu.org/software/help2man/'
+description = """help2man produces simple manual pages from the '--help' and '--version' output of other commands."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = [GNU_SOURCE]
+sources = [SOURCE_TAR_XZ]
+checksums = ['4d7e4fdef2eca6afe07a2682151cea78781e0a4e8f9622142d9f70c083a2fd4f']
+
+builddependencies = [
+ # use same binutils version that was used when building GCC toolchain
+ ('binutils', '2.42', '', SYSTEM),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/help2man'],
+ 'dirs': [],
+}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/h/help2man/help2man-1.49.3-GCCcore-14.2.0.eb b/easybuild/easyconfigs/h/help2man/help2man-1.49.3-GCCcore-14.2.0.eb
new file mode 100644
index 00000000000..2161ee0b1af
--- /dev/null
+++ b/easybuild/easyconfigs/h/help2man/help2man-1.49.3-GCCcore-14.2.0.eb
@@ -0,0 +1,25 @@
+easyblock = 'ConfigureMake'
+
+name = 'help2man'
+version = '1.49.3'
+
+homepage = 'https://www.gnu.org/software/help2man/'
+description = """help2man produces simple manual pages from the '--help' and '--version' output of other commands."""
+
+toolchain = {'name': 'GCCcore', 'version': '14.2.0'}
+
+source_urls = [GNU_SOURCE]
+sources = [SOURCE_TAR_XZ]
+checksums = ['4d7e4fdef2eca6afe07a2682151cea78781e0a4e8f9622142d9f70c083a2fd4f']
+
+builddependencies = [
+ # use same binutils version that was used when building GCC toolchain
+ ('binutils', '2.42', '', SYSTEM),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/help2man'],
+ 'dirs': [],
+}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/h/hevea/hevea-2.36-GCC-13.2.0.eb b/easybuild/easyconfigs/h/hevea/hevea-2.36-GCC-13.2.0.eb
new file mode 100644
index 00000000000..8b2f9b128eb
--- /dev/null
+++ b/easybuild/easyconfigs/h/hevea/hevea-2.36-GCC-13.2.0.eb
@@ -0,0 +1,36 @@
+easyblock = 'ConfigureMake'
+
+name = 'hevea'
+version = '2.36'
+
+homepage = 'http://pauillac.inria.fr/~maranget/hevea/'
+description = """A quite complete and fast LATEX to HTML translator"""
+
+toolchain = {'name': 'GCC', 'version': '13.2.0'}
+
+source_urls = ['http://pauillac.inria.fr/~maranget/hevea/distri']
+sources = [SOURCE_TAR_GZ]
+checksums = ['5d6759d7702a295c76a12c1b2a1a16754ab0ec1ffed73fc9d0b138b41e720648']
+
+builddependencies = [
+ ('ocamlbuild', '0.14.3'),
+]
+
+dependencies = [
+ ('texlive', '20230313'),
+]
+
+skipsteps = ['configure']
+
+buildopts = 'PREFIX="" '
+
+installopts = 'DESTDIR="%(installdir)s" '
+
+sanity_check_paths = {
+ 'files': ['bin/%(name)s'],
+ 'dirs': ['lib/%(name)s'],
+}
+
+sanity_check_commands = ['%(name)s --help']
+
+moduleclass = 'devel'
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/h/histolab/histolab-0.6.0-foss-2022a.eb b/easybuild/easyconfigs/h/histolab/histolab-0.6.0-foss-2022a.eb
new file mode 100644
index 00000000000..a7dc410e6f0
--- /dev/null
+++ b/easybuild/easyconfigs/h/histolab/histolab-0.6.0-foss-2022a.eb
@@ -0,0 +1,37 @@
+easyblock = 'PythonBundle'
+
+name = 'histolab'
+version = '0.6.0'
+
+homepage = 'https://github.com/histolab/histolab'
+description = """Library for Digital Pathology Image Processing."""
+
+toolchain = {'name': 'foss', 'version': '2022a'}
+
+builddependencies = [('poetry', '1.2.2')]
+dependencies = [
+ ('Python', '3.10.4'),
+ ('Pillow', '9.1.1'),
+ ('scikit-image', '0.19.3'),
+ ('SciPy-bundle', '2022.05'),
+ ('openslide-python', '1.2.0'),
+]
+
+use_pip = True
+
+exts_list = [
+ # requires importlib-metadata = ">=4.12,<7.0"
+ ('importlib_metadata', '6.11.0', {
+ 'checksums': ['1231cf92d825c9e03cfc4da076a16de6422c863558229ea0b22b675657463443'],
+ }),
+ ('certifi', '2024.6.2', {
+ 'checksums': ['3cd43f1c6fa7dedc5899d69d3ad0398fd018ad1a17fba83ddaf78aa46c747516'],
+ }),
+ (name, version, {
+ 'checksums': ['fcb8cf70fdf32a58e2980905d657ea53a541503a436e8303f0cb0da6e9f2e20f'],
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/h/histolab/histolab-0.7.0-foss-2023a.eb b/easybuild/easyconfigs/h/histolab/histolab-0.7.0-foss-2023a.eb
new file mode 100644
index 00000000000..3aa69b74e7b
--- /dev/null
+++ b/easybuild/easyconfigs/h/histolab/histolab-0.7.0-foss-2023a.eb
@@ -0,0 +1,38 @@
+easyblock = 'PythonBundle'
+
+name = 'histolab'
+version = '0.7.0'
+
+homepage = 'https://github.com/histolab/histolab'
+description = """Library for Digital Pathology Image Processing."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+builddependencies = [('poetry', '1.5.1')]
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Pillow', '10.0.0'),
+ ('scikit-image', '0.22.0'),
+ ('SciPy-bundle', '2023.07'),
+ ('openslide-python', '1.3.1'),
+]
+
+use_pip = True
+
+local_preinstallopts = """sed -i 's/scikit-image = ">=0.19.0,<0.19.4"/scikit-image = ">=0.19.0"/' pyproject.toml && """
+local_preinstallopts += """sed -i 's/numpy = ">=1.23.2,<=1.24.4"/numpy = ">=1.23.2"/' pyproject.toml && """
+local_preinstallopts += """sed -i 's/scipy = ">=1.5.0,<1.10.1"/scipy = ">=1.5.0"/' pyproject.toml && """
+
+exts_list = [
+ ('certifi', '2024.6.2', {
+ 'checksums': ['3cd43f1c6fa7dedc5899d69d3ad0398fd018ad1a17fba83ddaf78aa46c747516'],
+ }),
+ (name, version, {
+ 'preinstallopts': local_preinstallopts,
+ 'checksums': ['c0f6a6d0381f0ca056f524e3b8217b0a8304ea79a0cdc88f76a39b1bf7531031'],
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/h/hwloc/hwloc-2.10.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/h/hwloc/hwloc-2.10.0-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..cbe85325933
--- /dev/null
+++ b/easybuild/easyconfigs/h/hwloc/hwloc-2.10.0-GCCcore-13.3.0.eb
@@ -0,0 +1,44 @@
+easyblock = 'ConfigureMake'
+
+name = 'hwloc'
+version = '2.10.0'
+
+homepage = 'https://www.open-mpi.org/projects/hwloc/'
+
+description = """
+ The Portable Hardware Locality (hwloc) software package provides a portable
+ abstraction (across OS, versions, architectures, ...) of the hierarchical
+ topology of modern architectures, including NUMA memory nodes, sockets, shared
+ caches, cores and simultaneous multithreading. It also gathers various system
+ attributes such as cache and memory information as well as the locality of I/O
+ devices such as network interfaces, InfiniBand HCAs or GPUs. It primarily
+ aims at helping applications with gathering information about modern computing
+ hardware so as to exploit it accordingly and efficiently.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://www.open-mpi.org/software/hwloc/v%(version_major_minor)s/downloads/']
+sources = [SOURCE_TAR_GZ]
+checksums = ['c7fd8a1404a9719c76aadc642864b9f77aed1dc1fc8882d6af861a9260ba240d']
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+
+dependencies = [
+ ('numactl', '2.0.18'),
+ ('libxml2', '2.12.7'),
+ ('libpciaccess', '0.18.1'),
+]
+
+configopts = "--disable-cairo --disable-opencl --disable-cuda --disable-nvml --disable-gl --disable-libudev "
+
+sanity_check_paths = {
+ 'files': ['bin/lstopo', 'include/hwloc/linux.h',
+ 'lib/libhwloc.%s' % SHLIB_EXT],
+ 'dirs': ['share/man/man3'],
+}
+sanity_check_commands = ['lstopo']
+
+moduleclass = 'system'
diff --git a/easybuild/easyconfigs/h/hypothesis/hypothesis-6.103.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/h/hypothesis/hypothesis-6.103.1-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..e9bb1d78543
--- /dev/null
+++ b/easybuild/easyconfigs/h/hypothesis/hypothesis-6.103.1-GCCcore-13.3.0.eb
@@ -0,0 +1,29 @@
+easyblock = 'PythonPackage'
+
+name = 'hypothesis'
+version = '6.103.1'
+
+homepage = "https://github.com/HypothesisWorks/hypothesis"
+description = """Hypothesis is an advanced testing library for Python. It lets you write tests which are parametrized
+ by a source of examples, and then generates simple and comprehensible examples that make your tests fail. This lets
+ you find more bugs in your code with less work."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+sources = [SOURCE_TAR_GZ]
+checksums = ['d299d5c21d6408eab3be670c94c974f3acf0b511c61fe81804b09091e393ee1f']
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+
+dependencies = [
+ ('Python', '3.12.3'),
+ ('Python-bundle-PyPI', '2024.06'), # required for attrs, sortedcontainers
+]
+
+use_pip = True
+download_dep_fail = True
+sanity_pip_check = True
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/i/ICU/ICU-75.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/i/ICU/ICU-75.1-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..cb7075fa963
--- /dev/null
+++ b/easybuild/easyconfigs/i/ICU/ICU-75.1-GCCcore-13.3.0.eb
@@ -0,0 +1,29 @@
+easyblock = 'ConfigureMake'
+
+name = 'ICU'
+version = '75.1'
+
+homepage = 'https://icu.unicode.org'
+description = """ICU is a mature, widely used set of C/C++ and Java libraries providing Unicode and Globalization
+ support for software applications."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/unicode-org/icu/releases/download/release-%(version_major)s-%(version_minor)s']
+sources = ['icu4c-%(version_major)s_%(version_minor)s-src.tgz']
+checksums = ['cb968df3e4d2e87e8b11c49a5d01c787bd13b9545280fc6642f826527618caef']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('Python', '3.12.3'),
+]
+
+start_dir = 'source'
+
+sanity_check_paths = {
+ 'files': ['lib/libicu%s.%s' % (x, SHLIB_EXT) for x in ['data', 'i18n', 'io', 'test', 'tu', 'uc']],
+ 'dirs': ['bin', 'include/unicode', 'share/icu', 'share/man'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/i/IEntropy/IEntropy-2024.06.12-foss-2023a-R-4.3.2.eb b/easybuild/easyconfigs/i/IEntropy/IEntropy-2024.06.12-foss-2023a-R-4.3.2.eb
new file mode 100644
index 00000000000..ee26df679bf
--- /dev/null
+++ b/easybuild/easyconfigs/i/IEntropy/IEntropy-2024.06.12-foss-2023a-R-4.3.2.eb
@@ -0,0 +1,36 @@
+easyblock = 'RPackage'
+
+name = 'IEntropy'
+version = '2024.06.12'
+local_commit = '3cd58ab'
+versionsuffix = '-R-%(rver)s'
+
+homepage = 'https://github.com/LinLi-0909/IEntropy'
+description = """Here, by deriving entropy decomposition formula, we proposed a feature selection method,
+intrinsic entropy (IE) model, to identify the informative genes for accurately clustering analysis."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+source_urls = ['https://github.com/LinLi-0909/IEntropy/archive/']
+sources = [{
+ "download_filename": "%s.tar.gz" % local_commit,
+ "filename": "%(name)s-%(version)s.tar.gz"
+}]
+checksums = ['7449340df7218c790dcdff5dbb14ba7d613bd9bdfb0a440296a561bbb742f9c1']
+
+dependencies = [
+ ('R', '4.3.2'),
+ ('R-bundle-Bioconductor', '3.18', '-R-%(rver)s'),
+]
+
+unpack_sources = True
+start_dir = 'IEntropy'
+
+sanity_check_paths = {
+ 'files': [],
+ 'dirs': ['%(name)s'],
+}
+
+sanity_check_commands = ['Rscript -e "library(IEntropy)"']
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/i/IGV/IGV-2.17.4-Java-17.eb b/easybuild/easyconfigs/i/IGV/IGV-2.17.4-Java-17.eb
new file mode 100644
index 00000000000..35e427d0ad0
--- /dev/null
+++ b/easybuild/easyconfigs/i/IGV/IGV-2.17.4-Java-17.eb
@@ -0,0 +1,34 @@
+# EasyBuild easyconfig
+# Author: Pablo Escobar Lopez
+# sciCORE - University of Basel
+# SIB Swiss Institute of Bioinformatics
+# Modified by Adam Huffman
+# Big Data Institute, University of Oxford
+
+easyblock = 'Tarball'
+
+name = 'IGV'
+version = '2.17.4'
+versionsuffix = '-Java-%(javaver)s'
+
+homepage = 'https://www.broadinstitute.org/software/igv/'
+description = """This package contains command line utilities for
+ preprocessing, computing feature count density (coverage), sorting, and
+ indexing data files."""
+
+toolchain = SYSTEM
+
+source_urls = ['http://data.broadinstitute.org/igv/projects/downloads/%(version_major)s.%(version_minor)s']
+sources = ['%(name)s_%(version)s.zip']
+checksums = ['6a36ae64fa3b74182db654a93f6254256305a8afa6b878f381b5d04fc1e8eaa5']
+
+dependencies = [('Java', '17', '', SYSTEM)]
+
+sanity_check_paths = {
+ 'files': ['%(namelower)s.sh', 'lib/%(namelower)s.jar'],
+ 'dirs': [],
+}
+
+modextrapaths = {'PATH': ''}
+
+moduleclass = 'bio'
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/IMAGE/IMAGE-1.1-foss-2022b.eb b/easybuild/easyconfigs/i/IMAGE/IMAGE-1.1-foss-2022b.eb
new file mode 100644
index 00000000000..3b7413af016
--- /dev/null
+++ b/easybuild/easyconfigs/i/IMAGE/IMAGE-1.1-foss-2022b.eb
@@ -0,0 +1,57 @@
+easyblock = 'Tarball'
+
+name = 'IMAGE'
+version = '1.1'
+
+homepage = 'https://github.com/JesperGrud/IMAGE'
+description = """IMAGE (Motif Activity and Gene Expression changes of transcription factors) is software for
+integrated analysis of motif activity and gene expression changes of transcription factors. IMAGE makes prediction
+of causal transcription factors based on transcriptome profiling and genome-wide maps of enhancer activity."""
+
+toolchain = {'name': 'foss', 'version': '2022b'}
+
+source_urls = ['https://github.com/JesperGrud/IMAGE/archive/refs/tags']
+sources = ['v%(version)s.tar.gz']
+checksums = ['e286cd5e7eb5aaaf9e103a9651ece39ff4ce260c463facdf1758b6d72a285062']
+
+dependencies = [
+ ('Perl', '5.36.0'),
+ ('HOMER', '4.11.1'),
+ ('R', '4.2.2'),
+ ('R-bundle-Bioconductor', '3.16', '-R-4.2.2'),
+]
+
+postinstallcmds = [
+ 'mkdir %(installdir)s/bin',
+ 'mv %(installdir)s/IMAGE.pl %(installdir)s/bin/',
+ 'chmod +x %(installdir)s/bin/IMAGE.pl',
+ (
+ 'sed -i "s|my \\$TMPDIR = \\$INSTALLDIR . \\$TMP;|my \\$TMPDIR = \\$TMP;|g" '
+ '%(installdir)s/bin/IMAGE.pl'
+ ),
+ (
+ 'sed -i "s|my \\$UTILDIR = \\$INSTALLDIR . \\$UTIL;|my \\$UTILDIR = \'%(installdir)s\' . \\$UTIL;|g" '
+ '%(installdir)s/bin/IMAGE.pl'
+ ),
+]
+
+fix_perl_shebang_for = ['bin/*.pl']
+
+sanity_check_paths = {
+ 'dirs': ['bin', 'utils', 'tmp'],
+ 'files': [
+ 'utils/Collection.motif',
+ 'utils/extractSequence',
+ 'utils/Genename_Motif.txt',
+ 'utils/Parallel.sh',
+ 'utils/Regression.R',
+ 'utils/SplitMotifLibrary.sh',
+ 'bin/IMAGE.pl',
+ ]
+}
+
+sanity_check_commands = [
+ "IMAGE.pl",
+]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/i/IML/IML-1.0.5-gfbf-2023b.eb b/easybuild/easyconfigs/i/IML/IML-1.0.5-gfbf-2023b.eb
index d9171489748..29698d8351f 100644
--- a/easybuild/easyconfigs/i/IML/IML-1.0.5-gfbf-2023b.eb
+++ b/easybuild/easyconfigs/i/IML/IML-1.0.5-gfbf-2023b.eb
@@ -8,6 +8,7 @@ description = """IML is a free library of C source code which implements algorit
exact solutions to dense systems of linear equations over the integers."""
toolchain = {'name': 'gfbf', 'version': '2023b'}
+toolchainopts = {'pic': True}
source_urls = ['http://www.cs.uwaterloo.ca/~astorjoh']
sources = [SOURCELOWER_TAR_BZ2]
diff --git a/easybuild/easyconfigs/i/IOR/IOR-4.0.0-gompi-2023b.eb b/easybuild/easyconfigs/i/IOR/IOR-4.0.0-gompi-2023b.eb
new file mode 100644
index 00000000000..edc20007c6d
--- /dev/null
+++ b/easybuild/easyconfigs/i/IOR/IOR-4.0.0-gompi-2023b.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
+# Author: Robert Mijakovic
+# DeepThought, Flinders University
+
+easyblock = 'CMakeMake'
+
+name = 'IQ-TREE'
+version = '2.3.5'
+
+# 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.5.tar.gz': '8e323e0b7c46e97901d3500f11e810703e0e5d25848188047eca9602d03fa6b1'},
+ {'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/IQ-TREE/IQ-TREE-2.3.5_use_EB_LSD2.patch b/easybuild/easyconfigs/i/IQ-TREE/IQ-TREE-2.3.5_use_EB_LSD2.patch
new file mode 100644
index 00000000000..b567f096fa9
--- /dev/null
+++ b/easybuild/easyconfigs/i/IQ-TREE/IQ-TREE-2.3.5_use_EB_LSD2.patch
@@ -0,0 +1,36 @@
+diff -ruN iqtree2-2.3.5/CMakeLists.txt iqtree2-2.3.5-orig/CMakeLists.txt
+--- iqtree2-2.3.5/CMakeLists.txt 2024-06-26 04:33:33.000000000 +0000
++++ iqtree2-2.3.5-orig/CMakeLists.txt 2024-07-03 08:23:41.030462539 +0000
+@@ -758,10 +758,6 @@
+ add_subdirectory(terracetphast)
+ endif()
+
+-if (USE_LSD2)
+- add_subdirectory(lsd2)
+-endif()
+-
+ add_library(kernelsse tree/phylokernelsse.cpp)
+
+ if (NOT BINARY32 AND NOT IQTREE_FLAGS MATCHES "novx")
+@@ -820,9 +816,6 @@
+ if (USE_TERRAPHAST)
+ set_target_properties(terracetphast terraphast PROPERTIES COMPILE_FLAGS "${SSE_FLAGS}")
+ endif()
+- if (USE_LSD2)
+- set_target_properties(lsd2 PROPERTIES COMPILE_FLAGS "${SSE_FLAGS}")
+- endif()
+ if (USE_BOOSTER)
+ set_target_properties(booster PROPERTIES COMPILE_FLAGS "${SSE_FLAGS}")
+ endif()
+diff -ruN iqtree2-2.3.5/main/timetree.cpp iqtree2-2.3.5-orig/main/timetree.cpp
+--- iqtree2-2.3.5/main/timetree.cpp 2024-06-26 04:33:33.000000000 +0000
++++ iqtree2-2.3.5-orig/main/timetree.cpp 2024-07-03 08:24:32.438606710 +0000
+@@ -8,7 +8,7 @@
+ #include "timetree.h"
+
+ #ifdef USE_LSD2
+-#include "lsd2/src/lsd.h"
++#include "lsd.h"
+ #endif
+
+ /** map from taxon name to date */
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/IRkernel/IRkernel-1.3.2-gfbf-2023a-R-4.3.2.eb b/easybuild/easyconfigs/i/IRkernel/IRkernel-1.3.2-gfbf-2023a-R-4.3.2.eb
new file mode 100644
index 00000000000..43953215612
--- /dev/null
+++ b/easybuild/easyconfigs/i/IRkernel/IRkernel-1.3.2-gfbf-2023a-R-4.3.2.eb
@@ -0,0 +1,72 @@
+easyblock = 'Bundle'
+
+name = 'IRkernel'
+version = '1.3.2'
+versionsuffix = '-R-%(rver)s'
+
+homepage = 'https://irkernel.github.io'
+description = """The R kernel for the 'Jupyter' environment executes R code
+ which the front-end (Jupyter Notebook or other front-ends) submits to the
+ kernel via the network."""
+
+toolchain = {'name': 'gfbf', 'version': '2023a'}
+
+dependencies = [
+ ('R', '4.3.2'),
+ ('Python', '3.11.3'),
+ ('IPython', '8.14.0'),
+ ('ZeroMQ', '4.3.4'),
+]
+
+exts_defaultclass = 'RPackage'
+exts_filter = ("R -q --no-save", "library(%(ext_name)s)")
+
+exts_default_options = {
+ 'source_urls': [
+ 'https://cran.r-project.org/src/contrib/',
+ 'https://cran.rstudio.com/src/contrib/',
+ 'https://cran.r-project.org/src/contrib/Archive/%(name)s/',
+ ],
+ 'source_tmpl': '%(name)s_%(version)s.tar.gz',
+}
+
+exts_list = [
+ ('uuid', '1.1-1', {
+ 'checksums': ['1611240eb706e6f53400b25c9cf792ad90f151b72ed0918a1e756997f7abb716'],
+ }),
+ ('repr', '1.1.7', {
+ 'checksums': ['73bd696b4d4211096e0d1e382d5ce6591527d2ff400cc7ae8230f0235eed021b'],
+ }),
+ ('IRdisplay', '1.1', {
+ 'checksums': ['83eb030ff91f546cb647899f8aa3f5dc9fe163a89a981696447ea49cc98e8d2b'],
+ }),
+ ('pbdZMQ', '0.3-11', {
+ 'checksums': ['da7e204d857370201f75a05fbd808a2f409d440cc96855bb8f48f4a5dd75405b'],
+ }),
+ (name, version, {
+ 'checksums': ['e1c6d8bddc23e5039dd9c537feb371f937d60028fb753b90345698c58ae424a6'],
+ }),
+]
+
+modextrapaths = {
+ 'R_LIBS_SITE': '',
+ 'JUPYTER_PATH': '%(name)s'
+}
+
+# IPython notebook looks for the json kernel file in kernels/IRkernel
+# We start the kernel with default bitmapType 'cairo'. This is a more sensible default
+# for headless nodes. See https://github.com/IRkernel/IRkernel/issues/388
+local_kerneldir = '%(installdir)s/IRkernel'
+postinstallcmds = [
+ 'mkdir -p %s/kernels/ir' % local_kerneldir,
+ 'cp %s/kernelspec/* %s/kernels/ir' % (local_kerneldir, local_kerneldir),
+ ('sed -i \'s/"IRkernel::main()"/"options(bitmapType=\\x27cairo\\x27); IRkernel::main()"/g\''
+ ' %s/kernels/ir/kernel.json') % local_kerneldir
+]
+
+sanity_check_paths = {
+ 'files': ['%s/kernels/ir/kernel.json' % local_kerneldir],
+ 'dirs': [name],
+}
+
+moduleclass = 'tools'
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/ISL/ISL-0.26-GCCcore-13.3.0.eb b/easybuild/easyconfigs/i/ISL/ISL-0.26-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..2f2eb41a3a0
--- /dev/null
+++ b/easybuild/easyconfigs/i/ISL/ISL-0.26-GCCcore-13.3.0.eb
@@ -0,0 +1,23 @@
+easyblock = 'ConfigureMake'
+
+name = 'ISL'
+version = '0.26'
+
+homepage = 'https://libisl.sourceforge.io'
+description = "isl is a library for manipulating sets and relations of integer points bounded by linear constraints."
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://libisl.sourceforge.io']
+sources = [SOURCELOWER_TAR_BZ2]
+checksums = ['5eac8664e9d67be6bd0bee5085d6840b8baf738c06814df47eaf4166d9776436']
+
+builddependencies = [('binutils', '2.42')]
+dependencies = [('GMP', '6.3.0')]
+
+sanity_check_paths = {
+ 'files': ['lib/libisl.%s' % SHLIB_EXT, 'lib/libisl.a'],
+ 'dirs': ['include/isl']
+}
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/i/ITK/ITK-5.3.0-foss-2022b.eb b/easybuild/easyconfigs/i/ITK/ITK-5.3.0-foss-2022b.eb
new file mode 100644
index 00000000000..9ba65978898
--- /dev/null
+++ b/easybuild/easyconfigs/i/ITK/ITK-5.3.0-foss-2022b.eb
@@ -0,0 +1,78 @@
+# Contributors:
+# Fenglai Liu (fenglai@accre.vanderbilt.edu) - Vanderbilt University
+# Alex Domingo (alex.domingo.toro@vub.be) - Vrije Universiteit Brussel (VUB)
+# Denis Kristak, Pavel Tománek (INUITS)
+#
+easyblock = 'CMakeMake'
+
+name = 'ITK'
+version = '5.3.0'
+
+homepage = 'https://itk.org'
+description = """Insight Segmentation and Registration Toolkit (ITK) provides
+ an extensive suite of software tools for registering and segmenting
+ multidimensional imaging data."""
+
+toolchain = {'name': 'foss', 'version': '2022b'}
+toolchainopts = {'pic': True, 'cstd': 'c++11'}
+
+github_account = 'InsightSoftwareConsortium'
+source_urls = [GITHUB_SOURCE]
+sources = [{'download_filename': 'v%(version)s.tar.gz', 'filename': SOURCE_TAR_GZ}]
+patches = [
+ 'ITK-5.3.0_vtk-include.patch',
+ 'ITK-5.3.0_fix-compatibility-swig-4-1.patch',
+]
+checksums = [
+ {'ITK-5.3.0.tar.gz': '64e7e8094a5023c8f68ee042459d6319581fadb35e2fe90a4ae230ce36369db1'},
+ {'ITK-5.3.0_vtk-include.patch': '138ebd2e0e7f9001aba5f4a7e8145ffcf0093913d50f109ecff447773fd52a48'},
+ {'ITK-5.3.0_fix-compatibility-swig-4-1.patch': '0138878d96e90d6bfdc81fd4f2b5ec413d61c1de666a16842b417c2686ebf506'},
+]
+
+builddependencies = [
+ ('CMake', '3.24.3'),
+ ('Bison', '3.8.2'),
+ ('Eigen', '3.4.0'),
+ ('SWIG', '4.1.1'),
+ ('Perl', '5.36.0'),
+]
+dependencies = [
+ ('Python', '3.10.8'),
+ ('double-conversion', '3.2.1'),
+ ('expat', '2.4.9'),
+ ('HDF5', '1.14.0'),
+ ('libjpeg-turbo', '2.1.4'),
+ ('libpng', '1.6.38'),
+ ('LibTIFF', '4.4.0'),
+ ('VTK', '9.2.6'),
+ ('zlib', '1.2.12'),
+]
+
+# Features
+configopts = '-DBUILD_SHARED_LIBS=ON -DBUILD_TESTING=OFF '
+configopts += '-DModule_ITKReview=ON -DModule_ITKVtkGlue=ON -DModule_SimpleITKFilters=ON '
+# Enable Python bindings
+configopts += '-DITK_WRAP_PYTHON:BOOL=ON -DPython3_EXECUTABLE=$EBROOTPYTHON/bin/python '
+configopts += '-DSWIG_EXECUTABLE=$EBROOTSWIG/bin/swig -DSWIG_DIR=$EBROOTSWIG '
+configopts += '-DPY_SITE_PACKAGES_PATH=%(installdir)s/lib/python%(pyshortver)s/site-packages '
+# Dependencies from EB
+local_sys_deps = ['DOUBLECONVERSION', 'EIGEN', 'EXPAT', 'FFTW', 'HDF5', 'JPEG', 'PNG', 'SWIG', 'TIFF', 'ZLIB']
+local_sys_cmake = ['-DITK_USE_SYSTEM_%s=ON' % d for d in local_sys_deps]
+configopts += ' '.join(local_sys_cmake)
+
+prebuildopts = "LC_ALL=C "
+
+local_lib_names = ['ITKCommon', 'ITKIOHDF5', 'ITKIOJPEG', 'ITKIOPNG', 'ITKIOTIFF',
+ 'ITKReview', 'ITKVTK', 'ITKVtkGlue', 'itkSimpleITKFilters']
+
+sanity_check_paths = {
+ 'files': ['bin/itkTestDriver'] +
+ ['lib/lib%s-%%(version_major)s.%%(version_minor)s.%s' % (l, SHLIB_EXT) for l in local_lib_names],
+ 'dirs': ['include/ITK-%(version_major)s.%(version_minor)s', 'lib/python%(pyshortver)s/site-packages', 'share'],
+}
+
+sanity_check_commands = ["python -c 'import itk'"]
+
+modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'}
+
+moduleclass = 'data'
diff --git a/easybuild/easyconfigs/i/ITK/ITK-5.3.0_vtk-include.patch b/easybuild/easyconfigs/i/ITK/ITK-5.3.0_vtk-include.patch
new file mode 100644
index 00000000000..f77306c9f8e
--- /dev/null
+++ b/easybuild/easyconfigs/i/ITK/ITK-5.3.0_vtk-include.patch
@@ -0,0 +1,13 @@
+Manually add the include directory of VTK
+dirty fix for issue https://github.com/InsightSoftwareConsortium/ITK/issues/4375
+author: Alex Domingo (Vrije Universiteit Brussel)
+--- Wrapping/CMakeLists.txt.orig 2023-12-21 13:41:44.845008000 +0100
++++ Wrapping/CMakeLists.txt 2023-12-21 13:42:14.794328946 +0100
+@@ -112,6 +112,7 @@
+ ###############################################################################
+ # Configure specific wrapper modules
+ ###############################################################################
++include_directories("$ENV{EBROOTVTK}/include/vtk-9.2/")
+
+ unset(WRAP_ITK_MODULES CACHE)
+
\ No newline at end of file
diff --git a/easybuild/easyconfigs/i/ImageMagick/ImageMagick-7.1.0-37-GCCcore-11.3.0.eb b/easybuild/easyconfigs/i/ImageMagick/ImageMagick-7.1.0-37-GCCcore-11.3.0.eb
index efff91588b0..6a78cb9c5a9 100644
--- a/easybuild/easyconfigs/i/ImageMagick/ImageMagick-7.1.0-37-GCCcore-11.3.0.eb
+++ b/easybuild/easyconfigs/i/ImageMagick/ImageMagick-7.1.0-37-GCCcore-11.3.0.eb
@@ -30,14 +30,18 @@ builddependencies = [
('pkgconf', '1.8.0'),
]
+preconfigopts = 'PKG_CONFIG=$EBROOTPKGCONF/bin/pkgconf'
configopts = "--with-gslib --with-x"
sanity_check_paths = {
- 'files': [],
- 'dirs': ['bin', 'etc/%(name)s-%(version_major)s',
- 'include/%(name)s-%(version_major)s', 'lib', 'share'],
+ '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.0-4-GCCcore-11.2.0.eb b/easybuild/easyconfigs/i/ImageMagick/ImageMagick-7.1.0-4-GCCcore-11.2.0.eb
index c3033c0d080..7d03b87d1d8 100644
--- a/easybuild/easyconfigs/i/ImageMagick/ImageMagick-7.1.0-4-GCCcore-11.2.0.eb
+++ b/easybuild/easyconfigs/i/ImageMagick/ImageMagick-7.1.0-4-GCCcore-11.2.0.eb
@@ -30,14 +30,18 @@ builddependencies = [
('pkg-config', '0.29.2'),
]
+preconfigopts = 'PKG_CONFIG=$EBROOTPKGCONF/bin/pkgconf'
configopts = "--with-gslib --with-x"
sanity_check_paths = {
- 'files': [],
- 'dirs': ['bin', 'etc/%(name)s-%(version_major)s',
- 'include/%(name)s-%(version_major)s', 'lib', 'share'],
+ '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.0-53-GCCcore-12.2.0.eb b/easybuild/easyconfigs/i/ImageMagick/ImageMagick-7.1.0-53-GCCcore-12.2.0.eb
index 1ddf40ec50a..e758d987dfa 100644
--- a/easybuild/easyconfigs/i/ImageMagick/ImageMagick-7.1.0-53-GCCcore-12.2.0.eb
+++ b/easybuild/easyconfigs/i/ImageMagick/ImageMagick-7.1.0-53-GCCcore-12.2.0.eb
@@ -30,14 +30,18 @@ builddependencies = [
('pkgconf', '1.9.3'),
]
+preconfigopts = 'PKG_CONFIG=$EBROOTPKGCONF/bin/pkgconf'
configopts = "--with-gslib --with-x"
sanity_check_paths = {
- 'files': [],
- 'dirs': ['bin', 'etc/%(name)s-%(version_major)s',
- 'include/%(name)s-%(version_major)s', 'lib', 'share'],
+ '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-15-GCCcore-12.3.0.eb b/easybuild/easyconfigs/i/ImageMagick/ImageMagick-7.1.1-15-GCCcore-12.3.0.eb
index 9504c227680..4fe1068022b 100644
--- a/easybuild/easyconfigs/i/ImageMagick/ImageMagick-7.1.1-15-GCCcore-12.3.0.eb
+++ b/easybuild/easyconfigs/i/ImageMagick/ImageMagick-7.1.1-15-GCCcore-12.3.0.eb
@@ -29,14 +29,18 @@ dependencies = [
('FriBidi', '1.0.12'),
]
+preconfigopts = 'PKG_CONFIG=$EBROOTPKGCONF/bin/pkgconf'
configopts = "--with-gslib --with-x"
-
sanity_check_paths = {
- 'files': [],
- 'dirs': ['bin', 'etc/%(name)s-%(version_major)s', 'include/%(name)s-%(version_major)s', 'lib', 'share'],
+ '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-34-GCCcore-13.2.0.eb b/easybuild/easyconfigs/i/ImageMagick/ImageMagick-7.1.1-34-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..2ccdcb32a55
--- /dev/null
+++ b/easybuild/easyconfigs/i/ImageMagick/ImageMagick-7.1.1-34-GCCcore-13.2.0.eb
@@ -0,0 +1,46 @@
+easyblock = 'ConfigureMake'
+
+name = 'ImageMagick'
+version = '7.1.1-34'
+
+homepage = 'https://www.imagemagick.org/'
+description = "ImageMagick is a software suite to create, edit, compose, or convert bitmap images"
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+source_urls = ['https://github.com/%(name)s/%(name)s/archive/']
+sources = ['%(version)s.tar.gz']
+checksums = ['19f4303774b56be182c576b266c34bc824fcaef1d1d243192344d015adb0ec28']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('pkgconf', '2.0.3'),
+]
+dependencies = [
+ ('bzip2', '1.0.8'),
+ ('X11', '20231019'),
+ ('Ghostscript', '10.02.1'),
+ ('JasPer', '4.0.0'),
+ ('libjpeg-turbo', '3.0.1'),
+ ('LibTIFF', '4.6.0'),
+ ('LittleCMS', '2.15'),
+ ('Pango', '1.51.0'),
+ ('pixman', '0.42.2'),
+ ('FriBidi', '1.0.13'),
+]
+
+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-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-2019_update5.eb b/easybuild/easyconfigs/i/Inspector/Inspector-2019_update5.eb
index b27635916ca..179e26005de 100644
--- a/easybuild/easyconfigs/i/Inspector/Inspector-2019_update5.eb
+++ b/easybuild/easyconfigs/i/Inspector/Inspector-2019_update5.eb
@@ -7,7 +7,7 @@ description = """Intel Inspector XE is an easy to use memory error checker and t
toolchain = SYSTEM
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15827/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15827/']
sources = ['inspector_%(version)s.tar.gz']
checksums = ['676fd0b25a56fba63495c048abf485b08583cbb01eb0cf6e1174ee7b352af6d5']
diff --git a/easybuild/easyconfigs/i/Inspector/Inspector-2021.4.0.eb b/easybuild/easyconfigs/i/Inspector/Inspector-2021.4.0.eb
index 11b56c0bc1c..494b031a5e1 100644
--- a/easybuild/easyconfigs/i/Inspector/Inspector-2021.4.0.eb
+++ b/easybuild/easyconfigs/i/Inspector/Inspector-2021.4.0.eb
@@ -10,7 +10,7 @@ description = """Intel Inspector is a dynamic memory and threading error
toolchain = SYSTEM
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/18239/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/18239/']
sources = ['l_inspector_oneapi_p_%(version)s.266_offline.sh']
checksums = ['c8210cbcd0e07cc75e773249a5e4a02cf34894ec80a213939f3a20e6c5705274']
diff --git a/easybuild/easyconfigs/i/Inspector/Inspector-2022.0.0.eb b/easybuild/easyconfigs/i/Inspector/Inspector-2022.0.0.eb
index 430cc62b2d4..22f082dd1f4 100644
--- a/easybuild/easyconfigs/i/Inspector/Inspector-2022.0.0.eb
+++ b/easybuild/easyconfigs/i/Inspector/Inspector-2022.0.0.eb
@@ -10,7 +10,7 @@ description = """Intel Inspector is a dynamic memory and threading error
toolchain = SYSTEM
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/18363/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/18363/']
sources = ['l_inspector_oneapi_p_%(version)s.56_offline.sh']
checksums = ['79a0eb2ae3f1de1e3456076685680c468702922469c3fda3e074718fb0bea741']
diff --git a/easybuild/easyconfigs/i/Inspector/Inspector-2022.1.0.eb b/easybuild/easyconfigs/i/Inspector/Inspector-2022.1.0.eb
index a7772259cc8..33515e7a8e5 100644
--- a/easybuild/easyconfigs/i/Inspector/Inspector-2022.1.0.eb
+++ b/easybuild/easyconfigs/i/Inspector/Inspector-2022.1.0.eb
@@ -10,7 +10,7 @@ description = """Intel Inspector is a dynamic memory and threading error
toolchain = SYSTEM
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/18712/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/18712/']
sources = ['l_inspector_oneapi_p_%(version)s.123_offline.sh']
checksums = ['8551180aa30be3abea11308fb11ea9a296f0e056ab07d9254585448a0b23333e']
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/IntelClusterChecker/IntelClusterChecker-2021.5.0.eb b/easybuild/easyconfigs/i/IntelClusterChecker/IntelClusterChecker-2021.5.0.eb
index 55107c33e8a..c0357dea2d0 100644
--- a/easybuild/easyconfigs/i/IntelClusterChecker/IntelClusterChecker-2021.5.0.eb
+++ b/easybuild/easyconfigs/i/IntelClusterChecker/IntelClusterChecker-2021.5.0.eb
@@ -13,7 +13,7 @@ can be identified and practical resolutions provided.
toolchain = SYSTEM
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/18359/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/18359/']
sources = ['l_clck_p_%(version)s.560_offline.sh']
checksums = ['2b661eff4a87607fd29e21fe29883873c0a7216d7d0a99557dc48b6eae9adeb0']
diff --git a/easybuild/easyconfigs/i/IntelPython/IntelPython-2.7.15-2019.2.066.eb b/easybuild/easyconfigs/i/IntelPython/IntelPython-2.7.15-2019.2.066.eb
index c46f42bb81b..48ab0a8f836 100644
--- a/easybuild/easyconfigs/i/IntelPython/IntelPython-2.7.15-2019.2.066.eb
+++ b/easybuild/easyconfigs/i/IntelPython/IntelPython-2.7.15-2019.2.066.eb
@@ -15,7 +15,7 @@ description = """
Accelerating Python* performance on modern architectures from Intel.
"""
-source_urls = ['http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15115/']
+source_urls = ['http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15115/']
sources = ['l_pythoni%s_p_%s.tar.gz' % (local_pysver, local_relver)]
checksums = ['dd0b73db5d0d79c3cdf779d10092eae32780d720b74ed8fde2a2c46e23143de1']
diff --git a/easybuild/easyconfigs/i/IntelPython/IntelPython-3.6.8-2019.2.066.eb b/easybuild/easyconfigs/i/IntelPython/IntelPython-3.6.8-2019.2.066.eb
index fd51e3b2082..d0c2dc13c67 100644
--- a/easybuild/easyconfigs/i/IntelPython/IntelPython-3.6.8-2019.2.066.eb
+++ b/easybuild/easyconfigs/i/IntelPython/IntelPython-3.6.8-2019.2.066.eb
@@ -15,7 +15,7 @@ description = """
Accelerating Python* performance on modern architectures from Intel.
"""
-source_urls = ['http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15115/']
+source_urls = ['http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15115/']
sources = ['l_pythoni%s_p_%s.tar.gz' % (local_pysver, local_relver)]
checksums = ['804883fc1413ee72b0ae421a8ac82ab158fc01c8b4631a44a9d2ef1a19324751']
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/icc/icc-2018.1.163-GCC-6.4.0-2.28.eb b/easybuild/easyconfigs/i/icc/icc-2018.1.163-GCC-6.4.0-2.28.eb
index ca49a084587..f6eb99cebdc 100644
--- a/easybuild/easyconfigs/i/icc/icc-2018.1.163-GCC-6.4.0-2.28.eb
+++ b/easybuild/easyconfigs/i/icc/icc-2018.1.163-GCC-6.4.0-2.28.eb
@@ -8,7 +8,7 @@ description = "Intel C and C++ compilers"
toolchain = SYSTEM
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12382/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12382/']
sources = ['parallel_studio_xe_%(version_major)s_update%(version_minor)s_composer_edition_for_cpp.tgz']
checksums = ['ddbfdf88eed095817650ec0a226ef3b9c07c41c855d258e80eaade5173fedb6e']
diff --git a/easybuild/easyconfigs/i/icc/icc-2018.3.222-GCC-7.3.0-2.30.eb b/easybuild/easyconfigs/i/icc/icc-2018.3.222-GCC-7.3.0-2.30.eb
index 9b3a071f005..c04b1a09909 100644
--- a/easybuild/easyconfigs/i/icc/icc-2018.3.222-GCC-7.3.0-2.30.eb
+++ b/easybuild/easyconfigs/i/icc/icc-2018.3.222-GCC-7.3.0-2.30.eb
@@ -8,7 +8,7 @@ description = "Intel C and C++ compilers"
toolchain = SYSTEM
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13003/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/13003/']
sources = ['parallel_studio_xe_%(version_major)s_update%(version_minor)s_composer_edition_for_cpp.tgz']
checksums = ['d8b7e6633faa2e0b7d4eebf3260cb3a200b951cb2cf7b5db957c5ae71508d34b']
diff --git a/easybuild/easyconfigs/i/icc/icc-2018.5.274-GCC-7.3.0-2.30.eb b/easybuild/easyconfigs/i/icc/icc-2018.5.274-GCC-7.3.0-2.30.eb
index 3918ba3f3f1..f2d6c096878 100644
--- a/easybuild/easyconfigs/i/icc/icc-2018.5.274-GCC-7.3.0-2.30.eb
+++ b/easybuild/easyconfigs/i/icc/icc-2018.5.274-GCC-7.3.0-2.30.eb
@@ -8,7 +8,7 @@ description = "Intel C and C++ compilers"
toolchain = SYSTEM
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13723/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/13723/']
# released as "2018 update 4" despite internal version number if 2018.5.274, so can't use %(version_minor)s template
sources = ['parallel_studio_xe_%(version_major)s_update4_composer_edition_for_cpp.tgz']
checksums = ['3850ab2a01fe8888af8fed65b7d24e0ddf45a84efe9635ff0f118c38dfc4544b']
diff --git a/easybuild/easyconfigs/i/icc/icc-2019.0.117-GCC-8.2.0-2.31.1.eb b/easybuild/easyconfigs/i/icc/icc-2019.0.117-GCC-8.2.0-2.31.1.eb
index b78d2e8e11c..5cf05e6a559 100644
--- a/easybuild/easyconfigs/i/icc/icc-2019.0.117-GCC-8.2.0-2.31.1.eb
+++ b/easybuild/easyconfigs/i/icc/icc-2019.0.117-GCC-8.2.0-2.31.1.eb
@@ -8,7 +8,7 @@ description = "Intel C and C++ compilers"
toolchain = SYSTEM
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13582/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/13582/']
sources = ['parallel_studio_xe_%(version_major)s_composer_edition_for_cpp.tgz']
checksums = ['17932a54a76d04432de16e6db15a6ed80fa80ed20193f3b717fd391f623e23e1']
diff --git a/easybuild/easyconfigs/i/icc/icc-2019.1.144-GCC-8.2.0-2.31.1.eb b/easybuild/easyconfigs/i/icc/icc-2019.1.144-GCC-8.2.0-2.31.1.eb
index 7b37d3169dc..f2341a844c3 100644
--- a/easybuild/easyconfigs/i/icc/icc-2019.1.144-GCC-8.2.0-2.31.1.eb
+++ b/easybuild/easyconfigs/i/icc/icc-2019.1.144-GCC-8.2.0-2.31.1.eb
@@ -8,7 +8,7 @@ description = "Intel C and C++ compilers"
toolchain = SYSTEM
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/14865/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/14865/']
sources = ['parallel_studio_xe_%(version_major)s_update%(version_minor)s_composer_edition_for_cpp.tgz']
checksums = ['4a156bbeac9bd8d67e74b33ad6f3ae02d4c24c8444365465db6dc50d3e891946']
diff --git a/easybuild/easyconfigs/i/icc/icc-2019.2.187-GCC-8.2.0-2.31.1.eb b/easybuild/easyconfigs/i/icc/icc-2019.2.187-GCC-8.2.0-2.31.1.eb
index f192fd17472..9f9b71a21df 100644
--- a/easybuild/easyconfigs/i/icc/icc-2019.2.187-GCC-8.2.0-2.31.1.eb
+++ b/easybuild/easyconfigs/i/icc/icc-2019.2.187-GCC-8.2.0-2.31.1.eb
@@ -8,7 +8,7 @@ description = "Intel C and C++ compilers"
toolchain = SYSTEM
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15093/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15093/']
sources = ['parallel_studio_xe_%(version_major)s_update%(version_minor)s_composer_edition_for_cpp.tgz']
checksums = ['fc434a2e005af223f43d258c16f004134def726a8d2a225e830af85d553bee55']
diff --git a/easybuild/easyconfigs/i/icc/icc-2019.3.199-GCC-8.3.0-2.32.eb b/easybuild/easyconfigs/i/icc/icc-2019.3.199-GCC-8.3.0-2.32.eb
index 65821a417db..2d194db100a 100644
--- a/easybuild/easyconfigs/i/icc/icc-2019.3.199-GCC-8.3.0-2.32.eb
+++ b/easybuild/easyconfigs/i/icc/icc-2019.3.199-GCC-8.3.0-2.32.eb
@@ -8,7 +8,7 @@ description = "Intel C and C++ compilers"
toolchain = SYSTEM
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15273/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15273/']
sources = ['parallel_studio_xe_%(version_major)s_update%(version_minor)s_composer_edition_for_cpp.tgz']
checksums = ['969985e83ebf7bfe3c3ac3b771a7d16ba9b5dfbda84e7c2a60ef25fb827b58ae']
diff --git a/easybuild/easyconfigs/i/iccifort/iccifort-2019.4.243.eb b/easybuild/easyconfigs/i/iccifort/iccifort-2019.4.243.eb
index 5cefbfc2dee..85453f37251 100644
--- a/easybuild/easyconfigs/i/iccifort/iccifort-2019.4.243.eb
+++ b/easybuild/easyconfigs/i/iccifort/iccifort-2019.4.243.eb
@@ -8,7 +8,7 @@ description = "Intel C, C++ & Fortran compilers"
toolchain = SYSTEM
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15537/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15537/']
sources = ['parallel_studio_xe_%(version_major)s_update%(version_minor)s_composer_edition.tgz']
patches = ['iccifort-%(version)s_no_mpi_rt_dependency.patch']
checksums = [
diff --git a/easybuild/easyconfigs/i/iccifort/iccifort-2019.5.281.eb b/easybuild/easyconfigs/i/iccifort/iccifort-2019.5.281.eb
index c080762f21d..b4eb6588ec7 100644
--- a/easybuild/easyconfigs/i/iccifort/iccifort-2019.5.281.eb
+++ b/easybuild/easyconfigs/i/iccifort/iccifort-2019.5.281.eb
@@ -8,7 +8,7 @@ description = "Intel C, C++ & Fortran compilers"
toolchain = SYSTEM
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15813/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15813/']
sources = ['parallel_studio_xe_%(version_major)s_update%(version_minor)s_composer_edition.tgz']
patches = ['iccifort-%(version)s_no_mpi_rt_dependency.patch']
checksums = [
diff --git a/easybuild/easyconfigs/i/iccifort/iccifort-2020.0.166-GCC-9.2.0.eb b/easybuild/easyconfigs/i/iccifort/iccifort-2020.0.166-GCC-9.2.0.eb
index a8f9c94588f..a21e15527d5 100644
--- a/easybuild/easyconfigs/i/iccifort/iccifort-2020.0.166-GCC-9.2.0.eb
+++ b/easybuild/easyconfigs/i/iccifort/iccifort-2020.0.166-GCC-9.2.0.eb
@@ -8,7 +8,7 @@ description = "Intel C, C++ & Fortran compilers"
toolchain = SYSTEM
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16229/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16229/']
sources = ['parallel_studio_xe_%(version_major)s_composer_edition.tgz']
patches = ['iccifort-%(version)s_no_mpi_rt_dependency.patch']
checksums = [
diff --git a/easybuild/easyconfigs/i/iccifort/iccifort-2020.0.166.eb b/easybuild/easyconfigs/i/iccifort/iccifort-2020.0.166.eb
index 70593480c69..4ad42c13a31 100644
--- a/easybuild/easyconfigs/i/iccifort/iccifort-2020.0.166.eb
+++ b/easybuild/easyconfigs/i/iccifort/iccifort-2020.0.166.eb
@@ -8,7 +8,7 @@ description = "Intel C, C++ & Fortran compilers"
toolchain = SYSTEM
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16229/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16229/']
sources = ['parallel_studio_xe_%(version_major)s_composer_edition.tgz']
patches = ['iccifort-%(version)s_no_mpi_rt_dependency.patch']
checksums = [
diff --git a/easybuild/easyconfigs/i/iccifort/iccifort-2020.1.217.eb b/easybuild/easyconfigs/i/iccifort/iccifort-2020.1.217.eb
index 89d42319787..98e64dff918 100644
--- a/easybuild/easyconfigs/i/iccifort/iccifort-2020.1.217.eb
+++ b/easybuild/easyconfigs/i/iccifort/iccifort-2020.1.217.eb
@@ -8,7 +8,7 @@ description = "Intel C, C++ & Fortran compilers"
toolchain = SYSTEM
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16530/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16530/']
sources = ['parallel_studio_xe_%(version_major)s_update%(version_minor)s_composer_edition.tgz']
patches = ['iccifort-%(version)s_no_mpi_rt_dependency.patch']
checksums = [
diff --git a/easybuild/easyconfigs/i/iccifort/iccifort-2020.4.304.eb b/easybuild/easyconfigs/i/iccifort/iccifort-2020.4.304.eb
index fbd8bc1719b..056539c7f76 100644
--- a/easybuild/easyconfigs/i/iccifort/iccifort-2020.4.304.eb
+++ b/easybuild/easyconfigs/i/iccifort/iccifort-2020.4.304.eb
@@ -8,7 +8,7 @@ description = "Intel C, C++ & Fortran compilers"
toolchain = SYSTEM
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/17117/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/17117/']
sources = ['parallel_studio_xe_%(version_major)s_update%(version_minor)s_composer_edition.tgz']
patches = ['iccifort-%(version)s_no_mpi_rt_dependency.patch']
checksums = [
diff --git a/easybuild/easyconfigs/i/ifort/ifort-2018.1.163-GCC-6.4.0-2.28.eb b/easybuild/easyconfigs/i/ifort/ifort-2018.1.163-GCC-6.4.0-2.28.eb
index 66cf55bd0c0..2ce7d5ee7f1 100644
--- a/easybuild/easyconfigs/i/ifort/ifort-2018.1.163-GCC-6.4.0-2.28.eb
+++ b/easybuild/easyconfigs/i/ifort/ifort-2018.1.163-GCC-6.4.0-2.28.eb
@@ -8,7 +8,7 @@ description = "Intel Fortran compiler"
toolchain = SYSTEM
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12383/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12383/']
sources = ['parallel_studio_xe_%(version_major)s_update%(version_minor)s_composer_edition_for_fortran.tgz']
patches = ['ifort_%(version)s_no_mpi_mic_dependency.patch']
checksums = [
diff --git a/easybuild/easyconfigs/i/ifort/ifort-2018.3.222-GCC-7.3.0-2.30.eb b/easybuild/easyconfigs/i/ifort/ifort-2018.3.222-GCC-7.3.0-2.30.eb
index 8572f079dca..3bdc51210af 100644
--- a/easybuild/easyconfigs/i/ifort/ifort-2018.3.222-GCC-7.3.0-2.30.eb
+++ b/easybuild/easyconfigs/i/ifort/ifort-2018.3.222-GCC-7.3.0-2.30.eb
@@ -8,7 +8,7 @@ description = "Intel Fortran compiler"
toolchain = SYSTEM
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13004/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/13004/']
sources = ['parallel_studio_xe_%(version_major)s_update%(version_minor)s_composer_edition_for_fortran.tgz']
patches = ['ifort_%(version)s_no_mpi_mic_dependency.patch']
checksums = [
diff --git a/easybuild/easyconfigs/i/ifort/ifort-2018.5.274-GCC-7.3.0-2.30.eb b/easybuild/easyconfigs/i/ifort/ifort-2018.5.274-GCC-7.3.0-2.30.eb
index 7668ec76749..3f9f1de0c45 100644
--- a/easybuild/easyconfigs/i/ifort/ifort-2018.5.274-GCC-7.3.0-2.30.eb
+++ b/easybuild/easyconfigs/i/ifort/ifort-2018.5.274-GCC-7.3.0-2.30.eb
@@ -8,7 +8,7 @@ description = "Intel Fortran compiler"
toolchain = SYSTEM
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13724/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/13724/']
# released as "2018 update 4" despite internal version number if 2018.5.274, so can't use %(version_minor)s template
sources = ['parallel_studio_xe_%(version_major)s_update4_composer_edition_for_fortran.tgz']
patches = ['ifort-%(version)s_no_mpi_mic_dependency.patch']
diff --git a/easybuild/easyconfigs/i/ifort/ifort-2019.0.117-GCC-8.2.0-2.31.1.eb b/easybuild/easyconfigs/i/ifort/ifort-2019.0.117-GCC-8.2.0-2.31.1.eb
index 3457239087d..453cf476095 100644
--- a/easybuild/easyconfigs/i/ifort/ifort-2019.0.117-GCC-8.2.0-2.31.1.eb
+++ b/easybuild/easyconfigs/i/ifort/ifort-2019.0.117-GCC-8.2.0-2.31.1.eb
@@ -8,7 +8,7 @@ description = "Intel Fortran compiler"
toolchain = SYSTEM
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13583/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/13583/']
sources = ['parallel_studio_xe_%(version_major)s_composer_edition_for_fortran.tgz']
patches = ['ifort-%(version)s_no_mpi_mic_dependency.patch']
checksums = [
diff --git a/easybuild/easyconfigs/i/ifort/ifort-2019.1.144-GCC-8.2.0-2.31.1.eb b/easybuild/easyconfigs/i/ifort/ifort-2019.1.144-GCC-8.2.0-2.31.1.eb
index c47117b085b..c6c03d9340f 100644
--- a/easybuild/easyconfigs/i/ifort/ifort-2019.1.144-GCC-8.2.0-2.31.1.eb
+++ b/easybuild/easyconfigs/i/ifort/ifort-2019.1.144-GCC-8.2.0-2.31.1.eb
@@ -8,7 +8,7 @@ description = "Intel Fortran compiler"
toolchain = SYSTEM
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/14866/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/14866/']
sources = ['parallel_studio_xe_%(version_major)s_update%(version_minor)s_composer_edition_for_fortran.tgz']
patches = ['ifort-%(version)s_no_mpi_mic_dependency.patch']
checksums = [
diff --git a/easybuild/easyconfigs/i/ifort/ifort-2019.2.187-GCC-8.2.0-2.31.1.eb b/easybuild/easyconfigs/i/ifort/ifort-2019.2.187-GCC-8.2.0-2.31.1.eb
index 924762c6de2..5a043c03822 100644
--- a/easybuild/easyconfigs/i/ifort/ifort-2019.2.187-GCC-8.2.0-2.31.1.eb
+++ b/easybuild/easyconfigs/i/ifort/ifort-2019.2.187-GCC-8.2.0-2.31.1.eb
@@ -8,7 +8,7 @@ description = "Intel Fortran compiler"
toolchain = SYSTEM
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15094/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15094/']
sources = ['parallel_studio_xe_%(version_major)s_update%(version_minor)s_composer_edition_for_fortran.tgz']
patches = ['ifort-%(version)s_no_mpi_mic_dependency.patch']
checksums = [
diff --git a/easybuild/easyconfigs/i/ifort/ifort-2019.3.199-GCC-8.3.0-2.32.eb b/easybuild/easyconfigs/i/ifort/ifort-2019.3.199-GCC-8.3.0-2.32.eb
index b8eb911adc2..b996c679995 100644
--- a/easybuild/easyconfigs/i/ifort/ifort-2019.3.199-GCC-8.3.0-2.32.eb
+++ b/easybuild/easyconfigs/i/ifort/ifort-2019.3.199-GCC-8.3.0-2.32.eb
@@ -8,7 +8,7 @@ description = "Intel Fortran compiler"
toolchain = SYSTEM
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15274/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15274/']
sources = ['parallel_studio_xe_%(version_major)s_update%(version_minor)s_composer_edition_for_fortran.tgz']
patches = ['ifort-%(version)s_no_mpi_mic_dependency.patch']
checksums = [
diff --git a/easybuild/easyconfigs/i/igraph/igraph-0.10.12-foss-2023b.eb b/easybuild/easyconfigs/i/igraph/igraph-0.10.12-foss-2023b.eb
new file mode 100644
index 00000000000..6e5f77cd3c8
--- /dev/null
+++ b/easybuild/easyconfigs/i/igraph/igraph-0.10.12-foss-2023b.eb
@@ -0,0 +1,42 @@
+# Author: Denis Krišťák (INUITS)
+# Modified: Jasper Grimm (UoY)
+# Update: Pavel Tománek (INUITS)
+# Update: Petr Král (INUITS)
+
+easyblock = 'CMakeMake'
+
+name = 'igraph'
+version = '0.10.12'
+
+homepage = 'https://igraph.org'
+description = """igraph is a collection of network analysis tools with the emphasis on
+efficiency, portability and ease of use. igraph is open source and free. igraph can be
+programmed in R, Python and C/C++."""
+
+toolchain = {'name': 'foss', 'version': '2023b'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/igraph/igraph/releases/download/%(version)s']
+sources = [SOURCE_TAR_GZ]
+checksums = ['b011f7f9f38a3e59924cc9ff652e6d33105fa03fcaf3792f47d752626a0a4625']
+
+builddependencies = [
+ ('CMake', '3.27.6'),
+]
+
+dependencies = [
+ ('GLPK', '5.0'),
+ ('libxml2', '2.11.5'),
+ ('zlib', '1.2.13'),
+ ('arpack-ng', '3.9.0'),
+]
+
+# Build static and shared libraries
+configopts = ["-DBUILD_SHARED_LIBS=OFF", "-DBUILD_SHARED_LIBS=ON"]
+
+sanity_check_paths = {
+ 'files': ['include/igraph/igraph.h'] + ['lib/libigraph.%s' % x for x in ['a', SHLIB_EXT]],
+ 'dirs': [],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/i/iimpi/iimpi-2024a.eb b/easybuild/easyconfigs/i/iimpi/iimpi-2024a.eb
new file mode 100644
index 00000000000..d6150133621
--- /dev/null
+++ b/easybuild/easyconfigs/i/iimpi/iimpi-2024a.eb
@@ -0,0 +1,18 @@
+# This is an easyconfig file for EasyBuild, see http://easybuilders.github.io/easybuild
+easyblock = 'Toolchain'
+
+name = 'iimpi'
+version = '2024a'
+
+homepage = 'https://software.intel.com/parallel-studio-xe'
+description = """Intel C/C++ and Fortran compilers, alongside Intel MPI."""
+
+toolchain = SYSTEM
+
+local_comp_ver = '2024.2.0'
+dependencies = [
+ ('intel-compilers', local_comp_ver),
+ ('impi', '2021.13.0', '', ('intel-compilers', local_comp_ver)),
+]
+
+moduleclass = 'toolchain'
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/imagecodecs/imagecodecs-2024.1.1-foss-2023a.eb b/easybuild/easyconfigs/i/imagecodecs/imagecodecs-2024.1.1-foss-2023a.eb
new file mode 100644
index 00000000000..25c939f0627
--- /dev/null
+++ b/easybuild/easyconfigs/i/imagecodecs/imagecodecs-2024.1.1-foss-2023a.eb
@@ -0,0 +1,78 @@
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+# Author: Denis Kristak
+# update: Thomas Hoffmann (EMBL), Denis Kristak (Inuits), Cintia Willemyns (Vrije Universiteit Brussel)
+easyblock = 'PythonBundle'
+
+name = 'imagecodecs'
+version = '2024.1.1'
+
+homepage = 'https://github.com/cgohlke/imagecodecs'
+description = """Imagecodecs is a Python library that provides block-oriented, in-memory buffer transformation,
+compression, and decompression functions for use in the tifffile, czifile, zarr, and other
+scientific image input/output modules."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+local_openjpeg_maj_min = '2.5'
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('Cython', '3.0.8'),
+ ('matplotlib', '3.7.2'),
+ ('Brotli', '1.0.9'),
+ ('Blosc', '1.21.5'),
+ ('Blosc2', '2.8.0'),
+ ('CFITSIO', '4.3.0'),
+ ('CharLS', '2.4.2'),
+ ('giflib', '5.2.1'),
+ ('jxrlib', '1.1'),
+ ('LittleCMS', '2.15'),
+ ('LERC', '4.0.0'),
+ ('libaec', '1.0.6'),
+ ('libavif', '1.0.4'),
+ ('libdeflate', '1.18'),
+ ('libjpeg-turbo', '2.1.5.1'),
+ ('libjxl', '0.8.2'),
+ ('LibLZF', '3.6'),
+ ('libpng', '1.6.39'),
+ ('LibTIFF', '4.5.0'),
+ ('libwebp', '1.3.1'),
+ ('lz4', '1.9.4'),
+ ('OpenJPEG', local_openjpeg_maj_min + '.0'),
+ ('snappy', '1.1.10'),
+ ('zlib-ng', '2.1.6'),
+ ('Zopfli', '1.0.3'),
+ ('zfp', '1.0.1'),
+ ('zstd', '1.5.5'),
+ ('Brunsli', '0.1'),
+ ('HDF5', '1.14.0'),
+ ('h5py', '3.9.0'),
+ ('libheif', '1.17.6'),
+ ('bitshuffle', '0.5.1'), # Cannot be as extension because Cython 3.0.8 is too new
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('colorlog', '6.8.2', {
+ 'checksums': ['3e3e079a41feb5a1b64f978b5ea4f46040a94f11f0e8bbb8261e3dbbeca64d44'],
+ }),
+ (name, version, {
+ 'buildopts': '--global-option="build_ext" --global-option="--lite"',
+ 'extract_cmd': "tar -xvf %s && find . -type f -print0 | xargs -0 dos2unix",
+ 'patches': ['imagecodecs-2024.1.1_fix-aec-version.patch'],
+ 'preinstallopts': "export CPATH=$EBROOTOPENJPEG/include/openjpeg-2.5/:$CPATH && ",
+ 'source_urls': [
+ 'https://github.com/cgohlke/imagecodecs/releases/download/v%(version)s/imagecodecs-2024.1.1.tar.gz'
+ ],
+ 'sources': ['%(name)s-%(version)s.tar.gz'],
+ 'checksums': [
+ {'imagecodecs-2024.1.1.tar.gz': 'fde46bd698d008255deef5411c59b35c0e875295e835bf6079f7e2ab22f216eb'},
+ {'imagecodecs-2024.1.1_fix-aec-version.patch':
+ '7feb0a5fe37893d1a186f85c8f6cdb940704605ee2da5ea8e5d555ec5bfa01aa'},
+ ],
+ }),
+]
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/i/imagecodecs/imagecodecs-2024.1.1_fix-aec-version.patch b/easybuild/easyconfigs/i/imagecodecs/imagecodecs-2024.1.1_fix-aec-version.patch
new file mode 100644
index 00000000000..045dca394d7
--- /dev/null
+++ b/easybuild/easyconfigs/i/imagecodecs/imagecodecs-2024.1.1_fix-aec-version.patch
@@ -0,0 +1,16 @@
+Determine version of libaec from header does not work and causes error
+Author: Cintia Willemyns (Vrije Universiteit Brussel)
+--- imagecodecs-2024.1.1.orig/imagecodecs/_aec.pyx 2024-05-27 15:12:24.533724000 +0200
++++ imagecodecs-2024.1.1/imagecodecs/_aec.pyx 2024-05-27 15:13:02.238325670 +0200
+@@ -76,10 +76,7 @@
+
+ def aec_version():
+ """Return libaec library version string."""
+- return (
+- f'libaec {AEC_VERSION_MAJOR}.{AEC_VERSION_MINOR}.{AEC_VERSION_PATCH}'
+- )
+-
++ return 'libaec 1.0.6'
+
+ def aec_check(data):
+ """Return whether data is AEC encoded."""
diff --git a/easybuild/easyconfigs/i/imageio/imageio-2.34.1-gfbf-2023b.eb b/easybuild/easyconfigs/i/imageio/imageio-2.34.1-gfbf-2023b.eb
new file mode 100644
index 00000000000..8f602262f3d
--- /dev/null
+++ b/easybuild/easyconfigs/i/imageio/imageio-2.34.1-gfbf-2023b.eb
@@ -0,0 +1,25 @@
+easyblock = 'PythonPackage'
+
+name = 'imageio'
+version = '2.34.1'
+
+homepage = 'https://imageio.github.io'
+description = """Imageio is a Python library that provides an easy interface to read and write a wide range of
+ image data, including animated images, video, volumetric data, and scientific formats."""
+
+toolchain = {'name': 'gfbf', 'version': '2023b'}
+
+sources = [SOURCE_TAR_GZ]
+checksums = ['f13eb76e4922f936ac4a7fec77ce8a783e63b93543d4ea3e40793a6cabd9ac7d']
+
+dependencies = [
+ ('Python', '3.11.5'),
+ ('matplotlib', '3.8.2'),
+ ('Pillow', '10.2.0'),
+]
+
+download_dep_fail = True
+use_pip = True
+sanity_pip_check = True
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/i/imbalanced-learn/imbalanced-learn-0.12.3-gfbf-2023a.eb b/easybuild/easyconfigs/i/imbalanced-learn/imbalanced-learn-0.12.3-gfbf-2023a.eb
new file mode 100644
index 00000000000..4881e78a0e7
--- /dev/null
+++ b/easybuild/easyconfigs/i/imbalanced-learn/imbalanced-learn-0.12.3-gfbf-2023a.eb
@@ -0,0 +1,27 @@
+easyblock = 'PythonBundle'
+
+name = 'imbalanced-learn'
+version = '0.12.3'
+
+homepage = 'https://github.com/scikit-learn-contrib/imbalanced-learn'
+description = """imbalanced-learn is a Python package offering a number of re-sampling techniques commonly used in
+ datasets showing strong between-class imbalance."""
+
+toolchain = {'name': 'gfbf', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('scikit-learn', '1.3.1'),
+]
+
+sanity_pip_check = True
+use_pip = True
+
+exts_list = [
+ (name, version, {
+ 'modulename': 'imblearn',
+ 'checksums': ['5b00796a01419e9102bd425e27c319d58d1f6cf2dfa751e02ed7f4edf67c3c1b'],
+ }),
+]
+
+moduleclass = 'tools'
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-FFTW/imkl-FFTW-2024.2.0-iimpi-2024a.eb b/easybuild/easyconfigs/i/imkl-FFTW/imkl-FFTW-2024.2.0-iimpi-2024a.eb
new file mode 100644
index 00000000000..b26ab65f452
--- /dev/null
+++ b/easybuild/easyconfigs/i/imkl-FFTW/imkl-FFTW-2024.2.0-iimpi-2024a.eb
@@ -0,0 +1,11 @@
+name = 'imkl-FFTW'
+version = '2024.2.0'
+
+homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onemkl.html'
+description = "FFTW interfaces using Intel oneAPI Math Kernel Library"
+
+toolchain = {'name': 'iimpi', 'version': '2024a'}
+
+dependencies = [('imkl', version, '', SYSTEM)]
+
+moduleclass = 'numlib'
diff --git a/easybuild/easyconfigs/i/imkl/imkl-2018.1.163-iccifort-2018.1.163-GCC-6.4.0-2.28-serial.eb b/easybuild/easyconfigs/i/imkl/imkl-2018.1.163-iccifort-2018.1.163-GCC-6.4.0-2.28-serial.eb
index 65486c1a522..1af220dba70 100644
--- a/easybuild/easyconfigs/i/imkl/imkl-2018.1.163-iccifort-2018.1.163-GCC-6.4.0-2.28-serial.eb
+++ b/easybuild/easyconfigs/i/imkl/imkl-2018.1.163-iccifort-2018.1.163-GCC-6.4.0-2.28-serial.eb
@@ -12,7 +12,7 @@ description = """Intel Math Kernel Library is a library of highly optimized,
toolchain = {'name': 'iccifort', 'version': '2018.1.163-GCC-6.4.0-2.28'}
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12384/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12384/']
sources = ['l_mkl_%(version)s.tgz']
checksums = ['f6dc263fc6f3c350979740a13de1b1e8745d9ba0d0f067ece503483b9189c2ca']
diff --git a/easybuild/easyconfigs/i/imkl/imkl-2018.1.163-iimpi-2018a.eb b/easybuild/easyconfigs/i/imkl/imkl-2018.1.163-iimpi-2018a.eb
index 770acb76d87..a90fc9aaaac 100644
--- a/easybuild/easyconfigs/i/imkl/imkl-2018.1.163-iimpi-2018a.eb
+++ b/easybuild/easyconfigs/i/imkl/imkl-2018.1.163-iimpi-2018a.eb
@@ -11,7 +11,7 @@ description = """Intel Math Kernel Library is a library of highly optimized,
toolchain = {'name': 'iimpi', 'version': '2018a'}
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12384/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12384/']
sources = ['l_mkl_%(version)s.tgz']
checksums = ['f6dc263fc6f3c350979740a13de1b1e8745d9ba0d0f067ece503483b9189c2ca']
diff --git a/easybuild/easyconfigs/i/imkl/imkl-2018.3.222-gimpi-2018b.eb b/easybuild/easyconfigs/i/imkl/imkl-2018.3.222-gimpi-2018b.eb
index f340d755ee2..c873144967b 100644
--- a/easybuild/easyconfigs/i/imkl/imkl-2018.3.222-gimpi-2018b.eb
+++ b/easybuild/easyconfigs/i/imkl/imkl-2018.3.222-gimpi-2018b.eb
@@ -11,7 +11,7 @@ description = """Intel Math Kernel Library is a library of highly optimized,
toolchain = {'name': 'gimpi', 'version': '2018b'}
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13005/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/13005/']
sources = ['l_mkl_%(version)s.tgz']
checksums = ['108d59c0927e58ce8c314db6c2b48ee331c3798f7102725f425d6884eb6ed241']
diff --git a/easybuild/easyconfigs/i/imkl/imkl-2018.3.222-gompi-2018b.eb b/easybuild/easyconfigs/i/imkl/imkl-2018.3.222-gompi-2018b.eb
index 6ead35efc9a..89a3f33d184 100644
--- a/easybuild/easyconfigs/i/imkl/imkl-2018.3.222-gompi-2018b.eb
+++ b/easybuild/easyconfigs/i/imkl/imkl-2018.3.222-gompi-2018b.eb
@@ -11,7 +11,7 @@ description = """Intel Math Kernel Library is a library of highly optimized,
toolchain = {'name': 'gompi', 'version': '2018b'}
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13005/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/13005/']
sources = ['l_mkl_%(version)s.tgz']
checksums = ['108d59c0927e58ce8c314db6c2b48ee331c3798f7102725f425d6884eb6ed241']
diff --git a/easybuild/easyconfigs/i/imkl/imkl-2018.3.222-iimpi-2018b.eb b/easybuild/easyconfigs/i/imkl/imkl-2018.3.222-iimpi-2018b.eb
index 7f53145d6a3..450dc0082e2 100644
--- a/easybuild/easyconfigs/i/imkl/imkl-2018.3.222-iimpi-2018b.eb
+++ b/easybuild/easyconfigs/i/imkl/imkl-2018.3.222-iimpi-2018b.eb
@@ -11,7 +11,7 @@ description = """Intel Math Kernel Library is a library of highly optimized,
toolchain = {'name': 'iimpi', 'version': '2018b'}
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13005/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/13005/']
sources = ['l_mkl_%(version)s.tgz']
checksums = ['108d59c0927e58ce8c314db6c2b48ee331c3798f7102725f425d6884eb6ed241']
diff --git a/easybuild/easyconfigs/i/imkl/imkl-2018.3.222-iompi-2018b.eb b/easybuild/easyconfigs/i/imkl/imkl-2018.3.222-iompi-2018b.eb
index aeabee4d300..0fcf2f60e8e 100644
--- a/easybuild/easyconfigs/i/imkl/imkl-2018.3.222-iompi-2018b.eb
+++ b/easybuild/easyconfigs/i/imkl/imkl-2018.3.222-iompi-2018b.eb
@@ -11,7 +11,7 @@ description = """Intel Math Kernel Library is a library of highly optimized,
toolchain = {'name': 'iompi', 'version': '2018b'}
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13005/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/13005/']
sources = ['l_mkl_%(version)s.tgz']
checksums = ['108d59c0927e58ce8c314db6c2b48ee331c3798f7102725f425d6884eb6ed241']
diff --git a/easybuild/easyconfigs/i/imkl/imkl-2018.4.274-iimpi-2018.04.eb b/easybuild/easyconfigs/i/imkl/imkl-2018.4.274-iimpi-2018.04.eb
index 02dba60737e..7d2dc1809af 100644
--- a/easybuild/easyconfigs/i/imkl/imkl-2018.4.274-iimpi-2018.04.eb
+++ b/easybuild/easyconfigs/i/imkl/imkl-2018.4.274-iimpi-2018.04.eb
@@ -11,7 +11,7 @@ description = """Intel Math Kernel Library is a library of highly optimized,
toolchain = {'name': 'iimpi', 'version': '2018.04'}
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13725/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/13725/']
sources = ['l_mkl_%(version)s.tgz']
checksums = ['18eb3cde3e6a61a88f25afff25df762a560013f650aaf363f7d3d516a0d04881']
diff --git a/easybuild/easyconfigs/i/imkl/imkl-2019.0.117-iimpi-2019.00.eb b/easybuild/easyconfigs/i/imkl/imkl-2019.0.117-iimpi-2019.00.eb
index a382ae20ac7..d222e9cd3b3 100644
--- a/easybuild/easyconfigs/i/imkl/imkl-2019.0.117-iimpi-2019.00.eb
+++ b/easybuild/easyconfigs/i/imkl/imkl-2019.0.117-iimpi-2019.00.eb
@@ -11,7 +11,7 @@ description = """Intel Math Kernel Library is a library of highly optimized,
toolchain = {'name': 'iimpi', 'version': '2019.00'}
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13575/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/13575/']
sources = ['l_mkl_%(version)s.tgz']
checksums = ['4e1fe2c705cfc47050064c0d6c4dee1a8c6740ac1c4f64dde9c7511c4989c7ad']
diff --git a/easybuild/easyconfigs/i/imkl/imkl-2019.1.144-gompi-2019a.eb b/easybuild/easyconfigs/i/imkl/imkl-2019.1.144-gompi-2019a.eb
index aa6a03a6929..ae7e676174e 100644
--- a/easybuild/easyconfigs/i/imkl/imkl-2019.1.144-gompi-2019a.eb
+++ b/easybuild/easyconfigs/i/imkl/imkl-2019.1.144-gompi-2019a.eb
@@ -9,7 +9,7 @@ description = """Intel Math Kernel Library is a library of highly optimized,
toolchain = {'name': 'gompi', 'version': '2019a'}
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/14895/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/14895/']
sources = ['l_mkl_%(version)s.tgz']
checksums = ['5205a460a9c685f7a442868367389b2d0c25e1455346bc6a37c5b8ff90a20fbb']
diff --git a/easybuild/easyconfigs/i/imkl/imkl-2019.1.144-iimpi-2019.01.eb b/easybuild/easyconfigs/i/imkl/imkl-2019.1.144-iimpi-2019.01.eb
index e63cc1a2695..15e03750772 100644
--- a/easybuild/easyconfigs/i/imkl/imkl-2019.1.144-iimpi-2019.01.eb
+++ b/easybuild/easyconfigs/i/imkl/imkl-2019.1.144-iimpi-2019.01.eb
@@ -11,7 +11,7 @@ description = """Intel Math Kernel Library is a library of highly optimized,
toolchain = {'name': 'iimpi', 'version': '2019.01'}
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/14895/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/14895/']
sources = ['l_mkl_%(version)s.tgz']
checksums = ['5205a460a9c685f7a442868367389b2d0c25e1455346bc6a37c5b8ff90a20fbb']
diff --git a/easybuild/easyconfigs/i/imkl/imkl-2019.1.144-iimpi-2019a.eb b/easybuild/easyconfigs/i/imkl/imkl-2019.1.144-iimpi-2019a.eb
index 782473ec9fa..dcd07853ae8 100644
--- a/easybuild/easyconfigs/i/imkl/imkl-2019.1.144-iimpi-2019a.eb
+++ b/easybuild/easyconfigs/i/imkl/imkl-2019.1.144-iimpi-2019a.eb
@@ -9,7 +9,7 @@ description = """Intel Math Kernel Library is a library of highly optimized,
toolchain = {'name': 'iimpi', 'version': '2019a'}
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/14895/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/14895/']
sources = ['l_mkl_%(version)s.tgz']
checksums = ['5205a460a9c685f7a442868367389b2d0c25e1455346bc6a37c5b8ff90a20fbb']
diff --git a/easybuild/easyconfigs/i/imkl/imkl-2019.1.144-iimpic-2019a.eb b/easybuild/easyconfigs/i/imkl/imkl-2019.1.144-iimpic-2019a.eb
index b8fb1ebef4c..af64b61bfd7 100644
--- a/easybuild/easyconfigs/i/imkl/imkl-2019.1.144-iimpic-2019a.eb
+++ b/easybuild/easyconfigs/i/imkl/imkl-2019.1.144-iimpic-2019a.eb
@@ -9,7 +9,7 @@ description = """Intel Math Kernel Library is a library of highly optimized,
toolchain = {'name': 'iimpic', 'version': '2019a'}
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/14895/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/14895/']
sources = ['l_mkl_%(version)s.tgz']
checksums = ['5205a460a9c685f7a442868367389b2d0c25e1455346bc6a37c5b8ff90a20fbb']
diff --git a/easybuild/easyconfigs/i/imkl/imkl-2019.1.144-iompi-2019.01.eb b/easybuild/easyconfigs/i/imkl/imkl-2019.1.144-iompi-2019.01.eb
index 3a5e6baedc4..e7a42454f04 100644
--- a/easybuild/easyconfigs/i/imkl/imkl-2019.1.144-iompi-2019.01.eb
+++ b/easybuild/easyconfigs/i/imkl/imkl-2019.1.144-iompi-2019.01.eb
@@ -11,7 +11,7 @@ description = """Intel Math Kernel Library is a library of highly optimized,
toolchain = {'name': 'iompi', 'version': '2019.01'}
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/14895/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/14895/']
sources = ['l_mkl_%(version)s.tgz']
checksums = ['5205a460a9c685f7a442868367389b2d0c25e1455346bc6a37c5b8ff90a20fbb']
diff --git a/easybuild/easyconfigs/i/imkl/imkl-2019.2.187-iimpi-2019.02.eb b/easybuild/easyconfigs/i/imkl/imkl-2019.2.187-iimpi-2019.02.eb
index 645ffaf31a7..8cd693cc5ec 100644
--- a/easybuild/easyconfigs/i/imkl/imkl-2019.2.187-iimpi-2019.02.eb
+++ b/easybuild/easyconfigs/i/imkl/imkl-2019.2.187-iimpi-2019.02.eb
@@ -11,7 +11,7 @@ description = """Intel Math Kernel Library is a library of highly optimized,
toolchain = {'name': 'iimpi', 'version': '2019.02'}
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15095/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15095/']
sources = ['l_mkl_%(version)s.tgz']
checksums = ['2bf004e6b5adb4f956993d6c20ea6ce289bb630314dd501db7f2dd5b9978ed1d']
diff --git a/easybuild/easyconfigs/i/imkl/imkl-2019.3.199-iimpi-2019.03.eb b/easybuild/easyconfigs/i/imkl/imkl-2019.3.199-iimpi-2019.03.eb
index 2c06461ab97..8685b03cc91 100644
--- a/easybuild/easyconfigs/i/imkl/imkl-2019.3.199-iimpi-2019.03.eb
+++ b/easybuild/easyconfigs/i/imkl/imkl-2019.3.199-iimpi-2019.03.eb
@@ -11,7 +11,7 @@ description = """Intel Math Kernel Library is a library of highly optimized,
toolchain = {'name': 'iimpi', 'version': '2019.03'}
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15275/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15275/']
sources = ['l_mkl_%(version)s.tgz']
checksums = ['06de2b54f4812e7c39a118536259c942029fe1d6d8918ad9df558a83c4162b8f']
diff --git a/easybuild/easyconfigs/i/imkl/imkl-2019.5.281-gompi-2019b.eb b/easybuild/easyconfigs/i/imkl/imkl-2019.5.281-gompi-2019b.eb
index 3c2759d1539..940151b46dc 100644
--- a/easybuild/easyconfigs/i/imkl/imkl-2019.5.281-gompi-2019b.eb
+++ b/easybuild/easyconfigs/i/imkl/imkl-2019.5.281-gompi-2019b.eb
@@ -11,7 +11,7 @@ description = """Intel Math Kernel Library is a library of highly optimized,
toolchain = {'name': 'gompi', 'version': '2019b'}
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15816/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15816/']
sources = ['l_mkl_%(version)s.tgz']
checksums = ['9995ea4469b05360d509c9705e9309dc983c0a10edc2ae3a5384bc837326737e']
diff --git a/easybuild/easyconfigs/i/imkl/imkl-2019.5.281-gompic-2019b.eb b/easybuild/easyconfigs/i/imkl/imkl-2019.5.281-gompic-2019b.eb
index 3421505968c..91ca97f6bc6 100644
--- a/easybuild/easyconfigs/i/imkl/imkl-2019.5.281-gompic-2019b.eb
+++ b/easybuild/easyconfigs/i/imkl/imkl-2019.5.281-gompic-2019b.eb
@@ -11,7 +11,7 @@ description = """Intel Math Kernel Library is a library of highly optimized,
toolchain = {'name': 'gompic', 'version': '2019b'}
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15816/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15816/']
sources = ['l_mkl_%(version)s.tgz']
checksums = ['9995ea4469b05360d509c9705e9309dc983c0a10edc2ae3a5384bc837326737e']
diff --git a/easybuild/easyconfigs/i/imkl/imkl-2019.5.281-iimpi-2019b.eb b/easybuild/easyconfigs/i/imkl/imkl-2019.5.281-iimpi-2019b.eb
index d95d740ea28..61489356fe3 100644
--- a/easybuild/easyconfigs/i/imkl/imkl-2019.5.281-iimpi-2019b.eb
+++ b/easybuild/easyconfigs/i/imkl/imkl-2019.5.281-iimpi-2019b.eb
@@ -11,7 +11,7 @@ description = """Intel Math Kernel Library is a library of highly optimized,
toolchain = {'name': 'iimpi', 'version': '2019b'}
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15816/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15816/']
sources = ['l_mkl_%(version)s.tgz']
checksums = ['9995ea4469b05360d509c9705e9309dc983c0a10edc2ae3a5384bc837326737e']
diff --git a/easybuild/easyconfigs/i/imkl/imkl-2019.5.281-iimpic-2019b.eb b/easybuild/easyconfigs/i/imkl/imkl-2019.5.281-iimpic-2019b.eb
index 62cf27a5251..b1e88a55dd3 100644
--- a/easybuild/easyconfigs/i/imkl/imkl-2019.5.281-iimpic-2019b.eb
+++ b/easybuild/easyconfigs/i/imkl/imkl-2019.5.281-iimpic-2019b.eb
@@ -11,7 +11,7 @@ description = """Intel Math Kernel Library is a library of highly optimized,
toolchain = {'name': 'iimpic', 'version': '2019b'}
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15816/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15816/']
sources = ['l_mkl_%(version)s.tgz']
checksums = ['9995ea4469b05360d509c9705e9309dc983c0a10edc2ae3a5384bc837326737e']
diff --git a/easybuild/easyconfigs/i/imkl/imkl-2019.5.281-iompi-2019b.eb b/easybuild/easyconfigs/i/imkl/imkl-2019.5.281-iompi-2019b.eb
index 906ad9525cd..8e7d6fa5ec2 100644
--- a/easybuild/easyconfigs/i/imkl/imkl-2019.5.281-iompi-2019b.eb
+++ b/easybuild/easyconfigs/i/imkl/imkl-2019.5.281-iompi-2019b.eb
@@ -11,7 +11,7 @@ description = """Intel Math Kernel Library is a library of highly optimized,
toolchain = {'name': 'iompi', 'version': '2019b'}
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15816/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15816/']
sources = ['l_mkl_%(version)s.tgz']
checksums = ['9995ea4469b05360d509c9705e9309dc983c0a10edc2ae3a5384bc837326737e']
diff --git a/easybuild/easyconfigs/i/imkl/imkl-2020.0.166-iimpi-2020.00.eb b/easybuild/easyconfigs/i/imkl/imkl-2020.0.166-iimpi-2020.00.eb
index 610ba004009..d27b6e67346 100644
--- a/easybuild/easyconfigs/i/imkl/imkl-2020.0.166-iimpi-2020.00.eb
+++ b/easybuild/easyconfigs/i/imkl/imkl-2020.0.166-iimpi-2020.00.eb
@@ -11,7 +11,7 @@ description = """Intel Math Kernel Library is a library of highly optimized,
toolchain = {'name': 'iimpi', 'version': '2020.00'}
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16232/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16232/']
sources = ['l_mkl_%(version)s.tgz']
checksums = ['f6d92deb3ff10b11ba3df26b2c62bb4f0f7ae43e21905a91d553e58f0f5a8ae0']
diff --git a/easybuild/easyconfigs/i/imkl/imkl-2020.1.217-gompi-2020a.eb b/easybuild/easyconfigs/i/imkl/imkl-2020.1.217-gompi-2020a.eb
index dcb4894a2a4..d662fdae171 100644
--- a/easybuild/easyconfigs/i/imkl/imkl-2020.1.217-gompi-2020a.eb
+++ b/easybuild/easyconfigs/i/imkl/imkl-2020.1.217-gompi-2020a.eb
@@ -11,7 +11,7 @@ description = """Intel Math Kernel Library is a library of highly optimized,
toolchain = {'name': 'gompi', 'version': '2020a'}
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16533/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16533/']
sources = ['l_mkl_%(version)s.tgz']
checksums = ['082a4be30bf4f6998e4d6e3da815a77560a5e66a68e254d161ab96f07086066d']
diff --git a/easybuild/easyconfigs/i/imkl/imkl-2020.1.217-iimpi-2020.06-impi-18.5.eb b/easybuild/easyconfigs/i/imkl/imkl-2020.1.217-iimpi-2020.06-impi-18.5.eb
index 89aac0e1547..a683875dd81 100644
--- a/easybuild/easyconfigs/i/imkl/imkl-2020.1.217-iimpi-2020.06-impi-18.5.eb
+++ b/easybuild/easyconfigs/i/imkl/imkl-2020.1.217-iimpi-2020.06-impi-18.5.eb
@@ -11,7 +11,7 @@ description = """Intel Math Kernel Library is a library of highly optimized,
toolchain = {'name': 'iimpi', 'version': '2020.06-impi-18.5'}
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16533/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16533/']
sources = ['l_mkl_%(version)s.tgz']
checksums = ['082a4be30bf4f6998e4d6e3da815a77560a5e66a68e254d161ab96f07086066d']
diff --git a/easybuild/easyconfigs/i/imkl/imkl-2020.1.217-iimpi-2020a.eb b/easybuild/easyconfigs/i/imkl/imkl-2020.1.217-iimpi-2020a.eb
index 3111a3509b0..aef431b9b6d 100644
--- a/easybuild/easyconfigs/i/imkl/imkl-2020.1.217-iimpi-2020a.eb
+++ b/easybuild/easyconfigs/i/imkl/imkl-2020.1.217-iimpi-2020a.eb
@@ -11,7 +11,7 @@ description = """Intel Math Kernel Library is a library of highly optimized,
toolchain = {'name': 'iimpi', 'version': '2020a'}
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16533/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16533/']
sources = ['l_mkl_%(version)s.tgz']
checksums = ['082a4be30bf4f6998e4d6e3da815a77560a5e66a68e254d161ab96f07086066d']
diff --git a/easybuild/easyconfigs/i/imkl/imkl-2020.1.217-iimpic-2020a.eb b/easybuild/easyconfigs/i/imkl/imkl-2020.1.217-iimpic-2020a.eb
index 3475dab254a..dbfbc356455 100644
--- a/easybuild/easyconfigs/i/imkl/imkl-2020.1.217-iimpic-2020a.eb
+++ b/easybuild/easyconfigs/i/imkl/imkl-2020.1.217-iimpic-2020a.eb
@@ -11,7 +11,7 @@ description = """Intel Math Kernel Library is a library of highly optimized,
toolchain = {'name': 'iimpic', 'version': '2020a'}
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16533/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16533/']
sources = ['l_mkl_%(version)s.tgz']
checksums = ['082a4be30bf4f6998e4d6e3da815a77560a5e66a68e254d161ab96f07086066d']
diff --git a/easybuild/easyconfigs/i/imkl/imkl-2020.1.217-iompi-2020a.eb b/easybuild/easyconfigs/i/imkl/imkl-2020.1.217-iompi-2020a.eb
index 3eca90fc0a2..1f80ac1e253 100644
--- a/easybuild/easyconfigs/i/imkl/imkl-2020.1.217-iompi-2020a.eb
+++ b/easybuild/easyconfigs/i/imkl/imkl-2020.1.217-iompi-2020a.eb
@@ -11,7 +11,7 @@ description = """Intel Math Kernel Library is a library of highly optimized,
toolchain = {'name': 'iompi', 'version': '2020a'}
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16533/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16533/']
sources = ['l_mkl_%(version)s.tgz']
checksums = ['082a4be30bf4f6998e4d6e3da815a77560a5e66a68e254d161ab96f07086066d']
diff --git a/easybuild/easyconfigs/i/imkl/imkl-2020.4.304-NVHPC-21.2.eb b/easybuild/easyconfigs/i/imkl/imkl-2020.4.304-NVHPC-21.2.eb
index 75ac380269e..71a9f0f37b9 100644
--- a/easybuild/easyconfigs/i/imkl/imkl-2020.4.304-NVHPC-21.2.eb
+++ b/easybuild/easyconfigs/i/imkl/imkl-2020.4.304-NVHPC-21.2.eb
@@ -11,7 +11,7 @@ description = """Intel Math Kernel Library is a library of highly optimized,
toolchain = {'name': 'NVHPC', 'version': '21.2'}
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16917/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16917/']
sources = ['l_mkl_%(version)s.tgz']
checksums = ['2314d46536974dbd08f2a4e4f9e9a155dc7e79e2798c74e7ddfaad00a5917ea5']
diff --git a/easybuild/easyconfigs/i/imkl/imkl-2020.4.304-gompi-2020b.eb b/easybuild/easyconfigs/i/imkl/imkl-2020.4.304-gompi-2020b.eb
index 541c3c12aea..1526523c788 100644
--- a/easybuild/easyconfigs/i/imkl/imkl-2020.4.304-gompi-2020b.eb
+++ b/easybuild/easyconfigs/i/imkl/imkl-2020.4.304-gompi-2020b.eb
@@ -11,7 +11,7 @@ description = """Intel Math Kernel Library is a library of highly optimized,
toolchain = {'name': 'gompi', 'version': '2020b'}
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16917/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16917/']
sources = ['l_mkl_%(version)s.tgz']
checksums = ['2314d46536974dbd08f2a4e4f9e9a155dc7e79e2798c74e7ddfaad00a5917ea5']
diff --git a/easybuild/easyconfigs/i/imkl/imkl-2020.4.304-gompic-2020b.eb b/easybuild/easyconfigs/i/imkl/imkl-2020.4.304-gompic-2020b.eb
index e07323d8ee3..570499af77d 100644
--- a/easybuild/easyconfigs/i/imkl/imkl-2020.4.304-gompic-2020b.eb
+++ b/easybuild/easyconfigs/i/imkl/imkl-2020.4.304-gompic-2020b.eb
@@ -11,7 +11,7 @@ description = """Intel Math Kernel Library is a library of highly optimized,
toolchain = {'name': 'gompic', 'version': '2020b'}
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16917/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16917/']
sources = ['l_mkl_%(version)s.tgz']
checksums = ['2314d46536974dbd08f2a4e4f9e9a155dc7e79e2798c74e7ddfaad00a5917ea5']
diff --git a/easybuild/easyconfigs/i/imkl/imkl-2020.4.304-iimpi-2020b.eb b/easybuild/easyconfigs/i/imkl/imkl-2020.4.304-iimpi-2020b.eb
index e1f7dd0c3fd..15ccb6b8c77 100644
--- a/easybuild/easyconfigs/i/imkl/imkl-2020.4.304-iimpi-2020b.eb
+++ b/easybuild/easyconfigs/i/imkl/imkl-2020.4.304-iimpi-2020b.eb
@@ -11,7 +11,7 @@ description = """Intel Math Kernel Library is a library of highly optimized,
toolchain = {'name': 'iimpi', 'version': '2020b'}
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16917/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16917/']
sources = ['l_mkl_%(version)s.tgz']
checksums = ['2314d46536974dbd08f2a4e4f9e9a155dc7e79e2798c74e7ddfaad00a5917ea5']
diff --git a/easybuild/easyconfigs/i/imkl/imkl-2020.4.304-iimpic-2020b.eb b/easybuild/easyconfigs/i/imkl/imkl-2020.4.304-iimpic-2020b.eb
index a350ab4a6ed..73aac3a85e7 100644
--- a/easybuild/easyconfigs/i/imkl/imkl-2020.4.304-iimpic-2020b.eb
+++ b/easybuild/easyconfigs/i/imkl/imkl-2020.4.304-iimpic-2020b.eb
@@ -11,7 +11,7 @@ description = """Intel Math Kernel Library is a library of highly optimized,
toolchain = {'name': 'iimpic', 'version': '2020b'}
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16917/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16917/']
sources = ['l_mkl_%(version)s.tgz']
checksums = ['2314d46536974dbd08f2a4e4f9e9a155dc7e79e2798c74e7ddfaad00a5917ea5']
diff --git a/easybuild/easyconfigs/i/imkl/imkl-2020.4.304-iompi-2020b.eb b/easybuild/easyconfigs/i/imkl/imkl-2020.4.304-iompi-2020b.eb
index 89d0c991d88..68e2a157d3d 100644
--- a/easybuild/easyconfigs/i/imkl/imkl-2020.4.304-iompi-2020b.eb
+++ b/easybuild/easyconfigs/i/imkl/imkl-2020.4.304-iompi-2020b.eb
@@ -11,7 +11,7 @@ description = """Intel Math Kernel Library is a library of highly optimized,
toolchain = {'name': 'iompi', 'version': '2020b'}
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16917/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16917/']
sources = ['l_mkl_%(version)s.tgz']
checksums = ['2314d46536974dbd08f2a4e4f9e9a155dc7e79e2798c74e7ddfaad00a5917ea5']
diff --git a/easybuild/easyconfigs/i/imkl/imkl-2021.1.1-iimpi-2020.12.eb b/easybuild/easyconfigs/i/imkl/imkl-2021.1.1-iimpi-2020.12.eb
index 737f7462d7d..363e95f7dc9 100644
--- a/easybuild/easyconfigs/i/imkl/imkl-2021.1.1-iimpi-2020.12.eb
+++ b/easybuild/easyconfigs/i/imkl/imkl-2021.1.1-iimpi-2020.12.eb
@@ -7,7 +7,7 @@ description = "Intel oneAPI Math Kernel Library"
toolchain = {'name': 'iimpi', 'version': '2020.12'}
# see https://software.intel.com/content/www/us/en/develop/articles/oneapi-standalone-components.html
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/17402/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/17402/']
sources = ['l_onemkl_p_%(version)s.52_offline.sh']
checksums = ['818b6bd9a6c116f4578cda3151da0612ec9c3ce8b2c8a64730d625ce5b13cc0c']
diff --git a/easybuild/easyconfigs/i/imkl/imkl-2021.2.0-gompi-2021a.eb b/easybuild/easyconfigs/i/imkl/imkl-2021.2.0-gompi-2021a.eb
index ff7c13049ea..77a41fb58ed 100644
--- a/easybuild/easyconfigs/i/imkl/imkl-2021.2.0-gompi-2021a.eb
+++ b/easybuild/easyconfigs/i/imkl/imkl-2021.2.0-gompi-2021a.eb
@@ -7,7 +7,7 @@ description = "Intel oneAPI Math Kernel Library"
toolchain = {'name': 'gompi', 'version': '2021a'}
# see https://software.intel.com/content/www/us/en/develop/articles/oneapi-standalone-components.html
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/17757/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/17757/']
sources = ['l_onemkl_p_%(version)s.296_offline.sh']
checksums = ['816e9df26ff331d6c0751b86ed5f7d243f9f172e76f14e83b32bf4d1d619dbae']
diff --git a/easybuild/easyconfigs/i/imkl/imkl-2021.2.0-iimpi-2021a.eb b/easybuild/easyconfigs/i/imkl/imkl-2021.2.0-iimpi-2021a.eb
index aa8f14f2250..741b626f55c 100644
--- a/easybuild/easyconfigs/i/imkl/imkl-2021.2.0-iimpi-2021a.eb
+++ b/easybuild/easyconfigs/i/imkl/imkl-2021.2.0-iimpi-2021a.eb
@@ -7,7 +7,7 @@ description = "Intel oneAPI Math Kernel Library"
toolchain = {'name': 'iimpi', 'version': '2021a'}
# see https://software.intel.com/content/www/us/en/develop/articles/oneapi-standalone-components.html
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/17757/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/17757/']
sources = ['l_onemkl_p_%(version)s.296_offline.sh']
checksums = ['816e9df26ff331d6c0751b86ed5f7d243f9f172e76f14e83b32bf4d1d619dbae']
diff --git a/easybuild/easyconfigs/i/imkl/imkl-2021.2.0-iompi-2021a.eb b/easybuild/easyconfigs/i/imkl/imkl-2021.2.0-iompi-2021a.eb
index 60282631f05..2bb82fd3380 100644
--- a/easybuild/easyconfigs/i/imkl/imkl-2021.2.0-iompi-2021a.eb
+++ b/easybuild/easyconfigs/i/imkl/imkl-2021.2.0-iompi-2021a.eb
@@ -7,7 +7,7 @@ description = "Intel oneAPI Math Kernel Library"
toolchain = {'name': 'iompi', 'version': '2021a'}
# see https://software.intel.com/content/www/us/en/develop/articles/oneapi-standalone-components.html
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/17757/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/17757/']
sources = ['l_onemkl_p_%(version)s.296_offline.sh']
checksums = ['816e9df26ff331d6c0751b86ed5f7d243f9f172e76f14e83b32bf4d1d619dbae']
diff --git a/easybuild/easyconfigs/i/imkl/imkl-2021.3.0-gompi-2021a.eb b/easybuild/easyconfigs/i/imkl/imkl-2021.3.0-gompi-2021a.eb
index 07a876f213e..a4746816d23 100644
--- a/easybuild/easyconfigs/i/imkl/imkl-2021.3.0-gompi-2021a.eb
+++ b/easybuild/easyconfigs/i/imkl/imkl-2021.3.0-gompi-2021a.eb
@@ -10,7 +10,7 @@ description = "Intel oneAPI Math Kernel Library"
toolchain = {'name': 'gompi', 'version': '2021a'}
# see https://software.intel.com/content/www/us/en/develop/articles/oneapi-standalone-components.html
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/17901']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/17901']
sources = ['l_onemkl_p_%(version)s.520_offline.sh']
checksums = ['a06e1cdbfd8becc63440b473b153659885f25a6e3c4dcb2907ad9cd0c3ad59ce']
diff --git a/easybuild/easyconfigs/i/imkl/imkl-2021.4.0-iompi-2021b.eb b/easybuild/easyconfigs/i/imkl/imkl-2021.4.0-iompi-2021b.eb
old mode 100755
new mode 100644
index a6e0651ef64..4f45be5badc
--- a/easybuild/easyconfigs/i/imkl/imkl-2021.4.0-iompi-2021b.eb
+++ b/easybuild/easyconfigs/i/imkl/imkl-2021.4.0-iompi-2021b.eb
@@ -7,7 +7,7 @@ description = "Intel oneAPI Math Kernel Library"
toolchain = {'name': 'iompi', 'version': '2021b'}
# 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/18222/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/18222/']
sources = ['l_onemkl_p_%(version)s.640_offline.sh']
checksums = ['9ad546f05a421b4f439e8557fd0f2d83d5e299b0d9bd84bdd86be6feba0c3915']
diff --git a/easybuild/easyconfigs/i/imkl/imkl-2021.4.0.eb b/easybuild/easyconfigs/i/imkl/imkl-2021.4.0.eb
index f3e3040b1ee..bacd9ba4607 100644
--- a/easybuild/easyconfigs/i/imkl/imkl-2021.4.0.eb
+++ b/easybuild/easyconfigs/i/imkl/imkl-2021.4.0.eb
@@ -7,7 +7,7 @@ description = "Intel oneAPI Math Kernel Library"
toolchain = SYSTEM
# see https://software.intel.com/content/www/us/en/develop/articles/oneapi-standalone-components.html
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/18222/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/18222/']
sources = ['l_onemkl_p_%(version)s.640_offline.sh']
checksums = ['9ad546f05a421b4f439e8557fd0f2d83d5e299b0d9bd84bdd86be6feba0c3915']
diff --git a/easybuild/easyconfigs/i/imkl/imkl-2022.0.1.eb b/easybuild/easyconfigs/i/imkl/imkl-2022.0.1.eb
index 67a5563ac0b..c348328e0e4 100644
--- a/easybuild/easyconfigs/i/imkl/imkl-2022.0.1.eb
+++ b/easybuild/easyconfigs/i/imkl/imkl-2022.0.1.eb
@@ -7,7 +7,7 @@ description = "Intel oneAPI Math Kernel Library"
toolchain = SYSTEM
# see https://software.intel.com/content/www/us/en/develop/articles/oneapi-standalone-components.html
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/18444/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/18444/']
sources = ['l_onemkl_p_%(version)s.117_offline.sh']
checksums = ['22afafbe2f3762eca052ac21ec40b845ff2f3646077295c88c2f37f80a0cc160']
diff --git a/easybuild/easyconfigs/i/imkl/imkl-2022.1.0-gompi-2022a.eb b/easybuild/easyconfigs/i/imkl/imkl-2022.1.0-gompi-2022a.eb
index 2eb923c837e..955038d0fc1 100644
--- a/easybuild/easyconfigs/i/imkl/imkl-2022.1.0-gompi-2022a.eb
+++ b/easybuild/easyconfigs/i/imkl/imkl-2022.1.0-gompi-2022a.eb
@@ -10,7 +10,7 @@ description = "Intel oneAPI Math Kernel Library"
toolchain = {'name': 'gompi', 'version': '2022a'}
# 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/18721/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/18721/']
sources = ['l_onemkl_p_%(version)s.223_offline.sh']
checksums = ['4b325a3c4c56e52f4ce6c8fbb55d7684adc16425000afc860464c0f29ea4563e']
diff --git a/easybuild/easyconfigs/i/imkl/imkl-2022.1.0.eb b/easybuild/easyconfigs/i/imkl/imkl-2022.1.0.eb
index c34d533cf35..b0653443859 100644
--- a/easybuild/easyconfigs/i/imkl/imkl-2022.1.0.eb
+++ b/easybuild/easyconfigs/i/imkl/imkl-2022.1.0.eb
@@ -7,7 +7,7 @@ description = "Intel oneAPI Math Kernel Library"
toolchain = SYSTEM
# see https://software.intel.com/content/www/us/en/develop/articles/oneapi-standalone-components.html
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/18721/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/18721/']
sources = ['l_onemkl_p_%(version)s.223_offline.sh']
checksums = ['4b325a3c4c56e52f4ce6c8fbb55d7684adc16425000afc860464c0f29ea4563e']
diff --git a/easybuild/easyconfigs/i/imkl/imkl-2022.2.0.eb b/easybuild/easyconfigs/i/imkl/imkl-2022.2.0.eb
index 82776023871..a3c46807fc6 100644
--- a/easybuild/easyconfigs/i/imkl/imkl-2022.2.0.eb
+++ b/easybuild/easyconfigs/i/imkl/imkl-2022.2.0.eb
@@ -7,7 +7,7 @@ description = "Intel oneAPI Math Kernel Library"
toolchain = SYSTEM
# see https://software.intel.com/content/www/us/en/develop/articles/oneapi-standalone-components.html
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/18898/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/18898/']
sources = ['l_onemkl_p_%(version)s.8748_offline.sh']
checksums = ['07d7caedd4b9f025c6fd439a0d2c2f279b18ecbbb63cadb864f6c63c1ed942db']
diff --git a/easybuild/easyconfigs/i/imkl/imkl-2022.2.1.eb b/easybuild/easyconfigs/i/imkl/imkl-2022.2.1.eb
index 3daf55958a3..f2a7a15068e 100644
--- a/easybuild/easyconfigs/i/imkl/imkl-2022.2.1.eb
+++ b/easybuild/easyconfigs/i/imkl/imkl-2022.2.1.eb
@@ -7,7 +7,7 @@ description = "Intel oneAPI Math Kernel Library"
toolchain = SYSTEM
# see https://software.intel.com/content/www/us/en/develop/articles/oneapi-standalone-components.html
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/19038/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/19038/']
sources = ['l_onemkl_p_%(version)s.16993_offline.sh']
checksums = ['eedd4b795720de776b1fc5f542ae0fac37ec235cdb567f7c2ee3182e73e3e59d']
diff --git a/easybuild/easyconfigs/i/imkl/imkl-2023.0.0.eb b/easybuild/easyconfigs/i/imkl/imkl-2023.0.0.eb
index 4e6e5afb344..f29032bc3dd 100644
--- a/easybuild/easyconfigs/i/imkl/imkl-2023.0.0.eb
+++ b/easybuild/easyconfigs/i/imkl/imkl-2023.0.0.eb
@@ -7,7 +7,7 @@ description = "Intel oneAPI Math Kernel Library"
toolchain = SYSTEM
# see https://software.intel.com/content/www/us/en/develop/articles/oneapi-standalone-components.html
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/19138/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/19138/']
sources = ['l_onemkl_p_%(version)s.25398_offline.sh']
checksums = ['0d61188e91a57bdb575782eb47a05ae99ea8eebefee6b2dfe20c6708e16e9927']
diff --git a/easybuild/easyconfigs/i/imkl/imkl-2023.1.0-gompi-2023a.eb b/easybuild/easyconfigs/i/imkl/imkl-2023.1.0-gompi-2023a.eb
index 5e4f3cb8b1d..17ed1c0a2aa 100644
--- a/easybuild/easyconfigs/i/imkl/imkl-2023.1.0-gompi-2023a.eb
+++ b/easybuild/easyconfigs/i/imkl/imkl-2023.1.0-gompi-2023a.eb
@@ -10,7 +10,7 @@ description = "Intel oneAPI Math Kernel Library"
toolchain = {'name': 'gompi', 'version': '2023a'}
# 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/18721/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/cd17b7fe-500e-4305-a89b-bd5b42bfd9f8/']
sources = ['l_onemkl_p_%(version)s.46342_offline.sh']
checksums = ['cc28c94cab23c185520b93c5a04f3979d8da6b4c90cee8c0681dd89819d76167']
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/imkl/imkl-2024.2.0.eb b/easybuild/easyconfigs/i/imkl/imkl-2024.2.0.eb
new file mode 100644
index 00000000000..30331a8a80a
--- /dev/null
+++ b/easybuild/easyconfigs/i/imkl/imkl-2024.2.0.eb
@@ -0,0 +1,18 @@
+name = 'imkl'
+version = '2024.2.0'
+
+homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onemkl.html'
+description = "Intel oneAPI Math Kernel Library"
+
+toolchain = SYSTEM
+
+# see https://software.intel.com/content/www/us/en/develop/articles/oneapi-standalone-components.html
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/cdff21a5-6ac7-4b41-a7ec-351b5f9ce8fd']
+sources = ['l_onemkl_p_%(version)s.664_offline.sh']
+checksums = ['f1f46f5352c197a9840e08fc191a879dad79ebf742fe782e386ba8006f262f7a']
+
+interfaces = False
+
+installopts = "--download-cache=%(builddir)s/cache --download-dir=%(builddir)s/download --log-dir=%(builddir)s/log"
+
+moduleclass = 'numlib'
diff --git a/easybuild/easyconfigs/i/impi/impi-2018.1.163-iccifort-2018.1.163-GCC-6.4.0-2.28.eb b/easybuild/easyconfigs/i/impi/impi-2018.1.163-iccifort-2018.1.163-GCC-6.4.0-2.28.eb
index 21ad001e53c..a0341a987d6 100644
--- a/easybuild/easyconfigs/i/impi/impi-2018.1.163-iccifort-2018.1.163-GCC-6.4.0-2.28.eb
+++ b/easybuild/easyconfigs/i/impi/impi-2018.1.163-iccifort-2018.1.163-GCC-6.4.0-2.28.eb
@@ -8,7 +8,7 @@ description = "Intel MPI Library, compatible with MPICH ABI"
toolchain = {'name': 'iccifort', 'version': '2018.1.163-GCC-6.4.0-2.28'}
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12405/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12405/']
sources = ['l_mpi_%(version)s.tgz']
checksums = ['130b11571c3f71af00a722fa8641db5a1552ac343d770a8304216d8f5d00e75c']
diff --git a/easybuild/easyconfigs/i/impi/impi-2018.3.222-GCC-7.3.0-2.30.eb b/easybuild/easyconfigs/i/impi/impi-2018.3.222-GCC-7.3.0-2.30.eb
index e39879ac218..60f2eed4dd9 100644
--- a/easybuild/easyconfigs/i/impi/impi-2018.3.222-GCC-7.3.0-2.30.eb
+++ b/easybuild/easyconfigs/i/impi/impi-2018.3.222-GCC-7.3.0-2.30.eb
@@ -8,7 +8,7 @@ description = "Intel MPI Library, compatible with MPICH ABI"
toolchain = {'name': 'GCC', 'version': '7.3.0-2.30'}
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13063/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/13063/']
sources = ['l_mpi_%(version)s.tgz']
checksums = ['5021d14b344fc794e89f146e4d53d70184d7048610895d7a6a1e8ac0cf258999']
diff --git a/easybuild/easyconfigs/i/impi/impi-2018.3.222-iccifort-2018.3.222-GCC-7.3.0-2.30.eb b/easybuild/easyconfigs/i/impi/impi-2018.3.222-iccifort-2018.3.222-GCC-7.3.0-2.30.eb
index f4e9e1a638f..0fc63f042f8 100644
--- a/easybuild/easyconfigs/i/impi/impi-2018.3.222-iccifort-2018.3.222-GCC-7.3.0-2.30.eb
+++ b/easybuild/easyconfigs/i/impi/impi-2018.3.222-iccifort-2018.3.222-GCC-7.3.0-2.30.eb
@@ -8,7 +8,7 @@ description = "Intel MPI Library, compatible with MPICH ABI"
toolchain = {'name': 'iccifort', 'version': '2018.3.222-GCC-7.3.0-2.30'}
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13063/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/13063/']
sources = ['l_mpi_%(version)s.tgz']
checksums = ['5021d14b344fc794e89f146e4d53d70184d7048610895d7a6a1e8ac0cf258999']
diff --git a/easybuild/easyconfigs/i/impi/impi-2018.4.274-iccifort-2018.5.274-GCC-7.3.0-2.30.eb b/easybuild/easyconfigs/i/impi/impi-2018.4.274-iccifort-2018.5.274-GCC-7.3.0-2.30.eb
index 060befc0a5a..75004db76a8 100644
--- a/easybuild/easyconfigs/i/impi/impi-2018.4.274-iccifort-2018.5.274-GCC-7.3.0-2.30.eb
+++ b/easybuild/easyconfigs/i/impi/impi-2018.4.274-iccifort-2018.5.274-GCC-7.3.0-2.30.eb
@@ -8,7 +8,7 @@ description = "Intel MPI Library, compatible with MPICH ABI"
toolchain = {'name': 'iccifort', 'version': '2018.5.274-GCC-7.3.0-2.30'}
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13651/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/13651/']
sources = ['l_mpi_%(version)s.tgz']
checksums = ['a1114b3eb4149c2f108964b83cad02150d619e50032059d119ac4ffc9d5dd8e0']
diff --git a/easybuild/easyconfigs/i/impi/impi-2018.4.274-iccifort-2019.1.144-GCC-8.2.0-2.31.1.eb b/easybuild/easyconfigs/i/impi/impi-2018.4.274-iccifort-2019.1.144-GCC-8.2.0-2.31.1.eb
index e6c3602e1e3..d4574181af9 100644
--- a/easybuild/easyconfigs/i/impi/impi-2018.4.274-iccifort-2019.1.144-GCC-8.2.0-2.31.1.eb
+++ b/easybuild/easyconfigs/i/impi/impi-2018.4.274-iccifort-2019.1.144-GCC-8.2.0-2.31.1.eb
@@ -6,7 +6,7 @@ description = "Intel MPI Library, compatible with MPICH ABI"
toolchain = {'name': 'iccifort', 'version': '2019.1.144-GCC-8.2.0-2.31.1'}
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13651/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/13651/']
sources = ['l_mpi_%(version)s.tgz']
checksums = ['a1114b3eb4149c2f108964b83cad02150d619e50032059d119ac4ffc9d5dd8e0']
diff --git a/easybuild/easyconfigs/i/impi/impi-2018.4.274-iccifortcuda-2019a.eb b/easybuild/easyconfigs/i/impi/impi-2018.4.274-iccifortcuda-2019a.eb
index 137bf491a27..c28ff1e7e55 100644
--- a/easybuild/easyconfigs/i/impi/impi-2018.4.274-iccifortcuda-2019a.eb
+++ b/easybuild/easyconfigs/i/impi/impi-2018.4.274-iccifortcuda-2019a.eb
@@ -6,7 +6,7 @@ description = "Intel MPI Library, compatible with MPICH ABI"
toolchain = {'name': 'iccifortcuda', 'version': '2019a'}
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13651/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/13651/']
sources = ['l_mpi_%(version)s.tgz']
checksums = ['a1114b3eb4149c2f108964b83cad02150d619e50032059d119ac4ffc9d5dd8e0']
diff --git a/easybuild/easyconfigs/i/impi/impi-2018.5.288-iccifort-2019.5.281.eb b/easybuild/easyconfigs/i/impi/impi-2018.5.288-iccifort-2019.5.281.eb
index 8f89b212fa4..4cb68a33fc8 100644
--- a/easybuild/easyconfigs/i/impi/impi-2018.5.288-iccifort-2019.5.281.eb
+++ b/easybuild/easyconfigs/i/impi/impi-2018.5.288-iccifort-2019.5.281.eb
@@ -8,7 +8,7 @@ description = "Intel MPI Library, compatible with MPICH ABI"
toolchain = {'name': 'iccifort', 'version': '2019.5.281'}
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15614/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15614/']
sources = ['l_mpi_%(version)s.tgz']
checksums = ['3198257c19e82cd327d739b10120933e0547da8cddf8a8005677717326236796']
diff --git a/easybuild/easyconfigs/i/impi/impi-2018.5.288-iccifort-2020.1.217.eb b/easybuild/easyconfigs/i/impi/impi-2018.5.288-iccifort-2020.1.217.eb
index 4c7b3a6b0df..e27d2ec5b55 100644
--- a/easybuild/easyconfigs/i/impi/impi-2018.5.288-iccifort-2020.1.217.eb
+++ b/easybuild/easyconfigs/i/impi/impi-2018.5.288-iccifort-2020.1.217.eb
@@ -8,7 +8,7 @@ description = "Intel MPI Library, compatible with MPICH ABI"
toolchain = {'name': 'iccifort', 'version': '2020.1.217'}
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15614/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15614/']
sources = ['l_mpi_%(version)s.tgz']
checksums = ['3198257c19e82cd327d739b10120933e0547da8cddf8a8005677717326236796']
diff --git a/easybuild/easyconfigs/i/impi/impi-2018.5.288-iccifortcuda-2019b.eb b/easybuild/easyconfigs/i/impi/impi-2018.5.288-iccifortcuda-2019b.eb
index 02e2ace8251..2f959f48e46 100644
--- a/easybuild/easyconfigs/i/impi/impi-2018.5.288-iccifortcuda-2019b.eb
+++ b/easybuild/easyconfigs/i/impi/impi-2018.5.288-iccifortcuda-2019b.eb
@@ -8,7 +8,7 @@ description = "Intel MPI Library, compatible with MPICH ABI"
toolchain = {'name': 'iccifortcuda', 'version': '2019b'}
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15614/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15614/']
sources = ['l_mpi_%(version)s.tgz']
checksums = ['3198257c19e82cd327d739b10120933e0547da8cddf8a8005677717326236796']
diff --git a/easybuild/easyconfigs/i/impi/impi-2019.0.117-iccifort-2019.0.117-GCC-8.2.0-2.31.1.eb b/easybuild/easyconfigs/i/impi/impi-2019.0.117-iccifort-2019.0.117-GCC-8.2.0-2.31.1.eb
index 2f60b422703..77755c77620 100644
--- a/easybuild/easyconfigs/i/impi/impi-2019.0.117-iccifort-2019.0.117-GCC-8.2.0-2.31.1.eb
+++ b/easybuild/easyconfigs/i/impi/impi-2019.0.117-iccifort-2019.0.117-GCC-8.2.0-2.31.1.eb
@@ -8,7 +8,7 @@ description = "Intel MPI Library, compatible with MPICH ABI"
toolchain = {'name': 'iccifort', 'version': '2019.0.117-GCC-8.2.0-2.31.1'}
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13584/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/13584/']
sources = ['l_mpi_%(version)s.tgz']
checksums = ['dfb403f49c1af61b337aa952b71289c7548c3a79c32c57865eab0ea0f0e1bc08']
diff --git a/easybuild/easyconfigs/i/impi/impi-2019.1.144-iccifort-2019.1.144-GCC-8.2.0-2.31.1.eb b/easybuild/easyconfigs/i/impi/impi-2019.1.144-iccifort-2019.1.144-GCC-8.2.0-2.31.1.eb
index 8e2ed0b3980..6a222b3ed18 100644
--- a/easybuild/easyconfigs/i/impi/impi-2019.1.144-iccifort-2019.1.144-GCC-8.2.0-2.31.1.eb
+++ b/easybuild/easyconfigs/i/impi/impi-2019.1.144-iccifort-2019.1.144-GCC-8.2.0-2.31.1.eb
@@ -8,7 +8,7 @@ description = "Intel MPI Library, compatible with MPICH ABI"
toolchain = {'name': 'iccifort', 'version': '2019.1.144-GCC-8.2.0-2.31.1'}
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/14879/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/14879/']
sources = ['l_mpi_%(version)s.tgz']
checksums = ['dac86a5db6b86503313742b17535856a432955604f7103cb4549a9bfc256c3cd']
diff --git a/easybuild/easyconfigs/i/impi/impi-2019.12.320-iccifort-2020.4.304.eb b/easybuild/easyconfigs/i/impi/impi-2019.12.320-iccifort-2020.4.304.eb
index a5ba5409ff0..2bf8b19fb29 100644
--- a/easybuild/easyconfigs/i/impi/impi-2019.12.320-iccifort-2020.4.304.eb
+++ b/easybuild/easyconfigs/i/impi/impi-2019.12.320-iccifort-2020.4.304.eb
@@ -8,7 +8,7 @@ description = "Intel MPI Library, compatible with MPICH ABI"
toolchain = {'name': 'iccifort', 'version': '2020.4.304'}
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/17836/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/17836/']
sources = ['l_mpi_%(version)s.tgz']
checksums = ['8108fbf2353a9f1926036bb67647b65c0e4933a3eb66e1dc933960e5b055f320']
diff --git a/easybuild/easyconfigs/i/impi/impi-2019.2.187-iccifort-2019.2.187-GCC-8.2.0-2.31.1.eb b/easybuild/easyconfigs/i/impi/impi-2019.2.187-iccifort-2019.2.187-GCC-8.2.0-2.31.1.eb
index 7cdc6aca429..5f75ad2ec68 100644
--- a/easybuild/easyconfigs/i/impi/impi-2019.2.187-iccifort-2019.2.187-GCC-8.2.0-2.31.1.eb
+++ b/easybuild/easyconfigs/i/impi/impi-2019.2.187-iccifort-2019.2.187-GCC-8.2.0-2.31.1.eb
@@ -8,7 +8,7 @@ description = "Intel MPI Library, compatible with MPICH ABI"
toolchain = {'name': 'iccifort', 'version': '2019.2.187-GCC-8.2.0-2.31.1'}
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15040/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15040/']
sources = ['l_mpi_%(version)s.tgz']
checksums = ['6a3305933b5ef9e3f7de969e394c91620f3fa4bb815a4f439577739d04778b20']
diff --git a/easybuild/easyconfigs/i/impi/impi-2019.3.199-iccifort-2019.3.199-GCC-8.3.0-2.32.eb b/easybuild/easyconfigs/i/impi/impi-2019.3.199-iccifort-2019.3.199-GCC-8.3.0-2.32.eb
index c0b1f565c0a..cb1ec1f179c 100644
--- a/easybuild/easyconfigs/i/impi/impi-2019.3.199-iccifort-2019.3.199-GCC-8.3.0-2.32.eb
+++ b/easybuild/easyconfigs/i/impi/impi-2019.3.199-iccifort-2019.3.199-GCC-8.3.0-2.32.eb
@@ -8,7 +8,7 @@ description = "Intel MPI Library, compatible with MPICH ABI"
toolchain = {'name': 'iccifort', 'version': '2019.3.199-GCC-8.3.0-2.32'}
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15260/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15260/']
sources = ['l_mpi_%(version)s.tgz']
checksums = ['5304346c863f64de797250eeb14f51c5cfc8212ff20813b124f20e7666286990']
diff --git a/easybuild/easyconfigs/i/impi/impi-2019.6.166-iccifort-2020.0.166-GCC-9.2.0.eb b/easybuild/easyconfigs/i/impi/impi-2019.6.166-iccifort-2020.0.166-GCC-9.2.0.eb
index e19a15d6e33..49f0fa7a8d7 100644
--- a/easybuild/easyconfigs/i/impi/impi-2019.6.166-iccifort-2020.0.166-GCC-9.2.0.eb
+++ b/easybuild/easyconfigs/i/impi/impi-2019.6.166-iccifort-2020.0.166-GCC-9.2.0.eb
@@ -8,7 +8,7 @@ description = "Intel MPI Library, compatible with MPICH ABI"
toolchain = {'name': 'iccifort', 'version': '2020.0.166-GCC-9.2.0'}
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16120/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16120/']
sources = ['l_mpi_%(version)s.tgz']
checksums = ['119be69f1117c93a9e5e9b8b4643918e55d2a55a78ad9567f77d16cdaf18cd6e']
diff --git a/easybuild/easyconfigs/i/impi/impi-2019.7.217-iccifort-2020.1.217.eb b/easybuild/easyconfigs/i/impi/impi-2019.7.217-iccifort-2020.1.217.eb
index d0ad0188c0d..07f8323810c 100644
--- a/easybuild/easyconfigs/i/impi/impi-2019.7.217-iccifort-2020.1.217.eb
+++ b/easybuild/easyconfigs/i/impi/impi-2019.7.217-iccifort-2020.1.217.eb
@@ -8,7 +8,7 @@ description = "Intel MPI Library, compatible with MPICH ABI"
toolchain = {'name': 'iccifort', 'version': '2020.1.217'}
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16546/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16546/']
sources = ['l_mpi_%(version)s.tgz']
checksums = ['90383b0023f84ac003a55d8bb29dbcf0c639f43a25a2d8d8698a16e770ac9c07']
diff --git a/easybuild/easyconfigs/i/impi/impi-2019.7.217-iccifortcuda-2020a.eb b/easybuild/easyconfigs/i/impi/impi-2019.7.217-iccifortcuda-2020a.eb
index 557e0a8eab1..8a5646c25c1 100644
--- a/easybuild/easyconfigs/i/impi/impi-2019.7.217-iccifortcuda-2020a.eb
+++ b/easybuild/easyconfigs/i/impi/impi-2019.7.217-iccifortcuda-2020a.eb
@@ -8,7 +8,7 @@ description = "Intel MPI Library, compatible with MPICH ABI"
toolchain = {'name': 'iccifortcuda', 'version': '2020a'}
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16546/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16546/']
sources = ['l_mpi_%(version)s.tgz']
checksums = ['90383b0023f84ac003a55d8bb29dbcf0c639f43a25a2d8d8698a16e770ac9c07']
diff --git a/easybuild/easyconfigs/i/impi/impi-2019.9.304-iccifort-2020.4.304.eb b/easybuild/easyconfigs/i/impi/impi-2019.9.304-iccifort-2020.4.304.eb
index d4a9ef76ae4..d723d12dc1c 100644
--- a/easybuild/easyconfigs/i/impi/impi-2019.9.304-iccifort-2020.4.304.eb
+++ b/easybuild/easyconfigs/i/impi/impi-2019.9.304-iccifort-2020.4.304.eb
@@ -8,7 +8,7 @@ description = "Intel MPI Library, compatible with MPICH ABI"
toolchain = {'name': 'iccifort', 'version': '2020.4.304'}
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/17263/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/17263/']
sources = ['l_mpi_%(version)s.tgz']
checksums = ['618a5dc2de54306645e6428c5eb7d267b54b11b5a83dfbcad7d0f9e0d90bb2e7']
diff --git a/easybuild/easyconfigs/i/impi/impi-2019.9.304-iccifortcuda-2020b.eb b/easybuild/easyconfigs/i/impi/impi-2019.9.304-iccifortcuda-2020b.eb
index 3305cf60a8d..7082d103ec8 100644
--- a/easybuild/easyconfigs/i/impi/impi-2019.9.304-iccifortcuda-2020b.eb
+++ b/easybuild/easyconfigs/i/impi/impi-2019.9.304-iccifortcuda-2020b.eb
@@ -8,7 +8,7 @@ description = "Intel MPI Library, compatible with MPICH ABI"
toolchain = {'name': 'iccifortcuda', 'version': '2020b'}
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/17263/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/17263/']
sources = ['l_mpi_%(version)s.tgz']
checksums = ['618a5dc2de54306645e6428c5eb7d267b54b11b5a83dfbcad7d0f9e0d90bb2e7']
diff --git a/easybuild/easyconfigs/i/impi/impi-2021.1.1-intel-compilers-2021.1.2.eb b/easybuild/easyconfigs/i/impi/impi-2021.1.1-intel-compilers-2021.1.2.eb
index 1a0fbe3b035..d8a92d6db7e 100644
--- a/easybuild/easyconfigs/i/impi/impi-2021.1.1-intel-compilers-2021.1.2.eb
+++ b/easybuild/easyconfigs/i/impi/impi-2021.1.1-intel-compilers-2021.1.2.eb
@@ -7,7 +7,7 @@ description = "Intel MPI Library, compatible with MPICH ABI"
toolchain = {'name': 'intel-compilers', 'version': '2021.1.2'}
# 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/17397/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/17397/']
sources = ['l_mpi_oneapi_p_%(version)s.76_offline.sh']
checksums = ['8b7693a156c6fc6269637bef586a8fd3ea6610cac2aae4e7f48c1fbb601625fe']
diff --git a/easybuild/easyconfigs/i/impi/impi-2021.13.0-intel-compilers-2024.2.0.eb b/easybuild/easyconfigs/i/impi/impi-2021.13.0-intel-compilers-2024.2.0.eb
new file mode 100644
index 00000000000..2e99bc6c0d8
--- /dev/null
+++ b/easybuild/easyconfigs/i/impi/impi-2021.13.0-intel-compilers-2024.2.0.eb
@@ -0,0 +1,16 @@
+name = 'impi'
+version = '2021.13.0'
+
+homepage = 'https://software.intel.com/content/www/us/en/develop/tools/mpi-library.html'
+description = "Intel MPI Library, compatible with MPICH ABI"
+
+toolchain = {'name': 'intel-compilers', 'version': '2024.2.0'}
+
+# see https://software.intel.com/content/www/us/en/develop/articles/oneapi-standalone-components.html
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/9f84e1e8-11b2-4bd1-8512-3e3343585956']
+sources = ['l_mpi_oneapi_p_%(version)s.719_offline.sh']
+checksums = ['5e23cf495c919e17032577e3059438f632297ee63f2cdb906a2547298823cc64']
+
+dependencies = [('UCX', '1.16.0')]
+
+moduleclass = 'mpi'
diff --git a/easybuild/easyconfigs/i/impi/impi-2021.2.0-intel-compilers-2021.2.0.eb b/easybuild/easyconfigs/i/impi/impi-2021.2.0-intel-compilers-2021.2.0.eb
index 345fd82fc3d..ecd3c9521f1 100644
--- a/easybuild/easyconfigs/i/impi/impi-2021.2.0-intel-compilers-2021.2.0.eb
+++ b/easybuild/easyconfigs/i/impi/impi-2021.2.0-intel-compilers-2021.2.0.eb
@@ -7,7 +7,7 @@ description = "Intel MPI Library, compatible with MPICH ABI"
toolchain = {'name': 'intel-compilers', 'version': '2021.2.0'}
# see https://software.intel.com/content/www/us/en/develop/articles/oneapi-standalone-components.html
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/17729/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/17729/']
sources = ['l_mpi_oneapi_p_%(version)s.215_offline.sh']
checksums = ['d0d4cdd11edaff2e7285e38f537defccff38e37a3067c02f4af43a3629ad4aa3']
diff --git a/easybuild/easyconfigs/i/impi/impi-2021.3.0-intel-compilers-2021.3.0.eb b/easybuild/easyconfigs/i/impi/impi-2021.3.0-intel-compilers-2021.3.0.eb
index 8a736821926..1507acd5413 100644
--- a/easybuild/easyconfigs/i/impi/impi-2021.3.0-intel-compilers-2021.3.0.eb
+++ b/easybuild/easyconfigs/i/impi/impi-2021.3.0-intel-compilers-2021.3.0.eb
@@ -10,7 +10,7 @@ description = "Intel MPI Library, compatible with MPICH ABI"
toolchain = {'name': 'intel-compilers', 'version': '2021.3.0'}
# see https://software.intel.com/content/www/us/en/develop/articles/oneapi-standalone-components.html
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/17947']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/17947']
sources = ['l_mpi_oneapi_p_%(version)s.294_offline.sh']
checksums = ['04c48f864ee4c723b1b4ca62f2bea8c04d5d7e3de19171fd62b17868bc79bc36']
diff --git a/easybuild/easyconfigs/i/impi/impi-2021.4.0-intel-compilers-2021.4.0.eb b/easybuild/easyconfigs/i/impi/impi-2021.4.0-intel-compilers-2021.4.0.eb
index a0c8a98edd8..24180258119 100644
--- a/easybuild/easyconfigs/i/impi/impi-2021.4.0-intel-compilers-2021.4.0.eb
+++ b/easybuild/easyconfigs/i/impi/impi-2021.4.0-intel-compilers-2021.4.0.eb
@@ -7,7 +7,7 @@ description = "Intel MPI Library, compatible with MPICH ABI"
toolchain = {'name': 'intel-compilers', 'version': '2021.4.0'}
# see https://software.intel.com/content/www/us/en/develop/articles/oneapi-standalone-components.html
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/18186/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/18186/']
sources = ['l_mpi_oneapi_p_%(version)s.441_offline.sh']
checksums = ['cc4b7072c61d0bd02b1c431b22d2ea3b84b967b59d2e587e77a9e7b2c24f2a29']
diff --git a/easybuild/easyconfigs/i/impi/impi-2021.5.0-intel-compilers-2022.0.1.eb b/easybuild/easyconfigs/i/impi/impi-2021.5.0-intel-compilers-2022.0.1.eb
index bee00810199..ea941c35ab2 100644
--- a/easybuild/easyconfigs/i/impi/impi-2021.5.0-intel-compilers-2022.0.1.eb
+++ b/easybuild/easyconfigs/i/impi/impi-2021.5.0-intel-compilers-2022.0.1.eb
@@ -7,7 +7,7 @@ description = "Intel MPI Library, compatible with MPICH ABI"
toolchain = {'name': 'intel-compilers', 'version': '2022.0.1'}
# see https://software.intel.com/content/www/us/en/develop/articles/oneapi-standalone-components.html
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/18370/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/18370/']
sources = ['l_mpi_oneapi_p_%(version)s.495_offline.sh']
checksums = ['3aae53fe77f7c6aac7a32b299c25d6ca9a00ba4e2d512a26edd90811e59e7471']
diff --git a/easybuild/easyconfigs/i/impi/impi-2021.6.0-intel-compilers-2022.1.0.eb b/easybuild/easyconfigs/i/impi/impi-2021.6.0-intel-compilers-2022.1.0.eb
index b1d328caa62..288c103cd03 100644
--- a/easybuild/easyconfigs/i/impi/impi-2021.6.0-intel-compilers-2022.1.0.eb
+++ b/easybuild/easyconfigs/i/impi/impi-2021.6.0-intel-compilers-2022.1.0.eb
@@ -7,7 +7,7 @@ description = "Intel MPI Library, compatible with MPICH ABI"
toolchain = {'name': 'intel-compilers', 'version': '2022.1.0'}
# see https://software.intel.com/content/www/us/en/develop/articles/oneapi-standalone-components.html
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/18714/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/18714/']
sources = ['l_mpi_oneapi_p_%(version)s.602_offline.sh']
checksums = ['e85db63788c434d43c1378e5e2bf7927a75d11aee8e6b78ee0d933da920977a6']
diff --git a/easybuild/easyconfigs/i/impi/impi-2021.7.0-intel-compilers-2022.2.0.eb b/easybuild/easyconfigs/i/impi/impi-2021.7.0-intel-compilers-2022.2.0.eb
index 8f400fabac4..2df8a69062f 100644
--- a/easybuild/easyconfigs/i/impi/impi-2021.7.0-intel-compilers-2022.2.0.eb
+++ b/easybuild/easyconfigs/i/impi/impi-2021.7.0-intel-compilers-2022.2.0.eb
@@ -7,7 +7,7 @@ description = "Intel MPI Library, compatible with MPICH ABI"
toolchain = {'name': 'intel-compilers', 'version': '2022.2.0'}
# see https://software.intel.com/content/www/us/en/develop/articles/oneapi-standalone-components.html
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/18926/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/18926/']
sources = ['l_mpi_oneapi_p_%(version)s.8711_offline.sh']
checksums = ['4eb1e1487b67b98857bc9b7b37bcac4998e0aa6d1b892b2c87b003bf84fb38e9']
diff --git a/easybuild/easyconfigs/i/impi/impi-2021.7.1-intel-compilers-2022.2.1.eb b/easybuild/easyconfigs/i/impi/impi-2021.7.1-intel-compilers-2022.2.1.eb
index 68aeb9beb63..aa2976fafaf 100644
--- a/easybuild/easyconfigs/i/impi/impi-2021.7.1-intel-compilers-2022.2.1.eb
+++ b/easybuild/easyconfigs/i/impi/impi-2021.7.1-intel-compilers-2022.2.1.eb
@@ -7,7 +7,7 @@ description = "Intel MPI Library, compatible with MPICH ABI"
toolchain = {'name': 'intel-compilers', 'version': '2022.2.1'}
# see https://software.intel.com/content/www/us/en/develop/articles/oneapi-standalone-components.html
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/19010/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/19010/']
sources = ['l_mpi_oneapi_p_%(version)s.16815_offline.sh']
checksums = ['90e7804f2367d457cd4cbf7aa29f1c5676287aa9b34f93e7c9a19e4b8583fff7']
diff --git a/easybuild/easyconfigs/i/impi/impi-2021.8.0-intel-compilers-2023.0.0.eb b/easybuild/easyconfigs/i/impi/impi-2021.8.0-intel-compilers-2023.0.0.eb
index 86153bb28f5..89dce35e1f2 100644
--- a/easybuild/easyconfigs/i/impi/impi-2021.8.0-intel-compilers-2023.0.0.eb
+++ b/easybuild/easyconfigs/i/impi/impi-2021.8.0-intel-compilers-2023.0.0.eb
@@ -7,7 +7,7 @@ description = "Intel MPI Library, compatible with MPICH ABI"
toolchain = {'name': 'intel-compilers', 'version': '2023.0.0'}
# see https://software.intel.com/content/www/us/en/develop/articles/oneapi-standalone-components.html
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/19131/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/19131/']
sources = ['l_mpi_oneapi_p_%(version)s.25329_offline.sh']
checksums = ['0fcb1171fc42fd4b2d863ae474c0b0f656b0fa1fdc1df435aa851ccd6d1eaaf7']
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-2021.1.2.eb b/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2021.1.2.eb
index 820a237e44d..67a5c1f5701 100644
--- a/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2021.1.2.eb
+++ b/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2021.1.2.eb
@@ -9,11 +9,11 @@ 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/17513/'],
+ 'source_urls': ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/17513/'],
'filename': 'l_dpcpp-cpp-compiler_p_%(version)s.63_offline.sh',
},
{
- 'source_urls': ['https://registrationcenter-download.intel.com/akdlm/irc_nas/17508/'],
+ 'source_urls': ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/17508/'],
'filename': 'l_fortran-compiler_p_%(version)s.62_offline.sh',
},
]
diff --git a/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2021.2.0.eb b/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2021.2.0.eb
index 4fe1af0da99..e4986d623f0 100644
--- a/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2021.2.0.eb
+++ b/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2021.2.0.eb
@@ -9,11 +9,11 @@ toolchain = SYSTEM
# see https://software.intel.com/content/www/us/en/develop/articles/oneapi-standalone-components.html
sources = [
{
- 'source_urls': ['https://registrationcenter-download.intel.com/akdlm/irc_nas/17749/'],
+ 'source_urls': ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/17749/'],
'filename': 'l_dpcpp-cpp-compiler_p_%(version)s.118_offline.sh',
},
{
- 'source_urls': ['https://registrationcenter-download.intel.com/akdlm/irc_nas/17756/'],
+ 'source_urls': ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/17756/'],
'filename': 'l_fortran-compiler_p_%(version)s.136_offline.sh',
},
]
diff --git a/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2021.3.0.eb b/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2021.3.0.eb
index efcc5a7498b..cececeebef0 100644
--- a/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2021.3.0.eb
+++ b/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2021.3.0.eb
@@ -12,11 +12,11 @@ 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/17928/'],
+ 'source_urls': ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/17928/'],
'filename': 'l_dpcpp-cpp-compiler_p_%(version)s.3168_offline.sh',
},
{
- 'source_urls': ['https://registrationcenter-download.intel.com/akdlm/irc_nas/17959/'],
+ 'source_urls': ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/17959/'],
'filename': 'l_fortran-compiler_p_%(version)s.3168_offline.sh',
},
]
diff --git a/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2021.4.0.eb b/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2021.4.0.eb
index b12d0b8bb3c..977bf5ced0e 100644
--- a/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2021.4.0.eb
+++ b/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2021.4.0.eb
@@ -9,11 +9,11 @@ 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/18209/'],
+ 'source_urls': ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/18209/'],
'filename': 'l_dpcpp-cpp-compiler_p_%(version)s.3201_offline.sh',
},
{
- 'source_urls': ['https://registrationcenter-download.intel.com/akdlm/irc_nas/18210/'],
+ 'source_urls': ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/18210/'],
'filename': 'l_fortran-compiler_p_%(version)s.3224_offline.sh',
},
]
diff --git a/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2022.0.1.eb b/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2022.0.1.eb
index 56c8e9b5da4..967197cdfd7 100644
--- a/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2022.0.1.eb
+++ b/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2022.0.1.eb
@@ -9,11 +9,11 @@ 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/18435/'],
+ 'source_urls': ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/18435/'],
'filename': 'l_dpcpp-cpp-compiler_p_%(version)s.71_offline.sh',
},
{
- 'source_urls': ['https://registrationcenter-download.intel.com/akdlm/irc_nas/18436/'],
+ 'source_urls': ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/18436/'],
'filename': 'l_fortran-compiler_p_%(version)s.70_offline.sh',
},
]
diff --git a/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2022.0.2.eb b/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2022.0.2.eb
index b54023cfe84..011509935b0 100644
--- a/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2022.0.2.eb
+++ b/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2022.0.2.eb
@@ -9,11 +9,11 @@ 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/18478/'],
+ 'source_urls': ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/18478/'],
'filename': 'l_dpcpp-cpp-compiler_p_%(version)s.84_offline.sh',
},
{
- 'source_urls': ['https://registrationcenter-download.intel.com/akdlm/irc_nas/18481/'],
+ 'source_urls': ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/18481/'],
'filename': 'l_fortran-compiler_p_%(version)s.83_offline.sh',
},
]
diff --git a/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2022.1.0.eb b/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2022.1.0.eb
index f25617230ac..92ac06db492 100644
--- a/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2022.1.0.eb
+++ b/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2022.1.0.eb
@@ -9,11 +9,11 @@ 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/18717/'],
+ 'source_urls': ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/18717/'],
'filename': 'l_dpcpp-cpp-compiler_p_%(version)s.137_offline.sh',
},
{
- 'source_urls': ['https://registrationcenter-download.intel.com/akdlm/irc_nas/18703/'],
+ 'source_urls': ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/18703/'],
'filename': 'l_fortran-compiler_p_%(version)s.134_offline.sh',
},
]
diff --git a/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2022.2.0.eb b/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2022.2.0.eb
index 17262278b13..8c1390dae95 100644
--- a/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2022.2.0.eb
+++ b/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2022.2.0.eb
@@ -9,11 +9,11 @@ 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/18849/'],
+ 'source_urls': ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/18849/'],
'filename': 'l_dpcpp-cpp-compiler_p_%(version)s.8772_offline.sh',
},
{
- 'source_urls': ['https://registrationcenter-download.intel.com/akdlm/irc_nas/18909/'],
+ 'source_urls': ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/18909/'],
'filename': 'l_fortran-compiler_p_%(version)s.8773_offline.sh',
},
]
diff --git a/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2022.2.1.eb b/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2022.2.1.eb
index a6ae8170105..e67292301d5 100644
--- a/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2022.2.1.eb
+++ b/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2022.2.1.eb
@@ -9,11 +9,11 @@ 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/19030/'],
+ 'source_urls': ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/19030/'],
'filename': 'l_dpcpp-cpp-compiler_p_%(version)s.16991_offline.sh',
},
{
- 'source_urls': ['https://registrationcenter-download.intel.com/akdlm/irc_nas/18998/'],
+ 'source_urls': ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/18998/'],
'filename': 'l_fortran-compiler_p_%(version)s.16992_offline.sh',
},
]
diff --git a/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2023.0.0.eb b/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2023.0.0.eb
index 8d97d1ec3e5..f1e9b21f009 100644
--- a/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2023.0.0.eb
+++ b/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2023.0.0.eb
@@ -9,11 +9,11 @@ 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/19123/'],
+ 'source_urls': ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/19123/'],
'filename': 'l_dpcpp-cpp-compiler_p_%(version)s.25393_offline.sh',
},
{
- 'source_urls': ['https://registrationcenter-download.intel.com/akdlm/irc_nas/19105/'],
+ 'source_urls': ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/19105/'],
'filename': 'l_fortran-compiler_p_%(version)s.25394_offline.sh',
},
]
diff --git a/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2024.2.0.eb b/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2024.2.0.eb
new file mode 100644
index 00000000000..90e271fe60a
--- /dev/null
+++ b/easybuild/easyconfigs/i/intel-compilers/intel-compilers-2024.2.0.eb
@@ -0,0 +1,37 @@
+name = 'intel-compilers'
+version = '2024.2.0'
+
+homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/hpc-toolkit.html'
+description = "Intel C, C++ & Fortran compilers (classic and oneAPI)"
+
+toolchain = SYSTEM
+
+# see https://software.intel.com/content/www/us/en/develop/articles/oneapi-standalone-components.html
+sources = [
+ {
+ 'source_urls': [
+ 'https://registrationcenter-download.intel.com/akdlm/IRC_NAS/6780ac84-6256-4b59-a647-330eb65f32b6/'
+ ],
+ 'filename': 'l_dpcpp-cpp-compiler_p_%(version)s.495_offline.sh',
+ },
+ {
+ 'source_urls': [
+ 'https://registrationcenter-download.intel.com/akdlm/IRC_NAS/801143de-6c01-4181-9911-57e00fe40181/'
+ ],
+ 'filename': 'l_fortran-compiler_p_%(version)s.426_offline.sh',
+ },
+]
+checksums = [
+ {'l_dpcpp-cpp-compiler_p_2024.2.0.495_offline.sh':
+ '9463aa979314d2acc51472d414ffcee032e9869ca85ac6ff4c71d39500e5173d'},
+ {'l_fortran-compiler_p_2024.2.0.426_offline.sh':
+ 'fd19a302662b2f86f76fc115ef53a69f16488080278dba4c573cc705f3a52ffa'},
+]
+
+local_gccver = '13.3.0'
+dependencies = [
+ ('GCCcore', local_gccver),
+ ('binutils', '2.42', '', ('GCCcore', local_gccver)),
+]
+
+moduleclass = 'compiler'
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/i/intel/intel-2024a.eb b/easybuild/easyconfigs/i/intel/intel-2024a.eb
new file mode 100644
index 00000000000..7b08707e0fc
--- /dev/null
+++ b/easybuild/easyconfigs/i/intel/intel-2024a.eb
@@ -0,0 +1,22 @@
+easyblock = 'Toolchain'
+
+name = 'intel'
+version = '2024a'
+
+homepage = 'https://easybuild.readthedocs.io/en/master/Common-toolchains.html#intel-toolchain'
+description = "Compiler toolchain including Intel compilers, Intel MPI and Intel Math Kernel Library (MKL)."
+
+toolchain = SYSTEM
+
+local_comp_ver = '2024.2.0'
+local_gccver = '13.3.0'
+dependencies = [
+ ('GCCcore', local_gccver),
+ ('binutils', '2.42', '', ('GCCcore', local_gccver)),
+ ('intel-compilers', local_comp_ver),
+ ('impi', '2021.13.0', '', ('intel-compilers', local_comp_ver)),
+ ('imkl', '2024.2.0', '', SYSTEM),
+ ('imkl-FFTW', '2024.2.0', '', ('iimpi', version)),
+]
+
+moduleclass = 'toolchain'
diff --git a/easybuild/easyconfigs/i/intervaltree/intervaltree-0.1-GCCcore-12.2.0.eb b/easybuild/easyconfigs/i/intervaltree/intervaltree-0.1-GCCcore-12.2.0.eb
new file mode 100644
index 00000000000..06f61418ed7
--- /dev/null
+++ b/easybuild/easyconfigs/i/intervaltree/intervaltree-0.1-GCCcore-12.2.0.eb
@@ -0,0 +1,38 @@
+# Updated: Denis Kristak (INUITS)
+# Updated: Petr Král (INUITS)
+
+easyblock = 'ConfigureMake'
+
+name = 'intervaltree'
+version = '0.1'
+
+homepage = 'https://github.com/ekg/intervaltree'
+description = """An interval tree can be used to efficiently find a set of numeric intervals
+ overlapping or containing another interval. This library provides a basic implementation of an
+ interval tree using C++ templates, allowing the insertion of arbitrary types into the tree.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '12.2.0'}
+
+github_account = 'ekg'
+source_urls = [GITHUB_SOURCE]
+sources = ['v%(version)s.tar.gz']
+patches = ['%(name)s-%(version)s_fix-numeric_limits.patch']
+checksums = [
+ '7ba41f164a98bdcd570f1416fde1634b23d3b0d885b11ccebeec76f58810c307', # v0.1.tar.gz
+ '1d69caf35af86c0a55000e1bde3f9a0f19dd63d1d2b6bd48e4e5fecbb1aaa6b0', # intervaltree-0.1_fix-numeric_limits.patch
+]
+
+builddependencies = [('binutils', '2.39')]
+
+skipsteps = ['configure']
+
+preinstallopts = 'DESTDIR="" PREFIX=%(installdir)s'
+
+sanity_check_paths = {
+ 'files': ['bin/interval_tree_test', 'include/intervaltree/IntervalTree.h'],
+ 'dirs': [],
+}
+sanity_check_commands = ["interval_tree_test"]
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/i/intltool/intltool-0.51.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/i/intltool/intltool-0.51.0-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..e5797e51b02
--- /dev/null
+++ b/easybuild/easyconfigs/i/intltool/intltool-0.51.0-GCCcore-13.3.0.eb
@@ -0,0 +1,37 @@
+easyblock = 'ConfigureMake'
+
+name = 'intltool'
+version = '0.51.0'
+
+homepage = 'https://freedesktop.org/wiki/Software/intltool/'
+description = """intltool is a set of tools to centralize translation of
+ many different file formats using GNU gettext-compatible PO files."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://launchpad.net/intltool/trunk/%(version)s/+download/']
+sources = [SOURCE_TAR_GZ]
+patches = ['intltool-%(version)s_fix-Perl-compat.patch']
+checksums = [
+ '67c74d94196b153b774ab9f89b2fa6c6ba79352407037c8c14d5aeb334e959cd', # intltool-0.51.0.tar.gz
+ 'e839f7228b2b92301831bca88ed0bc7bce5dbf862568f1644642988204903db6', # intltool-0.51.0_fix-Perl-compat.patch
+]
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+
+dependencies = [
+ ('Perl-bundle-CPAN', '5.38.2'),
+]
+
+fix_perl_shebang_for = ['bin/intltool-*']
+
+sanity_check_paths = {
+ 'files': ['bin/intltool%s' % x for x in ['-extract', '-merge', '-prepare', '-update', 'ize']],
+ 'dirs': []
+}
+
+sanity_check_commands = ["intltool-merge --help"]
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/i/ipympl/ipympl-0.9.3-foss-2023a.eb b/easybuild/easyconfigs/i/ipympl/ipympl-0.9.3-gfbf-2023a.eb
similarity index 84%
rename from easybuild/easyconfigs/i/ipympl/ipympl-0.9.3-foss-2023a.eb
rename to easybuild/easyconfigs/i/ipympl/ipympl-0.9.3-gfbf-2023a.eb
index e3b6c4b7437..47ab1aff28c 100644
--- a/easybuild/easyconfigs/i/ipympl/ipympl-0.9.3-foss-2023a.eb
+++ b/easybuild/easyconfigs/i/ipympl/ipympl-0.9.3-gfbf-2023a.eb
@@ -10,7 +10,7 @@ Besides, the figure canvas element is a proper Jupyter interactive widget which
can be positioned in interactive widget layouts.
"""
-toolchain = {'name': 'foss', 'version': '2023a'}
+toolchain = {'name': 'gfbf', 'version': '2023a'}
dependencies = [
('Python', '3.11.3'),
@@ -29,9 +29,6 @@ exts_list = [
}),
]
-modextrapaths = {
- 'JUPYTER_PATH': 'share/jupyter',
- 'JUPYTER_CONFIG_PATH': 'etc/jupyter',
-}
+modextrapaths = {'EB_ENV_JUPYTER_ROOT': ''}
moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/i/ipympl/ipympl-0.9.4-gfbf-2023b.eb b/easybuild/easyconfigs/i/ipympl/ipympl-0.9.4-gfbf-2023b.eb
new file mode 100644
index 00000000000..e780d34c757
--- /dev/null
+++ b/easybuild/easyconfigs/i/ipympl/ipympl-0.9.4-gfbf-2023b.eb
@@ -0,0 +1,34 @@
+easyblock = 'PythonBundle'
+
+name = 'ipympl'
+version = '0.9.4'
+
+homepage = 'https://matplotlib.org/ipympl'
+description = """Leveraging the Jupyter interactive widgets framework, ipympl enables the
+interactive features of matplotlib in the Jupyter notebook and in JupyterLab.
+Besides, the figure canvas element is a proper Jupyter interactive widget which
+can be positioned in interactive widget layouts.
+"""
+
+toolchain = {'name': 'gfbf', 'version': '2023b'}
+
+dependencies = [
+ ('Python', '3.11.5'),
+ ('JupyterLab', '4.2.0'),
+ ('matplotlib', '3.8.2'),
+ ('Pillow', '10.2.0'),
+]
+
+sanity_pip_check = True
+use_pip = True
+
+exts_list = [
+ (name, version, {
+ 'source_tmpl': '%(name)s-%(version)s-py3-none-any.whl',
+ 'checksums': ['5b0c08c6f4f6ea655ba58239363457c10fb921557f5038c1a46db4457d6d6b0e'],
+ }),
+]
+
+modextrapaths = {'EB_ENV_JUPYTER_ROOT': ''}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/i/itac/itac-2021.2.0.eb b/easybuild/easyconfigs/i/itac/itac-2021.2.0.eb
index 3deaaa9e711..ea2cfcb2650 100644
--- a/easybuild/easyconfigs/i/itac/itac-2021.2.0.eb
+++ b/easybuild/easyconfigs/i/itac/itac-2021.2.0.eb
@@ -11,7 +11,7 @@ description = """The Intel Trace Collector is a low-overhead tracing library tha
toolchain = SYSTEM
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/17686/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/17686/']
sources = ['l_itac_oneapi_p_%(version)s.152_offline.sh']
checksums = ['dca9d1cb2b77c43496009e191916e0d37c2e6606c228e37c11091778d038dd90']
diff --git a/easybuild/easyconfigs/i/itac/itac-2021.5.0.eb b/easybuild/easyconfigs/i/itac/itac-2021.5.0.eb
index f9d10379c85..ea05e25db95 100644
--- a/easybuild/easyconfigs/i/itac/itac-2021.5.0.eb
+++ b/easybuild/easyconfigs/i/itac/itac-2021.5.0.eb
@@ -11,7 +11,7 @@ description = """The Intel Trace Collector is a low-overhead tracing library tha
toolchain = SYSTEM
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/18367/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/18367/']
sources = ['l_itac_oneapi_p_%(version)s.370_offline.sh']
checksums = ['c2b31298d8b4069a62d9352873c7f6e17ce240ad7293f9bacdc6de3794675b58']
diff --git a/easybuild/easyconfigs/i/itac/itac-2021.6.0.eb b/easybuild/easyconfigs/i/itac/itac-2021.6.0.eb
index 22e6230e15b..0f35b870046 100644
--- a/easybuild/easyconfigs/i/itac/itac-2021.6.0.eb
+++ b/easybuild/easyconfigs/i/itac/itac-2021.6.0.eb
@@ -11,7 +11,7 @@ description = """The Intel Trace Collector is a low-overhead tracing library tha
toolchain = SYSTEM
-source_urls = ['https://registrationcenter-download.intel.com/akdlm/irc_nas/18694/']
+source_urls = ['https://registrationcenter-download.intel.com/akdlm/IRC_NAS/18694/']
sources = ['l_itac_oneapi_p_%(version)s.434_offline.sh']
checksums = ['1ecc2735da960041b051e377cadb9f6ab2f44e8aa44d0f642529a56a3cbba436']
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-2023a.eb b/easybuild/easyconfigs/j/JAGS/JAGS-4.3.2-foss-2023a.eb
new file mode 100644
index 00000000000..8c83d04b731
--- /dev/null
+++ b/easybuild/easyconfigs/j/JAGS/JAGS-4.3.2-foss-2023a.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': '2023a'}
+
+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/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/Jansson/Jansson-2.14-GCC-12.3.0.eb b/easybuild/easyconfigs/j/Jansson/Jansson-2.14-GCC-12.3.0.eb
new file mode 100644
index 00000000000..a8aeb721b5f
--- /dev/null
+++ b/easybuild/easyconfigs/j/Jansson/Jansson-2.14-GCC-12.3.0.eb
@@ -0,0 +1,41 @@
+# Contribution from Imperial College London
+# uploaded by J. Sassmannshausen
+# Update: P.Tománek (Inuits)
+
+easyblock = 'CMakeMake'
+
+name = 'Jansson'
+version = "2.14"
+
+homepage = 'https://www.digip.org/jansson/'
+description = """Jansson is a C library for encoding, decoding and manipulating JSON data.
+ Its main features and design principles are:
+ * Simple and intuitive API and data model
+ * Comprehensive documentation
+ * No dependencies on other libraries
+ * Full Unicode support (UTF-8)
+ * Extensive test suite"""
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+
+source_urls = ['https://github.com/akheron/jansson/archive/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['c739578bf6b764aa0752db9a2fdadcfe921c78f1228c7ec0bb47fa804c55d17b']
+
+# For configure, the ld.gold linker does not know anything about --default-symver and thus crashes
+# So we simnply use the bfd linker
+# preconfigopts = 'autoreconf -i && CC="$CC -fuse-ld=bfd" '
+# This is not required with CMake
+
+builddependencies = [('CMake', '3.26.3')]
+
+configopts = '-DJANSSON_BUILD_SHARED_LIBS=ON '
+
+sanity_check_paths = {
+ 'files': ['lib/libjansson.%s' % SHLIB_EXT],
+ 'dirs': ['include'],
+}
+
+runtest = 'check'
+
+moduleclass = 'data'
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.2.0.eb b/easybuild/easyconfigs/j/JsonCpp/JsonCpp-1.9.5-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..dd5dda233d2
--- /dev/null
+++ b/easybuild/easyconfigs/j/JsonCpp/JsonCpp-1.9.5-GCCcore-13.2.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.2.0'}
+
+source_urls = ['https://github.com/open-source-parsers/jsoncpp/archive']
+sources = ['%(version)s.tar.gz']
+checksums = ['f409856e5920c18d0c2fb85276e24ee607d2a09b5e7d5f0a371368903c275da2']
+
+builddependencies = [
+ ('CMake', '3.27.6'),
+ ('Ninja', '1.11.1'),
+ ('pkgconf', '2.0.3'),
+ ('binutils', '2.40'),
+]
+
+sanity_check_paths = {
+ 'files': ['include/json/json.h', 'lib/libjsoncpp.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+
+moduleclass = 'lib'
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-12.3.0.eb b/easybuild/easyconfigs/j/Judy/Judy-1.0.5-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..183e8e08ea4
--- /dev/null
+++ b/easybuild/easyconfigs/j/Judy/Judy-1.0.5-GCCcore-12.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': '12.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', '20220317'),
+ ('binutils', '2.40'),
+]
+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/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.0-linux-x86_64.eb b/easybuild/easyconfigs/j/Julia/Julia-1.10.0-linux-x86_64.eb
index 6671e1cd4ff..6081619a331 100644
--- a/easybuild/easyconfigs/j/Julia/Julia-1.10.0-linux-x86_64.eb
+++ b/easybuild/easyconfigs/j/Julia/Julia-1.10.0-linux-x86_64.eb
@@ -11,21 +11,20 @@ toolchain = SYSTEM
source_urls = ['https://julialang-s3.julialang.org/bin/linux/x64/%(version_major_minor)s/']
sources = ['%(namelower)s-%(version)s%(versionsuffix)s.tar.gz']
-checksums = ['a7298207f72f2b27b2ab1ce392a6ea37afbd1fbee0f1f8d190b054dcaba878fe']
+patches = [('julia.wrapper', 'bin/')]
+checksums = [
+ {'julia-1.10.0-linux-x86_64.tar.gz': 'a7298207f72f2b27b2ab1ce392a6ea37afbd1fbee0f1f8d190b054dcaba878fe'},
+ {'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', 'include/julia/julia.h', 'lib/libjulia.%s' % SHLIB_EXT],
- 'dirs': ['bin', 'etc', 'include', 'lib', 'share']
+ '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']
-modextrapaths_append = {
- # Use default DEPOT_PATH where first entry is user's depot.
- # JULIA_DEPOT_PATH must be set to be able to load other JuliaPackage modules and have
- # those installations appended to DEPOT_PATH without disabling any of the default paths.
- # Appending ':' to make sure we don't override the user's custom JULIA_DEPOT_PATH if set.
- 'JULIA_DEPOT_PATH': ':',
-}
-
moduleclass = 'lang'
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/Julia/Julia-1.6.0-linux-aarch64.eb b/easybuild/easyconfigs/j/Julia/Julia-1.6.0-linux-aarch64.eb
index 225d86de75a..17abf7d929c 100644
--- a/easybuild/easyconfigs/j/Julia/Julia-1.6.0-linux-aarch64.eb
+++ b/easybuild/easyconfigs/j/Julia/Julia-1.6.0-linux-aarch64.eb
@@ -15,20 +15,20 @@ toolchain = SYSTEM
source_urls = ['https://julialang-s3.julialang.org/bin/linux/aarch64/%(version_major_minor)s/']
sources = ['%(namelower)s-%(version)s%(versionsuffix)s.tar.gz']
-checksums = ['0f496972d26cea88151204d03e6bd87702aa1ff983de3b1e4f320c48ef67325f']
+patches = [('julia.wrapper', 'bin/')]
+checksums = [
+ {'julia-1.6.0-linux-aarch64.tar.gz': '0f496972d26cea88151204d03e6bd87702aa1ff983de3b1e4f320c48ef67325f'},
+ {'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', 'include/julia/julia.h', 'lib/libjulia.%s' % SHLIB_EXT],
- 'dirs': ['bin', 'etc', 'include', 'lib', 'share']
+ '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']
-modextravars = {
- # Use default DEPOT_PATH where first entry is user's depot
- # JULIA_DEPOT_PATH must be set to be able to load other JuliaPackage modules and have
- # those installations appended to DEPOT_PATH without disabling any of the default paths
- 'JULIA_DEPOT_PATH': ':',
-}
-
moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/j/Julia/Julia-1.6.5-linux-x86_64.eb b/easybuild/easyconfigs/j/Julia/Julia-1.6.5-linux-x86_64.eb
index 45b365aa65d..dd9ad4890db 100644
--- a/easybuild/easyconfigs/j/Julia/Julia-1.6.5-linux-x86_64.eb
+++ b/easybuild/easyconfigs/j/Julia/Julia-1.6.5-linux-x86_64.eb
@@ -19,20 +19,20 @@ toolchain = SYSTEM
source_urls = ['https://julialang-s3.julialang.org/bin/linux/x64/%(version_major_minor)s/']
sources = ['%(namelower)s-%(version)s%(versionsuffix)s.tar.gz']
-checksums = ['b8fe23ee547254a2fe14be587284ed77c78c06c2d8e9aad5febce0d21cab8e2c']
+patches = [('julia.wrapper', 'bin/')]
+checksums = [
+ {'julia-1.6.5-linux-x86_64.tar.gz': 'b8fe23ee547254a2fe14be587284ed77c78c06c2d8e9aad5febce0d21cab8e2c'},
+ {'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', 'include/julia/julia.h', 'lib/libjulia.%s' % SHLIB_EXT],
- 'dirs': ['bin', 'etc', 'include', 'lib', 'share']
+ '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']
-modextravars = {
- # Use default DEPOT_PATH where first entry is user's depot
- # JULIA_DEPOT_PATH must be set to be able to load other JuliaPackage modules and have
- # those installations appended to DEPOT_PATH without disabling any of the default paths
- 'JULIA_DEPOT_PATH': ':',
-}
-
moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/j/Julia/Julia-1.6.6-linux-x86_64.eb b/easybuild/easyconfigs/j/Julia/Julia-1.6.6-linux-x86_64.eb
index 48c2259422e..03bdc16da5a 100644
--- a/easybuild/easyconfigs/j/Julia/Julia-1.6.6-linux-x86_64.eb
+++ b/easybuild/easyconfigs/j/Julia/Julia-1.6.6-linux-x86_64.eb
@@ -19,20 +19,19 @@ toolchain = SYSTEM
source_urls = ['https://julialang-s3.julialang.org/bin/linux/x64/%(version_major_minor)s/']
sources = ['%(namelower)s-%(version)s%(versionsuffix)s.tar.gz']
-checksums = ['c25ff71a4242207ab2681a0fcc5df50014e9d99f814e77cacbc5027e20514945']
+patches = [('julia.wrapper', 'bin/')]
+checksums = [
+ {'julia-1.6.6-linux-x86_64.tar.gz': 'c25ff71a4242207ab2681a0fcc5df50014e9d99f814e77cacbc5027e20514945'},
+ {'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', 'include/julia/julia.h', 'lib/libjulia.%s' % SHLIB_EXT],
- 'dirs': ['bin', 'etc', 'include', 'lib', 'share']
+ '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']
-modextravars = {
- # Use default DEPOT_PATH where first entry is user's depot
- # JULIA_DEPOT_PATH must be set to be able to load other JuliaPackage modules and have
- # those installations appended to DEPOT_PATH without disabling any of the default paths
- 'JULIA_DEPOT_PATH': ':',
-}
-
moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/j/Julia/Julia-1.6.7-linux-x86_64.eb b/easybuild/easyconfigs/j/Julia/Julia-1.6.7-linux-x86_64.eb
index f5d1446913f..7046809d33d 100644
--- a/easybuild/easyconfigs/j/Julia/Julia-1.6.7-linux-x86_64.eb
+++ b/easybuild/easyconfigs/j/Julia/Julia-1.6.7-linux-x86_64.eb
@@ -19,20 +19,19 @@ toolchain = SYSTEM
source_urls = ['https://julialang-s3.julialang.org/bin/linux/x64/%(version_major_minor)s/']
sources = ['%(namelower)s-%(version)s%(versionsuffix)s.tar.gz']
-checksums = ['6c4522d595e4cbcd00157ac458a72f8aec01757053d2073f99daa39e442b2a36']
+patches = [('julia.wrapper', 'bin/')]
+checksums = [
+ {'julia-1.6.7-linux-x86_64.tar.gz': '6c4522d595e4cbcd00157ac458a72f8aec01757053d2073f99daa39e442b2a36'},
+ {'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', 'include/julia/julia.h', 'lib/libjulia.%s' % SHLIB_EXT],
- 'dirs': ['bin', 'etc', 'include', 'lib', 'share']
+ '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']
-modextravars = {
- # Use default DEPOT_PATH where first entry is user's depot
- # JULIA_DEPOT_PATH must be set to be able to load other JuliaPackage modules and have
- # those installations appended to DEPOT_PATH without disabling any of the default paths
- 'JULIA_DEPOT_PATH': ':',
-}
-
moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/j/Julia/Julia-1.7.0-linux-x86_64.eb b/easybuild/easyconfigs/j/Julia/Julia-1.7.0-linux-x86_64.eb
index ecc3020f4c0..39df361aa99 100644
--- a/easybuild/easyconfigs/j/Julia/Julia-1.7.0-linux-x86_64.eb
+++ b/easybuild/easyconfigs/j/Julia/Julia-1.7.0-linux-x86_64.eb
@@ -19,20 +19,19 @@ toolchain = SYSTEM
source_urls = ['https://julialang-s3.julialang.org/bin/linux/x64/%(version_major_minor)s/']
sources = ['%(namelower)s-%(version)s%(versionsuffix)s.tar.gz']
-checksums = ['7299f3a638aec5e0b9e14eaf0e6221c4fe27189aa0b38ac5a36f03f0dc4c0d40']
+patches = [('julia.wrapper', 'bin/')]
+checksums = [
+ {'julia-1.7.0-linux-x86_64.tar.gz': '7299f3a638aec5e0b9e14eaf0e6221c4fe27189aa0b38ac5a36f03f0dc4c0d40'},
+ {'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', 'include/julia/julia.h', 'lib/libjulia.%s' % SHLIB_EXT],
- 'dirs': ['bin', 'etc', 'include', 'lib', 'share']
+ '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']
-modextravars = {
- # Use default DEPOT_PATH where first entry is user's depot
- # JULIA_DEPOT_PATH must be set to be able to load other JuliaPackage modules and have
- # those installations appended to DEPOT_PATH without disabling any of the default paths
- 'JULIA_DEPOT_PATH': ':',
-}
-
moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/j/Julia/Julia-1.7.1-linux-x86_64.eb b/easybuild/easyconfigs/j/Julia/Julia-1.7.1-linux-x86_64.eb
index b8b0a744c04..87f911a7da0 100644
--- a/easybuild/easyconfigs/j/Julia/Julia-1.7.1-linux-x86_64.eb
+++ b/easybuild/easyconfigs/j/Julia/Julia-1.7.1-linux-x86_64.eb
@@ -19,20 +19,19 @@ toolchain = SYSTEM
source_urls = ['https://julialang-s3.julialang.org/bin/linux/x64/%(version_major_minor)s/']
sources = ['%(namelower)s-%(version)s%(versionsuffix)s.tar.gz']
-checksums = ['44658e9c7b45e2b9b5b59239d190cca42de05c175ea86bc346c294a8fe8d9f11']
+patches = [('julia.wrapper', 'bin/')]
+checksums = [
+ {'julia-1.7.1-linux-x86_64.tar.gz': '44658e9c7b45e2b9b5b59239d190cca42de05c175ea86bc346c294a8fe8d9f11'},
+ {'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', 'include/julia/julia.h', 'lib/libjulia.%s' % SHLIB_EXT],
- 'dirs': ['bin', 'etc', 'include', 'lib', 'share']
+ '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']
-modextravars = {
- # Use default DEPOT_PATH where first entry is user's depot
- # JULIA_DEPOT_PATH must be set to be able to load other JuliaPackage modules and have
- # those installations appended to DEPOT_PATH without disabling any of the default paths
- 'JULIA_DEPOT_PATH': ':',
-}
-
moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/j/Julia/Julia-1.7.2-linux-x86_64.eb b/easybuild/easyconfigs/j/Julia/Julia-1.7.2-linux-x86_64.eb
index e88e509e098..5e48ff39fbe 100644
--- a/easybuild/easyconfigs/j/Julia/Julia-1.7.2-linux-x86_64.eb
+++ b/easybuild/easyconfigs/j/Julia/Julia-1.7.2-linux-x86_64.eb
@@ -19,20 +19,19 @@ toolchain = SYSTEM
source_urls = ['https://julialang-s3.julialang.org/bin/linux/x64/%(version_major_minor)s/']
sources = ['%(namelower)s-%(version)s%(versionsuffix)s.tar.gz']
-checksums = ['a75244724f3b2de0e7249c861fbf64078257c16fb4203be78f1cf4dd5973ba95']
+patches = [('julia.wrapper', 'bin/')]
+checksums = [
+ {'julia-1.7.2-linux-x86_64.tar.gz': 'a75244724f3b2de0e7249c861fbf64078257c16fb4203be78f1cf4dd5973ba95'},
+ {'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', 'include/julia/julia.h', 'lib/libjulia.%s' % SHLIB_EXT],
- 'dirs': ['bin', 'etc', 'include', 'lib', 'share']
+ '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']
-modextravars = {
- # Use default DEPOT_PATH where first entry is user's depot
- # JULIA_DEPOT_PATH must be set to be able to load other JuliaPackage modules and have
- # those installations appended to DEPOT_PATH without disabling any of the default paths
- 'JULIA_DEPOT_PATH': ':',
-}
-
moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/j/Julia/Julia-1.7.3-linux-x86_64.eb b/easybuild/easyconfigs/j/Julia/Julia-1.7.3-linux-x86_64.eb
index dac9088825a..0f1649345d9 100644
--- a/easybuild/easyconfigs/j/Julia/Julia-1.7.3-linux-x86_64.eb
+++ b/easybuild/easyconfigs/j/Julia/Julia-1.7.3-linux-x86_64.eb
@@ -19,20 +19,19 @@ toolchain = SYSTEM
source_urls = ['https://julialang-s3.julialang.org/bin/linux/x64/%(version_major_minor)s/']
sources = ['%(namelower)s-%(version)s%(versionsuffix)s.tar.gz']
-checksums = ['9b2f4fa12d92b4dcc5d11dc66fb118c47681a76d3df8da064cc97573f2f5c739']
+patches = [('julia.wrapper', 'bin/')]
+checksums = [
+ {'julia-1.7.3-linux-x86_64.tar.gz': '9b2f4fa12d92b4dcc5d11dc66fb118c47681a76d3df8da064cc97573f2f5c739'},
+ {'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', 'include/julia/julia.h', 'lib/libjulia.%s' % SHLIB_EXT],
- 'dirs': ['bin', 'etc', 'include', 'lib', 'share']
+ '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']
-modextravars = {
- # Use default DEPOT_PATH where first entry is user's depot
- # JULIA_DEPOT_PATH must be set to be able to load other JuliaPackage modules and have
- # those installations appended to DEPOT_PATH without disabling any of the default paths
- 'JULIA_DEPOT_PATH': ':',
-}
-
moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/j/Julia/Julia-1.8.0-linux-x86_64.eb b/easybuild/easyconfigs/j/Julia/Julia-1.8.0-linux-x86_64.eb
index c7f6214e4a8..701b6bcbde7 100644
--- a/easybuild/easyconfigs/j/Julia/Julia-1.8.0-linux-x86_64.eb
+++ b/easybuild/easyconfigs/j/Julia/Julia-1.8.0-linux-x86_64.eb
@@ -19,20 +19,19 @@ toolchain = SYSTEM
source_urls = ['https://julialang-s3.julialang.org/bin/linux/x64/%(version_major_minor)s/']
sources = ['%(namelower)s-%(version)s%(versionsuffix)s.tar.gz']
-checksums = ['e80d732ccb7f79e000d798cb8b656dc3641ab59516d6e4e52e16765017892a00']
+patches = [('julia.wrapper', 'bin/')]
+checksums = [
+ {'julia-1.8.0-linux-x86_64.tar.gz': 'e80d732ccb7f79e000d798cb8b656dc3641ab59516d6e4e52e16765017892a00'},
+ {'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', 'include/julia/julia.h', 'lib/libjulia.%s' % SHLIB_EXT],
- 'dirs': ['bin', 'etc', 'include', 'lib', 'share']
+ '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']
-modextravars = {
- # Use default DEPOT_PATH where first entry is user's depot
- # JULIA_DEPOT_PATH must be set to be able to load other JuliaPackage modules and have
- # those installations appended to DEPOT_PATH without disabling any of the default paths
- 'JULIA_DEPOT_PATH': ':',
-}
-
moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/j/Julia/Julia-1.8.2-linux-x86_64.eb b/easybuild/easyconfigs/j/Julia/Julia-1.8.2-linux-x86_64.eb
index 37b817f557e..c85c5bdc291 100644
--- a/easybuild/easyconfigs/j/Julia/Julia-1.8.2-linux-x86_64.eb
+++ b/easybuild/easyconfigs/j/Julia/Julia-1.8.2-linux-x86_64.eb
@@ -19,20 +19,19 @@ toolchain = SYSTEM
source_urls = ['https://julialang-s3.julialang.org/bin/linux/x64/%(version_major_minor)s/']
sources = ['%(namelower)s-%(version)s%(versionsuffix)s.tar.gz']
-checksums = ['671cf3a450b63a717e1eedd7f69087e3856f015b2e146cb54928f19a3c05e796']
+patches = [('julia.wrapper', 'bin/')]
+checksums = [
+ {'julia-1.8.2-linux-x86_64.tar.gz': '671cf3a450b63a717e1eedd7f69087e3856f015b2e146cb54928f19a3c05e796'},
+ {'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', 'include/julia/julia.h', 'lib/libjulia.%s' % SHLIB_EXT],
- 'dirs': ['bin', 'etc', 'include', 'lib', 'share']
+ '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']
-modextravars = {
- # Use default DEPOT_PATH where first entry is user's depot
- # JULIA_DEPOT_PATH must be set to be able to load other JuliaPackage modules and have
- # those installations appended to DEPOT_PATH without disabling any of the default paths
- 'JULIA_DEPOT_PATH': ':',
-}
-
moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/j/Julia/Julia-1.8.5-linux-x86_64.eb b/easybuild/easyconfigs/j/Julia/Julia-1.8.5-linux-x86_64.eb
index 1d5fa47c96c..6e60397495d 100644
--- a/easybuild/easyconfigs/j/Julia/Julia-1.8.5-linux-x86_64.eb
+++ b/easybuild/easyconfigs/j/Julia/Julia-1.8.5-linux-x86_64.eb
@@ -19,20 +19,19 @@ toolchain = SYSTEM
source_urls = ['https://julialang-s3.julialang.org/bin/linux/x64/%(version_major_minor)s/']
sources = ['%(namelower)s-%(version)s%(versionsuffix)s.tar.gz']
-checksums = ['e71a24816e8fe9d5f4807664cbbb42738f5aa9fe05397d35c81d4c5d649b9d05']
+patches = [('julia.wrapper', 'bin/')]
+checksums = [
+ {'julia-1.8.5-linux-x86_64.tar.gz': 'e71a24816e8fe9d5f4807664cbbb42738f5aa9fe05397d35c81d4c5d649b9d05'},
+ {'julia.wrapper': 'd10aeaff53cca9875f7b0ce9218eae3bd21870b654e26c4c52aa8bfcc9da702d'},
+]
+
+postinstallcmds = ["cd %(installdir)s/bin && mv julia julia.bin && mv julia.wrapper julia"]
sanity_check_paths = {
- 'files': ['bin/julia', 'include/julia/julia.h', 'lib/libjulia.%s' % SHLIB_EXT],
- 'dirs': ['bin', 'etc', 'include', 'lib', 'share']
+ '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']
-modextravars = {
- # Use default DEPOT_PATH where first entry is user's depot
- # JULIA_DEPOT_PATH must be set to be able to load other JuliaPackage modules and have
- # those installations appended to DEPOT_PATH without disabling any of the default paths
- 'JULIA_DEPOT_PATH': ':',
-}
-
moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/j/Julia/Julia-1.9.0-linux-x86_64.eb b/easybuild/easyconfigs/j/Julia/Julia-1.9.0-linux-x86_64.eb
index 2ee4230cbb9..2e89fb8640b 100644
--- a/easybuild/easyconfigs/j/Julia/Julia-1.9.0-linux-x86_64.eb
+++ b/easybuild/easyconfigs/j/Julia/Julia-1.9.0-linux-x86_64.eb
@@ -19,20 +19,19 @@ toolchain = SYSTEM
source_urls = ['https://julialang-s3.julialang.org/bin/linux/x64/%(version_major_minor)s/']
sources = ['%(namelower)s-%(version)s%(versionsuffix)s.tar.gz']
-checksums = ['00c614466ef9809c2eb23480e38d196a2c577fff2730c4f83d135b913d473359']
+patches = [('julia.wrapper', 'bin/')]
+checksums = [
+ {'julia-1.9.0-linux-x86_64.tar.gz': '00c614466ef9809c2eb23480e38d196a2c577fff2730c4f83d135b913d473359'},
+ {'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', 'include/julia/julia.h', 'lib/libjulia.%s' % SHLIB_EXT],
- 'dirs': ['bin', 'etc', 'include', 'lib', 'share']
+ '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']
-modextravars = {
- # Use default DEPOT_PATH where first entry is user's depot
- # JULIA_DEPOT_PATH must be set to be able to load other JuliaPackage modules and have
- # those installations appended to DEPOT_PATH without disabling any of the default paths
- 'JULIA_DEPOT_PATH': ':',
-}
-
moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/j/Julia/Julia-1.9.2-linux-x86_64.eb b/easybuild/easyconfigs/j/Julia/Julia-1.9.2-linux-x86_64.eb
index a0d92b7aacb..fef2c5a347c 100644
--- a/easybuild/easyconfigs/j/Julia/Julia-1.9.2-linux-x86_64.eb
+++ b/easybuild/easyconfigs/j/Julia/Julia-1.9.2-linux-x86_64.eb
@@ -19,20 +19,19 @@ toolchain = SYSTEM
source_urls = ['https://julialang-s3.julialang.org/bin/linux/x64/%(version_major_minor)s/']
sources = ['%(namelower)s-%(version)s%(versionsuffix)s.tar.gz']
-checksums = ['4c2d799f442d7fe718827b19da2bacb72ea041b9ce55f24eee7b1313f57c4383']
+patches = [('julia.wrapper', 'bin/')]
+checksums = [
+ {'julia-1.9.2-linux-x86_64.tar.gz': '4c2d799f442d7fe718827b19da2bacb72ea041b9ce55f24eee7b1313f57c4383'},
+ {'julia.wrapper': 'd10aeaff53cca9875f7b0ce9218eae3bd21870b654e26c4c52aa8bfcc9da702d'},
+]
+
+postinstallcmds = ["cd %(installdir)s/bin && mv julia julia.bin && mv julia.wrapper julia"]
sanity_check_paths = {
- 'files': ['bin/julia', 'include/julia/julia.h', 'lib/libjulia.%s' % SHLIB_EXT],
- 'dirs': ['bin', 'etc', 'include', 'lib', 'share']
+ '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']
-modextravars = {
- # Use default DEPOT_PATH where first entry is user's depot
- # JULIA_DEPOT_PATH must be set to be able to load other JuliaPackage modules and have
- # those installations appended to DEPOT_PATH without disabling any of the default paths
- 'JULIA_DEPOT_PATH': ':',
-}
-
moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/j/Julia/Julia-1.9.3-linux-x86_64.eb b/easybuild/easyconfigs/j/Julia/Julia-1.9.3-linux-x86_64.eb
index 7b207dc635c..1d0f85d9874 100644
--- a/easybuild/easyconfigs/j/Julia/Julia-1.9.3-linux-x86_64.eb
+++ b/easybuild/easyconfigs/j/Julia/Julia-1.9.3-linux-x86_64.eb
@@ -19,20 +19,19 @@ toolchain = SYSTEM
source_urls = ['https://julialang-s3.julialang.org/bin/linux/x64/%(version_major_minor)s/']
sources = ['%(namelower)s-%(version)s%(versionsuffix)s.tar.gz']
-checksums = ['d76670cc9ba3e0fd4c1545dd3d00269c0694976a1176312795ebce1692d323d1']
+patches = [('julia.wrapper', 'bin/')]
+checksums = [
+ {'julia-1.9.3-linux-x86_64.tar.gz': 'd76670cc9ba3e0fd4c1545dd3d00269c0694976a1176312795ebce1692d323d1'},
+ {'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', 'include/julia/julia.h', 'lib/libjulia.%s' % SHLIB_EXT],
- 'dirs': ['bin', 'etc', 'include', 'lib', 'share']
+ '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']
-modextravars = {
- # Use default DEPOT_PATH where first entry is user's depot
- # JULIA_DEPOT_PATH must be set to be able to load other JuliaPackage modules and have
- # those installations appended to DEPOT_PATH without disabling any of the default paths
- 'JULIA_DEPOT_PATH': ':',
-}
-
moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/j/Julia/julia.wrapper b/easybuild/easyconfigs/j/Julia/julia.wrapper
new file mode 100755
index 00000000000..613b8a831f1
--- /dev/null
+++ b/easybuild/easyconfigs/j/Julia/julia.wrapper
@@ -0,0 +1,2 @@
+#!/bin/sh
+LD_LIBRARY_PATH="$EBROOTJULIA/lib:$EBROOTJULIA/lib/julia:$LD_LIBRARY_PATH" julia.bin "$@"
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
new file mode 100644
index 00000000000..e58d22ce229
--- /dev/null
+++ b/easybuild/easyconfigs/j/Jupyter-bundle/Jupyter-bundle-20240522-GCCcore-13.2.0.eb
@@ -0,0 +1,26 @@
+easyblock = 'Bundle'
+
+name = 'Jupyter-bundle'
+version = '20240522'
+
+homepage = "https://jupyter.org/"
+
+description = """
+ This bundle collects a range of Jupyter interfaces (Lab, Notebook and nbclassic),
+ extensions (Jupyter Server Proxy, Jupyter Resource Monitor, Jupyter Lmod) and
+ the JupyterHub.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+dependencies = [
+ ('JupyterHub', '4.1.5'),
+ ('JupyterLab', '4.2.0'),
+ ('JupyterNotebook', '7.2.0'),
+ ('nbclassic', '1.0.0'),
+ ('jupyter-server-proxy', '4.1.2'),
+ ('jupyterlmod', '5.2.1'),
+ ('jupyter-resource-usage', '1.0.2'),
+]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/j/JupyterHub/JupyterHub-4.1.5-GCCcore-13.2.0.eb b/easybuild/easyconfigs/j/JupyterHub/JupyterHub-4.1.5-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..76751fb0f5f
--- /dev/null
+++ b/easybuild/easyconfigs/j/JupyterHub/JupyterHub-4.1.5-GCCcore-13.2.0.eb
@@ -0,0 +1,109 @@
+easyblock = 'PythonBundle'
+
+name = 'JupyterHub'
+version = '4.1.5'
+
+homepage = 'https://jupyter.org'
+description = """JupyterHub is a multiuser version of the Jupyter (IPython) notebook designed
+ for centralized deployments in companies, university classrooms and research labs."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+builddependencies = [
+ ('binutils', '2.40'),
+]
+dependencies = [
+ ('Python', '3.11.5'),
+ ('IPython', '8.17.2'),
+ ('bcrypt', '4.1.3'),
+ ('configurable-http-proxy', '4.6.1'),
+ ('OpenSSL', '1.1', '', SYSTEM),
+ ('tornado', '6.4'),
+ ('PycURL', '7.45.3'), # optional, recommended with large number of users
+ ('SQLAlchemy', '2.0.29'),
+]
+
+sanity_pip_check = True
+use_pip = True
+
+exts_list = [
+ ('certipy', '0.1.3', {
+ 'checksums': ['695704b7716b033375c9a1324d0d30f27110a28895c40151a90ec07ff1032859'],
+ }),
+ ('pamela', '1.1.0', {
+ 'checksums': ['d4b139fe600e192e176a2a368059207a6bffa0e7879879b13f4fcba0163481be'],
+ }),
+ ('async_generator', '1.10', {
+ 'checksums': ['6ebb3d106c12920aaae42ccb6f787ef5eefdcdd166ea3d628fa8476abe712144'],
+ }),
+ ('oauthlib', '3.2.2', {
+ 'checksums': ['9859c40929662bec5d64f34d01c99e093149682a3f38915dc0655d5a633dd918'],
+ }),
+ ('pyOpenSSL', '24.1.0', {
+ 'modulename': 'OpenSSL',
+ 'checksums': ['cabed4bfaa5df9f1a16c0ef64a0cb65318b5cd077a7eda7d6970131ca2f41a6f'],
+ }),
+ ('ruamel.yaml', '0.18.6', {
+ 'checksums': ['8b27e6a217e786c6fbe5634d8f3f11bc63e0f80f6a5890f28863d9c45aac311b'],
+ }),
+ ('ruamel.yaml.clib', '0.2.8', {
+ 'modulename': False,
+ 'checksums': ['beb2e0404003de9a4cab9753a8805a8fe9320ee6673136ed7f04255fe60bb512'],
+ }),
+ ('python-json-logger', '2.0.7', {
+ 'modulename': 'pythonjsonlogger',
+ 'checksums': ['23e7ec02d34237c5aa1e29a070193a4ea87583bb4e7f8fd06d3de8264c4b2e1c'],
+ }),
+ ('jupyter-telemetry', '0.1.0', {
+ 'source_tmpl': 'jupyter_telemetry-%(version)s.tar.gz',
+ 'checksums': ['445c613ae3df70d255fe3de202f936bba8b77b4055c43207edf22468ac875314'],
+ }),
+ ('prometheus_client', '0.20.0', {
+ 'checksums': ['287629d00b147a32dcb2be0b9df905da599b2d82f80377083ec8463309a4bb89'],
+ }),
+ ('jupyterhub', version, {
+ 'checksums': ['63ba1fc718436c151946a58a3b403ec4fe8b3f624fb195bc1d8e70c39b33e194'],
+ }),
+ ('batchspawner', '1.3.0', {
+ 'checksums': ['c0f422eb6a6288f7f711db8b780055b37c1a5c630283cdeb2ef9b5e94ba78caa'],
+ }),
+ ('jupyterhub-systemdspawner', '1.0.1', {
+ 'modulename': 'systemdspawner',
+ 'checksums': ['8d614f19d89564321fe55d80ecd134a0e2bf276274d45861495c9bb5a80add28'],
+ }),
+ ('jupyterhub-simplespawner', '0.1', {
+ 'modulename': 'simplespawner',
+ 'checksums': ['5fcc295b310dd7a99c0f00226be311121fd99b36a5d127e8685f3ffa29712d0d'],
+ }),
+ ('ldap3', '2.9.1', {
+ 'checksums': ['f3e7fc4718e3f09dda568b57100095e0ce58633bcabbed8667ce3f8fbaa4229f'],
+ }),
+ ('jupyterhub-ldapauthenticator', '1.3.2', {
+ 'modulename': 'ldapauthenticator',
+ 'checksums': ['758081bbdb28b26313bb18c9d8aa2b8fcdc9162e4d3ab196c626567e64f1ab8b'],
+ }),
+ ('PyJWT', '2.8.0', {
+ 'modulename': 'jwt',
+ 'checksums': ['57e28d156e3d5c10088e0c68abb90bfac3df82b40a71bd0daa20c65ccd5c23de'],
+ }),
+ ('jupyterhub-jwtauthenticator-v2', '2.0.3', {
+ 'modulename': 'jwtauthenticator',
+ 'checksums': ['b94b6dff8246250904c5ee511da3f062680eb657dabe766d75993cbe72747d41'],
+ }),
+ ('onetimepass', '1.0.1', {
+ 'checksums': ['a569dac076d6e3761cbc55e36952144a637ca1b075c6d509de1c1dbc5e7f6a27'],
+ }),
+ ('jupyterhub-nativeauthenticator', '1.2.0', {
+ 'modulename': 'nativeauthenticator',
+ 'checksums': ['826228e6e9ca37736361e2e60c5723e245ec72e34fdc42cc218fc54a67f968e1'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/%(namelower)s'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages/%(namelower)s'],
+}
+
+sanity_check_commands = ['%(namelower)s --help']
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/j/JupyterLab/JupyterLab-4.2.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/j/JupyterLab/JupyterLab-4.2.0-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..8410c3f15b8
--- /dev/null
+++ b/easybuild/easyconfigs/j/JupyterLab/JupyterLab-4.2.0-GCCcore-13.2.0.eb
@@ -0,0 +1,78 @@
+easyblock = 'PythonBundle'
+
+name = 'JupyterLab'
+version = '4.2.0'
+
+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.2.0'}
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('hatch-jupyter-builder', '0.9.1'),
+]
+dependencies = [
+ ('Python', '3.11.5'),
+ ('IPython', '8.17.2'),
+ ('jupyter-server', '2.14.0'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('json5', '0.9.25', {
+ 'checksums': ['548e41b9be043f9426776f05df8635a00fe06104ea51ed24b67f908856e151ae'],
+ }),
+ ('jupyterlab_server', '2.27.1', {
+ 'checksums': ['097b5ac709b676c7284ac9c5e373f11930a561f52cd5a86e4fc7e5a9c8a8631d'],
+ }),
+ ('jupyter-lsp', '2.2.5', {
+ 'checksums': ['793147a05ad446f809fd53ef1cd19a9f5256fd0a2d6b7ce943a982cb4f545001'],
+ }),
+ ('async-lru', '2.0.4', {
+ 'checksums': ['b8a59a5df60805ff63220b2a0c5b5393da5521b113cd5465a44eb037d81a5627'],
+ }),
+ ('h11', '0.14.0', {
+ 'checksums': ['8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d'],
+ }),
+ ('httpcore', '1.0.5', {
+ 'checksums': ['34a38e2f9291467ee3b44e89dd52615370e152954ba21721378a87b2960f7a61'],
+ }),
+ ('httpx', '0.27.0', {
+ 'checksums': ['a0cb88a46f32dc874e04ee956e4c2764aba2aa228f650b06788ba6bda2962ab5'],
+ }),
+ ('jupyterlab', version, {
+ 'checksums': ['356e9205a6a2ab689c47c8fe4919dba6c076e376d03f26baadc05748c2435dd5'],
+ }),
+]
+
+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/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/JupyterNotebook/JupyterNotebook-7.2.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/j/JupyterNotebook/JupyterNotebook-7.2.0-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..a391a9329e2
--- /dev/null
+++ b/easybuild/easyconfigs/j/JupyterNotebook/JupyterNotebook-7.2.0-GCCcore-13.2.0.eb
@@ -0,0 +1,42 @@
+easyblock = 'PythonPackage'
+
+name = 'JupyterNotebook'
+version = '7.2.0'
+
+homepage = 'https://jupyter.org/'
+description = """The Jupyter Notebook is the original web application for creating and
+ sharing computational documents. It offers a simple, streamlined, document-centric experience."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+source_urls = ['https://pypi.python.org/packages/source/n/notebook']
+sources = ['notebook-%(version)s.tar.gz']
+checksums = ['34a2ba4b08ad5d19ec930db7484fb79746a1784be9e1a5f8218f9af8656a141f']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('hatch-jupyter-builder', '0.9.1'),
+]
+dependencies = [
+ ('Python', '3.11.5'),
+ ('IPython', '8.17.2'),
+ ('jupyter-server', '2.14.0'),
+ ('JupyterLab', '4.2.0'),
+]
+
+download_dep_fail = True
+sanity_pip_check = True
+use_pip = True
+
+options = {'modulename': 'notebook'}
+
+sanity_check_paths = {
+ 'files': ['bin/jupyter-notebook'],
+ 'dirs': ['etc/jupyter', 'share/jupyter'],
+}
+
+sanity_check_commands = ['jupyter notebook --help']
+
+modextrapaths = {'EB_ENV_JUPYTER_ROOT': ''}
+
+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
new file mode 100644
index 00000000000..75355c6c842
--- /dev/null
+++ b/easybuild/easyconfigs/j/jax/jax-0.4.25-gfbf-2023a-CUDA-12.1.1.eb
@@ -0,0 +1,135 @@
+# 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'
+
+name = 'jax'
+version = '0.4.25'
+versionsuffix = '-CUDA-%(cudaver)s'
+
+homepage = 'https://jax.readthedocs.io/'
+description = """Composable transformations of Python+NumPy programs:
+differentiate, vectorize, JIT to GPU/TPU, and more"""
+
+toolchain = {'name': 'gfbf', 'version': '2023a'}
+cuda_compute_capabilities = ["5.0", "6.0", "6.1", "7.0", "7.5", "8.0", "8.6", "9.0"]
+
+builddependencies = [
+ ('Bazel', '6.3.1'),
+ ('pytest-xdist', '3.3.1'),
+ ('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'),
+]
+
+dependencies = [
+ ('CUDA', '12.1.1', '', SYSTEM),
+ ('cuDNN', '8.9.2.26', versionsuffix, SYSTEM),
+ ('NCCL', '2.18.3', versionsuffix),
+ ('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
+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'
+
+# 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 = [
+ 'tests/host_callback_test.py::HostCallbackTapTest::test_tap_scan_custom_jvp',
+ 'tests/host_callback_test.py::HostCallbackTapTest::test_tap_transforms_doc',
+ 'tests/lax_scipy_special_functions_test.py::LaxScipySpcialFunctionsTest' +
+ '::testScipySpecialFun_gammainc_s_2x1x4_float32_float32',
+]
+# deliberately not testing in parallel, as that results in (additional) failing tests;
+# use XLA_PYTHON_CLIENT_ALLOCATOR=platform to allocate and deallocate GPU memory during testing,
+# see https://github.com/google/jax/issues/7323 and
+# https://github.com/google/jax/blob/main/docs/gpu_memory_allocation.rst;
+# use CUDA_VISIBLE_DEVICES=0 to avoid failing tests on systems with multiple GPUs;
+# use NVIDIA_TF32_OVERRIDE=0 to avoid loosing numerical precision by disabling TF32 Tensor Cores;
+local_test_exports = [
+ "NVIDIA_TF32_OVERRIDE=0",
+ "CUDA_VISIBLE_DEVICES=0",
+ "XLA_PYTHON_CLIENT_ALLOCATOR=platform",
+ "JAX_ENABLE_X64=true",
+]
+local_test = ''.join(['export %s;' % x for x in local_test_exports])
+# run all tests at once except for local_isolated_tests:
+local_test += "pytest -vv tests %s && " % ' '.join(['--deselect %s' % x for x in local_isolated_tests])
+# run remaining local_isolated_tests separately:
+local_test += ' && '.join(['pytest -vv %s' % x for x in local_isolated_tests])
+
+use_pip = True
+
+exts_list = [
+ (name, version, {
+ '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 = 'ai'
diff --git a/easybuild/easyconfigs/j/jax/jax-0.4.25-gfbf-2023a.eb b/easybuild/easyconfigs/j/jax/jax-0.4.25-gfbf-2023a.eb
new file mode 100644
index 00000000000..a4a86382ad6
--- /dev/null
+++ b/easybuild/easyconfigs/j/jax/jax-0.4.25-gfbf-2023a.eb
@@ -0,0 +1,109 @@
+# 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'
+
+name = 'jax'
+version = '0.4.25'
+
+homepage = 'https://jax.readthedocs.io/'
+description = """Composable transformations of Python+NumPy programs:
+differentiate, vectorize, JIT to GPU/TPU, and more"""
+
+toolchain = {'name': 'gfbf', 'version': '2023a'}
+
+builddependencies = [
+ ('Bazel', '6.3.1'),
+ ('pytest-xdist', '3.3.1'),
+ ('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'),
+]
+
+dependencies = [
+ ('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
+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'
+
+# 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
+ }),
+]
+
+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'],
+ '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 = 'ai'
diff --git a/easybuild/easyconfigs/j/jax/jax-0.4.25_fix-pybind11-systemlib.patch b/easybuild/easyconfigs/j/jax/jax-0.4.25_fix-pybind11-systemlib.patch
new file mode 100644
index 00000000000..c404ee6917f
--- /dev/null
+++ b/easybuild/easyconfigs/j/jax/jax-0.4.25_fix-pybind11-systemlib.patch
@@ -0,0 +1,38 @@
+Add missing value for System Pybind11 Bazel config
+
+Author: Alexander Grund (TU Dresden)
+
+diff --git a/third_party/xla/fix-pybind11-systemlib.patch b/third_party/xla/fix-pybind11-systemlib.patch
+new file mode 100644
+index 000000000..68bd2063d
+--- /dev/null
++++ b/third_party/xla/fix-pybind11-systemlib.patch
+@@ -0,0 +1,13 @@
++--- xla-orig/third_party/tsl/third_party/systemlibs/pybind11.BUILD
+++++ xla-4ccfe33c71665ddcbca5b127fefe8baa3ed632d4/third_party/tsl/third_party/systemlibs/pybind11.BUILD
++@@ -6,3 +6,10 @@
++ "@tsl//third_party/python_runtime:headers",
++ ],
++ )
+++
+++# Needed by pybind11_bazel.
+++config_setting(
+++ name = "osx",
+++ constraint_values = ["@platforms//os:osx"],
+++)
+++
+diff --git a/third_party/xla/workspace.bzl b/third_party/xla/workspace.bzl
+index ebc8d9838..125e1c173 100644
+--- a/third_party/xla/workspace.bzl
++++ b/third_party/xla/workspace.bzl
+@@ -29,6 +29,9 @@ def repo():
+ sha256 = XLA_SHA256,
+ strip_prefix = "xla-{commit}".format(commit = XLA_COMMIT),
+ urls = tf_mirror_urls("https://github.com/openxla/xla/archive/{commit}.tar.gz".format(commit = XLA_COMMIT)),
++ patch_file = [
++ "//third_party/xla:fix-pybind11-systemlib.patch",
++ ],
+ )
+
+ # For development, one often wants to make changes to the TF repository as well
+
diff --git a/easybuild/easyconfigs/j/jax/jax-0.4.25_fix_env_test_no_log_spam.patch b/easybuild/easyconfigs/j/jax/jax-0.4.25_fix_env_test_no_log_spam.patch
new file mode 100644
index 00000000000..ad919608437
--- /dev/null
+++ b/easybuild/easyconfigs/j/jax/jax-0.4.25_fix_env_test_no_log_spam.patch
@@ -0,0 +1,18 @@
+# Thomas Hoffmann, EMBL Heidelberg, structures-it@embl.de, 2024/03
+# avoid overriding LD_LIBRARY_PATH, which would lead to test error: error while loading shared libraries: libpython3.11.so.1.0: cannot open shared object file: No such file or directory'
+diff -ru jax-jax-v0.4.25/tests/logging_test.py jax-jax-v0.4.25_fix_env_test_no_log_spam/tests/logging_test.py
+--- jax-jax-v0.4.25/tests/logging_test.py 2024-02-24 19:25:17.000000000 +0100
++++ jax-jax-v0.4.25_fix_env_test_no_log_spam/tests/logging_test.py 2024-03-15 12:00:34.133022613 +0100
+@@ -72,8 +72,11 @@
+ python = sys.executable
+ assert "python" in python
+ # Make sure C++ logging is at default level for the test process.
++ import os
++ tmp_env=os.environ.copy()
++ tmp_env['TF_CPP_MIN_LOG_LEVEL']='1'
+ proc = subprocess.run([python, "-c", program], capture_output=True,
+- env={"TF_CPP_MIN_LOG_LEVEL": "1"})
++ env=tmp_env)
+
+ lines = proc.stdout.split(b"\n")
+ lines.extend(proc.stderr.split(b"\n"))
diff --git a/easybuild/easyconfigs/j/jbigkit/jbigkit-2.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/j/jbigkit/jbigkit-2.1-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..ae9f9537e31
--- /dev/null
+++ b/easybuild/easyconfigs/j/jbigkit/jbigkit-2.1-GCCcore-13.3.0.eb
@@ -0,0 +1,45 @@
+easyblock = 'MakeCp'
+
+name = 'jbigkit'
+version = '2.1'
+
+homepage = 'https://www.cl.cam.ac.uk/~mgk25/jbigkit/'
+description = """JBIG-KIT is a software implementation of the JBIG1 data
+ compression standard (ITU-T T.82), which was designed for bi-level image
+ data, such as scanned documents."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://www.cl.cam.ac.uk/~mgk25/jbigkit/download']
+sources = [SOURCE_TAR_GZ]
+patches = [
+ '%(name)s-%(version)s_libpath.patch',
+ '%(name)s-%(version)s_shlib.patch',
+]
+checksums = [
+ {'jbigkit-2.1.tar.gz': 'de7106b6bfaf495d6865c7dd7ac6ca1381bd12e0d81405ea81e7f2167263d932'},
+ {'jbigkit-2.1_libpath.patch': '97c88956090097b484fcdb90e12eab82212e67ddc862f035d7c6446a696786ce'},
+ {'jbigkit-2.1_shlib.patch': '54ae429e8ec949eceee0f902b676f572f1cdfbff46f77c7222acdeafb643a696'},
+]
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('pkgconf', '2.2.0'),
+]
+
+files_to_copy = [
+ (['libjbig/libjbig%s.%s' % (x, y) for x in ['85', ''] for y in ['a', SHLIB_EXT, SHLIB_EXT + '.0']], 'lib'),
+ (['libjbig/jbig85.h', 'libjbig/jbig.h', 'libjbig/jbig_ar.h'], 'include'),
+ (['pbmtools/pbmtojbg', 'pbmtools/jbgtopbm'], 'bin'),
+]
+
+sanity_check_paths = {
+ 'files': ['lib/libjbig85.a', 'lib/libjbig.a',
+ 'bin/pbmtojbg', 'bin/jbgtopbm',
+ 'include/jbig.h', 'include/jbig_ar.h',
+ ],
+ 'dirs': ['bin', 'include', 'lib']
+}
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/j/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-12.3.0.eb b/easybuild/easyconfigs/j/jemalloc/jemalloc-5.3.0-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..356d56465fa
--- /dev/null
+++ b/easybuild/easyconfigs/j/jemalloc/jemalloc-5.3.0-GCCcore-12.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': '12.3.0'}
+
+source_urls = ['https://github.com/jemalloc/jemalloc/archive']
+sources = ['%(version)s.tar.gz']
+checksums = ['ef6f74fd45e95ee4ef7f9e19ebe5b075ca6b7fbe0140612b2a161abafb7ee179']
+
+builddependencies = [
+ ('Autotools', '20220317'),
+ ('binutils', '2.40'),
+]
+
+# 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/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/jiter/jiter-0.4.1-GCCcore-12.3.0.eb b/easybuild/easyconfigs/j/jiter/jiter-0.4.1-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..8ff0092960e
--- /dev/null
+++ b/easybuild/easyconfigs/j/jiter/jiter-0.4.1-GCCcore-12.3.0.eb
@@ -0,0 +1,191 @@
+easyblock = 'CargoPythonBundle'
+
+name = 'jiter'
+version = '0.4.1'
+
+homepage = 'https://github.com/pydantic/jiter/tree/main'
+description = "Fast iterable JSON parser"
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+crates = [
+ ('ahash', '0.8.11'),
+ ('autocfg', '1.3.0'),
+ ('bencher', '0.1.5'),
+ ('bitflags', '2.5.0'),
+ ('bitvec', '1.0.1'),
+ ('cfg-if', '1.0.0'),
+ ('codspeed', '2.6.0'),
+ ('codspeed-bencher-compat', '2.6.0'),
+ ('colored', '2.1.0'),
+ ('equivalent', '1.0.1'),
+ ('funty', '2.0.0'),
+ ('getrandom', '0.2.15'),
+ ('hashbrown', '0.14.5'),
+ ('heck', '0.4.1'),
+ ('indexmap', '2.2.6'),
+ ('indoc', '2.0.5'),
+ ('itoa', '1.0.11'),
+ ('lazy_static', '1.4.0'),
+ ('lexical-parse-float', '0.8.5'),
+ ('lexical-parse-integer', '0.8.6'),
+ ('lexical-util', '0.8.5'),
+ ('libc', '0.2.155'),
+ ('lock_api', '0.4.12'),
+ ('memoffset', '0.9.1'),
+ ('num-bigint', '0.4.5'),
+ ('num-integer', '0.1.46'),
+ ('num-traits', '0.2.19'),
+ ('once_cell', '1.19.0'),
+ ('parking_lot', '0.12.3'),
+ ('parking_lot_core', '0.9.10'),
+ ('paste', '1.0.15'),
+ ('portable-atomic', '1.6.0'),
+ ('proc-macro2', '1.0.84'),
+ ('pyo3', '0.21.2'),
+ ('pyo3-build-config', '0.21.2'),
+ ('pyo3-ffi', '0.21.2'),
+ ('pyo3-macros', '0.21.2'),
+ ('pyo3-macros-backend', '0.21.2'),
+ ('quote', '1.0.36'),
+ ('radium', '0.7.0'),
+ ('redox_syscall', '0.5.1'),
+ ('ryu', '1.0.18'),
+ ('scopeguard', '1.2.0'),
+ ('serde', '1.0.203'),
+ ('serde_derive', '1.0.203'),
+ ('serde_json', '1.0.117'),
+ ('smallvec', '1.13.2'),
+ ('static_assertions', '1.1.0'),
+ ('syn', '2.0.66'),
+ ('tap', '1.0.1'),
+ ('target-lexicon', '0.12.14'),
+ ('unicode-ident', '1.0.12'),
+ ('unindent', '0.2.3'),
+ ('version_check', '0.9.4'),
+ ('wasi', '0.11.0+wasi-snapshot-preview1'),
+ ('windows-sys', '0.48.0'),
+ ('windows-targets', '0.48.5'),
+ ('windows-targets', '0.52.5'),
+ ('windows_aarch64_gnullvm', '0.48.5'),
+ ('windows_aarch64_gnullvm', '0.52.5'),
+ ('windows_aarch64_msvc', '0.48.5'),
+ ('windows_aarch64_msvc', '0.52.5'),
+ ('windows_i686_gnu', '0.48.5'),
+ ('windows_i686_gnu', '0.52.5'),
+ ('windows_i686_gnullvm', '0.52.5'),
+ ('windows_i686_msvc', '0.48.5'),
+ ('windows_i686_msvc', '0.52.5'),
+ ('windows_x86_64_gnu', '0.48.5'),
+ ('windows_x86_64_gnu', '0.52.5'),
+ ('windows_x86_64_gnullvm', '0.48.5'),
+ ('windows_x86_64_gnullvm', '0.52.5'),
+ ('windows_x86_64_msvc', '0.48.5'),
+ ('windows_x86_64_msvc', '0.52.5'),
+ ('wyz', '0.5.1'),
+ ('zerocopy', '0.7.34'),
+ ('zerocopy-derive', '0.7.34'),
+]
+
+sources = [SOURCE_TAR_GZ]
+checksums = [
+ {'jiter-0.4.1.tar.gz': '741851cf5f37cf3583f2a56829d734c9fd17334770c9a326e6d25291603d4278'},
+ {'ahash-0.8.11.tar.gz': 'e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011'},
+ {'autocfg-1.3.0.tar.gz': '0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0'},
+ {'bencher-0.1.5.tar.gz': '7dfdb4953a096c551ce9ace855a604d702e6e62d77fac690575ae347571717f5'},
+ {'bitflags-2.5.0.tar.gz': 'cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1'},
+ {'bitvec-1.0.1.tar.gz': '1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c'},
+ {'cfg-if-1.0.0.tar.gz': 'baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd'},
+ {'codspeed-2.6.0.tar.gz': '3a104ac948e0188b921eb3fcbdd55dcf62e542df4c7ab7e660623f6288302089'},
+ {'codspeed-bencher-compat-2.6.0.tar.gz': 'ceaba84ea2634603a0f199c07fa39ff4dda61f89a3f9149fb89b035bc317b671'},
+ {'colored-2.1.0.tar.gz': 'cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8'},
+ {'equivalent-1.0.1.tar.gz': '5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5'},
+ {'funty-2.0.0.tar.gz': 'e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c'},
+ {'getrandom-0.2.15.tar.gz': 'c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7'},
+ {'hashbrown-0.14.5.tar.gz': 'e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1'},
+ {'heck-0.4.1.tar.gz': '95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8'},
+ {'indexmap-2.2.6.tar.gz': '168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26'},
+ {'indoc-2.0.5.tar.gz': 'b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5'},
+ {'itoa-1.0.11.tar.gz': '49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b'},
+ {'lazy_static-1.4.0.tar.gz': 'e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646'},
+ {'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'},
+ {'libc-0.2.155.tar.gz': '97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c'},
+ {'lock_api-0.4.12.tar.gz': '07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17'},
+ {'memoffset-0.9.1.tar.gz': '488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a'},
+ {'num-bigint-0.4.5.tar.gz': 'c165a9ab64cf766f73521c0dd2cfdff64f488b8f0b3e621face3462d3db536d7'},
+ {'num-integer-0.1.46.tar.gz': '7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f'},
+ {'num-traits-0.2.19.tar.gz': '071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841'},
+ {'once_cell-1.19.0.tar.gz': '3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92'},
+ {'parking_lot-0.12.3.tar.gz': 'f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27'},
+ {'parking_lot_core-0.9.10.tar.gz': '1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8'},
+ {'paste-1.0.15.tar.gz': '57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a'},
+ {'portable-atomic-1.6.0.tar.gz': '7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0'},
+ {'proc-macro2-1.0.84.tar.gz': 'ec96c6a92621310b51366f1e28d05ef11489516e93be030060e5fc12024a49d6'},
+ {'pyo3-0.21.2.tar.gz': 'a5e00b96a521718e08e03b1a622f01c8a8deb50719335de3f60b3b3950f069d8'},
+ {'pyo3-build-config-0.21.2.tar.gz': '7883df5835fafdad87c0d888b266c8ec0f4c9ca48a5bed6bbb592e8dedee1b50'},
+ {'pyo3-ffi-0.21.2.tar.gz': '01be5843dc60b916ab4dad1dca6d20b9b4e6ddc8e15f50c47fe6d85f1fb97403'},
+ {'pyo3-macros-0.21.2.tar.gz': '77b34069fc0682e11b31dbd10321cbf94808394c56fd996796ce45217dfac53c'},
+ {'pyo3-macros-backend-0.21.2.tar.gz': '08260721f32db5e1a5beae69a55553f56b99bd0e1c3e6e0a5e8851a9d0f5a85c'},
+ {'quote-1.0.36.tar.gz': '0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7'},
+ {'radium-0.7.0.tar.gz': 'dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09'},
+ {'redox_syscall-0.5.1.tar.gz': '469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e'},
+ {'ryu-1.0.18.tar.gz': 'f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f'},
+ {'scopeguard-1.2.0.tar.gz': '94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49'},
+ {'serde-1.0.203.tar.gz': '7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094'},
+ {'serde_derive-1.0.203.tar.gz': '500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba'},
+ {'serde_json-1.0.117.tar.gz': '455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3'},
+ {'smallvec-1.13.2.tar.gz': '3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67'},
+ {'static_assertions-1.1.0.tar.gz': 'a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f'},
+ {'syn-2.0.66.tar.gz': 'c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5'},
+ {'tap-1.0.1.tar.gz': '55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369'},
+ {'target-lexicon-0.12.14.tar.gz': 'e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f'},
+ {'unicode-ident-1.0.12.tar.gz': '3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b'},
+ {'unindent-0.2.3.tar.gz': 'c7de7d73e1754487cb58364ee906a499937a0dfabd86bcb980fa99ec8c8fa2ce'},
+ {'version_check-0.9.4.tar.gz': '49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f'},
+ {'wasi-0.11.0+wasi-snapshot-preview1.tar.gz': '9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423'},
+ {'windows-sys-0.48.0.tar.gz': '677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9'},
+ {'windows-targets-0.48.5.tar.gz': '9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c'},
+ {'windows-targets-0.52.5.tar.gz': '6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb'},
+ {'windows_aarch64_gnullvm-0.48.5.tar.gz': '2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8'},
+ {'windows_aarch64_gnullvm-0.52.5.tar.gz': '7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263'},
+ {'windows_aarch64_msvc-0.48.5.tar.gz': 'dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc'},
+ {'windows_aarch64_msvc-0.52.5.tar.gz': '9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6'},
+ {'windows_i686_gnu-0.48.5.tar.gz': 'a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e'},
+ {'windows_i686_gnu-0.52.5.tar.gz': '88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670'},
+ {'windows_i686_gnullvm-0.52.5.tar.gz': '87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9'},
+ {'windows_i686_msvc-0.48.5.tar.gz': '8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406'},
+ {'windows_i686_msvc-0.52.5.tar.gz': 'db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf'},
+ {'windows_x86_64_gnu-0.48.5.tar.gz': '53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e'},
+ {'windows_x86_64_gnu-0.52.5.tar.gz': '4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9'},
+ {'windows_x86_64_gnullvm-0.48.5.tar.gz': '0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc'},
+ {'windows_x86_64_gnullvm-0.52.5.tar.gz': '852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596'},
+ {'windows_x86_64_msvc-0.48.5.tar.gz': 'ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538'},
+ {'windows_x86_64_msvc-0.52.5.tar.gz': 'bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0'},
+ {'wyz-0.5.1.tar.gz': '05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed'},
+ {'zerocopy-0.7.34.tar.gz': 'ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087'},
+ {'zerocopy-derive-0.7.34.tar.gz': '15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b'},
+]
+
+_rust_ver = '1.75.0'
+builddependencies = [
+ ('binutils', '2.40'),
+ ('Rust', _rust_ver),
+ ('maturin', '1.4.0', '-Rust-%s' % _rust_ver),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ (name, version, {
+ 'checksums': ['741851cf5f37cf3583f2a56829d734c9fd17334770c9a326e6d25291603d4278'],
+ }),
+]
+
+moduleclass = 'tools'
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-8.5.2-GCC-13.2.0.eb b/easybuild/easyconfigs/j/json-fortran/json-fortran-8.5.2-GCC-13.2.0.eb
new file mode 100644
index 00000000000..da205b23c09
--- /dev/null
+++ b/easybuild/easyconfigs/j/json-fortran/json-fortran-8.5.2-GCC-13.2.0.eb
@@ -0,0 +1,32 @@
+# J. Sassmannshausen (Imperial College London/UK)
+
+easyblock = 'CMakeMake'
+
+name = 'json-fortran'
+version = '8.5.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 = ['ba7243ab28d4d06c5d0baef27dab0041cee0f050dea9ec3a854a03f4e3e9667a']
+
+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/json-fortran/json-fortran-8.5.2-intel-compilers-2023.2.1.eb b/easybuild/easyconfigs/j/json-fortran/json-fortran-8.5.2-intel-compilers-2023.2.1.eb
new file mode 100644
index 00000000000..50d89ee34e2
--- /dev/null
+++ b/easybuild/easyconfigs/j/json-fortran/json-fortran-8.5.2-intel-compilers-2023.2.1.eb
@@ -0,0 +1,32 @@
+# J. Sassmannshausen (Imperial College London/UK)
+
+easyblock = 'CMakeMake'
+
+name = 'json-fortran'
+version = '8.5.2'
+
+homepage = 'https://github.com/jacobwilliams/json-fortran'
+description = "JSON-Fortran: A Modern Fortran JSON API"
+
+toolchain = {'name': 'intel-compilers', 'version': '2023.2.1'}
+
+source_urls = ['https://github.com/jacobwilliams/json-fortran/archive/']
+sources = ['%(version)s.tar.gz']
+checksums = ['ba7243ab28d4d06c5d0baef27dab0041cee0f050dea9ec3a854a03f4e3e9667a']
+
+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/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-collaboration/jupyter-collaboration-2.1.1-GCCcore-13.2.0.eb b/easybuild/easyconfigs/j/jupyter-collaboration/jupyter-collaboration-2.1.1-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..1755481085e
--- /dev/null
+++ b/easybuild/easyconfigs/j/jupyter-collaboration/jupyter-collaboration-2.1.1-GCCcore-13.2.0.eb
@@ -0,0 +1,55 @@
+easyblock = 'PythonBundle'
+
+name = 'jupyter-collaboration'
+version = "2.1.1"
+
+homepage = 'https://github.com/jupyterlab/jupyter-collaboration'
+description = """JupyterLab Real-Time Collaboration is a Jupyter Server Extension and JupyterLab
+extensions providing support for Y documents and adding collaboration UI
+elements in JupyterLab."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('hatch-jupyter-builder', '0.9.1'),
+ ('maturin', '1.3.1'),
+]
+dependencies = [
+ ('Python', '3.11.5'),
+ ('JupyterLab', '4.2.0'),
+]
+
+sanity_pip_check = True
+use_pip = True
+
+exts_list = [
+ ('sqlite_anyio', '0.2.0', {
+ 'checksums': ['9ecbcddf105e5862f7975a9827b684a19a987aad46f10699eadb22ea33bbd060'],
+ }),
+ ('pycrdt', '0.8.27', {
+ 'checksums': ['a486a967ab82d92e51211757d888367b9d1882cfd4db6199485a8fd3d2271dce'],
+ }),
+ ('pycrdt_websocket', '0.13.4', {
+ 'checksums': ['dce8259345ac14e08e9cf124cd1d66ea1b9d17ab1af79e63f50a611fb676421c'],
+ }),
+ ('jupyter_ydoc', '2.0.1', {
+ 'checksums': ['716dda8cb8af881fec2fbc88aea3fb0d3bb24bbeb80a99a8aff2e01d089d5b0d'],
+ }),
+ ('jupyter_server_fileid', '0.9.2', {
+ 'checksums': ['ffb11460ca5f8567644f6120b25613fca8e3f3048b38d14c6e3fe1902f314a9b'],
+ }),
+ ('jupyter_collaboration', version, {
+ 'checksums': ['4f50c25c6d81126c16deaf92d2bd78a39b2fcb86690dce696b4006b740d71c1f'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/jupyter-fileid'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages/', 'etc/jupyter', 'share/jupyter'],
+}
+
+# Add the notebook extension to the search path for jupyter notebooks
+modextrapaths = {'EB_ENV_JUPYTER_ROOT': ''}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/j/jupyter-contrib-nbextensions/jupyter-contrib-nbextensions-0.7.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/j/jupyter-contrib-nbextensions/jupyter-contrib-nbextensions-0.7.0-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..1e0ea2bdea5
--- /dev/null
+++ b/easybuild/easyconfigs/j/jupyter-contrib-nbextensions/jupyter-contrib-nbextensions-0.7.0-GCCcore-12.3.0.eb
@@ -0,0 +1,62 @@
+easyblock = "PythonBundle"
+
+name = 'jupyter-contrib-nbextensions'
+version = '0.7.0'
+
+homepage = 'https://github.com/ipython-contrib/jupyter_contrib_nbextensions'
+description = 'A collection of various notebook extensions for Jupyter'
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('nodejs', '18.17.1'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('IPython', '8.14.0'),
+ ('PyYAML', '6.0'),
+ ('jupyter-server', '2.7.2'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('entrypoints', '0.4', {
+ 'checksums': ['b706eddaa9218a19ebcd67b56818f05bb27589b1ca9e8d797b74affad4ccacd4'],
+ }),
+ ('nbclassic', '1.0.0', {
+ 'checksums': ['0ae11eb2319455d805596bf320336cda9554b41d99ab9a3c31bf8180bffa30e3'],
+ }),
+ # need jupyter_client in v7 - notebook 6.5.7 has requirement jupyter-client<8,>=5.3.4
+ ('jupyter_client', '7.4.9', {
+ 'checksums': ['52be28e04171f07aed8f20e1616a5a552ab9fee9cbbe6c1896ae170c3880d392'],
+ }),
+ # use notebook v6, in v7 the extension are moved to jupyter lab
+ ('notebook', '6.5.7', {
+ 'checksums': ['04eb9011dfac634fbd4442adaf0a8c27cd26beef831fe1d19faf930c327768e4'],
+ }),
+ ('jupyter_contrib_core', '0.4.2', {
+ 'checksums': ['1887212f3ca9d4487d624c0705c20dfdf03d5a0b9ea2557d3aaeeb4c38bdcabb'],
+ }),
+ ('jupyter_highlight_selected_word', '0.2.0', {
+ 'checksums': ['9fa740424859a807950ca08d2bfd28a35154cd32dd6d50ac4e0950022adc0e7b'],
+ }),
+ ('jupyter_nbextensions_configurator', '0.6.3', {
+ 'source_tmpl': '%(name)s-%(version)s-py2.py3-none-any.whl',
+ 'checksums': ['cece496f3f62cf80bb0b04867ea463c32ed5db19ff5814fe18a3a7f1bb9da95b'],
+ }),
+ ('jupyter_contrib_nbextensions', version, {
+ 'checksums': ['06e33f005885eb92f89cbe82711e921278201298d08ab0d886d1ba09e8c3e9ca'],
+ }),
+]
+
+sanity_pip_check = True
+
+sanity_check_paths = {
+ 'files': ['bin/jupyter-contrib', 'bin/jupyter-contrib-nbextension', 'bin/jupyter-nbextensions_configurator'],
+ 'dirs': ['lib64/python%(pyshortver)s/site-packages']
+}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/j/jupyter-matlab-proxy/jupyter-matlab-proxy-0.12.2-GCCcore-12.3.0.eb b/easybuild/easyconfigs/j/jupyter-matlab-proxy/jupyter-matlab-proxy-0.12.2-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..095d491ef49
--- /dev/null
+++ b/easybuild/easyconfigs/j/jupyter-matlab-proxy/jupyter-matlab-proxy-0.12.2-GCCcore-12.3.0.eb
@@ -0,0 +1,48 @@
+easyblock = "PythonBundle"
+
+name = 'jupyter-matlab-proxy'
+version = '0.12.2'
+
+homepage = 'https://github.com/mathworks/jupyter-matlab-proxy'
+description = 'MATLAB Integration for Jupyter'
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('nodejs', '18.17.1'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('IPython', '8.14.0'),
+ ('jupyter-server-proxy', '4.0.0'),
+ ('matlab-proxy', '0.18.1'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('jupyter_matlab_proxy', version, {
+ 'sources': ['%(name)s-%(version)s-py3-none-any.whl'],
+ 'checksums': ['2f1fcb8cba3b60ceccfbaa118ce1de0ca54d6c630c6d6ec61c052dca7f62cb6b'],
+ }),
+]
+
+sanity_pip_check = True
+
+sanity_check_paths = {
+ 'files': [],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages', 'share/jupyter'],
+}
+
+sanity_check_commands = [
+ "python -c 'import jupyter_matlab_proxy'",
+ "python -c 'import jupyter_matlab_kernel'",
+]
+
+modextrapaths = {
+ 'JUPYTER_PATH': 'share/jupyter',
+}
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/j/jupyter-resource-usage/jupyter-resource-usage-1.0.2-GCCcore-13.2.0.eb b/easybuild/easyconfigs/j/jupyter-resource-usage/jupyter-resource-usage-1.0.2-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..3062f3f80b5
--- /dev/null
+++ b/easybuild/easyconfigs/j/jupyter-resource-usage/jupyter-resource-usage-1.0.2-GCCcore-13.2.0.eb
@@ -0,0 +1,41 @@
+easyblock = 'PythonBundle'
+
+name = 'jupyter-resource-usage'
+version = "1.0.2"
+
+homepage = 'https://github.com/jupyter-server/jupyter-resource-usage'
+description = "Jupyter Notebook Extension for monitoring your own Resource Usage (memory and/or CPU)"
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('hatch-jupyter-builder', '0.9.1'),
+]
+dependencies = [
+ ('Python', '3.11.5'),
+ ('IPython', '8.17.2'),
+ ('jupyter-server', '2.14.0'),
+]
+
+sanity_pip_check = True
+use_pip = True
+
+exts_list = [
+ ('jupyter_resource_usage', version, {
+ 'checksums': ['20babc5a63fd53724b12e50b9046ca07784fb56004c39d0442990116fb925a4b'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': [],
+ 'dirs': [
+ 'lib/python%(pyshortver)s/site-packages/jupyter_resource_usage',
+ 'share/jupyter'
+ ],
+}
+
+# Add the notebook extension to the search path for jupyter notebooks
+modextrapaths = {'EB_ENV_JUPYTER_ROOT': ''}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/j/jupyter-rsession-proxy/jupyter-rsession-proxy-2.2.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/j/jupyter-rsession-proxy/jupyter-rsession-proxy-2.2.0-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..8a4e803d985
--- /dev/null
+++ b/easybuild/easyconfigs/j/jupyter-rsession-proxy/jupyter-rsession-proxy-2.2.0-GCCcore-12.3.0.eb
@@ -0,0 +1,29 @@
+easyblock = "PythonPackage"
+
+name = 'jupyter-rsession-proxy'
+version = '2.2.0'
+
+homepage = 'https://github.com/jupyterhub/jupyter-rsession-proxy'
+description = "Jupyter extensions for running an RStudio rsession proxy"
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = [PYPI_LOWER_SOURCE]
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['4073f4b4241fe6e976de2c3d49a438b7d82589712e9ee06c19f325a8ec557018']
+
+builddependencies = [
+ ('binutils', '2.40'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('jupyter-server-proxy', '4.0.0'),
+]
+
+download_dep_fail = True
+
+use_pip = True
+sanity_pip_check = True
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/j/jupyter-server-proxy/jupyter-server-proxy-4.1.2-GCCcore-13.2.0.eb b/easybuild/easyconfigs/j/jupyter-server-proxy/jupyter-server-proxy-4.1.2-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..c71b66da33e
--- /dev/null
+++ b/easybuild/easyconfigs/j/jupyter-server-proxy/jupyter-server-proxy-4.1.2-GCCcore-13.2.0.eb
@@ -0,0 +1,43 @@
+easyblock = 'PythonBundle'
+
+name = 'jupyter-server-proxy'
+version = '4.1.2'
+
+homepage = 'https://github.com/jupyterhub/jupyter-server-proxy'
+description = """Jupyter Server Proxy lets you run arbitrary external processes
+(such as RStudio, Shiny Server, Syncthing, PostgreSQL, Code Server, etc)
+alongside your notebook server and provide authenticated web access to them
+using a path like /rstudio next to others like /lab. Alongside the python
+package that provides the main functionality, the JupyterLab extension
+(@jupyterlab/server-proxy) provides buttons in the JupyterLab launcher window
+to get to RStudio for example."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('hatch-jupyter-builder', '0.9.1'),
+]
+dependencies = [
+ ('Python', '3.11.5'),
+ ('IPython', '8.17.2'),
+ ('jupyter-server', '2.14.0'),
+ ('OpenSSL', '1.1', '', SYSTEM),
+ ('aiohttp', '3.9.5'),
+]
+
+sanity_pip_check = True
+use_pip = True
+
+exts_list = [
+ ('simpervisor', '1.0.0', {
+ 'checksums': ['7eb87ca86d5e276976f5bb0290975a05d452c6a7b7f58062daea7d8369c823c1'],
+ }),
+ ('jupyter_server_proxy', version, {
+ 'checksums': ['6fd8ce88a0100e637b48f1d3aa32f09672bcb2813dc057d70567f0a40b1237f5'],
+ }),
+]
+
+modextrapaths = {'EB_ENV_JUPYTER_ROOT': ''}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/j/jupyter-server/jupyter-core-5.7.2_fix_jupyter_path.patch b/easybuild/easyconfigs/j/jupyter-server/jupyter-core-5.7.2_fix_jupyter_path.patch
new file mode 100644
index 00000000000..04788ab7eb6
--- /dev/null
+++ b/easybuild/easyconfigs/j/jupyter-server/jupyter-core-5.7.2_fix_jupyter_path.patch
@@ -0,0 +1,32 @@
+# Patch jupyter_core to help jupyter find the correct installation path.
+#
+# If jupyter is installed by EasyBuild, jupyter is not in the same place as python.
+# `EB_ENV_JUPYTER_ROOT` is used to indicate where jupyter are and should be set to
+# the instllation path in easyconfigs.
+# Avoid using `ENV_JUPYTER_PATH` and `ENV_CONFIG_PATH`. Otherwise user configuration
+# has lower priority and cannot save their own settings.
+# Author: Chia-Jung Hsu, 2024-01-31
+--- a/jupyter_core/paths.py
++++ b/jupyter_core/paths.py
+@@ -228,6 +228,10 @@
+
+ ENV_JUPYTER_PATH: list[str] = [str(Path(sys.prefix, "share", "jupyter"))]
+
++if os.environ.get("EB_ENV_JUPYTER_ROOT"):
++ EB_ENV_JUPYTER_ROOT = [p.rstrip(os.sep) for p in os.environ["EB_ENV_JUPYTER_ROOT"].split(os.pathsep)]
++ ENV_JUPYTER_PATH = [str(Path(p, "share", "jupyter")) for p in EB_ENV_JUPYTER_ROOT]
++
+
+ def jupyter_path(*subdirs: str) -> list[str]:
+ """Return a list of directories to search for data files
+@@ -306,6 +310,10 @@
+ ]
+ ENV_CONFIG_PATH: list[str] = [str(Path(sys.prefix, "etc", "jupyter"))]
+
++if os.environ.get("EB_ENV_JUPYTER_ROOT"):
++ EB_ENV_JUPYTER_ROOT = [p.rstrip(os.sep) for p in os.environ["EB_ENV_JUPYTER_ROOT"].split(os.pathsep)]
++ ENV_CONFIG_PATH = [str(Path(p, "etc", "jupyter")) for p in EB_ENV_JUPYTER_ROOT]
++
+
+ def jupyter_config_path() -> list[str]:
+ """Return the search path for Jupyter config files as a list.
diff --git a/easybuild/easyconfigs/j/jupyter-server/jupyter-server-2.14.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/j/jupyter-server/jupyter-server-2.14.0-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..ee8dfa23154
--- /dev/null
+++ b/easybuild/easyconfigs/j/jupyter-server/jupyter-server-2.14.0-GCCcore-13.2.0.eb
@@ -0,0 +1,185 @@
+easyblock = 'PythonBundle'
+
+name = 'jupyter-server'
+version = "2.14.0"
+
+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.2.0'}
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('maturin', '1.3.1'), # needed by rpds_py
+ ('hatch-jupyter-builder', '0.9.1'),
+]
+dependencies = [
+ ('Python', '3.11.5'),
+ ('IPython', '8.17.2'),
+ ('PyYAML', '6.0.1'),
+ ('PyZMQ', '25.1.2'),
+ ('tornado', '6.4'),
+ ('BeautifulSoup', '4.12.2'), # 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.20.0', {
+ 'checksums': ['287629d00b147a32dcb2be0b9df905da599b2d82f80377083ec8463309a4bb89'],
+ }),
+ ('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.19.1', {
+ 'checksums': ['e3126a94bdc4623d3de4485f8d468a12f02a67921315ddc87836d6e456dc789d'],
+ }),
+ ('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.1', {
+ 'checksums': ['e842515e2bab8e19186d89fdfea7abd15e39dd581f94e399f00e2af5a1652d3f'],
+ }),
+ ('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.18.1', {
+ 'modulename': 'rpds',
+ 'checksums': ['dc48b479d540770c811fbd1eb9ba2bb66951863e448efec2e2c102625328e92f'],
+ }),
+ ('referencing', '0.35.1', {
+ 'checksums': ['25b42124a6c8b632a425174f24087783efb348a6f1e0008e63cd4466fedf703c'],
+ }),
+ ('python-json-logger', '2.0.7', {
+ 'modulename': 'pythonjsonlogger',
+ 'checksums': ['23e7ec02d34237c5aa1e29a070193a4ea87583bb4e7f8fd06d3de8264c4b2e1c'],
+ }),
+ ('jsonschema_specifications', '2023.12.1', {
+ 'checksums': ['48a76787b3e70f5ed53f1160d2b81f586e4ca6d1548c5de7085d1682674764cc'],
+ }),
+ ('jsonschema', '4.22.0', {
+ 'checksums': ['5b22d434a45935119af990552c862e5d6d564e8f6601206b305a61fdf661a2b7'],
+ }),
+ ('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': ['659154cea512083434fd7c93b7fe0897af7a2fd0b9dd4749282b42eaac4ae677'],
+ }),
+ ('jupyterlab_widgets', '3.0.10', {
+ 'checksums': ['04f2ac04976727e4f9d0fa91cdc2f1ab860f965e504c29dbd6a65c882c9d04c0'],
+ }),
+ ('widgetsnbextension', '4.0.10', {
+ 'checksums': ['64196c5ff3b9a9183a8e699a4227fb0b7002f252c814098e66c4d1cd0644688f'],
+ }),
+ ('comm', '0.2.2', {
+ 'checksums': ['3fd7a84065306e07bea1773df6eb8282de51ba82f77c72f9c85716ab11fe980e'],
+ }),
+ ('ipywidgets', '8.1.2', {
+ 'checksums': ['d0b9b41e49bae926a866e613a39b0f0097745d2b9f1f3dd406641b4a57ec42c9'],
+ }),
+ # 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.4', {
+ 'checksums': ['3d44070060f9475ac2092b760123fadf105d2e2493c24848b6691a7c4f42af5c'],
+ }),
+ ('ipython_genutils', '0.2.0', {
+ 'checksums': ['eb2e116e75ecef9d4d228fdc66af54269afa26ab4463042e33785b887c628ba8'],
+ }),
+ ('debugpy', '1.8.1', {
+ 'source_tmpl': '%(name)s-%(version)s-py2.py3-none-any.whl',
+ 'checksums': ['28acbe2241222b87e255260c76741e1fbf04fdc3b6d094fcf57b6c6f75ce1242'],
+ }),
+]
+
+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/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/jupyter-server/jupyter-server-2.7.2-GCCcore-12.3.0.eb b/easybuild/easyconfigs/j/jupyter-server/jupyter-server-2.7.2-GCCcore-12.3.0.eb
index 53722e2f4cb..9da7cc3f037 100644
--- a/easybuild/easyconfigs/j/jupyter-server/jupyter-server-2.7.2-GCCcore-12.3.0.eb
+++ b/easybuild/easyconfigs/j/jupyter-server/jupyter-server-2.7.2-GCCcore-12.3.0.eb
@@ -16,7 +16,9 @@ builddependencies = [
]
dependencies = [
('Python', '3.11.3'),
+ ('hatchling', '1.18.0'), # needed as dependency for hatch_jupyter_builder
('IPython', '8.14.0'),
+ ('BeautifulSoup', '4.12.2'), # needed by nbconvert
('PyYAML', '6.0'),
('PyZMQ', '25.1.1'),
('tornado', '6.3.2'),
diff --git a/easybuild/easyconfigs/j/jupyter-vscode-proxy/jupyter-vscode-proxy-0.6-GCCcore-12.3.0.eb b/easybuild/easyconfigs/j/jupyter-vscode-proxy/jupyter-vscode-proxy-0.6-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..1f8a364ba25
--- /dev/null
+++ b/easybuild/easyconfigs/j/jupyter-vscode-proxy/jupyter-vscode-proxy-0.6-GCCcore-12.3.0.eb
@@ -0,0 +1,32 @@
+easyblock = "PythonBundle"
+
+name = 'jupyter-vscode-proxy'
+version = '0.6'
+
+homepage = 'https://github.com/betatim/vscode-binder'
+description = "VS Code extension for Jupyter"
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+builddependencies = [
+ ('binutils', '2.40'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('jupyter-server-proxy', '4.0.0'),
+ ('code-server', '4.90.2', '', SYSTEM),
+]
+
+use_pip = True
+
+exts_list = [
+ ('jupyter_vscode_proxy', version, {
+ 'sources': ['%(name)s-%(version)s-py3-none-any.whl'],
+ 'checksums': ['c72037d1234f0cd489ecb0ab40ec8b150fc9cd7006b4d9c7036200e76689da78'],
+ }),
+]
+
+sanity_pip_check = True
+
+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/j/jxrlib/jxrlib-1.1-GCCcore-12.3.0.eb b/easybuild/easyconfigs/j/jxrlib/jxrlib-1.1-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..f8aeb2b413a
--- /dev/null
+++ b/easybuild/easyconfigs/j/jxrlib/jxrlib-1.1-GCCcore-12.3.0.eb
@@ -0,0 +1,39 @@
+##
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+# Author:: Denis Kristak (INUITS)
+# Update: Thomas Hoffmann (EMBL)
+##
+
+easyblock = 'CMakeMake'
+
+name = 'jxrlib'
+version = '1.1'
+
+homepage = 'https://github.com/4creators/jxrlib'
+description = """Open source implementation of jpegxr"""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = ['https://deb.debian.org/debian/pool/main/j/jxrlib/']
+sources = ['%(name)s_%(version)s.orig.tar.gz']
+patches = [('jxrlib-%(version)s_cmake.patch', 1)]
+checksums = [
+ {'jxrlib_1.1.orig.tar.gz': 'c7287b86780befa0914f2eeb8be2ac83e672ebd4bd16dc5574a36a59d9708303'},
+ {'jxrlib-1.1_cmake.patch': 'e96ea8b418fdab10e9cbc2f4cad95ca1f59a826ce7379c6a3192882050689a74'},
+]
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('CMake', '3.26.3'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/JxrDecApp', 'bin/JxrEncApp', "lib/libjpegxr.%s" % SHLIB_EXT],
+ 'dirs': [],
+}
+
+sanity_check_commands = ['JxrDecApp', 'JxrEncApp']
+
+modextrapaths = {'CPATH': 'include/jxrlib'}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/k/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/Kent_tools/Kent_tools-461-GCC-12.2.0.eb b/easybuild/easyconfigs/k/Kent_tools/Kent_tools-461-GCC-12.2.0.eb
new file mode 100644
index 00000000000..9679801e25f
--- /dev/null
+++ b/easybuild/easyconfigs/k/Kent_tools/Kent_tools-461-GCC-12.2.0.eb
@@ -0,0 +1,44 @@
+easyblock = 'MakeCp'
+
+name = 'Kent_tools'
+version = '461'
+
+homepage = 'https://genome.cse.ucsc.edu/'
+description = """Kent utilities: collection of tools used by the UCSC genome browser."""
+
+toolchain = {'name': 'GCC', 'version': '12.2.0'}
+source_urls = [
+ 'https://hgdownload.cse.ucsc.edu/admin/exe/',
+ 'https://hgdownload.cse.ucsc.edu/admin/exe/userApps.archive/',
+]
+sources = ['userApps.v%(version)s.src.tgz']
+checksums = [
+ {'userApps.v461.src.tgz': 'ff350f030906bea2cdfa5c57d713568123e17c1a5c0ce578d2d9633ca1b742bc'},
+]
+
+dependencies = [
+ ('MariaDB', '10.11.2'),
+ ('libpng', '1.6.38'),
+ ('zlib', '1.2.12'),
+ ('util-linux', '2.38.1'),
+ ('OpenSSL', '1.1', '', SYSTEM),
+ ('freetype', '2.12.1'),
+]
+
+prebuildopts = 'sed -i "s/rsync -a /cp -a /" %(builddir)s/userApps/kent/src/parasol/makefile && '
+
+buildopts = 'CC="$CC" COPT="$CFLAGS -fcommon" PNGLIB="-L$EBROOTLIBPNG/lib -lpng" ZLIB="-L$EBROOTZLIB/lib -lz" '
+buildopts += 'SSL_DIR="$EBROOTOPENSSL" SSLDIR="$EBROOTOPENSSL" MYSQLLIBS="-L$EBROOTMARIADB/lib -lmariadb -lstdc++" '
+
+local_binaries = ['blat', 'bedPartition', 'getRna', 'liftOver', 'mafGene', 'splitFile', 'twoBitToFa']
+
+files_to_copy = [(['bin/*'], 'bin'), 'licenseBlat.txt', 'licenseUcscGenomeBrowser.txt']
+
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in local_binaries],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["%s 2>&1 | grep '^usage:'" % x for x in local_binaries]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/k/Kent_tools/Kent_tools-468-GCC-12.3.0.eb b/easybuild/easyconfigs/k/Kent_tools/Kent_tools-468-GCC-12.3.0.eb
new file mode 100644
index 00000000000..e4fd527e908
--- /dev/null
+++ b/easybuild/easyconfigs/k/Kent_tools/Kent_tools-468-GCC-12.3.0.eb
@@ -0,0 +1,42 @@
+easyblock = 'MakeCp'
+
+name = 'Kent_tools'
+version = '468'
+
+homepage = 'https://genome.cse.ucsc.edu/'
+description = """Kent utilities: collection of tools used by the UCSC genome browser."""
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+source_urls = [
+ 'https://hgdownload.cse.ucsc.edu/admin/exe/',
+ 'https://hgdownload.cse.ucsc.edu/admin/exe/userApps.archive/',
+]
+sources = ['userApps.v%(version)s.src.tgz']
+checksums = ['f57b49be7e4eeb0719ac9414ca8878f93916fc3eb8dd408c8f7e076a999d1ca8']
+
+dependencies = [
+ ('MariaDB', '11.6.0'),
+ ('libpng', '1.6.39'),
+ ('zlib', '1.2.13'),
+ ('util-linux', '2.39'),
+ ('OpenSSL', '1.1', '', SYSTEM),
+ ('freetype', '2.13.0'),
+]
+
+prebuildopts = 'sed -i "s/rsync -a /cp -a /" %(builddir)s/userApps/kent/src/parasol/makefile && '
+
+buildopts = 'CC="$CC" COPT="$CFLAGS -fcommon" PNGLIB="-L$EBROOTLIBPNG/lib -lpng" ZLIB="-L$EBROOTZLIB/lib -lz" '
+buildopts += 'SSL_DIR="$EBROOTOPENSSL" SSLDIR="$EBROOTOPENSSL" MYSQLLIBS="-L$EBROOTMARIADB/lib -lmariadb -lstdc++" '
+
+local_binaries = ['blat', 'bedPartition', 'getRna', 'liftOver', 'mafGene', 'splitFile', 'twoBitToFa']
+
+files_to_copy = [(['bin/*'], 'bin'), 'licenseBlat.txt', 'licenseUcscGenomeBrowser.txt']
+
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in local_binaries],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["%s 2>&1 | grep '^usage:'" % x for x in local_binaries]
+
+moduleclass = 'bio'
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-11.2.0.eb b/easybuild/easyconfigs/l/LAME/LAME-3.100-GCCcore-11.2.0.eb
index 1bb5846fed4..9e8668e6a50 100644
--- a/easybuild/easyconfigs/l/LAME/LAME-3.100-GCCcore-11.2.0.eb
+++ b/easybuild/easyconfigs/l/LAME/LAME-3.100-GCCcore-11.2.0.eb
@@ -25,9 +25,6 @@ dependencies = [('ncurses', '6.2')]
preconfigopts = "autoconf && "
-# configure is broken: add workaround to find libncurses...
-configure_cmd_prefix = "FRONTEND_LDADD='-L${EBROOTNCURSES}/lib' "
-
sanity_check_paths = {
'files': ['bin/lame', 'include/lame/lame.h', 'lib/libmp3lame.%s' % SHLIB_EXT],
'dirs': [],
diff --git a/easybuild/easyconfigs/l/LAME/LAME-3.100-GCCcore-11.3.0.eb b/easybuild/easyconfigs/l/LAME/LAME-3.100-GCCcore-11.3.0.eb
index f067051ffe7..5efdefb761f 100644
--- a/easybuild/easyconfigs/l/LAME/LAME-3.100-GCCcore-11.3.0.eb
+++ b/easybuild/easyconfigs/l/LAME/LAME-3.100-GCCcore-11.3.0.eb
@@ -25,9 +25,6 @@ dependencies = [('ncurses', '6.3')]
preconfigopts = "autoconf && "
-# configure is broken: add workaround to find libncurses...
-configure_cmd_prefix = "FRONTEND_LDADD='-L${EBROOTNCURSES}/lib' "
-
sanity_check_paths = {
'files': ['bin/lame', 'include/lame/lame.h', 'lib/libmp3lame.%s' % SHLIB_EXT],
'dirs': [],
diff --git a/easybuild/easyconfigs/l/LAME/LAME-3.100-GCCcore-12.2.0.eb b/easybuild/easyconfigs/l/LAME/LAME-3.100-GCCcore-12.2.0.eb
index 4008e0b3455..7d4bae408d5 100644
--- a/easybuild/easyconfigs/l/LAME/LAME-3.100-GCCcore-12.2.0.eb
+++ b/easybuild/easyconfigs/l/LAME/LAME-3.100-GCCcore-12.2.0.eb
@@ -25,9 +25,6 @@ dependencies = [('ncurses', '6.3')]
preconfigopts = "autoconf && "
-# configure is broken: add workaround to find libncurses...
-configure_cmd_prefix = "FRONTEND_LDADD='-L${EBROOTNCURSES}/lib' "
-
sanity_check_paths = {
'files': ['bin/lame', 'include/lame/lame.h', 'lib/libmp3lame.%s' % SHLIB_EXT],
'dirs': [],
diff --git a/easybuild/easyconfigs/l/LAME/LAME-3.100-GCCcore-12.3.0.eb b/easybuild/easyconfigs/l/LAME/LAME-3.100-GCCcore-12.3.0.eb
index 4573d76f947..a4c7dbd4278 100644
--- a/easybuild/easyconfigs/l/LAME/LAME-3.100-GCCcore-12.3.0.eb
+++ b/easybuild/easyconfigs/l/LAME/LAME-3.100-GCCcore-12.3.0.eb
@@ -25,9 +25,6 @@ dependencies = [('ncurses', '6.4')]
preconfigopts = "autoconf && "
-# configure is broken: add workaround to find libncurses...
-configure_cmd_prefix = "FRONTEND_LDADD='-L${EBROOTNCURSES}/lib' "
-
sanity_check_paths = {
'files': ['bin/lame', 'include/lame/lame.h', 'lib/libmp3lame.%s' % SHLIB_EXT],
'dirs': [],
diff --git a/easybuild/easyconfigs/l/LAME/LAME-3.100-GCCcore-13.2.0.eb b/easybuild/easyconfigs/l/LAME/LAME-3.100-GCCcore-13.2.0.eb
index 7b163dff699..1bffb9a1939 100644
--- a/easybuild/easyconfigs/l/LAME/LAME-3.100-GCCcore-13.2.0.eb
+++ b/easybuild/easyconfigs/l/LAME/LAME-3.100-GCCcore-13.2.0.eb
@@ -25,9 +25,6 @@ dependencies = [('ncurses', '6.4')]
preconfigopts = "autoconf && "
-# configure is broken: add workaround to find libncurses...
-configure_cmd_prefix = "FRONTEND_LDADD='-L${EBROOTNCURSES}/lib' "
-
sanity_check_paths = {
'files': ['bin/lame', 'include/lame/lame.h', 'lib/libmp3lame.%s' % SHLIB_EXT],
'dirs': [],
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/LAPACK/LAPACK-3.12.0-GCC-12.3.0.eb b/easybuild/easyconfigs/l/LAPACK/LAPACK-3.12.0-GCC-12.3.0.eb
new file mode 100644
index 00000000000..d68bd9e25a5
--- /dev/null
+++ b/easybuild/easyconfigs/l/LAPACK/LAPACK-3.12.0-GCC-12.3.0.eb
@@ -0,0 +1,16 @@
+name = 'LAPACK'
+version = '3.12.0'
+
+homepage = 'https://www.netlib.org/lapack/'
+description = """LAPACK is written in Fortran90 and provides routines for solving systems of
+ simultaneous linear equations, least-squares solutions of linear systems of equations, eigenvalue
+ problems, and singular value problems."""
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/Reference-LAPACK/lapack/archive/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['eac9570f8e0ad6f30ce4b963f4f033f0f643e7c3912fc9ee6cd99120675ad48b']
+
+moduleclass = 'numlib'
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/LIBSVM-MATLAB/LIBSVM-MATLAB-3.30-GCCcore-11.3.0-MATLAB-2022b-r5.eb b/easybuild/easyconfigs/l/LIBSVM-MATLAB/LIBSVM-MATLAB-3.30-GCCcore-11.3.0-MATLAB-2022b-r5.eb
new file mode 100644
index 00000000000..3da0742b89c
--- /dev/null
+++ b/easybuild/easyconfigs/l/LIBSVM-MATLAB/LIBSVM-MATLAB-3.30-GCCcore-11.3.0-MATLAB-2022b-r5.eb
@@ -0,0 +1,42 @@
+easyblock = 'MakeCp'
+
+name = 'LIBSVM-MATLAB'
+version = '3.30'
+local_matlab_ver = '2022b-r5'
+versionsuffix = '-MATLAB-%s' % local_matlab_ver
+
+homepage = 'https://www.csie.ntu.edu.tw/~cjlin/libsvm/'
+description = """MATLAB interface of LIBSVM, an integrated software for support vector classification,
+ (C-SVC, nu-SVC), regression (epsilon-SVR, nu-SVR) and distribution estimation (one-class SVM).
+ It supports multi-class classification."""
+
+toolchain = {'name': 'GCCcore', 'version': '11.3.0'}
+toolchainopts = {'openmp': True, 'pic': True}
+
+source_urls = ['https://github.com/cjlin1/libsvm/archive']
+sources = ['v%s.tar.gz' % version.replace('.', '')]
+checksums = ['e4fe41308c87cc210aec73e4f5f0fb4da14234d90e7a131763fbad3788ca2d80']
+
+builddependencies = [
+ ('binutils', '2.38'),
+]
+dependencies = [
+ ('MATLAB', local_matlab_ver, '', SYSTEM),
+]
+
+start_dir = 'matlab'
+
+buildopts = "MATLABDIR=$EBROOTMATLAB"
+
+files_to_copy = [
+ (['matlab/*.mexa64'], ''),
+]
+
+sanity_check_paths = {
+ 'files': ['libsvmwrite.mexa64', 'libsvmread.mexa64', 'svmpredict.mexa64', 'svmtrain.mexa64'],
+ 'dirs': [],
+}
+
+modextrapaths = {'MATLABPATH': ''}
+
+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/LLVM/LLVM-18.1.8-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/LLVM/LLVM-18.1.8-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..a0c29eba130
--- /dev/null
+++ b/easybuild/easyconfigs/l/LLVM/LLVM-18.1.8-GCCcore-13.3.0.eb
@@ -0,0 +1,48 @@
+name = 'LLVM'
+version = '18.1.8'
+
+homepage = "https://llvm.org/"
+description = """The LLVM Core libraries provide a modern source- and target-independent
+ optimizer, along with code generation support for many popular CPUs
+ (as well as some less common ones!) These libraries are built around a well
+ specified code representation known as the LLVM intermediate representation
+ ("LLVM IR"). The LLVM Core libraries are well documented, and it is
+ particularly easy to invent your own language (or port an existing compiler)
+ to use LLVM as an optimizer and code generator."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'cstd': 'gnu++11', 'pic': True}
+
+source_urls = ['https://github.com/llvm/llvm-project/releases/download/llvmorg-%(version)s/']
+sources = [
+ 'llvm-%(version)s.src.tar.xz',
+ 'cmake-%(version)s.src.tar.xz',
+ 'third-party-%(version)s.src.tar.xz',
+]
+checksums = [
+ {'llvm-18.1.8.src.tar.xz': 'f68cf90f369bc7d0158ba70d860b0cb34dbc163d6ff0ebc6cfa5e515b9b2e28d'},
+ {'cmake-18.1.8.src.tar.xz': '59badef592dd34893cd319d42b323aaa990b452d05c7180ff20f23ab1b41e837'},
+ {'third-party-18.1.8.src.tar.xz': 'b76b810f3d3dc5d08e83c4236cb6e395aa9bd5e3ea861e8c319b216d093db074'},
+]
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('CMake', '3.29.3'),
+ ('Python', '3.12.3'),
+]
+
+dependencies = [
+ ('ncurses', '6.5'),
+ ('zlib', '1.3.1'),
+]
+
+build_shared_libs = True
+
+sanity_check_paths = {
+ 'files': ['bin/llvm-ar', 'bin/FileCheck'],
+ 'dirs': ['include/llvm', 'include/llvm-c'],
+}
+
+sanity_check_commands = ["llvm-ar --help"]
+
+moduleclass = 'compiler'
diff --git a/easybuild/easyconfigs/l/LMDB/LMDB-0.9.31-GCCcore-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/LangChain/LangChain-0.2.1-foss-2023a.eb b/easybuild/easyconfigs/l/LangChain/LangChain-0.2.1-foss-2023a.eb
new file mode 100644
index 00000000000..640990af4c3
--- /dev/null
+++ b/easybuild/easyconfigs/l/LangChain/LangChain-0.2.1-foss-2023a.eb
@@ -0,0 +1,67 @@
+easyblock = 'PythonBundle'
+
+name = 'LangChain'
+version = '0.2.1'
+_rust_ver = '1.75.0'
+
+homepage = 'https://github.com/langchain-ai/langchain'
+description = """
+LangChain is a framework for developing applications powered by large language models (LLMs).
+"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+builddependencies = [
+ ('hatchling', '1.18.0'),
+ ('Rust', _rust_ver),
+ ('maturin', '1.4.0', '-Rust-%s' % _rust_ver),
+ ('poetry', '1.5.1'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('aiohttp', '3.8.5'),
+ ('pydantic', '2.5.3'),
+ ('PyYAML', '6.0'),
+ ('SQLAlchemy', '2.0.25'),
+]
+
+exts_list = [
+ ('jsonpointer', '2.4', {
+ 'checksums': ['585cee82b70211fa9e6043b7bb89db6e1aa49524340dde8ad6b63206ea689d88'],
+ }),
+ ('jsonpatch', '1.33', {
+ 'checksums': ['9fcd4009c41e6d12348b4a0ff2563ba56a2923a7dfee731d004e212e1ee5030c'],
+ }),
+ ('packaging', '23.2', {
+ 'checksums': ['048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5'],
+ }),
+ ('langchain-core', '0.2.3', {
+ 'sources': ['langchain_core-%(version)s.tar.gz'],
+ 'checksums': ['fbc75a64b9c0b7655d96ca57a707df1e6c09efc1539c36adbd73260612549810'],
+ }),
+ ('langchain-text-splitters', '0.2.0', {
+ 'sources': ['langchain_text_splitters-%(version)s.tar.gz'],
+ 'checksums': ['b32ab4f7397f7d42c1fa3283fefc2547ba356bd63a68ee9092865e5ad83c82f9'],
+ }),
+ ('orjson', '3.9.14', {
+ 'checksums': ['06fb40f8e49088ecaa02f1162581d39e2cf3fd9dbbfe411eb2284147c99bad79'],
+ }),
+ ('langsmith', '0.1.65', {
+ 'checksums': ['d3c2eb2391478bd79989f02652cf66e29a7959d677614b6993a47cef43f7f43b'],
+ }),
+ ('tenacity', '8.3.0', {
+ 'checksums': ['953d4e6ad24357bceffbc9707bc74349aca9d245f68eb65419cf0c249a1949a2'],
+ }),
+ (name, version, {
+ 'modulename': 'langchain',
+ 'sources': ['langchain-%(version)s.tar.gz'],
+ 'checksums': ['5758a315e1ac92eb26dafec5ad0fafa03cafa686aba197d5bb0b1dd28cc03ebe'],
+ }),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+moduleclass = 'ai'
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/LibLZF/LibLZF-3.6-GCCcore-12.3.0.eb b/easybuild/easyconfigs/l/LibLZF/LibLZF-3.6-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..500e9679115
--- /dev/null
+++ b/easybuild/easyconfigs/l/LibLZF/LibLZF-3.6-GCCcore-12.3.0.eb
@@ -0,0 +1,31 @@
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+# Author: Denis Kristak
+# Update: Thomas Hoffmann (EMBL), Denis Kristak
+easyblock = 'ConfigureMake'
+
+name = 'LibLZF'
+version = '3.6'
+
+homepage = 'http://oldhome.schmorp.de/marc/liblzf.html'
+description = """LibLZF is a very small data compression library. It consists of only two .c and two .h files
+and is very easy to incorporate into your own programs. The compression algorithm is very, very fast, yet still
+written in portable C."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = ['http://dist.schmorp.de/liblzf/Attic/']
+sources = ['liblzf-%(version)s.tar.gz']
+checksums = ['9c5de01f7b9ccae40c3f619d26a7abec9986c06c36d260c179cedd04b89fb46a']
+
+builddependencies = [
+ ('binutils', '2.40'),
+]
+
+sanity_check_commands = ['lzf -h']
+
+sanity_check_paths = {
+ 'files': ['bin/lzf', 'lib/liblzf.a'],
+ 'dirs': ['bin', 'lib'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/l/LibTIFF/LibTIFF-4.6.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/LibTIFF/LibTIFF-4.6.0-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..01e24006610
--- /dev/null
+++ b/easybuild/easyconfigs/l/LibTIFF/LibTIFF-4.6.0-GCCcore-13.3.0.eb
@@ -0,0 +1,38 @@
+easyblock = 'ConfigureMake'
+
+name = 'LibTIFF'
+version = '4.6.0'
+
+homepage = 'https://libtiff.gitlab.io/libtiff/'
+description = "tiff: Library and tools for reading and writing TIFF data files"
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://download.osgeo.org/libtiff/']
+sources = ['tiff-%(version)s.tar.gz']
+checksums = ['88b3979e6d5c7e32b50d7ec72fb15af724f6ab2cbf7e10880c360a77e4b5d99a']
+
+builddependencies = [('binutils', '2.42')]
+
+dependencies = [
+ ('zlib', '1.3.1'),
+ ('libjpeg-turbo', '3.0.1'),
+ ('XZ', '5.4.5'),
+ ('jbigkit', '2.1'),
+ ('zstd', '1.5.6'),
+ ('libdeflate', '1.20'),
+]
+
+configopts = "--enable-ld-version-script "
+configopts += "--disable-webp --disable-sphinx "
+
+sanity_check_paths = {
+ 'files': ['bin/tiffdump', 'bin/tiffinfo', 'include/tiff.h', 'lib/libtiff.a', 'lib/libtiff.%s' % SHLIB_EXT,
+ 'lib/libtiffxx.a', 'lib/libtiffxx.%s' % SHLIB_EXT, 'lib/pkgconfig/libtiff-4.pc'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["tiffinfo -h"]
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/l/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/langchain-anthropic/langchain-anthropic-0.1.15-foss-2023a.eb b/easybuild/easyconfigs/l/langchain-anthropic/langchain-anthropic-0.1.15-foss-2023a.eb
new file mode 100644
index 00000000000..6031932aa6c
--- /dev/null
+++ b/easybuild/easyconfigs/l/langchain-anthropic/langchain-anthropic-0.1.15-foss-2023a.eb
@@ -0,0 +1,60 @@
+easyblock = 'PythonBundle'
+
+name = 'langchain-anthropic'
+version = '0.1.15'
+
+homepage = 'https://python.langchain.com'
+description = """
+This package contains the LangChain integration for Anthropic's generative models.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+builddependencies = [
+ ('poetry', '1.5.1'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('LangChain', '0.2.1'),
+ ('tokenizers', '0.15.2'),
+ ('jiter', '0.4.1'),
+]
+
+exts_list = [
+ ('langchain-core', '0.2.3', {
+ 'sources': ['langchain_core-%(version)s.tar.gz'],
+ 'checksums': ['fbc75a64b9c0b7655d96ca57a707df1e6c09efc1539c36adbd73260612549810'],
+ }),
+ ('anyio', '4.4.0', {
+ 'checksums': ['5aadc6a1bbb7cdb0bede386cac5e2940f5e2ff3aa20277e991cf028e0585ce94'],
+ }),
+ ('h11', '0.14.0', {
+ 'checksums': ['8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d'],
+ }),
+ ('httpcore', '1.0.5', {
+ 'checksums': ['34a38e2f9291467ee3b44e89dd52615370e152954ba21721378a87b2960f7a61'],
+ }),
+ ('httpx', '0.27.0', {
+ 'checksums': ['a0cb88a46f32dc874e04ee956e4c2764aba2aa228f650b06788ba6bda2962ab5'],
+ }),
+ ('sniffio', '1.3.1', {
+ 'checksums': ['f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc'],
+ }),
+ ('anthropic', '0.28.0', {
+ 'source_tmpl': 'anthropic-0.28.0-py3-none-any.whl',
+ 'checksums': ['2b620b21aee3d20c5d8005483c34df239d53ae895687113b26b8a36892a7e20f'],
+ }),
+ ('defusedxml', '0.7.1', {
+ 'checksums': ['1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69'],
+ }),
+ (name, version, {
+ 'sources': ['langchain_anthropic-%(version)s.tar.gz'],
+ 'checksums': ['c5c3c6eaccb11ed99a63886e50873ac21eaf8e9441e0f75c7ae7cd8cdef65155'],
+ }),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+moduleclass = 'ai'
diff --git a/easybuild/easyconfigs/l/langchain-mistralai/langchain-mistralai-0.1.8-foss-2023a.eb b/easybuild/easyconfigs/l/langchain-mistralai/langchain-mistralai-0.1.8-foss-2023a.eb
new file mode 100644
index 00000000000..78fc26dda3f
--- /dev/null
+++ b/easybuild/easyconfigs/l/langchain-mistralai/langchain-mistralai-0.1.8-foss-2023a.eb
@@ -0,0 +1,59 @@
+easyblock = 'PythonBundle'
+
+name = 'langchain-mistralai'
+version = '0.1.8'
+
+homepage = 'https://github.com/langchain-ai/langchain'
+description = """
+This package contains the LangChain integrations for MistralAI through their mistralai SDK.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+builddependencies = [
+ ('poetry', '1.5.1'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('LangChain', '0.2.1'),
+ ('tokenizers', '0.15.2'),
+ ('jiter', '0.4.1'),
+]
+
+exts_list = [
+ ('langchain-core', '0.2.3', {
+ 'sources': ['langchain_core-%(version)s.tar.gz'],
+ 'checksums': ['fbc75a64b9c0b7655d96ca57a707df1e6c09efc1539c36adbd73260612549810'],
+ }),
+ ('anyio', '4.4.0', {
+ 'checksums': ['5aadc6a1bbb7cdb0bede386cac5e2940f5e2ff3aa20277e991cf028e0585ce94'],
+ }),
+ ('h11', '0.14.0', {
+ 'checksums': ['8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d'],
+ }),
+ ('httpcore', '1.0.5', {
+ 'checksums': ['34a38e2f9291467ee3b44e89dd52615370e152954ba21721378a87b2960f7a61'],
+ }),
+ ('httpx', '0.25.2', {
+ 'checksums': ['8b8fcaa0c8ea7b05edd69a094e63a2094c4efcb48129fb757361bc423c0ad9e8'],
+ }),
+ ('httpx-sse', '0.4.0', {
+ 'checksums': ['1e81a3a3070ce322add1d3529ed42eb5f70817f45ed6ec915ab753f961139721'],
+ }),
+ ('sniffio', '1.3.1', {
+ 'checksums': ['f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc'],
+ }),
+ ('mistralai', '0.4.0', {
+ 'checksums': ['1f21f02dec1fd6fefe12ca100d5937fd62542c11008c193d16df6f4a2d8554da'],
+ }),
+ (name, version, {
+ 'sources': ['langchain_mistralai-%(version)s.tar.gz'],
+ 'checksums': ['dc328f7aedfd9e88eeb79de5692dfc3907793b82ef59f0d6722d19c1c8bfcdc2'],
+ }),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+moduleclass = 'ai'
diff --git a/easybuild/easyconfigs/l/langchain-openai/langchain-openai-0.1.8-foss-2023a.eb b/easybuild/easyconfigs/l/langchain-openai/langchain-openai-0.1.8-foss-2023a.eb
new file mode 100644
index 00000000000..e46f2e43b4c
--- /dev/null
+++ b/easybuild/easyconfigs/l/langchain-openai/langchain-openai-0.1.8-foss-2023a.eb
@@ -0,0 +1,35 @@
+easyblock = 'PythonBundle'
+
+name = 'langchain-openai'
+version = '0.1.8'
+
+homepage = 'https://github.com/langchain-ai/langchain'
+description = """
+This package contains the LangChain integrations for OpenAI through their openai SDK.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+builddependencies = [
+ ('poetry', '1.5.1'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('LangChain', '0.2.1'),
+ ('tiktoken', '0.7.0'), # needs tiktoken >= 0.7.0
+ ('openai-python', '1.30.5'),
+]
+
+exts_list = [
+ (name, version, {
+ 'sources': ['langchain_openai-%(version)s.tar.gz'],
+ 'checksums': ['a11fcce15def7917c44232abda6baaa63dfc79fe44be1531eea650d39a44cd95'],
+ }),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+moduleclass = 'ai'
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/libabigail/libabigail-2.5-GCCcore-13.2.0.eb b/easybuild/easyconfigs/l/libabigail/libabigail-2.5-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..c414dda9011
--- /dev/null
+++ b/easybuild/easyconfigs/l/libabigail/libabigail-2.5-GCCcore-13.2.0.eb
@@ -0,0 +1,54 @@
+easyblock = 'ConfigureMake'
+
+name = 'libabigail'
+version = '2.5'
+
+description = """
+ABIGAIL stands for the Application Binary Interface Generic Analysis and
+Instrumentation Library.
+
+It’s a framework which aims at helping developers and software distributors
+to spot some ABI-related issues like interface incompatibility in ELF shared
+libraries by performing a static analysis of the ELF binaries at hand.
+
+The type of interface incompatibilities that Abigail focuses on is related to
+changes on the exported ELF functions and variables symbols, as well as layout
+and size changes of data types of the functions and variables exported by
+shared libraries.
+
+In other words, if the return type of a function exported by a shared library
+changes in an incompatible way from one version of a given shared library to
+another, we want Abigail to help people catch that.
+"""
+homepage = 'https://sourceware.org/libabigail'
+docurls = ['https://sourceware.org/libabigail/manual']
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+builddependencies = [('binutils', '2.40')]
+
+dependencies = [
+ ('elfutils', '0.190'),
+ ('Python', '3.11.5'),
+ ('libxml2', '2.11.5'),
+]
+
+source_urls = ['https://mirrors.kernel.org/sourceware/libabigail/']
+sources = [SOURCELOWER_TAR_XZ]
+checksums = ['7cfc4e9b00ae38d87fb0c63beabb32b9cbf9ce410e52ceeb5ad5b3c5beb111f3']
+
+configopts = '--enable-manual=no --enable-apidoc=no --with-sysroot=%(sysroot)s'
+
+sanity_check_paths = {
+ 'files': [
+ 'bin/abicompat', 'bin/abidiff',
+ 'lib/libabigail.a', 'lib/libabigail.%s' % SHLIB_EXT,
+ ],
+ 'dirs': ['include'],
+}
+
+sanity_check_commands = [
+ "abicompat --help | grep usage",
+ "abidiff --help | grep usage",
+]
+
+moduleclass = 'devel'
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.2.0.eb b/easybuild/easyconfigs/l/libaio/libaio-0.3.113-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..e5a7827cc4b
--- /dev/null
+++ b/easybuild/easyconfigs/l/libaio/libaio-0.3.113-GCCcore-13.2.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.2.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.40')]
+
+_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/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/libarchive/libarchive-3.7.4-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/libarchive/libarchive-3.7.4-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..d15d7381318
--- /dev/null
+++ b/easybuild/easyconfigs/l/libarchive/libarchive-3.7.4-GCCcore-13.3.0.eb
@@ -0,0 +1,35 @@
+easyblock = 'ConfigureMake'
+
+name = 'libarchive'
+version = '3.7.4'
+
+homepage = 'https://www.libarchive.org/'
+
+description = """
+ Multi-format archive and compression library
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://www.libarchive.org/downloads/']
+sources = [SOURCE_TAR_GZ]
+checksums = [
+ {'libarchive-3.7.4.tar.gz': '7875d49596286055b52439ed42f044bd8ad426aa4cc5aabd96bfe7abb971d5e8'},
+]
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+
+dependencies = [
+ ('zlib', '1.3.1'),
+ ('XZ', '5.4.5'),
+ ('OpenSSL', '3', '', SYSTEM),
+]
+
+sanity_check_paths = {
+ 'files': ['include/archive.h', 'lib/libarchive.%s' % SHLIB_EXT],
+ 'dirs': ['bin', 'share/man/man3'],
+}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/l/libavif/libavif-0.11.1-foss-2021a.eb b/easybuild/easyconfigs/l/libavif/libavif-0.11.1-GCCcore-10.3.0.eb
similarity index 91%
rename from easybuild/easyconfigs/l/libavif/libavif-0.11.1-foss-2021a.eb
rename to easybuild/easyconfigs/l/libavif/libavif-0.11.1-GCCcore-10.3.0.eb
index 2f4ed93c1c9..7ff457a5456 100644
--- a/easybuild/easyconfigs/l/libavif/libavif-0.11.1-foss-2021a.eb
+++ b/easybuild/easyconfigs/l/libavif/libavif-0.11.1-GCCcore-10.3.0.eb
@@ -11,7 +11,7 @@ description = """This library aims to be a friendly, portable C implementation o
as described here: https://aomediacodec.github.io/av1-avif/
"""
-toolchain = {'name': 'foss', 'version': '2021a'}
+toolchain = {'name': 'GCCcore', 'version': '10.3.0'}
source_urls = ['https://github.com/AOMediaCodec/libavif/archive/']
sources = ['v%(version)s.tar.gz']
@@ -19,9 +19,7 @@ checksums = ['0eb49965562a0e5e5de58389650d434cff32af84c34185b6c9b7b2fccae06d4e']
builddependencies = [
('CMake', '3.20.1'),
-]
-
-dependencies = [
+ ('binutils', '2.36.1'),
('NASM', '2.15.05'),
('Meson', '0.58.0'),
('Ninja', '1.10.2'),
diff --git a/easybuild/easyconfigs/l/libavif/libavif-0.11.1-GCCcore-11.3.0.eb b/easybuild/easyconfigs/l/libavif/libavif-0.11.1-GCCcore-11.3.0.eb
index 2d5b1cc7ab9..ac67210e4c9 100644
--- a/easybuild/easyconfigs/l/libavif/libavif-0.11.1-GCCcore-11.3.0.eb
+++ b/easybuild/easyconfigs/l/libavif/libavif-0.11.1-GCCcore-11.3.0.eb
@@ -20,9 +20,6 @@ checksums = ['0eb49965562a0e5e5de58389650d434cff32af84c34185b6c9b7b2fccae06d4e']
builddependencies = [
('CMake', '3.23.1'),
('binutils', '2.38'),
-]
-
-dependencies = [
('NASM', '2.15.05'),
('Meson', '0.62.1'),
('Ninja', '1.10.2'),
diff --git a/easybuild/easyconfigs/l/libavif/libavif-0.11.1-foss-2022a.eb b/easybuild/easyconfigs/l/libavif/libavif-1.0.4-GCCcore-12.3.0.eb
similarity index 70%
rename from easybuild/easyconfigs/l/libavif/libavif-0.11.1-foss-2022a.eb
rename to easybuild/easyconfigs/l/libavif/libavif-1.0.4-GCCcore-12.3.0.eb
index b34d2a8449b..149561be6b0 100644
--- a/easybuild/easyconfigs/l/libavif/libavif-0.11.1-foss-2022a.eb
+++ b/easybuild/easyconfigs/l/libavif/libavif-1.0.4-GCCcore-12.3.0.eb
@@ -4,28 +4,26 @@
easyblock = 'CMakeMake'
name = 'libavif'
-version = '0.11.1'
+version = '1.0.4'
homepage = 'https://github.com/AOMediaCodec/libavif'
description = """This library aims to be a friendly, portable C implementation of the AV1 Image File Format,
as described here: https://aomediacodec.github.io/av1-avif/
"""
-toolchain = {'name': 'foss', 'version': '2022a'}
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
source_urls = ['https://github.com/AOMediaCodec/libavif/archive/']
sources = ['v%(version)s.tar.gz']
-checksums = ['0eb49965562a0e5e5de58389650d434cff32af84c34185b6c9b7b2fccae06d4e']
+checksums = ['dc56708c83a4b934a8af2b78f67f866ba2fb568605c7cf94312acf51ee57d146']
builddependencies = [
- ('CMake', '3.23.1'),
-]
-
-dependencies = [
- ('NASM', '2.15.05'),
- ('Meson', '0.62.1'),
- ('Ninja', '1.10.2'),
- ('Rust', '1.60.0'),
+ ('CMake', '3.26.3'),
+ ('binutils', '2.40'),
+ ('NASM', '2.16.01'),
+ ('Meson', '1.1.1'),
+ ('Ninja', '1.11.1'),
+ ('Rust', '1.70.0'),
]
sanity_check_paths = {
diff --git a/easybuild/easyconfigs/l/libbraiding/libbraiding-1.2-GCCcore-13.2.0.eb b/easybuild/easyconfigs/l/libbraiding/libbraiding-1.2-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..172d0f449a2
--- /dev/null
+++ b/easybuild/easyconfigs/l/libbraiding/libbraiding-1.2-GCCcore-13.2.0.eb
@@ -0,0 +1,31 @@
+easyblock = 'ConfigureMake'
+
+name = 'libbraiding'
+version = '1.2'
+
+homepage = 'https://github.com/miguelmarco/libbraiding'
+description = """This is a project to expose the functionalitis of the Braiding program as a shared library.
+ The original goal is to include it as a component of SageMath, but it can be used in any other c++ program."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+source_urls = ['https://github.com/miguelmarco/libbraiding/releases/download/%(version)s/']
+sources = [SOURCE_TAR_GZ]
+checksums = ['73087d1145ace719eafeda1db1c28b5fe1c981b7e784dc59f2b1d6fc4ff75f80']
+
+builddependencies = [
+ ('binutils', '2.40'),
+]
+
+sanity_check_paths = {
+ 'files': [
+ 'include/braiding.h',
+ 'include/cbraid.h',
+ 'include/cbraid_implementation.h',
+ 'include/cbraid_interface.h',
+ 'lib/libbraiding.%s' % SHLIB_EXT,
+ ],
+ '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
new file mode 100644
index 00000000000..a6dbd52797f
--- /dev/null
+++ b/easybuild/easyconfigs/l/libdap/libdap-3.20.11-GCCcore-12.3.0.eb
@@ -0,0 +1,40 @@
+easyblock = 'ConfigureMake'
+
+name = 'libdap'
+version = '3.20.11'
+
+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': '12.3.0'}
+
+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 = [
+ ('cURL', '8.0.1'),
+ ('libxml2', '2.11.4'),
+ ('libtirpc', '1.3.3'),
+ ('PCRE', '8.45'),
+ ('util-linux', '2.39'),
+]
+
+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.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/libde265/libde265-1.0.15-GCC-12.3.0.eb b/easybuild/easyconfigs/l/libde265/libde265-1.0.15-GCC-12.3.0.eb
new file mode 100644
index 00000000000..9d6371e84ba
--- /dev/null
+++ b/easybuild/easyconfigs/l/libde265/libde265-1.0.15-GCC-12.3.0.eb
@@ -0,0 +1,33 @@
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+# Author: Denis Kristak
+easyblock = 'CMakeMake'
+
+name = 'libde265'
+version = '1.0.15'
+
+homepage = 'https://github.com/strukturag/libde265'
+description = "libde265 is an open source implementation of the h.265 video codec"
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+
+source_urls = ['https://github.com/strukturag/libde265/releases/download/v%(version)s/']
+sources = [SOURCE_TAR_GZ]
+checksums = ['00251986c29d34d3af7117ed05874950c875dd9292d016be29d3b3762666511d']
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+]
+
+configopts = "-DENABLE_DECODER=ON -DENABLE_ENCODER=ON"
+
+sanity_check_paths = {
+ 'files': ['bin/dec265', 'bin/enc265', 'lib/libde265.%s' % SHLIB_EXT, 'lib/pkgconfig/libde265.pc'],
+ 'dirs': ['include/libde265', 'lib/cmake/libde265'],
+}
+
+sanity_check_commands = [
+ "dec265 --help",
+ "enc265 --help",
+]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/l/libdeflate/libdeflate-1.20-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/libdeflate/libdeflate-1.20-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..79e7db1b0d8
--- /dev/null
+++ b/easybuild/easyconfigs/l/libdeflate/libdeflate-1.20-GCCcore-13.3.0.eb
@@ -0,0 +1,37 @@
+# Author: Pavel Grochal (INUITS)
+# License: GPLv2
+
+easyblock = 'CMakeMake'
+
+name = 'libdeflate'
+version = '1.20'
+
+homepage = 'https://github.com/ebiggers/libdeflate'
+description = """Heavily optimized library for DEFLATE/zlib/gzip compression and decompression."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+github_account = 'ebiggers'
+source_urls = [GITHUB_SOURCE]
+sources = ['v%(version)s.tar.gz']
+checksums = ['ed1454166ced78913ff3809870a4005b7170a6fd30767dc478a09b96847b9c2a']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('CMake', '3.29.3'),
+]
+
+sanity_check_paths = {
+ 'files': [
+ 'bin/%(name)s-gunzip', 'bin/%(name)s-gzip',
+ 'lib/%(name)s.a', 'lib/%%(name)s.%s' % SHLIB_EXT,
+ 'include/%(name)s.h',
+ ],
+ 'dirs': [],
+}
+sanity_check_commands = [
+ '%(name)s-gzip -h',
+ '%(name)s-gunzip -h',
+]
+
+moduleclass = 'system'
diff --git a/easybuild/easyconfigs/l/libdrm/libdrm-2.4.122-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/libdrm/libdrm-2.4.122-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..beff58c433a
--- /dev/null
+++ b/easybuild/easyconfigs/l/libdrm/libdrm-2.4.122-GCCcore-13.3.0.eb
@@ -0,0 +1,32 @@
+easyblock = 'MesonNinja'
+
+name = 'libdrm'
+version = '2.4.122'
+
+homepage = 'https://dri.freedesktop.org'
+description = """Direct Rendering Manager runtime library."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://dri.freedesktop.org/libdrm/']
+sources = [SOURCELOWER_TAR_XZ]
+checksums = ['d9f5079b777dffca9300ccc56b10a93588cdfbc9dde2fae111940dfb6292f251']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('pkgconf', '2.2.0'),
+ ('Meson', '1.4.0'),
+ ('Ninja', '1.12.1'),
+]
+dependencies = [('X11', '20240607')]
+
+# installing manpages requires an extra build dependency (docbook xsl)
+configopts = '-Dman-pages=disabled'
+
+sanity_check_paths = {
+ 'files': ['lib/libdrm.%s' % SHLIB_EXT, 'include/libdrm/drm.h'],
+ 'dirs': ['include', 'lib'],
+}
+
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/l/libdwarf/libdwarf-0.10.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/libdwarf/libdwarf-0.10.1-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..95a46c43114
--- /dev/null
+++ b/easybuild/easyconfigs/l/libdwarf/libdwarf-0.10.1-GCCcore-13.3.0.eb
@@ -0,0 +1,33 @@
+easyblock = 'ConfigureMake'
+
+name = 'libdwarf'
+version = '0.10.1'
+
+homepage = 'https://www.prevanders.net/dwarf.html'
+description = """The DWARF Debugging Information Format is of interest to programmers working on compilers
+and debuggers (and anyone interested in reading or writing DWARF information))"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/davea42/libdwarf-code/releases/download/v%(version)s']
+sources = [SOURCE_TAR_XZ]
+checksums = ['b511a2dc78b98786064889deaa2c1bc48a0c70115c187900dd838474ded1cc19']
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+dependencies = [
+ ('elfutils', '0.191'),
+]
+
+configopts = "--enable-shared "
+
+sanity_check_paths = {
+ 'files': ['bin/dwarfdump', 'lib/libdwarf.a', 'lib/libdwarf.%s' % SHLIB_EXT],
+ 'dirs': ['include']
+}
+
+sanity_check_commands = ['dwarfdump --help']
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/l/libdwarf/libdwarf-0.9.2-GCCcore-13.2.0.eb b/easybuild/easyconfigs/l/libdwarf/libdwarf-0.9.2-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..d8d25f32ed6
--- /dev/null
+++ b/easybuild/easyconfigs/l/libdwarf/libdwarf-0.9.2-GCCcore-13.2.0.eb
@@ -0,0 +1,33 @@
+easyblock = 'ConfigureMake'
+
+name = 'libdwarf'
+version = '0.9.2'
+
+homepage = 'https://www.prevanders.net/dwarf.html'
+description = """The DWARF Debugging Information Format is of interest to programmers working on compilers
+and debuggers (and anyone interested in reading or writing DWARF information))"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/davea42/libdwarf-code/releases/download/v%(version)s']
+sources = [SOURCE_TAR_XZ]
+checksums = ['c1cd51467f9cb8459cd27d4071857abc56191cc5d4182d8bdd7744030f88f830']
+
+builddependencies = [
+ ('binutils', '2.40'),
+]
+dependencies = [
+ ('elfutils', '0.190'),
+]
+
+configopts = "--enable-shared "
+
+sanity_check_paths = {
+ 'files': ['bin/dwarfdump', 'lib/libdwarf.a', 'lib/libdwarf.%s' % SHLIB_EXT],
+ 'dirs': ['include']
+}
+
+sanity_check_commands = ['dwarfdump --help']
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/l/libedit/libedit-20191231-GCCcore-12.3.0.eb b/easybuild/easyconfigs/l/libedit/libedit-20191231-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..9e85864f61d
--- /dev/null
+++ b/easybuild/easyconfigs/l/libedit/libedit-20191231-GCCcore-12.3.0.eb
@@ -0,0 +1,27 @@
+easyblock = 'ConfigureMake'
+
+name = 'libedit'
+version = '20191231'
+
+homepage = 'https://thrysoee.dk/editline/'
+description = """
+This BSD-style licensed command line editor library provides generic line editing,
+history, and tokenization functions, similar to those found in GNU Readline.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = ['https://thrysoee.dk/editline/']
+sources = ['%(namelower)s-%(version)s-3.1.tar.gz']
+checksums = ['dbb82cb7e116a5f8025d35ef5b4f7d4a3cdd0a3909a146a39112095a2d229071']
+
+builddependencies = [('binutils', '2.40')]
+
+dependencies = [('ncurses', '6.4')]
+
+sanity_check_paths = {
+ 'files': ['include/editline/readline.h', 'lib/libedit.%s' % SHLIB_EXT, 'lib/libedit.a'],
+ 'dirs': []
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/l/libedit/libedit-20240517-GCCcore-13.2.0.eb b/easybuild/easyconfigs/l/libedit/libedit-20240517-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..098fd8b7bde
--- /dev/null
+++ b/easybuild/easyconfigs/l/libedit/libedit-20240517-GCCcore-13.2.0.eb
@@ -0,0 +1,27 @@
+easyblock = 'ConfigureMake'
+
+name = 'libedit'
+version = '20240517'
+
+homepage = 'https://thrysoee.dk/editline/'
+description = """
+This BSD-style licensed command line editor library provides generic line editing,
+history, and tokenization functions, similar to those found in GNU Readline.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+source_urls = ['https://thrysoee.dk/editline/']
+sources = ['%(namelower)s-%(version)s-3.1.tar.gz']
+checksums = ['3a489097bb4115495f3bd85ae782852b7097c556d9500088d74b6fa38dbd12ff']
+
+builddependencies = [('binutils', '2.40')]
+
+dependencies = [('ncurses', '6.4')]
+
+sanity_check_paths = {
+ 'files': ['include/editline/readline.h', 'lib/libedit.%s' % SHLIB_EXT, 'lib/libedit.a'],
+ 'dirs': []
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/l/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/libev/libev-4.33-GCC-12.3.0.eb b/easybuild/easyconfigs/l/libev/libev-4.33-GCC-12.3.0.eb
new file mode 100644
index 00000000000..a2cd4ecd9b5
--- /dev/null
+++ b/easybuild/easyconfigs/l/libev/libev-4.33-GCC-12.3.0.eb
@@ -0,0 +1,31 @@
+# Author: J. Sassmannshausen (Imperial College London/UK)
+# Update: Pavel Tománek (Inuits)
+easyblock = 'ConfigureMake'
+
+name = 'libev'
+version = '4.33'
+
+homepage = 'http://software.schmorp.de/pkg/libev.html'
+description = """A full-featured and high-performance (see benchmark)
+event loop that is loosely modelled after libevent, but without its
+limitations and bugs. It is used in GNU Virtual Private Ethernet,
+rxvt-unicode, auditd, the Deliantra MORPG Server and Client, and many
+other programs."""
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['http://dist.schmorp.de/libev/Attic']
+sources = ['%(name)s-%(version)s.tar.gz']
+checksums = ['507eb7b8d1015fbec5b935f34ebed15bf346bed04a11ab82b8eee848c4205aea']
+
+builddependencies = [
+ ('binutils', '2.40'),
+]
+
+sanity_check_paths = {
+ 'files': ['lib/libev.%s' % SHLIB_EXT],
+ 'dirs': ['include/', 'share'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/l/libevent/libevent-2.1.12-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/libevent/libevent-2.1.12-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..bd33821ffd7
--- /dev/null
+++ b/easybuild/easyconfigs/l/libevent/libevent-2.1.12-GCCcore-13.3.0.eb
@@ -0,0 +1,38 @@
+easyblock = 'ConfigureMake'
+
+name = 'libevent'
+version = '2.1.12'
+
+homepage = 'https://libevent.org/'
+
+description = """
+ The libevent API provides a mechanism to execute a callback function when
+ a specific event occurs on a file descriptor or after a timeout has been
+ reached. Furthermore, libevent also support callbacks due to signals or
+ regular timeouts.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/%(name)s/%(name)s/releases/download/release-%(version)s-stable/']
+sources = ['%(name)s-%(version)s-stable.tar.gz']
+checksums = ['92e6de1be9ec176428fd2367677e61ceffc2ee1cb119035037a27d346b0403bb']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('pkgconf', '2.2.0'),
+]
+
+dependencies = [
+ ('zlib', '1.3.1'),
+ ('OpenSSL', '3', '', SYSTEM),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/event_rpcgen.py', 'include/event.h', 'include/event2/event.h',
+ 'lib/libevent_core.%s' % SHLIB_EXT, 'lib/pkgconfig/libevent.pc'],
+ 'dirs': [],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/l/libfabric/libfabric-1.12.1-GCCcore-10.3.0.eb b/easybuild/easyconfigs/l/libfabric/libfabric-1.12.1-GCCcore-10.3.0.eb
index 553ff1edf76..5a302fa1b83 100644
--- a/easybuild/easyconfigs/l/libfabric/libfabric-1.12.1-GCCcore-10.3.0.eb
+++ b/easybuild/easyconfigs/l/libfabric/libfabric-1.12.1-GCCcore-10.3.0.eb
@@ -43,7 +43,10 @@ builddependencies = [
dependencies = [
('numactl', '2.0.14'),
- ('PSM2', '12.0.1'),
+ # PSM2 dependency for libfabric should be used on Omnipath systems,
+ # but that PSM2 has CUDA as dependency so it's commented out by default;
+ # PSM2 only compiles on x86_64
+ # ('PSM2', {'arch=x86_64': '12.0.1', 'arch=*': False}),
]
osdependencies = [OS_PKG_IBVERBS_DEV]
diff --git a/easybuild/easyconfigs/l/libfabric/libfabric-1.13.0-GCCcore-11.2.0.eb b/easybuild/easyconfigs/l/libfabric/libfabric-1.13.0-GCCcore-11.2.0.eb
index 9eed1d10b73..35245b93a33 100644
--- a/easybuild/easyconfigs/l/libfabric/libfabric-1.13.0-GCCcore-11.2.0.eb
+++ b/easybuild/easyconfigs/l/libfabric/libfabric-1.13.0-GCCcore-11.2.0.eb
@@ -37,7 +37,10 @@ builddependencies = [
dependencies = [
('numactl', '2.0.14'),
- ('PSM2', '12.0.1'),
+ # PSM2 dependency for libfabric should be used on Omnipath systems,
+ # but that PSM2 has CUDA as dependency so it's commented out by default;
+ # PSM2 only compiles on x86_64
+ # ('PSM2', {'arch=x86_64': '12.0.1', 'arch=*': False}),
]
osdependencies = [OS_PKG_IBVERBS_DEV]
diff --git a/easybuild/easyconfigs/l/libfabric/libfabric-1.13.1-GCCcore-11.2.0.eb b/easybuild/easyconfigs/l/libfabric/libfabric-1.13.1-GCCcore-11.2.0.eb
index 103995357f0..c6011eea6ec 100644
--- a/easybuild/easyconfigs/l/libfabric/libfabric-1.13.1-GCCcore-11.2.0.eb
+++ b/easybuild/easyconfigs/l/libfabric/libfabric-1.13.1-GCCcore-11.2.0.eb
@@ -37,7 +37,10 @@ builddependencies = [
dependencies = [
('numactl', '2.0.14'),
- ('PSM2', '12.0.1'),
+ # PSM2 dependency for libfabric should be used on Omnipath systems,
+ # but that PSM2 has CUDA as dependency so it's commented out by default;
+ # PSM2 only compiles on x86_64
+ # ('PSM2', {'arch=x86_64': '12.0.1', 'arch=*': False}),
]
osdependencies = [OS_PKG_IBVERBS_DEV]
diff --git a/easybuild/easyconfigs/l/libfabric/libfabric-1.13.2-GCCcore-11.2.0.eb b/easybuild/easyconfigs/l/libfabric/libfabric-1.13.2-GCCcore-11.2.0.eb
index 8ec4cbdf361..14531d3108d 100644
--- a/easybuild/easyconfigs/l/libfabric/libfabric-1.13.2-GCCcore-11.2.0.eb
+++ b/easybuild/easyconfigs/l/libfabric/libfabric-1.13.2-GCCcore-11.2.0.eb
@@ -37,7 +37,10 @@ builddependencies = [
dependencies = [
('numactl', '2.0.14'),
- ('PSM2', '12.0.1'),
+ # PSM2 dependency for libfabric should be used on Omnipath systems,
+ # but that PSM2 has CUDA as dependency so it's commented out by default;
+ # PSM2 only compiles on x86_64
+ # ('PSM2', {'arch=x86_64': '12.0.1', 'arch=*': False}),
]
osdependencies = [OS_PKG_IBVERBS_DEV]
diff --git a/easybuild/easyconfigs/l/libfabric/libfabric-1.15.1-GCCcore-11.3.0.eb b/easybuild/easyconfigs/l/libfabric/libfabric-1.15.1-GCCcore-11.3.0.eb
index 20d2cd53407..6c50cdb4a4b 100644
--- a/easybuild/easyconfigs/l/libfabric/libfabric-1.15.1-GCCcore-11.3.0.eb
+++ b/easybuild/easyconfigs/l/libfabric/libfabric-1.15.1-GCCcore-11.3.0.eb
@@ -37,7 +37,10 @@ builddependencies = [
dependencies = [
('numactl', '2.0.14'),
- ('PSM2', '12.0.1'),
+ # PSM2 dependency for libfabric should be used on Omnipath systems,
+ # but that PSM2 has CUDA as dependency so it's commented out by default;
+ # PSM2 only compiles on x86_64
+ # ('PSM2', {'arch=x86_64': '12.0.1', 'arch=*': False}),
]
osdependencies = [OS_PKG_IBVERBS_DEV]
diff --git a/easybuild/easyconfigs/l/libfabric/libfabric-1.16.1-GCCcore-12.2.0.eb b/easybuild/easyconfigs/l/libfabric/libfabric-1.16.1-GCCcore-12.2.0.eb
index d554608ff27..31c4ac02fac 100644
--- a/easybuild/easyconfigs/l/libfabric/libfabric-1.16.1-GCCcore-12.2.0.eb
+++ b/easybuild/easyconfigs/l/libfabric/libfabric-1.16.1-GCCcore-12.2.0.eb
@@ -34,7 +34,10 @@ builddependencies = [
dependencies = [
('numactl', '2.0.16'),
- ('PSM2', '12.0.1'),
+ # PSM2 dependency for libfabric should be used on Omnipath systems,
+ # but that PSM2 has CUDA as dependency so it's commented out by default;
+ # PSM2 only compiles on x86_64
+ # ('PSM2', {'arch=x86_64': '12.0.1', 'arch=*': False}),
]
osdependencies = [OS_PKG_IBVERBS_DEV]
diff --git a/easybuild/easyconfigs/l/libfabric/libfabric-1.18.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/l/libfabric/libfabric-1.18.0-GCCcore-12.3.0.eb
index abb669e3494..c1fa6c1cebb 100644
--- a/easybuild/easyconfigs/l/libfabric/libfabric-1.18.0-GCCcore-12.3.0.eb
+++ b/easybuild/easyconfigs/l/libfabric/libfabric-1.18.0-GCCcore-12.3.0.eb
@@ -34,7 +34,10 @@ builddependencies = [
dependencies = [
('numactl', '2.0.16'),
- ('PSM2', '12.0.1'),
+ # PSM2 dependency for libfabric should be used on Omnipath systems,
+ # but that PSM2 has CUDA as dependency so it's commented out by default;
+ # PSM2 only compiles on x86_64
+ # ('PSM2', {'arch=x86_64': '12.0.1', 'arch=*': False}),
]
osdependencies = [OS_PKG_IBVERBS_DEV]
diff --git a/easybuild/easyconfigs/l/libfabric/libfabric-1.19.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/l/libfabric/libfabric-1.19.0-GCCcore-13.2.0.eb
index ea4530cbc2b..5d80c15a258 100644
--- a/easybuild/easyconfigs/l/libfabric/libfabric-1.19.0-GCCcore-13.2.0.eb
+++ b/easybuild/easyconfigs/l/libfabric/libfabric-1.19.0-GCCcore-13.2.0.eb
@@ -34,7 +34,10 @@ builddependencies = [
dependencies = [
('numactl', '2.0.16'),
- ('PSM2', '12.0.1'),
+ # PSM2 dependency for libfabric should be used on Omnipath systems,
+ # but that PSM2 has CUDA as dependency so it's commented out by default;
+ # PSM2 only compiles on x86_64
+ # ('PSM2', {'arch=x86_64': '12.0.1', 'arch=*': False}),
]
osdependencies = [OS_PKG_IBVERBS_DEV]
diff --git a/easybuild/easyconfigs/l/libfabric/libfabric-1.21.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/libfabric/libfabric-1.21.0-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..04757a82748
--- /dev/null
+++ b/easybuild/easyconfigs/l/libfabric/libfabric-1.21.0-GCCcore-13.3.0.eb
@@ -0,0 +1,61 @@
+easyblock = 'ConfigureMake'
+
+name = 'libfabric'
+version = '1.21.0'
+
+homepage = 'https://ofiwg.github.io/libfabric/'
+description = """
+Libfabric is a core component of OFI. It is the library that defines and exports
+the user-space API of OFI, and is typically the only software that applications
+deal with directly. It works in conjunction with provider libraries, which are
+often integrated directly into libfabric.
+"""
+
+# The psm3 provider (enabled by default) requires an AVX capable system to run
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/ofiwg/libfabric/releases/download/v%(version)s']
+sources = [SOURCE_TAR_BZ2]
+checksums = [
+ {'libfabric-1.21.0.tar.bz2': '0c1b7b830d9147f661e5d7f359250b85b5a9885c330464cd3b5e5d35b86551c7'},
+]
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('pkgconf', '2.2.0'),
+ ('Autotools', '20231222'),
+]
+
+dependencies = [
+ ('numactl', '2.0.18'),
+ # PSM2 dependency for libfabric should be used on Omnipath systems,
+ # but that PSM2 has CUDA as dependency so it's commented out by default;
+ # PSM2 only compiles on x86_64
+ # ('PSM2', {'arch=x86_64': '12.0.1', 'arch=*': False}),
+]
+
+osdependencies = [OS_PKG_IBVERBS_DEV]
+
+# Regenerate build files to pick up psm3-axv-config patch
+preconfigopts = "./autogen.sh &&"
+
+# Disable deprecated "sockets" provider
+configopts = "--disable-sockets "
+
+# Disable usNIC provider by default as this requires specific osdependencies
+# If you want to enable this provider you need to uncomment the following line:
+# osdependencies.append(('libnl3-devel', 'libnl3-dev'))
+configopts += "--disable-usnic "
+
+buildopts = "V=1"
+
+sanity_check_paths = {
+ 'files': ['bin/fi_info', 'bin/fi_pingpong', 'bin/fi_strerror'] +
+ ['lib/libfabric.%s' % x for x in ['a', SHLIB_EXT]],
+ 'dirs': ['include/rdma', 'lib/pkgconfig', 'share']
+}
+
+sanity_check_commands = ['fi_info']
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/l/libffi/libffi-3.4.5-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/libffi/libffi-3.4.5-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..34934544c93
--- /dev/null
+++ b/easybuild/easyconfigs/l/libffi/libffi-3.4.5-GCCcore-13.3.0.eb
@@ -0,0 +1,29 @@
+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 = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/libffi/libffi/releases/download/v%(version)s/']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['96fff4e589e3b239d888d9aa44b3ff30693c2ba1617f953925a70ddebcc102b2']
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+
+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/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/libgcrypt/libgcrypt-1.10.3-GCCcore-12.3.0.eb b/easybuild/easyconfigs/l/libgcrypt/libgcrypt-1.10.3-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..113c8f30746
--- /dev/null
+++ b/easybuild/easyconfigs/l/libgcrypt/libgcrypt-1.10.3-GCCcore-12.3.0.eb
@@ -0,0 +1,31 @@
+easyblock = 'ConfigureMake'
+
+name = 'libgcrypt'
+version = '1.10.3'
+
+homepage = 'https://gnupg.org/related_software/libgcrypt/index.html'
+description = """Libgcrypt is a general purpose cryptographic library originally based on code from GnuPG"""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = ['https://gnupg.org/ftp/gcrypt/%(name)s/']
+sources = [SOURCE_TAR_BZ2]
+checksums = ['8b0870897ac5ac67ded568dcfadf45969cfa8a6beb0fd60af2a9eadc2a3272aa']
+
+builddependencies = [('binutils', '2.40')]
+
+dependencies = [('libgpg-error', '1.48')]
+
+sanity_check_paths = {
+ 'files': ['bin/libgcrypt-config', 'include/gcrypt.h', 'lib/libgcrypt.%s' % SHLIB_EXT],
+ 'dirs': ['share']
+}
+
+sanity_check_commands = [
+ 'dumpsexp --version',
+ 'hmac256 --version',
+ 'mpicalc --version',
+ 'libgcrypt-config --version | grep "%(version)s"',
+]
+
+moduleclass = 'system'
diff --git a/easybuild/easyconfigs/l/libgd/libgd-2.3.3-GCCcore-13.2.0.eb b/easybuild/easyconfigs/l/libgd/libgd-2.3.3-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..8ebba5a4031
--- /dev/null
+++ b/easybuild/easyconfigs/l/libgd/libgd-2.3.3-GCCcore-13.2.0.eb
@@ -0,0 +1,37 @@
+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.2.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/libgd/libgd/releases/download/gd-%(version)s/']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['dd3f1f0bb016edcc0b2d082e8229c822ad1d02223511997c80461481759b1ed2']
+
+builddependencies = [
+ ('binutils', '2.40'),
+]
+
+dependencies = [
+ ('fontconfig', '2.14.2'),
+ ('libjpeg-turbo', '3.0.1'),
+ ('libpng', '1.6.40'),
+ ('zlib', '1.2.13'),
+]
+
+configopts = "--with-fontconfig=$EBROOTFONTCONFIG --with-jpeg=$EBROOTLIBJPEGMINTURBO "
+configopts += "--with-png=$EBROOTLIBPNG --with-zlib=$EBROOTZLIB"
+
+sanity_check_paths = {
+ 'files': ['lib/libgd.a', 'lib/libgd.%s' % SHLIB_EXT],
+ 'dirs': ['bin', 'include'],
+}
+
+sanity_check_commands = ['webpng --help']
+
+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.2.0.eb b/easybuild/easyconfigs/l/libgeotiff/libgeotiff-1.7.3-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..ce66887030e
--- /dev/null
+++ b/easybuild/easyconfigs/l/libgeotiff/libgeotiff-1.7.3-GCCcore-13.2.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.2.0'}
+
+source_urls = ['https://download.osgeo.org/geotiff/libgeotiff']
+sources = [SOURCE_TAR_GZ]
+checksums = ['ba23a3a35980ed3de916e125c739251f8e3266be07540200125a307d7cf5a704']
+
+builddependencies = [
+ ('binutils', '2.40'),
+]
+
+dependencies = [
+ ('PROJ', '9.3.1'),
+ ('libjpeg-turbo', '3.0.1'),
+ ('zlib', '1.2.13'),
+ ('SQLite', '3.43.1'),
+ ('LibTIFF', '4.6.0'),
+ ('cURL', '8.3.0'),
+]
+
+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/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/libglvnd/libglvnd-1.7.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/libglvnd/libglvnd-1.7.0-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..c6a03d1b419
--- /dev/null
+++ b/easybuild/easyconfigs/l/libglvnd/libglvnd-1.7.0-GCCcore-13.3.0.eb
@@ -0,0 +1,33 @@
+easyblock = 'MesonNinja'
+
+name = 'libglvnd'
+version = '1.7.0'
+
+homepage = 'https://gitlab.freedesktop.org/glvnd/libglvnd'
+description = "libglvnd is a vendor-neutral dispatch layer for arbitrating OpenGL API calls between multiple vendors."
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://gitlab.freedesktop.org/glvnd/libglvnd/-/archive/v%(version)s/']
+sources = ['libglvnd-v%(version)s.tar.gz']
+checksums = ['2b6e15b06aafb4c0b6e2348124808cbd9b291c647299eaaba2e3202f51ff2f3d']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('pkgconf', '2.2.0'),
+ ('Meson', '1.4.0'),
+ ('Ninja', '1.12.1'),
+]
+
+dependencies = [('X11', '20240607')]
+
+# Let EGL find system-installed vendor files in /etc/glvnd/egl_vendor.d etc.
+allow_prepend_abs_path = True
+modextrapaths = {"__EGL_VENDOR_LIBRARY_DIRS": "/etc/glvnd/egl_vendor.d:/usr/share/glvnd/egl_vendor.d"}
+
+sanity_check_paths = {
+ 'files': ['lib/lib%s.%s' % (x, SHLIB_EXT) for x in ['EGL', 'GL', 'GLX', 'OpenGL']],
+ 'dirs': ['include/%s' % x for x in ['EGL', 'GL', 'GLES', 'GLES2', 'GLES3', 'glvnd', 'KHR']] + ['lib/pkgconfig'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/l/libgpg-error/libgpg-error-1.48-GCCcore-12.3.0.eb b/easybuild/easyconfigs/l/libgpg-error/libgpg-error-1.48-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..67edfd4a874
--- /dev/null
+++ b/easybuild/easyconfigs/l/libgpg-error/libgpg-error-1.48-GCCcore-12.3.0.eb
@@ -0,0 +1,22 @@
+easyblock = 'ConfigureMake'
+
+name = 'libgpg-error'
+version = '1.48'
+
+homepage = 'https://gnupg.org/related_software/libgpg-error/index.html'
+description = """Libgpg-error is a small library that defines common error values for all GnuPG components."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = ['https://gnupg.org/ftp/gcrypt/%(name)s/']
+sources = [SOURCE_TAR_BZ2]
+checksums = ['89ce1ae893e122924b858de84dc4f67aae29ffa610ebf668d5aa539045663d6f']
+
+builddependencies = [('binutils', '2.40')]
+
+sanity_check_paths = {
+ 'files': ['bin/gpg-error', 'include/gpg-error.h', 'lib/libgpg-error.%s' % SHLIB_EXT],
+ 'dirs': ['share']
+}
+
+moduleclass = 'system'
diff --git a/easybuild/easyconfigs/l/libheif/libheif-1.17.6-GCC-12.3.0.eb b/easybuild/easyconfigs/l/libheif/libheif-1.17.6-GCC-12.3.0.eb
new file mode 100644
index 00000000000..ee355100089
--- /dev/null
+++ b/easybuild/easyconfigs/l/libheif/libheif-1.17.6-GCC-12.3.0.eb
@@ -0,0 +1,42 @@
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+# Author: Denis Kristak
+easyblock = 'CMakeMake'
+
+name = 'libheif'
+version = '1.17.6'
+
+homepage = 'https://github.com/strukturag/libheif'
+description = "libheif is an HEIF and AVIF file format decoder and encoder"
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+
+source_urls = ['https://github.com/strukturag/libheif/releases/download/v%(version)s/']
+sources = [SOURCE_TAR_GZ]
+checksums = ['8390baf4913eda0a183e132cec62b875fb2ef507ced5ddddc98dfd2f17780aee']
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+]
+
+dependencies = [
+ ('libpng', '1.6.39'),
+ ('libjpeg-turbo', '2.1.5.1'),
+ ('libde265', '1.0.15'),
+ ('x265', '3.5'),
+ ('Gdk-Pixbuf', '2.42.10'),
+]
+
+# build both static and shared libraries
+configopts = [
+ "-DBUILD_SHARED_LIBS=OFF",
+ "-DBUILD_SHARED_LIBS=ON",
+]
+
+sanity_check_paths = {
+ 'files': ['bin/heif-info', 'lib/libheif.a', 'lib/libheif.%s' % SHLIB_EXT, 'lib/pkgconfig/libheif.pc'],
+ 'dirs': ['include/libheif'],
+}
+
+sanity_check_commands = ["heif-info --help"]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/l/libiconv/libiconv-1.17-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/libiconv/libiconv-1.17-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..0532a96c234
--- /dev/null
+++ b/easybuild/easyconfigs/l/libiconv/libiconv-1.17-GCCcore-13.3.0.eb
@@ -0,0 +1,23 @@
+easyblock = 'ConfigureMake'
+
+name = 'libiconv'
+version = '1.17'
+
+homepage = 'https://www.gnu.org/software/libiconv'
+description = "Libiconv converts from one character encoding to another through Unicode conversion"
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = [GNU_SOURCE]
+sources = [SOURCE_TAR_GZ]
+checksums = ['8f74213b56238c85a50a5329f77e06198771e70dd9a739779f4c02f65d971313']
+
+builddependencies = [('binutils', '2.42')]
+
+sanity_check_paths = {
+ 'files': ['bin/iconv', 'include/iconv.h', 'include/libcharset.h', 'include/localcharset.h',
+ 'lib/libcharset.a', 'lib/libcharset.%s' % SHLIB_EXT, 'lib/libiconv.%s' % SHLIB_EXT],
+ 'dirs': ['share'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/l/libidn2/libidn2-2.3.4-GCCcore-12.2.0.eb b/easybuild/easyconfigs/l/libidn2/libidn2-2.3.4-GCCcore-12.2.0.eb
new file mode 100644
index 00000000000..b9ddb22009e
--- /dev/null
+++ b/easybuild/easyconfigs/l/libidn2/libidn2-2.3.4-GCCcore-12.2.0.eb
@@ -0,0 +1,24 @@
+easyblock = 'ConfigureMake'
+
+name = 'libidn2'
+version = '2.3.4'
+
+homepage = 'http://www.gnu.org/software/%(name)s'
+description = """Libidn2 implements the revised algorithm for internationalized domain names called IDNA2008/TR46."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.2.0'}
+
+source_urls = ['https://ftp.gnu.org/gnu/libidn/']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['93caba72b4e051d1f8d4f5a076ab63c99b77faee019b72b9783b267986dbb45f']
+
+builddependencies = [('binutils', '2.39')]
+
+sanity_check_paths = {
+ 'files': ['bin/idn2', 'lib/libidn2.%s' % SHLIB_EXT],
+ 'dirs': ['include'],
+}
+
+sanity_check_commands = ["idn2 --help"]
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/l/libidn2/libidn2-2.3.7-GCCcore-12.3.0.eb b/easybuild/easyconfigs/l/libidn2/libidn2-2.3.7-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..30a2e4a26f2
--- /dev/null
+++ b/easybuild/easyconfigs/l/libidn2/libidn2-2.3.7-GCCcore-12.3.0.eb
@@ -0,0 +1,27 @@
+easyblock = 'ConfigureMake'
+
+name = 'libidn2'
+version = '2.3.7'
+
+homepage = 'http://www.gnu.org/software/%(name)s'
+description = "Libidn2 implements the revised algorithm for internationalized domain names called IDNA2008/TR46."
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = ['https://ftp.gnu.org/gnu/libidn/']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['4c21a791b610b9519b9d0e12b8097bf2f359b12f8dd92647611a929e6bfd7d64']
+
+builddependencies = [
+ ('binutils', '2.40'),
+]
+
+
+sanity_check_paths = {
+ 'files': ['bin/idn2', 'lib/%s.%s' % (name, SHLIB_EXT)],
+ 'dirs': ['include'],
+}
+
+sanity_check_commands = ['idn2 --help']
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/l/libjpeg-turbo/libjpeg-turbo-3.0.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/libjpeg-turbo/libjpeg-turbo-3.0.1-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..f4a61f429a2
--- /dev/null
+++ b/easybuild/easyconfigs/l/libjpeg-turbo/libjpeg-turbo-3.0.1-GCCcore-13.3.0.eb
@@ -0,0 +1,42 @@
+easyblock = 'CMakeMake'
+
+name = 'libjpeg-turbo'
+version = '3.0.1'
+
+homepage = 'https://sourceforge.net/projects/libjpeg-turbo/'
+
+description = """
+ libjpeg-turbo is a fork of the original IJG libjpeg which uses SIMD to
+ accelerate baseline JPEG compression and decompression. libjpeg is a library
+ that implements JPEG image encoding, decoding and transcoding.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = [SOURCEFORGE_SOURCE]
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['22429507714ae147b3acacd299e82099fce5d9f456882fc28e252e4579ba2a75']
+
+builddependencies = [
+ ('CMake', '3.29.3'),
+ ('binutils', '2.42'),
+]
+
+dependencies = [
+ ('NASM', '2.16.03'),
+]
+
+configopts = ' -G"Unix Makefiles" -DWITH_JPEG8=1'
+
+runtest = "test"
+
+sanity_check_paths = {
+ 'files': ['bin/cjpeg', 'bin/djpeg', 'bin/jpegtran', 'bin/rdjpgcom',
+ 'bin/tjbench', 'bin/wrjpgcom', 'lib/libjpeg.a',
+ 'lib/libjpeg.%s' % SHLIB_EXT, 'lib/libturbojpeg.a',
+ 'lib/libturbojpeg.%s' % SHLIB_EXT],
+ 'dirs': ['include', 'share'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/l/libjxl/libjxl-0.8.2-GCCcore-12.3.0.eb b/easybuild/easyconfigs/l/libjxl/libjxl-0.8.2-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..22bddfd467b
--- /dev/null
+++ b/easybuild/easyconfigs/l/libjxl/libjxl-0.8.2-GCCcore-12.3.0.eb
@@ -0,0 +1,53 @@
+easyblock = 'CMakeMake'
+
+name = 'libjxl'
+version = '0.8.2'
+# Newer versions of libjxl require Highway >=1.0.7
+
+homepage = 'https://github.com/libjxl/libjxl'
+description = "JPEG XL image format reference implementation"
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+github_account = 'libjxl'
+source_urls = [GITHUB_SOURCE]
+sources = ['v%(version)s.tar.gz']
+checksums = ['c70916fb3ed43784eb840f82f05d390053a558e2da106e40863919238fa7b420']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('CMake', '3.26.3'),
+ ('googletest', '1.13.0'),
+ ('pkgconf', '1.9.5'),
+ ('Highway', '1.0.4'), # Highway only has a static library
+]
+
+dependencies = [
+ ('LittleCMS', '2.15'),
+ ('Brotli', '1.0.9'),
+ ('libjpeg-turbo', '2.1.5.1'),
+ ('libpng', '1.6.39'),
+ ('zlib', '1.2.13'),
+ ('giflib', '5.2.1'),
+ ('libwebp', '1.3.1'),
+ ('OpenEXR', '3.1.7'),
+ ('gperftools', '2.12'),
+]
+
+configopts = '-DJPEGXL_WARNINGS_AS_ERRORS=OFF -DJPEGXL_ENABLE_SJPEG=OFF -DJPEGXL_ENABLE_SKCMS=OFF '
+# building man pages requires/uses asciidoc (which may be installed in OS, and may fail)
+configopts += '-DJPEGXL_ENABLE_MANPAGES=OFF '
+configopts += '-DJPEGXL_FORCE_SYSTEM_BROTLI=ON -DJPEGXL_FORCE_SYSTEM_HWY=ON '
+configopts += '-DJPEGXL_FORCE_SYSTEM_GTEST=ON -DJPEGXL_FORCE_SYSTEM_LCMS2=ON '
+
+sanity_check_paths = {
+ 'files': ['bin/cjxl', 'bin/djxl', 'lib/libjxl.%s' % SHLIB_EXT],
+ 'dirs': ['include/jxl'],
+}
+
+sanity_check_commands = [
+ "cjxl --help",
+ "djxl --help",
+]
+
+moduleclass = 'lib'
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-12.3.0.eb b/easybuild/easyconfigs/l/libnsl/libnsl-2.0.1-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..a00b43e2177
--- /dev/null
+++ b/easybuild/easyconfigs/l/libnsl/libnsl-2.0.1-GCCcore-12.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': '12.3.0'}
+
+source_urls = ['https://github.com/thkukuk/%(name)s/releases/download/v%(version)s/']
+sources = [SOURCE_TAR_XZ]
+checksums = ['5c9e470b232a7acd3433491ac5221b4832f0c71318618dc6aa04dd05ffcd8fd9']
+
+builddependencies = [
+ ('binutils', '2.40'),
+]
+
+dependencies = [
+ ('libtirpc', '1.3.3'),
+]
+
+# 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/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.2.0.eb b/easybuild/easyconfigs/l/libogg/libogg-1.3.5-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..a2f34782696
--- /dev/null
+++ b/easybuild/easyconfigs/l/libogg/libogg-1.3.5-GCCcore-13.2.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.2.0'}
+
+source_urls = ['https://ftp.osuosl.org/pub/xiph/releases/ogg/']
+sources = [SOURCELOWER_TAR_XZ]
+checksums = ['c4d91be36fc8e54deae7575241e03f4211eb102afb3fc0775fbbc1b740016705']
+
+builddependencies = [('binutils', '2.40')]
+
+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/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.2.0.eb b/easybuild/easyconfigs/l/libopus/libopus-1.5.2-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..7d0630bb477
--- /dev/null
+++ b/easybuild/easyconfigs/l/libopus/libopus-1.5.2-GCCcore-13.2.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.2.0'}
+
+source_urls = ['https://downloads.xiph.org/releases/opus/']
+sources = ['opus-%(version)s.tar.gz']
+checksums = ['65c1d2f78b9f2fb20082c38cbe47c951ad5839345876e46941612ee87f9a7ce1']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('pkgconf', '2.0.3'),
+]
+
+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/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/libpciaccess/libpciaccess-0.18.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.18.1-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..7b1be7bc436
--- /dev/null
+++ b/easybuild/easyconfigs/l/libpciaccess/libpciaccess-0.18.1-GCCcore-13.3.0.eb
@@ -0,0 +1,29 @@
+easyblock = 'MesonNinja'
+
+name = 'libpciaccess'
+version = '0.18.1'
+
+homepage = 'https://cgit.freedesktop.org/xorg/lib/libpciaccess/'
+description = """Generic PCI access library."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://www.x.org/releases/individual/lib/']
+sources = [SOURCE_TAR_XZ]
+checksums = ['4af43444b38adb5545d0ed1c2ce46d9608cc47b31c2387fc5181656765a6fa76']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('Meson', '1.4.0'),
+ ('Ninja', '1.12.1'),
+ ('xorg-macros', '1.20.1'),
+]
+
+configopts = "--default-library=both" # static and shared library
+
+sanity_check_paths = {
+ 'files': ['include/pciaccess.h', 'lib/libpciaccess.a'],
+ 'dirs': ['lib/pkgconfig'],
+}
+
+moduleclass = 'system'
diff --git a/easybuild/easyconfigs/l/libpng/libpng-1.6.43-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/libpng/libpng-1.6.43-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..04fc0f259cc
--- /dev/null
+++ b/easybuild/easyconfigs/l/libpng/libpng-1.6.43-GCCcore-13.3.0.eb
@@ -0,0 +1,31 @@
+easyblock = 'ConfigureMake'
+
+name = 'libpng'
+version = '1.6.43'
+
+homepage = 'http://www.libpng.org/pub/png/libpng.html'
+
+description = "libpng is the official PNG reference library"
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = [SOURCEFORGE_SOURCE]
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['e804e465d4b109b5ad285a8fb71f0dd3f74f0068f91ce3cdfde618180c174925']
+
+builddependencies = [('binutils', '2.42')]
+
+dependencies = [('zlib', '1.3.1')]
+
+local_majminver = '%(version_major)s%(version_minor)s'
+
+sanity_check_paths = {
+ 'files': ['include/pngconf.h', 'include/png.h', 'include/pnglibconf.h',
+ 'lib/libpng.a', 'lib/libpng.%s' % SHLIB_EXT,
+ 'lib/libpng%s.a' % local_majminver,
+ 'lib/libpng%s.%s' % (local_majminver, SHLIB_EXT)],
+ 'dirs': ['bin', 'include/libpng%s' % local_majminver, 'share/man'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/l/libreadline/libreadline-8.2-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/libreadline/libreadline-8.2-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..8cf47255fdc
--- /dev/null
+++ b/easybuild/easyconfigs/l/libreadline/libreadline-8.2-GCCcore-13.3.0.eb
@@ -0,0 +1,41 @@
+easyblock = 'ConfigureMake'
+
+name = 'libreadline'
+version = '8.2'
+
+homepage = 'https://tiswww.case.edu/php/chet/readline/rltop.html'
+description = """
+ The GNU Readline library provides a set of functions for use by applications
+ that allow users to edit command lines as they are typed in. Both Emacs and
+ vi editing modes are available. The Readline library includes additional
+ functions to maintain a list of previously-entered command lines, to recall
+ and perhaps reedit those lines, and perform csh-like history expansion on
+ previous commands.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://ftp.gnu.org/gnu/readline']
+sources = ['readline-%(version)s.tar.gz']
+checksums = ['3feb7171f16a84ee82ca18a36d7b9be109a52c04f492a053331d7d1095007c35']
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+dependencies = [
+ ('ncurses', '6.5'),
+]
+
+# for the termcap symbols, use EB ncurses
+buildopts = "SHLIB_LIBS='-lncurses'"
+
+sanity_check_paths = {
+ 'files': ['lib/libreadline.a', 'lib/libhistory.a'] +
+ ['include/readline/%s' % x
+ for x in ['chardefs.h', 'history.h', 'keymaps.h', 'readline.h',
+ 'rlconf.h', 'rlstdc.h', 'rltypedefs.h', 'tilde.h']],
+ 'dirs': [],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/l/librosa/librosa-0.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/libsigc++/libsigc++-3.6.0-GCCcore-12.2.0.eb b/easybuild/easyconfigs/l/libsigc++/libsigc++-3.6.0-GCCcore-12.2.0.eb
new file mode 100644
index 00000000000..8657a57fde1
--- /dev/null
+++ b/easybuild/easyconfigs/l/libsigc++/libsigc++-3.6.0-GCCcore-12.2.0.eb
@@ -0,0 +1,32 @@
+easyblock = 'CMakeMake'
+
+name = 'libsigc++'
+version = '3.6.0'
+
+homepage = 'https://libsigcplusplus.github.io/libsigcplusplus/'
+description = """The libsigc++ package implements a typesafe callback system
+for standard C++."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.2.0'}
+toolchainopts = {'pic': True}
+
+source_urls = [FTPGNOME_SOURCE]
+sources = [SOURCELOWER_TAR_XZ]
+checksums = ['c3d23b37dfd6e39f2e09f091b77b1541fbfa17c4f0b6bf5c89baef7229080e17']
+
+builddependencies = [
+ ('binutils', '2.39'),
+ ('libxslt', '1.1.37'),
+ ('mm-common', '1.0.6'),
+ ('CMake', '3.24.3'),
+]
+
+test_cmd = 'ctest'
+runtest = '-j'
+
+sanity_check_paths = {
+ 'files': ['lib/libsigc-%%(version_major)s.0.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/l/libsigc++/libsigc++-3.6.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/l/libsigc++/libsigc++-3.6.0-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..4f452cbc432
--- /dev/null
+++ b/easybuild/easyconfigs/l/libsigc++/libsigc++-3.6.0-GCCcore-12.3.0.eb
@@ -0,0 +1,32 @@
+easyblock = 'CMakeMake'
+
+name = 'libsigc++'
+version = '3.6.0'
+
+homepage = 'https://libsigcplusplus.github.io/libsigcplusplus/'
+description = """The libsigc++ package implements a typesafe callback system
+for standard C++."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = [FTPGNOME_SOURCE]
+sources = [SOURCELOWER_TAR_XZ]
+checksums = ['c3d23b37dfd6e39f2e09f091b77b1541fbfa17c4f0b6bf5c89baef7229080e17']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('libxslt', '1.1.38'),
+ ('mm-common', '1.0.6'),
+ ('CMake', '3.26.3'),
+]
+
+test_cmd = 'ctest'
+runtest = '-j'
+
+sanity_check_paths = {
+ 'files': ['lib/libsigc-%%(version_major)s.0.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/l/libsigc++/libsigc++-3.6.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/l/libsigc++/libsigc++-3.6.0-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..e64e49e0f74
--- /dev/null
+++ b/easybuild/easyconfigs/l/libsigc++/libsigc++-3.6.0-GCCcore-13.2.0.eb
@@ -0,0 +1,32 @@
+easyblock = 'CMakeMake'
+
+name = 'libsigc++'
+version = '3.6.0'
+
+homepage = 'https://libsigcplusplus.github.io/libsigcplusplus/'
+description = """The libsigc++ package implements a typesafe callback system
+for standard C++."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+toolchainopts = {'pic': True}
+
+source_urls = [FTPGNOME_SOURCE]
+sources = [SOURCELOWER_TAR_XZ]
+checksums = ['c3d23b37dfd6e39f2e09f091b77b1541fbfa17c4f0b6bf5c89baef7229080e17']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('libxslt', '1.1.38'),
+ ('mm-common', '1.0.6'),
+ ('CMake', '3.27.6'),
+]
+
+test_cmd = 'ctest'
+runtest = '-j'
+
+sanity_check_paths = {
+ 'files': ['lib/libsigc-%%(version_major)s.0.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/l/libsndfile/libsndfile-1.2.2-GCCcore-13.2.0.eb b/easybuild/easyconfigs/l/libsndfile/libsndfile-1.2.2-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..66345e01105
--- /dev/null
+++ b/easybuild/easyconfigs/l/libsndfile/libsndfile-1.2.2-GCCcore-13.2.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.2.0'}
+
+source_urls = ['https://github.com/%(name)s/%(name)s/releases/download/%(version)s/']
+sources = [SOURCE_TAR_XZ]
+checksums = ['3799ca9924d3125038880367bf1468e53a1b7e3686a934f098b7e1d286cdb80e']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('pkgconf', '2.0.3'),
+ ('CMake', '3.27.6'),
+]
+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/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/libtasn1/libtasn1-4.19.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/l/libtasn1/libtasn1-4.19.0-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..38372984a5f
--- /dev/null
+++ b/easybuild/easyconfigs/l/libtasn1/libtasn1-4.19.0-GCCcore-12.3.0.eb
@@ -0,0 +1,25 @@
+easyblock = 'ConfigureMake'
+
+name = 'libtasn1'
+version = '4.19.0'
+
+homepage = 'https://www.gnu.org/software/libtasn1/'
+description = """Libtasn1 is the ASN.1 library used by GnuTLS, GNU Shishi and
+ some other packages. It was written by Fabio Fiorina, and has been shipped as
+ part of GnuTLS for some time but is now a proper GNU package."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = [GNU_SOURCE]
+sources = [SOURCE_TAR_GZ]
+checksums = ['1613f0ac1cf484d6ec0ce3b8c06d56263cc7242f1c23b30d82d23de345a63f7a']
+
+builddependencies = [('binutils', '2.40')]
+
+sanity_check_paths = {
+ 'files': ['bin/asn1%s' % x for x in ['Coding', 'Decoding', 'Parser']] +
+ ['lib/libtasn1.%s' % x for x in ['a', SHLIB_EXT]],
+ 'dirs': ['include'],
+}
+
+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/libtool/libtool-2.4.7-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/libtool/libtool-2.4.7-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..ae8cf1bd5b0
--- /dev/null
+++ b/easybuild/easyconfigs/l/libtool/libtool-2.4.7-GCCcore-13.3.0.eb
@@ -0,0 +1,32 @@
+easyblock = 'ConfigureMake'
+
+name = 'libtool'
+version = '2.4.7'
+
+homepage = 'https://www.gnu.org/software/libtool'
+
+description = """
+ GNU libtool is a generic library support script. Libtool hides the complexity
+ of using shared libraries behind a consistent, portable interface.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = [GNU_SOURCE]
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['04e96c2404ea70c590c546eba4202a4e12722c640016c12b9b2f1ce3d481e9a8']
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+
+dependencies = [
+ ('M4', '1.4.19'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/libtool', 'bin/libtoolize', 'lib/libltdl.%s' % SHLIB_EXT],
+ 'dirs': ['include/libltdl', 'share/libtool/loaders', 'share/man/man1'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/l/libunistring/libunistring-1.2-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/libunistring/libunistring-1.2-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..7fa2f46eb1f
--- /dev/null
+++ b/easybuild/easyconfigs/l/libunistring/libunistring-1.2-GCCcore-13.3.0.eb
@@ -0,0 +1,35 @@
+easyblock = 'ConfigureMake'
+
+name = 'libunistring'
+version = '1.2'
+
+homepage = 'https://www.gnu.org/software/libunistring/'
+
+description = """This library provides functions for manipulating Unicode strings and for
+ manipulating C strings according to the Unicode standard."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = [GNU_SOURCE]
+sources = [SOURCELOWER_TAR_XZ]
+checksums = ['632bd65ed74a881ca8a0309a1001c428bd1cbd5cd7ddbf8cedcd2e65f4dcdc44']
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+
+dependencies = [
+ ('libiconv', '1.17'),
+]
+
+parallel = 1
+
+sanity_check_paths = {
+ 'files': ['lib/libunistring.a', 'lib/libunistring.%s' % SHLIB_EXT] +
+ ['include/uni%s.h' % x for x in ['case', 'conv', 'ctype', 'lbrk', 'name', 'norm',
+ 'stdio', 'str', 'types', 'wbrk', 'width']],
+ 'dirs': ['include/unistring'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/l/libunwind/libunwind-1.8.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/libunwind/libunwind-1.8.1-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..777376a73ae
--- /dev/null
+++ b/easybuild/easyconfigs/l/libunwind/libunwind-1.8.1-GCCcore-13.3.0.eb
@@ -0,0 +1,32 @@
+easyblock = 'ConfigureMake'
+
+name = 'libunwind'
+version = '1.8.1'
+
+homepage = 'https://www.nongnu.org/libunwind/'
+description = """The primary goal of libunwind is to define a portable and efficient C programming interface
+ (API) to determine the call-chain of a program. The API additionally provides the means to manipulate the
+ preserved (callee-saved) state of each call-frame and to resume execution at any point in the call-chain
+ (non-local goto). The API supports both local (same-process) and remote (across-process) operation.
+ As such, the API is useful in a number of applications"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://github.com/libunwind/libunwind/releases/download/v%(version)s/']
+sources = [SOURCE_TAR_GZ]
+checksums = ['ddf0e32dd5fafe5283198d37e4bf9decf7ba1770b6e7e006c33e6df79e6a6157']
+
+builddependencies = [('binutils', '2.42')]
+
+dependencies = [
+ ('XZ', '5.4.5'),
+]
+
+preconfigopts = 'export LIBS="$LIBS -llzma" && export CFLAGS="$CFLAGS -fno-common" && '
+
+sanity_check_paths = {
+ 'files': ['include/libunwind.h', 'lib/libunwind.%s' % SHLIB_EXT],
+ 'dirs': []
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/l/libuv/libuv-1.48.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/l/libuv/libuv-1.48.0-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..ee537f6dcb3
--- /dev/null
+++ b/easybuild/easyconfigs/l/libuv/libuv-1.48.0-GCCcore-12.3.0.eb
@@ -0,0 +1,28 @@
+easyblock = 'ConfigureMake'
+
+name = 'libuv'
+version = '1.48.0'
+
+homepage = 'https://libuv.org'
+description = "libuv is a multi-platform support library with a focus on asynchronous I/O."
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+github_account = 'libuv'
+source_urls = [GITHUB_SOURCE]
+sources = [{'download_filename': 'v%(version)s.tar.gz', 'filename': SOURCELOWER_TAR_GZ}]
+checksums = ['8c253adb0f800926a6cbd1c6576abae0bc8eb86a4f891049b72f9e5b7dc58f33']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('Autotools', '20220317'),
+]
+
+preconfigopts = './autogen.sh; '
+
+sanity_check_paths = {
+ 'files': ['include/uv.h', 'lib/libuv.a', 'lib/libuv.%s' % SHLIB_EXT, 'lib/pkgconfig/libuv.pc'],
+ 'dirs': []
+}
+
+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.2.0.eb b/easybuild/easyconfigs/l/libvorbis/libvorbis-1.3.7-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..50a45ea05a1
--- /dev/null
+++ b/easybuild/easyconfigs/l/libvorbis/libvorbis-1.3.7-GCCcore-13.2.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.2.0'}
+
+source_urls = ['https://ftp.osuosl.org/pub/xiph/releases/vorbis/']
+sources = [SOURCE_TAR_XZ]
+checksums = ['b33cc4934322bcbf6efcbacf49e3ca01aadbea4114ec9589d1b1e9d20f72954b']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('pkgconf', '2.0.3'),
+]
+
+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/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.3.1-GCCcore-12.3.0.eb b/easybuild/easyconfigs/l/libwebp/libwebp-1.3.1-GCCcore-12.3.0.eb
index 4ac82164e4b..7a8453a029c 100644
--- a/easybuild/easyconfigs/l/libwebp/libwebp-1.3.1-GCCcore-12.3.0.eb
+++ b/easybuild/easyconfigs/l/libwebp/libwebp-1.3.1-GCCcore-12.3.0.eb
@@ -10,6 +10,7 @@ webmasters and web developers can create smaller, richer images that
make the web faster."""
toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+toolchainopts = {'pic': True}
source_urls = ['https://storage.googleapis.com/downloads.webmproject.org/releases/webp']
sources = [SOURCELOWER_TAR_GZ]
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.12.7-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/libxml2/libxml2-2.12.7-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..a8a21aceaa9
--- /dev/null
+++ b/easybuild/easyconfigs/l/libxml2/libxml2-2.12.7-GCCcore-13.3.0.eb
@@ -0,0 +1,27 @@
+name = 'libxml2'
+version = '2.12.7'
+
+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': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://download.gnome.org/sources/libxml2/%(version_major_minor)s/']
+sources = [SOURCE_TAR_XZ]
+checksums = ['24ae78ff1363a973e6d8beba941a7945da2ac056e19b53956aeb6927fd6cfb56']
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+
+dependencies = [
+ ('XZ', '5.4.5'),
+ ('zlib', '1.3.1'),
+]
+
+moduleclass = 'lib'
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/libyaml/libyaml-0.2.5-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/libyaml/libyaml-0.2.5-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..4b2e8e66632
--- /dev/null
+++ b/easybuild/easyconfigs/l/libyaml/libyaml-0.2.5-GCCcore-13.3.0.eb
@@ -0,0 +1,25 @@
+easyblock = 'ConfigureMake'
+
+name = 'libyaml'
+version = '0.2.5'
+
+homepage = 'https://pyyaml.org/wiki/LibYAML'
+description = "LibYAML is a YAML parser and emitter written in C."
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://pyyaml.org/download/%(name)s/']
+sources = ['yaml-%(version)s.tar.gz']
+checksums = ['c642ae9b75fee120b2d96c712538bd2cf283228d2337df2cf2988e3c02678ef4']
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+
+
+sanity_check_paths = {
+ 'files': ['include/yaml.h', 'lib/libyaml.a', 'lib/libyaml.%s' % SHLIB_EXT],
+ 'dirs': ['lib/pkgconfig'],
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/l/libzip/libzip-1.10.1-GCCcore-13.2.0.eb b/easybuild/easyconfigs/l/libzip/libzip-1.10.1-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..99551efad57
--- /dev/null
+++ b/easybuild/easyconfigs/l/libzip/libzip-1.10.1-GCCcore-13.2.0.eb
@@ -0,0 +1,44 @@
+easyblock = 'CMakeMake'
+
+name = 'libzip'
+version = '1.10.1'
+
+homepage = 'https://libzip.org/'
+description = "libzip is a C library for reading, creating, and modifying zip archives."
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+source_urls = ['https://github.com/nih-at/libzip/archive/']
+sources = ['v%(version)s.tar.gz']
+checksums = ['d56d857d1c3ad4a7f3a4c01a51c6a6e5530e35ab93503f62276e8ba2b306186a']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('CMake', '3.27.6'),
+]
+
+dependencies = [
+ ('OpenSSL', '1.1', '', SYSTEM),
+ ('zlib', '1.2.13'),
+ ('bzip2', '1.0.8'),
+ ('XZ', '5.4.4'),
+ ('zstd', '1.5.5'),
+]
+
+sanity_check_paths = {
+ 'files': [
+ 'bin/zipcmp',
+ 'bin/zipmerge',
+ 'bin/ziptool',
+ 'lib64/libzip.%s' % SHLIB_EXT,
+ ],
+ 'dirs': ['include', 'lib/pkgconfig'],
+}
+
+sanity_check_commands = [
+ "zipcmp -h",
+ "zipmerge -h",
+ "ziptool -h"
+]
+
+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/lil-aretomo/lil-aretomo-0.1.1-foss-2023a.eb b/easybuild/easyconfigs/l/lil-aretomo/lil-aretomo-0.1.1-foss-2023a.eb
new file mode 100644
index 00000000000..121e49d9047
--- /dev/null
+++ b/easybuild/easyconfigs/l/lil-aretomo/lil-aretomo-0.1.1-foss-2023a.eb
@@ -0,0 +1,33 @@
+# Thomas Hoffmann, EMBL Heidelberg, structures-it@embl.de, 2024/05
+easyblock = 'PythonBundle'
+
+name = 'lil-aretomo'
+version = '0.1.1'
+
+homepage = 'https://github.com/teamtomo/lil-aretomo'
+description = """
+A lightweight Python API for AreTomo.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('mrcfile', '1.5.0'),
+ ('SciPy-bundle', '2023.07'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('typer', '0.9.0', {
+ 'checksums': ['50922fd79aea2f4751a8e0408ff10d2662bd0c8bbfa84755a699f3bada2978b2'],
+ }),
+ ('lil_aretomo', version, {
+ 'checksums': ['02ccb0efbf2c06304570117f142e78331bfffdde46864e22de11c6cd7f30f178'],
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/l/line_profiler/line_profiler-4.1.2-GCCcore-13.2.0.eb b/easybuild/easyconfigs/l/line_profiler/line_profiler-4.1.2-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..b5f689a928f
--- /dev/null
+++ b/easybuild/easyconfigs/l/line_profiler/line_profiler-4.1.2-GCCcore-13.2.0.eb
@@ -0,0 +1,41 @@
+easyblock = 'PythonPackage'
+
+name = 'line_profiler'
+version = '4.1.2'
+
+homepage = 'https://github.com/pyutils/line_profiler'
+description = """line_profiler is a module for doing line-by-line profiling
+of functions. kernprof is a convenient script for running either
+line_profiler or the Python standard library's cProfile or profile modules,
+depending on what is available."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+github_account = 'pyutils'
+source_urls = [GITHUB_SOURCE]
+sources = ['v%(version)s.tar.gz']
+checksums = ['a1f3458c1dd1bf4b2d1d2657b78225f4e4e9046a1841f18cf528f01ebd3d5f43']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('scikit-build', '0.17.6'),
+ ('CMake', '3.27.6'),
+ ('Ninja', '1.11.1'),
+]
+dependencies = [
+ ('Python', '3.11.5'),
+ ('IPython', '8.17.2'),
+]
+
+use_pip = True
+download_dep_fail = True
+sanity_pip_check = True
+
+sanity_check_paths = {
+ 'files': ['bin/kernprof'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ['kernprof --help']
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/l/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/lrslib/lrslib-7.2-gompi-2023b.eb b/easybuild/easyconfigs/l/lrslib/lrslib-7.2-gompi-2023b.eb
new file mode 100644
index 00000000000..ba6714df325
--- /dev/null
+++ b/easybuild/easyconfigs/l/lrslib/lrslib-7.2-gompi-2023b.eb
@@ -0,0 +1,41 @@
+easyblock = 'ConfigureMake'
+
+name = 'lrslib'
+version = '7.2'
+
+homepage = 'http://cgm.cs.mcgill.ca/~avis/C/lrs.html'
+description = """lrslib is a self-contained ANSI C implementation of the
+reverse search algorithm for vertex enumeration/convex hull problems"""
+
+toolchain = {'name': 'gompi', 'version': '2023b'}
+toolchainopts = {'usempi': True, 'pic': True}
+
+source_urls = ['http://cgm.cs.mcgill.ca/~avis/C/lrslib/archive/']
+sources = ['lrslib-0%(version_major)s%(version_minor)s.tar.gz']
+patches = ['lrslib-%(version)s-use-EB-values.patch']
+checksums = [
+ {'lrslib-072.tar.gz': 'fc48754a1ded1d8445d40ecfbe3546e4f27d53aaee95dc2c8c0c79fb9cd532f0'},
+ {'lrslib-7.2-use-EB-values.patch': '16b0b4d987a751a45c7961bb7e0cb12aac50410a562dab3299335186456ab2ad'},
+]
+
+dependencies = [
+ ('GMP', '6.3.0'),
+]
+
+skipsteps = ['configure']
+
+# Default built plus mplrs
+buildopts = 'lrs lrsgmp mplrs CFLAGS="$CFLAGS"'
+
+installopts = 'prefix=%(installdir)s'
+
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in ['lrs', 'lrsnash']] +
+ ['include/lrslib/lrs%s.h' % h for h in ['driver', 'gmp', 'lib', 'long', 'mp', 'restart']] +
+ ['lib/liblrs.%s' % SHLIB_EXT],
+ 'dirs': []
+}
+
+sanity_check_commands = ["lrsnash --help 2>&1 | grep 'usage.*lrsnash'"]
+
+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/l/lz4/lz4-1.9.4-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/lz4/lz4-1.9.4-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..8f4914fbdde
--- /dev/null
+++ b/easybuild/easyconfigs/l/lz4/lz4-1.9.4-GCCcore-13.3.0.eb
@@ -0,0 +1,30 @@
+easyblock = 'ConfigureMake'
+
+name = 'lz4'
+version = '1.9.4'
+
+homepage = 'https://lz4.github.io/lz4/'
+description = """LZ4 is lossless compression algorithm, providing compression speed at 400 MB/s per core.
+ It features an extremely fast decoder, with speed in multiple GB/s per core."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+github_account = '%(name)s'
+source_urls = [GITHUB_SOURCE]
+sources = ['v%(version)s.tar.gz']
+checksums = ['0b0e3aa07c8c063ddf40b082bdf7e37a1562bda40a0ff5272957f3e987e0e54b']
+
+builddependencies = [('binutils', '2.42')]
+
+skipsteps = ['configure']
+
+installopts = "PREFIX=%(installdir)s"
+
+runtest = 'check'
+
+sanity_check_paths = {
+ 'files': ["bin/lz4", "lib/liblz4.%s" % SHLIB_EXT, "include/lz4.h"],
+ 'dirs': ["lib/pkgconfig"]
+}
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/m/M4/M4-1.4.19-GCCcore-13.3.0.eb b/easybuild/easyconfigs/m/M4/M4-1.4.19-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..7ea1e75f83c
--- /dev/null
+++ b/easybuild/easyconfigs/m/M4/M4-1.4.19-GCCcore-13.3.0.eb
@@ -0,0 +1,29 @@
+easyblock = 'ConfigureMake'
+
+name = 'M4'
+version = '1.4.19'
+
+homepage = 'https://www.gnu.org/software/m4/m4.html'
+description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible
+ although it has some extensions (for example, handling more than 9 positional parameters to macros).
+ GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = [GNU_SOURCE]
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['3be4a26d825ffdfda52a56fc43246456989a3630093cced3fbddf4771ee58a70']
+
+# use same binutils version that was used when building GCC toolchain
+builddependencies = [('binutils', '2.42', '', SYSTEM)]
+
+# '-fgnu89-inline' is required to avoid linking errors with older glibc's,
+# see https://github.com/easybuilders/easybuild-easyconfigs/issues/529
+configopts = "--enable-c++ CPPFLAGS=-fgnu89-inline"
+
+sanity_check_paths = {
+ 'files': ['bin/m4'],
+ 'dirs': [],
+}
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/m/M4/M4-1.4.19-GCCcore-14.2.0.eb b/easybuild/easyconfigs/m/M4/M4-1.4.19-GCCcore-14.2.0.eb
new file mode 100644
index 00000000000..c5c3ad83f3a
--- /dev/null
+++ b/easybuild/easyconfigs/m/M4/M4-1.4.19-GCCcore-14.2.0.eb
@@ -0,0 +1,29 @@
+easyblock = 'ConfigureMake'
+
+name = 'M4'
+version = '1.4.19'
+
+homepage = 'https://www.gnu.org/software/m4/m4.html'
+description = """GNU M4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible
+ although it has some extensions (for example, handling more than 9 positional parameters to macros).
+ GNU M4 also has built-in functions for including files, running shell commands, doing arithmetic, etc."""
+
+toolchain = {'name': 'GCCcore', 'version': '14.2.0'}
+
+source_urls = [GNU_SOURCE]
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['3be4a26d825ffdfda52a56fc43246456989a3630093cced3fbddf4771ee58a70']
+
+# use same binutils version that was used when building GCC toolchain
+builddependencies = [('binutils', '2.42', '', SYSTEM)]
+
+# '-fgnu89-inline' is required to avoid linking errors with older glibc's,
+# see https://github.com/easybuilders/easybuild-easyconfigs/issues/529
+configopts = "--enable-c++ CPPFLAGS=-fgnu89-inline"
+
+sanity_check_paths = {
+ 'files': ['bin/m4'],
+ 'dirs': [],
+}
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/m/MAFFT/MAFFT-7.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/MAGIC/MAGIC-3.0.0-foss-2023a.eb b/easybuild/easyconfigs/m/MAGIC/MAGIC-3.0.0-foss-2023a.eb
new file mode 100644
index 00000000000..9e22b652a23
--- /dev/null
+++ b/easybuild/easyconfigs/m/MAGIC/MAGIC-3.0.0-foss-2023a.eb
@@ -0,0 +1,48 @@
+easyblock = 'PythonBundle'
+
+name = 'MAGIC'
+version = '3.0.0'
+
+homepage = 'https://krishnaswamylab.org/projects/magic'
+description = """Markov Affinity-based Graph Imputation of Cells (MAGIC) is an algorithm for denoising high-dimensional
+ data most commonly applied to single-cell RNA sequencing data."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('matplotlib', '3.7.2'),
+ ('scikit-learn', '1.3.1'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('wrapt', '1.16.0', {
+ 'checksums': ['5f370f952971e7d17c7d1ead40e49f32345a7f7a5373571ef44d800d06b1899d'],
+ }),
+ ('Deprecated', '1.2.14', {
+ 'checksums': ['e5323eb936458dccc2582dc6f9c322c852a775a27065ff2b0c4970b9d53d01b3'],
+ }),
+ ('PyGSP', '0.5.1', {
+ 'checksums': ['4874ad88793d622d4f578b40c6617a99b1f02bc6c6c4077f0e48cd71c7275800'],
+ }),
+ ('graphtools', '1.5.3', {
+ 'checksums': ['b35ae2974d24c507fe01b110d10b1d8c949e20bc49ff9d7d04f94849f9795907'],
+ }),
+ ('scprep', '1.2.3', {
+ 'checksums': ['cc4ba4cedbba256935298f2ba6a973b4e74ea8cb9ad2632b693b6d4e6ab77c3f'],
+ }),
+ ('tasklogger', '1.2.0', {
+ 'checksums': ['b0a390dbe1d4c6f7465e58ee457b5bb381657b5ede3a85bcf45199cb56ac01a4'],
+ }),
+ ('magic-impute', version, {
+ 'modulename': 'magic',
+ 'checksums': ['0c3f6d17baf586c412c174709a19164f04e693fd1933a8c0399ae5c5bf1cfd7a'],
+ }),
+]
+
+sanity_pip_check = True
+
+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/MBX/MBX-1.1.0-foss-2023a.eb b/easybuild/easyconfigs/m/MBX/MBX-1.1.0-foss-2023a.eb
new file mode 100644
index 00000000000..3f6da986d62
--- /dev/null
+++ b/easybuild/easyconfigs/m/MBX/MBX-1.1.0-foss-2023a.eb
@@ -0,0 +1,48 @@
+easyblock = 'ConfigureMake'
+
+name = 'MBX'
+version = '1.1.0'
+
+homepage = 'https://github.com/paesanilab/MBX'
+description = "MBX is an energy and force calculator for data-driven many-body simulations"
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+toolchainopts = {'pic': True, 'openmp': True}
+
+source_urls = ['https://github.com/paesanilab/MBX/archive/']
+sources = [{'download_filename': 'v%(version)s.tar.gz', 'filename': SOURCE_TAR_GZ}]
+checksums = ['0f55f4950226defb46fd0814ad97f906ce4ffd6403af6817bd98cb3c68996692']
+
+builddependencies = [('Autotools', '20220317')]
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('GSL', '2.7'),
+]
+
+preconfigopts = 'export MBX_HOME=$PWD && autoreconf -fi && '
+
+configopts = '--enable-shared --enable-verbose CXX="$CXX"'
+
+postinstallcmds = ["cp -a plugins %(installdir)s"]
+
+maxparallel = 2
+
+runtest = 'check'
+
+modextrapaths = {'PYTHONPATH': 'plugins/python'}
+
+modextravars = {'MBX_HOME': '%(installdir)s'}
+
+sanity_check_paths = {
+ 'files': ['bin/mb_decomp', 'bin/optimize', 'bin/order_frames', 'bin/single_point',
+ 'lib/libmbx.a', 'lib/libmbx.%s' % SHLIB_EXT],
+ 'dirs': ['include', 'plugins/python/mbx', 'plugins/lammps/USER-MBX'],
+}
+
+sanity_check_commands = [
+ "optimize",
+ "python -c 'import mbx'",
+]
+
+moduleclass = 'chem'
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-R2024a.4.eb b/easybuild/easyconfigs/m/MCR/MCR-R2024a.4.eb
new file mode 100644
index 00000000000..bb746ac5151
--- /dev/null
+++ b/easybuild/easyconfigs/m/MCR/MCR-R2024a.4.eb
@@ -0,0 +1,18 @@
+name = 'MCR'
+version = 'R2024a' # runtime version 24.1
+local_update = '4'
+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 = ['ceed37dc342660c934b9f6297491f57b6d51a7f49cd1fb80b775b1f748b72d03']
+
+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/MDTraj/MDTraj-1.9.9-gfbf-2023a.eb b/easybuild/easyconfigs/m/MDTraj/MDTraj-1.9.9-gfbf-2023a.eb
new file mode 100644
index 00000000000..8f172912989
--- /dev/null
+++ b/easybuild/easyconfigs/m/MDTraj/MDTraj-1.9.9-gfbf-2023a.eb
@@ -0,0 +1,39 @@
+# Updated: Pavel Grochal (INUITS)
+
+easyblock = 'PythonBundle'
+
+name = 'MDTraj'
+version = '1.9.9'
+
+homepage = 'https://mdtraj.org'
+description = "Read, write and analyze MD trajectories with only a few lines of Python code."
+
+toolchain = {'name': 'gfbf', 'version': '2023a'}
+toolchainopts = {'openmp': True}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('zlib', '1.2.13'),
+]
+
+use_pip = True
+exts_list = [
+ ('pyparsing', '3.1.0', {
+ 'checksums': ['edb662d6fe322d6e990b1594b5feaeadf806803359e3d4d42f11e295e588f0ea'],
+ }),
+ ('astunparse', '1.6.3', {
+ 'checksums': ['5ad93a8456f0d084c3456d059fd9a92cce667963232cbf763eac3bc5b7940872'],
+ }),
+ ('mdtraj', version, {
+ 'checksums': ['1b03f7ac753af5ca07cf874842689c8d49e791ee1242510875581df6100ca15e'],
+ }),
+]
+
+# The unit tests of MDTraj are a pain to get to work: they require
+# a massive number of extra dependencies. See
+# https://github.com/mdtraj/mdtraj/blob/master/devtools/conda-recipe/meta.yaml
+
+sanity_pip_check = True
+
+moduleclass = 'chem'
diff --git a/easybuild/easyconfigs/m/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/MOFA2/MOFA2-1.14.0-foss-2023a-R-4.3.2.eb b/easybuild/easyconfigs/m/MOFA2/MOFA2-1.14.0-foss-2023a-R-4.3.2.eb
new file mode 100644
index 00000000000..99d3036b37a
--- /dev/null
+++ b/easybuild/easyconfigs/m/MOFA2/MOFA2-1.14.0-foss-2023a-R-4.3.2.eb
@@ -0,0 +1,37 @@
+easyblock = 'RPackage'
+
+name = 'MOFA2'
+version = '1.14.0'
+versionsuffix = '-R-%(rver)s'
+
+homepage = 'https://cran.r-project.org/web/packages/rhandsontable/index.html'
+description = """MOFA is a factor analysis model that provides a general framework
+ for the integration of multi-omic data sets in an unsupervised fashion. Intuitively,
+ MOFA can be viewed as a versatile and statistically rigorous generalization of principal
+ component analysis to multi-omics data. Given several data matrices with measurements
+ of multiple -omics data types on the same or on overlapping sets of samples,
+ MOFA infers an interpretable low-dimensional representation in terms of a few latent factors.
+ These learnt factors represent the driving sources of variation across data modalities,
+ thus facilitating the identification of cellular states or disease subgroups."""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+source_urls = [
+ 'https://bioconductor.org/packages/release/bioc/src/contrib/',
+ 'https://bioconductor.org/packages/3.19/bioc/src/contrib/',
+]
+sources = ['%(name)s_%(version)s.tar.gz']
+checksums = ['18975d2072c35160cc4f5218977e2c94ab82389478b65c5c6f3412c257dcc069']
+
+dependencies = [
+ ('R', '4.3.2'),
+ ('R-bundle-Bioconductor', '3.18', versionsuffix),
+ ('SeuratDisk', '20231104', versionsuffix),
+]
+
+sanity_check_paths = {
+ 'files': [],
+ 'dirs': ['%(name)s'],
+}
+
+moduleclass = 'bio'
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/MONAI/MONAI-1.3.0-foss-2022b.eb b/easybuild/easyconfigs/m/MONAI/MONAI-1.3.0-foss-2022b.eb
new file mode 100644
index 00000000000..29dbbe424ba
--- /dev/null
+++ b/easybuild/easyconfigs/m/MONAI/MONAI-1.3.0-foss-2022b.eb
@@ -0,0 +1,96 @@
+easyblock = 'PythonBundle'
+
+name = 'MONAI'
+version = '1.3.0'
+
+homepage = 'https://monai.io/'
+description = """
+MONAI is a PyTorch-based, open-source framework for deep learning in healthcare
+imaging, part of PyTorch Ecosystem.
+"""
+
+toolchain = {'name': 'foss', 'version': '2022b'}
+
+github_account = 'Project-MONAI'
+
+builddependencies = [
+ ('Ninja', '1.11.1'),
+]
+
+dependencies = [
+ ('Python', '3.10.8'),
+ ('SciPy-bundle', '2023.02'),
+ ('PyTorch', '1.13.1'),
+ ('einops', '0.7.0'),
+ ('ITK', '5.3.0'),
+ ('NiBabel', '5.2.0'),
+ ('scikit-image', '0.21.0'),
+ ('tensorboard', '2.15.1'),
+ ('torchvision', '0.14.1'),
+ ('tqdm', '4.64.1'),
+ ('Pillow', '9.4.0'),
+ ('openslide-python', '1.3.1'),
+ ('BeautifulSoup', '4.11.1'),
+]
+
+use_pip = True
+
+# install MONAI with list of 'extras', which require additional dependencies
+local_pip_extras = "einops,fire,gdown,ignite,itk,jsonschema,lmdb,nibabel,"
+local_pip_extras += "openslide,pandas,pillow,psutil,pydicom,pyyaml,scipy,"
+local_pip_extras += "skimage,tensorboard,torchvision,tqdm"
+
+# PyTorch-Ignite v0.4.11 bundled as an extension because MONAI v1.3.0 has a strict requirement on it
+exts_list = [
+ ('gdown', '4.7.1', {
+ 'checksums': ['347f23769679aaf7efa73e5655270fcda8ca56be65eb84a4a21d143989541045'],
+ }),
+ ('lmdb', '1.4.1', {
+ 'checksums': ['1f4c76af24e907593487c904ef5eba1993beb38ed385af82adb25a858f2d658d'],
+ }),
+ ('termcolor', '2.3.0', {
+ 'source_tmpl': '%(name)s-%(version)s-py3-none-any.whl',
+ 'checksums': ['3afb05607b89aed0ffe25202399ee0867ad4d3cb4180d98aaf8eefa6a5f7d475'],
+ }),
+ ('fire', '0.5.0', {
+ 'checksums': ['a6b0d49e98c8963910021f92bba66f65ab440da2982b78eb1bbf95a0a34aacc6'],
+ }),
+ ('pytorch-ignite', '0.4.11', {
+ 'modulename': 'ignite',
+ 'patches': ['PyTorch-Ignite-0.4.11_fix_error_on_importing_Events.patch'],
+ 'checksums': [
+ {'pytorch-ignite-0.4.11.tar.gz': 'ee31096a58679417097ef7f3f27d88bec40b789ac5e13cd9ed08bc89ca8ce2e2'},
+ {'PyTorch-Ignite-0.4.11_fix_error_on_importing_Events.patch':
+ 'd45c0da30c01f7ce47b7be49a6d5d6eb9529c94a0b9de89260d4b07d9d2359e0'},
+ ],
+ }),
+ (name, version, {
+ 'preinstallopts': 'BUILD_MONAI=1',
+ 'source_urls': ['https://github.com/%(github_account)s/%(name)s/archive'],
+ 'sources': [{'download_filename': '%(version)s.tar.gz', 'filename': SOURCE_TAR_GZ}],
+ 'use_pip_extras': local_pip_extras,
+ # 2 valid checksums, as source tarball provided by GitHub for MONAI 1.3.0 slightly changed at some point
+ # see also https://github.com/easybuilders/easybuild-easyconfigs/issues/20617
+ 'checksums': [('67e0f55678faad4bd38b1ea69d5de94586b20b551b8ad745415623a8b6c1c5e2',
+ '076d75458d490b4f2dafbf5974fcc8e07a86c03f39f5ef48c6689ab6e4347da9')],
+ }),
+]
+
+sanity_pip_check = True
+
+# 'pip check' does not verify whether all optional dependencies required to support 'extras'
+# are actually available, so we do it here via an import check;
+local_extra_mod_check = {x: x for x in local_pip_extras.split(",")}
+# Some special cases with different module name than extra name
+local_extra_mod_check['pillow'] = 'PIL'
+local_extra_mod_check['pyyaml'] = 'yaml'
+
+sanity_check_commands = ["python -c 'import monai; monai.config.print_config()'"]
+sanity_check_commands += ["python -c 'import %s'" % local_extra_mod_check[x] for x in local_extra_mod_check]
+
+sanity_check_paths = {
+ 'files': ['lib/python%%(pyshortver)s/site-packages/%%(namelower)s/_C.%s' % SHLIB_EXT],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages/ignite'],
+}
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/m/MONAI/MONAI-1.3.0-foss-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/m/MONAI/MONAI-1.3.0-foss-2023a-CUDA-12.1.1.eb
index a72067a307e..5c196d917a9 100644
--- a/easybuild/easyconfigs/m/MONAI/MONAI-1.3.0-foss-2023a-CUDA-12.1.1.eb
+++ b/easybuild/easyconfigs/m/MONAI/MONAI-1.3.0-foss-2023a-CUDA-12.1.1.eb
@@ -73,7 +73,10 @@ exts_list = [
'source_urls': ['https://github.com/%(github_account)s/%(name)s/archive'],
'sources': ['%(version)s.tar.gz'],
'use_pip_extras': local_pip_extras,
- 'checksums': ['67e0f55678faad4bd38b1ea69d5de94586b20b551b8ad745415623a8b6c1c5e2'],
+ # 2 valid checksums, as source tarball provided by GitHub for MONAI 1.3.0 slightly changed at some point
+ # see also https://github.com/easybuilders/easybuild-easyconfigs/issues/20617
+ 'checksums': [('67e0f55678faad4bd38b1ea69d5de94586b20b551b8ad745415623a8b6c1c5e2',
+ '076d75458d490b4f2dafbf5974fcc8e07a86c03f39f5ef48c6689ab6e4347da9')],
}),
]
diff --git a/easybuild/easyconfigs/m/MONAI/MONAI-1.3.0-foss-2023a.eb b/easybuild/easyconfigs/m/MONAI/MONAI-1.3.0-foss-2023a.eb
index c00b11caf83..1132edecf91 100644
--- a/easybuild/easyconfigs/m/MONAI/MONAI-1.3.0-foss-2023a.eb
+++ b/easybuild/easyconfigs/m/MONAI/MONAI-1.3.0-foss-2023a.eb
@@ -71,7 +71,10 @@ exts_list = [
'source_urls': ['https://github.com/%(github_account)s/%(name)s/archive'],
'sources': ['%(version)s.tar.gz'],
'use_pip_extras': local_pip_extras,
- 'checksums': ['67e0f55678faad4bd38b1ea69d5de94586b20b551b8ad745415623a8b6c1c5e2'],
+ # 2 valid checksums, as source tarball provided by GitHub for MONAI 1.3.0 slightly changed at some point
+ # see also https://github.com/easybuilders/easybuild-easyconfigs/issues/20617
+ 'checksums': [('67e0f55678faad4bd38b1ea69d5de94586b20b551b8ad745415623a8b6c1c5e2',
+ '076d75458d490b4f2dafbf5974fcc8e07a86c03f39f5ef48c6689ab6e4347da9')],
}),
]
diff --git a/easybuild/easyconfigs/m/MPC/MPC-1.3.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/m/MPC/MPC-1.3.1-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..dce3ae2d1d9
--- /dev/null
+++ b/easybuild/easyconfigs/m/MPC/MPC-1.3.1-GCCcore-13.3.0.eb
@@ -0,0 +1,35 @@
+easyblock = 'ConfigureMake'
+
+name = 'MPC'
+version = '1.3.1'
+
+homepage = 'http://www.multiprecision.org/'
+description = """Gnu Mpc is a C library for the arithmetic of
+ complex numbers with arbitrarily high precision and correct
+ rounding of the result. It extends the principles of the IEEE-754
+ standard for fixed precision real floating point numbers to
+ complex numbers, providing well-defined semantics for every
+ operation. At the same time, speed of operation at high precision
+ is a major design goal."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://ftpmirror.gnu.org/gnu/mpc/']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['ab642492f5cf882b74aa0cb730cd410a81edcdbec895183ce930e706c1c759b8']
+
+builddependencies = [('binutils', '2.42')]
+
+dependencies = [
+ ('GMP', '6.3.0'),
+ ('MPFR', '4.2.1'),
+]
+
+runtest = 'check'
+
+sanity_check_paths = {
+ 'files': ['lib/libmpc.%s' % SHLIB_EXT, 'include/mpc.h'],
+ 'dirs': []
+}
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/m/MPFI/MPFI-1.5.4-GCCcore-13.2.0.eb b/easybuild/easyconfigs/m/MPFI/MPFI-1.5.4-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..aa47b551aab
--- /dev/null
+++ b/easybuild/easyconfigs/m/MPFI/MPFI-1.5.4-GCCcore-13.2.0.eb
@@ -0,0 +1,26 @@
+easyblock = 'ConfigureMake'
+
+name = 'MPFI'
+version = '1.5.4'
+
+homepage = 'https://perso.ens-lyon.fr/nathalie.revol/software.html'
+description = "MPFI stands for Multiple Precision Floating-point Interval library."
+
+toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
+
+source_urls = ['https://perso.ens-lyon.fr/nathalie.revol/softwares/']
+sources = ['mpfi-%(version)s.tar.bz2']
+checksums = ['d20ba56a8d57d0816f028be8b18a4aa909a068efcb9a260e69577939e4199752']
+
+builddependencies = [('binutils', '2.40')]
+
+dependencies = [
+ ('MPFR', '4.2.1'),
+]
+
+sanity_check_paths = {
+ 'files': ['include/mpfi.h'] + ['lib/libmpfi.%s' % e for e in ['a', SHLIB_EXT]],
+ 'dirs': ['share'],
+}
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/m/MPFR/MPFR-4.2.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/m/MPFR/MPFR-4.2.1-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..6b5fb75a0a3
--- /dev/null
+++ b/easybuild/easyconfigs/m/MPFR/MPFR-4.2.1-GCCcore-13.3.0.eb
@@ -0,0 +1,39 @@
+easyblock = 'ConfigureMake'
+
+name = 'MPFR'
+version = '4.2.1'
+
+homepage = 'https://www.mpfr.org'
+
+description = """
+ The MPFR library is a C library for multiple-precision floating-point
+ computations with correct rounding.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://www.mpfr.org/mpfr-%(version)s/']
+sources = [SOURCELOWER_TAR_BZ2]
+checksums = ['b9df93635b20e4089c29623b19420c4ac848a1b29df1cfd59f26cab0d2666aa0']
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+
+dependencies = [
+ ('GMP', '6.3.0'),
+]
+
+runtest = 'check'
+
+# copy libmpfr.so* to /lib to make sure that it is picked up by tests
+# when EasyBuild is configured with --rpath, and clean up afterwards (let 'make install' do its job)
+pretestopts = "mkdir -p %%(installdir)s/lib && cp -a src/.libs/libmpfr.%s* %%(installdir)s/lib && " % SHLIB_EXT
+testopts = " && rm -r %(installdir)s/lib"
+
+sanity_check_paths = {
+ 'files': ['lib/libmpfr.%s' % SHLIB_EXT, 'include/mpfr.h'],
+ 'dirs': [],
+}
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/m/MPICH/MPICH-4.2.1-GCC-12.3.0.eb b/easybuild/easyconfigs/m/MPICH/MPICH-4.2.1-GCC-12.3.0.eb
new file mode 100644
index 00000000000..08f9b0e3d4d
--- /dev/null
+++ b/easybuild/easyconfigs/m/MPICH/MPICH-4.2.1-GCC-12.3.0.eb
@@ -0,0 +1,20 @@
+name = 'MPICH'
+version = '4.2.1'
+
+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': '12.3.0'}
+
+source_urls = ['https://www.mpich.org/static/downloads/%(version)s']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['23331b2299f287c3419727edc2df8922d7e7abbb9fd0ac74e03b9966f9ad42d7']
+
+configopts = 'FFLAGS="-w -fallow-argument-mismatch -O2" --with-devices=ch4:ucx --with-ucx=$EBROOTUCX'
+
+dependencies = [
+ ('UCX', '1.14.1'),
+]
+
+moduleclass = 'mpi'
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/MUMPS/MUMPS-5.6.1-foss-2023b-metis.eb b/easybuild/easyconfigs/m/MUMPS/MUMPS-5.6.1-foss-2023b-metis.eb
new file mode 100644
index 00000000000..b9fb9f3ce74
--- /dev/null
+++ b/easybuild/easyconfigs/m/MUMPS/MUMPS-5.6.1-foss-2023b-metis.eb
@@ -0,0 +1,35 @@
+name = 'MUMPS'
+version = '5.6.1'
+versionsuffix = '-metis'
+
+homepage = 'https://graal.ens-lyon.fr/MUMPS/'
+description = "A parallel sparse direct solver"
+
+toolchain = {'name': 'foss', 'version': '2023b'}
+toolchainopts = {'pic': True, 'usempi': True}
+
+source_urls = ['https://graal.ens-lyon.fr/MUMPS/']
+sources = ['%(name)s_%(version)s.tar.gz']
+patches = [
+ '%(name)s-%(version)s_shared-pord.patch', # builds the shared libs of PORD
+ '%(name)s-%(version)s_shared-mumps.patch', # builds shared libs of MUMPS
+]
+checksums = [
+ {'MUMPS_5.6.1.tar.gz': '1920426d543e34d377604070fde93b8d102aa38ebdf53300cbce9e15f92e2896'},
+ {'MUMPS-5.6.1_shared-pord.patch': '51d3685208a42581b462592eea977f185d87e871fb65e8e90a54dd2ad18ac715'},
+ {'MUMPS-5.6.1_shared-mumps.patch': '27f788a5f85e8c9a6a7ec1651097b87c1de0ede0be943df7a10fa7c1ff5f494f'},
+]
+
+dependencies = [
+ ('SCOTCH', '7.0.4'),
+ ('METIS', '5.1.0'),
+]
+
+parallel = 1
+
+# fix 'Type mismatch between actual argument' errors with GCC 10.x
+prebuildopts = 'export FFLAGS="$FFLAGS -fallow-argument-mismatch" && '
+
+buildopts = 'all SONAME_VERSION="%(version)s"'
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/m/MUMPS/MUMPS-5.7.2-foss-2023b-parmetis.eb b/easybuild/easyconfigs/m/MUMPS/MUMPS-5.7.2-foss-2023b-parmetis.eb
new file mode 100644
index 00000000000..1b7b70075c2
--- /dev/null
+++ b/easybuild/easyconfigs/m/MUMPS/MUMPS-5.7.2-foss-2023b-parmetis.eb
@@ -0,0 +1,27 @@
+name = 'MUMPS'
+version = '5.7.2'
+versionsuffix = '-parmetis'
+
+homepage = 'https://graal.ens-lyon.fr/MUMPS/'
+description = "A parallel sparse direct solver"
+
+toolchain = {'name': 'foss', 'version': '2023b'}
+toolchainopts = {'pic': True, 'usempi': True}
+
+source_urls = ['http://mumps-solver.org/']
+sources = ['%(name)s_%(version)s.tar.gz']
+checksums = ['1362d377ce7422fc886c55212b4a4d2c381918b5ca4478f682a22d0627a8fbf8']
+
+dependencies = [
+ ('SCOTCH', '7.0.4'),
+ ('ParMETIS', '4.0.3'),
+]
+
+parallel = 1
+
+# fix 'Type mismatch between actual argument' errors with GCC 10.x
+prebuildopts = 'export FFLAGS="$FFLAGS -fallow-argument-mismatch" && '
+
+buildopts = 'all SONAME_VERSION="%(version)s"'
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/m/MUMPS/MUMPS-5.7.2-intel-2023b-parmetis.eb b/easybuild/easyconfigs/m/MUMPS/MUMPS-5.7.2-intel-2023b-parmetis.eb
new file mode 100644
index 00000000000..589710ed6ee
--- /dev/null
+++ b/easybuild/easyconfigs/m/MUMPS/MUMPS-5.7.2-intel-2023b-parmetis.eb
@@ -0,0 +1,27 @@
+name = 'MUMPS'
+version = '5.7.2'
+versionsuffix = '-parmetis'
+
+homepage = 'https://graal.ens-lyon.fr/MUMPS/'
+description = "A parallel sparse direct solver"
+
+toolchain = {'name': 'intel', 'version': '2023b'}
+toolchainopts = {'pic': True, 'usempi': True}
+
+source_urls = ['http://mumps-solver.org/']
+sources = ['%(name)s_%(version)s.tar.gz']
+checksums = ['1362d377ce7422fc886c55212b4a4d2c381918b5ca4478f682a22d0627a8fbf8']
+
+dependencies = [
+ ('SCOTCH', '7.0.4'),
+ ('ParMETIS', '4.0.3'),
+]
+
+parallel = 1
+
+# fix 'Type mismatch between actual argument' errors with GCC 10.x
+prebuildopts = 'export FFLAGS="$FFLAGS -fallow-argument-mismatch" && '
+
+buildopts = 'all SONAME_VERSION="%(version)s"'
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/m/MUMmer/MUMmer-4.0.0rc1-GCCcore-11.2.0.eb b/easybuild/easyconfigs/m/MUMmer/MUMmer-4.0.0rc1-GCCcore-11.2.0.eb
index 609e244fec2..c261d2484b3 100644
--- a/easybuild/easyconfigs/m/MUMmer/MUMmer-4.0.0rc1-GCCcore-11.2.0.eb
+++ b/easybuild/easyconfigs/m/MUMmer/MUMmer-4.0.0rc1-GCCcore-11.2.0.eb
@@ -8,7 +8,7 @@ easyblock = 'ConfigureMake'
name = 'MUMmer'
version = '4.0.0rc1'
-homepage = 'http://mummer.sourceforge.net/'
+homepage = 'https://mummer.sourceforge.net/'
description = """
MUMmer is a system for rapidly aligning entire genomes,
@@ -22,7 +22,15 @@ source_urls = ['https://github.com/gmarcais/mummer/releases/download/v%(version)
sources = ['%(namelower)s-%(version)s.tar.gz']
checksums = ['85006adb2d6539c2f738c3e3bb14b58bb6f62cd6c6ca5ede884a87ae76e07d1d']
-builddependencies = [('binutils', '2.37')]
+builddependencies = [
+ ('binutils', '2.37'),
+]
+
+dependencies = [
+ ('gnuplot', '5.4.2'),
+]
+
+configopts = 'GNUPLOT=gnuplot'
sanity_check_paths = {
'files': ['bin/mummer', 'bin/annotate', 'bin/combineMUMs', 'bin/delta-filter',
diff --git a/easybuild/easyconfigs/m/MUMmer/MUMmer-4.0.0rc1-GCCcore-11.3.0.eb b/easybuild/easyconfigs/m/MUMmer/MUMmer-4.0.0rc1-GCCcore-11.3.0.eb
index d078c854c66..f403869b209 100644
--- a/easybuild/easyconfigs/m/MUMmer/MUMmer-4.0.0rc1-GCCcore-11.3.0.eb
+++ b/easybuild/easyconfigs/m/MUMmer/MUMmer-4.0.0rc1-GCCcore-11.3.0.eb
@@ -22,7 +22,15 @@ source_urls = ['https://github.com/gmarcais/mummer/releases/download/v%(version)
sources = ['%(namelower)s-%(version)s.tar.gz']
checksums = ['85006adb2d6539c2f738c3e3bb14b58bb6f62cd6c6ca5ede884a87ae76e07d1d']
-builddependencies = [('binutils', '2.38')]
+builddependencies = [
+ ('binutils', '2.38'),
+]
+
+dependencies = [
+ ('gnuplot', '5.4.4'),
+]
+
+configopts = 'GNUPLOT=gnuplot'
sanity_check_paths = {
'files': ['bin/mummer', 'bin/annotate', 'bin/combineMUMs', 'bin/delta-filter',
diff --git a/easybuild/easyconfigs/m/MUMmer/MUMmer-4.0.0rc1-GCCcore-12.2.0.eb b/easybuild/easyconfigs/m/MUMmer/MUMmer-4.0.0rc1-GCCcore-12.2.0.eb
index b2d716125cf..ce38884c04c 100644
--- a/easybuild/easyconfigs/m/MUMmer/MUMmer-4.0.0rc1-GCCcore-12.2.0.eb
+++ b/easybuild/easyconfigs/m/MUMmer/MUMmer-4.0.0rc1-GCCcore-12.2.0.eb
@@ -24,7 +24,15 @@ source_urls = ['https://github.com/gmarcais/mummer/releases/download/v%(version)
sources = ['%(namelower)s-%(version)s.tar.gz']
checksums = ['85006adb2d6539c2f738c3e3bb14b58bb6f62cd6c6ca5ede884a87ae76e07d1d']
-builddependencies = [('binutils', '2.39')]
+builddependencies = [
+ ('binutils', '2.39'),
+]
+
+dependencies = [
+ ('gnuplot', '5.4.6'),
+]
+
+configopts = 'GNUPLOT=gnuplot'
sanity_check_paths = {
'files': ['bin/mummer', 'bin/annotate', 'bin/combineMUMs', 'bin/delta-filter',
diff --git a/easybuild/easyconfigs/m/MUMmer/MUMmer-4.0.0rc1-GCCcore-12.3.0.eb b/easybuild/easyconfigs/m/MUMmer/MUMmer-4.0.0rc1-GCCcore-12.3.0.eb
index 46bb7b4a03f..809143d9839 100644
--- a/easybuild/easyconfigs/m/MUMmer/MUMmer-4.0.0rc1-GCCcore-12.3.0.eb
+++ b/easybuild/easyconfigs/m/MUMmer/MUMmer-4.0.0rc1-GCCcore-12.3.0.eb
@@ -25,7 +25,15 @@ source_urls = ['https://github.com/gmarcais/mummer/releases/download/v%(version)
sources = ['%(namelower)s-%(version)s.tar.gz']
checksums = ['85006adb2d6539c2f738c3e3bb14b58bb6f62cd6c6ca5ede884a87ae76e07d1d']
-builddependencies = [('binutils', '2.40')]
+builddependencies = [
+ ('binutils', '2.40'),
+]
+
+dependencies = [
+ ('gnuplot', '5.4.8'),
+]
+
+configopts = 'GNUPLOT=gnuplot'
sanity_check_paths = {
'files': ['bin/mummer', 'bin/annotate', 'bin/combineMUMs', 'bin/delta-filter',
diff --git a/easybuild/easyconfigs/m/MUSCLE/MUSCLE-5.1.0-GCCcore-12.2.0.eb b/easybuild/easyconfigs/m/MUSCLE/MUSCLE-5.1.0-GCCcore-12.2.0.eb
new file mode 100644
index 00000000000..8af91759937
--- /dev/null
+++ b/easybuild/easyconfigs/m/MUSCLE/MUSCLE-5.1.0-GCCcore-12.2.0.eb
@@ -0,0 +1,39 @@
+easyblock = 'MakeCp'
+
+name = 'MUSCLE'
+version = '5.1.0'
+
+homepage = 'https://drive5.com/muscle/'
+description = """MUSCLE is one of the best-performing multiple alignment programs
+ according to published benchmark tests, with accuracy and speed that are consistently
+ better than CLUSTALW. MUSCLE can align hundreds of sequences in seconds. Most users
+ learn everything they need to know about MUSCLE in a few minutes-only a handful of
+ command-line options are needed to perform common alignment tasks."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.2.0'}
+
+github_account = 'rcedgar'
+source_urls = [GITHUB_LOWER_SOURCE]
+sources = ['%(version)s.tar.gz']
+checksums = ['2bba8b06e3ccabf6465fa26f459763b2029d7e7b9596881063e3aaba60d9e87d']
+
+builddependencies = [
+ ('binutils', '2.39'),
+]
+
+start_dir = 'src'
+
+# Use build environment defined by EasyBuild
+prebuildopts = "sed -i 's/$(CPPOPTS)/$(CPPOPTS) $(CXXFLAGS) $(CPPFLAGS)/g' Makefile &&"
+buildopts = "CPP=${CXX} CC=${CC}"
+
+files_to_copy = [(['Linux/muscle'], 'bin')]
+
+sanity_check_paths = {
+ 'files': ['bin/muscle'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["muscle -h"]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/m/Mako/Mako-1.3.5-GCCcore-13.3.0.eb b/easybuild/easyconfigs/m/Mako/Mako-1.3.5-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..6df66e4a2e0
--- /dev/null
+++ b/easybuild/easyconfigs/m/Mako/Mako-1.3.5-GCCcore-13.3.0.eb
@@ -0,0 +1,35 @@
+easyblock = 'PythonBundle'
+
+name = 'Mako'
+version = '1.3.5'
+
+homepage = 'https://www.makotemplates.org'
+description = """A super-fast templating language that borrows the best ideas from the existing templating languages"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+builddependencies = [('binutils', '2.42')]
+
+dependencies = [('Python', '3.12.3')]
+
+use_pip = True
+
+exts_list = [
+ ('MarkupSafe', '2.1.5', {
+ 'checksums': ['d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b'],
+ }),
+ (name, version, {
+ 'checksums': ['48dbc20568c1d276a2698b36d968fa76161bf127194907ea6fc594fa81f943bc'],
+ }),
+]
+
+sanity_pip_check = True
+
+sanity_check_paths = {
+ 'files': ['bin/mako-render'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages/%(namelower)s'],
+}
+
+sanity_check_commands = ["mako-render --help"]
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/m/MariaDB/MariaDB-11.6.0-GCC-12.3.0.eb b/easybuild/easyconfigs/m/MariaDB/MariaDB-11.6.0-GCC-12.3.0.eb
new file mode 100644
index 00000000000..35743343440
--- /dev/null
+++ b/easybuild/easyconfigs/m/MariaDB/MariaDB-11.6.0-GCC-12.3.0.eb
@@ -0,0 +1,65 @@
+easyblock = 'CMakeMake'
+
+name = 'MariaDB'
+version = '11.6.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': '12.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.6.0.tar.gz': '8fd5b593aee3920eb434c37ec44779d565fe96ef7dfd6b35a646fe7221103e11'},
+ {'MariaDB-10.1.13-link-rt-for-jemalloc.patch': '8295837e623f6c782e1d64b00e0877ea98cce4bf8846755bb86c8a7732797c19'},
+]
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+ ('libaio', '0.3.113'),
+]
+
+dependencies = [
+ ('ncurses', '6.4'),
+ ('zlib', '1.2.13'),
+ ('LZO', '2.10'), # optional
+ ('lz4', '1.9.4'), # optional
+ ('XZ', '5.4.2'), # optional
+ ('jemalloc', '5.3.0'), # optional
+ ('snappy', '1.1.10'), # needed by RocksDB; optional for InnoDB
+ ('libxml2', '2.11.4'), # needed by Connect XML
+ ('Boost', '1.82.0'), # needed by OQGraph
+ ('Judy', '1.0.5'), # needed by OQGraph
+ ('PCRE2', '10.42'),
+ ('OpenSSL', '1.1', '', 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/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.6-GCCcore-12.3.0.eb b/easybuild/easyconfigs/m/Markdown/Markdown-3.6-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..84b4c527498
--- /dev/null
+++ b/easybuild/easyconfigs/m/Markdown/Markdown-3.6-GCCcore-12.3.0.eb
@@ -0,0 +1,24 @@
+easyblock = 'PythonPackage'
+
+name = 'Markdown'
+version = '3.6'
+
+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': '12.3.0'}
+
+sources = [SOURCE_TAR_GZ]
+checksums = ['ed4f41f6daecbeeb96e576ce414c41d2d876daa9a16cb35fa8ed8c2ddfad0224']
+
+builddependencies = [('binutils', '2.40')]
+dependencies = [('Python', '3.11.3')]
+
+download_dep_fail = True
+sanity_pip_check = True
+use_pip = True
+
+moduleclass = 'devel'
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/Maven/Maven-3.9.7.eb b/easybuild/easyconfigs/m/Maven/Maven-3.9.7.eb
new file mode 100644
index 00000000000..63a55f376df
--- /dev/null
+++ b/easybuild/easyconfigs/m/Maven/Maven-3.9.7.eb
@@ -0,0 +1,26 @@
+# Contribution from the Crick HPC team
+# uploaded by J. Sassmannshausen
+
+easyblock = 'PackedBinary'
+
+name = 'Maven'
+version = '3.9.7'
+
+homepage = 'https://maven.apache.org/index.html'
+description = """Binary maven install, Apache Maven is a software project management and comprehension tool. Based on
+the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a
+central piece of information.
+"""
+
+toolchain = SYSTEM
+
+source_urls = ['https://archive.apache.org/dist/maven/maven-%(version_major)s/%(version)s/binaries/']
+sources = ['apache-maven-%(version)s-bin.tar.gz']
+checksums = ['c8fb9f620e5814588c2241142bbd9827a08e3cb415f7aa437f2ed44a3eeab62c']
+
+sanity_check_paths = {
+ 'files': ['bin/mvn'],
+ 'dirs': [],
+}
+
+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/Mesa/Mesa-24.1.3-GCCcore-13.3.0.eb b/easybuild/easyconfigs/m/Mesa/Mesa-24.1.3-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..5eda042c494
--- /dev/null
+++ b/easybuild/easyconfigs/m/Mesa/Mesa-24.1.3-GCCcore-13.3.0.eb
@@ -0,0 +1,68 @@
+# This is a Mesa using software rendering via Gallium-DRI and libglvnd
+# - libglvnd can dynamically choose between system-installed NVidia
+# libGLX/libEGL or the software renderers provided by this Mesa
+# - EGL is available
+#
+# Software renderers enabled (swr deprecated as of v22):
+# - llvmpipe: uses LLVM for JIT code generation (multi-threaded)
+# - softpipe: a reference Gallium driver
+# Default renderer is llvmpipe. To use softpipe, set the environment
+# variable GALLIUM_DRIVER=softpipe
+
+name = 'Mesa'
+version = '24.1.3'
+
+homepage = 'https://www.mesa3d.org/'
+description = """Mesa is an open-source implementation of the OpenGL specification -
+ a system for rendering interactive 3D graphics."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = [
+ 'https://mesa.freedesktop.org/archive/',
+ 'https://mesa.freedesktop.org/archive/%(version)s',
+ 'ftp://ftp.freedesktop.org/pub/mesa/%(version)s',
+ 'ftp://ftp.freedesktop.org/pub/mesa/older-versions/%(version_major)s.x/%(version)s',
+ 'ftp://ftp.freedesktop.org/pub/mesa/older-versions/%(version_major)s.x',
+]
+sources = [SOURCELOWER_TAR_XZ]
+checksums = ['63236426b25a745ba6aa2d6daf8cd769d5ea01887b0745ab7124d2ef33a9020d']
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('Meson', '1.4.0'),
+ ('Ninja', '1.12.1'),
+ ('flex', '2.6.4'),
+ ('Bison', '3.8.2'),
+ ('pkgconf', '2.2.0'),
+ ('Mako', '1.3.5'),
+ ('libxml2', '2.12.7'),
+ ('expat', '2.6.2'),
+ ('gettext', '0.22.5'),
+]
+
+dependencies = [
+ ('zlib', '1.3.1'),
+ ('zstd', '1.5.6'),
+ ('libdrm', '2.4.122'),
+ ('libglvnd', '1.7.0'),
+ ('libunwind', '1.8.1'),
+ ('LLVM', '18.1.8'),
+ ('X11', '20240607'),
+ ('Wayland', '1.23.0'),
+]
+
+configopts = "-Dplatforms=x11,wayland -Dosmesa=true -Dvulkan-drivers='swrast' -Dvulkan-layers='device-select' "
+configopts += "-Dllvm=enabled -Dshared-llvm=enabled -Dlibunwind=enabled -Dglvnd=true "
+configopts += "-Dvideo-codecs=vc1dec,h264dec,h264enc,h265dec,h265enc "
+
+# Easybuild will automatically add appropriate Gallium drivers for the processor architecture of the host
+# If you need a different configuration, it possible to override those values by setting your own configopts
+# configopts += " -Dgallium-drivers=swrast"
+
+# symlink indirect to mesa GLX, similar to Debian, see
+# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=881789
+# This helps in certain X forwarding situations (e.g. XQuartz)
+postinstallcmds = ["ln -s libGLX_mesa.so.0 %(installdir)s/lib/libGLX_indirect.so.0"]
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/m/MeshLab/MeshLab-2023.12-GCC-12.3.0.eb b/easybuild/easyconfigs/m/MeshLab/MeshLab-2023.12-GCC-12.3.0.eb
new file mode 100644
index 00000000000..ca152c147be
--- /dev/null
+++ b/easybuild/easyconfigs/m/MeshLab/MeshLab-2023.12-GCC-12.3.0.eb
@@ -0,0 +1,47 @@
+easyblock = 'CMakeNinja'
+
+name = 'MeshLab'
+version = '2023.12'
+
+homepage = 'https://github.com/cnr-isti-vclab/meshlab'
+description = 'The open source mesh processing system.'
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+
+sources = [{
+ 'filename': '%(name)s-%(version)s.tar.gz',
+ 'git_config': {
+ 'url': 'https://github.com/cnr-isti-vclab',
+ 'repo_name': '%(namelower)s',
+ 'tag': '%(name)s-%(version)s',
+ 'recursive': True,
+ 'keep_git_dir': True,
+ },
+}]
+checksums = [None]
+
+builddependencies = [
+ ('CMake', '3.26.3'),
+ ('Ninja', '1.11.1'),
+ ('pkgconf', '1.9.5'),
+ ('patchelf', '0.18.0'),
+ ('Eigen', '3.4.0'),
+]
+
+dependencies = [
+ ('Qt5', '5.15.10'),
+ ('Mesa', '23.1.4'),
+ ('libGLU', '9.0.3'),
+ ('CGAL', '5.6'),
+ ('Boost', '1.82.0'),
+ ('MPFR', '4.2.0'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/meshlab'],
+ 'dirs': ['share'],
+}
+
+sanity_check_commands = ['meshlab --help']
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/m/Meson/Meson-1.4.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/m/Meson/Meson-1.4.0-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..7e8d5b0b7bb
--- /dev/null
+++ b/easybuild/easyconfigs/m/Meson/Meson-1.4.0-GCCcore-13.3.0.eb
@@ -0,0 +1,36 @@
+easyblock = 'PythonPackage'
+
+name = 'Meson'
+version = '1.4.0'
+
+homepage = 'https://mesonbuild.com'
+description = "Meson is a cross-platform build system designed to be both as fast and as user friendly as possible."
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['8fd6630c25c27f1489a8a0392b311a60481a3c161aa699b330e25935b750138d']
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+
+dependencies = [
+ ('Python', '3.12.3'), # includes required 'wheel' package
+ ('Ninja', '1.12.1'),
+]
+
+download_dep_fail = True
+use_pip = True
+sanity_pip_check = True
+
+options = {'modulename': 'mesonbuild'}
+
+sanity_check_paths = {
+ 'files': ['bin/meson'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = ["meson --help"]
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/m/Miniconda3/Miniconda3-23.10.0-1.eb b/easybuild/easyconfigs/m/Miniconda3/Miniconda3-23.10.0-1.eb
new file mode 100644
index 00000000000..3fd68df4e5c
--- /dev/null
+++ b/easybuild/easyconfigs/m/Miniconda3/Miniconda3-23.10.0-1.eb
@@ -0,0 +1,27 @@
+easyblock = 'EB_Anaconda'
+
+name = 'Miniconda3'
+version = '23.10.0-1'
+
+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/']
+local_arch = {'arm64': 'aarch64'}.get(ARCH, ARCH)
+sources = ['%%(name)s-py311_%%(version)s-Linux-%s.sh' % local_arch]
+checksums = [
+ {
+ '%(name)s-py311_%(version)s-Linux-x86_64.sh':
+ 'd0643508fa49105552c94a523529f4474f91730d3e0d1f168f1700c43ae67595',
+ '%(name)s-py311_%(version)s-Linux-ppc64le.sh':
+ '1a2eda0a9a52a4bd058abbe9de5bb2bc751fcd7904c4755deffdf938d6f4436e',
+ '%(name)s-py311_%(version)s-Linux-aarch64.sh':
+ 'a60e70ad7e8ac5bb44ad876b5782d7cdc66e10e1f45291b29f4f8d37cc4aa2c8',
+ }
+]
+
+moduleclass = 'lang'
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/MultiQC/MultiQC-1.22.3-foss-2023b.eb b/easybuild/easyconfigs/m/MultiQC/MultiQC-1.22.3-foss-2023b.eb
new file mode 100644
index 00000000000..ef34f8747cf
--- /dev/null
+++ b/easybuild/easyconfigs/m/MultiQC/MultiQC-1.22.3-foss-2023b.eb
@@ -0,0 +1,80 @@
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+# Adam Huffman
+# The Francis Crick Institute
+# Elements derived from work by Pablo Escobar
+# sciCORE - University of Basel
+# SIB Swiss Institute of Bioinformatics
+
+# Note that Click in Python 3 requires that you change your locale to unicode before invoking your Python script.
+# See: https://click.palletsprojects.com/en/7.x/python3/
+
+easyblock = 'PythonBundle'
+
+name = 'MultiQC'
+version = '1.22.3'
+
+homepage = 'https://multiqc.info'
+description = """Aggregate results from bioinformatics analyses across many samples into a single report.
+
+ MultiQC searches a given directory for analysis logs and compiles an HTML report. It's a general
+ use tool, perfect for summarising the output from numerous bioinformatics tools."""
+
+toolchain = {'name': 'foss', 'version': '2023b'}
+
+builddependencies = [('hatchling', '1.18.0')]
+
+dependencies = [
+ ('Python', '3.11.5'),
+ ('Python-bundle-PyPI', '2023.10'),
+ ('Kaleido', '0.2.1'),
+ ('matplotlib', '3.8.2'),
+ ('plotly.py', '5.18.0'),
+ ('pydantic', '2.7.4'),
+ ('tqdm', '4.66.2'),
+ ('Pillow', '10.2.0'),
+ ('PyYAML', '6.0.1'),
+ ('networkx', '3.2.1'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('colormath', '3.0.0', {
+ 'checksums': ['3d4605af344527da0e4f9f504fad7ddbebda35322c566a6c72e28edb1ff31217'],
+ }),
+ ('humanfriendly', '10.0', {
+ 'checksums': ['6b0b831ce8f15f7300721aa49829fc4e83921a9a301cc7f606be6686a2288ddc'],
+ }),
+ ('Markdown', '3.6', {
+ 'checksums': ['ed4f41f6daecbeeb96e576ce414c41d2d876daa9a16cb35fa8ed8c2ddfad0224'],
+ }),
+ ('coloredlogs', '15.0.1', {
+ 'checksums': ['7c991aa71a4577af2f82600d8f8f3a89f936baeaf9b50a9c197da014e5bf16b0'],
+ }),
+ ('humanize', '4.9.0', {
+ 'checksums': ['582a265c931c683a7e9b8ed9559089dea7edcf6cc95be39a3cbc2c5d5ac2bcfa'],
+ }),
+ ('pyaml_env', '1.2.1', {
+ 'checksums': ['6d5dc98c8c82df743a132c196e79963050c9feb05b0a6f25f3ad77771d3d95b0'],
+ }),
+ ('spectra', '0.0.11', {
+ 'checksums': ['8eb362a5187cb63cee13cd01186799c0c791a3ad3bec57b279132e12521762b8'],
+ }),
+ ('typeguard', '4.3.0', {
+ 'checksums': ['92ee6a0aec9135181eae6067ebd617fd9de8d75d714fb548728a4933b1dea651'],
+ }),
+ ('multiqc', version, {
+ 'checksums': ['5f2cc3c417b5ed4ad57bdff02d93bb7f4c6e6677768ddad1cde7b9b1e04b5854'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/multiqc'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+sanity_check_commands = ["multiqc --help"]
+
+sanity_pip_check = True
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/m/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/make/make-4.4.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/m/make/make-4.4.1-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..040ca1f7716
--- /dev/null
+++ b/easybuild/easyconfigs/m/make/make-4.4.1-GCCcore-13.3.0.eb
@@ -0,0 +1,29 @@
+easyblock = 'ConfigureMake'
+
+name = 'make'
+version = '4.4.1'
+
+homepage = 'https://www.gnu.org/software/make/make.html'
+description = "GNU version of make utility"
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = [GNU_SOURCE]
+sources = [SOURCE_TAR_GZ]
+checksums = ['dd16fb1d67bfab79a72f5e8390735c49e3e8e70b4945a15ab1f81ddb78658fb3']
+
+builddependencies = [('binutils', '2.42')]
+
+postinstallcmds = ["cd %(installdir)s/bin && ln -s make gmake"]
+
+sanity_check_paths = {
+ 'files': ['bin/gmake', 'bin/make'],
+ 'dirs': []
+}
+
+sanity_check_commands = [
+ "gmake --help",
+ "make --help",
+]
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/m/makedepend/makedepend-1.0.9-GCCcore-13.2.0.eb b/easybuild/easyconfigs/m/makedepend/makedepend-1.0.9-GCCcore-13.2.0.eb
new file mode 100644
index 00000000000..94178adcc23
--- /dev/null
+++ b/easybuild/easyconfigs/m/makedepend/makedepend-1.0.9-GCCcore-13.2.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.2.0'}
+
+source_urls = [XORG_UTIL_SOURCE]
+sources = [SOURCE_TAR_GZ]
+checksums = ['bc94ffda6cd4671603a69c39dbe8f96b317707b9185b2aaa3b54b5d134b41884']
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('xproto', '7.0.31'),
+ ('xorg-macros', '1.20.0'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/makedepend'],
+ 'dirs': [],
+}
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/m/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/makefun/makefun-1.15.2-GCCcore-12.3.0.eb b/easybuild/easyconfigs/m/makefun/makefun-1.15.2-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..b4b0097cc53
--- /dev/null
+++ b/easybuild/easyconfigs/m/makefun/makefun-1.15.2-GCCcore-12.3.0.eb
@@ -0,0 +1,32 @@
+# Thomas Hoffmann, EMBL Heidelberg, structures-it@embl.de, 2024/02
+easyblock = 'PythonBundle'
+
+name = 'makefun'
+version = '1.15.2'
+
+homepage = 'https://github.com/smarie/python-makefun'
+description = """Small library to dynamically create python functions.
+makefun helps you create functions dynamically, with the signature of your
+choice. It was largely inspired by decorator and functools, and created mainly
+to cover some of their limitations."""
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('poetry', '1.5.1'),
+]
+dependencies = [
+ ('Python', '3.11.3'),
+]
+
+use_pip = True
+
+exts_list = [
+ (name, version, {
+ 'checksums': ['16f2a2b34d9ee0c2b578c960a1808c974e2822cf79f6e9b9c455aace10882d45'],
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'lib'
diff --git a/easybuild/easyconfigs/m/makeinfo/makeinfo-7.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/m/makeinfo/makeinfo-7.1-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..b2d35c079d4
--- /dev/null
+++ b/easybuild/easyconfigs/m/makeinfo/makeinfo-7.1-GCCcore-13.3.0.eb
@@ -0,0 +1,25 @@
+easyblock = 'ConfigureMake'
+
+name = 'makeinfo'
+version = '7.1'
+
+homepage = 'https://www.gnu.org/software/texinfo/'
+description = """makeinfo is part of the Texinfo project, the official documentation format of the GNU project."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+source_urls = ['https://ftpmirror.gnu.org/gnu/texinfo']
+sources = ['texinfo-%(version)s.tar.xz']
+checksums = ['deeec9f19f159e046fdf8ad22231981806dac332cc372f1c763504ad82b30953']
+
+builddependencies = [('binutils', '2.42')]
+dependencies = [('Perl', '5.38.2')]
+
+sanity_check_paths = {
+ 'files': ['bin/makeinfo'],
+ 'dirs': ['share'],
+}
+
+sanity_check_commands = ["makeinfo --help"]
+
+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/matlab-proxy/matlab-proxy-0.18.1-GCCcore-12.3.0.eb b/easybuild/easyconfigs/m/matlab-proxy/matlab-proxy-0.18.1-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..bf1c9fec2ed
--- /dev/null
+++ b/easybuild/easyconfigs/m/matlab-proxy/matlab-proxy-0.18.1-GCCcore-12.3.0.eb
@@ -0,0 +1,46 @@
+easyblock = "PythonBundle"
+
+name = 'matlab-proxy'
+version = '0.18.1'
+
+homepage = 'https://github.com/mathworks/matlab-proxy'
+description = "A Python package which enables you to launch MATLAB and access it from a web browser."
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('nodejs', '18.17.1'),
+]
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('aiohttp', '3.8.5'),
+ ('Xvfb', '21.1.8'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('aiohttp-session', '2.12.0', {
+ 'checksums': ['0ccd11a7c77cb9e5a61f4daacdc9170d561112f9cfaf9e9a2d9867c0587d1950'],
+ }),
+ (name, version, {
+ 'patches': ['%(name)s-%(version)s_use_lic_from_eb_installed_matlab.patch'],
+ 'checksums': [
+ {'matlab-proxy-0.18.1.tar.gz': 'c6ffe60de2e34b007f94b61c6c2f29b38115e4c9cb8b1e8f45d42a2713e0ac24'},
+ {'matlab-proxy-0.18.1_use_lic_from_eb_installed_matlab.patch':
+ 'a6b994d8b511bd00f86f232c9d9cf230883090b575383a42c06857f26ea08210'},
+ ],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/matlab-proxy-app'],
+ 'dirs': ['lib64/python%(pyshortver)s/site-packages']
+}
+
+modloadmsg = 'matlab-proxy requires MATLAB to be loaded separately and BEFORE this module (2020b or later)'
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/m/matlab-proxy/matlab-proxy-0.18.1_use_lic_from_eb_installed_matlab.patch b/easybuild/easyconfigs/m/matlab-proxy/matlab-proxy-0.18.1_use_lic_from_eb_installed_matlab.patch
new file mode 100644
index 00000000000..a37df91943d
--- /dev/null
+++ b/easybuild/easyconfigs/m/matlab-proxy/matlab-proxy-0.18.1_use_lic_from_eb_installed_matlab.patch
@@ -0,0 +1,23 @@
+Use the license file from EB's MATLAB installation by default
+Author: Mikael Öhman micketeer@gmail.com
+--- matlab_proxy/settings.py.orig 2024-05-30 16:01:07.778707000 +0200
++++ matlab_proxy/settings.py 2024-05-30 16:03:48.517654923 +0200
+@@ -357,9 +357,16 @@
+ # folder may cause hinderance in this workflow. So specifying -licmode as 'file'
+ # overrides license_info.xml and enforces MLM_LICENSE_FILE to be the topmost priority
+
+- # NLM Connection String provided by MLM_LICENSE_FILE environment variable
++ license_file = None
++ if mwi_env.get_env_name_network_license_manager() in os.environ:
++ # NLM Connection String provided by MLM_LICENSE_FILE environment variable
++ license_file = os.environ.get(mwi_env.get_env_name_network_license_manager())
++ elif 'EBROOTMATLAB' in os.environ:
++ # License file provided by MATLAB installation in EasyBuild
++ license_file = os.environ.get('EBROOTMATLAB') + '/licenses/network.lic'
++
+ nlm_conn_str = mwi.validators.validate_mlm_license_file(
+- os.environ.get(mwi_env.get_env_name_network_license_manager())
++ license_file
+ )
+ matlab_lic_mode = ["-licmode", "file"] if nlm_conn_str else ""
+ # flag to hide MATLAB Window
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/maturin/maturin-1.6.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/m/maturin/maturin-1.6.0-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..b7a45d6c37a
--- /dev/null
+++ b/easybuild/easyconfigs/m/maturin/maturin-1.6.0-GCCcore-13.3.0.eb
@@ -0,0 +1,659 @@
+easyblock = 'CargoPythonPackage'
+
+name = 'maturin'
+version = '1.6.0'
+
+homepage = 'https://github.com/pyo3/maturin'
+description = """This project is meant as a zero configuration
+replacement for setuptools-rust and milksnake. It supports building
+wheels for python 3.5+ on windows, linux, mac and freebsd, can upload
+them to pypi and has basic pypy and graalpy support."""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+crates = [
+ ('adler', '1.0.2'),
+ ('ahash', '0.8.7'),
+ ('aho-corasick', '1.1.2'),
+ ('allocator-api2', '0.2.16'),
+ ('anstream', '0.6.11'),
+ ('anstyle', '1.0.4'),
+ ('anstyle-parse', '0.2.3'),
+ ('anstyle-query', '1.0.2'),
+ ('anstyle-wincon', '3.0.2'),
+ ('anyhow', '1.0.80'),
+ ('autocfg', '1.1.0'),
+ ('base64', '0.13.1'),
+ ('base64', '0.21.7'),
+ ('bitflags', '1.3.2'),
+ ('bitflags', '2.4.2'),
+ ('block-buffer', '0.10.4'),
+ ('bstr', '1.9.0'),
+ ('byteorder', '1.5.0'),
+ ('bytes', '1.5.0'),
+ ('bytesize', '1.3.0'),
+ ('bzip2', '0.4.4'),
+ ('bzip2-sys', '0.1.11+1.0.8'),
+ ('cab', '0.4.1'),
+ ('camino', '1.1.6'),
+ ('cargo-config2', '0.1.24'),
+ ('cargo-options', '0.7.4'),
+ ('cargo-platform', '0.1.6'),
+ ('cargo-xwin', '0.16.4'),
+ ('cargo-zigbuild', '0.18.4'),
+ ('cargo_metadata', '0.18.1'),
+ ('cbindgen', '0.26.0'),
+ ('cc', '1.0.88'),
+ ('cfb', '0.9.0'),
+ ('cfg-if', '1.0.0'),
+ ('charset', '0.1.3'),
+ ('chumsky', '0.9.3'),
+ ('clap', '4.4.18'),
+ ('clap_builder', '4.4.18'),
+ ('clap_complete', '4.4.9'),
+ ('clap_complete_command', '0.5.1'),
+ ('clap_complete_nushell', '0.1.11'),
+ ('clap_derive', '4.4.7'),
+ ('clap_lex', '0.6.0'),
+ ('cli-table', '0.4.7'),
+ ('colorchoice', '1.0.0'),
+ ('configparser', '3.0.4'),
+ ('console', '0.15.8'),
+ ('content_inspector', '0.2.4'),
+ ('core-foundation', '0.9.4'),
+ ('core-foundation-sys', '0.8.6'),
+ ('cpufeatures', '0.2.12'),
+ ('crc32fast', '1.3.2'),
+ ('crossbeam-channel', '0.5.11'),
+ ('crossbeam-deque', '0.8.5'),
+ ('crossbeam-epoch', '0.9.18'),
+ ('crossbeam-utils', '0.8.19'),
+ ('crypto-common', '0.1.6'),
+ ('data-encoding', '2.5.0'),
+ ('deranged', '0.3.11'),
+ ('derivative', '2.2.0'),
+ ('dialoguer', '0.11.0'),
+ ('diff', '0.1.13'),
+ ('digest', '0.10.7'),
+ ('dirs', '5.0.1'),
+ ('dirs-sys', '0.4.1'),
+ ('dissimilar', '1.0.7'),
+ ('dunce', '1.0.4'),
+ ('dyn-clone', '1.0.17'),
+ ('either', '1.9.0'),
+ ('encode_unicode', '0.3.6'),
+ ('encoding_rs', '0.8.33'),
+ ('equivalent', '1.0.1'),
+ ('errno', '0.3.8'),
+ ('expect-test', '1.4.1'),
+ ('fastrand', '2.0.1'),
+ ('fat-macho', '0.4.8'),
+ ('filetime', '0.2.23'),
+ ('flate2', '1.0.28'),
+ ('fnv', '1.0.7'),
+ ('foreign-types', '0.3.2'),
+ ('foreign-types-shared', '0.1.1'),
+ ('form_urlencoded', '1.2.1'),
+ ('fs-err', '2.11.0'),
+ ('futures', '0.3.30'),
+ ('futures-channel', '0.3.30'),
+ ('futures-core', '0.3.30'),
+ ('futures-executor', '0.3.30'),
+ ('futures-io', '0.3.30'),
+ ('futures-macro', '0.3.30'),
+ ('futures-sink', '0.3.30'),
+ ('futures-task', '0.3.30'),
+ ('futures-timer', '3.0.3'),
+ ('futures-util', '0.3.30'),
+ ('generic-array', '0.14.7'),
+ ('getrandom', '0.2.12'),
+ ('glob', '0.3.1'),
+ ('globset', '0.4.14'),
+ ('goblin', '0.8.0'),
+ ('hashbrown', '0.12.3'),
+ ('hashbrown', '0.14.3'),
+ ('heck', '0.4.1'),
+ ('home', '0.5.9'),
+ ('humantime', '2.1.0'),
+ ('humantime-serde', '1.1.1'),
+ ('idna', '0.5.0'),
+ ('ignore', '0.4.22'),
+ ('indexmap', '1.9.3'),
+ ('indexmap', '2.2.3'),
+ ('indicatif', '0.17.7'),
+ ('indoc', '2.0.4'),
+ ('instant', '0.1.12'),
+ ('itertools', '0.11.0'),
+ ('itertools', '0.12.1'),
+ ('itoa', '1.0.10'),
+ ('keyring', '2.3.2'),
+ ('lazy_static', '1.4.0'),
+ ('lddtree', '0.3.4'),
+ ('libc', '0.2.153'),
+ ('libredox', '0.0.1'),
+ ('linux-keyutils', '0.2.4'),
+ ('linux-raw-sys', '0.4.13'),
+ ('lock_api', '0.4.11'),
+ ('log', '0.4.20'),
+ ('lzxd', '0.1.4'),
+ ('mailparse', '0.14.1'),
+ ('matchers', '0.1.0'),
+ ('memchr', '2.7.1'),
+ ('mime', '0.3.17'),
+ ('mime_guess', '2.0.4'),
+ ('minijinja', '1.0.12'),
+ ('minimal-lexical', '0.2.1'),
+ ('miniz_oxide', '0.7.1'),
+ ('msi', '0.7.0'),
+ ('multipart', '0.18.0'),
+ ('native-tls', '0.2.11'),
+ ('nom', '7.1.3'),
+ ('normalize-line-endings', '0.3.0'),
+ ('normpath', '1.1.1'),
+ ('nu-ansi-term', '0.46.0'),
+ ('num-conv', '0.1.0'),
+ ('number_prefix', '0.4.0'),
+ ('once_cell', '1.19.0'),
+ ('openssl', '0.10.63'),
+ ('openssl-macros', '0.1.1'),
+ ('openssl-probe', '0.1.5'),
+ ('openssl-sys', '0.9.99'),
+ ('option-ext', '0.2.0'),
+ ('os_pipe', '1.1.5'),
+ ('overload', '0.1.1'),
+ ('parking_lot', '0.12.1'),
+ ('parking_lot_core', '0.9.9'),
+ ('paste', '1.0.14'),
+ ('path-slash', '0.2.1'),
+ ('pep440_rs', '0.5.0'),
+ ('pep508_rs', '0.4.2'),
+ ('percent-encoding', '2.3.1'),
+ ('pin-project-lite', '0.2.13'),
+ ('pin-utils', '0.1.0'),
+ ('pkg-config', '0.3.29'),
+ ('plain', '0.2.3'),
+ ('platform-info', '2.0.2'),
+ ('portable-atomic', '1.6.0'),
+ ('powerfmt', '0.2.0'),
+ ('ppv-lite86', '0.2.17'),
+ ('pretty_assertions', '1.4.0'),
+ ('proc-macro2', '1.0.78'),
+ ('psm', '0.1.21'),
+ ('pyproject-toml', '0.10.0'),
+ ('python-pkginfo', '0.6.0'),
+ ('quote', '1.0.35'),
+ ('quoted_printable', '0.4.8'),
+ ('quoted_printable', '0.5.0'),
+ ('rand', '0.8.5'),
+ ('rand_chacha', '0.3.1'),
+ ('rand_core', '0.6.4'),
+ ('rayon', '1.8.1'),
+ ('rayon-core', '1.12.1'),
+ ('redox_syscall', '0.4.1'),
+ ('redox_users', '0.4.4'),
+ ('regex', '1.10.3'),
+ ('regex-automata', '0.1.10'),
+ ('regex-automata', '0.4.5'),
+ ('regex-syntax', '0.6.29'),
+ ('regex-syntax', '0.8.2'),
+ ('relative-path', '1.9.2'),
+ ('rfc2047-decoder', '0.2.2'),
+ ('ring', '0.17.7'),
+ ('rstest', '0.18.2'),
+ ('rstest_macros', '0.18.2'),
+ ('rustc_version', '0.4.0'),
+ ('rustix', '0.38.32'),
+ ('rustls', '0.22.4'),
+ ('rustls-pemfile', '2.1.0'),
+ ('rustls-pki-types', '1.3.1'),
+ ('rustls-webpki', '0.102.1'),
+ ('rustversion', '1.0.14'),
+ ('ryu', '1.0.16'),
+ ('same-file', '1.0.6'),
+ ('schannel', '0.1.23'),
+ ('schemars', '0.8.16'),
+ ('schemars_derive', '0.8.16'),
+ ('scopeguard', '1.2.0'),
+ ('scroll', '0.12.0'),
+ ('scroll_derive', '0.12.0'),
+ ('security-framework', '2.9.2'),
+ ('security-framework-sys', '2.9.1'),
+ ('semver', '1.0.22'),
+ ('serde', '1.0.197'),
+ ('serde_derive', '1.0.197'),
+ ('serde_derive_internals', '0.26.0'),
+ ('serde_json', '1.0.114'),
+ ('serde_spanned', '0.6.5'),
+ ('sha2', '0.10.8'),
+ ('sharded-slab', '0.1.7'),
+ ('shell-words', '1.1.0'),
+ ('shlex', '1.3.0'),
+ ('similar', '2.4.0'),
+ ('slab', '0.4.9'),
+ ('smallvec', '1.13.1'),
+ ('smawk', '0.3.2'),
+ ('snapbox', '0.5.7'),
+ ('snapbox-macros', '0.3.8'),
+ ('socks', '0.3.4'),
+ ('spin', '0.9.8'),
+ ('stacker', '0.1.15'),
+ ('static_assertions', '1.1.0'),
+ ('strsim', '0.10.0'),
+ ('subtle', '2.5.0'),
+ ('syn', '1.0.109'),
+ ('syn', '2.0.48'),
+ ('tar', '0.4.40'),
+ ('target-lexicon', '0.12.14'),
+ ('tempfile', '3.9.0'),
+ ('termcolor', '1.4.1'),
+ ('terminal_size', '0.3.0'),
+ ('textwrap', '0.16.1'),
+ ('thiserror', '1.0.57'),
+ ('thiserror-impl', '1.0.57'),
+ ('thread_local', '1.1.7'),
+ ('time', '0.3.34'),
+ ('time-core', '0.1.2'),
+ ('time-macros', '0.2.17'),
+ ('tinyvec', '1.6.0'),
+ ('tinyvec_macros', '0.1.1'),
+ ('toml', '0.5.11'),
+ ('toml', '0.8.10'),
+ ('toml_datetime', '0.6.5'),
+ ('toml_edit', '0.22.6'),
+ ('tracing', '0.1.40'),
+ ('tracing-attributes', '0.1.27'),
+ ('tracing-core', '0.1.32'),
+ ('tracing-log', '0.2.0'),
+ ('tracing-serde', '0.1.3'),
+ ('tracing-subscriber', '0.3.18'),
+ ('trycmd', '0.15.0'),
+ ('twox-hash', '1.6.3'),
+ ('typenum', '1.17.0'),
+ ('unicase', '2.7.0'),
+ ('unicode-bidi', '0.3.15'),
+ ('unicode-ident', '1.0.12'),
+ ('unicode-linebreak', '0.1.5'),
+ ('unicode-normalization', '0.1.22'),
+ ('unicode-width', '0.1.11'),
+ ('unicode-xid', '0.2.4'),
+ ('unscanny', '0.1.0'),
+ ('untrusted', '0.9.0'),
+ ('ureq', '2.9.6'),
+ ('url', '2.5.0'),
+ ('urlencoding', '2.1.3'),
+ ('utf8parse', '0.2.1'),
+ ('uuid', '1.7.0'),
+ ('valuable', '0.1.0'),
+ ('vcpkg', '0.2.15'),
+ ('version_check', '0.9.4'),
+ ('versions', '5.0.1'),
+ ('wait-timeout', '0.2.0'),
+ ('walkdir', '2.4.0'),
+ ('wasi', '0.11.0+wasi-snapshot-preview1'),
+ ('webpki-roots', '0.26.0'),
+ ('which', '5.0.0'),
+ ('which', '6.0.0'),
+ ('wild', '2.2.1'),
+ ('winapi', '0.3.9'),
+ ('winapi-i686-pc-windows-gnu', '0.4.0'),
+ ('winapi-util', '0.1.6'),
+ ('winapi-x86_64-pc-windows-gnu', '0.4.0'),
+ ('windows-sys', '0.48.0'),
+ ('windows-sys', '0.52.0'),
+ ('windows-targets', '0.48.5'),
+ ('windows-targets', '0.52.0'),
+ ('windows_aarch64_gnullvm', '0.48.5'),
+ ('windows_aarch64_gnullvm', '0.52.0'),
+ ('windows_aarch64_msvc', '0.48.5'),
+ ('windows_aarch64_msvc', '0.52.0'),
+ ('windows_i686_gnu', '0.48.5'),
+ ('windows_i686_gnu', '0.52.0'),
+ ('windows_i686_msvc', '0.48.5'),
+ ('windows_i686_msvc', '0.52.0'),
+ ('windows_x86_64_gnu', '0.48.5'),
+ ('windows_x86_64_gnu', '0.52.0'),
+ ('windows_x86_64_gnullvm', '0.48.5'),
+ ('windows_x86_64_gnullvm', '0.52.0'),
+ ('windows_x86_64_msvc', '0.48.5'),
+ ('windows_x86_64_msvc', '0.52.0'),
+ ('winnow', '0.6.2'),
+ ('xattr', '1.3.1'),
+ ('xwin', '0.5.0'),
+ ('yansi', '0.5.1'),
+ ('zerocopy', '0.7.32'),
+ ('zerocopy-derive', '0.7.32'),
+ ('zeroize', '1.7.0'),
+ ('zip', '0.6.6'),
+]
+
+sources = [SOURCE_TAR_GZ]
+checksums = [
+ {'maturin-1.6.0.tar.gz': 'b955025c24c8babc808db49e0ff90db8b4b1320dcc16b14eb26132841737230d'},
+ {'adler-1.0.2.tar.gz': 'f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe'},
+ {'ahash-0.8.7.tar.gz': '77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01'},
+ {'aho-corasick-1.1.2.tar.gz': 'b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0'},
+ {'allocator-api2-0.2.16.tar.gz': '0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5'},
+ {'anstream-0.6.11.tar.gz': '6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5'},
+ {'anstyle-1.0.4.tar.gz': '7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87'},
+ {'anstyle-parse-0.2.3.tar.gz': 'c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c'},
+ {'anstyle-query-1.0.2.tar.gz': 'e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648'},
+ {'anstyle-wincon-3.0.2.tar.gz': '1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7'},
+ {'anyhow-1.0.80.tar.gz': '5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1'},
+ {'autocfg-1.1.0.tar.gz': 'd468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa'},
+ {'base64-0.13.1.tar.gz': '9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8'},
+ {'base64-0.21.7.tar.gz': '9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567'},
+ {'bitflags-1.3.2.tar.gz': 'bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a'},
+ {'bitflags-2.4.2.tar.gz': 'ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf'},
+ {'block-buffer-0.10.4.tar.gz': '3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71'},
+ {'bstr-1.9.0.tar.gz': 'c48f0051a4b4c5e0b6d365cd04af53aeaa209e3cc15ec2cdb69e73cc87fbd0dc'},
+ {'byteorder-1.5.0.tar.gz': '1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b'},
+ {'bytes-1.5.0.tar.gz': 'a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223'},
+ {'bytesize-1.3.0.tar.gz': 'a3e368af43e418a04d52505cf3dbc23dda4e3407ae2fa99fd0e4f308ce546acc'},
+ {'bzip2-0.4.4.tar.gz': 'bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8'},
+ {'bzip2-sys-0.1.11+1.0.8.tar.gz': '736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc'},
+ {'cab-0.4.1.tar.gz': 'ae6b4de23c7d39c0631fd3cc952d87951c86c75a13812d7247cb7a896e7b3551'},
+ {'camino-1.1.6.tar.gz': 'c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c'},
+ {'cargo-config2-0.1.24.tar.gz': '88d9bdc858a15454c2d0a5138d8dcf4bcabc06fde679abdea8330393fbc0ef05'},
+ {'cargo-options-0.7.4.tar.gz': 'f3540247c0a37a76eb324acc238dc617786ea22c43b95da560c82a8f2714321f'},
+ {'cargo-platform-0.1.6.tar.gz': 'ceed8ef69d8518a5dda55c07425450b58a4e1946f4951eab6d7191ee86c2443d'},
+ {'cargo-xwin-0.16.4.tar.gz': '5e6c3dd7f20fdd197397532ac882e918cfe1d56f262a97ded7460a50e031e06b'},
+ {'cargo-zigbuild-0.18.4.tar.gz': '65004153e67ac23be88a8e244304a872d727b2aa08654dcabfbecd1fdea4a488'},
+ {'cargo_metadata-0.18.1.tar.gz': '2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037'},
+ {'cbindgen-0.26.0.tar.gz': 'da6bc11b07529f16944307272d5bd9b22530bc7d05751717c9d416586cedab49'},
+ {'cc-1.0.88.tar.gz': '02f341c093d19155a6e41631ce5971aac4e9a868262212153124c15fa22d1cdc'},
+ {'cfb-0.9.0.tar.gz': 'b390793e912300f1aa713429f7fd0c391024e6c18b988962558bc4f96a349b1f'},
+ {'cfg-if-1.0.0.tar.gz': 'baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd'},
+ {'charset-0.1.3.tar.gz': '18e9079d1a12a2cc2bffb5db039c43661836ead4082120d5844f02555aca2d46'},
+ {'chumsky-0.9.3.tar.gz': '8eebd66744a15ded14960ab4ccdbfb51ad3b81f51f3f04a80adac98c985396c9'},
+ {'clap-4.4.18.tar.gz': '1e578d6ec4194633722ccf9544794b71b1385c3c027efe0c55db226fc880865c'},
+ {'clap_builder-4.4.18.tar.gz': '4df4df40ec50c46000231c914968278b1eb05098cf8f1b3a518a95030e71d1c7'},
+ {'clap_complete-4.4.9.tar.gz': 'df631ae429f6613fcd3a7c1adbdb65f637271e561b03680adaa6573015dfb106'},
+ {'clap_complete_command-0.5.1.tar.gz': '183495371ea78d4c9ff638bfc6497d46fed2396e4f9c50aebc1278a4a9919a3d'},
+ {'clap_complete_nushell-0.1.11.tar.gz': '5d02bc8b1a18ee47c4d2eec3fb5ac034dc68ebea6125b1509e9ccdffcddce66e'},
+ {'clap_derive-4.4.7.tar.gz': 'cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442'},
+ {'clap_lex-0.6.0.tar.gz': '702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1'},
+ {'cli-table-0.4.7.tar.gz': 'adfbb116d9e2c4be7011360d0c0bee565712c11e969c9609b25b619366dc379d'},
+ {'colorchoice-1.0.0.tar.gz': 'acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7'},
+ {'configparser-3.0.4.tar.gz': '4ec6d3da8e550377a85339063af6e3735f4b1d9392108da4e083a1b3b9820288'},
+ {'console-0.15.8.tar.gz': '0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb'},
+ {'content_inspector-0.2.4.tar.gz': 'b7bda66e858c683005a53a9a60c69a4aca7eeaa45d124526e389f7aec8e62f38'},
+ {'core-foundation-0.9.4.tar.gz': '91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f'},
+ {'core-foundation-sys-0.8.6.tar.gz': '06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f'},
+ {'cpufeatures-0.2.12.tar.gz': '53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504'},
+ {'crc32fast-1.3.2.tar.gz': 'b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d'},
+ {'crossbeam-channel-0.5.11.tar.gz': '176dc175b78f56c0f321911d9c8eb2b77a78a4860b9c19db83835fea1a46649b'},
+ {'crossbeam-deque-0.8.5.tar.gz': '613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d'},
+ {'crossbeam-epoch-0.9.18.tar.gz': '5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e'},
+ {'crossbeam-utils-0.8.19.tar.gz': '248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345'},
+ {'crypto-common-0.1.6.tar.gz': '1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3'},
+ {'data-encoding-2.5.0.tar.gz': '7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5'},
+ {'deranged-0.3.11.tar.gz': 'b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4'},
+ {'derivative-2.2.0.tar.gz': 'fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b'},
+ {'dialoguer-0.11.0.tar.gz': '658bce805d770f407bc62102fca7c2c64ceef2fbcb2b8bd19d2765ce093980de'},
+ {'diff-0.1.13.tar.gz': '56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8'},
+ {'digest-0.10.7.tar.gz': '9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292'},
+ {'dirs-5.0.1.tar.gz': '44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225'},
+ {'dirs-sys-0.4.1.tar.gz': '520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c'},
+ {'dissimilar-1.0.7.tar.gz': '86e3bdc80eee6e16b2b6b0f87fbc98c04bee3455e35174c0de1a125d0688c632'},
+ {'dunce-1.0.4.tar.gz': '56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b'},
+ {'dyn-clone-1.0.17.tar.gz': '0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125'},
+ {'either-1.9.0.tar.gz': 'a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07'},
+ {'encode_unicode-0.3.6.tar.gz': 'a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f'},
+ {'encoding_rs-0.8.33.tar.gz': '7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1'},
+ {'equivalent-1.0.1.tar.gz': '5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5'},
+ {'errno-0.3.8.tar.gz': 'a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245'},
+ {'expect-test-1.4.1.tar.gz': '30d9eafeadd538e68fb28016364c9732d78e420b9ff8853fa5e4058861e9f8d3'},
+ {'fastrand-2.0.1.tar.gz': '25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5'},
+ {'fat-macho-0.4.8.tar.gz': '0d4c93f393add03d72bc10dd3dea43a1610ecb29e0c0a6459c70b53b82931adf'},
+ {'filetime-0.2.23.tar.gz': '1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd'},
+ {'flate2-1.0.28.tar.gz': '46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e'},
+ {'fnv-1.0.7.tar.gz': '3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1'},
+ {'foreign-types-0.3.2.tar.gz': 'f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1'},
+ {'foreign-types-shared-0.1.1.tar.gz': '00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b'},
+ {'form_urlencoded-1.2.1.tar.gz': 'e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456'},
+ {'fs-err-2.11.0.tar.gz': '88a41f105fe1d5b6b34b2055e3dc59bb79b46b48b2040b9e6c7b4b5de097aa41'},
+ {'futures-0.3.30.tar.gz': '645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0'},
+ {'futures-channel-0.3.30.tar.gz': 'eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78'},
+ {'futures-core-0.3.30.tar.gz': 'dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d'},
+ {'futures-executor-0.3.30.tar.gz': 'a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d'},
+ {'futures-io-0.3.30.tar.gz': 'a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1'},
+ {'futures-macro-0.3.30.tar.gz': '87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac'},
+ {'futures-sink-0.3.30.tar.gz': '9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5'},
+ {'futures-task-0.3.30.tar.gz': '38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004'},
+ {'futures-timer-3.0.3.tar.gz': 'f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24'},
+ {'futures-util-0.3.30.tar.gz': '3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48'},
+ {'generic-array-0.14.7.tar.gz': '85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a'},
+ {'getrandom-0.2.12.tar.gz': '190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5'},
+ {'glob-0.3.1.tar.gz': 'd2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b'},
+ {'globset-0.4.14.tar.gz': '57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1'},
+ {'goblin-0.8.0.tar.gz': 'bb07a4ffed2093b118a525b1d8f5204ae274faed5604537caf7135d0f18d9887'},
+ {'hashbrown-0.12.3.tar.gz': '8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888'},
+ {'hashbrown-0.14.3.tar.gz': '290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604'},
+ {'heck-0.4.1.tar.gz': '95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8'},
+ {'home-0.5.9.tar.gz': 'e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5'},
+ {'humantime-2.1.0.tar.gz': '9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4'},
+ {'humantime-serde-1.1.1.tar.gz': '57a3db5ea5923d99402c94e9feb261dc5ee9b4efa158b0315f788cf549cc200c'},
+ {'idna-0.5.0.tar.gz': '634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6'},
+ {'ignore-0.4.22.tar.gz': 'b46810df39e66e925525d6e38ce1e7f6e1d208f72dc39757880fcb66e2c58af1'},
+ {'indexmap-1.9.3.tar.gz': 'bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99'},
+ {'indexmap-2.2.3.tar.gz': '233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177'},
+ {'indicatif-0.17.7.tar.gz': 'fb28741c9db9a713d93deb3bb9515c20788cef5815265bee4980e87bde7e0f25'},
+ {'indoc-2.0.4.tar.gz': '1e186cfbae8084e513daff4240b4797e342f988cecda4fb6c939150f96315fd8'},
+ {'instant-0.1.12.tar.gz': '7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c'},
+ {'itertools-0.11.0.tar.gz': 'b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57'},
+ {'itertools-0.12.1.tar.gz': 'ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569'},
+ {'itoa-1.0.10.tar.gz': 'b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c'},
+ {'keyring-2.3.2.tar.gz': '1be8bc4c6b6e9d85ecdad090fcf342a9216f53d747a537cc05e3452fd650ca46'},
+ {'lazy_static-1.4.0.tar.gz': 'e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646'},
+ {'lddtree-0.3.4.tar.gz': 'f88a93876d2485ede9c97d698c164cf5c024491908483964a998faae9705dea6'},
+ {'libc-0.2.153.tar.gz': '9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd'},
+ {'libredox-0.0.1.tar.gz': '85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8'},
+ {'linux-keyutils-0.2.4.tar.gz': '761e49ec5fd8a5a463f9b84e877c373d888935b71c6be78f3767fe2ae6bed18e'},
+ {'linux-raw-sys-0.4.13.tar.gz': '01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c'},
+ {'lock_api-0.4.11.tar.gz': '3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45'},
+ {'log-0.4.20.tar.gz': 'b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f'},
+ {'lzxd-0.1.4.tar.gz': '784462f20dddd9dfdb45de963fa4ad4a288cb10a7889ac5d2c34fb6481c6b213'},
+ {'mailparse-0.14.1.tar.gz': '2d096594926cab442e054e047eb8c1402f7d5b2272573b97ba68aa40629f9757'},
+ {'matchers-0.1.0.tar.gz': '8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558'},
+ {'memchr-2.7.1.tar.gz': '523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149'},
+ {'mime-0.3.17.tar.gz': '6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a'},
+ {'mime_guess-2.0.4.tar.gz': '4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef'},
+ {'minijinja-1.0.12.tar.gz': '6fe0ff215195a22884d867b547c70a0c4815cbbcc70991f281dca604b20d10ce'},
+ {'minimal-lexical-0.2.1.tar.gz': '68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a'},
+ {'miniz_oxide-0.7.1.tar.gz': 'e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7'},
+ {'msi-0.7.0.tar.gz': '226b2404f03d2cf47375b9715c8adfae4e388bb2377cff908e8a40f31e421514'},
+ {'multipart-0.18.0.tar.gz': '00dec633863867f29cb39df64a397cdf4a6354708ddd7759f70c7fb51c5f9182'},
+ {'native-tls-0.2.11.tar.gz': '07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e'},
+ {'nom-7.1.3.tar.gz': 'd273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a'},
+ {'normalize-line-endings-0.3.0.tar.gz': '61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be'},
+ {'normpath-1.1.1.tar.gz': 'ec60c60a693226186f5d6edf073232bfb6464ed97eb22cf3b01c1e8198fd97f5'},
+ {'nu-ansi-term-0.46.0.tar.gz': '77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84'},
+ {'num-conv-0.1.0.tar.gz': '51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9'},
+ {'number_prefix-0.4.0.tar.gz': '830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3'},
+ {'once_cell-1.19.0.tar.gz': '3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92'},
+ {'openssl-0.10.63.tar.gz': '15c9d69dd87a29568d4d017cfe8ec518706046a05184e5aea92d0af890b803c8'},
+ {'openssl-macros-0.1.1.tar.gz': 'a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c'},
+ {'openssl-probe-0.1.5.tar.gz': 'ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf'},
+ {'openssl-sys-0.9.99.tar.gz': '22e1bf214306098e4832460f797824c05d25aacdf896f64a985fb0fd992454ae'},
+ {'option-ext-0.2.0.tar.gz': '04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d'},
+ {'os_pipe-1.1.5.tar.gz': '57119c3b893986491ec9aa85056780d3a0f3cf4da7cc09dd3650dbd6c6738fb9'},
+ {'overload-0.1.1.tar.gz': 'b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39'},
+ {'parking_lot-0.12.1.tar.gz': '3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f'},
+ {'parking_lot_core-0.9.9.tar.gz': '4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e'},
+ {'paste-1.0.14.tar.gz': 'de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c'},
+ {'path-slash-0.2.1.tar.gz': '1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42'},
+ {'pep440_rs-0.5.0.tar.gz': '15efd4d885c29126cc93e12af3087896e2518bd5ca0fb328c19c4ef9cecfa8be'},
+ {'pep508_rs-0.4.2.tar.gz': '1455babf8edd3eedcdfcb39700e455a4bb189e71b4f1fa0eacc9b244cc5a55e6'},
+ {'percent-encoding-2.3.1.tar.gz': 'e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e'},
+ {'pin-project-lite-0.2.13.tar.gz': '8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58'},
+ {'pin-utils-0.1.0.tar.gz': '8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184'},
+ {'pkg-config-0.3.29.tar.gz': '2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb'},
+ {'plain-0.2.3.tar.gz': 'b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6'},
+ {'platform-info-2.0.2.tar.gz': 'd6259c4860e53bf665016f1b2f46a8859cadfa717581dc9d597ae4069de6300f'},
+ {'portable-atomic-1.6.0.tar.gz': '7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0'},
+ {'powerfmt-0.2.0.tar.gz': '439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391'},
+ {'ppv-lite86-0.2.17.tar.gz': '5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de'},
+ {'pretty_assertions-1.4.0.tar.gz': 'af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66'},
+ {'proc-macro2-1.0.78.tar.gz': 'e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae'},
+ {'psm-0.1.21.tar.gz': '5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874'},
+ {'pyproject-toml-0.10.0.tar.gz': '3b80f889b6d413c3f8963a2c7db03f95dd6e1d85e1074137cb2013ea2faa8898'},
+ {'python-pkginfo-0.6.0.tar.gz': '037469c164f08c891bf6d69ca02f1d56210011451e229618669777df82124cfa'},
+ {'quote-1.0.35.tar.gz': '291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef'},
+ {'quoted_printable-0.4.8.tar.gz': '5a3866219251662ec3b26fc217e3e05bf9c4f84325234dfb96bf0bf840889e49'},
+ {'quoted_printable-0.5.0.tar.gz': '79ec282e887b434b68c18fe5c121d38e72a5cf35119b59e54ec5b992ea9c8eb0'},
+ {'rand-0.8.5.tar.gz': '34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404'},
+ {'rand_chacha-0.3.1.tar.gz': 'e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88'},
+ {'rand_core-0.6.4.tar.gz': 'ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c'},
+ {'rayon-1.8.1.tar.gz': 'fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051'},
+ {'rayon-core-1.12.1.tar.gz': '1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2'},
+ {'redox_syscall-0.4.1.tar.gz': '4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa'},
+ {'redox_users-0.4.4.tar.gz': 'a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4'},
+ {'regex-1.10.3.tar.gz': 'b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15'},
+ {'regex-automata-0.1.10.tar.gz': '6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132'},
+ {'regex-automata-0.4.5.tar.gz': '5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd'},
+ {'regex-syntax-0.6.29.tar.gz': 'f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1'},
+ {'regex-syntax-0.8.2.tar.gz': 'c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f'},
+ {'relative-path-1.9.2.tar.gz': 'e898588f33fdd5b9420719948f9f2a32c922a246964576f71ba7f24f80610fbc'},
+ {'rfc2047-decoder-0.2.2.tar.gz': '61fc4b4e52897c3e30b12b7e9b04461215b647fbe66f6def60dd8edbce14ec2e'},
+ {'ring-0.17.7.tar.gz': '688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74'},
+ {'rstest-0.18.2.tar.gz': '97eeab2f3c0a199bc4be135c36c924b6590b88c377d416494288c14f2db30199'},
+ {'rstest_macros-0.18.2.tar.gz': 'd428f8247852f894ee1be110b375111b586d4fa431f6c46e64ba5a0dcccbe605'},
+ {'rustc_version-0.4.0.tar.gz': 'bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366'},
+ {'rustix-0.38.32.tar.gz': '65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89'},
+ {'rustls-0.22.4.tar.gz': 'bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432'},
+ {'rustls-pemfile-2.1.0.tar.gz': '3c333bb734fcdedcea57de1602543590f545f127dc8b533324318fd492c5c70b'},
+ {'rustls-pki-types-1.3.1.tar.gz': '5ede67b28608b4c60685c7d54122d4400d90f62b40caee7700e700380a390fa8'},
+ {'rustls-webpki-0.102.1.tar.gz': 'ef4ca26037c909dedb327b48c3327d0ba91d3dd3c4e05dad328f210ffb68e95b'},
+ {'rustversion-1.0.14.tar.gz': '7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4'},
+ {'ryu-1.0.16.tar.gz': 'f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c'},
+ {'same-file-1.0.6.tar.gz': '93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502'},
+ {'schannel-0.1.23.tar.gz': 'fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534'},
+ {'schemars-0.8.16.tar.gz': '45a28f4c49489add4ce10783f7911893516f15afe45d015608d41faca6bc4d29'},
+ {'schemars_derive-0.8.16.tar.gz': 'c767fd6fa65d9ccf9cf026122c1b555f2ef9a4f0cea69da4d7dbc3e258d30967'},
+ {'scopeguard-1.2.0.tar.gz': '94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49'},
+ {'scroll-0.12.0.tar.gz': '6ab8598aa408498679922eff7fa985c25d58a90771bd6be794434c5277eab1a6'},
+ {'scroll_derive-0.12.0.tar.gz': '7f81c2fde025af7e69b1d1420531c8a8811ca898919db177141a85313b1cb932'},
+ {'security-framework-2.9.2.tar.gz': '05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de'},
+ {'security-framework-sys-2.9.1.tar.gz': 'e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a'},
+ {'semver-1.0.22.tar.gz': '92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca'},
+ {'serde-1.0.197.tar.gz': '3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2'},
+ {'serde_derive-1.0.197.tar.gz': '7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b'},
+ {'serde_derive_internals-0.26.0.tar.gz': '85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c'},
+ {'serde_json-1.0.114.tar.gz': 'c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0'},
+ {'serde_spanned-0.6.5.tar.gz': 'eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1'},
+ {'sha2-0.10.8.tar.gz': '793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8'},
+ {'sharded-slab-0.1.7.tar.gz': 'f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6'},
+ {'shell-words-1.1.0.tar.gz': '24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde'},
+ {'shlex-1.3.0.tar.gz': '0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64'},
+ {'similar-2.4.0.tar.gz': '32fea41aca09ee824cc9724996433064c89f7777e60762749a4170a14abbfa21'},
+ {'slab-0.4.9.tar.gz': '8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67'},
+ {'smallvec-1.13.1.tar.gz': 'e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7'},
+ {'smawk-0.3.2.tar.gz': 'b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c'},
+ {'snapbox-0.5.7.tar.gz': '4a99efa20de5053229642a477436cdb39828c7651c614622eb4888f9688523e6'},
+ {'snapbox-macros-0.3.8.tar.gz': 'e1c4b838b05d15ab22754068cb73500b2f3b07bf09d310e15b27f88160f1de40'},
+ {'socks-0.3.4.tar.gz': 'f0c3dbbd9ae980613c6dd8e28a9407b50509d3803b57624d5dfe8315218cd58b'},
+ {'spin-0.9.8.tar.gz': '6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67'},
+ {'stacker-0.1.15.tar.gz': 'c886bd4480155fd3ef527d45e9ac8dd7118a898a46530b7b94c3e21866259fce'},
+ {'static_assertions-1.1.0.tar.gz': 'a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f'},
+ {'strsim-0.10.0.tar.gz': '73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623'},
+ {'subtle-2.5.0.tar.gz': '81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc'},
+ {'syn-1.0.109.tar.gz': '72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237'},
+ {'syn-2.0.48.tar.gz': '0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f'},
+ {'tar-0.4.40.tar.gz': 'b16afcea1f22891c49a00c751c7b63b2233284064f11a200fc624137c51e2ddb'},
+ {'target-lexicon-0.12.14.tar.gz': 'e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f'},
+ {'tempfile-3.9.0.tar.gz': '01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa'},
+ {'termcolor-1.4.1.tar.gz': '06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755'},
+ {'terminal_size-0.3.0.tar.gz': '21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7'},
+ {'textwrap-0.16.1.tar.gz': '23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9'},
+ {'thiserror-1.0.57.tar.gz': '1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b'},
+ {'thiserror-impl-1.0.57.tar.gz': 'a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81'},
+ {'thread_local-1.1.7.tar.gz': '3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152'},
+ {'time-0.3.34.tar.gz': 'c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749'},
+ {'time-core-0.1.2.tar.gz': 'ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3'},
+ {'time-macros-0.2.17.tar.gz': '7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774'},
+ {'tinyvec-1.6.0.tar.gz': '87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50'},
+ {'tinyvec_macros-0.1.1.tar.gz': '1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20'},
+ {'toml-0.5.11.tar.gz': 'f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234'},
+ {'toml-0.8.10.tar.gz': '9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290'},
+ {'toml_datetime-0.6.5.tar.gz': '3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1'},
+ {'toml_edit-0.22.6.tar.gz': '2c1b5fd4128cc8d3e0cb74d4ed9a9cc7c7284becd4df68f5f940e1ad123606f6'},
+ {'tracing-0.1.40.tar.gz': 'c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef'},
+ {'tracing-attributes-0.1.27.tar.gz': '34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7'},
+ {'tracing-core-0.1.32.tar.gz': 'c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54'},
+ {'tracing-log-0.2.0.tar.gz': 'ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3'},
+ {'tracing-serde-0.1.3.tar.gz': 'bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1'},
+ {'tracing-subscriber-0.3.18.tar.gz': 'ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b'},
+ {'trycmd-0.15.0.tar.gz': '464edb3603a81a50b4c8f47b11dfade69ef48ffdc0af2f8b194ad87cbda75317'},
+ {'twox-hash-1.6.3.tar.gz': '97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675'},
+ {'typenum-1.17.0.tar.gz': '42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825'},
+ {'unicase-2.7.0.tar.gz': 'f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89'},
+ {'unicode-bidi-0.3.15.tar.gz': '08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75'},
+ {'unicode-ident-1.0.12.tar.gz': '3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b'},
+ {'unicode-linebreak-0.1.5.tar.gz': '3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f'},
+ {'unicode-normalization-0.1.22.tar.gz': '5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921'},
+ {'unicode-width-0.1.11.tar.gz': 'e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85'},
+ {'unicode-xid-0.2.4.tar.gz': 'f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c'},
+ {'unscanny-0.1.0.tar.gz': 'e9df2af067a7953e9c3831320f35c1cc0600c30d44d9f7a12b01db1cd88d6b47'},
+ {'untrusted-0.9.0.tar.gz': '8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1'},
+ {'ureq-2.9.6.tar.gz': '11f214ce18d8b2cbe84ed3aa6486ed3f5b285cf8d8fbdbce9f3f767a724adc35'},
+ {'url-2.5.0.tar.gz': '31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633'},
+ {'urlencoding-2.1.3.tar.gz': 'daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da'},
+ {'utf8parse-0.2.1.tar.gz': '711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a'},
+ {'uuid-1.7.0.tar.gz': 'f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a'},
+ {'valuable-0.1.0.tar.gz': '830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d'},
+ {'vcpkg-0.2.15.tar.gz': 'accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426'},
+ {'version_check-0.9.4.tar.gz': '49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f'},
+ {'versions-5.0.1.tar.gz': 'c73a36bc44e3039f51fbee93e39f41225f6b17b380eb70cc2aab942df06b34dd'},
+ {'wait-timeout-0.2.0.tar.gz': '9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6'},
+ {'walkdir-2.4.0.tar.gz': 'd71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee'},
+ {'wasi-0.11.0+wasi-snapshot-preview1.tar.gz': '9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423'},
+ {'webpki-roots-0.26.0.tar.gz': '0de2cfda980f21be5a7ed2eadb3e6fe074d56022bea2cdeb1a62eb220fc04188'},
+ {'which-5.0.0.tar.gz': '9bf3ea8596f3a0dd5980b46430f2058dfe2c36a27ccfbb1845d6fbfcd9ba6e14'},
+ {'which-6.0.0.tar.gz': '7fa5e0c10bf77f44aac573e498d1a82d5fbd5e91f6fc0a99e7be4b38e85e101c'},
+ {'wild-2.2.1.tar.gz': 'a3131afc8c575281e1e80f36ed6a092aa502c08b18ed7524e86fbbb12bb410e1'},
+ {'winapi-0.3.9.tar.gz': '5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419'},
+ {'winapi-i686-pc-windows-gnu-0.4.0.tar.gz': 'ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6'},
+ {'winapi-util-0.1.6.tar.gz': 'f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596'},
+ {'winapi-x86_64-pc-windows-gnu-0.4.0.tar.gz': '712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f'},
+ {'windows-sys-0.48.0.tar.gz': '677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9'},
+ {'windows-sys-0.52.0.tar.gz': '282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d'},
+ {'windows-targets-0.48.5.tar.gz': '9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c'},
+ {'windows-targets-0.52.0.tar.gz': '8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd'},
+ {'windows_aarch64_gnullvm-0.48.5.tar.gz': '2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8'},
+ {'windows_aarch64_gnullvm-0.52.0.tar.gz': 'cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea'},
+ {'windows_aarch64_msvc-0.48.5.tar.gz': 'dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc'},
+ {'windows_aarch64_msvc-0.52.0.tar.gz': 'bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef'},
+ {'windows_i686_gnu-0.48.5.tar.gz': 'a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e'},
+ {'windows_i686_gnu-0.52.0.tar.gz': 'a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313'},
+ {'windows_i686_msvc-0.48.5.tar.gz': '8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406'},
+ {'windows_i686_msvc-0.52.0.tar.gz': 'ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a'},
+ {'windows_x86_64_gnu-0.48.5.tar.gz': '53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e'},
+ {'windows_x86_64_gnu-0.52.0.tar.gz': '3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd'},
+ {'windows_x86_64_gnullvm-0.48.5.tar.gz': '0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc'},
+ {'windows_x86_64_gnullvm-0.52.0.tar.gz': '1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e'},
+ {'windows_x86_64_msvc-0.48.5.tar.gz': 'ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538'},
+ {'windows_x86_64_msvc-0.52.0.tar.gz': 'dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04'},
+ {'winnow-0.6.2.tar.gz': '7a4191c47f15cc3ec71fcb4913cb83d58def65dd3787610213c649283b5ce178'},
+ {'xattr-1.3.1.tar.gz': '8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f'},
+ {'xwin-0.5.0.tar.gz': 'c43e0202f5457b48558096cb7b36d0e473f267551a89c82ed72d73b01dfd4007'},
+ {'yansi-0.5.1.tar.gz': '09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec'},
+ {'zerocopy-0.7.32.tar.gz': '74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be'},
+ {'zerocopy-derive-0.7.32.tar.gz': '9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6'},
+ {'zeroize-1.7.0.tar.gz': '525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d'},
+ {'zip-0.6.6.tar.gz': '760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261'},
+]
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('setuptools-rust', '1.9.0'),
+]
+dependencies = [
+ ('Python', '3.12.3'),
+ ('Rust', '1.78.0'),
+]
+
+download_dep_fail = True
+sanity_pip_check = True
+use_pip = True
+
+moduleclass = 'tools'
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.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.0-foss-2023a.eb b/easybuild/easyconfigs/m/medaka/medaka-1.12.0-foss-2023a.eb
new file mode 100644
index 00000000000..af21d1b6a0d
--- /dev/null
+++ b/easybuild/easyconfigs/m/medaka/medaka-1.12.0-foss-2023a.eb
@@ -0,0 +1,84 @@
+# 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'
+
+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",
+]
+
+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.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/meshio/meshio-5.3.5-foss-2023b.eb b/easybuild/easyconfigs/m/meshio/meshio-5.3.5-foss-2023b.eb
new file mode 100644
index 00000000000..d4b1a912aa3
--- /dev/null
+++ b/easybuild/easyconfigs/m/meshio/meshio-5.3.5-foss-2023b.eb
@@ -0,0 +1,39 @@
+easyblock = 'PythonBundle'
+
+name = 'meshio'
+version = '5.3.5'
+
+homepage = 'https://github.com/nschloe/meshio'
+description = "meshio is a tool for reading/writing various mesh formats representing unstructured meshes"
+
+toolchain = {'name': 'foss', 'version': '2023b'}
+
+dependencies = [
+ ('Python', '3.11.5'),
+ ('Python-bundle-PyPI', '2023.10'), # includes rich
+ ('SciPy-bundle', '2023.11'), # includes numpy
+ ('h5py', '3.11.0'),
+ ('VTK', '9.3.0'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ ('appdirs', '1.4.4', {
+ 'checksums': ['7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41'],
+ }),
+ ('pipdate', '0.5.6', {
+ 'checksums': ['1b6b7ec2c5468fb7036ec9d6b2ced7a8a538db55aaca03f30199216d3bbd264b'],
+ }),
+ (name, version, {
+ 'checksums': ['f21f01abd9f29ba06ea119304b3d39e610421cfe93b9dd23362834919f87586d'],
+ }),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/meshio', 'bin/pipdate'],
+ 'dirs': ['lib/python%(pyshortver)s/site-packages'],
+}
+
+moduleclass = 'cae'
diff --git a/easybuild/easyconfigs/m/meson-python/meson-python-0.16.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/m/meson-python/meson-python-0.16.0-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..1724208584f
--- /dev/null
+++ b/easybuild/easyconfigs/m/meson-python/meson-python-0.16.0-GCCcore-13.3.0.eb
@@ -0,0 +1,37 @@
+easyblock = 'PythonBundle'
+
+name = 'meson-python'
+version = '0.16.0'
+
+homepage = 'https://github.com/mesonbuild/meson-python'
+description = "Python build backend (PEP 517) for Meson projects"
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+builddependencies = [
+ ('binutils', '2.42'),
+]
+
+dependencies = [
+ ('Python', '3.12.3'),
+ ('Python-bundle-PyPI', '2024.06'), # provides 'packaging'
+ ('Meson', '1.4.0'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('pyproject-metadata', '0.8.0', {
+ 'sources': ['pyproject_metadata-%(version)s.tar.gz'],
+ 'checksums': ['376d5a00764ac29440a54579f88e66b7d9cb7e629d35c35a1c7248bfebc9b455'],
+ }),
+ (name, version, {
+ 'modulename': 'mesonpy',
+ 'sources': ['meson_python-%(version)s.tar.gz'],
+ 'checksums': ['9068c17e36c89d6c7ff709fffb2a8a9925e8cd0b02629728e5ceaf2ec505cb5f'],
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/m/meteogrid/meteogrid-20240627-gfbf-2023a-R-4.3.2.eb b/easybuild/easyconfigs/m/meteogrid/meteogrid-20240627-gfbf-2023a-R-4.3.2.eb
new file mode 100644
index 00000000000..8fca99e5298
--- /dev/null
+++ b/easybuild/easyconfigs/m/meteogrid/meteogrid-20240627-gfbf-2023a-R-4.3.2.eb
@@ -0,0 +1,34 @@
+easyblock = 'RPackage'
+
+name = 'meteogrid'
+version = '20240627'
+local_commit = '9da2345'
+versionsuffix = '-R-%(rver)s'
+
+homepage = 'https://github.com/harphub/meteogrid'
+description = """
+R package for working with gridded meteorological data.
+"""
+
+toolchain = {'name': 'gfbf', 'version': '2023a'}
+
+source_urls = ['https://github.com/harphub/%(name)s/archive/']
+sources = [{
+ 'download_filename': '%s.tar.gz' % local_commit,
+ 'filename': '%%(name)s-%%(version)s-%s.tar.gz' % local_commit,
+}]
+checksums = ['ab89739e2e85d62bbdc8ee1a96d409654b19ebd2acf8251c2563a88f9d53d5c0']
+
+dependencies = [
+ ('R', '4.3.2'),
+ ('PROJ', '9.2.0'),
+]
+
+sanity_check_paths = {
+ 'files': [],
+ 'dirs': [name],
+}
+
+sanity_check_commands = ['Rscript -e "library(meteogrid)"']
+
+moduleclass = 'geo'
diff --git a/easybuild/easyconfigs/m/micro-sam/micro-sam-1.0.1-foss-2023a.eb b/easybuild/easyconfigs/m/micro-sam/micro-sam-1.0.1-foss-2023a.eb
new file mode 100644
index 00000000000..418740280e5
--- /dev/null
+++ b/easybuild/easyconfigs/m/micro-sam/micro-sam-1.0.1-foss-2023a.eb
@@ -0,0 +1,43 @@
+easyblock = 'PythonBundle'
+
+name = 'micro-sam'
+version = '1.0.1'
+
+homepage = 'https://github.com/computational-cell-analytics/micro-sam/'
+description = "Tools for segmentation and tracking in microscopy build on top of SegmentAnything."
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('Python-bundle-PyPI', '2023.06'),
+ ('torchvision', '0.16.0'),
+ ('napari', '0.4.18'),
+ ('zarr', '2.17.1'),
+ ('vigra', '1.11.2'),
+ ('python-elf', '0.5.1'),
+ ('z5py', '2.0.17'),
+ ('python-xxhash', '3.4.1'),
+ ('segment-anything', '1.0'),
+ ('torch-em', '0.7.1'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ (name, version, {
+ 'source_urls': ['https://github.com/computational-cell-analytics/micro-sam/archive/'],
+ 'sources': ['v%(version)s.tar.gz'],
+ 'checksums': ['5b7cc562a639d68de4f9462f3696f17b479ea0d669eaedb34687b65ceac715e9'],
+ }),
+]
+
+sanity_check_commands = [
+ "python -c 'import affogato'",
+ "python -c 'import napari.viewer'",
+ "micro_sam.annotator_2d -h",
+ "micro_sam.annotator_3d -h",
+]
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/m/miniasm/miniasm-0.3-20191007-GCCcore-12.3.0.eb b/easybuild/easyconfigs/m/miniasm/miniasm-0.3-20191007-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..a34b456c98c
--- /dev/null
+++ b/easybuild/easyconfigs/m/miniasm/miniasm-0.3-20191007-GCCcore-12.3.0.eb
@@ -0,0 +1,46 @@
+easyblock = 'MakeCp'
+
+name = 'miniasm'
+version = '0.3-20191007'
+local_commit = 'ce615d1d6b8678d38f2f9d27c9dccd944436ae75'
+
+homepage = 'https://github.com/lh3/miniasm'
+description = """Miniasm is a very fast OLC-based de novo assembler for noisy long reads. It
+takes all-vs-all read self-mappings (typically by minimap) as input and outputs
+an assembly graph in the GFA format. Different from mainstream assemblers,
+miniasm does not have a consensus step. It simply concatenates pieces of read
+sequences to generate the final unitig sequences. Thus the per-base error rate
+is similar to the raw input reads."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+github_account = 'lh3'
+source_urls = [GITHUB_SOURCE]
+sources = [{'download_filename': '%s.tar.gz' % local_commit, 'filename': SOURCE_TAR_GZ}]
+checksums = ['31d62309e8b802d3aebd492c1fed8d2a9197a3243c128345745dccb762457e3d']
+
+builddependencies = [
+ ('binutils', '2.40'),
+]
+
+dependencies = [
+ ('zlib', '1.2.13'),
+]
+
+buildopts = 'CC="${CC}" CFLAGS="${CFLAGS}" CPPFLAGS="${CPPFLAGS}"'
+
+files_to_copy = [
+ (['%(name)s', 'minidot'], 'bin'),
+ (['*.h'], 'include'),
+ (['LICENSE.txt', 'PAF.md', 'README.md'], 'share'),
+ (['%(name)s.1'], 'share/man/man1'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/%(name)s', 'bin/minidot'],
+ 'dirs': ['include', 'share']
+}
+
+sanity_check_commands = ["miniasm -V"]
+
+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/miniprot/miniprot-0.13-GCCcore-12.3.0.eb b/easybuild/easyconfigs/m/miniprot/miniprot-0.13-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..aa598c6869b
--- /dev/null
+++ b/easybuild/easyconfigs/m/miniprot/miniprot-0.13-GCCcore-12.3.0.eb
@@ -0,0 +1,33 @@
+easyblock = "MakeCp"
+
+name = 'miniprot'
+version = '0.13'
+
+homepage = 'https://github.com/lh3/miniprot'
+description = """Miniprot aligns a protein sequence against a genome with affine gap penalty, splicing and frameshift.
+It is primarily intended for annotating protein-coding genes in a new species using known genes from other species.
+Miniprot is similar to GeneWise and Exonerate in functionality but it can map proteins to whole genomes and is much
+faster at the residue alignment step."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = ['https://github.com/lh3/miniprot/archive']
+sources = [{'download_filename': 'v%(version)s.tar.gz', 'filename': SOURCE_TAR_GZ}]
+checksums = ['be12d98d998beb78e4e06350c03d2f188bcdf3245d6bcaf43e2cc80785a617a4']
+
+builddependencies = [('binutils', '2.40')]
+dependencies = [('zlib', '1.2.13')]
+
+files_to_copy = [
+ (['*.h', 'miniprot.1', 'test', 'tex'], 'lib'),
+ (['miniprot'], 'bin'),
+ 'README.md',
+ 'LICENSE.txt',
+]
+
+sanity_check_paths = {
+ 'files': ['bin/miniprot'],
+ 'dirs': ['lib'],
+}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/m/ml-collections/ml-collections-0.1.1-foss-2023a.eb b/easybuild/easyconfigs/m/ml-collections/ml-collections-0.1.1-foss-2023a.eb
new file mode 100644
index 00000000000..79034a7433d
--- /dev/null
+++ b/easybuild/easyconfigs/m/ml-collections/ml-collections-0.1.1-foss-2023a.eb
@@ -0,0 +1,37 @@
+easyblock = 'PythonBundle'
+
+name = 'ml-collections'
+version = '0.1.1'
+
+homepage = 'https://github.com/google/ml_collections'
+description = """
+ML Collections is a library of Python Collections designed for ML use cases.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+ ('PyYAML', '6.0'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('absl-py', '2.1.0', {
+ 'modulename': 'absl',
+ 'checksums': ['7820790efbb316739cde8b4e19357243fc3608a152024288513dd968d7d959ff'],
+ }),
+ ('contextlib2', '21.6.0', {
+ 'checksums': ['ab1e2bfe1d01d968e1b7e8d9023bc51ef3509bba217bb730cee3827e1ee82869'],
+ }),
+ ('ml_collections', version, {
+ 'preinstallopts': "touch requirements.txt && touch requirements-test.txt && ",
+ 'checksums': ['3fefcc72ec433aa1e5d32307a3e474bbb67f405be814ea52a2166bfc9dbe68cc'],
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/m/ml_dtypes/ml_dtypes-0.3.2-gfbf-2023a.eb b/easybuild/easyconfigs/m/ml_dtypes/ml_dtypes-0.3.2-gfbf-2023a.eb
new file mode 100644
index 00000000000..9c3a18bfdb5
--- /dev/null
+++ b/easybuild/easyconfigs/m/ml_dtypes/ml_dtypes-0.3.2-gfbf-2023a.eb
@@ -0,0 +1,51 @@
+# Thomas Hoffmann, EMBL Heidelberg, structures-it@embl.de, 2024/02
+easyblock = 'PythonBundle'
+
+name = 'ml_dtypes'
+version = '0.3.2'
+
+homepage = 'https://github.com/jax-ml/ml_dtypes'
+description = """
+ml_dtypes is a stand-alone implementation of several NumPy dtype extensions used
+in machine learning libraries, including:
+
+bfloat16: an alternative to the standard float16 format
+float8_*: several experimental 8-bit floating point representations including:
+float8_e4m3b11fnuz
+float8_e4m3fn
+float8_e4m3fnuz
+float8_e5m2
+float8_e5m2fnuz
+"""
+
+toolchain = {'name': 'gfbf', 'version': '2023a'}
+
+dependencies = [
+ ('Python', '3.11.3'),
+ ('SciPy-bundle', '2023.07'),
+]
+
+
+use_pip = True
+
+default_easyblock = 'PythonPackage'
+
+exts_list = [
+ ('opt_einsum', '3.3.0', {
+ 'checksums': ['59f6475f77bbc37dcf7cd748519c0ec60722e91e63ca114e68821c0c54a46549'],
+ }),
+ ('etils', '1.6.0', {
+ 'checksums': ['c635fbd02a79fed4ad76825d31306b581d22b40671721daa8bc279cf6333e48a'],
+ }),
+ (name, version, {
+ 'patches': [('ml_dtypes-0.3.2_EigenAvx512.patch', 1)],
+ 'checksums': [
+ {'ml_dtypes-0.3.2.tar.gz': '533059bc5f1764fac071ef54598db358c167c51a718f68f5bb55e3dee79d2967'},
+ {'ml_dtypes-0.3.2_EigenAvx512.patch': '197b05b0b7f611749824369f026099f6a172f9e8eab6ebb6504a16573746c892'},
+ ],
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/m/ml_dtypes/ml_dtypes-0.3.2_EigenAvx512.patch b/easybuild/easyconfigs/m/ml_dtypes/ml_dtypes-0.3.2_EigenAvx512.patch
new file mode 100644
index 00000000000..42ea0606391
--- /dev/null
+++ b/easybuild/easyconfigs/m/ml_dtypes/ml_dtypes-0.3.2_EigenAvx512.patch
@@ -0,0 +1,1219 @@
+# Thomas Hoffmann, EMBL Heidelberg, structures-it@embl.de, 2024/01
+# ml_dtype 0.3.2 ships a copy of Eigen commit 7bf2968 (https://gitlab.com/libeigen/eigen/-/commit/7bf2968).
+# This copy is missing the file src/Core/arch/AVX512/TrsmUnrolls.inc, which is added by the present patch.
+diff -ru --new-file old/third_party_ori/eigen/Eigen/src/Core/arch/AVX512/TrsmUnrolls.inc new/third_party/eigen/Eigen/src/Core/arch/AVX512/TrsmUnrolls.inc
+--- old/third_party/eigen/Eigen/src/Core/arch/AVX512/TrsmUnrolls.inc 1970-01-01 01:00:00.000000000 +0100
++++ new/third_party/eigen/Eigen/src/Core/arch/AVX512/TrsmUnrolls.inc 2024-02-14 10:32:25.492978066 +0100
+@@ -0,0 +1,1212 @@
++// This file is part of Eigen, a lightweight C++ template library
++// for linear algebra.
++//
++// Copyright (C) 2022 Intel Corporation
++//
++// This Source Code Form is subject to the terms of the Mozilla
++// Public License v. 2.0. If a copy of the MPL was not distributed
++// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
++
++#ifndef EIGEN_CORE_ARCH_AVX512_TRSM_UNROLLS_H
++#define EIGEN_CORE_ARCH_AVX512_TRSM_UNROLLS_H
++
++template
++EIGEN_ALWAYS_INLINE int64_t idA(int64_t i, int64_t j, int64_t LDA) {
++ EIGEN_IF_CONSTEXPR(isARowMajor) return i * LDA + j;
++ else return i + j * LDA;
++}
++
++/**
++ * This namespace contains various classes used to generate compile-time unrolls which are
++ * used throughout the trsm/gemm kernels. The unrolls are characterized as for-loops (1-D), nested
++ * for-loops (2-D), or triple nested for-loops (3-D). Unrolls are generated using template recursion
++ *
++ * Example, the 2-D for-loop is unrolled recursively by first flattening to a 1-D loop.
++ *
++ * for(startI = 0; startI < endI; startI++) for(startC = 0; startC < endI*endJ; startC++)
++ * for(startJ = 0; startJ < endJ; startJ++) ----> startI = (startC)/(endJ)
++ * func(startI,startJ) startJ = (startC)%(endJ)
++ * func(...)
++ *
++ * The 1-D loop can be unrolled recursively by using enable_if and defining an auxillary function
++ * with a template parameter used as a counter.
++ *
++ * template
++ * std::enable_if_t<(counter <= 0)> <---- tail case.
++ * aux_func {}
++ *
++ * template
++ * std::enable_if_t<(counter > 0)> <---- actual for-loop
++ * aux_func {
++ * startC = endI*endJ - counter
++ * startI = (startC)/(endJ)
++ * startJ = (startC)%(endJ)
++ * func(startI, startJ)
++ * aux_func()
++ * }
++ *
++ * Note: Additional wrapper functions are provided for aux_func which hides the counter template
++ * parameter since counter usually depends on endI, endJ, etc...
++ *
++ * Conventions:
++ * 1) endX: specifies the terminal value for the for-loop, (ex: for(startX = 0; startX < endX; startX++))
++ *
++ * 2) rem, remM, remK template parameters are used for deciding whether to use masked operations for
++ * handling remaining tails (when sizes are not multiples of PacketSize or EIGEN_AVX_MAX_NUM_ROW)
++ */
++namespace unrolls {
++
++template
++EIGEN_ALWAYS_INLINE auto remMask(int64_t m) {
++ EIGEN_IF_CONSTEXPR(N == 16) { return 0xFFFF >> (16 - m); }
++ else EIGEN_IF_CONSTEXPR(N == 8) {
++ return 0xFF >> (8 - m);
++ }
++ else EIGEN_IF_CONSTEXPR(N == 4) {
++ return 0x0F >> (4 - m);
++ }
++ return 0;
++}
++
++template
++EIGEN_ALWAYS_INLINE void trans8x8blocks(PacketBlock &kernel);
++
++template <>
++EIGEN_ALWAYS_INLINE void trans8x8blocks(PacketBlock &kernel) {
++ __m512 T0 = _mm512_unpacklo_ps(kernel.packet[0], kernel.packet[1]);
++ __m512 T1 = _mm512_unpackhi_ps(kernel.packet[0], kernel.packet[1]);
++ __m512 T2 = _mm512_unpacklo_ps(kernel.packet[2], kernel.packet[3]);
++ __m512 T3 = _mm512_unpackhi_ps(kernel.packet[2], kernel.packet[3]);
++ __m512 T4 = _mm512_unpacklo_ps(kernel.packet[4], kernel.packet[5]);
++ __m512 T5 = _mm512_unpackhi_ps(kernel.packet[4], kernel.packet[5]);
++ __m512 T6 = _mm512_unpacklo_ps(kernel.packet[6], kernel.packet[7]);
++ __m512 T7 = _mm512_unpackhi_ps(kernel.packet[6], kernel.packet[7]);
++
++ kernel.packet[0] = _mm512_castpd_ps(_mm512_unpacklo_pd(_mm512_castps_pd(T0), _mm512_castps_pd(T2)));
++ kernel.packet[1] = _mm512_castpd_ps(_mm512_unpackhi_pd(_mm512_castps_pd(T0), _mm512_castps_pd(T2)));
++ kernel.packet[2] = _mm512_castpd_ps(_mm512_unpacklo_pd(_mm512_castps_pd(T1), _mm512_castps_pd(T3)));
++ kernel.packet[3] = _mm512_castpd_ps(_mm512_unpackhi_pd(_mm512_castps_pd(T1), _mm512_castps_pd(T3)));
++ kernel.packet[4] = _mm512_castpd_ps(_mm512_unpacklo_pd(_mm512_castps_pd(T4), _mm512_castps_pd(T6)));
++ kernel.packet[5] = _mm512_castpd_ps(_mm512_unpackhi_pd(_mm512_castps_pd(T4), _mm512_castps_pd(T6)));
++ kernel.packet[6] = _mm512_castpd_ps(_mm512_unpacklo_pd(_mm512_castps_pd(T5), _mm512_castps_pd(T7)));
++ kernel.packet[7] = _mm512_castpd_ps(_mm512_unpackhi_pd(_mm512_castps_pd(T5), _mm512_castps_pd(T7)));
++
++ T0 = _mm512_castpd_ps(_mm512_permutex_pd(_mm512_castps_pd(kernel.packet[4]), 0x4E));
++ T0 = _mm512_mask_blend_ps(0xF0F0, kernel.packet[0], T0);
++ T4 = _mm512_castpd_ps(_mm512_permutex_pd(_mm512_castps_pd(kernel.packet[0]), 0x4E));
++ T4 = _mm512_mask_blend_ps(0xF0F0, T4, kernel.packet[4]);
++ T1 = _mm512_castpd_ps(_mm512_permutex_pd(_mm512_castps_pd(kernel.packet[5]), 0x4E));
++ T1 = _mm512_mask_blend_ps(0xF0F0, kernel.packet[1], T1);
++ T5 = _mm512_castpd_ps(_mm512_permutex_pd(_mm512_castps_pd(kernel.packet[1]), 0x4E));
++ T5 = _mm512_mask_blend_ps(0xF0F0, T5, kernel.packet[5]);
++ T2 = _mm512_castpd_ps(_mm512_permutex_pd(_mm512_castps_pd(kernel.packet[6]), 0x4E));
++ T2 = _mm512_mask_blend_ps(0xF0F0, kernel.packet[2], T2);
++ T6 = _mm512_castpd_ps(_mm512_permutex_pd(_mm512_castps_pd(kernel.packet[2]), 0x4E));
++ T6 = _mm512_mask_blend_ps(0xF0F0, T6, kernel.packet[6]);
++ T3 = _mm512_castpd_ps(_mm512_permutex_pd(_mm512_castps_pd(kernel.packet[7]), 0x4E));
++ T3 = _mm512_mask_blend_ps(0xF0F0, kernel.packet[3], T3);
++ T7 = _mm512_castpd_ps(_mm512_permutex_pd(_mm512_castps_pd(kernel.packet[3]), 0x4E));
++ T7 = _mm512_mask_blend_ps(0xF0F0, T7, kernel.packet[7]);
++
++ kernel.packet[0] = T0;
++ kernel.packet[1] = T1;
++ kernel.packet[2] = T2;
++ kernel.packet[3] = T3;
++ kernel.packet[4] = T4;
++ kernel.packet[5] = T5;
++ kernel.packet[6] = T6;
++ kernel.packet[7] = T7;
++}
++
++template <>
++EIGEN_ALWAYS_INLINE void trans8x8blocks(PacketBlock &kernel) {
++ ptranspose(kernel);
++}
++
++/***
++ * Unrolls for tranposed C stores
++ */
++template
++class trans {
++ public:
++ using vec = typename std::conditional::value, vecFullFloat, vecFullDouble>::type;
++ using vecHalf = typename std::conditional::value, vecHalfFloat, vecFullDouble>::type;
++ static constexpr int64_t PacketSize = packet_traits::size;
++
++ /***********************************
++ * Auxillary Functions for:
++ * - storeC
++ ***********************************
++ */
++
++ /**
++ * aux_storeC
++ *
++ * 1-D unroll
++ * for(startN = 0; startN < endN; startN++)
++ *
++ * (endN <= PacketSize) is required to handle the fp32 case, see comments in transStoreC
++ *
++ **/
++ template
++ static EIGEN_ALWAYS_INLINE std::enable_if_t<(counter > 0 && endN <= PacketSize)> aux_storeC(
++ Scalar *C_arr, int64_t LDC, PacketBlock &zmm, int64_t remM_ = 0) {
++ constexpr int64_t counterReverse = endN - counter;
++ constexpr int64_t startN = counterReverse;
++
++ EIGEN_IF_CONSTEXPR(startN < EIGEN_AVX_MAX_NUM_ROW) {
++ EIGEN_IF_CONSTEXPR(remM) {
++ pstoreu(
++ C_arr + LDC * startN,
++ padd(ploadu((const Scalar *)C_arr + LDC * startN, remMask(remM_)),
++ preinterpret(zmm.packet[packetIndexOffset + (unrollN / PacketSize) * startN]),
++ remMask(remM_)),
++ remMask(remM_));
++ }
++ else {
++ pstoreu(C_arr + LDC * startN,
++ padd(ploadu((const Scalar *)C_arr + LDC * startN),
++ preinterpret(zmm.packet[packetIndexOffset + (unrollN / PacketSize) * startN])));
++ }
++ }
++ else { // This block is only needed for fp32 case
++ // Reinterpret as __m512 for _mm512_shuffle_f32x4
++ vecFullFloat zmm2vecFullFloat = preinterpret(
++ zmm.packet[packetIndexOffset + (unrollN / PacketSize) * (startN - EIGEN_AVX_MAX_NUM_ROW)]);
++ // Swap lower and upper half of avx register.
++ zmm.packet[packetIndexOffset + (unrollN / PacketSize) * (startN - EIGEN_AVX_MAX_NUM_ROW)] =
++ preinterpret(_mm512_shuffle_f32x4(zmm2vecFullFloat, zmm2vecFullFloat, 0b01001110));
++
++ EIGEN_IF_CONSTEXPR(remM) {
++ pstoreu(
++ C_arr + LDC * startN,
++ padd(ploadu((const Scalar *)C_arr + LDC * startN, remMask