From e25d17fd351a7236fa6dc8f9dfc4715e9e572ea1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Andr=C3=A9=20Reuter?= Date: Mon, 18 Aug 2025 17:27:44 +0200 Subject: [PATCH 1/3] adding easyconfigs: GROMACS-2025.2-foss-2025.07.eb, mpi4py-4.1.0-gompi-2025.07.eb, networkx-3.5-gfbf-2025.07.eb --- .../g/GROMACS/GROMACS-2025.2-foss-2025.07.eb | 82 +++++++++++++++++++ .../m/mpi4py/mpi4py-4.1.0-gompi-2025.07.eb | 26 ++++++ .../n/networkx/networkx-3.5-gfbf-2025.07.eb | 20 +++++ 3 files changed, 128 insertions(+) create mode 100644 easybuild/easyconfigs/g/GROMACS/GROMACS-2025.2-foss-2025.07.eb create mode 100644 easybuild/easyconfigs/m/mpi4py/mpi4py-4.1.0-gompi-2025.07.eb create mode 100644 easybuild/easyconfigs/n/networkx/networkx-3.5-gfbf-2025.07.eb diff --git a/easybuild/easyconfigs/g/GROMACS/GROMACS-2025.2-foss-2025.07.eb b/easybuild/easyconfigs/g/GROMACS/GROMACS-2025.2-foss-2025.07.eb new file mode 100644 index 00000000000..4668bcb3266 --- /dev/null +++ b/easybuild/easyconfigs/g/GROMACS/GROMACS-2025.2-foss-2025.07.eb @@ -0,0 +1,82 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# +# Copyright:: Copyright 2012-2016 University of Luxembourg / LCSB, Cyprus Institute / CaSToRC, +# Ghent University / The Francis Crick Institute +# Authors:: +# * Wiktor Jurkowski +# * Fotis Georgatos +# * George Tsouloupas +# * Kenneth Hoste +# * Adam Huffman +# * Ake Sandgren +# * J. Sassmannshausen +# * Dugan Witherick +# * Christoph Siegert +# License:: MIT/GPL + +name = 'GROMACS' +version = '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'), +] + +dependencies = [ + ('Python', '3.13.5'), + ('SciPy-bundle', '2025.07'), + ('networkx', '3.5'), + ('mpi4py', '4.1.0'), + ('pybind11', '3.0.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', { + 'preinstallopts': 'export CMAKE_ARGS="-Dgmxapi_ROOT=%(installdir)s -C %(installdir)s/share/cmake/gromacs_mpi/gromacs-hints_mpi.cmake" && ', + 'checksums': ['c746c6498c73a75913d7fcb01c13cc001d4bcb82999e9bf91d63578565ed1a1f'], + }), +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/m/mpi4py/mpi4py-4.1.0-gompi-2025.07.eb b/easybuild/easyconfigs/m/mpi4py/mpi4py-4.1.0-gompi-2025.07.eb new file mode 100644 index 00000000000..6000e50bac0 --- /dev/null +++ b/easybuild/easyconfigs/m/mpi4py/mpi4py-4.1.0-gompi-2025.07.eb @@ -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' diff --git a/easybuild/easyconfigs/n/networkx/networkx-3.5-gfbf-2025.07.eb b/easybuild/easyconfigs/n/networkx/networkx-3.5-gfbf-2025.07.eb new file mode 100644 index 00000000000..e1f8234ba48 --- /dev/null +++ b/easybuild/easyconfigs/n/networkx/networkx-3.5-gfbf-2025.07.eb @@ -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' From f437e311b0e6cb9728ead4a759364136df048800 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Andr=C3=A9=20Reuter?= Date: Mon, 18 Aug 2025 18:33:43 +0200 Subject: [PATCH 2/3] Fix style of GROMACS 2025.2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jan André Reuter --- easybuild/easyconfigs/g/GROMACS/GROMACS-2025.2-foss-2025.07.eb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/g/GROMACS/GROMACS-2025.2-foss-2025.07.eb b/easybuild/easyconfigs/g/GROMACS/GROMACS-2025.2-foss-2025.07.eb index 4668bcb3266..26673cf7300 100644 --- a/easybuild/easyconfigs/g/GROMACS/GROMACS-2025.2-foss-2025.07.eb +++ b/easybuild/easyconfigs/g/GROMACS/GROMACS-2025.2-foss-2025.07.eb @@ -74,7 +74,8 @@ exts_default_options = { exts_list = [ ('gmxapi', '0.4.2', { - 'preinstallopts': 'export CMAKE_ARGS="-Dgmxapi_ROOT=%(installdir)s -C %(installdir)s/share/cmake/gromacs_mpi/gromacs-hints_mpi.cmake" && ', + 'preinstallopts': 'export CMAKE_ARGS="-Dgmxapi_ROOT=%(installdir)s ' + + '-C %(installdir)s/share/cmake/gromacs_mpi/gromacs-hints_mpi.cmake" && ', 'checksums': ['c746c6498c73a75913d7fcb01c13cc001d4bcb82999e9bf91d63578565ed1a1f'], }), ] From 49157ba85c4feac53fc02124cdb6da9a99525ea2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Andr=C3=A9=20Reuter?= Date: Mon, 18 Aug 2025 23:34:36 +0200 Subject: [PATCH 3/3] Drop pybind11 dependency to builddependency MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jan André Reuter --- .../g/GROMACS/GROMACS-2025.2-foss-2025.07.eb | 9 +++++++-- ...2025.2_gmxapi-remove-builddependencies.patch | 17 +++++++++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 easybuild/easyconfigs/g/GROMACS/GROMACS-2025.2_gmxapi-remove-builddependencies.patch diff --git a/easybuild/easyconfigs/g/GROMACS/GROMACS-2025.2-foss-2025.07.eb b/easybuild/easyconfigs/g/GROMACS/GROMACS-2025.2-foss-2025.07.eb index 26673cf7300..ade8eb6a46e 100644 --- a/easybuild/easyconfigs/g/GROMACS/GROMACS-2025.2-foss-2025.07.eb +++ b/easybuild/easyconfigs/g/GROMACS/GROMACS-2025.2-foss-2025.07.eb @@ -52,6 +52,7 @@ checksums = [ builddependencies = [ ('CMake', '4.0.3'), ('scikit-build-core', '0.11.5'), + ('pybind11', '3.0.0'), ] dependencies = [ @@ -59,7 +60,6 @@ dependencies = [ ('SciPy-bundle', '2025.07'), ('networkx', '3.5'), ('mpi4py', '4.1.0'), - ('pybind11', '3.0.0'), ] # be a bit more forgiving w.r.t. timeouts for GROMACS test suite, @@ -74,9 +74,14 @@ exts_default_options = { 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': ['c746c6498c73a75913d7fcb01c13cc001d4bcb82999e9bf91d63578565ed1a1f'], + 'checksums': [ + {'gmxapi-0.4.2.tar.gz': 'c746c6498c73a75913d7fcb01c13cc001d4bcb82999e9bf91d63578565ed1a1f'}, + {'GROMACS-2025.2_gmxapi-remove-builddependencies.patch': + 'd35eedea75167a88cd1c74df4c201b666ec9f8aef00f0fc6136380e36eb1e0e5'}, + ], }), ] diff --git a/easybuild/easyconfigs/g/GROMACS/GROMACS-2025.2_gmxapi-remove-builddependencies.patch b/easybuild/easyconfigs/g/GROMACS/GROMACS-2025.2_gmxapi-remove-builddependencies.patch new file mode 100644 index 00000000000..0e146204af3 --- /dev/null +++ b/easybuild/easyconfigs/g/GROMACS/GROMACS-2025.2_gmxapi-remove-builddependencies.patch @@ -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 +