Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
88 changes: 88 additions & 0 deletions easybuild/easyconfigs/g/GROMACS/GROMACS-2025.2-foss-2025.07.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
#
# Copyright:: Copyright 2012-2016 University of Luxembourg / LCSB, Cyprus Institute / CaSToRC,
# Ghent University / The Francis Crick Institute
# Authors::
# * Wiktor Jurkowski <[email protected]>
# * Fotis Georgatos <[email protected]>
# * George Tsouloupas <[email protected]>
# * Kenneth Hoste <[email protected]>
# * Adam Huffman <[email protected]>
# * Ake Sandgren <[email protected]>
# * J. Sassmannshausen <Crick HPC team>
# * Dugan Witherick <[email protected]>
# * Christoph Siegert <[email protected]>
# License:: MIT/GPL

name = 'GROMACS'
version = '2025.2'

homepage = 'https://www.gromacs.org'
description = """
GROMACS is a versatile package to perform molecular dynamics, i.e. simulate the
Newtonian equations of motion for systems with hundreds to millions of
particles.

This is a CPU only build, containing both MPI and threadMPI binaries
for both single and double precision.

It also contains the gmxapi extension for the single precision MPI build.
"""

toolchain = {'name': 'foss', 'version': '2025.07'}
toolchainopts = {'openmp': True, 'usempi': True}

source_urls = [
'https://ftp.gromacs.org/pub/gromacs/',
'ftp://ftp.gromacs.org/pub/gromacs/',
]
sources = [SOURCELOWER_TAR_GZ]
patches = [
'GROMACS-2023.1_set_omp_num_threads_env_for_ntomp_tests.patch',
'GROMACS-2023.1_fix_tests_for_gmx_thread_mpi.patch',
]
checksums = [
{'gromacs-2025.2.tar.gz': '0df09f9d45a99ef00e66b9baa9493a27e906813763a3b6c7672217c66b43ea11'},
{'GROMACS-2023.1_set_omp_num_threads_env_for_ntomp_tests.patch':
'7f41bda16c9c2837624265dda4be252f655d1288ddc4486b1a2422af30d5d199'},
{'GROMACS-2023.1_fix_tests_for_gmx_thread_mpi.patch':
'6df844bb3bbc51180446a3595c61a4ef195e5f975533a04cef76841aa763aec1'},
]

builddependencies = [
('CMake', '4.0.3'),
('scikit-build-core', '0.11.5'),
('pybind11', '3.0.0'),
]

dependencies = [
('Python', '3.13.5'),
('SciPy-bundle', '2025.07'),
('networkx', '3.5'),
('mpi4py', '4.1.0'),
]

# be a bit more forgiving w.r.t. timeouts for GROMACS test suite,
# see also https://gitlab.com/gromacs/gromacs/-/issues/5062
configopts = "-DGMX_TEST_TIMEOUT_FACTOR=3"

exts_defaultclass = 'PythonPackage'

exts_default_options = {
'source_urls': [PYPI_SOURCE],
}

exts_list = [
('gmxapi', '0.4.2', {
'patches': ['GROMACS-2025.2_gmxapi-remove-builddependencies.patch'],
'preinstallopts': 'export CMAKE_ARGS="-Dgmxapi_ROOT=%(installdir)s ' +
'-C %(installdir)s/share/cmake/gromacs_mpi/gromacs-hints_mpi.cmake" && ',
'checksums': [
{'gmxapi-0.4.2.tar.gz': 'c746c6498c73a75913d7fcb01c13cc001d4bcb82999e9bf91d63578565ed1a1f'},
{'GROMACS-2025.2_gmxapi-remove-builddependencies.patch':
'd35eedea75167a88cd1c74df4c201b666ec9f8aef00f0fc6136380e36eb1e0e5'},
],
}),
]

moduleclass = 'bio'
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
Remove hard-dependencies on packaging and pybind11,
which are only required for the build, not the actual installation

Author: Jan Reuter (JSC)

diff --color -Naur gmxapi-0.4.2.orig/setup.cfg gmxapi-0.4.2/setup.cfg
--- gmxapi-0.4.2.orig/setup.cfg 2023-06-01 19:44:02.000000000 +0200
+++ gmxapi-0.4.2/setup.cfg 2025-08-18 21:21:02.611944841 +0200
@@ -16,8 +16,6 @@
packages = find:
install_requires =
mpi4py
- packaging
- pybind11
networkx>=2.0
numpy>1.7

26 changes: 26 additions & 0 deletions easybuild/easyconfigs/m/mpi4py/mpi4py-4.1.0-gompi-2025.07.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
easyblock = 'PythonBundle'

name = 'mpi4py'
version = '4.1.0'

homepage = 'https://github.com/mpi4py/mpi4py'
description = """MPI for Python (mpi4py) provides bindings of the Message Passing Interface (MPI) standard for
the Python programming language, allowing any Python program to exploit multiple processors."""

toolchain = {'name': 'gompi', 'version': '2025.07'}

builddependencies = [
('Cython', '3.1.2'),
]

dependencies = [
('Python', '3.13.5'),
]

exts_list = [
(name, version, {
'checksums': ['817492796bce771ccd809a6051cf68d48689815493b567a696ce7679260449cd'],
}),
]

moduleclass = 'lib'
20 changes: 20 additions & 0 deletions easybuild/easyconfigs/n/networkx/networkx-3.5-gfbf-2025.07.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
easyblock = 'PythonPackage'

name = 'networkx'
version = '3.5'

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': '2025.07'}

sources = [SOURCE_TAR_GZ]
checksums = ['d4c6f9cf81f52d69230866796b82afbccdec3db7ae4fbd1b65ea750feed50037']

dependencies = [
('Python', '3.13.5'),
('SciPy-bundle', '2025.07'), # required for numpy, scipy, ...
]

moduleclass = 'tools'