diff --git a/easybuild/easyconfigs/e/ecCodes/ecCodes-2.38.3-gompi-2024a.eb b/easybuild/easyconfigs/e/ecCodes/ecCodes-2.38.3-gompi-2024a.eb new file mode 100644 index 000000000000..2aa0915ea2e5 --- /dev/null +++ b/easybuild/easyconfigs/e/ecCodes/ecCodes-2.38.3-gompi-2024a.eb @@ -0,0 +1,46 @@ +easyblock = 'CMakeMake' + +name = 'ecCodes' +version = '2.38.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': 'gompi', 'version': '2024a'} +toolchainopts = {'usempi': False} + +source_urls = ['https://github.com/ecmwf/eccodes/archive/refs/tags/'] +sources = [{'download_filename': '%(version)s.tar.gz', 'filename': '%(namelower)s-%(version)s.tar.gz'}] +checksums = ['2f13adc4fbdfa3ea11f75ce4ed8937bf40a8fcedd760a519b15e4e17dedc9424'] + +builddependencies = [ + ('CMake', '3.29.3'), + ('ecBuild', '3.8.5'), +] +dependencies = [ + ('netCDF', '4.9.2'), + ('JasPer', '4.2.4'), + ('libjpeg-turbo', '3.0.1'), + ('libpng', '1.6.43'), + ('zlib', '1.3.1'), + ('libaec', '1.1.3'), +] + +# Python bindings are provided by a separate package 'eccodes-python' +configopts = "-DENABLE_NETCDF=ON -DENABLE_PNG=ON -DENABLE_PYTHON=OFF -DENABLE_JPG=ON " +configopts += "-DENABLE_JPG_LIBJASPER=ON -DENABLE_ECCODES_THREADS=ON" + + +sanity_check_paths = { + 'files': ['bin/bufr_compare', 'bin/bufr_copy', 'bin/bufr_dump', 'bin/bufr_filter', 'bin/bufr_get', 'bin/bufr_ls', + 'bin/grib_compare', 'bin/grib_copy', 'bin/grib_dump', 'bin/grib_filter', 'bin/grib_get', 'bin/grib_ls', + 'bin/gts_compare', 'bin/gts_copy', 'bin/gts_dump', 'bin/gts_filter', 'bin/gts_get', 'bin/gts_ls', + 'bin/metar_compare', 'bin/metar_copy', 'bin/metar_dump', 'bin/metar_filter', 'bin/metar_get', + 'bin/metar_ls', 'bin/codes_count', 'bin/codes_info', 'bin/codes_split_file', + 'lib/libeccodes_f90.%s' % SHLIB_EXT, 'lib/libeccodes.%s' % SHLIB_EXT], + 'dirs': ['include'], +} + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/l/libaec/libaec-1.1.3-GCCcore-13.3.0.eb b/easybuild/easyconfigs/l/libaec/libaec-1.1.3-GCCcore-13.3.0.eb new file mode 100644 index 000000000000..267acc5aa3d4 --- /dev/null +++ b/easybuild/easyconfigs/l/libaec/libaec-1.1.3-GCCcore-13.3.0.eb @@ -0,0 +1,36 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +# Author: Denis Kristak +easyblock = 'CMakeMake' + +name = 'libaec' +version = '1.1.3' + +homepage = 'https://gitlab.dkrz.de/k202009/libaec' +description = """Libaec provides fast lossless compression of 1 up to 32 bit wide signed or unsigned integers +(samples). The library achieves best results for low entropy data as often encountered in space imaging +instrument data or numerical model output from weather or climate simulations. While floating point representations +are not directly supported, they can also be efficiently coded by grouping exponents and mantissa.""" + +toolchain = {'name': 'GCCcore', 'version': '13.3.0'} + +source_urls = ['https://gitlab.dkrz.de/k202009/%(namelower)s/-/archive/v%(version)s'] +sources = [SOURCELOWER_TAR_GZ] +patches = ["libaec-1.1.3_install_binary.patch"] + +checksums = ['453de44eb6ea2500843a4cf4d2e97d1be251d2df7beae6c2ebe374edcb11e378', + '52fcdeacd9c27108dffafd8109012902fa63fb2e39803670a3ba16f313628f4c'] + +builddependencies = [ + ('CMake', '3.29.3'), + ('binutils', '2.42'), +] + +sanity_check_paths = { + 'files': ['bin/graec', 'include/%(name)s.h', 'include/szlib.h', + 'lib/libaec.a', 'lib/libaec.%s' % SHLIB_EXT], + 'dirs': [], +} + +sanity_check_commands = ['graec --help'] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/l/libaec/libaec-1.1.3_install_binary.patch b/easybuild/easyconfigs/l/libaec/libaec-1.1.3_install_binary.patch new file mode 100644 index 000000000000..29d7f8e0c7b0 --- /dev/null +++ b/easybuild/easyconfigs/l/libaec/libaec-1.1.3_install_binary.patch @@ -0,0 +1,11 @@ +# The binary is not installed by default which caused the sanity check to fail +# @author Stefan Wolfsheimer, SURF + +diff -uNr libaec-v1.1.3.orig/src/CMakeLists.txt libaec-v1.1.3/src/CMakeLists.txt +--- libaec-v1.1.3.orig/src/CMakeLists.txt 2024-11-15 14:21:05.177185441 +0100 ++++ libaec-v1.1.3/src/CMakeLists.txt 2024-11-15 14:21:39.702841450 +0100 +@@ -76,3 +76,4 @@ + COMPILE_DEFINITIONS "${libaec_COMPILE_DEFINITIONS}") + + install(TARGETS aec_static aec_shared sz_static sz_shared) ++install(TARGETS graec RUNTIME DESTINATION bin)