diff --git a/.github/workflows/tagbot.py b/.github/workflows/tagbot.py
index 9c9710e9a46..26472f8bcbd 100644
--- a/.github/workflows/tagbot.py
+++ b/.github/workflows/tagbot.py
@@ -1,9 +1,11 @@
+# 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
-import difflib
-from datetime import datetime
from pathlib import Path
@@ -12,8 +14,7 @@ def get_first_commit_date(repo, file_path):
if commits:
return commits[-1].committed_date
else:
- print(f"{file_path} has no commit info, putting it last")
- return datetime.datetime.min
+ raise ValueError(f'{file_path} has no commit info, this should not happen')
def sort_by_added_date(repo, file_paths):
@@ -27,17 +28,6 @@ def similar_easyconfigs(repo, new_file):
return sort_by_added_date(repo, possible_neighbours)
-def diff(old, new):
- with open(old, 'r') as old_file, open(new, 'r') as new_file:
- old_lines = list(old_file)
- new_lines = list(new_file)
- return ''.join(difflib.unified_diff(
- old_lines,
- new_lines,
- fromfile=str(old),
- tofile=str(new)))
-
-
def pr_ecs(pr_diff):
new_ecs = []
changed_ecs = []
@@ -51,33 +41,38 @@ def pr_ecs(pr_diff):
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")
-pr_ref_name = os.getenv("GITHUB_REF_NAME")
+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("Repo:", repo)
print("Base branch name:", base_branch_name)
-print("PR ref:", pr_ref_name)
-
-gitrepo = git.Repo(".")
+# 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)
-pr_commit = gitrepo.commit('pull/' + pr_ref_name)
-pr_diff = target_commit.diff(pr_commit)
+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:", changed_ecs)
-print("Newly added ECs:", new_ecs)
+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
@@ -116,15 +111,20 @@ def pr_ecs(pr_diff):
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 += diff(neighbour, new_file)
- comment += '```\n\n\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 [(changed_ecs, 'change'), (new_software, 'new'), (updated_software, 'update')]:
+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:
diff --git a/.github/workflows/tagbot.yml b/.github/workflows/tagbot.yml
index 1d382dae51d..8c0fa06294b 100644
--- a/.github/workflows/tagbot.yml
+++ b/.github/workflows/tagbot.yml
@@ -1,19 +1,43 @@
name: Tagbot
-on: [pull_request]
+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:
- - uses: actions/checkout@v4
+ - 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
- - run: |
- # Make sure the script is unmodified
- echo "8be2d295e8436ce557acc8a4d3b82a639913ae65de0d1a76871f21359b4e8d9f .github/workflows/tagbot.py"|sha256sum --check --status
+ - 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
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/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/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/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/GTDB-Tk/GTDB-Tk-2.4.0-foss-2023a.eb b/easybuild/easyconfigs/g/GTDB-Tk/GTDB-Tk-2.4.0-foss-2023a.eb
index 271be65a5dd..a8f48c5966b 100644
--- a/easybuild/easyconfigs/g/GTDB-Tk/GTDB-Tk-2.4.0-foss-2023a.eb
+++ b/easybuild/easyconfigs/g/GTDB-Tk/GTDB-Tk-2.4.0-foss-2023a.eb
@@ -19,7 +19,7 @@ dependencies = [
('prodigal', '2.6.3'),
('HMMER', '3.4'),
('pplacer', '1.1.alpha19', '', SYSTEM),
- ('FastANI', '1.34'),
+ ('skani', '0.2.2'),
('FastTree', '2.1.11'),
('Mash', '2.3'),
('tqdm', '4.66.1'),
diff --git a/easybuild/easyconfigs/g/GTK3/GTK3-3.24.42-GCCcore-13.3.0.eb b/easybuild/easyconfigs/g/GTK3/GTK3-3.24.42-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..2df9a346d4a
--- /dev/null
+++ b/easybuild/easyconfigs/g/GTK3/GTK3-3.24.42-GCCcore-13.3.0.eb
@@ -0,0 +1,72 @@
+easyblock = 'Bundle'
+
+name = 'GTK3'
+version = '3.24.42'
+
+homepage = 'https://developer.gnome.org/gtk3/stable/'
+description = """GTK+ is the primary library used to construct user interfaces in GNOME. It
+ provides all the user interface controls, or widgets, used in a common
+ graphical application. Its object-oriented API allows you to construct
+ user interfaces without dealing with the low-level details of drawing and
+ device interaction.
+"""
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('Autotools', '20231222'),
+ ('Meson', '1.4.0'),
+ ('Ninja', '1.12.1'),
+ ('pkgconf', '2.2.0'),
+ ('GObject-Introspection', '1.80.1'),
+]
+
+dependencies = [
+ ('ATK', '2.38.0'),
+ ('at-spi2-atk', '2.38.0'),
+ ('cairo', '1.18.0'),
+ ('Gdk-Pixbuf', '2.42.11'),
+ ('GLib', '2.80.4'),
+ ('Pango', '1.54.0'),
+ ('libepoxy', '1.5.10'),
+ ('X11', '20240607'),
+ ('FriBidi', '1.0.15'),
+ ('Wayland', '1.23.0'),
+]
+
+default_easyblock = 'MesonNinja'
+
+default_component_specs = {
+ 'sources': [SOURCELOWER_TAR_XZ],
+ 'start_dir': '%(namelower)s-%(version)s',
+}
+
+components = [
+ ('GTK+', version, {
+ 'source_urls': [FTPGNOME_SOURCE],
+ 'checksums': ['50f89f615092d4dd01bbd759719f8bd380e5f149f6fd78a94725e2de112377e2'],
+ }),
+ ('hicolor-icon-theme', '0.18', {
+ 'easyblock': 'MesonNinja',
+ 'source_urls': ['https://icon-theme.freedesktop.org/releases/'],
+ 'checksums': ['db0e50a80aa3bf64bb45cbca5cf9f75efd9348cf2ac690b907435238c3cf81d7'],
+ }),
+ ('adwaita-icon-theme', '47.0', {
+ 'source_urls': ['https://ftp.gnome.org/pub/GNOME/sources/%(namelower)s/%(version_major)s'],
+ 'checksums': ['ad088a22958cb8469e41d9f1bba0efb27e586a2102213cd89cc26db2e002bdfe'],
+ }),
+]
+
+postinstallcmds = ['gtk-update-icon-cache']
+
+sanity_check_paths = {
+ 'files': ['bin/%s' % x for x in ['gtk3-demo', 'gtk3-demo-application', 'gtk3-icon-browser', 'gtk3-widget-factory',
+ 'gtk-builder-tool', 'gtk-launch', 'gtk-query-immodules-3.0', 'gtk-query-settings',
+ 'gtk-update-icon-cache']] +
+ ['lib/%s-%%(version_major)s.%s' % (x, SHLIB_EXT) for x in ['libgailutil', 'libgdk', 'libgtk']],
+ 'dirs': ['include/%s-%%(version_major)s.0' % x for x in ['gail', 'gtk']] +
+ ['share/icons/hicolor', 'share/icons/Adwaita'],
+}
+
+moduleclass = 'vis'
diff --git a/easybuild/easyconfigs/g/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/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/HPX/HPX-1.10.0-foss-2024a.eb b/easybuild/easyconfigs/h/HPX/HPX-1.10.0-foss-2024a.eb
new file mode 100644
index 00000000000..110ca403b7c
--- /dev/null
+++ b/easybuild/easyconfigs/h/HPX/HPX-1.10.0-foss-2024a.eb
@@ -0,0 +1,78 @@
+# #
+# Author: Benjamin Czaja (benjamin.czaja@surf.nl)
+# Institute: SURF(sara)
+#
+# #
+easyblock = 'CMakeNinja'
+
+name = 'HPX'
+version = '1.10.0'
+
+homepage = 'http://stellar-group.org/libraries/hpx/'
+description = """HPX (High Performance ParalleX) is a general purpose C++ runtime system
+ for parallel and distributed applications of any scale."""
+
+toolchain = {'name': 'foss', 'version': '2024a'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/STEllAR-GROUP/%(namelower)s/archive']
+sources = ['v%(version)s.tar.gz']
+checksums = ['5720ed7d2460fa0b57bd8cb74fa4f70593fe8675463897678160340526ec3c19']
+
+builddependencies = [
+ ('CMake', '3.29.3'),
+ ('Ninja', '1.12.1'),
+ ('pkgconf', '2.2.0'),
+]
+dependencies = [
+ ('HDF5', '1.14.5'),
+ ('Boost', '1.85.0'),
+ ('hwloc', '2.10.0'),
+ ('gperftools', '2.16'),
+]
+
+configopts = '-DCMAKE_CXX_COMPILER=g++ '
+configopts += '-DHPX_WITH_MALLOC=tcmalloc '
+configopts += '-DHPX_WITH_HWLOC=TRUE '
+configopts += '-DHPX_WITH_GOOGLE_PERFTOOLS=TRUE '
+configopts += '-DHPX_WITH_NETWORKING=TRUE '
+configopts += '-DHPX_WITH_PARCELPORT_TCP=FALSE '
+configopts += '-DHPX_WITH_PARCELPORT_MPI=TRUE '
+configopts += '-DHPX_WITH_TESTS=FALSE '
+configopts += '-DHPX_WITH_EXAMPLES=TRUE '
+# configopts += '-DHPX_WITH_MAX_CPU_COUNT=128' #this should be handled by a hook for the system
+# configopts += '-DHPX_WITH_MAX_CPU_COUNT=' + os.cpu_count()
+configopts += '-DHPX_WITH_FETCH_ASIO=TRUE '
+
+bin_lib_subdirs = ['lib/%(namelower)s/']
+
+local_lib_names = [
+ 'libhpx_accumulator.%s' % SHLIB_EXT,
+ 'libhpx_cancelable_action.%s' % SHLIB_EXT,
+ 'libhpx_component_storage.%s' % SHLIB_EXT,
+ 'libhpx_core.%s' % SHLIB_EXT,
+ 'libhpx_iostreams.%s' % SHLIB_EXT,
+ 'libhpx_jacobi.%s' % SHLIB_EXT,
+ 'libhpx_nqueen.%s' % SHLIB_EXT,
+ 'libhpx_partitioned_vector.%s' % SHLIB_EXT,
+ 'libhpx_process.%s' % SHLIB_EXT,
+ 'libhpx_random_mem_access.%s' % SHLIB_EXT,
+ 'libhpx_simple_central_tuplespace.%s' % SHLIB_EXT,
+ 'libhpx.%s' % SHLIB_EXT,
+ 'libhpx_startup_shutdown.%s' % SHLIB_EXT,
+ 'libhpx_template_accumulator.%s' % SHLIB_EXT,
+ 'libhpx_template_function_accumulator.%s' % SHLIB_EXT,
+ 'libhpx_throttle.%s' % SHLIB_EXT,
+ 'libhpx_unordered.%s' % SHLIB_EXT,
+]
+
+sanity_check_paths = {
+ 'files': ['lib/%s' % lib for lib in local_lib_names] +
+ ['include/asio.hpp', 'include/hpx/hpx.hpp'] +
+ ['bin/hpxcxx', 'bin/hpxrun.py'],
+ 'dirs': ['bin', 'lib'] + bin_lib_subdirs,
+}
+
+modextrapaths = {'LD_LIBRARY_PATH': bin_lib_subdirs}
+
+moduleclass = 'math'
diff --git a/easybuild/easyconfigs/h/HTSlib/HTSlib-1.21-GCC-13.3.0.eb b/easybuild/easyconfigs/h/HTSlib/HTSlib-1.21-GCC-13.3.0.eb
new file mode 100644
index 00000000000..2f35f9fa5a2
--- /dev/null
+++ b/easybuild/easyconfigs/h/HTSlib/HTSlib-1.21-GCC-13.3.0.eb
@@ -0,0 +1,41 @@
+# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
+# Author: Pablo Escobar Lopez
+# Swiss Institute of Bioinformatics
+# Biozentrum - University of Basel
+# 1.4 modified by:
+# Adam Huffman, Jonas Demeulemeester
+# The Francis Crick Institute
+# Updated to 1.14
+# J. Sassmannshausen /GSTT
+# Updated to 1.21 jpecar EMBL
+
+easyblock = 'ConfigureMake'
+
+name = 'HTSlib'
+version = '1.21'
+
+homepage = 'https://www.htslib.org/'
+description = """A C library for reading/writing high-throughput sequencing data.
+ This package includes the utilities bgzip and tabix"""
+
+toolchain = {'name': 'GCC', 'version': '13.3.0'}
+
+source_urls = ['https://github.com/samtools/%(namelower)s/releases/download/%(version)s/']
+sources = [SOURCELOWER_TAR_BZ2]
+checksums = ['84b510e735f4963641f26fd88c8abdee81ff4cb62168310ae716636aac0f1823']
+
+# cURL added for S3 support
+dependencies = [
+ ('zlib', '1.3.1'),
+ ('bzip2', '1.0.8'),
+ ('XZ', '5.4.5'),
+ ('cURL', '8.7.1'),
+]
+
+
+sanity_check_paths = {
+ 'files': ['bin/bgzip', 'bin/tabix', 'lib/libhts.%s' % SHLIB_EXT],
+ 'dirs': [],
+}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/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/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/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-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/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/modin/modin-0.32.0-foss-2024a.eb b/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb
new file mode 100644
index 00000000000..3d6ce8d2958
--- /dev/null
+++ b/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb
@@ -0,0 +1,57 @@
+easyblock = 'PythonBundle'
+
+name = 'modin'
+version = '0.32.0'
+
+homepage = 'https://github.com/modin-project/modin'
+description = """Modin uses Ray, Dask or Unidist to provide an effortless way to speed up your pandas notebooks,
+scripts, and libraries. """
+
+toolchain = {'name': 'foss', 'version': '2024a'}
+
+builddependencies = [
+ ('Cython', '3.0.10'),
+ # Needed for tests
+ ('boto3', '1.35.36'),
+ ('s3fs', '2024.9.0'),
+]
+
+dependencies = [
+ ('Python', '3.12.3'),
+ ('Python-bundle-PyPI', '2024.06'),
+ ('SciPy-bundle', '2024.05'),
+ ('dask', '2024.9.1'),
+ ('OpenMPI', '5.0.3'),
+ ('Ray-project', '2.37.0'),
+ ('Arrow', '17.0.0'),
+]
+
+use_pip = True
+
+exts_list = [
+ ('unidist', '0.7.2', {
+ 'checksums': ['6386e1ad5143fe132b9f96e232fe85fc39830ed2886515440e4ba1473255e4a0'],
+ }),
+ # The oversubscription is done in their own CI as well.
+ # Ray has limitations on unix socket path length, so it is not tested here.
+ (name, version, {
+ 'patches': ['modin-0.32.0_fix-pytest-config.patch'],
+ 'runtest': (
+ "MODIN_ENGINE=unidist UNIDIST_ENGINE=mpi "
+ "mpiexec -n=1 --map-by :OVERSUBSCRIBE pytest modin/tests/pandas/test_general.py &&"
+ "MODIN_ENGINE=dask pytest modin/tests/pandas/test_general.py"
+ ),
+ 'source_tmpl': '%(version)s.tar.gz',
+ 'source_urls': ['https://github.com/modin-project/%(name)s/archive/refs/tags'],
+ 'testinstall': True,
+ 'checksums': [
+ {'0.32.0.tar.gz': 'f2ef11f384a7d47eb6680a2f6f4bbc3404fa6290163d36384032daff3837b063'},
+ {'modin-0.32.0_fix-pytest-config.patch':
+ 'c49bd5c072a87321760c7c5eebc957f4f6962763a3526a500fe6330cf3f2b765'},
+ ],
+ }),
+]
+
+sanity_pip_check = True
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/m/modin/modin-0.32.0_fix-pytest-config.patch b/easybuild/easyconfigs/m/modin/modin-0.32.0_fix-pytest-config.patch
new file mode 100644
index 00000000000..990e053d328
--- /dev/null
+++ b/easybuild/easyconfigs/m/modin/modin-0.32.0_fix-pytest-config.patch
@@ -0,0 +1,20 @@
+Removes unnecessary options for pytest that induce additional dependencies.
+
+--- 0.32.0/foss-2024a/modin/modin-0.32.0/setup.cfg.orig 2024-10-17 15:56:55.245266649 +0200
++++ 0.32.0/foss-2024a/modin/modin-0.32.0/setup.cfg 2024-10-17 15:57:34.748841878 +0200
+@@ -11,15 +11,6 @@
+ tag_prefix =
+ parentdir_prefix = modin-
+
+-[tool:pytest]
+-addopts = --cov-config=setup.cfg --cov=modin --cov-append --cov-report= -m "not exclude_by_default"
+-xfail_strict=true
+-markers =
+- exclude_in_sanity
+- exclude_by_default
+-filterwarnings =
+- error:.*defaulting to pandas.*:UserWarning
+-
+ [isort]
+ profile = black
+
diff --git a/easybuild/easyconfigs/m/mosdepth/mosdepth-0.3.9-GCC-12.3.0.eb b/easybuild/easyconfigs/m/mosdepth/mosdepth-0.3.9-GCC-12.3.0.eb
new file mode 100644
index 00000000000..8fcad4de92b
--- /dev/null
+++ b/easybuild/easyconfigs/m/mosdepth/mosdepth-0.3.9-GCC-12.3.0.eb
@@ -0,0 +1,48 @@
+easyblock = 'Binary'
+
+name = 'mosdepth'
+version = '0.3.9'
+local_hts_nim_ver = '0.3.25'
+
+homepage = 'https://github.com/brentp/mosdepth'
+description = "Fast BAM/CRAM depth calculation for WGS, exome, or targeted sequencing"
+
+toolchain = {'name': 'GCC', 'version': '12.3.0'}
+
+sources = [
+ {
+ 'source_urls': ['https://github.com/brentp/hts-nim/archive/'],
+ 'download_filename': 'v%s.tar.gz' % local_hts_nim_ver,
+ 'filename': 'hts-nim-%s.tar.gz' % local_hts_nim_ver,
+ },
+ {
+ 'source_urls': ['https://github.com/brentp/mosdepth/archive/'],
+ 'download_filename': 'v%(version)s.tar.gz',
+ 'filename': SOURCE_TAR_GZ,
+ },
+]
+checksums = [
+ {'hts-nim-0.3.25.tar.gz': 'b13b9bb5aa567a69bf17547aadbbd39e37beb4f71a28f267b83dfea9ea4d05e8'},
+ {'mosdepth-0.3.9.tar.gz': '9171ea9a6ddaccd0091db5b85fa9e6cb79516bbe005c47ffc8dcfe49c978eb69'},
+]
+
+dependencies = [
+ ('Nim', '2.2.0'),
+ ('HTSlib', '1.18'),
+ ('PCRE', '8.45'),
+]
+
+extract_sources = True
+
+install_cmd = "cd %(builddir)s/hts-nim-*/ && nimble install --nimbleDir:%(installdir)s --verbose -y && "
+install_cmd += "cd ../mosdepth-*/ && "
+install_cmd += "nimble install --nimbleDir:%(installdir)s --verbose -y"
+
+sanity_check_paths = {
+ 'files': ['bin/mosdepth'],
+ 'dirs': [],
+}
+
+sanity_check_commands = ["mosdepth --help"]
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/n/Nim/Nim-2.2.0-GCCcore-12.3.0.eb b/easybuild/easyconfigs/n/Nim/Nim-2.2.0-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..2214b1c9493
--- /dev/null
+++ b/easybuild/easyconfigs/n/Nim/Nim-2.2.0-GCCcore-12.3.0.eb
@@ -0,0 +1,17 @@
+name = 'Nim'
+version = '2.2.0'
+
+homepage = 'https://nim-lang.org/'
+description = "Nim is a systems and applications programming language."
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = ['https://nim-lang.org/download/']
+sources = [SOURCELOWER_TAR_XZ]
+checksums = ['ce9842849c9760e487ecdd1cdadf7c0f2844cafae605401c7c72ae257644893c']
+
+builddependencies = [('binutils', '2.40')]
+
+dependencies = [('libreadline', '8.2')]
+
+moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/n/ncdu/ncdu-1.20-GCC-13.3.0.eb b/easybuild/easyconfigs/n/ncdu/ncdu-1.20-GCC-13.3.0.eb
new file mode 100644
index 00000000000..e8f91407acf
--- /dev/null
+++ b/easybuild/easyconfigs/n/ncdu/ncdu-1.20-GCC-13.3.0.eb
@@ -0,0 +1,27 @@
+easyblock = 'ConfigureMake'
+
+name = 'ncdu'
+version = '1.20'
+
+homepage = 'https://dev.yorhel.nl/ncdu'
+description = """Ncdu is a disk usage analyzer with an ncurses interface. It is designed to find space hogs on a
+ remote server where you don't have an entire graphical setup available, but it is a useful tool even on regular
+ desktop systems. Ncdu aims to be fast, simple and easy to use, and should be able to run in any minimal POSIX-like
+ environment with ncurses installed."""
+
+toolchain = {'name': 'GCC', 'version': '13.3.0'}
+
+source_urls = ['https://dev.yorhel.nl/download/']
+sources = [SOURCE_TAR_GZ]
+checksums = ['5fe2bb841abe72374bb242dbb93293c4ae053078432d896a7481b2ff10be9572']
+
+dependencies = [
+ ('ncurses', '6.5'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/%(name)s'],
+ 'dirs': [],
+}
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/n/networkx/networkx-3.4.2-gfbf-2024a.eb b/easybuild/easyconfigs/n/networkx/networkx-3.4.2-gfbf-2024a.eb
new file mode 100644
index 00000000000..9adfd4d5246
--- /dev/null
+++ b/easybuild/easyconfigs/n/networkx/networkx-3.4.2-gfbf-2024a.eb
@@ -0,0 +1,24 @@
+easyblock = 'PythonPackage'
+
+name = 'networkx'
+version = '3.4.2'
+
+homepage = 'https://pypi.python.org/pypi/networkx'
+description = """NetworkX is a Python package for the creation, manipulation,
+and study of the structure, dynamics, and functions of complex networks."""
+
+toolchain = {'name': 'gfbf', 'version': '2024a'}
+
+sources = [SOURCE_TAR_GZ]
+checksums = ['307c3669428c5362aab27c8a1260aa8f47c4e91d3891f48be0141738d8d053e1']
+
+dependencies = [
+ ('Python', '3.12.3'),
+ ('SciPy-bundle', '2024.05'), # required for numpy, scipy, ...
+]
+
+use_pip = True
+download_dep_fail = True
+sanity_pip_check = True
+
+moduleclass = 'tools'
diff --git a/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.27-GCC-13.2.0-seq-iface64.eb b/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.27-GCC-13.2.0-seq-iface64.eb
new file mode 100644
index 00000000000..f205e063da9
--- /dev/null
+++ b/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.27-GCC-13.2.0-seq-iface64.eb
@@ -0,0 +1,60 @@
+name = 'OpenBLAS'
+version = '0.3.27'
+versionsuffix = '-seq-iface64'
+
+homepage = 'https://www.openblas.net/'
+description = "OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version."
+
+toolchain = {'name': 'GCC', 'version': '13.2.0'}
+
+source_urls = [
+ # order matters, trying to download the large.tgz/timing.tgz LAPACK tarballs from GitHub causes trouble
+ 'https://www.netlib.org/lapack/timing/',
+ 'https://github.com/xianyi/OpenBLAS/archive/',
+]
+sources = ['v%(version)s.tar.gz']
+patches = [
+ ('large.tgz', '.'),
+ ('timing.tgz', '.'),
+ 'OpenBLAS-0.3.15_workaround-gcc-miscompilation.patch',
+ 'OpenBLAS-0.3.21_fix-order-vectorization.patch',
+ 'OpenBLAS-0.3.26_lapack_qr_noninittest.patch',
+ 'OpenBLAS-0.3.27_fix_zscal.patch',
+ 'OpenBLAS-0.3.27_riscv-drop-static-fortran-flag.patch',
+]
+checksums = [
+ {'v0.3.27.tar.gz': 'aa2d68b1564fe2b13bc292672608e9cdeeeb6dc34995512e65c3b10f4599e897'},
+ {'large.tgz': 'f328d88b7fa97722f271d7d0cfea1c220e0f8e5ed5ff01d8ef1eb51d6f4243a1'},
+ {'timing.tgz': '999c65f8ea8bd4eac7f1c7f3463d4946917afd20a997807300fe35d70122f3af'},
+ {'OpenBLAS-0.3.15_workaround-gcc-miscompilation.patch':
+ 'e6b326fb8c4a8a6fd07741d9983c37a72c55c9ff9a4f74a80e1352ce5f975971'},
+ {'OpenBLAS-0.3.21_fix-order-vectorization.patch':
+ '08af834e5d60441fd35c128758ed9c092ba6887c829e0471ecd489079539047d'},
+ {'OpenBLAS-0.3.26_lapack_qr_noninittest.patch': '4781bf1d7b239374fd8069e15b4e2c0ef0e8efaa1a7d4c33557bd5b27e5de77c'},
+ {'OpenBLAS-0.3.27_fix_zscal.patch': '9210d7b66538dabaddbe1bfceb16f8225708856f60876ca5561b19d3599f9fd1'},
+ {'OpenBLAS-0.3.27_riscv-drop-static-fortran-flag.patch':
+ 'f374e41efffd592ab1c9034df9e7abf1045ed151f4fc0fd0da618ce9826f2d4b'},
+]
+
+builddependencies = [
+ ('make', '4.4.1'),
+ # required by LAPACK test suite
+ ('Python', '3.11.5'),
+]
+
+# INTERFACE64=1 needs if you link OpenBLAS for fortran code compied with 64 bit integers (-i8)
+# This would be in intel library naming convention ilp64
+# The USE_OPENMP=0 and USE_THREAD=0 needs for the single threaded version
+# The USE_LOCKING=1 needs for thread safe version (if threaded software calls OpenBLAS, without it
+# OpenBLAS is not thread safe (so only single threaded software would be able to use it)
+buildopts = "INTERFACE64=1 USE_OPENMP=0 USE_THREAD=0 USE_LOCKING=1 "
+testopts = buildopts
+installopts = buildopts
+
+run_lapack_tests = True
+max_failing_lapack_tests_num_errors = 150
+
+# extensive testing can be enabled by uncommenting the line below
+# runtest = 'PATH=.:$PATH lapack-timing'
+
+moduleclass = 'numlib'
diff --git a/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.27-GCC-13.3.0-seq-iface64.eb b/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.27-GCC-13.3.0-seq-iface64.eb
new file mode 100644
index 00000000000..5527c667f66
--- /dev/null
+++ b/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.27-GCC-13.3.0-seq-iface64.eb
@@ -0,0 +1,60 @@
+name = 'OpenBLAS'
+version = '0.3.27'
+versionsuffix = '-seq-iface64'
+
+homepage = 'https://www.openblas.net/'
+description = "OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version."
+
+toolchain = {'name': 'GCC', 'version': '13.3.0'}
+
+source_urls = [
+ # order matters, trying to download the large.tgz/timing.tgz LAPACK tarballs from GitHub causes trouble
+ 'https://www.netlib.org/lapack/timing/',
+ 'https://github.com/xianyi/OpenBLAS/archive/',
+]
+sources = ['v%(version)s.tar.gz']
+patches = [
+ ('large.tgz', '.'),
+ ('timing.tgz', '.'),
+ 'OpenBLAS-0.3.15_workaround-gcc-miscompilation.patch',
+ 'OpenBLAS-0.3.21_fix-order-vectorization.patch',
+ 'OpenBLAS-0.3.26_lapack_qr_noninittest.patch',
+ 'OpenBLAS-0.3.27_fix_zscal.patch',
+ 'OpenBLAS-0.3.27_riscv-drop-static-fortran-flag.patch',
+]
+checksums = [
+ {'v0.3.27.tar.gz': 'aa2d68b1564fe2b13bc292672608e9cdeeeb6dc34995512e65c3b10f4599e897'},
+ {'large.tgz': 'f328d88b7fa97722f271d7d0cfea1c220e0f8e5ed5ff01d8ef1eb51d6f4243a1'},
+ {'timing.tgz': '999c65f8ea8bd4eac7f1c7f3463d4946917afd20a997807300fe35d70122f3af'},
+ {'OpenBLAS-0.3.15_workaround-gcc-miscompilation.patch':
+ 'e6b326fb8c4a8a6fd07741d9983c37a72c55c9ff9a4f74a80e1352ce5f975971'},
+ {'OpenBLAS-0.3.21_fix-order-vectorization.patch':
+ '08af834e5d60441fd35c128758ed9c092ba6887c829e0471ecd489079539047d'},
+ {'OpenBLAS-0.3.26_lapack_qr_noninittest.patch': '4781bf1d7b239374fd8069e15b4e2c0ef0e8efaa1a7d4c33557bd5b27e5de77c'},
+ {'OpenBLAS-0.3.27_fix_zscal.patch': '9210d7b66538dabaddbe1bfceb16f8225708856f60876ca5561b19d3599f9fd1'},
+ {'OpenBLAS-0.3.27_riscv-drop-static-fortran-flag.patch':
+ 'f374e41efffd592ab1c9034df9e7abf1045ed151f4fc0fd0da618ce9826f2d4b'},
+]
+
+builddependencies = [
+ ('make', '4.4.1'),
+ # required by LAPACK test suite
+ ('Python', '3.12.3'),
+]
+
+# INTERFACE64=1 needs if you link OpenBLAS for fortran code compied with 64 bit integers (-i8)
+# This would be in intel library naming convention ilp64
+# The USE_OPENMP=0 and USE_THREAD=0 needs for the single threaded version
+# The USE_LOCKING=1 needs for thread safe version (if threaded software calls OpenBLAS, without it
+# OpenBLAS is not thread safe (so only single threaded software would be able to use it)
+buildopts = "INTERFACE64=1 USE_OPENMP=0 USE_THREAD=0 USE_LOCKING=1 "
+testopts = buildopts
+installopts = buildopts
+
+run_lapack_tests = True
+max_failing_lapack_tests_num_errors = 150
+
+# extensive testing can be enabled by uncommenting the line below
+# runtest = 'PATH=.:$PATH lapack-timing'
+
+moduleclass = 'numlib'
diff --git a/easybuild/easyconfigs/p/Porechop/Porechop-0.2.4-20240119-GCCcore-12.3.0.eb b/easybuild/easyconfigs/p/Porechop/Porechop-0.2.4-20240119-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..e1dfa5d567c
--- /dev/null
+++ b/easybuild/easyconfigs/p/Porechop/Porechop-0.2.4-20240119-GCCcore-12.3.0.eb
@@ -0,0 +1,28 @@
+easyblock = 'PythonPackage'
+
+name = 'Porechop'
+version = '0.2.4-20240119'
+local_commit = 'd2e77c6'
+
+homepage = 'https://github.com/dehui333/Porechop'
+description = """Porechop is a tool for finding and removing adapters from Oxford Nanopore reads.
+ Adapters on the ends of reads are trimmed off, and when a read has an adapter in its middle,
+ it is treated as chimeric and chopped into separate reads. Porechop performs thorough alignments
+ to effectively find adapters, even at low sequence identity."""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+source_urls = ['https://github.com/dehui333/Porechop/archive/']
+sources = [{'download_filename': '%s.tar.gz' % local_commit, 'filename': SOURCE_TAR_GZ}]
+checksums = ['6e5ff3a780fc2855b0101b4a6102437d9a0fc201e40ffabc44c0c67d7c9ad621']
+
+builddependencies = [('binutils', '2.40')]
+dependencies = [('Python', '3.11.3')]
+
+sanity_pip_check = True
+use_pip = True
+download_dep_fail = True
+
+sanity_check_commands = ['%(namelower)s -h']
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/p/PyCUDA/PyCUDA-2024.1-gfbf-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/p/PyCUDA/PyCUDA-2024.1-gfbf-2023a-CUDA-12.1.1.eb
index 0058b158c9e..1706b5b8372 100644
--- a/easybuild/easyconfigs/p/PyCUDA/PyCUDA-2024.1-gfbf-2023a-CUDA-12.1.1.eb
+++ b/easybuild/easyconfigs/p/PyCUDA/PyCUDA-2024.1-gfbf-2023a-CUDA-12.1.1.eb
@@ -14,6 +14,7 @@ dependencies = [
('Python', '3.11.3'),
('SciPy-bundle', '2023.07'),
('Mako', '1.2.4'),
+ ('PyOpenGL', '3.1.7'),
]
use_pip = True
@@ -23,12 +24,15 @@ exts_list = [
'checksums': ['80637873d206f6bcedf7cdb46ad93e868acb4ea2256db052dfcca872bdd0321f'],
}),
(name, version, {
- 'preinstallopts': './configure.py --cuda-root="$EBROOTCUDA" && ',
+ 'preinstallopts': './configure.py --cuda-root="$EBROOTCUDA" --cuda-enable-gl && ',
'source_tmpl': '%(namelower)s-%(version)s.tar.gz',
'checksums': ['d50d23ff6371482cff7d4b953ef40ab81c9df038ecb614484f9fd5347327327e'],
}),
]
sanity_pip_check = True
+sanity_check_commands = [
+ 'python -c "import pycuda.gl"'
+]
moduleclass = 'lang'
diff --git a/easybuild/easyconfigs/r/ReFrame/ReFrame-4.6.3-GCCcore-13.3.0.eb b/easybuild/easyconfigs/r/ReFrame/ReFrame-4.6.3-GCCcore-13.3.0.eb
new file mode 100644
index 00000000000..6541b14b799
--- /dev/null
+++ b/easybuild/easyconfigs/r/ReFrame/ReFrame-4.6.3-GCCcore-13.3.0.eb
@@ -0,0 +1,76 @@
+easyblock = 'PythonBundle'
+
+name = 'ReFrame'
+version = '4.6.3'
+
+homepage = 'https://github.com/reframe-hpc/reframe'
+description = '''ReFrame is a framework for writing regression tests for HPC systems.'''
+
+toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
+
+builddependencies = [
+ ('binutils', '2.42'),
+ ('cURL', '8.7.1'), # Used by ReFrame to download pip in the bootstrap
+]
+
+# Note that for ReFrame's CPU autodetect to work
+# the system also needs to provide (new enough versions of) these dependencies
+dependencies = [
+ ('Python', '3.12.3'),
+ ('libxslt', '1.1.42'), # Required by lxml, which is installed by ReFrame's bootstrap installer
+ ('libxml2', '2.12.7'), # Required by lxml, which is installed by ReFrame's bootstrap installer
+]
+
+use_pip = True
+
+exts_list = [
+ # ReFrame's bootstrap script is intended to run with zero dependencies. It downloads all python deps for ReFrame
+ # into a %(installdir)/external directory. ReFrame's main executable (reframe) adds this dir to python's sys.path
+ # so that ReFrame (and only ReFrame) will find & use all of these dependencies.
+ # In EasyBuild, we should adhere to this installation method because a) it is how ReFrame is meant to be used and
+ # b) it isolates all of ReFrame dependencies from any other python code you run. Thus, there is no chance that
+ # a test will pick up on any python deps from ReFrame itself.
+ # For this to work, we need to disable download_dep_fail and sanity_pip_check, as both are _expected_ to fail
+ # for this setup.
+ ('reframe', version, {
+ # Deps are downloaded to %(installdir)/external, which won't polute the PYTHONPATH, so is ok
+ 'download_dep_fail': False,
+ # ReFrame uses its custom sys.path to find necessary packages, they are not on PYTYHONPATH
+ # Thus, the regular pip sanity check is expected to fail, even if ReFrame would run just fine
+ 'sanity_pip_check': False,
+ # Set modulename to False, as to skip the sanity_check-step from extension.py (python -c "import reframe")
+ # This step would fail, since the regular python interpreter wouldn't find the additional packages in
+ # %(installdir)/external. That's fine, as ReFrame should never be imported directly, only through the
+ # reframe command.
+ 'modulename': False,
+ 'preinstallopts': "export PATH=%(installdir)s/bin:$PATH && "
+ "./bootstrap.sh +docs +pygelf && cp -r external %(installdir)s && ",
+ 'source_tmpl': 'v%(version)s.tar.gz',
+ 'source_urls': ['https://github.com/reframe-hpc/reframe/archive/'],
+ 'checksums': ['0f335e588d21a26d76beb011bc86baf80ba633d875512ecd564d0aeb320fcf2c'],
+ }),
+]
+
+postinstallcmds = [
+ "cp -a tools examples %(installdir)s",
+ "mkdir -p %(installdir)s/share && cp -a share/completions %(installdir)s/share/completions",
+ r"sed -i 's@/\(python[0-9.]*\)$@/\1 -S@g' %(installdir)s/bin/reframe",
+]
+
+sanity_check_paths = {
+ 'files': ['bin/reframe',
+ 'share/completions/reframe.bash',
+ 'share/completions/reframe.fish',
+ 'share/completions/reframe.tcsh'],
+ 'dirs': ['external', 'lib', 'tools', 'examples']
+}
+
+sanity_check_commands = ['reframe -V']
+
+# Since this is at the GCCcore toolchain level, make sure ReFrame is configured to purge modules before running
+# any tests by default
+modextravars = {
+ 'RFM_PURGE_ENVIRONMENT': '1',
+}
+
+moduleclass = 'devel'
diff --git a/easybuild/easyconfigs/s/SAMtools/SAMtools-1.21-GCC-13.3.0.eb b/easybuild/easyconfigs/s/SAMtools/SAMtools-1.21-GCC-13.3.0.eb
new file mode 100644
index 00000000000..775ce37b311
--- /dev/null
+++ b/easybuild/easyconfigs/s/SAMtools/SAMtools-1.21-GCC-13.3.0.eb
@@ -0,0 +1,38 @@
+# This is a contribution from DeepThought HPC Service, Flinders University, Adelaide, Australia
+# Homepage: https://staff.flinders.edu.au/research/deep-thought
+#
+# Authors:: Robert Qiao
+# License:: MIT
+#
+# Notes::
+#
+# Updated to 1.14 and gcc-11.2.0
+# J. Sassmannshausen / GSTT
+# Updated to 1.21 jpecar / EMBL
+
+name = 'SAMtools'
+version = '1.21'
+
+homepage = 'https://www.htslib.org/'
+description = """SAM Tools provide various utilities for manipulating alignments in the SAM format,
+ including sorting, merging, indexing and generating alignments in a per-position format."""
+
+toolchain = {'name': 'GCC', 'version': '13.3.0'}
+toolchainopts = {'pic': True}
+
+source_urls = ['https://github.com/%(namelower)s/%(namelower)s/releases/download/%(version)s']
+sources = [SOURCELOWER_TAR_BZ2]
+checksums = ['05724b083a6b6f0305fcae5243a056cc36cf826309c3cb9347a6b89ee3fc5ada']
+
+# The htslib component of SAMtools >= 1.4 uses zlib, bzip2 and lzma compression.
+# The latter is currently provided by XZ.
+dependencies = [
+ ('ncurses', '6.5'),
+ ('zlib', '1.3.1'),
+ ('bzip2', '1.0.8'),
+ ('XZ', '5.4.5'),
+ ('cURL', '8.7.1'),
+]
+
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/s/SciANN/SciANN-0.7.0.1-foss-2022a.eb b/easybuild/easyconfigs/s/SciANN/SciANN-0.7.0.1-foss-2022a.eb
new file mode 100644
index 00000000000..9b14f9ce1be
--- /dev/null
+++ b/easybuild/easyconfigs/s/SciANN/SciANN-0.7.0.1-foss-2022a.eb
@@ -0,0 +1,37 @@
+easyblock = 'PythonBundle'
+
+name = 'SciANN'
+version = '0.7.0.1'
+
+homepage = 'https://github.com/ehsanhaghighat/sciann'
+description = """
+A Keras/Tensorflow wrapper for scientific computations and physics-informed deep learning
+using artificial neural networks.
+"""
+
+toolchain = {'name': 'foss', 'version': '2022a'}
+
+dependencies = [
+ ('Python', '3.10.4'),
+ ('SciPy-bundle', '2022.05'),
+ ('PyYAML', '6.0'),
+ ('h5py', '3.7.0'),
+ ('scikit-learn', '1.1.2'),
+ ('TensorFlow', '2.11.0'),
+ ('pymatgen', '2023.3.10'), # for pybtex and latexcodec
+ ('matplotlib', '3.5.2'),
+ ('pygraphviz', '1.10'),
+ ('pydot', '1.4.2'),
+]
+
+use_pip = True
+sanity_pip_check = True
+
+exts_list = [
+ (name, version, {
+ 'modulename': 'sciann',
+ 'checksums': ['7d7acf61346b4201628c5656e2c904e9a9c7cda78086e76d075b5c7bb90adf3c'],
+ }),
+]
+
+moduleclass = 'ai'
diff --git a/easybuild/easyconfigs/s/SciPy-bundle/SciPy-bundle-2024.05-gfbf-2024a.eb b/easybuild/easyconfigs/s/SciPy-bundle/SciPy-bundle-2024.05-gfbf-2024a.eb
index 2abab977add..5584d888f30 100644
--- a/easybuild/easyconfigs/s/SciPy-bundle/SciPy-bundle-2024.05-gfbf-2024a.eb
+++ b/easybuild/easyconfigs/s/SciPy-bundle/SciPy-bundle-2024.05-gfbf-2024a.eb
@@ -64,12 +64,15 @@ exts_list = [
'patches': [
'scipy-1.11.1_disable-tests.patch',
'scipy-1.11.1_xfail-aarch64_test_maxiter_worsening.patch',
+ 'scipy-1.13.1_TestLinprogIPSparse.patch',
],
'checksums': [
{'scipy-1.13.1.tar.gz': '095a87a0312b08dfd6a6155cbbd310a8c51800fc931b8c0b84003014b874ed3c'},
{'scipy-1.11.1_disable-tests.patch': '906bfb03397d94882ccdc1b93bc2c8e854e0e060c2d107c83042992394e6a4af'},
{'scipy-1.11.1_xfail-aarch64_test_maxiter_worsening.patch':
'918c8e6fa8215d459126f267764c961bde729ea4a116c7f6287cddfdc58ffcea'},
+ {'scipy-1.13.1_TestLinprogIPSparse.patch':
+ '7213c2690b76c69f7e7103529cea3fa2098c05fbea556f04325fab9ca8c065f5'},
],
}),
('numexpr', '2.10.0', {
diff --git a/easybuild/easyconfigs/s/SciPy-bundle/scipy-1.13.1_TestLinprogIPSparse.patch b/easybuild/easyconfigs/s/SciPy-bundle/scipy-1.13.1_TestLinprogIPSparse.patch
new file mode 100644
index 00000000000..1b057319086
--- /dev/null
+++ b/easybuild/easyconfigs/s/SciPy-bundle/scipy-1.13.1_TestLinprogIPSparse.patch
@@ -0,0 +1,30 @@
+disable problematic tests
+TestLinprogIPSparse::test_bug_6139 + TestLinprogIPSparsePresolve::test_bug_6139 fail on Grace Hopper aarch64
+author: Sebastian Achilles (Juelich Supercomputing Centre)
+
+diff --git a/scipy/optimize/tests/test_linprog.py b/scipy/optimize/tests/test_linprog.py
+index 49a0f8de5..8ffbb0b47 100644
+--- a/scipy/optimize/tests/test_linprog.py
++++ b/scipy/optimize/tests/test_linprog.py
+@@ -1977,6 +1977,10 @@ if has_umfpack:
+ class TestLinprogIPSparse(LinprogIPTests):
+ options = {"sparse": True, "cholesky": False, "sym_pos": False}
+
++ @pytest.mark.skipif(
++ platform.machine() == 'aarch64',
++ reason="Fails on aarch64"
++ )
+ @pytest.mark.xfail_on_32bit("This test is sensitive to machine epsilon level "
+ "perturbations in linear system solution in "
+ "_linprog_ip._sym_solve.")
+@@ -2027,6 +2031,10 @@ class TestLinprogIPSparse(LinprogIPTests):
+ class TestLinprogIPSparsePresolve(LinprogIPTests):
+ options = {"sparse": True, "_sparse_presolve": True}
+
++ @pytest.mark.skipif(
++ platform.machine() == 'aarch64',
++ reason="Fails on aarch64"
++ )
+ @pytest.mark.xfail_on_32bit("This test is sensitive to machine epsilon level "
+ "perturbations in linear system solution in "
+ "_linprog_ip._sym_solve.")
diff --git a/easybuild/easyconfigs/s/Stacks/Stacks-2.68-foss-2023a.eb b/easybuild/easyconfigs/s/Stacks/Stacks-2.68-foss-2023a.eb
new file mode 100644
index 00000000000..f5c8c3b976d
--- /dev/null
+++ b/easybuild/easyconfigs/s/Stacks/Stacks-2.68-foss-2023a.eb
@@ -0,0 +1,29 @@
+easyblock = 'ConfigureMake'
+
+name = 'Stacks'
+version = '2.68'
+
+homepage = 'https://catchenlab.life.illinois.edu/stacks/'
+description = """Stacks is a software pipeline for building loci from short-read sequences, such as those generated on
+ the Illumina platform. Stacks was developed to work with restriction enzyme-based data, such as RAD-seq,
+ for the purpose of building genetic maps and conducting population genomics and phylogeography.
+"""
+
+toolchain = {'name': 'foss', 'version': '2023a'}
+
+source_urls = ['https://catchenlab.life.illinois.edu/stacks/source/']
+sources = [SOURCELOWER_TAR_GZ]
+checksums = ['9dc51ea356d60eb4557b0b2d1a8854aafae492aed87f974e0249cc09aa5e7650']
+
+dependencies = [
+ ('zlib', '1.2.13'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/clone_filter', 'bin/cstacks', 'bin/gstacks', 'bin/kmer_filter', 'bin/phasedstacks',
+ 'bin/populations', 'bin/process_radtags', 'bin/process_shortreads', 'bin/sstacks',
+ 'bin/tsv2bam', 'bin/ustacks'],
+ 'dirs': [],
+}
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/s/skani/skani-0.2.2-GCCcore-12.3.0.eb b/easybuild/easyconfigs/s/skani/skani-0.2.2-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..889947f5c2c
--- /dev/null
+++ b/easybuild/easyconfigs/s/skani/skani-0.2.2-GCCcore-12.3.0.eb
@@ -0,0 +1,481 @@
+easyblock = 'Cargo'
+
+name = 'skani'
+version = '0.2.2'
+
+homepage = 'https://github.com/bluenote-1577/skani'
+description = "skani - accurate, fast nucleotide identity calculation for MAGs, genomes, and databases"
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+
+github_account = 'bluenote-1577'
+source_urls = [GITHUB_SOURCE]
+sources = ['v%(version)s.tar.gz']
+checksums = [
+ {'v0.2.2.tar.gz': 'e047d52b9f753625eff480fe90f1abb68f82cc6892d9d1910b18bfcedbfc0b9d'},
+ {'adler-1.0.2.tar.gz': 'f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe'},
+ {'aho-corasick-1.1.2.tar.gz': 'b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0'},
+ {'anyhow-1.0.75.tar.gz': 'a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6'},
+ {'approx-0.5.1.tar.gz': 'cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6'},
+ {'assert_cmd-1.0.8.tar.gz': 'c98233c6673d8601ab23e77eb38f999c51100d46c5703b17288c57fddf3a1ffe'},
+ {'atty-0.2.14.tar.gz': 'd9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8'},
+ {'autocfg-0.1.8.tar.gz': '0dde43e75fd43e8a1bf86103336bc699aa8d17ad1be60c76c0bdfd4828e19b78'},
+ {'autocfg-1.1.0.tar.gz': 'd468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa'},
+ {'bincode-1.3.3.tar.gz': 'b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad'},
+ {'bio-1.4.0.tar.gz': 'ea643e25059ce02b94e8f6eb4e902d160baa6d0beb91834ed971dd5a880c02ba'},
+ {'bio-types-1.0.1.tar.gz': '9d45749b87f21808051025e9bf714d14ff4627f9d8ca967eade6946ea769aa4a'},
+ {'bit-set-0.5.3.tar.gz': '0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1'},
+ {'bit-vec-0.5.1.tar.gz': 'f59bbe95d4e52a6398ec21238d31577f2b28a9d86807f06ca59d191d8440d0bb'},
+ {'bit-vec-0.6.3.tar.gz': '349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb'},
+ {'bitflags-1.3.2.tar.gz': 'bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a'},
+ {'bitflags-2.4.0.tar.gz': 'b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635'},
+ {'bstr-0.2.17.tar.gz': 'ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223'},
+ {'buffer-redux-1.0.0.tar.gz': 'd2886ea01509598caac116942abd33ab5a88fa32acdf7e4abfa0fc489ca520c9'},
+ {'bv-0.11.1.tar.gz': '8834bb1d8ee5dc048ee3124f2c7c1afcc6bc9aed03f11e9dfd8c69470a5db340'},
+ {'bytecount-0.6.4.tar.gz': 'ad152d03a2c813c80bb94fedbf3a3f02b28f793e39e7c214c8a0bcc196343de7'},
+ {'bytemuck-1.14.0.tar.gz': '374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6'},
+ {'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.83.tar.gz': 'f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0'},
+ {'cfg-if-0.1.10.tar.gz': '4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822'},
+ {'cfg-if-1.0.0.tar.gz': 'baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd'},
+ {'clap-3.2.25.tar.gz': '4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123'},
+ {'clap_lex-0.2.4.tar.gz': '2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5'},
+ {'cloudabi-0.0.3.tar.gz': 'ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f'},
+ {'crc32fast-1.3.2.tar.gz': 'b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d'},
+ {'crossbeam-deque-0.8.3.tar.gz': 'ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef'},
+ {'crossbeam-epoch-0.9.15.tar.gz': 'ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7'},
+ {'crossbeam-utils-0.8.16.tar.gz': '5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294'},
+ {'csv-1.3.0.tar.gz': 'ac574ff4d437a7b5ad237ef331c17ccca63c46479e5b5453eb8e10bb99a759fe'},
+ {'csv-core-0.1.11.tar.gz': '5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70'},
+ {'custom_derive-0.1.7.tar.gz': 'ef8ae57c4978a2acd8b869ce6b9ca1dfe817bff704c220209fdef2c0b75a01b9'},
+ {'dashmap-5.5.3.tar.gz': '978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856'},
+ {'derive-new-0.5.9.tar.gz': '3418329ca0ad70234b9735dc4ceed10af4df60eff9c8e7b06cb5e520d92c3535'},
+ {'difference-2.0.0.tar.gz': '524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198'},
+ {'difflib-0.4.0.tar.gz': '6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8'},
+ {'doc-comment-0.3.3.tar.gz': 'fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10'},
+ {'editdistancek-1.0.2.tar.gz': '3e02df23d5b1c6f9e69fa603b890378123b93073df998a21e6e33b9db0a32613'},
+ {'either-1.9.0.tar.gz': 'a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07'},
+ {'enum-map-1.1.1.tar.gz': 'e893a7ba6116821058dec84a6fb14fb2a97cd8ce5fd0f85d5a4e760ecd7329d9'},
+ {'enum-map-derive-0.6.0.tar.gz': '84278eae0af6e34ff6c1db44c11634a694aafac559ff3080e4db4e4ac35907aa'},
+ {'equivalent-1.0.1.tar.gz': '5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5'},
+ {'errno-0.3.5.tar.gz': 'ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860'},
+ {'fastrand-1.9.0.tar.gz': 'e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be'},
+ {'fastrand-2.0.1.tar.gz': '25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5'},
+ {'feature-probe-0.1.1.tar.gz': '835a3dc7d1ec9e75e2b5fb4ba75396837112d2060b03f7d43bc1897c7f7211da'},
+ {'fixedbitset-0.4.2.tar.gz': '0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80'},
+ {'flate2-1.0.27.tar.gz': 'c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010'},
+ {'float-cmp-0.8.0.tar.gz': 'e1267f4ac4f343772758f7b1bdcbe767c218bbab93bb432acbf5162bbf85a6c4'},
+ {'fnv-1.0.7.tar.gz': '3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1'},
+ {'fuchsia-cprng-0.1.1.tar.gz': 'a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba'},
+ {'futures-0.3.28.tar.gz': '23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40'},
+ {'futures-channel-0.3.28.tar.gz': '955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2'},
+ {'futures-core-0.3.28.tar.gz': '4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c'},
+ {'futures-executor-0.3.28.tar.gz': 'ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0'},
+ {'futures-io-0.3.28.tar.gz': '4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964'},
+ {'futures-sink-0.3.28.tar.gz': 'f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e'},
+ {'futures-task-0.3.28.tar.gz': '76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65'},
+ {'futures-util-0.3.28.tar.gz': '26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533'},
+ {'fxhash-0.2.1.tar.gz': 'c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c'},
+ {'gbdt-0.1.1.tar.gz': '74248386ea349f903cee13fae53f41bdae987f74eb798c6cbcb08370c99ccd34'},
+ {'gcollections-1.5.0.tar.gz': '2f551fdf23ef80329f754919669147a71c67b6cfe3569cd93b6fabdd62044377'},
+ {'getrandom-0.2.10.tar.gz': 'be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427'},
+ {'getset-0.1.2.tar.gz': 'e45727250e75cc04ff2846a66397da8ef2b3db8e40e0cef4df67950a07621eb9'},
+ {'hashbrown-0.12.3.tar.gz': '8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888'},
+ {'hashbrown-0.14.1.tar.gz': '7dfda62a12f55daeae5015f81b0baea145391cb4520f86c248fc615d72640d12'},
+ {'heck-0.4.1.tar.gz': '95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8'},
+ {'hermit-abi-0.1.19.tar.gz': '62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33'},
+ {'indexed-0.1.1.tar.gz': 'd480125acf340d6a6e59dab69ae19d6fca3a906e1eade277671272cc8f73794b'},
+ {'indexmap-1.9.3.tar.gz': 'bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99'},
+ {'indexmap-2.0.2.tar.gz': '8adf3ddd720272c6ea8bf59463c04e0f93d0bbf7c5439b691bca2987e0270897'},
+ {'instant-0.1.12.tar.gz': '7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c'},
+ {'intervallum-1.4.0.tar.gz': 'c8ccecd834666f695ecec3ff0d5fc32e32c91abea91a28fd0aceb4b35a82cee1'},
+ {'itertools-0.10.5.tar.gz': 'b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473'},
+ {'itertools-0.11.0.tar.gz': 'b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57'},
+ {'itertools-num-0.1.3.tar.gz': 'a872a22f9e6f7521ca557660adb96dd830e54f0f490fa115bb55dd69d38b27e7'},
+ {'itoa-1.0.9.tar.gz': 'af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38'},
+ {'lazy_static-1.4.0.tar.gz': 'e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646'},
+ {'libc-0.2.149.tar.gz': 'a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b'},
+ {'libm-0.2.8.tar.gz': '4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058'},
+ {'linux-raw-sys-0.4.10.tar.gz': 'da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f'},
+ {'lock_api-0.4.10.tar.gz': 'c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16'},
+ {'log-0.4.20.tar.gz': 'b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f'},
+ {'lzma-sys-0.1.20.tar.gz': '5fda04ab3764e6cde78b9974eec4f779acaba7c4e84b36eca3cf77c581b85d27'},
+ {'matrixmultiply-0.3.8.tar.gz': '7574c1cf36da4798ab73da5b215bbf444f50718207754cb522201d78d1cd0ff2'},
+ {'memchr-2.6.4.tar.gz': 'f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167'},
+ {'memoffset-0.9.0.tar.gz': '5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c'},
+ {'miniz_oxide-0.7.1.tar.gz': 'e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7'},
+ {'multimap-0.8.3.tar.gz': 'e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a'},
+ {'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'},
+ {'normalize-line-endings-0.3.0.tar.gz': '61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be'},
+ {'num-complex-0.4.4.tar.gz': '1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214'},
+ {'num-integer-0.1.45.tar.gz': '225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9'},
+ {'num-rational-0.4.1.tar.gz': '0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0'},
+ {'num-traits-0.2.17.tar.gz': '39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c'},
+ {'once_cell-1.18.0.tar.gz': 'dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d'},
+ {'ordered-float-3.9.1.tar.gz': '2a54938017eacd63036332b4ae5c8a49fc8c0c1d6d629893057e4f13609edd06'},
+ {'os_str_bytes-6.5.1.tar.gz': '4d5d9eb14b174ee9aa2ef96dc2b94637a2d4b6e7cb873c7e171f0c20c6cf3eac'},
+ {'parking_lot-0.12.1.tar.gz': '3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f'},
+ {'parking_lot_core-0.9.8.tar.gz': '93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447'},
+ {'partitions-0.2.4.tar.gz': '9249745fe5a60e2ebd69cc649af1baf28fa3f4606b24146490124405401510d8'},
+ {'paste-1.0.14.tar.gz': 'de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c'},
+ {'petgraph-0.6.4.tar.gz': 'e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9'},
+ {'pin-project-lite-0.2.13.tar.gz': '8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58'},
+ {'pin-utils-0.1.0.tar.gz': '8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184'},
+ {'pkg-config-0.3.27.tar.gz': '26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964'},
+ {'ppv-lite86-0.2.17.tar.gz': '5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de'},
+ {'predicates-1.0.8.tar.gz': 'f49cfaf7fdaa3bfacc6fa3e7054e65148878354a5cfddcf661df4c851f8021df'},
+ {'predicates-2.1.5.tar.gz': '59230a63c37f3e18569bdb90e4a89cbf5bf8b06fea0b84e65ea10cc4df47addd'},
+ {'predicates-core-1.0.6.tar.gz': 'b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174'},
+ {'predicates-tree-1.0.9.tar.gz': '368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf'},
+ {'proc-macro-error-1.0.4.tar.gz': 'da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c'},
+ {'proc-macro-error-attr-1.0.4.tar.gz': 'a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869'},
+ {'proc-macro2-0.2.3.tar.gz': 'cd07deb3c6d1d9ff827999c7f9b04cdfd66b1b17ae508e14fe47b620f2282ae0'},
+ {'proc-macro2-1.0.69.tar.gz': '134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da'},
+ {'proptest-0.8.7.tar.gz': '926d0604475349f463fe44130aae73f2294b5309ab2ca0310b998bd334ef191f'},
+ {'quick-error-1.2.3.tar.gz': 'a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0'},
+ {'quote-0.4.2.tar.gz': '1eca14c727ad12702eb4b6bfb5a232287dcf8385cb8ca83a3eeaf6519c44c408'},
+ {'quote-1.0.33.tar.gz': '5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae'},
+ {'rand-0.5.6.tar.gz': 'c618c47cd3ebd209790115ab837de41425723956ad3ce2e6a7f09890947cacb9'},
+ {'rand-0.6.5.tar.gz': '6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca'},
+ {'rand-0.8.5.tar.gz': '34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404'},
+ {'rand_chacha-0.1.1.tar.gz': '556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef'},
+ {'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'},
+ {'rand_distr-0.4.3.tar.gz': '32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31'},
+ {'rand_hc-0.1.0.tar.gz': '7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4'},
+ {'rand_isaac-0.1.1.tar.gz': 'ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08'},
+ {'rand_jitter-0.1.4.tar.gz': '1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b'},
+ {'rand_os-0.1.3.tar.gz': '7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071'},
+ {'rand_pcg-0.1.2.tar.gz': 'abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44'},
+ {'rand_xorshift-0.1.1.tar.gz': 'cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c'},
+ {'rawpointer-0.2.1.tar.gz': '60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3'},
+ {'rayon-1.8.0.tar.gz': '9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1'},
+ {'rayon-core-1.12.0.tar.gz': '5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed'},
+ {'rdrand-0.4.0.tar.gz': '678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2'},
+ {'redox_syscall-0.1.57.tar.gz': '41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce'},
+ {'redox_syscall-0.3.5.tar.gz': '567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29'},
+ {'reflection-0.1.3.tar.gz': 'f477a471bda4d66e69c64a07ded91ac097ca12614b767b53da3dbd439483c514'},
+ {'reflection_derive-0.1.1.tar.gz': 'b420cc74a3c074892142c8a11dbc97273c00983e0ea63119eec45cf188be7729'},
+ {'regex-1.10.0.tar.gz': 'd119d7c7ca818f8a53c300863d4f87566aac09943aef5b355bb83969dae75d87'},
+ {'regex-automata-0.1.10.tar.gz': '6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132'},
+ {'regex-automata-0.4.1.tar.gz': '465c6fc0621e4abc4187a2bda0937bfd4f722c2730b29562e19689ea796c9a4b'},
+ {'regex-syntax-0.6.29.tar.gz': 'f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1'},
+ {'regex-syntax-0.8.0.tar.gz': 'c3cbb081b9784b07cceb8824c8583f86db4814d172ab043f3c23f7dc600bf83d'},
+ {'rust-lapper-1.1.0.tar.gz': 'ee43d8e721ac803031dbab6a944b957b49a3b11eadbc099880c8aaaebf23ed27'},
+ {'rustc_version-0.1.7.tar.gz': 'c5f5376ea5e30ce23c03eb77cbe4962b988deead10910c372b226388b594c084'},
+ {'rustix-0.38.18.tar.gz': '5a74ee2d7c2581cd139b42447d7d9389b889bdaad3a73f1ebb16f2a3237bb19c'},
+ {'rustversion-1.0.14.tar.gz': '7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4'},
+ {'rusty-fork-0.2.2.tar.gz': '3dd93264e10c577503e926bd1430193eeb5d21b059148910082245309b424fae'},
+ {'ryu-1.0.15.tar.gz': '1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741'},
+ {'safe_arch-0.7.1.tar.gz': 'f398075ce1e6a179b46f51bd88d0598b92b00d3551f1a2d4ac49e771b56ac354'},
+ {'safemem-0.3.3.tar.gz': 'ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072'},
+ {'scopeguard-1.2.0.tar.gz': '94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49'},
+ {'semver-0.1.20.tar.gz': 'd4f410fedcf71af0345d7607d246e7ad15faaadd49d240ee3b24e5dc21a820ac'},
+ {'serde-1.0.188.tar.gz': 'cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e'},
+ {'serde_derive-1.0.188.tar.gz': '4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2'},
+ {'serde_derive_internals-0.21.0.tar.gz': '370aa477297975243dc914d0b0e1234927520ec311de507a560fbd1c80f7ab8c'},
+ {'serde_json-1.0.107.tar.gz': '6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65'},
+ {'serial_test-0.10.0.tar.gz': '1c789ec87f4687d022a2405cf46e0cd6284889f1839de292cadeb6c6019506f2'},
+ {'serial_test_derive-0.10.0.tar.gz': 'b64f9e531ce97c88b4778aad0ceee079216071cffec6ac9b904277f8f92e7fe3'},
+ {'simba-0.6.0.tar.gz': 'f0b7840f121a46d63066ee7a99fc81dcabbc6105e437cae43528cea199b5a05f'},
+ {'simple-logging-2.0.2.tar.gz': 'b00d48e85675326bb182a2286ea7c1a0b264333ae10f27a937a72be08628b542'},
+ {'slab-0.4.9.tar.gz': '8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67'},
+ {'smallvec-1.11.1.tar.gz': '942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a'},
+ {'statrs-0.16.0.tar.gz': '2d08e5e1748192713cc281da8b16924fb46be7b0c2431854eadc785823e5696e'},
+ {'strsim-0.10.0.tar.gz': '73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623'},
+ {'strum-0.25.0.tar.gz': '290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125'},
+ {'strum_macros-0.25.2.tar.gz': 'ad8d03b598d3d0fff69bf533ee3ef19b8eeb342729596df84bcc7e1f96ec4059'},
+ {'syn-0.12.15.tar.gz': 'c97c05b8ebc34ddd6b967994d5c6e9852fa92f8b82b3858c39451f97346dcce5'},
+ {'syn-1.0.109.tar.gz': '72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237'},
+ {'syn-2.0.38.tar.gz': 'e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b'},
+ {'tempfile-3.8.0.tar.gz': 'cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef'},
+ {'termcolor-1.3.0.tar.gz': '6093bad37da69aab9d123a8091e4be0aa4a03e4d601ec641c327398315f62b64'},
+ {'termtree-0.4.1.tar.gz': '3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76'},
+ {'textwrap-0.16.0.tar.gz': '222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d'},
+ {'thiserror-1.0.49.tar.gz': '1177e8c6d7ede7afde3585fd2513e611227efd6481bd78d2e82ba1ce16557ed4'},
+ {'thiserror-impl-1.0.49.tar.gz': '10712f02019e9288794769fba95cd6847df9874d49d871d062172f9dd41bc4cc'},
+ {'thread-id-3.3.0.tar.gz': 'c7fbf4c9d56b320106cd64fd024dadfa0be7cb4706725fc44a7d7ce952d820c1'},
+ {'tikv-jemalloc-sys-0.5.4+5.3.0-patched.tar.gz':
+ '9402443cb8fd499b6f327e40565234ff34dbda27460c5b47db0db77443dd85d1'},
+ {'tikv-jemallocator-0.5.4.tar.gz': '965fe0c26be5c56c94e38ba547249074803efd52adfb66de62107d95aab3eaca'},
+ {'trees-0.2.1.tar.gz': 'afa1821e85be4f56cc5bd08bdbc32c0e26d105c90bed9c637992f6c7f747c180'},
+ {'trilean-1.1.0.tar.gz': '683ba5022fe6dbd7133cad150478ccf51bdb6d861515181e5fc6b4323d4fa424'},
+ {'triple_accel-0.4.0.tar.gz': '22048bc95dfb2ffd05b1ff9a756290a009224b60b2f0e7525faeee7603851e63'},
+ {'tsv-0.1.1.tar.gz': '418001090d0ccdf2284690ff051c0c10d18ddd320ea9dd8ff6d205cb8436a0aa'},
+ {'typenum-1.17.0.tar.gz': '42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825'},
+ {'unicode-ident-1.0.12.tar.gz': '3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b'},
+ {'unicode-xid-0.1.0.tar.gz': 'fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc'},
+ {'vec_map-0.8.2.tar.gz': 'f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191'},
+ {'version_check-0.9.4.tar.gz': '49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f'},
+ {'wait-timeout-0.2.0.tar.gz': '9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6'},
+ {'wasi-0.11.0+wasi-snapshot-preview1.tar.gz': '9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423'},
+ {'wide-0.7.12.tar.gz': 'ebecebefc38ff1860b4bc47550bbfa63af5746061cf0d29fcd7fa63171602598'},
+ {'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-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'},
+ {'xz2-0.1.7.tar.gz': '388c44dc09d76f1536602ead6d325eb532f5c122f17782bd57fb47baeeb767e2'},
+]
+
+builddependencies = [
+ ('binutils', '2.40'),
+ ('Rust', '1.75.0'),
+]
+
+dependencies = [
+ ('bzip2', '1.0.8'),
+ ('XZ', '5.4.2'),
+]
+
+# Since we do the download of partitions, remove the download part from skani
+prebuildopts = """sed -i -e 's/^partitions = {/#&/' -e 's/^#partitions = ".*/partitions = "0.2.4"/' Cargo.toml && """
+
+crates = [
+ ('adler', '1.0.2'),
+ ('aho-corasick', '1.1.2'),
+ ('anyhow', '1.0.75'),
+ ('approx', '0.5.1'),
+ ('assert_cmd', '1.0.8'),
+ ('atty', '0.2.14'),
+ ('autocfg', '0.1.8'),
+ ('autocfg', '1.1.0'),
+ ('bincode', '1.3.3'),
+ ('bio', '1.4.0'),
+ ('bio-types', '1.0.1'),
+ ('bit-set', '0.5.3'),
+ ('bit-vec', '0.5.1'),
+ ('bit-vec', '0.6.3'),
+ ('bitflags', '1.3.2'),
+ ('bitflags', '2.4.0'),
+ ('bstr', '0.2.17'),
+ ('buffer-redux', '1.0.0'),
+ ('bv', '0.11.1'),
+ ('bytecount', '0.6.4'),
+ ('bytemuck', '1.14.0'),
+ ('byteorder', '1.5.0'),
+ ('bzip2', '0.4.4'),
+ ('bzip2-sys', '0.1.11+1.0.8'),
+ ('cc', '1.0.83'),
+ ('cfg-if', '0.1.10'),
+ ('cfg-if', '1.0.0'),
+ ('clap', '3.2.25'),
+ ('clap_lex', '0.2.4'),
+ ('cloudabi', '0.0.3'),
+ ('crc32fast', '1.3.2'),
+ ('crossbeam-deque', '0.8.3'),
+ ('crossbeam-epoch', '0.9.15'),
+ ('crossbeam-utils', '0.8.16'),
+ ('csv', '1.3.0'),
+ ('csv-core', '0.1.11'),
+ ('custom_derive', '0.1.7'),
+ ('dashmap', '5.5.3'),
+ ('derive-new', '0.5.9'),
+ ('difference', '2.0.0'),
+ ('difflib', '0.4.0'),
+ ('doc-comment', '0.3.3'),
+ ('editdistancek', '1.0.2'),
+ ('either', '1.9.0'),
+ ('enum-map', '1.1.1'),
+ ('enum-map-derive', '0.6.0'),
+ ('equivalent', '1.0.1'),
+ ('errno', '0.3.5'),
+ ('fastrand', '1.9.0'),
+ ('fastrand', '2.0.1'),
+ ('feature-probe', '0.1.1'),
+ ('fixedbitset', '0.4.2'),
+ ('flate2', '1.0.27'),
+ ('float-cmp', '0.8.0'),
+ ('fnv', '1.0.7'),
+ ('fuchsia-cprng', '0.1.1'),
+ ('futures', '0.3.28'),
+ ('futures-channel', '0.3.28'),
+ ('futures-core', '0.3.28'),
+ ('futures-executor', '0.3.28'),
+ ('futures-io', '0.3.28'),
+ ('futures-sink', '0.3.28'),
+ ('futures-task', '0.3.28'),
+ ('futures-util', '0.3.28'),
+ ('fxhash', '0.2.1'),
+ ('gbdt', '0.1.1'),
+ ('gcollections', '1.5.0'),
+ ('getrandom', '0.2.10'),
+ ('getset', '0.1.2'),
+ ('hashbrown', '0.12.3'),
+ ('hashbrown', '0.14.1'),
+ ('heck', '0.4.1'),
+ ('hermit-abi', '0.1.19'),
+ ('indexed', '0.1.1'),
+ ('indexmap', '1.9.3'),
+ ('indexmap', '2.0.2'),
+ ('instant', '0.1.12'),
+ ('intervallum', '1.4.0'),
+ ('itertools', '0.10.5'),
+ ('itertools', '0.11.0'),
+ ('itertools-num', '0.1.3'),
+ ('itoa', '1.0.9'),
+ ('lazy_static', '1.4.0'),
+ ('libc', '0.2.149'),
+ ('libm', '0.2.8'),
+ ('linux-raw-sys', '0.4.10'),
+ ('lock_api', '0.4.10'),
+ ('log', '0.4.20'),
+ ('lzma-sys', '0.1.20'),
+ ('matrixmultiply', '0.3.8'),
+ ('memchr', '2.6.4'),
+ ('memoffset', '0.9.0'),
+ ('miniz_oxide', '0.7.1'),
+ ('multimap', '0.8.3'),
+ ('nalgebra', '0.29.0'),
+ ('nalgebra-macros', '0.1.0'),
+ ('ndarray', '0.15.6'),
+ ('needletail', '0.5.1'),
+ ('newtype_derive', '0.1.6'),
+ ('normalize-line-endings', '0.3.0'),
+ ('num-complex', '0.4.4'),
+ ('num-integer', '0.1.45'),
+ ('num-rational', '0.4.1'),
+ ('num-traits', '0.2.17'),
+ ('once_cell', '1.18.0'),
+ ('ordered-float', '3.9.1'),
+ ('os_str_bytes', '6.5.1'),
+ ('parking_lot', '0.12.1'),
+ ('parking_lot_core', '0.9.8'),
+ ('partitions', '0.2.4'),
+ ('paste', '1.0.14'),
+ ('petgraph', '0.6.4'),
+ ('pin-project-lite', '0.2.13'),
+ ('pin-utils', '0.1.0'),
+ ('pkg-config', '0.3.27'),
+ ('ppv-lite86', '0.2.17'),
+ ('predicates', '1.0.8'),
+ ('predicates', '2.1.5'),
+ ('predicates-core', '1.0.6'),
+ ('predicates-tree', '1.0.9'),
+ ('proc-macro-error', '1.0.4'),
+ ('proc-macro-error-attr', '1.0.4'),
+ ('proc-macro2', '0.2.3'),
+ ('proc-macro2', '1.0.69'),
+ ('proptest', '0.8.7'),
+ ('quick-error', '1.2.3'),
+ ('quote', '0.4.2'),
+ ('quote', '1.0.33'),
+ ('rand', '0.5.6'),
+ ('rand', '0.6.5'),
+ ('rand', '0.8.5'),
+ ('rand_chacha', '0.1.1'),
+ ('rand_chacha', '0.3.1'),
+ ('rand_core', '0.3.1'),
+ ('rand_core', '0.4.2'),
+ ('rand_core', '0.6.4'),
+ ('rand_distr', '0.4.3'),
+ ('rand_hc', '0.1.0'),
+ ('rand_isaac', '0.1.1'),
+ ('rand_jitter', '0.1.4'),
+ ('rand_os', '0.1.3'),
+ ('rand_pcg', '0.1.2'),
+ ('rand_xorshift', '0.1.1'),
+ ('rawpointer', '0.2.1'),
+ ('rayon', '1.8.0'),
+ ('rayon-core', '1.12.0'),
+ ('rdrand', '0.4.0'),
+ ('redox_syscall', '0.1.57'),
+ ('redox_syscall', '0.3.5'),
+ ('reflection', '0.1.3'),
+ ('reflection_derive', '0.1.1'),
+ ('regex', '1.10.0'),
+ ('regex-automata', '0.1.10'),
+ ('regex-automata', '0.4.1'),
+ ('regex-syntax', '0.6.29'),
+ ('regex-syntax', '0.8.0'),
+ ('rust-lapper', '1.1.0'),
+ ('rustc_version', '0.1.7'),
+ ('rustix', '0.38.18'),
+ ('rustversion', '1.0.14'),
+ ('rusty-fork', '0.2.2'),
+ ('ryu', '1.0.15'),
+ ('safe_arch', '0.7.1'),
+ ('safemem', '0.3.3'),
+ ('scopeguard', '1.2.0'),
+ ('semver', '0.1.20'),
+ ('serde', '1.0.188'),
+ ('serde_derive', '1.0.188'),
+ ('serde_derive_internals', '0.21.0'),
+ ('serde_json', '1.0.107'),
+ ('serial_test', '0.10.0'),
+ ('serial_test_derive', '0.10.0'),
+ ('simba', '0.6.0'),
+ ('simple-logging', '2.0.2'),
+ ('slab', '0.4.9'),
+ ('smallvec', '1.11.1'),
+ ('statrs', '0.16.0'),
+ ('strsim', '0.10.0'),
+ ('strum', '0.25.0'),
+ ('strum_macros', '0.25.2'),
+ ('syn', '0.12.15'),
+ ('syn', '1.0.109'),
+ ('syn', '2.0.38'),
+ ('tempfile', '3.8.0'),
+ ('termcolor', '1.3.0'),
+ ('termtree', '0.4.1'),
+ ('textwrap', '0.16.0'),
+ ('thiserror', '1.0.49'),
+ ('thiserror-impl', '1.0.49'),
+ ('thread-id', '3.3.0'),
+ ('tikv-jemalloc-sys', '0.5.4+5.3.0-patched'),
+ ('tikv-jemallocator', '0.5.4'),
+ ('trees', '0.2.1'),
+ ('trilean', '1.1.0'),
+ ('triple_accel', '0.4.0'),
+ ('tsv', '0.1.1'),
+ ('typenum', '1.17.0'),
+ ('unicode-ident', '1.0.12'),
+ ('unicode-xid', '0.1.0'),
+ ('vec_map', '0.8.2'),
+ ('version_check', '0.9.4'),
+ ('wait-timeout', '0.2.0'),
+ ('wasi', '0.11.0+wasi-snapshot-preview1'),
+ ('wide', '0.7.12'),
+ ('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-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'),
+ ('xz2', '0.1.7'),
+]
+
+sanity_check_paths = {
+ 'files': ['bin/skani'],
+ 'dirs': [],
+}
+
+sanity_check_commands = [
+ 'skani --help',
+]
+
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/t/tbl2asn/tbl2asn-20230713-GCCcore-12.3.0.eb b/easybuild/easyconfigs/t/tbl2asn/tbl2asn-20230713-GCCcore-12.3.0.eb
new file mode 100644
index 00000000000..dcf4c39e8d0
--- /dev/null
+++ b/easybuild/easyconfigs/t/tbl2asn/tbl2asn-20230713-GCCcore-12.3.0.eb
@@ -0,0 +1,64 @@
+# 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
+# revised by Ariel Lozano
+
+easyblock = 'Bundle'
+
+name = 'tbl2asn'
+version = '20230713'
+
+homepage = 'https://www.ncbi.nlm.nih.gov/genbank/tbl2asn2/'
+description = """Tbl2asn is a command-line program that automates the creation of
+ sequence records for submission to GenBank"""
+
+toolchain = {'name': 'GCCcore', 'version': '12.3.0'}
+builddependencies = [
+ ('binutils', '2.40'),
+ ('patchelf', '0.18.0'),
+]
+
+# 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);
+
+default_easyblock = 'CmdCp'
+
+# It is not entirely clean how long NCBI keeps "older" versions. At April 29, 2022, we had six timestamps/versions,
+# reporiting the same verion (tbl2asn --help -> 25.8) but 5 out of 6 (gunzipped) executables have different sha256
+# checksums.
+
+components = [
+ ('libidn', '1.34', {
+ 'easyblock': 'ConfigureMake',
+ 'source_urls': [GNU_SOURCE],
+ 'sources': [SOURCELOWER_TAR_GZ],
+ 'start_dir': '%(namelower)s-%(version)s',
+ 'checksums': ['3719e2975f2fb28605df3479c380af2cf4ab4e919e1506527e4c7670afff6e3c'],
+ }),
+ (name, version, {
+ 'source_urls': ['https://ftp.ncbi.nih.gov/toolbox/ncbi_tools/converters/versions/%s/all/' %
+ (version[:4] + '-' + version[4:6] + '-' + version[6:])],
+ 'sources': [{'download_filename': 'tbl2asn.linux64.gz',
+ 'filename': '%(name)s-%(version)s%(versionsuffix)s.gz'}],
+ 'checksums': ['544c4a2a53f2121fd21c44778fc61980a701ce852ea0142979241c0465c38a0c'],
+ 'cmds_map': [('.*', "cp %(name)s-%(version)s%(versionsuffix)s tbl2asn")],
+ 'files_to_copy': [(['tbl2asn'], 'bin')],
+ }),
+]
+
+postinstallcmds = [
+ "if %(rpath_enabled)s; then "
+ " patchelf --force-rpath --set-rpath %(installdir)s/lib %(installdir)s/bin/tbl2asn;"
+ "fi",
+ "chmod +x %(installdir)s/bin/tbl2asn",
+]
+
+sanity_check_paths = {
+ 'files': ['bin/tbl2asn', 'bin/idn', 'lib/libidn.%s' % SHLIB_EXT],
+ 'dirs': ['include'],
+}
+
+sanity_check_commands = ['tbl2asn --help']
+
+moduleclass = 'bio'
diff --git a/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-foss-2023a.eb b/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-foss-2023a.eb
index 9807690b35c..57105d3bdb6 100644
--- a/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-foss-2023a.eb
+++ b/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-foss-2023a.eb
@@ -12,10 +12,12 @@ toolchainopts = {'usempi': True}
github_account = 'wannier-developers'
source_urls = [GITHUB_LOWER_SOURCE]
sources = [{'download_filename': 'v%(version)s.tar.gz', 'filename': SOURCELOWER_TAR_GZ}]
-patches = ['Wannier90_3x_ignore_makeinc.patch']
+patches = ['Wannier90_3x_ignore_makeinc.patch',
+ 'Wannier90_3.1.0_fix_mpi_include.patch']
checksums = [
'40651a9832eb93dec20a8360dd535262c261c34e13c41b6755fa6915c936b254', # wannier90-3.1.0.tar.gz
'561c0d296e0e30b8bb303702cd6e41ded54c153d9b9e6cd9cab73858e5e2945e', # Wannier90_3x_ignore_makeinc.patch
+ 'dd7217d8bf12ac4161fd0b6504f7c085ebcc69b23ab2ac4abcf9251f34b8bc30', # Wannier90_3.1.0_fix_mpi_include.patch
]
# The -fallow-argument-mismatch allows MPI communication calls to be
@@ -25,10 +27,11 @@ buildopts = 'all F90=$F90 MPIF90=$MPIF90 FCOPTS="$FFLAGS -fallow-argument-mismat
buildopts += 'LIBDIR="$LAPACK_LIB_DIR" LIBS="$LIBLAPACK" '
buildopts += 'COMMS=mpi'
-files_to_copy = [(['wannier90.x', 'postw90.x'], 'bin'), (['libwannier.a'], 'lib')]
+local_executables = ['wannier90.x', 'postw90.x', 'w90chk2chk.x', 'w90spn2spn.x']
+files_to_copy = [(local_executables, 'bin'), (['libwannier.a'], 'lib')]
sanity_check_paths = {
- 'files': ['bin/wannier90.x', 'bin/postw90.x', 'lib/libwannier.a'],
+ 'files': ['bin/%s' % x for x in local_executables] + ['lib/libwannier.a'],
'dirs': []
}
diff --git a/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-foss-2024a.eb b/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-foss-2024a.eb
index 3228ba164b9..26e4b587a1f 100644
--- a/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-foss-2024a.eb
+++ b/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-foss-2024a.eb
@@ -12,10 +12,12 @@ toolchainopts = {'usempi': True}
github_account = 'wannier-developers'
source_urls = [GITHUB_LOWER_SOURCE]
sources = [{'download_filename': 'v%(version)s.tar.gz', 'filename': SOURCELOWER_TAR_GZ}]
-patches = ['Wannier90_3x_ignore_makeinc.patch']
+patches = ['Wannier90_3x_ignore_makeinc.patch',
+ 'Wannier90_3.1.0_fix_mpi_include.patch']
checksums = [
'40651a9832eb93dec20a8360dd535262c261c34e13c41b6755fa6915c936b254', # wannier90-3.1.0.tar.gz
'561c0d296e0e30b8bb303702cd6e41ded54c153d9b9e6cd9cab73858e5e2945e', # Wannier90_3x_ignore_makeinc.patch
+ 'dd7217d8bf12ac4161fd0b6504f7c085ebcc69b23ab2ac4abcf9251f34b8bc30', # Wannier90_3.1.0_fix_mpi_include.patch
]
buildopts = 'all F90=$F90 MPIF90=$MPIF90 FCOPTS="$FFLAGS -fallow-argument-mismatch" LDOPTS="$FFLAGS" '
diff --git a/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-gomkl-2023a.eb b/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-gomkl-2023a.eb
index 336ac8a3895..a3e59ef46a9 100644
--- a/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-gomkl-2023a.eb
+++ b/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-gomkl-2023a.eb
@@ -12,10 +12,12 @@ toolchainopts = {'usempi': True}
github_account = 'wannier-developers'
source_urls = [GITHUB_LOWER_SOURCE]
sources = [{'download_filename': 'v%(version)s.tar.gz', 'filename': SOURCELOWER_TAR_GZ}]
-patches = ['Wannier90_3x_ignore_makeinc.patch']
+patches = ['Wannier90_3x_ignore_makeinc.patch',
+ 'Wannier90_3.1.0_fix_mpi_include.patch']
checksums = [
'40651a9832eb93dec20a8360dd535262c261c34e13c41b6755fa6915c936b254', # wannier90-3.1.0.tar.gz
'561c0d296e0e30b8bb303702cd6e41ded54c153d9b9e6cd9cab73858e5e2945e', # Wannier90_3x_ignore_makeinc.patch
+ 'dd7217d8bf12ac4161fd0b6504f7c085ebcc69b23ab2ac4abcf9251f34b8bc30', # Wannier90_3.1.0_fix_mpi_include.patch
]
# The -fallow-argument-mismatch allows MPI communication calls to be
@@ -25,10 +27,11 @@ buildopts = 'all F90=$F90 MPIF90=$MPIF90 FCOPTS="$FFLAGS -fallow-argument-mismat
buildopts += 'LIBDIR="$LAPACK_LIB_DIR" LIBS="$LIBLAPACK" '
buildopts += 'COMMS=mpi'
-files_to_copy = [(['wannier90.x', 'postw90.x'], 'bin'), (['libwannier.a'], 'lib')]
+local_executables = ['wannier90.x', 'postw90.x', 'w90chk2chk.x', 'w90spn2spn.x']
+files_to_copy = [(local_executables, 'bin'), (['libwannier.a'], 'lib')]
sanity_check_paths = {
- 'files': ['bin/wannier90.x', 'bin/postw90.x', 'lib/libwannier.a'],
+ 'files': ['bin/%s' % x for x in local_executables] + ['lib/libwannier.a'],
'dirs': []
}
diff --git a/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-intel-2023a.eb b/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-intel-2023a.eb
index cf258368771..eb71d75290d 100644
--- a/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-intel-2023a.eb
+++ b/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-intel-2023a.eb
@@ -12,20 +12,23 @@ toolchainopts = {'usempi': True}
github_account = 'wannier-developers'
source_urls = [GITHUB_LOWER_SOURCE]
sources = [{'download_filename': 'v%(version)s.tar.gz', 'filename': SOURCELOWER_TAR_GZ}]
-patches = ['Wannier90_3x_ignore_makeinc.patch']
+patches = ['Wannier90_3x_ignore_makeinc.patch',
+ 'Wannier90_3.1.0_fix_mpi_include.patch']
checksums = [
'40651a9832eb93dec20a8360dd535262c261c34e13c41b6755fa6915c936b254', # wannier90-3.1.0.tar.gz
'561c0d296e0e30b8bb303702cd6e41ded54c153d9b9e6cd9cab73858e5e2945e', # Wannier90_3x_ignore_makeinc.patch
+ 'dd7217d8bf12ac4161fd0b6504f7c085ebcc69b23ab2ac4abcf9251f34b8bc30', # Wannier90_3.1.0_fix_mpi_include.patch
]
buildopts = 'all F90=$F90 MPIF90=$MPIF90 FCOPTS="$FFLAGS" LDOPTS="$FFLAGS" '
buildopts += 'LIBDIR="$LAPACK_LIB_DIR" LIBS="$LIBLAPACK" '
buildopts += 'COMMS=mpi'
-files_to_copy = [(['wannier90.x', 'postw90.x'], 'bin'), (['libwannier.a'], 'lib')]
+local_executables = ['wannier90.x', 'postw90.x', 'w90chk2chk.x', 'w90spn2spn.x']
+files_to_copy = [(local_executables, 'bin'), (['libwannier.a'], 'lib')]
sanity_check_paths = {
- 'files': ['bin/wannier90.x', 'bin/postw90.x', 'lib/libwannier.a'],
+ 'files': ['bin/%s' % x for x in local_executables] + ['lib/libwannier.a'],
'dirs': []
}
diff --git a/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-intel-2024a.eb b/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-intel-2024a.eb
index dd30db79af6..34d3457ccc4 100644
--- a/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-intel-2024a.eb
+++ b/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-intel-2024a.eb
@@ -12,20 +12,23 @@ toolchainopts = {'usempi': True}
github_account = 'wannier-developers'
source_urls = [GITHUB_LOWER_SOURCE]
sources = [{'download_filename': 'v%(version)s.tar.gz', 'filename': SOURCELOWER_TAR_GZ}]
-patches = ['Wannier90_3x_ignore_makeinc.patch']
+patches = ['Wannier90_3x_ignore_makeinc.patch',
+ 'Wannier90_3.1.0_fix_mpi_include.patch']
checksums = [
'40651a9832eb93dec20a8360dd535262c261c34e13c41b6755fa6915c936b254', # wannier90-3.1.0.tar.gz
'561c0d296e0e30b8bb303702cd6e41ded54c153d9b9e6cd9cab73858e5e2945e', # Wannier90_3x_ignore_makeinc.patch
+ 'dd7217d8bf12ac4161fd0b6504f7c085ebcc69b23ab2ac4abcf9251f34b8bc30', # Wannier90_3.1.0_fix_mpi_include.patch
]
buildopts = 'all F90=$F90 MPIF90=$MPIF90 FCOPTS="$FFLAGS" LDOPTS="$FFLAGS" '
buildopts += 'LIBDIR="$LAPACK_LIB_DIR" LIBS="$LIBLAPACK" '
buildopts += 'COMMS=mpi'
-files_to_copy = [(['wannier90.x', 'postw90.x'], 'bin'), (['libwannier.a'], 'lib')]
+local_executables = ['wannier90.x', 'postw90.x', 'w90chk2chk.x', 'w90spn2spn.x']
+files_to_copy = [(local_executables, 'bin'), (['libwannier.a'], 'lib')]
sanity_check_paths = {
- 'files': ['bin/wannier90.x', 'bin/postw90.x', 'lib/libwannier.a'],
+ 'files': ['bin/%s' % x for x in local_executables] + ['lib/libwannier.a'],
'dirs': []
}
diff --git a/easybuild/easyconfigs/w/Wannier90/Wannier90_3.1.0_fix_mpi_include.patch b/easybuild/easyconfigs/w/Wannier90/Wannier90_3.1.0_fix_mpi_include.patch
new file mode 100644
index 00000000000..fdc859c8a7f
--- /dev/null
+++ b/easybuild/easyconfigs/w/Wannier90/Wannier90_3.1.0_fix_mpi_include.patch
@@ -0,0 +1,27 @@
+Use "use mpi" to load all required interfaces.
+See https://github.com/wannier-developers/wannier90/issues/521
+Author: Stefan Wolfsheimer (SURF)
+
+
+diff -ruN wannier90-3.1.0.orig/src/comms.F90 wannier90-3.1.0/src/comms.F90
+--- wannier90-3.1.0.orig/src/comms.F90 2020-03-05 19:41:10.000000000 +0100
++++ wannier90-3.1.0/src/comms.F90 2024-10-21 17:01:00.542755184 +0200
+@@ -23,15 +23,13 @@
+
+ use w90_constants, only: dp
+ use w90_io, only: io_error
+-
++#ifdef MPI
++ use mpi
++#endif
+ implicit none
+
+ private
+
+-#ifdef MPI
+- include 'mpif.h'
+-#endif
+-
+ logical, public, save :: on_root
+ !! Are we the root node
+ integer, public, save :: num_nodes