Skip to content

Commit

Permalink
Merge pull request #2 from marsdeno/feature/ecmwf_open_source_package…
Browse files Browse the repository at this point in the history
…s_intel2024a

The tests that are failing are safe to be ignored for the moment
They include : 
- lack of custom sanity checks on some recipes : can be added later
- recipes for versions of some dependencies required by IFS, which don't much upstream versions for 2024a toolchains
  • Loading branch information
marsdeno authored Mar 7, 2025
2 parents 61e8cb1 + 61068ea commit 3d64f0e
Show file tree
Hide file tree
Showing 17 changed files with 1,018 additions and 1 deletion.
4 changes: 3 additions & 1 deletion .github/workflows/unit_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,9 @@ jobs:
cd easybuild-framework; git log -n 1; cd -
pip install $PWD/easybuild-framework
git clone -b $BRANCH --depth 10 --single-branch https://github.com/easybuilders/easybuild-easyblocks.git
BRANCH=develop;
#git clone -b $BRANCH --depth 10 --single-branch https://github.com/easybuilders/easybuild-easyblocks.git
git clone -b $BRANCH --depth 10 --single-branch https://github.com/ecmwf-ifs/easybuild-easyblocks.git
cd easybuild-easyblocks; git log -n 1; cd -
pip install $PWD/easybuild-easyblocks
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
easyblock = 'EcbuildMake'

name = 'bufrdc_emoslib'
version = '4.6.7'

homepage = ' ... '
description = """I don't know ..."""

toolchain = {'name': 'iimpi', 'version': '2024a'}

sources = [{
'filename': 'bufrdc_emoslib.tar.gz',
'git_config': {
'url': 'ssh://[email protected]/mars',
'repo_name': 'bufrdc_emoslib',
'tag': '%(version)s',
},
}]
checksums = ['f21956221625dbad930382101142865029e296679b02e58628f0781f9b6155e0']

builddependencies = [
('CMake', '3.29.3'),
('ecBuild', '3.8.5'),
]

configopts = "-DBUFR_TABLES_PATH=${INSTALL_DIR}/share/bufrdc_tables/ "


moduleclass = 'phys'
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
easyblock = 'EcbuildMake'

name = 'bufrdc_tables'
version = '000424'

homepage = ' ... '
description = """I don't know ..."""

toolchain = {'name': 'iimpi', 'version': '2024a'}

sources = [{
'filename': 'bufrdc_tables.tar.gz',
'git_config': {
'url': 'ssh://[email protected]/mars',
'repo_name': 'bufrdc_tables',
'tag': '%(version)s',
},
}]
checksums = ['b191757285579579ed0c03fd22f8d77ad9c6e67ca65217c3f5edab97b14c5a43']

builddependencies = [
('CMake', '3.29.3'),
('ecBuild', '3.8.5'),
]

configopts = ""

sanity_check_paths = {
'files': [],
'dirs': ['lib'],
}

moduleclass = 'phys'
44 changes: 44 additions & 0 deletions easybuild/easyconfigs/e/ecBuild/ecBuild-3.8.5.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
easyblock = 'Tarball'

name = 'ecBuild'
version = '3.8.5'

homepage = 'https://github.com/ecmwf/ecbuild'

description = """
ecbuild, the ECMWF-specific CMake obfuscation.
"""

toolchain = SYSTEM

github_account = 'ecmwf'
sources = [
{
'source_urls': [GITHUB_SOURCE],
'filename': '%(version)s.tar.gz',
'extract_cmd': 'tar -xzf %s --strip-components=1',
},
]
checksums = ['aa0c44cab0fffec4c0b3542e91ebcc736b3d41b68a068d30c023ec0df5f93425']

buildininstalldir = True

skipsteps = ['install']

sanity_check_paths = {
'files': ['bin/ecbuild', 'cmake/ecbuild-config.cmake'],
'dirs': ['bin', 'lib', 'share', 'cmake'],
}

modextrapaths = {
'PATH': 'bin',
}

modextravars = {
'ecbuild_DIR': '%(installdir)s',
'ECBUILD_DIR': '%(installdir)s',
'ECBUILD_VERSION': '%(version)s',
}


moduleclass = 'tools'
55 changes: 55 additions & 0 deletions easybuild/easyconfigs/e/ecCodes/ecCodes-2.36.3-iimpi-2024a.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
easyblock = 'CMakeMake'

name = 'ecCodes'
version = '2.36.3'

homepage = 'https://software.ecmwf.int/wiki/display/ECC/ecCodes+Home'
description = """ecCodes is a package developed by ECMWF which provides an application programming interface and
a set of tools for decoding and encoding messages in the following formats: WMO FM-92 GRIB edition 1 and edition 2,
WMO FM-94 BUFR edition 3 and edition 4, WMO GTS abbreviated header (only decoding)."""

toolchain = {'name': 'iimpi', 'version': '2024a'}
toolchainopts = {'usempi': False}

source_urls = ['https://github.com/ecmwf/eccodes/archive/refs/tags/']
sources = ['%(version)s.tar.gz']
checksums = ['2f9eb83ebdb0bf490b183bcaa861073c8a5f6f682baf190a1e4888ecaf4c0d4b']


builddependencies = [
('ecBuild', '3.8.5', '', SYSTEM),
('CMake', '3.29.3')
]

dependencies = [
('netCDF', '4.9.2'),
('libaec', '1.1.3'),
('JasPer', '4.2.4'),
('libjpeg-turbo', '3.0.1'),
('libpng', '1.6.43'),
('zlib', '1.3.1'),
]

# Python bindings are provided by a separate package 'eccodes-python'
configopts = "-DENABLE_ECCODES_THREADS=ON -DENABLE_NETCDF=OFF "
configopts += "-DENABLE_FORTRAN=ON -DENABLE_MEMFS=ON "
configopts += "-DINSTALL_EXTRA_TOOLS=ON -DENABLE_AEC=ON -DENABLE_JPG_LIBOPENJPEG=OFF"

local_exes = ['%s_%s' % (a, b)
for a in ['bufr', 'grib', 'gts', 'metar']
for b in ['compare', 'copy', 'dump', 'filter', 'get', 'ls']]
local_exes += ['codes_%s' % c for c in ['count', 'info', 'split_file']]

sanity_check_paths = {
'files': ['bin/%s' % x for x in local_exes] +
['lib/libeccodes_f90.%s' % SHLIB_EXT, 'lib/libeccodes.%s' % SHLIB_EXT],
'dirs': ['include'],
}

modextravars = {
'ECCODES_LIBRARIES': 'eccodes;eccodes_f90',
'ECCODES_INCLUDE_DIRS': '%(installdir)s/include',
'eccodes_DIR': '%(installdir)s',
}

moduleclass = 'tools'
54 changes: 54 additions & 0 deletions easybuild/easyconfigs/e/eckit/eckit-1.28.0-iimpi-2024a.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
easyblock = 'EcbuildMake'

name = 'eckit'
version = '1.28.0'

homepage = 'https://software.ecmwf.int/wiki/display/ECKIT'
description = """ecKit is a cross-platform c++ toolkit that supports development of tools and applications at ECMWF.
It is based on code developed over the last 20 years within the MARS software and was re-factored out to be reused
by other applications.
It provides a an abstraction layer on top of the operating system, so it is easier to port code to new architectures.
It is developed taking into account the robustness requirements of running production systems at ECMWF.
The main focus is UNIX/POSIX systems, and it has been thoroughly tested on AIX, Linux and Mac OSX.
Historically, the code base pre-dates and in some way can be seen as a leaner substitute for some 'Boost' libraries."""

toolchain = {'name': 'iimpi', 'version': '2024a'}

sources = [{
'filename': 'eckit_%(version)s.tar.gz',
'git_config': {
'url': 'ssh://[email protected]/ecsdk',
'repo_name': 'eckit',
'tag': '%(version)s',
},
}]
patches = [
('eckit_ncurses.patch', 0),
]
checksums = [
{'eckit_1.28.0.tar.gz': 'e5bd6ac502e6d488bb1f7936c0a0ec76bf4569ec4cfa42bb716a3ad52b8d79e3'},
{'eckit_ncurses.patch': '85ea42e0ec5653fae6fbeda5b69eef3865ca25feee2f7b6d973449b02ba23a7a'},
]

builddependencies = [
('CMake', '3.29.3'),
('ecBuild', '3.8.5'),
]

dependencies = [
('ncurses', '6.5'),
('Bison', '3.8.2'),
('flex', '2.6.4'),
]

configopts = "-DENABLE_XXHASH=OFF "
configopts += "-DENABLE_VIENNACL=OFF "
configopts += "-DENABLE_EIGEN=OFF "
configopts += "-DENABLE_ARMADILLO=OFF "
configopts += "-DENABLE_CUDA=OFF "
configopts += "-DENABLE_SANDBOX=OFF "
configopts += "-DENABLE_MKL=OFF "
configopts += "-DENABLE_LAPACK=OFF "
configopts += "-DENABLE_MPI=ON "

moduleclass = 'tools'
9 changes: 9 additions & 0 deletions easybuild/easyconfigs/e/eckit/eckit_ncurses.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
--- src/eckit/cmd/CMakeLists.txt 2023-03-17 09:41:19.000000000 +0000
+++ src/eckit/cmd/CMakeLists.txt 2023-03-17 09:46:15.000000000 +0000
@@ -86,5 +86,4 @@
SOURCES ${eckit_cmd_srcs}
HEADER_DESTINATION ${INSTALL_INCLUDE_DIR}/eckit/cmd
PRIVATE_INCLUDES ${CURSES_INCLUDE_DIR}
- PRIVATE_LIBS ${CURSES_LIBRARIES}
- PUBLIC_LIBS eckit )
+ PUBLIC_LIBS eckit ${CURSES_LIBRARIES})
27 changes: 27 additions & 0 deletions easybuild/easyconfigs/f/FCM/FCM-2021.05.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
##
# Author: Robert Mijakovic <[email protected]>
##
easyblock = 'Tarball'

name = 'FCM'
version = '2021.05.0'

homepage = 'https://github.com/metomi/fcm'
description = "Fortran Build Systen"

toolchain = SYSTEM

source_urls = ['https://github.com/metomi/fcm/archive/refs/tags/']
sources = ['%(version)s.tar.gz']
checksums = ['b4178b488470aa391f29b46d19bd6395ace42ea06cb9678cabbd4604b46f56cd']

sanity_check_paths = {
'files': ['bin/fcm'],
'dirs': ['bin', 'lib']
}

modextravars = {
'FCM_EXECUTABLE': '%(installdir)s/bin/fcm',
}

moduleclass = 'devel'
34 changes: 34 additions & 0 deletions easybuild/easyconfigs/f/FDB/FDB-5.13.0-iimpi-2024a.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
easyblock = 'EcbuildMake'

name = 'FDB'
version = '5.13.0'

homepage = ' ... '
description = """fdb5 is the best thing this side of fdb4 """

toolchain = {'name': 'iimpi', 'version': '2024a'}

sources = [{
'filename': 'fdb5_%(version)s.tar.gz',
'git_config': {
'url': 'ssh://[email protected]/mars',
'repo_name': 'fdb5',
'tag': '%(version)s',
},
}]
checksums = ['03af73fc4328f6bc67cb5b6f586b1a15c636a085182934ed94352f8bd03d18dd']

builddependencies = [
('CMake', '3.29.3'),
('ecBuild', '3.8.5', '', SYSTEM),
('ncurses', '6.5'),
]

dependencies = [
('eckit', '1.28.0'),
('metkit', '1.11.19'),
]

configopts = "-DENABLE_FDB_REMOTE=OFF -DENABLE_FDB_TOOLS=OFF "

moduleclass = 'phys'
41 changes: 41 additions & 0 deletions easybuild/easyconfigs/f/fckit/fckit-0.13.2-iimpi-2024a.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
easyblock = 'EcbuildMake'

name = 'fckit'
version = '0.13.2'

homepage = 'https://software.ecmwf.int/wiki/display/FCKIT'
description = """fcKit is a fortran interface to a subsection of ecKit ..."""

toolchain = {'name': 'iimpi', 'version': '2024a'}

sources = [{
'filename': 'fckit_%(version)s.tar.gz',
'git_config': {
'url': 'ssh://[email protected]/ecsdk',
'repo_name': 'fckit',
'tag': '%(version)s',
},
}]
patches = [
('fckit_fypp.patch', 1),
]
checksums = [
{'fckit_0.13.2.tar.gz': 'f826803d1f168869ec7c4a64155928215b54b2706a0de1caf9991a473ec5cce4'},
{'fckit_fypp.patch': 'b94bcc27582981c22772546ea89f8c03850bd369c52fd88cdff2521040745533'},
]

builddependencies = [
('CMake', '3.29.3'),
('ecBuild', '3.8.5'),
]

dependencies = [
('eckit', '1.28.0'),
('Python', '3.11.5'),
]

configopts = "-DENABLE_FINAL=OFF "
configopts += "-DENABLE_FCKIT_VENV=ON "


moduleclass = 'tools'
Loading

0 comments on commit 3d64f0e

Please sign in to comment.