diff --git a/c/CMake/CMake-3.30.5-acfl-24.10.eb b/c/CMake/CMake-3.30.5-acfl-24.10.eb new file mode 100644 index 00000000..cfd0b99b --- /dev/null +++ b/c/CMake/CMake-3.30.5-acfl-24.10.eb @@ -0,0 +1,35 @@ +# IT4Innovatiions +# LK 2024 + +name = 'CMake' +version = '3.30.5' +versionsuffix = '-acfl-24.10' + +homepage = 'https://www.cmake.org' + +description = """ + CMake, the cross-platform, open-source build system. CMake is a family of + tools designed to build, test and package software. +""" + +toolchain = {'name': 'GCCcore', 'version': '14.2.0'} + +source_urls = ['https://www.cmake.org/files/v%(version_major_minor)s'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['9f55e1a40508f2f29b7e065fa08c29f82c402fa0402da839fffe64a25755a86d'] + +builddependencies = [ + ('binutils', '2.42'), +] + +dependencies = [ + ('acfl', '24.10', '', True), + ('ncurses', '6.5'), + ('zlib', '1.3.1'), + ('bzip2', '1.0.8'), + ('cURL', '8.7.1'), + ('libarchive', '3.7.4'), +# ('OpenSSL', '3', '', SYSTEM), +] + +moduleclass = 'devel' diff --git a/d/Doxygen/Doxygen-1.11.0-GCCcore-14.2.0.eb b/d/Doxygen/Doxygen-1.11.0-GCCcore-14.2.0.eb new file mode 100644 index 00000000..9b268940 --- /dev/null +++ b/d/Doxygen/Doxygen-1.11.0-GCCcore-14.2.0.eb @@ -0,0 +1,44 @@ +# IT4Innovations +# LK 2024 + +easyblock = 'CMakeMake' + +name = 'Doxygen' +version = '1.11.0' + +homepage = 'https://www.doxygen.org' +description = """ + Doxygen is a documentation system for C++, C, Java, Objective-C, Python, + IDL (Corba and Microsoft flavors), Fortran, VHDL, PHP, C#, and to some + extent D. +""" + +toolchain = {'name': 'GCCcore', 'version': '14.2.0'} + +source_urls = [SOURCEFORGE_SOURCE] +sources = ['%(namelower)s-%(version)s.src.tar.gz'] +checksums = ['c9edfdf8c5f3e8bee0c4c967850caead27099883ee7ff8b11044e6d63faf3607'] + +builddependencies = [ + ('binutils', '2.42'), + ('Bison', '3.8.2'), + ('CMake', '3.30.5'), + ('flex', '2.6.4'), + ('pkgconf', '2.2.0'), + ('Python', '3.12.3'), +] + +dependencies = [ + ('libiconv', '1.17'), +] + +configopts = "-DICONV_DIR=$EBROOTLIBICONV -DICONV_IN_GLIBC=OFF" + +sanity_check_paths = { + 'files': ["bin/doxygen"], + 'dirs': [], +} + +sanity_check_commands = ["doxygen --help"] + +moduleclass = 'devel' diff --git a/g/gompi/gompi-2024it4i.eb b/g/gompi/gompi-2024it4i.eb new file mode 100644 index 00000000..9dfc16ff --- /dev/null +++ b/g/gompi/gompi-2024it4i.eb @@ -0,0 +1,23 @@ +# IT4Innovations +# LK 2024 + +easyblock = "Toolchain" + +name = 'gompi' +version = '2024it4i' + +homepage = '(none)' +description = """GNU Compiler Collection (GCC) based local_compiler toolchain, + including OpenMPI for MPI support.""" + +toolchain = SYSTEM + +local_gccver = '14.2.0' + +# local_compiler toolchain dependencies +dependencies = [ + ('GCC', local_gccver), # includes both GCC and local_binutils + ('OpenMPI', '5.0.5', '', ('GCC', local_gccver)), +] + +moduleclass = 'toolchain' diff --git a/g/gzip/gzip-1.13-GCCcore-14.2.0.eb b/g/gzip/gzip-1.13-GCCcore-14.2.0.eb new file mode 100644 index 00000000..b649354d --- /dev/null +++ b/g/gzip/gzip-1.13-GCCcore-14.2.0.eb @@ -0,0 +1,27 @@ +# IT4Innovations +# LK 2024 + +easyblock = 'ConfigureMake' + +name = 'gzip' +version = '1.13' + +homepage = 'https://www.gnu.org/software/gzip/' +description = "gzip (GNU zip) is a popular data compression program as a replacement for compress" + +toolchain = {'name': 'GCCcore', 'version': '14.2.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] +checksums = ['20fc818aeebae87cdbf209d35141ad9d3cf312b35a5e6be61bfcfbf9eddd212a'] + +builddependencies = [('binutils', '2.42')] + +sanity_check_paths = { + 'files': ["bin/gunzip", "bin/gzip", "bin/uncompress"], + 'dirs': [], +} + +sanity_check_commands = [True, ('gzip', '--version')] + +moduleclass = 'tools' diff --git a/h/HDF5/HDF5-1.14.5-gompi-2024it4i.eb b/h/HDF5/HDF5-1.14.5-gompi-2024it4i.eb new file mode 100644 index 00000000..2e4c0bf8 --- /dev/null +++ b/h/HDF5/HDF5-1.14.5-gompi-2024it4i.eb @@ -0,0 +1,30 @@ +# IT4Innovations +# LK 2024 + +name = 'HDF5' +version = '1.14.5' + +homepage = 'https://portal.hdfgroup.org/display/support' +description = """HDF5 is a data model, library, and file format for storing and managing data. + It supports an unlimited variety of datatypes, and is designed for flexible + and efficient I/O and for high volume and complex data.""" + +toolchain = {'name': 'gompi', 'version': '2024it4i'} +toolchainopts = {'pic': True, 'usempi': True} + +source_urls = ['https://github.com/HDFGroup/hdf5/archive/refs/tags/'] +sources = ['hdf5_1.14.5.tar.gz'] +checksums = ['c83996dc79080a34e7b5244a1d5ea076abfd642ec12d7c25388e2fdd81d26350'] + +import os +if os.environ.get("CLUSTERNAME") in ["KAROLINA"]: + toolchainopts = {'pic': True, 'usempi': True, 'optarch': 'march=core-avx2'} +else: + toolchainopts = {'pic': True, 'usempi': True} + +dependencies = [ + ('zlib', '1.3.1'), + ('Szip', '2.1.1'), +] + +moduleclass = 'data' diff --git a/l/libiconv/libiconv-1.17-GCCcore-14.2.0.eb b/l/libiconv/libiconv-1.17-GCCcore-14.2.0.eb new file mode 100644 index 00000000..9fbb83bb --- /dev/null +++ b/l/libiconv/libiconv-1.17-GCCcore-14.2.0.eb @@ -0,0 +1,26 @@ +# IT4Innovations +# LK 2024 + +easyblock = 'ConfigureMake' + +name = 'libiconv' +version = '1.17' + +homepage = 'https://www.gnu.org/software/libiconv' +description = "Libiconv converts from one character encoding to another through Unicode conversion" + +toolchain = {'name': 'GCCcore', 'version': '14.2.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] +checksums = ['8f74213b56238c85a50a5329f77e06198771e70dd9a739779f4c02f65d971313'] + +builddependencies = [('binutils', '2.42')] + +sanity_check_paths = { + 'files': ['bin/iconv', 'include/iconv.h', 'include/libcharset.h', 'include/localcharset.h', + 'lib/libcharset.a', 'lib/libcharset.%s' % SHLIB_EXT, 'lib/libiconv.%s' % SHLIB_EXT], + 'dirs': ['share'], +} + +moduleclass = 'lib' diff --git a/l/lz4/lz4-1.9.4-GCCcore-14.2.0.eb b/l/lz4/lz4-1.9.4-GCCcore-14.2.0.eb new file mode 100644 index 00000000..dc9b37a1 --- /dev/null +++ b/l/lz4/lz4-1.9.4-GCCcore-14.2.0.eb @@ -0,0 +1,33 @@ +# IT4Innovations +# LK 2024 + +easyblock = 'ConfigureMake' + +name = 'lz4' +version = '1.9.4' + +homepage = 'https://lz4.github.io/lz4/' +description = """LZ4 is lossless compression algorithm, providing compression speed at 400 MB/s per core. + It features an extremely fast decoder, with speed in multiple GB/s per core.""" + +toolchain = {'name': 'GCCcore', 'version': '14.2.0'} + +github_account = '%(name)s' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['0b0e3aa07c8c063ddf40b082bdf7e37a1562bda40a0ff5272957f3e987e0e54b'] + +builddependencies = [('binutils', '2.42')] + +skipsteps = ['configure'] + +installopts = "PREFIX=%(installdir)s" + +runtest = 'check' + +sanity_check_paths = { + 'files': ["bin/lz4", "lib/liblz4.%s" % SHLIB_EXT, "include/lz4.h"], + 'dirs': ["lib/pkgconfig"] +} + +moduleclass = 'lib' diff --git a/m/make/make-4.4.1-GCCcore-14.2.0.eb b/m/make/make-4.4.1-GCCcore-14.2.0.eb new file mode 100644 index 00000000..6f634f65 --- /dev/null +++ b/m/make/make-4.4.1-GCCcore-14.2.0.eb @@ -0,0 +1,32 @@ +# IT4Innovations +# LK 2024 + +easyblock = 'ConfigureMake' + +name = 'make' +version = '4.4.1' + +homepage = 'https://www.gnu.org/software/make/make.html' +description = "GNU version of make utility" + +toolchain = {'name': 'GCCcore', 'version': '14.2.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCE_TAR_GZ] +checksums = ['dd16fb1d67bfab79a72f5e8390735c49e3e8e70b4945a15ab1f81ddb78658fb3'] + +builddependencies = [('binutils', '2.42')] + +postinstallcmds = ["cd %(installdir)s/bin && ln -s make gmake"] + +sanity_check_paths = { + 'files': ['bin/gmake', 'bin/make'], + 'dirs': [] +} + +sanity_check_commands = [ + "gmake --help", + "make --help", +] + +moduleclass = 'devel' diff --git a/n/netCDF-Fortran/netCDF-Fortran-4.6.1-gompi-2024it4i.eb b/n/netCDF-Fortran/netCDF-Fortran-4.6.1-gompi-2024it4i.eb new file mode 100644 index 00000000..e717fd87 --- /dev/null +++ b/n/netCDF-Fortran/netCDF-Fortran-4.6.1-gompi-2024it4i.eb @@ -0,0 +1,31 @@ +# IT4Innovations +# LK 2024 + +name = 'netCDF-Fortran' +version = '4.6.1' + +homepage = 'https://www.unidata.ucar.edu/software/netcdf/' +description = """NetCDF (network Common Data Form) is a set of software libraries + and machine-independent data formats that support the creation, access, and sharing of array-oriented + scientific data.""" + +toolchain = {'name': 'gompi', 'version': '2024it4i'} +toolchainopts = {'pic': True, 'usempi': True} + +source_urls = ['https://github.com/Unidata/netcdf-fortran/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['40b534e0c81b853081c67ccde095367bd8a5eead2ee883431331674e7aa9509f'] + +builddependencies = [ + ('M4', '1.4.19'), +] + +dependencies = [ + ('netCDF', '4.9.2'), + ('bzip2', '1.0.8'), +] + +# (too) parallel build fails, but single-core build is fairly quick anyway (~1min) +parallel = 1 + +moduleclass = 'data' diff --git a/n/netCDF/netCDF-4.9.2-gompi-2024it4i.eb b/n/netCDF/netCDF-4.9.2-gompi-2024it4i.eb new file mode 100644 index 00000000..61c5daba --- /dev/null +++ b/n/netCDF/netCDF-4.9.2-gompi-2024it4i.eb @@ -0,0 +1,70 @@ +# IT4Innovations +# LK 2024 +# rucne kompilovat, pak jen --module-only +# po cmake pridat -lmpi do netcdf.pc nc-config libnetcdf.settings + +name = 'netCDF' +version = '4.9.2' + +homepage = 'https://www.unidata.ucar.edu/software/netcdf/' +description = """NetCDF (network Common Data Form) is a set of software libraries + and machine-independent data formats that support the creation, access, and sharing of array-oriented + scientific data.""" + +toolchain = {'name': 'gompi', 'version': '2024it4i'} +import os +if os.environ.get("CLUSTERNAME") in ["KAROLINA"]: + toolchainopts = {'usempi': True, 'opt': True, 'optarch': 'march=core-avx2'} +else: + toolchainopts = {'usempi': True, 'opt': True} + +source_urls = ['https://github.com/Unidata/netcdf-c/archive/'] +sources = ['v%(version)s.tar.gz'] +patches = [ + 'netCDF-4.9.0_skip-nasa-test.patch', +] +checksums = [ + {'v4.9.2.tar.gz': 'bc104d101278c68b303359b3dc4192f81592ae8640f1aee486921138f7f88cb7'}, + '19d99e03c048b037dc01f03f5b8ddc910ebaceb076d0f050540d348f26dfcd2a', # netCDF-4.9.0_skip-nasa-test.patch +] + +builddependencies = [ + ('Autotools', '20231222'), + ('CMake', '3.30.5'), + ('Doxygen', '1.11.0'), +] + +dependencies = [ + ('HDF5', '1.14.5'), + ('cURL', '8.7.1'), + ('Szip', '2.1.1'), + ('zstd', '1.5.6'), + ('bzip2', '1.0.8'), + ('libxml2', '2.12.7'), +] + +# disable Szip, zlib parallel I/O tests, since these can hang on some systems, e.g. generoso +# see: https://github.com/easybuilders/easybuild-easyconfigs/pull/16834 +# and https://github.com/easybuilders/easybuild-easyconfigs/pull/17107#issuecomment-1432947172 +# and https://github.com/easybuilders/easybuild-easyconfigs/pull/18523#issuecomment-1675313158 +preconfigopts = ("sed -i -e 's|@MPIEXEC@ -n 16 ./tst_parallel3|echo \"skipped by EasyBuild\"|g'" + " -e 's|@MPIEXEC@ -n 4 ./tst_parallel5|echo \"skipped by EasyBuild\"|g'" + " -e 's|@MPIEXEC@ -n 4 ./tst_parallel_zlib|echo \"skipped by EasyBuild\"|g'" + " -e 's|@MPIEXEC@ -n 4 ./tst_parallel_compress|echo \"skipped by EasyBuild\"|g'" + " %(builddir)s/%(namelower)s-c-%(version)s/nc_test4/run_par_test.sh.in &&") + +# make sure both static and shared libs are built +# and disable "remote" tests that access a unreliable external test server over internet +configopts = [ + "-DENABLE_DAP_REMOTE_TESTS=OFF -DBUILD_SHARED_LIBS=OFF", + "-DENABLE_DAP_REMOTE_TESTS=OFF -DBUILD_SHARED_LIBS=ON", +] + +buildopts = 'CFLAGS="-O3 -fPIC"' + +# some tests try to start 16 MPI ranks, so we need to allow oversubscription to avoid failing tests +pretestopts = "OMPI_MCA_rmaps_base_oversubscribe=1 " + +runtest = 'test' + +moduleclass = 'data' diff --git a/o/OpenBLAS/OpenBLAS-0.3.27-GCC-14.2.0.eb b/o/OpenBLAS/OpenBLAS-0.3.27-GCC-14.2.0.eb new file mode 100644 index 00000000..109e47cb --- /dev/null +++ b/o/OpenBLAS/OpenBLAS-0.3.27-GCC-14.2.0.eb @@ -0,0 +1,53 @@ +# IT4Innovations +# LK 2024 + +name = 'OpenBLAS' +version = '0.3.27' + +homepage = 'https://www.openblas.net/' +description = "OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version." + +toolchain = {'name': 'GCC', 'version': '14.2.0'} + +source_urls = [ + # order matters, trying to download the large.tgz/timing.tgz LAPACK tarballs from GitHub causes trouble + 'https://www.netlib.org/lapack/timing/', + 'https://github.com/xianyi/OpenBLAS/archive/', +] +sources = ['v%(version)s.tar.gz'] +patches = [ + ('large.tgz', '.'), + ('timing.tgz', '.'), + 'OpenBLAS-0.3.15_workaround-gcc-miscompilation.patch', + 'OpenBLAS-0.3.21_fix-order-vectorization.patch', + 'OpenBLAS-0.3.26_lapack_qr_noninittest.patch', + 'OpenBLAS-0.3.27_fix_zscal.patch', + 'OpenBLAS-0.3.27_riscv-drop-static-fortran-flag.patch', +] +checksums = [ + {'v0.3.27.tar.gz': 'aa2d68b1564fe2b13bc292672608e9cdeeeb6dc34995512e65c3b10f4599e897'}, + {'large.tgz': 'f328d88b7fa97722f271d7d0cfea1c220e0f8e5ed5ff01d8ef1eb51d6f4243a1'}, + {'timing.tgz': '999c65f8ea8bd4eac7f1c7f3463d4946917afd20a997807300fe35d70122f3af'}, + {'OpenBLAS-0.3.15_workaround-gcc-miscompilation.patch': + 'e6b326fb8c4a8a6fd07741d9983c37a72c55c9ff9a4f74a80e1352ce5f975971'}, + {'OpenBLAS-0.3.21_fix-order-vectorization.patch': + '08af834e5d60441fd35c128758ed9c092ba6887c829e0471ecd489079539047d'}, + {'OpenBLAS-0.3.26_lapack_qr_noninittest.patch': '4781bf1d7b239374fd8069e15b4e2c0ef0e8efaa1a7d4c33557bd5b27e5de77c'}, + {'OpenBLAS-0.3.27_fix_zscal.patch': '9210d7b66538dabaddbe1bfceb16f8225708856f60876ca5561b19d3599f9fd1'}, + {'OpenBLAS-0.3.27_riscv-drop-static-fortran-flag.patch': + 'f374e41efffd592ab1c9034df9e7abf1045ed151f4fc0fd0da618ce9826f2d4b'}, +] + +builddependencies = [ + ('make', '4.4.1'), + # required by LAPACK test suite + ('Python', '3.12.3'), +] + +run_lapack_tests = True +max_failing_lapack_tests_num_errors = 150 + +# extensive testing can be enabled by uncommenting the line below +# runtest = 'PATH=.:$PATH lapack-timing' + +moduleclass = 'numlib' diff --git a/p/PRRTE/PRRTE-3.0.5-GCCcore-14.2.0.eb b/p/PRRTE/PRRTE-3.0.5-GCCcore-14.2.0.eb new file mode 100644 index 00000000..a0f4669f --- /dev/null +++ b/p/PRRTE/PRRTE-3.0.5-GCCcore-14.2.0.eb @@ -0,0 +1,41 @@ +# IT4Innovations +# LK 2024 + +easyblock = 'ConfigureMake' + +name = 'PRRTE' +version = '3.0.5' + +homepage = 'https://docs.prrte.org/' +description = """PRRTE is the PMIx Reference RunTime Environment""" + +toolchain = {'name': 'GCCcore', 'version': '14.2.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/openpmix/prrte/releases/download/v%(version)s'] +sources = ['%(namelower)s-%(version)s.tar.bz2'] +checksums = ['75ce732b02f3bc7eff5e51b81469e4373f1effc6a42d8445e2935d3670e58c8e'] + +builddependencies = [('binutils', '2.42')] + +dependencies = [ + ('libevent', '2.1.12'), + ('hwloc', '2.10.0'), + ('PMIx', '5.0.2'), +] + +configopts = ' --with-libevent=$EBROOTLIBEVENT' +configopts += ' --with-hwloc=$EBROOTHWLOC --with-pmix=$EBROOTPMIX' + +buildopts = 'V=1' + +local_binaries = ['prte', 'prte_info', 'prterun', 'prun', 'pterm'] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in local_binaries] + ['lib/libprrte.%s' % SHLIB_EXT], + 'dirs': ['etc', 'include', 'share'] +} + +sanity_check_commands = ['%s --version' % x for x in local_binaries] + +moduleclass = 'lib' diff --git a/s/Szip/Szip-2.1.1-GCCcore-14.2.0.eb b/s/Szip/Szip-2.1.1-GCCcore-14.2.0.eb new file mode 100644 index 00000000..3430e9e4 --- /dev/null +++ b/s/Szip/Szip-2.1.1-GCCcore-14.2.0.eb @@ -0,0 +1,32 @@ +# IT4Innovations +# LK 2024 + +easyblock = 'ConfigureMake' + +name = 'Szip' +version = '2.1.1' + +homepage = 'https://support.hdfgroup.org/doc_resource/SZIP/' + +description = """ + Szip compression software, providing lossless compression of scientific data +""" + +toolchain = {'name': 'GCCcore', 'version': '14.2.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://support.hdfgroup.org/ftp/lib-external/szip/%(version)s/src'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['21ee958b4f2d4be2c9cabfa5e1a94877043609ce86fde5f286f105f7ff84d412'] + +builddependencies = [ + ('binutils', '2.42'), +] + +sanity_check_paths = { + 'files': ["lib/libsz.a", "lib/libsz.%s" % SHLIB_EXT] + + ["include/%s" % x for x in ["ricehdf.h", "szip_adpt.h", "szlib.h"]], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/z/zstd/zstd-1.5.6-GCCcore-14.2.0.eb b/z/zstd/zstd-1.5.6-GCCcore-14.2.0.eb new file mode 100644 index 00000000..c2ee3d8a --- /dev/null +++ b/z/zstd/zstd-1.5.6-GCCcore-14.2.0.eb @@ -0,0 +1,44 @@ +# IT4Innovations +# LK 2024 + +easyblock = 'ConfigureMake' + +name = 'zstd' +version = '1.5.6' + +homepage = 'https://facebook.github.io/zstd' +description = """Zstandard is a real-time compression algorithm, providing high compression ratios. + It offers a very wide range of compression/speed trade-off, while being backed by a very fast decoder. + It also offers a special mode for small data, called dictionary compression, and can create dictionaries + from any sample set.""" + +toolchain = {'name': 'GCCcore', 'version': '14.2.0'} + +github_account = 'facebook' +source_urls = [GITHUB_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['30f35f71c1203369dc979ecde0400ffea93c27391bfd2ac5a9715d2173d92ff7'] + +builddependencies = [ + ('binutils', '2.42'), +] + +dependencies = [ + ('zlib', '1.3.1'), + ('gzip', '1.13'), + ('XZ', '5.4.5'), + ('lz4', '1.9.4'), +] + +skipsteps = ['configure'] + +#runtest = 'check' + +installopts = "PREFIX=%(installdir)s" + +sanity_check_paths = { + 'files': ["bin/zstd", "lib/libzstd.%s" % SHLIB_EXT, "include/zstd.h"], + 'dirs': ["lib/pkgconfig"] +} + +moduleclass = 'lib'