Skip to content

Commit 1302b91

Browse files
Sync
1 parent 01c1778 commit 1302b91

File tree

95 files changed

+4044
-121
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

95 files changed

+4044
-121
lines changed

Custom_EasyBlocks/generic/bundle.py

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
import easybuild.tools.environment as env
4141
from easybuild.framework.easyblock import EasyBlock
4242
from easybuild.framework.easyconfig import CUSTOM
43+
from easybuild.framework.easyconfig.default import DEFAULT_CONFIG
4344
from easybuild.framework.easyconfig.easyconfig import get_easyblock_class
4445
from easybuild.tools.build_log import EasyBuildError, print_msg
4546
from easybuild.tools.modules import get_software_root, get_software_version
@@ -121,8 +122,21 @@ def __init__(self, *args, **kwargs):
121122
comp_cfg['name'] = comp_name
122123
comp_cfg['version'] = comp_version
123124

125+
# The copy above may include unexpected settings for common values.
126+
# In particular for a Pythonbundle we have seen a component inheriting
127+
# runtest = True
128+
# which is not a valid value for many easyblocks.
129+
# Reset runtest to the original default, if people want the test step
130+
# they can set it explicitly, in default_component_specs or by the component easyblock
131+
if comp_cfg._config['runtest'] != DEFAULT_CONFIG["runtest"]:
132+
self.log.warning(
133+
"Resetting runtest to default value for component easyblock "
134+
f"(from {comp_cfg._config['runtest']})."
135+
)
136+
comp_cfg._config['runtest'] = DEFAULT_CONFIG["runtest"]
137+
124138
# determine easyblock to use for this component
125-
# - if an easyblock is specified explicitely, that will be used
139+
# - if an easyblock is specified explicitly, that will be used
126140
# - if not, a software-specific easyblock will be considered by get_easyblock_class
127141
# - if no easyblock was found, default_easyblock is considered
128142
comp_easyblock = comp_specs.get('easyblock')
@@ -300,7 +314,7 @@ def install_step(self):
300314
self.comp_cfgs_sanity_check.append(comp)
301315

302316
# run relevant steps
303-
for step_name in ['patch', 'configure', 'build', 'install']:
317+
for step_name in ['patch', 'configure', 'build', 'test', 'install']:
304318
if step_name in cfg['skipsteps']:
305319
comp.log.info("Skipping '%s' step for component %s v%s", step_name, cfg['name'], cfg['version'])
306320
else:

Golden_Repo/a/Ascent/Ascent-20250201-GCCcore-13.3.0-nompi.eb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ local_commit = 'a5d12ce60eafc87cfbe0125c8a85fd0815ea651d'
99

1010
homepage = 'https://ascent.readthedocs.io'
1111
description = """
12-
Ascent is a many-core capable flyweight in situ visualization
12+
Ascent is a many-core capable flyweight in-situ visualization
1313
and analysis infrastructure for multi-physics HPC simulations.
1414
"""
1515

Golden_Repo/a/Ascent/Ascent-20250201-gompi-2024a.eb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ builddependencies = [
2626

2727
dependencies = [
2828
('Python', '3.12.3'),
29+
('mpi4py', '4.0.1'), # for mpi-support in Python
30+
('SciPy-bundle', '2024.05', '', ('gcccoreflexiblas', '13.3.0-3.4.4')), # numpy needed for mpi-support in Python
2931
('Conduit', '0.9.3'),
3032
('camp', '2024.07.0'),
3133
('RAJA', '2024.07.0'),

Golden_Repo/a/Ascent/Ascent-20250201-gpsmpi-2024a.eb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ builddependencies = [
2626

2727
dependencies = [
2828
('Python', '3.12.3'),
29+
('mpi4py', '4.0.1'), # for mpi-support in Python
30+
('SciPy-bundle', '2024.05', '', ('gcccoreflexiblas', '13.3.0-3.4.4')), # numpy needed for mpi-support in Python
2931
('Conduit', '0.9.3'),
3032
('camp', '2024.07.0'),
3133
('RAJA', '2024.07.0'),
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# This file is part of JSC's public easybuild repository (https://github.com/easybuilders/jsc)
2+
easyblock = 'EB_Boost'
3+
4+
name = 'Boost.Python'
5+
version = '1.86.0'
6+
7+
homepage = 'https://boostorg.github.io/python'
8+
description = """Boost.Python is a C++ library which enables seamless interoperability between C++
9+
and the Python programming language."""
10+
11+
toolchain = {'name': 'GCCcore', 'version': '13.3.0'}
12+
toolchainopts = {'pic': True}
13+
14+
source_urls = ['https://archives.boost.io/release/%(version)s/source/']
15+
sources = ['boost_%s.tar.gz' % '_'.join(version.split('.'))]
16+
checksums = ['2575e74ffc3ef1cd0babac2c1ee8bdb5782a0ee672b1912da40e5b4b591ca01f']
17+
18+
dependencies = [
19+
('binutils', '2.42'),
20+
('Boost', version),
21+
('Python', '3.12.3'),
22+
]
23+
24+
only_python_bindings = True
25+
26+
moduleclass = 'lib'
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
# This file is part of JSC's public easybuild repository (https://github.com/easybuilders/jsc)
2+
# easyconfig file for Code_Saturne
3+
name = 'Code_Saturne'
4+
version = '8.0.2'
5+
6+
# extra option for the SLURM batch system
7+
# debug = False
8+
slurm = True
9+
10+
homepage = 'https://www.code-saturne.org'
11+
description = """
12+
Code_saturne is the free, open-source software developed to analyze CFD applications.
13+
It solves the Navier-Stokes equations for 2D, 2D-axisymmetric and 3D flows, steady or
14+
unsteady, laminar or turbulent, incompressible or weakly dilatable, isothermal or not,
15+
with scalar transport.
16+
17+
Code_Saturne %(version)s%(versionsuffix)s is installed in
18+
$EBROOTCODE_SATURNE
19+
"""
20+
21+
toolchain = {'name': 'gompi', 'version': '2024a'}
22+
toolchainopts = {'optarch': True, 'pic': True, 'usempi': True}
23+
24+
source_urls = ['https://github.com/code-saturne/code_saturne/archive/refs/tags/']
25+
sources = ['v%(version)s.tar.gz']
26+
patches = [
27+
'code_saturne-8.0.2-integer.patch',
28+
]
29+
30+
checksums = [
31+
'911ec01e1bce3937ebb811622788a5671cd171b4411b5db2d66b02f00da6e90f', # v8.0.2.tar.gz
32+
'5c3bb622b3e0b54ab06f23b21b7fbec0bcd82a7b70d623128a8d8c4e0092236b', # code_saturne-8.0.2-integer.patch
33+
]
34+
35+
builddependencies = [
36+
('Autotools', '20231222'),
37+
('gettext', '0.22.5'),
38+
('Bison', '3.8.2'),
39+
('flex', '2.6.4'),
40+
('texlive', '20240312'),
41+
('Doxygen', '1.11.0'),
42+
]
43+
44+
dependencies = [
45+
('Python', '3.12.3'),
46+
('HDF5', '1.14.5'),
47+
('CGNS', '4.4.0'),
48+
('ParMETIS', '4.0.3'),
49+
('SCOTCH', '7.0.5'),
50+
('MED', '4.1.1'),
51+
]
52+
53+
configopts = ' '
54+
configopts += '--disable-gui '
55+
configopts += '--with-med=$EBROOTMED --without-medcoupling '
56+
configopts += '--with-cgns=$EBROOTCGNS '
57+
configopts += '--with-metis=$EBROOTPARMETIS '
58+
configopts += '--with-scotch=$EBROOTSCOTCH '
59+
configopts += '--with-python_prefix=%(installdir)s --with-python_exec_prefix=%(installdir)s '
60+
61+
modloadmsg = "=========================================================================\n"
62+
modloadmsg += "NOTE: To benefit from shell completion for %(name)s commands/options\n"
63+
modloadmsg += "you may also source a bash completion file by\n"
64+
modloadmsg += "> source $CS_BASH\n"
65+
modloadmsg += "Job submission needs a compute project activated by jutil\n"
66+
modloadmsg += "> jutil env activate -p <project> [-A <budget>]\n"
67+
modloadmsg += "=========================================================================\n"
68+
69+
moduleclass = 'cae'
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
diff -ruN code_saturne-8.0.2-orig/python/code_saturne/gui/case/BatchRunningDialogView.py code_saturne-8.0.2/python/code_saturne/gui/case/BatchRunningDialogView.py
2+
--- code_saturne-8.0.2-orig/python/code_saturne/gui/case/BatchRunningDialogView.py 2023-10-10 14:27:21.000000000 +0200
3+
+++ code_saturne-8.0.2/python/code_saturne/gui/case/BatchRunningDialogView.py 2023-10-26 12:29:09.221361301 +0200
4+
@@ -970,10 +970,10 @@
5+
seconds = job_walltime
6+
minutes = seconds / 60
7+
hours = minutes / 60
8+
- days = hours / 24
9+
- seconds = seconds % 60
10+
- minutes = minutes % 60
11+
- hours = hours % 24
12+
+ days = int(hours / 24)
13+
+ seconds = int(seconds % 60)
14+
+ minutes = int(minutes % 60)
15+
+ hours = int(hours % 24)
16+
self.spinBoxDays.setValue(days)
17+
self.spinBoxHours.setValue(hours)
18+
self.spinBoxMinutes.setValue(minutes)
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
# This file is part of JSC's public easybuild repository (https://github.com/easybuilders/jsc)
2+
easyblock = 'CMakeMake'
3+
4+
name = 'casacore'
5+
version = '3.7.1'
6+
7+
homepage = 'https://github.com/casacore/casacore'
8+
description = """A suite of C++ libraries for radio astronomy data processing."""
9+
10+
toolchain = {'name': 'foss', 'version': '2024a'}
11+
12+
sources = [
13+
{
14+
'filename': 'v%(version)s.tar.gz',
15+
'source_urls': ['https://github.com/%(name)s/%(name)s/archive'],
16+
},
17+
{
18+
# Note: when updating this easyconfig, check the latest WSRT_Measures tarball on the FTP and update to that
19+
'filename': 'WSRT_Measures_20250911-160001.ztar',
20+
'source_urls': ['ftp://[email protected]/outgoing/Measures'],
21+
'extract_cmd': 'tar xfvz %s --one-top-level=data',
22+
}
23+
]
24+
checksums = [
25+
{'v3.7.1.tar.gz': 'ad7ad865d5d8517524bdde71e0083a69442648b693850660dadb0ce6109d91c7'},
26+
{'WSRT_Measures_20250911-160001.ztar': 'db03d79799e9e3dc67f0d17cf5dc3c2e97c6979d61ee167f88e820b732297f17'},
27+
]
28+
29+
builddependencies = [
30+
('CMake', '3.30.3'),
31+
('flex', '2.6.4'),
32+
('Bison', '3.8.2'),
33+
('wget', '1.25.0'),
34+
]
35+
dependencies = [
36+
('CFITSIO', '4.4.1'),
37+
('WCSLIB', '8.4'),
38+
('HDF5', '1.14.5'),
39+
('GSL', '2.8'),
40+
('Boost.Python', '1.86.0'),
41+
('SciPy-bundle', '2024.05', '', ('gcccoreflexiblas', '13.3.0-3.4.4')),
42+
('ncurses', '6.5'),
43+
]
44+
45+
configopts = '-DBUILD_PYTHON=NO -DBUILD_PYTHON3=YES -Wno-dev -DCXX11="ON" '
46+
configopts += '-DDATA_DIR=%(installdir)s/data -DUSE_OPENMP=ON -DUSE_HDF5=ON '
47+
configopts += '-DUSE_MPI=ON '
48+
49+
postinstallcmds = ['cp -r %(builddir)s/data %(installdir)s']
50+
51+
sanity_check_paths = {
52+
'files': [
53+
'lib/libcasa_casa.%s' % SHLIB_EXT,
54+
'lib/libcasa_mirlib.%s' % SHLIB_EXT,
55+
'lib/libcasa_ms.%s' % SHLIB_EXT,
56+
],
57+
'dirs': ['bin', 'include/%(name)s', 'data/ephemerides', 'data/geodetic'],
58+
}
59+
60+
sanity_check_commands = [('measuresdata', '')]
61+
62+
moduleclass = 'lib'

Golden_Repo/e/ESMF/ESMF-8.7.0-foss-2024a.eb

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,19 @@ dependencies = [
2727
('libarchive', '3.7.4'),
2828
]
2929

30+
# ESMF ignores xxFLAGS
31+
preconfigopts = 'export ESMF_BOPT="O" && '
32+
preconfigopts += 'export ESMF_OPTLEVEL="2" && '
33+
preconfigopts += 'export ESMF_PNETCDF="standard && '
34+
preconfigopts += 'export ESMF_PNETCDF_INCLUDE=$EBROOTPNETCDF/include && '
35+
preconfigopts += 'export ESMF_PNETCDF_LIBPATH=$EBROOTPNETCDF/lib && '
36+
preconfigopts += 'export ESMF_PNETCDF_LIBS=-lpnetcdf && '
37+
38+
preinstallopts = 'export ESMF_NETCDF_LIBS="$ESMF_NETCDF_LIBS -L${PNETCDF}/lib -lpnetcdf" &&'
39+
preinstallopts += 'export ESMF_PNETCDF_INCLUDE=$EBROOTPNETCDF/include && '
40+
preinstallopts += 'export ESMF_PNETCDF_LIBPATH=$EBROOTPNETCDF/lib && '
41+
preinstallopts += 'export ESMF_PNETCDF_LIBS=-lpnetcdf && '
42+
3043
# disable errors from GCC 10 on mismatches between actual and dummy argument lists (GCC 9 behaviour)
3144
prebuildopts = 'ESMF_F90COMPILEOPTS="${ESMF_F90COMPILEOPTS} -fallow-argument-mismatch"'
3245

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# This file is part of JSC's public easybuild repository (https://github.com/easybuilders/jsc)
2+
easyblock = 'PythonPackage'
3+
4+
name = 'heat'
5+
version = '1.6.0'
6+
7+
homepage = 'https://github.com/helmholtz-analytics/heat'
8+
description = """
9+
Heat builds on PyTorch and mpi4py to provide high-performance computing infrastructure for
10+
memory-intensive applications within the NumPy/SciPy ecosystem.
11+
"""
12+
13+
toolchain = {'name': 'gompi', 'version': '2024a'}
14+
15+
source_urls = ['https://pypi.python.org/packages/source/h/%(name)s']
16+
sources = [SOURCELOWER_TAR_GZ]
17+
patches = ['heat-1.6.0-license-fix.patch']
18+
checksums = [
19+
{'%(name)s-%(version)s.tar.gz': 'cd011e67c284b7f94d0f1c6ff8bf5309535fa26a895b0db2df83290c47dae55b'},
20+
{'heat-1.6.0-license-fix.patch': 'fd45ba7e5761209f6a7e0fbd28dabf5b82fb1e0db78e3fa1596de2f4df2bf016'},
21+
]
22+
23+
dependencies = [
24+
('Python', '3.12.3'),
25+
('PyTorch', '2.5.1', '', ('gcccoreflexiblas', '13.3.0-3.4.4')),
26+
('torchvision', '0.20.1', '', ('gcccoreflexiblas', '13.3.0-3.4.4')),
27+
('SciPy-bundle', '2024.05', '', ('gcccoreflexiblas', '13.3.0-3.4.4')),
28+
('Pillow-SIMD', '10.4.0'),
29+
('mpi4py', '4.0.1'),
30+
]
31+
32+
use_pip = True
33+
sanity_pip_check = True
34+
35+
download_dep_fail = True
36+
37+
sanity_check_paths = {
38+
'files': [],
39+
'dirs': ['lib/python%(pyshortver)s/site-packages/heat']
40+
}
41+
42+
# `import heat` requires a valid MPI environment and an accessible CUDA device.
43+
# Hence, a sanity_check will fail in most of our build environments
44+
skipsteps = ['sanitycheck']
45+
46+
moduleclass = 'lib'

0 commit comments

Comments
 (0)