From 252b1c608b3af678604ceae6bb0362e7baef209d Mon Sep 17 00:00:00 2001 From: casparl Date: Thu, 19 Jun 2025 16:27:57 +0200 Subject: [PATCH 01/27] adding easyconfigs: Boost.Python-NumPy-1.83.0-gfbf-2023b.eb, LoSoTo-2.5.0-foss-2023b.eb, LSMTool-1.7.0-foss-2023b.eb, SAGECal-0.8.4-foss-2023b.eb, RMextract-0.5.1-foss-2023b.eb, LofarStMan-1.0-foss-2023b.eb, dysco-1.3-foss-2023b.eb, cwltool-3.1.20250110105449-foss-2023b.eb, toil-cwl-8.2.0-foss-2023b.eb, PyVO-1.7-foss-2023b.eb --- .../Boost.Python-NumPy-1.83.0-gfbf-2023b.eb | 25 ++++ .../cwltool-3.1.20250110105449-foss-2023b.eb | 87 ++++++++++++++ .../d/dysco/dysco-1.3-foss-2023b.eb | 35 ++++++ .../l/LSMTool/LSMTool-1.7.0-foss-2023b.eb | 35 ++++++ .../l/LoSoTo/LoSoTo-2.5.0-foss-2023b.eb | 45 ++++++++ .../l/LofarStMan/LofarStMan-1.0-foss-2023b.eb | 31 +++++ .../easyconfigs/p/PyVO/PyVO-1.7-foss-2023b.eb | 28 +++++ .../r/RMextract/RMextract-0.5.1-foss-2023b.eb | 54 +++++++++ .../s/SAGECal/SAGECal-0.8.4-foss-2023b.eb | 43 +++++++ .../t/toil-cwl/toil-cwl-8.2.0-foss-2023b.eb | 109 ++++++++++++++++++ 10 files changed, 492 insertions(+) create mode 100644 easybuild/easyconfigs/b/Boost.Python-NumPy/Boost.Python-NumPy-1.83.0-gfbf-2023b.eb create mode 100644 easybuild/easyconfigs/c/cwltool/cwltool-3.1.20250110105449-foss-2023b.eb create mode 100644 easybuild/easyconfigs/d/dysco/dysco-1.3-foss-2023b.eb create mode 100644 easybuild/easyconfigs/l/LSMTool/LSMTool-1.7.0-foss-2023b.eb create mode 100644 easybuild/easyconfigs/l/LoSoTo/LoSoTo-2.5.0-foss-2023b.eb create mode 100644 easybuild/easyconfigs/l/LofarStMan/LofarStMan-1.0-foss-2023b.eb create mode 100644 easybuild/easyconfigs/p/PyVO/PyVO-1.7-foss-2023b.eb create mode 100644 easybuild/easyconfigs/r/RMextract/RMextract-0.5.1-foss-2023b.eb create mode 100644 easybuild/easyconfigs/s/SAGECal/SAGECal-0.8.4-foss-2023b.eb create mode 100644 easybuild/easyconfigs/t/toil-cwl/toil-cwl-8.2.0-foss-2023b.eb diff --git a/easybuild/easyconfigs/b/Boost.Python-NumPy/Boost.Python-NumPy-1.83.0-gfbf-2023b.eb b/easybuild/easyconfigs/b/Boost.Python-NumPy/Boost.Python-NumPy-1.83.0-gfbf-2023b.eb new file mode 100644 index 000000000000..559666d478ca --- /dev/null +++ b/easybuild/easyconfigs/b/Boost.Python-NumPy/Boost.Python-NumPy-1.83.0-gfbf-2023b.eb @@ -0,0 +1,25 @@ +easyblock = 'EB_Boost' + +name = 'Boost.Python-NumPy' +version = '1.83.0' + +homepage = 'https://boostorg.github.io/python' +description = """Boost.Python is a C++ library which enables seamless interoperability between C++ + and the Python programming language.""" + +toolchain = {'name': 'gfbf', 'version': '2023b'} +toolchainopts = {'pic': True} + +source_urls = ['https://archives.boost.io/release/%(version)s/source/'] +sources = ['boost_1_83_0.tar.gz'] +checksums = ['c0685b68dd44cc46574cce86c4e17c0f611b15e195be9848dfd0769a0a207628'] + +dependencies = [ + ('Boost', '1.83.0'), + ('Python', '3.11.5'), + ('SciPy-bundle', '2023.11'), +] + +only_python_bindings = True + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/c/cwltool/cwltool-3.1.20250110105449-foss-2023b.eb b/easybuild/easyconfigs/c/cwltool/cwltool-3.1.20250110105449-foss-2023b.eb new file mode 100644 index 000000000000..696506437c65 --- /dev/null +++ b/easybuild/easyconfigs/c/cwltool/cwltool-3.1.20250110105449-foss-2023b.eb @@ -0,0 +1,87 @@ +easyblock = 'PythonBundle' + +name = 'cwltool' +version = '3.1.20250110105449' + +homepage = "https://cwltool.readthedocs.io/" + +description = """ +This is the reference implementation of the Common Workflow Language open +standards. It is intended to be feature complete and provide comprehensive +validation of CWL files as well as provide other tools related to working with +CWL. +""" + +toolchain = {'name': 'foss', 'version': '2023b'} + +builddependencies = [ + ('hatchling', '1.18.0') +] + +# Based on https://github.com/common-workflow-language/cwltool/blob/3.1.20250110105449/pyproject.toml +dependencies = [ + ('Python', '3.11.5'), + ('Python-bundle-PyPI', '2023.10'), + ('ruamel.yaml', '0.18.6'), + ('RDFlib', '7.1.4'), + ('lxml', '4.9.3'), + ('networkx', '3.2.1'), + ('pydot', '2.0.0'), +] + +exts_list = [ + ('mistune', '3.0.2', { + 'checksums': ['fc7f93ded930c92394ef2cb6f04a8aabab4117a91449e72dcc8dfa646a508be8'], + }), + ('mypy-extensions', '1.1.0', { + 'patches': ['mypy-extensions-1.1.0_license.patch'], + 'source_tmpl': 'mypy_extensions-%(version)s.tar.gz', + 'checksums': [ + {'mypy_extensions-1.1.0.tar.gz': '52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558'}, + {'mypy-extensions-1.1.0_license.patch': 'ad6f0666755104f94fc33f5da56dbf218517312d2be5bdc2877e3bfd879d20af'}, + ], + }), + ('schema-salad', '8.9.20250408123006', { + 'modulename': 'schema_salad', + 'source_tmpl': 'schema_salad-%(version)s.tar.gz', + 'checksums': ['7b95bf6ab6960b4b60605e4a908cd56f1a30ec7c16901af6e46a98e152b9f069'], + }), + ('prov', '1.5.1', { + 'checksums': ['7a2d72b0df43cd9c6e374d815c8ce3cd5ca371d54f98f837853ac9fcc98aee4c'], + }), + ('humanfriendly', '10.0', { + 'checksums': ['6b0b831ce8f15f7300721aa49829fc4e83921a9a301cc7f606be6686a2288ddc'], + }), + ('coloredlogs', '15.0.1', { + 'checksums': ['7c991aa71a4577af2f82600d8f8f3a89f936baeaf9b50a9c197da014e5bf16b0'], + }), + ('argcomplete', '3.6.2', { + 'checksums': ['d0519b1bc867f5f4f4713c41ad0aba73a4a5f007449716b16f385f2166dc6adf'], + }), + ('cwl-upgrader', '1.2.12', { + 'source_tmpl': 'cwl_upgrader-%(version)s.tar.gz', + 'modulename': 'cwlupgrader', + 'checksums': ['0d4e514d32d96b60c5300de9baa30a583b09066c9aa78dd6aa7744164d72dc5c'], + }), + ('spython', '0.3.14', { + 'checksums': ['8ad53ef034395cfa2d8a710cc1c3638e4475e5bbc6a2842d317db8013c2e4188'], + }), + ('rich-argparse', '1.7.1', { + 'patches': ['rich-argparse-1.7.1_unkown_classifier.patch'], + 'source_tmpl': 'rich_argparse-%(version)s.tar.gz', + 'checksums': [ + {'rich_argparse-1.7.1.tar.gz': 'd7a493cde94043e41ea68fb43a74405fa178de981bf7b800f7a3bd02ac5c27be'}, + {'rich-argparse-1.7.1_unkown_classifier.patch': + '63e62dba328b2b857425798986af180b1baf228be5f8fd63e5b3cc43e546f972'}, + ], + }), + ('cwl-utils', '0.38', { + 'source_tmpl': 'cwl_utils-%(version)s.tar.gz', + 'checksums': ['1122e1f4cc8f48f9f51ddcb8114fa9e3862d717fd4aacb00f4428008f19e9fec'], + }), + (name, version, { + 'checksums': ['91d3a5946a2afd3e8c4d7e38a53690ad06e3dd88c1d1e1afa368caa41ec3038f'], + }), +] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/d/dysco/dysco-1.3-foss-2023b.eb b/easybuild/easyconfigs/d/dysco/dysco-1.3-foss-2023b.eb new file mode 100644 index 000000000000..eb51b3f82613 --- /dev/null +++ b/easybuild/easyconfigs/d/dysco/dysco-1.3-foss-2023b.eb @@ -0,0 +1,35 @@ +easyblock = 'CMakeMake' + +name = 'dysco' +version = '1.3' + +homepage = 'https://github.com/aroffringa/dysco' +description = """ +The Dysco compression technique is explained in the article "Compression of +interferometric radio-astronomical data", A. R. Offringa (2016; +http://arxiv.org/abs/1609.02019). If you use this software, please cite the +paper. +""" + +toolchain = {'name': 'foss', 'version': '2023b'} + +source_urls = [GITHUB_LOWER_SOURCE] +sources = ['v%(version)s.tar.gz'] +github_account = 'aroffringa' + +builddependencies = [ + ('binutils', '2.40'), + ('CMake', '3.27.6'), +] + +dependencies = [ + ('HDF5', '1.14.3'), + ('casacore', '3.5.0'), +] + +sanity_check_paths = { + 'files': [f'lib/libdyscostman.{SHLIB_EXT}', 'bin/dscompress'], + 'dirs': ['lib'], +} + +moduleclass = 'astro' diff --git a/easybuild/easyconfigs/l/LSMTool/LSMTool-1.7.0-foss-2023b.eb b/easybuild/easyconfigs/l/LSMTool/LSMTool-1.7.0-foss-2023b.eb new file mode 100644 index 000000000000..46bf34f77610 --- /dev/null +++ b/easybuild/easyconfigs/l/LSMTool/LSMTool-1.7.0-foss-2023b.eb @@ -0,0 +1,35 @@ +easyblock = 'PythonBundle' + +name = 'LSMTool' +version = '1.7.0' + +homepage = "https://lsmtool.readthedocs.io/en/latest/" + +description = """ +LSMTool is a Python package which allows for the manipulation of LOFAR sky models in the makesourcedb format. +""" + +toolchain = {'name': 'foss', 'version': '2023b'} + +builddependencies = [ + ('scikit-build-core', '0.9.3'), +] + +# Based on https://git.astron.nl/RD/LSMTool/-/tree/v1.7.0?ref_type=tags#dependencies +dependencies = [ + ('EveryBeam', '0.6.1'), + ('Python', '3.11.5'), + ('SciPy-bundle', '2023.11'), + ('matplotlib', '3.8.2'), + ('astropy', '7.0.0'), + ('python-casacore', '3.5.2'), + ('PyVO', '1.7'), # optional +] + +exts_list = [ + ('lsmtool', version, { + 'checksums': ['88cacd79020f60d8dda0e16fe570aede6cee7a93099ae8a86f9d5e7c2e831448'], + }), +] + +moduleclass = 'astro' diff --git a/easybuild/easyconfigs/l/LoSoTo/LoSoTo-2.5.0-foss-2023b.eb b/easybuild/easyconfigs/l/LoSoTo/LoSoTo-2.5.0-foss-2023b.eb new file mode 100644 index 000000000000..8d4ce2f9ccc7 --- /dev/null +++ b/easybuild/easyconfigs/l/LoSoTo/LoSoTo-2.5.0-foss-2023b.eb @@ -0,0 +1,45 @@ +easyblock = 'PythonBundle' + +name = 'LoSoTo' +version = '2.5.0' + +homepage = "https://revoltek.github.io/losoto/" + +description = """ +LoSoTo: LOFAR solutions tool +""" + +toolchain = {'name': 'foss', 'version': '2023b'} + +builddependencies = [ + ('Cython', '3.0.10'), +] + +dependencies = [ + ('HDF5', '1.14.3'), + ('Python', '3.11.5'), + ('PyTables', '3.9.2'), + ('SciPy-bundle', '2023.11'), + ('matplotlib', '3.8.2'), + ('python-casacore', '3.5.2'), +] + +exts_list = [ + ('configparser', '7.2.0', { + 'checksums': ['b629cc8ae916e3afbd36d1b3d093f34193d851e11998920fdcfc4552218b7b70'], + }), + (name, version, { + 'sources': [{ + 'filename': '%(name)s-%(version)s.tar.xz', + 'git_config': { + 'url': 'https://github.com/revoltek/', + 'repo_name': '%(namelower)s', + 'tag': '2.5.0', + 'recursive': True + } + }], + 'checksums': ['8e48b3c70437719cb98614234a95267a4d8c3b1ecaa156f86d89dc8a91abfc7d'], + }), +] + +moduleclass = 'astro' diff --git a/easybuild/easyconfigs/l/LofarStMan/LofarStMan-1.0-foss-2023b.eb b/easybuild/easyconfigs/l/LofarStMan/LofarStMan-1.0-foss-2023b.eb new file mode 100644 index 000000000000..f240277537f3 --- /dev/null +++ b/easybuild/easyconfigs/l/LofarStMan/LofarStMan-1.0-foss-2023b.eb @@ -0,0 +1,31 @@ +easyblock = 'CMakeMake' + +name = 'LofarStMan' +version = '1.0' + +homepage = 'https://github.com/lofar-astron/LofarStMan' +description = """ +This package provides a casacore storage manager to read raw correlator output of the LOFAR telescope. +""" + +toolchain = {'name': 'foss', 'version': '2023b'} + +source_urls = [GITHUB_LOWER_SOURCE] +sources = ['v%(version)s.tar.gz'] +github_account = 'lofar-astron' + +builddependencies = [ + ('binutils', '2.40'), + ('CMake', '3.27.6'), +] + +dependencies = [ + ('casacore', '3.5.0'), +] + +sanity_check_paths = { + 'files': [f'lib/liblofarstman.{SHLIB_EXT}'], + 'dirs': ['lib'], +} + +moduleclass = 'astro' diff --git a/easybuild/easyconfigs/p/PyVO/PyVO-1.7-foss-2023b.eb b/easybuild/easyconfigs/p/PyVO/PyVO-1.7-foss-2023b.eb new file mode 100644 index 000000000000..3ccaf1060acc --- /dev/null +++ b/easybuild/easyconfigs/p/PyVO/PyVO-1.7-foss-2023b.eb @@ -0,0 +1,28 @@ +easyblock = 'PythonBundle' + +name = 'PyVO' +version = '1.7' + +homepage = "https://pyvo.readthedocs.io/" + +description = """ +PyVO lets you find and retrieve astronomical data available from archives that support standard IVOA virtual observatory service protocols. +""" + +toolchain = {'name': 'foss', 'version': '2023b'} + +# Based on https://pyvo.readthedocs.io/en/latest/#requirements +dependencies = [ + ('Python', '3.11.5'), + ('Python-bundle-PyPI', '2023.10'), + ('SciPy-bundle', '2023.11'), + ('astropy', '7.0.0'), +] + +exts_list = [ + ('pyvo', version, { + 'checksums': ['a6fad9efd410732d113e55df43b0201c9acb2e29f27532c71bda56f38ce62320'], + }), +] + +moduleclass = 'astro' diff --git a/easybuild/easyconfigs/r/RMextract/RMextract-0.5.1-foss-2023b.eb b/easybuild/easyconfigs/r/RMextract/RMextract-0.5.1-foss-2023b.eb new file mode 100644 index 000000000000..9d063fdfb23a --- /dev/null +++ b/easybuild/easyconfigs/r/RMextract/RMextract-0.5.1-foss-2023b.eb @@ -0,0 +1,54 @@ +easyblock = 'PythonBundle' + +name = 'RMextract' +version = '0.5.1' + +homepage = "https://github.com/lofar-astron/RMextract" + +description = """ +Extract TEC, vTEC, Earthmagnetic field and Rotation Measures from GPS and WMM data for radio interferometry observations +""" + +toolchain = {'name': 'foss', 'version': '2023b'} + +# Based on https://github.com/lofar-astron/RMextract/blob/6191e8d17688a440f239745ecb0a203d74708c8b/pyproject.toml#L6 +builddependencies = [ + ('CMake', '3.27.6'), + ('Meson', '1.2.3'), + ('Ninja', '1.11.1'), + ('scikit-build', '0.17.6'), +] + +# Based on https://github.com/lofar-astron/RMextract/blob/6191e8d17688a440f239745ecb0a203d74708c8b/pyproject.toml#L47 +dependencies = [ + ('Python', '3.11.5'), + ('SciPy-bundle', '2023.11'), + ('astropy', '7.0.0'), + ('LoSoTo', '2.5.0'), + ('python-casacore', '3.5.2'), +] + +exts_list = [ + ('PySocks', '1.7.1', { + 'checksums': ['3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0'], + 'modulename': 'socks', + }), + ('rmextract', version, { + 'checksums': ['3d9196ecfd57bab92dd6427591cc6e1b42a7cb66845b6b12f273a8b8df827e77'], + 'modulename': 'RMextract', + 'sanity_check_commands' : [ + 'createRMh5parm --help', + 'download_IONEX --help', + 'createRMParamdb --help', + ] + }), +] + +sanity_check_commands = [ + 'createRMh5parm --help', + 'download_IONEX --help', + 'createRMParamdb --help', +] + + +moduleclass = 'astro' diff --git a/easybuild/easyconfigs/s/SAGECal/SAGECal-0.8.4-foss-2023b.eb b/easybuild/easyconfigs/s/SAGECal/SAGECal-0.8.4-foss-2023b.eb new file mode 100644 index 000000000000..db83aac376e5 --- /dev/null +++ b/easybuild/easyconfigs/s/SAGECal/SAGECal-0.8.4-foss-2023b.eb @@ -0,0 +1,43 @@ +easyblock = 'CMakeMake' + +name = 'SAGECal' +version = '0.8.4' + +homepage = 'https://sagecal.sourceforge.net/' +description = """ +SAGECal is a fast, distributed and GPU accelerated radio astronomial +calibration package. The many optimization algorithms in SAGECal are +implemented in a computationally efficient way and can be used in many +other applications. +""" + +toolchain = {'name': 'foss', 'version': '2023b'} + +source_urls = [GITHUB_LOWER_SOURCE] +sources = ['v%(version)s.tar.gz'] +github_account = 'nlesc-dirac' + +builddependencies = [ + ('binutils', '2.40'), + ('CMake', '3.27.6'), + ('pkgconf', '2.0.3'), +] + +dependencies = [ + ('CFITSIO', '4.3.1'), + ('WCSLIB', '7.11'), + ('GLib', '2.78.1'), + # needed are libcasa-casa4, casacore-dev, casacore-data, casacore-tools, not sure if this provides all? + ('casacore', '3.5.0'), +] + +sanity_check_paths = { + 'files': ['bin/sagecal', 'bin/sagecal-mpi', f'lib/libdirac.{SHLIB_EXT}', f'lib/libdirac-radio.{SHLIB_EXT}'], + 'dirs': ['include'], +} + +sanity_check_commands = [ + 'sagecal', # Will print the help (if no argument is passed) +] + +moduleclass = 'astro' diff --git a/easybuild/easyconfigs/t/toil-cwl/toil-cwl-8.2.0-foss-2023b.eb b/easybuild/easyconfigs/t/toil-cwl/toil-cwl-8.2.0-foss-2023b.eb new file mode 100644 index 000000000000..9617e202fbfe --- /dev/null +++ b/easybuild/easyconfigs/t/toil-cwl/toil-cwl-8.2.0-foss-2023b.eb @@ -0,0 +1,109 @@ +easyblock = 'PythonBundle' + +name = 'toil-cwl' +version = '8.2.0' + +homepage = 'https://github.com/DataBiosphere/toil' +description = """ +A scalable, efficient, cross-platform (Linux/macOS) and easy-to-use workflow engine in pure Python. +This installation contains toil, with the cwl extras. +""" + +toolchain = {'name': 'foss', 'version': '2023b'} + +builddependencies = [ + ('hatchling', '1.18.0'), +] + +dependencies = [ + ('Python', '3.11.5'), + ('Python-bundle-PyPI', '2023.10'), + ('dill', '0.3.8'), + ('cwltool', '3.1.20250110105449'), + ('PyYAML', '6.0.1'), + ('typing-extensions', '4.10.0'), + ('ruamel.yaml', '0.18.6'), + ('psutil', '6.1.0'), # Requires >=6.1.0m so the on from Python-Bunlde-PyPI isn't new enough + # CWL requirements + ('pydantic', '2.7.4'), +] + +exts_list = [ + ('addict', '2.4.0', { + 'checksums': ['b3b2210e0e067a281f5646c8c5db92e99b7231ea8b0eb5f74dbdf9e259d4e494'], + }), + ('blessed', '1.21.0', { + 'checksums': ['ece8bbc4758ab9176452f4e3a719d70088eb5739798cd5582c9e05f2a28337ec'], + }), + ('prefixed', '0.9.0', { + 'checksums': ['164403fa9ebc83280bbc4705f4b243a28837e164310b4e65c38ccab1ebafeeb3'], + }), + ('enlighten', '1.14.1', { + 'checksums': ['85c35412a9a4f3886b3337d41f813441fab9a30d9f5b5f0c015bd078a4411473'], + }), + ('docker', '7.1.0', { + 'checksums': ['ad8c70e6e3f8926cb8a92619b832b4ea5299e2831c14284663184e200546fa6c'], + }), + ('PyPubSub', '4.0.3', { + 'modulename': 'pubsub', + 'source_tmpl': 'v%(version)s.tar.gz', + 'source_urls': ['https://github.com/schollii/pypubsub/archive/'], + 'checksums': ['0df83daa1cb0021bab858ff6812d836c9712dea59a5172be1888bb554c3a89a2'], + }), + ('configargparse', '1.7.1', { + 'checksums': ['79c2ddae836a1e5914b71d58e4b9adbd9f7779d4e6351a637b7d2d9b6c46d3d9'], + }), + ('prompt_toolkit', '3.0.51', { + 'checksums': ['931a162e3b27fc90c86f1b48bb1fb2c528c2761475e57c9c06de13311c7b54ed'], + }), + ('bleach', '6.2.0', { + 'checksums': ['123e894118b8a599fd80d3ec1a6d4cc7ce4e5882b1317a7e1ba69b56e95f991f'], + }), + ('boltons', '25.0.0', { + 'checksums': ['e110fbdc30b7b9868cb604e3f71d4722dd8f4dcb4a5ddd06028ba8f1ab0b5ace'], + }), + ('repoze.lru', '0.7', { + 'checksums': ['0429a75e19380e4ed50c0694e26ac8819b4ea7851ee1fc7583c8572db80aff77'], + }), + ('Routes', '2.5.1', { + 'modulename': 'routes', + 'checksums': ['b6346459a15f0cbab01a45a90c3d25caf980d4733d628b4cc1952b865125d053'], + }), + ('zipstream-new', '1.1.8', { + 'modulename': 'zipstream', + 'checksums': ['b031fe181b94e51678389d26b174bc76382605a078d7d5d8f5beae083f111c76'], + }), + ('galaxy-util', '24.2.3', { + 'modulename': 'galaxy.util', + 'source_tmpl': 'galaxy_util-%(version)s.tar.gz', + 'checksums': ['c1204ff484d37fedc9f0c52234405d466d064f0bafef76d1eadd19f503f8415b'], + }), + ('zstandard', '0.23.0', { + 'checksums': ['b2d8c62d08e7255f68f7a740bae85b3c9b8e5466baa9cbf7f57f1cde0ac6bc09'], + }), + ('conda-package-streaming', '0.11.0', { + 'modulename': 'conda_package_streaming', + 'source_tmpl': 'conda_package_streaming-%(version)s.tar.gz', + 'checksums': ['1cc36731ae2831bced952f23b24a0bc8168b126a830a552cf4312d2f0ee68eea'], + }), + ('galaxy-tool-util', '24.2.3', { + 'modulename': 'galaxy.tool_util', + 'source_tmpl': 'galaxy_tool_util-%(version)s.tar.gz', + 'checksums': ['6b72451d54a2f94f16f58cd2f38d61e3bdacf41c068a03b35ebf631221615246'], + }), + ('toil', version, { + 'modulename': 'toil', + 'source_tmpl': '%(name)s-%(version)s-py3-none-any.whl', + 'use_pip_extras': 'cwl', + 'checksums': ['551ad59591116fbc124b1bbbd24f9bec6027f5520b801070fbb2d4737bf8d22f'], + }), +] + +sanity_check_paths = { + 'files': ['bin/toil', 'bin/toil-cwl-runner'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = ["toil --help"] + +moduleclass = 'tools' From d401df524c6fcd99d4b3c3951da941fa4b16917b Mon Sep 17 00:00:00 2001 From: casparl Date: Mon, 23 Jun 2025 18:02:53 +0200 Subject: [PATCH 02/27] Added LINC, which was the whole point of this PR --- .../easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb diff --git a/easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb b/easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb new file mode 100644 index 000000000000..633be9e3fd1d --- /dev/null +++ b/easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb @@ -0,0 +1,71 @@ +easyblock = 'PythonBundle' + +name = 'LINC' +version = '5.0' + +homepage = "https://linc.readthedocs.io/en/latest/" + +description = """ +LINC is a pipeline to correct for various instrumental and ionospheric effects in both LOFAR HBA and LOFAR LBA observations. +""" + +toolchain = {'name': 'foss', 'version': '2023b'} + +builddependencies = [ + ('CMake', '3.27.6'), + ('scikit-build', '0.17.6'), +] + +# Based on https://git.astron.nl/RD/LINC/-/tree/releases/v5.0?ref_type=heads#software-requirements +dependencies = [ + ('Boost', '1.83.0'), + ('Boost.Python-NumPy', '1.83.0'), # Boost_numpy is required for bdsf + ('DP3', '6.2'), + ('LoSoTo', '2.5.0'), + ('LSMTool', '1.7.0'), + ('EveryBeam', '0.6.1'), # Should be 0.6.2 or newer according to the docs? + ('SAGECal', '0.8.4'), + ('RMextract', '0.5.1'), + ('AOFlagger', '3.4.0'), + ('WSClean', '3.5'), + ('IDG', '1.2.0',), + ('LofarStMan', '1.0'), + ('dysco', '1.3'), + ('Python', '3.11.5'), + ('Python-bundle-PyPI', '2023.10'), + ('SciPy-bundle', '2023.11'), + ('matplotlib', '3.8.2'), + ('python-casacore', '3.5.2'), + ('astropy', '7.0.0'), + ('h5py', '3.11.0'), + ('cwltool', '3.1.20250110105449'), + ('toil-cwl', '8.2.0'), +] + +exts_list = [ + ('pyregion', '2.3.0', { + 'checksums': ['e8498711421173239689de523bb465245f5551a18a181cb4956d87f9c7464925'], + }), + ('backports.shutil_get_terminal_size', '1.0.0', { + 'checksums': ['713e7a8228ae80341c70586d1cc0a8caa5207346927e23d09dcbcaf18eadec80'], + }), + ('bdsf', '1.13.0.post2', { + 'checksums': ['2a91647fcdb1f6574958312d85decd4529a10e710926f11300a2388f4c9e25cd'], + }), + (name, version, { + 'sources': [{ + 'filename': '%(name)s-v%(version)s.tar.xz', + 'git_config': { + 'url': 'https://git.astron.nl/RD/', + 'repo_name': 'LINC', + 'commit': 'v%(version)s', + 'recursive': True, + 'keep_git_dir': True + } + }], + 'checksums': ['50013b27626280290aa06e72b8699fd3193b0b37d51e8042318e6c8497be9f73'], + 'modulename': False, + }), +] + +moduleclass = 'astro' From a915a3de4932e07995fb8da8aca8ff2e59f5436d Mon Sep 17 00:00:00 2001 From: casparl Date: Tue, 24 Jun 2025 10:10:15 +0200 Subject: [PATCH 03/27] Added missing patches --- .../mypy-extensions-1.1.0_license.patch | 19 +++++++++++++++++++ ...ich-argparse-1.7.1_unkown_classifier.patch | 16 ++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 easybuild/easyconfigs/c/cwltool/mypy-extensions-1.1.0_license.patch create mode 100644 easybuild/easyconfigs/c/cwltool/rich-argparse-1.7.1_unkown_classifier.patch diff --git a/easybuild/easyconfigs/c/cwltool/mypy-extensions-1.1.0_license.patch b/easybuild/easyconfigs/c/cwltool/mypy-extensions-1.1.0_license.patch new file mode 100644 index 000000000000..144371f3a947 --- /dev/null +++ b/easybuild/easyconfigs/c/cwltool/mypy-extensions-1.1.0_license.patch @@ -0,0 +1,19 @@ +# Author: Caspar van Leeuwen +# Company: SURF +# Without this patch, we get an error +# flit_core.config.ConfigError: license field should be , not +# because PEP 621 says the license must be a dict, if it is not just a file +# Probably, this happens only with sufficiently new versions of e.g. flit_core, which is +# probably why it wasn't an issue for upstream +diff -Nru mypy_extensions-1.1.0.orig/pyproject.toml mypy_extensions-1.1.0/pyproject.toml +--- mypy_extensions-1.1.0.orig/pyproject.toml 2025-06-16 16:16:04.395222990 +0200 ++++ mypy_extensions-1.1.0/pyproject.toml 2025-06-16 16:24:51.865105381 +0200 +@@ -10,7 +10,7 @@ + authors = [ + {name = "The mypy developers", email = "jukka.lehtosalo@iki.fi"} + ] +-license = "MIT" ++license = {text = "MIT"} + classifiers = [ + "Development Status :: 5 - Production/Stable", + "Environment :: Console", diff --git a/easybuild/easyconfigs/c/cwltool/rich-argparse-1.7.1_unkown_classifier.patch b/easybuild/easyconfigs/c/cwltool/rich-argparse-1.7.1_unkown_classifier.patch new file mode 100644 index 000000000000..c41cf26ce105 --- /dev/null +++ b/easybuild/easyconfigs/c/cwltool/rich-argparse-1.7.1_unkown_classifier.patch @@ -0,0 +1,16 @@ +# Author: Caspar van Leeuwen +# Company: SURF +# Python 3.14 is not an officially recognized classifier yet, even if the rich-argparse +# already claims to support it. As a result, hatchling refuses to build it +# Can be fixed by removing the classifier from the pyproject.toml +diff -Nru rich_argparse-1.7.1.orig/pyproject.toml rich_argparse-1.7.1/pyproject.toml +--- rich_argparse-1.7.1.orig/pyproject.toml 2025-06-16 16:56:11.057910803 +0200 ++++ rich_argparse-1.7.1/pyproject.toml 2025-06-16 16:56:19.326904158 +0200 +@@ -23,7 +23,6 @@ + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", +- "Programming Language :: Python :: 3.14", + "Topic :: Software Development :: User Interfaces", + ] + keywords = ["argparse", "rich", "help-formatter", "optparse"] From 887a05b83ff44041364bdd5c4864075b4e85efb8 Mon Sep 17 00:00:00 2001 From: casparl Date: Tue, 24 Jun 2025 10:10:56 +0200 Subject: [PATCH 04/27] Added missing RDFlib --- .../r/RDFlib/RDFlib-7.1.4-GCCcore-13.2.0.eb | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 easybuild/easyconfigs/r/RDFlib/RDFlib-7.1.4-GCCcore-13.2.0.eb diff --git a/easybuild/easyconfigs/r/RDFlib/RDFlib-7.1.4-GCCcore-13.2.0.eb b/easybuild/easyconfigs/r/RDFlib/RDFlib-7.1.4-GCCcore-13.2.0.eb new file mode 100644 index 000000000000..7ad7db1fcb13 --- /dev/null +++ b/easybuild/easyconfigs/r/RDFlib/RDFlib-7.1.4-GCCcore-13.2.0.eb @@ -0,0 +1,28 @@ +easyblock = 'PythonBundle' + +name = 'RDFlib' +version = '7.1.4' + +homepage = 'https://github.com/RDFLib/rdflib' +description = """RDFLib is a Python library for working with RDF, a simple yet powerful language + for representing information.""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +builddependencies = [ + ('binutils', '2.40'), + ('poetry', '1.6.1'), +] + +dependencies = [ + ('Python', '3.11.5'), + ('Python-bundle-PyPI', '2023.10'), +] + +exts_list = [ + ('rdflib', version, { + 'checksums': ['fed46e24f26a788e2ab8e445f7077f00edcf95abb73bcef4b86cefa8b62dd174'], + }), +] + +moduleclass = 'lib' From 5708a17b844a6ed0a131b705a09dd41513b5f001 Mon Sep 17 00:00:00 2001 From: casparl Date: Tue, 24 Jun 2025 10:13:32 +0200 Subject: [PATCH 05/27] Added missing pydot --- .../p/pydot/pydot-2.0.0-GCCcore-13.2.0.eb | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 easybuild/easyconfigs/p/pydot/pydot-2.0.0-GCCcore-13.2.0.eb diff --git a/easybuild/easyconfigs/p/pydot/pydot-2.0.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/p/pydot/pydot-2.0.0-GCCcore-13.2.0.eb new file mode 100644 index 000000000000..709eb2b3d64b --- /dev/null +++ b/easybuild/easyconfigs/p/pydot/pydot-2.0.0-GCCcore-13.2.0.eb @@ -0,0 +1,25 @@ +# updated: Denis Kristak, Pavel Tománek (INUITS) +easyblock = 'PythonBundle' + +name = 'pydot' +version = '2.0.0' + +homepage = 'https://github.com/pydot/pydot' +description = "Python interface to Graphviz's Dot language." + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +builddependencies = [ + ('binutils', '2.40'), +] +dependencies = [ + ('Python', '3.11.5'), + ('Python-bundle-PyPI', '2023.10'), +] + + +exts_list = [ + ('pydot', '2.0.0', {'checksums': ['60246af215123fa062f21cd791be67dda23a6f280df09f68919e637a1e4f3235']}), +] + +moduleclass = 'vis' From 9da45b89f40758a71766accc485aa7dd9bf780f5 Mon Sep 17 00:00:00 2001 From: casparl Date: Wed, 25 Jun 2025 17:40:35 +0200 Subject: [PATCH 06/27] Disable failing script from sanity check for now --- .../easyconfigs/r/RMextract/RMextract-0.5.1-foss-2023b.eb | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/easybuild/easyconfigs/r/RMextract/RMextract-0.5.1-foss-2023b.eb b/easybuild/easyconfigs/r/RMextract/RMextract-0.5.1-foss-2023b.eb index 9d063fdfb23a..b8312443f3d7 100644 --- a/easybuild/easyconfigs/r/RMextract/RMextract-0.5.1-foss-2023b.eb +++ b/easybuild/easyconfigs/r/RMextract/RMextract-0.5.1-foss-2023b.eb @@ -36,18 +36,14 @@ exts_list = [ ('rmextract', version, { 'checksums': ['3d9196ecfd57bab92dd6427591cc6e1b42a7cb66845b6b12f273a8b8df827e77'], 'modulename': 'RMextract', - 'sanity_check_commands' : [ - 'createRMh5parm --help', - 'download_IONEX --help', - 'createRMParamdb --help', - ] }), ] sanity_check_commands = [ 'createRMh5parm --help', 'download_IONEX --help', - 'createRMParamdb --help', + # This actually doesn't work with the current easyconfig + # 'createRMParamdb --help', ] From 770465d27411656e9a7f30b5f8a15e987f983d2b Mon Sep 17 00:00:00 2001 From: casparl Date: Wed, 25 Jun 2025 18:09:35 +0200 Subject: [PATCH 07/27] Fix checksum --- easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb b/easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb index 633be9e3fd1d..fe60d8e6bab5 100644 --- a/easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb +++ b/easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb @@ -53,6 +53,7 @@ exts_list = [ 'checksums': ['2a91647fcdb1f6574958312d85decd4529a10e710926f11300a2388f4c9e25cd'], }), (name, version, { + 'modulename': False, 'sources': [{ 'filename': '%(name)s-v%(version)s.tar.xz', 'git_config': { @@ -63,8 +64,7 @@ exts_list = [ 'keep_git_dir': True } }], - 'checksums': ['50013b27626280290aa06e72b8699fd3193b0b37d51e8042318e6c8497be9f73'], - 'modulename': False, + 'checksums': ['2d81f222ab68f075075e0c771540508c535ea128b0a8c7b8d44f11fbfd89f40e'], }), ] From 49b84361c22be857bd825ef0cb7e2e1986f854cd Mon Sep 17 00:00:00 2001 From: casparl Date: Thu, 26 Jun 2025 13:46:25 +0200 Subject: [PATCH 08/27] Remove checksum for linc, since it is not reproducible --- easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb b/easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb index fe60d8e6bab5..65ca7edc350c 100644 --- a/easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb +++ b/easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb @@ -64,7 +64,9 @@ exts_list = [ 'keep_git_dir': True } }], - 'checksums': ['2d81f222ab68f075075e0c771540508c535ea128b0a8c7b8d44f11fbfd89f40e'], + # We cannot get a reproducible checksum, because we need to do keep_git_dir for + # setuptools_scm to determine the version + 'checksums': [None], }), ] From 0ac0d51dab3132d90cbdf8aa8c61666b86882943 Mon Sep 17 00:00:00 2001 From: Caspar van Leeuwen Date: Wed, 15 Oct 2025 17:46:29 +0200 Subject: [PATCH 09/27] Added a test step that runs the run_hba_target test from LINCs own CI https://git.astron.nl/RD/LINC/-/blob/b4356321a88504de89c13bb459dbbc625958626f/.gitlab-ci.yml --- .../easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb | 51 +++++++++++++++---- 1 file changed, 42 insertions(+), 9 deletions(-) diff --git a/easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb b/easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb index 65ca7edc350c..4235cf578e3a 100644 --- a/easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb +++ b/easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb @@ -42,6 +42,34 @@ dependencies = [ ('toil-cwl', '8.2.0'), ] +# Get data needed to run the test +local_pretestopts = 'mkdir -p data && ' +local_pretestopts += 'wget -nv https://support.astron.nl/software/ci_data/linc/test_data.tar.gz ' +local_pretestopts += '-O test_data.tar.gz && ' +local_pretestopts += 'wget -nv https://support.astron.nl/software/ci_data/linc/results_calibrator.tar.gz ' +local_pretestopts += '-O results_calibrator.tar.gz && tar xfz test_data.tar.gz -C data && ' +local_pretestopts += 'tar xfz results_calibrator.tar.gz -C data && ' + +# Patch the workflow file so that it looks for the skymodels within the LINC (temporary) install dir +local_pretestopts += 'sed -i -e "s|\"/usr/local/share/linc/skymodels/A-Team_Midres.skymodel\"|' +local_pretestopts += '\"${EB_PYTHONPACKAGE_TEST_INSTALLDIR}/share/linc/skymodels/A-Team_Midres.skymodel\"|" ' +local_pretestopts += '-e "s|\"/usr/local/share/linc/skymodels\"|' +local_pretestopts += '\"${EB_PYTHONPACKAGE_TEST_INSTALLDIR}/share/linc/skymodels\"|" test_jobs/HBA_target.json && ' + +# Ensure SLURM env vars are emptied, otherwise OpenMPI may complain that OMPI wasn't build with SLURMs PMI support +local_pretestopts += 'for i in $(env | grep SLURM); do unset "${i%=*}"; done && ' + +# Disable OpenMP parallelism, to avoid BLAS error with DP3 and hang in clocktek +# LINC uses it's own threading, which seems to clash with a multithreaded BLAS +local_pretestopts += 'export OMP_NUM_THREADS=1 && export OPENBLAS_NUM_THREADS=1 && ' + +# Se the LINC_DATA_ROOT and make sure to include the python scripts (which are in /bin for some reason) +# to the PYTHONPATH +local_pretestopts += 'export LINC_DATA_ROOT=$EB_PYTHONPACKAGE_TEST_INSTALLDIR/share/linc && export PYTHONPATH=$PYTHONPATH:$EB_PYTHONPACKAGE_TEST_INSTALLDIR/bin && ' +local_testopts = '--no-container --preserve-entire-environment --outdir results --leave-tmpdir ' +local_testopts += '--tmpdir-prefix run_hba_calibrator $EB_PYTHONPACKAGE_TEST_INSTALLDIR/share/linc/workflows/HBA_target.cwl ' +local_testopts += 'test_jobs/HBA_target.json' + exts_list = [ ('pyregion', '2.3.0', { 'checksums': ['e8498711421173239689de523bb465245f5551a18a181cb4956d87f9c7464925'], @@ -55,18 +83,23 @@ exts_list = [ (name, version, { 'modulename': False, 'sources': [{ - 'filename': '%(name)s-v%(version)s.tar.xz', - 'git_config': { - 'url': 'https://git.astron.nl/RD/', - 'repo_name': 'LINC', - 'commit': 'v%(version)s', - 'recursive': True, - 'keep_git_dir': True - } - }], + 'filename': '%(name)s-v%(version)s.tar.xz', + 'git_config': { + 'url': 'https://git.astron.nl/RD/', + 'repo_name': 'LINC', + 'commit': 'v%(version)s', + 'recursive': True, + 'keep_git_dir': True + }, + }, + ], # We cannot get a reproducible checksum, because we need to do keep_git_dir for # setuptools_scm to determine the version 'checksums': [None], + 'testinstall': True, + 'pretestopts': local_pretestopts, + 'runtest': 'cwltool', + 'testopts': local_testopts, }), ] From b20555cc6890c53397d2843c05e6e4d5746c6b6f Mon Sep 17 00:00:00 2001 From: Caspar van Leeuwen Date: Wed, 15 Oct 2025 17:48:19 +0200 Subject: [PATCH 10/27] Fix typo --- easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb b/easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb index 4235cf578e3a..034634e227b4 100644 --- a/easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb +++ b/easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb @@ -63,7 +63,7 @@ local_pretestopts += 'for i in $(env | grep SLURM); do unset "${i%=*}"; done && # LINC uses it's own threading, which seems to clash with a multithreaded BLAS local_pretestopts += 'export OMP_NUM_THREADS=1 && export OPENBLAS_NUM_THREADS=1 && ' -# Se the LINC_DATA_ROOT and make sure to include the python scripts (which are in /bin for some reason) +# Set the LINC_DATA_ROOT and make sure to include the python scripts (which are in /bin for some reason) # to the PYTHONPATH local_pretestopts += 'export LINC_DATA_ROOT=$EB_PYTHONPACKAGE_TEST_INSTALLDIR/share/linc && export PYTHONPATH=$PYTHONPATH:$EB_PYTHONPACKAGE_TEST_INSTALLDIR/bin && ' local_testopts = '--no-container --preserve-entire-environment --outdir results --leave-tmpdir ' From 42779b8a8aed1a1de81fe8e052e47ac0bfd9e898 Mon Sep 17 00:00:00 2001 From: Caspar van Leeuwen Date: Thu, 16 Oct 2025 00:07:04 +0200 Subject: [PATCH 11/27] Fix LINC code style errors --- .../easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb b/easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb index 034634e227b4..7c7919c5ea2e 100644 --- a/easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb +++ b/easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb @@ -6,7 +6,8 @@ version = '5.0' homepage = "https://linc.readthedocs.io/en/latest/" description = """ -LINC is a pipeline to correct for various instrumental and ionospheric effects in both LOFAR HBA and LOFAR LBA observations. +LINC is a pipeline to correct for various instrumental and ionospheric effects in both LOFAR HBA and LOFAR LBA +observations. """ toolchain = {'name': 'foss', 'version': '2023b'} @@ -65,9 +66,11 @@ local_pretestopts += 'export OMP_NUM_THREADS=1 && export OPENBLAS_NUM_THREADS=1 # Set the LINC_DATA_ROOT and make sure to include the python scripts (which are in /bin for some reason) # to the PYTHONPATH -local_pretestopts += 'export LINC_DATA_ROOT=$EB_PYTHONPACKAGE_TEST_INSTALLDIR/share/linc && export PYTHONPATH=$PYTHONPATH:$EB_PYTHONPACKAGE_TEST_INSTALLDIR/bin && ' +local_pretestopts += 'export LINC_DATA_ROOT=$EB_PYTHONPACKAGE_TEST_INSTALLDIR/share/linc && ' +local_pretestopts += 'export PYTHONPATH=$PYTHONPATH:$EB_PYTHONPACKAGE_TEST_INSTALLDIR/bin && ' local_testopts = '--no-container --preserve-entire-environment --outdir results --leave-tmpdir ' -local_testopts += '--tmpdir-prefix run_hba_calibrator $EB_PYTHONPACKAGE_TEST_INSTALLDIR/share/linc/workflows/HBA_target.cwl ' +local_testopts += '--tmpdir-prefix run_hba_calibrator ' +local_testopts += '$EB_PYTHONPACKAGE_TEST_INSTALLDIR/share/linc/workflows/HBA_target.cwl ' local_testopts += 'test_jobs/HBA_target.json' exts_list = [ @@ -83,16 +86,15 @@ exts_list = [ (name, version, { 'modulename': False, 'sources': [{ - 'filename': '%(name)s-v%(version)s.tar.xz', - 'git_config': { - 'url': 'https://git.astron.nl/RD/', - 'repo_name': 'LINC', - 'commit': 'v%(version)s', - 'recursive': True, - 'keep_git_dir': True - }, + 'filename': '%(name)s-v%(version)s.tar.xz', + 'git_config': { + 'url': 'https://git.astron.nl/RD/', + 'repo_name': 'LINC', + 'commit': 'v%(version)s', + 'recursive': True, + 'keep_git_dir': True }, - ], + }], # We cannot get a reproducible checksum, because we need to do keep_git_dir for # setuptools_scm to determine the version 'checksums': [None], From 7cdda1d44e04424dc10aca801d64ebb5aa7956f2 Mon Sep 17 00:00:00 2001 From: Caspar van Leeuwen Date: Thu, 16 Oct 2025 00:07:40 +0200 Subject: [PATCH 12/27] Fix too long line in PyVO --- easybuild/easyconfigs/p/PyVO/PyVO-1.7-foss-2023b.eb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/p/PyVO/PyVO-1.7-foss-2023b.eb b/easybuild/easyconfigs/p/PyVO/PyVO-1.7-foss-2023b.eb index 3ccaf1060acc..4fe3310382e0 100644 --- a/easybuild/easyconfigs/p/PyVO/PyVO-1.7-foss-2023b.eb +++ b/easybuild/easyconfigs/p/PyVO/PyVO-1.7-foss-2023b.eb @@ -6,7 +6,8 @@ version = '1.7' homepage = "https://pyvo.readthedocs.io/" description = """ -PyVO lets you find and retrieve astronomical data available from archives that support standard IVOA virtual observatory service protocols. +PyVO lets you find and retrieve astronomical data available from archives that support standard IVOA virtual +observatory service protocols. """ toolchain = {'name': 'foss', 'version': '2023b'} From c4a64d06b0f29d45b4ee4bdf6d7d94b288a63fa6 Mon Sep 17 00:00:00 2001 From: Caspar van Leeuwen Date: Thu, 16 Oct 2025 00:11:14 +0200 Subject: [PATCH 13/27] Add missing checksums for dysco, LofarStMan and SAGECal --- easybuild/easyconfigs/d/dysco/dysco-1.3-foss-2023b.eb | 1 + easybuild/easyconfigs/l/LofarStMan/LofarStMan-1.0-foss-2023b.eb | 1 + easybuild/easyconfigs/s/SAGECal/SAGECal-0.8.4-foss-2023b.eb | 1 + 3 files changed, 3 insertions(+) diff --git a/easybuild/easyconfigs/d/dysco/dysco-1.3-foss-2023b.eb b/easybuild/easyconfigs/d/dysco/dysco-1.3-foss-2023b.eb index eb51b3f82613..ba07b58be4db 100644 --- a/easybuild/easyconfigs/d/dysco/dysco-1.3-foss-2023b.eb +++ b/easybuild/easyconfigs/d/dysco/dysco-1.3-foss-2023b.eb @@ -15,6 +15,7 @@ toolchain = {'name': 'foss', 'version': '2023b'} source_urls = [GITHUB_LOWER_SOURCE] sources = ['v%(version)s.tar.gz'] +checksums = ['02cb53cc0a95a17a04fbaa6063b39641725b81f279b08e85761b01e8f186609f'] github_account = 'aroffringa' builddependencies = [ diff --git a/easybuild/easyconfigs/l/LofarStMan/LofarStMan-1.0-foss-2023b.eb b/easybuild/easyconfigs/l/LofarStMan/LofarStMan-1.0-foss-2023b.eb index f240277537f3..d0d7b1b93dce 100644 --- a/easybuild/easyconfigs/l/LofarStMan/LofarStMan-1.0-foss-2023b.eb +++ b/easybuild/easyconfigs/l/LofarStMan/LofarStMan-1.0-foss-2023b.eb @@ -12,6 +12,7 @@ toolchain = {'name': 'foss', 'version': '2023b'} source_urls = [GITHUB_LOWER_SOURCE] sources = ['v%(version)s.tar.gz'] +checksums = ['25d33c51f8ce9059c2c95424526c1eae8838f0163a9a0e05cf9db0715ebd022a'] github_account = 'lofar-astron' builddependencies = [ diff --git a/easybuild/easyconfigs/s/SAGECal/SAGECal-0.8.4-foss-2023b.eb b/easybuild/easyconfigs/s/SAGECal/SAGECal-0.8.4-foss-2023b.eb index db83aac376e5..15ff0ac2f20e 100644 --- a/easybuild/easyconfigs/s/SAGECal/SAGECal-0.8.4-foss-2023b.eb +++ b/easybuild/easyconfigs/s/SAGECal/SAGECal-0.8.4-foss-2023b.eb @@ -15,6 +15,7 @@ toolchain = {'name': 'foss', 'version': '2023b'} source_urls = [GITHUB_LOWER_SOURCE] sources = ['v%(version)s.tar.gz'] +checksums = ['73a71e1c1a090aa0e61746066846bfb41b28c92c520f513b5456a8e629365c14'] github_account = 'nlesc-dirac' builddependencies = [ From b0e0ca3c83b3418b8672eba76fa601fa17dc0018 Mon Sep 17 00:00:00 2001 From: Caspar van Leeuwen Date: Thu, 16 Oct 2025 13:23:47 +0200 Subject: [PATCH 14/27] Add wget as a build dep since it's needed for the test step --- easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb | 1 + 1 file changed, 1 insertion(+) diff --git a/easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb b/easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb index 7c7919c5ea2e..7251c0e55aa9 100644 --- a/easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb +++ b/easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb @@ -15,6 +15,7 @@ toolchain = {'name': 'foss', 'version': '2023b'} builddependencies = [ ('CMake', '3.27.6'), ('scikit-build', '0.17.6'), + ('wget', '1.21.4'), # Needed for the test step ] # Based on https://git.astron.nl/RD/LINC/-/tree/releases/v5.0?ref_type=heads#software-requirements From 35740434402dd3ecafda192d48c7beecbccbfdea Mon Sep 17 00:00:00 2001 From: Caspar van Leeuwen Date: Thu, 16 Oct 2025 14:13:14 +0200 Subject: [PATCH 15/27] Add nodejs as dependency, it is required according to https://github.com/common-workflow-language/cwltool/blob/a67c898958f6affc8cb9de05fe87c9228a4fc63e/pyproject.toml#L32 and the reason jsc-zen3 was failing on https://github.com/easybuilders/easybuild-easyconfigs/pull/23155#issuecomment-3410576815 --- .../c/cwltool/cwltool-3.1.20250110105449-foss-2023b.eb | 1 + 1 file changed, 1 insertion(+) diff --git a/easybuild/easyconfigs/c/cwltool/cwltool-3.1.20250110105449-foss-2023b.eb b/easybuild/easyconfigs/c/cwltool/cwltool-3.1.20250110105449-foss-2023b.eb index 696506437c65..6cc69f7f4b6e 100644 --- a/easybuild/easyconfigs/c/cwltool/cwltool-3.1.20250110105449-foss-2023b.eb +++ b/easybuild/easyconfigs/c/cwltool/cwltool-3.1.20250110105449-foss-2023b.eb @@ -20,6 +20,7 @@ builddependencies = [ # Based on https://github.com/common-workflow-language/cwltool/blob/3.1.20250110105449/pyproject.toml dependencies = [ + ('nodejs', '20.9.0'), ('Python', '3.11.5'), ('Python-bundle-PyPI', '2023.10'), ('ruamel.yaml', '0.18.6'), From 10d207a721d8b0f7da04cce3249b6ba7830cf0c4 Mon Sep 17 00:00:00 2001 From: Caspar van Leeuwen Date: Thu, 16 Oct 2025 14:23:57 +0200 Subject: [PATCH 16/27] Add exceptions for multi-variant deps within 2023b --- test/easyconfigs/easyconfigs.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/test/easyconfigs/easyconfigs.py b/test/easyconfigs/easyconfigs.py index 438bf4c0496b..7e0224e522ed 100644 --- a/test/easyconfigs/easyconfigs.py +++ b/test/easyconfigs/easyconfigs.py @@ -566,7 +566,11 @@ def check_dep_vars(self, gen, dep, dep_vars): 'e3nn': [(r'0\.4\.4; versionsuffix: -CUDA-12\.1\.1', [r'MACE-0\.3\.8-foss-2023a-CUDA-12\.1\.1'])], # Current rapthor requires WSclean 3.5 or newer, which in turn requires EveryBeam 0.6.X or newer # Requires us to also bump DP3 version (to 6.2) and its dependency on EveryBeam - 'EveryBeam': [(r'0\.6\.1', [r'DP3-6\.2', r'WSClean-3\.[5-9]'])], + 'EveryBeam': [(r'0\.6\.1', [r'DP3-6\.2', + r'WSClean-3\.[5-9]', + r'LSMTool-1.7.0-2023b', + r'LINC-5.0-foss-2023b']) + ], # egl variant of glew is required by libwpe, wpebackend-fdo + WebKitGTK+ depend on libwpe 'glew': [ ('2.2.0; versionsuffix: -egl', [r'libwpe-1\.13\.3-GCCcore-11\.2\.0', @@ -616,6 +620,11 @@ def check_dep_vars(self, gen, dep, dep_vars): # GTDB-Tk v2.3.2 requires pydantic 1.x (see https://github.com/Ecogenomics/GTDBTk/pull/530) ('1.10.13;', ['GTDB-Tk-2.3.2-', 'GTDB-Tk-2.4.0-']), ], + # Pydot <3 is explicitely required by cwltool + 'pydot': [(r'2\.0\.0', [r'LINC-5.0-foss-2023b', + r'toil-cwl-8.2.0-foss-2023b', + r'cwltool-3.1.20250110105449-foss-2023b']) + ], # bakta requires PyHMMER 0.10.15 'PyHMMER': [(r'0\.10\.15', [r'bakta-1\.10\.1'])], # WhatsHap 1.4 + medaka 1.6.0 require Pysam >= 0.18.0 (NGSpeciesID depends on medaka) From af96f12fd149382b5002bc0d50df6bc8511bec47 Mon Sep 17 00:00:00 2001 From: Caspar van Leeuwen Date: Thu, 16 Oct 2025 14:27:16 +0200 Subject: [PATCH 17/27] Try to fix flake8 issue --- test/easyconfigs/easyconfigs.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/easyconfigs/easyconfigs.py b/test/easyconfigs/easyconfigs.py index 7e0224e522ed..8f3ab9dae341 100644 --- a/test/easyconfigs/easyconfigs.py +++ b/test/easyconfigs/easyconfigs.py @@ -569,7 +569,7 @@ def check_dep_vars(self, gen, dep, dep_vars): 'EveryBeam': [(r'0\.6\.1', [r'DP3-6\.2', r'WSClean-3\.[5-9]', r'LSMTool-1.7.0-2023b', - r'LINC-5.0-foss-2023b']) + r'LINC-5.0-foss-2023b']), ], # egl variant of glew is required by libwpe, wpebackend-fdo + WebKitGTK+ depend on libwpe 'glew': [ @@ -623,7 +623,7 @@ def check_dep_vars(self, gen, dep, dep_vars): # Pydot <3 is explicitely required by cwltool 'pydot': [(r'2\.0\.0', [r'LINC-5.0-foss-2023b', r'toil-cwl-8.2.0-foss-2023b', - r'cwltool-3.1.20250110105449-foss-2023b']) + r'cwltool-3.1.20250110105449-foss-2023b']), ], # bakta requires PyHMMER 0.10.15 'PyHMMER': [(r'0\.10\.15', [r'bakta-1\.10\.1'])], From 486f04b3488b92d11f473d824cc2ddec1d00dff7 Mon Sep 17 00:00:00 2001 From: Caspar van Leeuwen Date: Thu, 16 Oct 2025 14:52:01 +0200 Subject: [PATCH 18/27] Fix flake8 --- test/easyconfigs/easyconfigs.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/test/easyconfigs/easyconfigs.py b/test/easyconfigs/easyconfigs.py index 8f3ab9dae341..d080af082724 100644 --- a/test/easyconfigs/easyconfigs.py +++ b/test/easyconfigs/easyconfigs.py @@ -569,8 +569,7 @@ def check_dep_vars(self, gen, dep, dep_vars): 'EveryBeam': [(r'0\.6\.1', [r'DP3-6\.2', r'WSClean-3\.[5-9]', r'LSMTool-1.7.0-2023b', - r'LINC-5.0-foss-2023b']), - ], + r'LINC-5.0-foss-2023b'])], # egl variant of glew is required by libwpe, wpebackend-fdo + WebKitGTK+ depend on libwpe 'glew': [ ('2.2.0; versionsuffix: -egl', [r'libwpe-1\.13\.3-GCCcore-11\.2\.0', @@ -623,8 +622,7 @@ def check_dep_vars(self, gen, dep, dep_vars): # Pydot <3 is explicitely required by cwltool 'pydot': [(r'2\.0\.0', [r'LINC-5.0-foss-2023b', r'toil-cwl-8.2.0-foss-2023b', - r'cwltool-3.1.20250110105449-foss-2023b']), - ], + r'cwltool-3.1.20250110105449-foss-2023b'])], # bakta requires PyHMMER 0.10.15 'PyHMMER': [(r'0\.10\.15', [r'bakta-1\.10\.1'])], # WhatsHap 1.4 + medaka 1.6.0 require Pysam >= 0.18.0 (NGSpeciesID depends on medaka) From 4dd4172ced3440c6280063099e66edb3c1816ca9 Mon Sep 17 00:00:00 2001 From: Caspar van Leeuwen Date: Thu, 16 Oct 2025 14:53:37 +0200 Subject: [PATCH 19/27] Properly add the toolchain in the exception --- test/easyconfigs/easyconfigs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/easyconfigs/easyconfigs.py b/test/easyconfigs/easyconfigs.py index d080af082724..8a589b1dc456 100644 --- a/test/easyconfigs/easyconfigs.py +++ b/test/easyconfigs/easyconfigs.py @@ -568,7 +568,7 @@ def check_dep_vars(self, gen, dep, dep_vars): # Requires us to also bump DP3 version (to 6.2) and its dependency on EveryBeam 'EveryBeam': [(r'0\.6\.1', [r'DP3-6\.2', r'WSClean-3\.[5-9]', - r'LSMTool-1.7.0-2023b', + r'LSMTool-1.7.0-foss-2023b', r'LINC-5.0-foss-2023b'])], # egl variant of glew is required by libwpe, wpebackend-fdo + WebKitGTK+ depend on libwpe 'glew': [ From dbc1150e9f5cde18b51ae10bd04b693354278312 Mon Sep 17 00:00:00 2001 From: Caspar van Leeuwen <33718780+casparvl@users.noreply.github.com> Date: Fri, 17 Oct 2025 10:21:53 +0200 Subject: [PATCH 20/27] Update easybuild/easyconfigs/r/RMextract/RMextract-0.5.1-foss-2023b.eb MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Bob Dröge --- easybuild/easyconfigs/r/RMextract/RMextract-0.5.1-foss-2023b.eb | 1 + 1 file changed, 1 insertion(+) diff --git a/easybuild/easyconfigs/r/RMextract/RMextract-0.5.1-foss-2023b.eb b/easybuild/easyconfigs/r/RMextract/RMextract-0.5.1-foss-2023b.eb index b8312443f3d7..ab6de9a6aeb9 100644 --- a/easybuild/easyconfigs/r/RMextract/RMextract-0.5.1-foss-2023b.eb +++ b/easybuild/easyconfigs/r/RMextract/RMextract-0.5.1-foss-2023b.eb @@ -36,6 +36,7 @@ exts_list = [ ('rmextract', version, { 'checksums': ['3d9196ecfd57bab92dd6427591cc6e1b42a7cb66845b6b12f273a8b8df827e77'], 'modulename': 'RMextract', + 'preinstallopts': 'export CMAKE_ARGS="-DF2PY_EXECUTABLE=$EBROOTSCIPYMINBUNDLE/bin/f2py" && ', }), ] From 5f39cf73608e58aa84055f2e3c31e3dbd82248c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Fri, 17 Oct 2025 10:54:14 +0200 Subject: [PATCH 21/27] Update easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb --- easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb | 1 + 1 file changed, 1 insertion(+) diff --git a/easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb b/easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb index 7251c0e55aa9..52e6977ef9a8 100644 --- a/easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb +++ b/easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb @@ -83,6 +83,7 @@ exts_list = [ }), ('bdsf', '1.13.0.post2', { 'checksums': ['2a91647fcdb1f6574958312d85decd4529a10e710926f11300a2388f4c9e25cd'], + 'preinstallopts': 'export CMAKE_ARGS="-DF2PY_EXECUTABLE=$EBROOTSCIPYMINBUNDLE/bin/f2py" && ', }), (name, version, { 'modulename': False, From 40f7b77d8f5229cedd46f67f615b381541a3be83 Mon Sep 17 00:00:00 2001 From: Caspar van Leeuwen Date: Mon, 20 Oct 2025 17:14:07 +0200 Subject: [PATCH 22/27] Use tagged tarball, as setuptools_scm was only introduced in master, not yet in 2.5.0 --- .../l/LoSoTo/LoSoTo-2.5.0-foss-2023b.eb | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/easybuild/easyconfigs/l/LoSoTo/LoSoTo-2.5.0-foss-2023b.eb b/easybuild/easyconfigs/l/LoSoTo/LoSoTo-2.5.0-foss-2023b.eb index 8d4ce2f9ccc7..45f21b91f980 100644 --- a/easybuild/easyconfigs/l/LoSoTo/LoSoTo-2.5.0-foss-2023b.eb +++ b/easybuild/easyconfigs/l/LoSoTo/LoSoTo-2.5.0-foss-2023b.eb @@ -24,21 +24,20 @@ dependencies = [ ('python-casacore', '3.5.2'), ] +github_account = 'revoltek' + exts_list = [ ('configparser', '7.2.0', { 'checksums': ['b629cc8ae916e3afbd36d1b3d093f34193d851e11998920fdcfc4552218b7b70'], }), (name, version, { - 'sources': [{ - 'filename': '%(name)s-%(version)s.tar.xz', - 'git_config': { - 'url': 'https://github.com/revoltek/', - 'repo_name': '%(namelower)s', - 'tag': '2.5.0', - 'recursive': True - } - }], - 'checksums': ['8e48b3c70437719cb98614234a95267a4d8c3b1ecaa156f86d89dc8a91abfc7d'], + # Note that this still works for 2.5.0, but current master uses setuptools_scm + # So in the future this will have to be replaced by a 'git_config' with 'keep_git_dir': 'True' + # The checksum will then also need to be removed + # See LINC-5.0-foss-2023b.eb as an example + 'source_urls': [GITHUB_LOWER_SOURCE], + 'sources': [{'download_filename': '%(version)s.tar.gz', 'filename': SOURCE_TAR_GZ}], + 'checksums': ['e475e04af9561e5581ac11e9359bd08b1b71b28c59b62cf73976addb93ce3c81'], }), ] From cee886696ae11d8fa35115c1fc8d93de2afdcc44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Tue, 21 Oct 2025 09:05:16 +0200 Subject: [PATCH 23/27] fix small typo --- easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb b/easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb index 52e6977ef9a8..549f113ec6e1 100644 --- a/easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb +++ b/easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb @@ -62,7 +62,7 @@ local_pretestopts += '\"${EB_PYTHONPACKAGE_TEST_INSTALLDIR}/share/linc/skymodels local_pretestopts += 'for i in $(env | grep SLURM); do unset "${i%=*}"; done && ' # Disable OpenMP parallelism, to avoid BLAS error with DP3 and hang in clocktek -# LINC uses it's own threading, which seems to clash with a multithreaded BLAS +# LINC uses its own threading, which seems to clash with a multithreaded BLAS local_pretestopts += 'export OMP_NUM_THREADS=1 && export OPENBLAS_NUM_THREADS=1 && ' # Set the LINC_DATA_ROOT and make sure to include the python scripts (which are in /bin for some reason) From 7d7afcf5a14064006c5579217c4b530a2c4e4cd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Tue, 21 Oct 2025 09:06:46 +0200 Subject: [PATCH 24/27] add and remove blank line --- easybuild/easyconfigs/p/pydot/pydot-2.0.0-GCCcore-13.2.0.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/p/pydot/pydot-2.0.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/p/pydot/pydot-2.0.0-GCCcore-13.2.0.eb index 709eb2b3d64b..95fd542804e7 100644 --- a/easybuild/easyconfigs/p/pydot/pydot-2.0.0-GCCcore-13.2.0.eb +++ b/easybuild/easyconfigs/p/pydot/pydot-2.0.0-GCCcore-13.2.0.eb @@ -12,12 +12,12 @@ toolchain = {'name': 'GCCcore', 'version': '13.2.0'} builddependencies = [ ('binutils', '2.40'), ] + dependencies = [ ('Python', '3.11.5'), ('Python-bundle-PyPI', '2023.10'), ] - exts_list = [ ('pydot', '2.0.0', {'checksums': ['60246af215123fa062f21cd791be67dda23a6f280df09f68919e637a1e4f3235']}), ] From 7cb198e679a580e810b401bc736ced5126afbba8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Tue, 21 Oct 2025 09:37:36 +0200 Subject: [PATCH 25/27] fix typo --- easybuild/easyconfigs/t/toil-cwl/toil-cwl-8.2.0-foss-2023b.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/t/toil-cwl/toil-cwl-8.2.0-foss-2023b.eb b/easybuild/easyconfigs/t/toil-cwl/toil-cwl-8.2.0-foss-2023b.eb index 9617e202fbfe..9f7c8067a636 100644 --- a/easybuild/easyconfigs/t/toil-cwl/toil-cwl-8.2.0-foss-2023b.eb +++ b/easybuild/easyconfigs/t/toil-cwl/toil-cwl-8.2.0-foss-2023b.eb @@ -23,7 +23,7 @@ dependencies = [ ('PyYAML', '6.0.1'), ('typing-extensions', '4.10.0'), ('ruamel.yaml', '0.18.6'), - ('psutil', '6.1.0'), # Requires >=6.1.0m so the on from Python-Bunlde-PyPI isn't new enough + ('psutil', '6.1.0'), # Requires >=6.1.0m so the one from Python-Bunlde-PyPI isn't new enough # CWL requirements ('pydantic', '2.7.4'), ] From 0c9f4a56b1e81f600fcc2be0e076dab6df801282 Mon Sep 17 00:00:00 2001 From: Caspar van Leeuwen <33718780+casparvl@users.noreply.github.com> Date: Tue, 21 Oct 2025 10:25:41 +0200 Subject: [PATCH 26/27] Update easybuild/easyconfigs/s/SAGECal/SAGECal-0.8.4-foss-2023b.eb MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Bob Dröge --- easybuild/easyconfigs/s/SAGECal/SAGECal-0.8.4-foss-2023b.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/s/SAGECal/SAGECal-0.8.4-foss-2023b.eb b/easybuild/easyconfigs/s/SAGECal/SAGECal-0.8.4-foss-2023b.eb index 15ff0ac2f20e..034c31fe4a5a 100644 --- a/easybuild/easyconfigs/s/SAGECal/SAGECal-0.8.4-foss-2023b.eb +++ b/easybuild/easyconfigs/s/SAGECal/SAGECal-0.8.4-foss-2023b.eb @@ -28,7 +28,7 @@ dependencies = [ ('CFITSIO', '4.3.1'), ('WCSLIB', '7.11'), ('GLib', '2.78.1'), - # needed are libcasa-casa4, casacore-dev, casacore-data, casacore-tools, not sure if this provides all? + # needed are libcasa-casa4, casacore-dev, casacore-data, casacore-tools, which should be provided by casacore ('casacore', '3.5.0'), ] From 27ad81dae682cecde6fc18a510fdcc727d22963e Mon Sep 17 00:00:00 2001 From: Caspar van Leeuwen Date: Tue, 21 Oct 2025 10:54:30 +0200 Subject: [PATCH 27/27] Add modloadmsg with instructions for setting OMP_NUM_THREADS, OPENBLAS_NUM_THREADS, and optionally unsetting all SLURM env. We don't want the module to do this for us, as setting OMP_NUM_THREADS=1 and OPENBLAS_NUM_THREADS=1 might cripple other codes without the user noticing, hence the user should set them manually so they are aware --- easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb b/easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb index 549f113ec6e1..7dcf44ff1b8b 100644 --- a/easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb +++ b/easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb @@ -107,4 +107,10 @@ exts_list = [ }), ] +modloadmsg = """ +Certain components of LINC (e.g. DP3) do not support a multithreaded BLAS. You may need to set OMP_NUM_THREADS=1 and +OPENBLAS_NUM_THREADS=1. If you're running the pipeline within a SLURM environment, you may need to clear all SLURM +environment variables from your environment (e.g. using 'for i in $(env | grep SLURM); do unset "${i%=*}"; done'). +""" + moduleclass = 'astro'