diff --git a/easybuild/easyconfigs/a/assimp/assimp-5.4.3-GCCcore-13.3.0.eb b/easybuild/easyconfigs/a/assimp/assimp-5.4.3-GCCcore-13.3.0.eb new file mode 100644 index 000000000000..3f0dfef4b647 --- /dev/null +++ b/easybuild/easyconfigs/a/assimp/assimp-5.4.3-GCCcore-13.3.0.eb @@ -0,0 +1,36 @@ +# Authors:: Richard Lawrence - TAMU HPRC - https://hprc.tamu.edu + +easyblock = 'CMakeMake' + +name = 'assimp' +version = '5.4.3' + +homepage = 'https://github.com/assimp/assimp' +description = """ + Open Asset Import Library (assimp) is a library to import and export various + 3d-model-formats including scene-post-processing to generate missing render data. +""" + +toolchain = {'name': 'GCCcore', 'version': '13.3.0'} + +source_urls = ['https://github.com/%(name)s/%(name)s/archive'] +sources = ['v%(version)s.tar.gz'] +checksums = ['66dfbaee288f2bc43172440a55d0235dfc7bf885dda6435c038e8000e79582cb'] + +builddependencies = [ + ('binutils', '2.42'), + ('pkgconf', '2.2.0'), + ('CMake', '3.29.3'), + ('zlib', '1.3.1'), +] + +# workaround bug with GCC13 https://github.com/assimp/assimp/issues/5315 +configopts = "-DASSIMP_WARNINGS_AS_ERRORS=OFF " + + +sanity_check_paths = { + 'files': ['include/%(name)s/types.h', 'lib/libassimp.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/d/double-conversion/double-conversion-3.3.0-GCCcore-13.3.0.eb b/easybuild/easyconfigs/d/double-conversion/double-conversion-3.3.0-GCCcore-13.3.0.eb new file mode 100644 index 000000000000..c4b5780f6eec --- /dev/null +++ b/easybuild/easyconfigs/d/double-conversion/double-conversion-3.3.0-GCCcore-13.3.0.eb @@ -0,0 +1,36 @@ + +easyblock = 'CMakeMake' + +name = 'double-conversion' +version = '3.3.0' + +homepage = 'https://github.com/google/double-conversion' +description = "Efficient binary-decimal and decimal-binary conversion routines for IEEE doubles." + +toolchain = {'name': 'GCCcore', 'version': '13.3.0'} + +source_urls = ['https://github.com/google/%(name)s/archive'] +sources = ['v%(version)s.tar.gz'] +checksums = ['04ec44461850abbf33824da84978043b22554896b552c5fd11a9c5ae4b4d296e'] + +builddependencies = [ + ('binutils', '2.42'), + ('CMake', '3.29.3'), +] + +# Build static lib, static lib with -fPIC and shared lib +configopts = [ + '', + "-DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_STATIC_LIBRARY_SUFFIX_CXX=_pic.a", + '-DBUILD_SHARED_LIBS=ON', +] + + +sanity_check_paths = { + 'files': ['include/double-conversion/%s.h' % h for h in ['bignum', 'cached-powers', 'diy-fp', 'double-conversion', + 'fast-dtoa', 'fixed-dtoa', 'ieee', 'strtod', 'utils']] + + ['lib/libdouble-conversion.%s' % e for e in ['a', SHLIB_EXT]] + ['lib/libdouble-conversion_pic.a'], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/n/NSPR/NSPR-4.35-GCCcore-13.3.0.eb b/easybuild/easyconfigs/n/NSPR/NSPR-4.35-GCCcore-13.3.0.eb new file mode 100644 index 000000000000..9157abca1c4c --- /dev/null +++ b/easybuild/easyconfigs/n/NSPR/NSPR-4.35-GCCcore-13.3.0.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 'NSPR' +version = '4.35' + +homepage = 'https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSPR' +description = """Netscape Portable Runtime (NSPR) provides a platform-neutral API for system level + and libc-like functions.""" + +toolchain = {'name': 'GCCcore', 'version': '13.3.0'} + +source_urls = ['https://ftp.mozilla.org/pub/%(namelower)s/releases/v%(version)s/src/'] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['7ea3297ea5969b5d25a5dd8d47f2443cda88e9ee746301f6e1e1426f8a6abc8f'] + +builddependencies = [ + ('binutils', '2.42'), +] + +configopts = "--disable-debug --enable-optimize --enable-64bit" + + +sanity_check_paths = { + 'files': ['bin/nspr-config', 'lib/libnspr%(version_major)s.a', 'lib/libnspr%%(version_major)s.%s' % SHLIB_EXT, + 'lib/libplc%(version_major)s.a', 'lib/libplc%%(version_major)s.%s' % SHLIB_EXT, + 'lib/libplds%(version_major)s.a', 'lib/libplds%%(version_major)s.%s' % SHLIB_EXT, + 'lib/pkgconfig/%(namelower)s.pc'], + 'dirs': ['include/%(namelower)s'], +} + +sanity_check_commands = ['%(namelower)s-config --version'] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/n/NSS/NSS-3.104-GCCcore-13.3.0.eb b/easybuild/easyconfigs/n/NSS/NSS-3.104-GCCcore-13.3.0.eb new file mode 100644 index 000000000000..fb301be49d57 --- /dev/null +++ b/easybuild/easyconfigs/n/NSS/NSS-3.104-GCCcore-13.3.0.eb @@ -0,0 +1,64 @@ +easyblock = 'MakeCp' + +name = 'NSS' +version = '3.104' + +homepage = 'https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS' +description = """Network Security Services (NSS) is a set of libraries designed to support cross-platform development + of security-enabled client and server applications.""" + +toolchain = {'name': 'GCCcore', 'version': '13.3.0'} + +source_urls = ['https://ftp.mozilla.org/pub/security/nss/releases/NSS_%s_RTM/src/' % version.replace('.', '_')] +sources = [SOURCELOWER_TAR_GZ] +patches = [ + '%(name)s-3.39_pkgconfig.patch', + '%(name)s-3.55_fix-ftbfs-glibc-invalid-oob-error.patch', +] +checksums = [ + {'nss-3.104.tar.gz': 'e2763223622d1e76b98a43030873856f248af0a41b03b2fa2ca06a91bc50ac8e'}, + {'NSS-3.39_pkgconfig.patch': '5c4b55842e5afd1e8e67b90635f6474510b89242963c4ac2622d3e3da9062774'}, + {'NSS-3.55_fix-ftbfs-glibc-invalid-oob-error.patch': + '15768297c5dd6918132af281531afcfe3e358f45a00bc2655d20a6cbe4310a9b'}, +] + +builddependencies = [ + ('binutils', '2.42'), + ('Perl', '5.38.2'), +] +dependencies = [ + ('NSPR', '4.35'), + ('zlib', '1.3.1'), +] + +# disable use of -Werror to work around compilation errors with newer glibc versions, +# see also https://sourceware.org/bugzilla/show_bug.cgi?id=27476 +buildopts = 'NSS_ENABLE_WERROR=0 BUILD_OPT=1 USE_64=1 ' +buildopts += 'CPATH="$EBROOTNSPR/include/nspr:$CPATH" OS_REL_CFLAGS="-D_XOPEN_SOURCE "' +buildopts += ' && cd config && make PREFIX=%(installdir)s BUILD_OPT=1 USE_64=1 && cd -' + +# building in parallel fails +parallel = 1 + +# optional testsuite (takes a long time) +# buildopts += " && cd %(builddir)s/%(namelower)s-%(version)s/%(namelower)s/tests && " +# buildopts += " BUILD_OPT=1 USE_64=1 ./all.sh " + +files_to_copy = [ + '../dist/Linux*.OBJ/*', + (['../dist/public/*'], 'include'), +] + +sanity_check_paths = { + 'files': ['bin/%(namelower)s-config', 'bin/multinit', 'lib/libnss.a'], + 'dirs': ['include/dbm', 'include/%(namelower)s'], +} + +sanity_check_commands = [ + "multinit --help", + "%(namelower)s-config --version", +] + +modextrapaths = {'CPATH': 'include/%(namelower)s'} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/q/Qt6/Qt6-6.7.2-GCCcore-13.3.0.eb b/easybuild/easyconfigs/q/Qt6/Qt6-6.7.2-GCCcore-13.3.0.eb new file mode 100644 index 000000000000..deb2902a42a2 --- /dev/null +++ b/easybuild/easyconfigs/q/Qt6/Qt6-6.7.2-GCCcore-13.3.0.eb @@ -0,0 +1,90 @@ +easyblock = 'CMakeNinja' + +name = 'Qt6' +version = '6.7.2' + +homepage = 'https://qt.io/' +description = "Qt is a comprehensive cross-platform C++ application framework." + +toolchain = {'name': 'GCCcore', 'version': '13.3.0'} +# disabling use of -ftree-vectorize is required to avoid compilation failures on some systems (e.g. Intel Skylake X) +toolchainopts = {'vectorize': False} + +source_urls = [ + 'https://download.qt.io/official_releases/qt/%(version_major_minor)s/%(version)s/single/', + 'https://download.qt.io/archive/qt/%(version_major_minor)s/%(version)s/single/', + 'https://download.qt.io/new_archive/qt/%(version_major_minor)s/%(version)s/single/', +] +sources = ['qt-everywhere-src-%(version)s.tar.xz'] +patches = [ + '%(name)s-6.6.3_fix_OF-Gentoo.patch', + 'Qt6-6.7.2_fix_cpu_features.patch', +] +checksums = [ + {'qt-everywhere-src-6.7.2.tar.xz': '0aaea247db870193c260e8453ae692ca12abc1bd841faa1a6e6c99459968ca8a'}, + {'Qt6-6.6.3_fix_OF-Gentoo.patch': 'd4d4878ac76cb985e45eb3b6e90ba2233f65807d6bd9bbe2b71365b181347b7b'}, + {'Qt6-6.7.2_fix_cpu_features.patch': '3f37e7a4e4ed38cc82037be9504bc644e48bf258555ffff848183142725c9dc8'}, +] + +builddependencies = [ + ('binutils', '2.42'), + ('pkgconf', '2.2.0'), + ('CMake', '3.29.3'), + ('Ninja', '1.12.1'), + # deps for QtWebEngine + ('Bison', '3.8.2'), + ('flex', '2.6.4'), + ('gperf', '3.1'), + ('re2c', '3.1'), +] +dependencies = [ + ('double-conversion', '3.3.0'), + ('GLib', '2.80.4'), + ('PCRE2', '10.43'), + ('libpng', '1.6.43'), + ('LibTIFF', '4.6.0'), + ('libwebp', '1.4.0'), + ('JasPer', '4.2.4'), + ('HarfBuzz', '9.0.0'), + ('SQLite', '3.45.3'), + ('graphite2', '1.3.14'), + ('assimp', '5.4.3'), # for Qt 3D + ('FFmpeg', '7.0.2'), + ('X11', '20240607'), + ('fontconfig', '2.15.0'), + ('zlib', '1.3.1'), + ('Python', '3.12.3'), + ('Python-bundle-PyPI', '2024.06'), + ('freetype', '2.13.2'), # WebEngine + ('DBus', '1.15.8'), + ('libevent', '2.1.12'), # WebEngine + ('libGLU', '9.0.3'), + ('libjpeg-turbo', '3.0.1'), # WebEngine + ('NSS', '3.104'), # WebEngine, required + ('snappy', '1.2.1'), # WebEngine + ('OpenSSL', '3', '', SYSTEM), + ('ICU', '75.1'), + ('nodejs', '20.13.1'), + # ('gRPC', '1.52.2'), # WebEngine needs older Abseil/gRPC/protobuf +] + +preconfigopts = 'sed -i "s/MultiMedia/Multimedia/g" ../qt-everywhere-src-%(version)s/qtcharts/CMakeLists.txt && ' + +preconfigopts += 'sed -i "23i set(Python3_ROOT_DIR \\$ENV{EBROOTPYTHON})" ' +preconfigopts += '../qt-everywhere-src-%(version)s/qtwebengine/src/gn/CMakeLists.txt && ' # Typo + +configopts = "-Wno-dev -DFEATURE_qtpdf_build=OFF -DQT_AVOID_CMAKE_ARCHIVING_API=ON " +configopts += "-DPython3_ROOT_DIR=$EBROOTPYTHON -DBUILD_qtwayland=OFF " + + +# Removed from Qt6.0.0 but may be added back in the future +# configopts += '-DBUILD_qtgamepad=OFF ' # Does not work on CentOS 7 + +sanity_check_paths = { + 'files': ['bin/qmake6', 'lib/libQt6Core.%s' % SHLIB_EXT, 'lib/libQt6WebEngineCore.%s' % SHLIB_EXT], + 'dirs': ['include/QtCore', 'include/QtWebEngineCore'], +} + +sanity_check_commands = ['qmake6 --help'] + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/q/Qt6/Qt6-6.7.2_fix_cpu_features.patch b/easybuild/easyconfigs/q/Qt6/Qt6-6.7.2_fix_cpu_features.patch new file mode 100644 index 000000000000..0109ba0726b9 --- /dev/null +++ b/easybuild/easyconfigs/q/Qt6/Qt6-6.7.2_fix_cpu_features.patch @@ -0,0 +1,56 @@ +# What: Comment out incorrect detection of CPU features when only AVX2 flag is set. +# See relevant bug reports: +# https://bugs.gentoo.org/908420 +# https://bugs.gentoo.org/898644 +# Author: maxim-masterov (SURF) +diff -Nru qt-everywhere-src-6.7.2.orig/qtbase/src/corelib/global/qsimd_p.h qt-everywhere-src-6.7.2/qtbase/src/corelib/global/qsimd_p.h +--- qt-everywhere-src-6.7.2.orig/qtbase/src/corelib/global/qsimd_p.h 2024-09-20 12:05:26.732359000 +0200 ++++ qt-everywhere-src-6.7.2/qtbase/src/corelib/global/qsimd_p.h 2024-09-23 22:31:44.861936347 +0200 +@@ -227,14 +227,14 @@ + # if defined(__AVX2__) + // List of features present with -march=x86-64-v3 and not architecturally + // implied by __AVX2__ +-# define ARCH_HASWELL_MACROS \ +- (__AVX2__ + __BMI__ + __BMI2__ + __F16C__ + __FMA__ + __LZCNT__ + __POPCNT__) +-# if ARCH_HASWELL_MACROS != 7 +-# error "Please enable all x86-64-v3 extensions; you probably want to use -march=haswell or -march=x86-64-v3 instead of -mavx2" +-# endif +-static_assert(ARCH_HASWELL_MACROS, "Undeclared identifiers indicate which features are missing."); +-# define __haswell__ 1 +-# undef ARCH_HASWELL_MACROS ++//# define ARCH_HASWELL_MACROS \ ++// (__AVX2__ + __BMI__ + __BMI2__ + __F16C__ + __FMA__ + __LZCNT__ + __POPCNT__) ++//# if ARCH_HASWELL_MACROS != 7 ++//# error "Please enable all x86-64-v3 extensions; you probably want to use -march=haswell or -march=x86-64-v3 instead of -mavx2" ++//# endif ++//static_assert(ARCH_HASWELL_MACROS, "Undeclared identifiers indicate which features are missing."); ++//# define __haswell__ 1 ++//# undef ARCH_HASWELL_MACROS + # endif + + // x86-64 sub-architecture version 4 +@@ -244,15 +244,15 @@ + // with AVX512 support and it includes all of these too. The GNU libc subdir for + // this is "glibc-hwcaps/x86-64-v4". + // +-# define ARCH_SKX_MACROS (__AVX512F__ + __AVX512BW__ + __AVX512CD__ + __AVX512DQ__ + __AVX512VL__) +-# if ARCH_SKX_MACROS != 0 +-# if ARCH_SKX_MACROS != 5 +-# error "Please enable all x86-64-v4 extensions; you probably want to use -march=skylake-avx512 or -march=x86-64-v4 instead of -mavx512f" +-# endif +-static_assert(ARCH_SKX_MACROS, "Undeclared identifiers indicate which features are missing."); +-# define __skylake_avx512__ 1 +-# endif +-# undef ARCH_SKX_MACROS ++//# define ARCH_SKX_MACROS (__AVX512F__ + __AVX512BW__ + __AVX512CD__ + __AVX512DQ__ + __AVX512VL__) ++//# if ARCH_SKX_MACROS != 0 ++//# if ARCH_SKX_MACROS != 5 ++//# error "Please enable all x86-64-v4 extensions; you probably want to use -march=skylake-avx512 or -march=x86-64-v4 instead of -mavx512f" ++//# endif ++//static_assert(ARCH_SKX_MACROS, "Undeclared identifiers indicate which features are missing."); ++//# define __skylake_avx512__ 1 ++//# endif ++//# undef ARCH_SKX_MACROS + #endif /* Q_PROCESSOR_X86 */ + + // NEON intrinsics diff --git a/easybuild/easyconfigs/r/re2c/re2c-3.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/r/re2c/re2c-3.1-GCCcore-13.3.0.eb new file mode 100644 index 000000000000..d40fa7867229 --- /dev/null +++ b/easybuild/easyconfigs/r/re2c/re2c-3.1-GCCcore-13.3.0.eb @@ -0,0 +1,33 @@ +easyblock = 'ConfigureMake' + +name = 're2c' +version = '3.1' + +homepage = 'https://re2c.org' +description = """re2c is a free and open-source lexer generator for C and C++. Its main goal is generating +fast lexers: at least as fast as their reasonably optimized hand-coded counterparts. Instead of using +traditional table-driven approach, re2c encodes the generated finite state automata directly in the form +of conditional jumps and comparisons.""" + +toolchain = {'name': 'GCCcore', 'version': '13.3.0'} + +source_urls = ['https://github.com/skvadrik/%(name)s/releases/download/%(version)s'] +sources = [SOURCE_TAR_XZ] +checksums = ['0ac299ad359e3f512b06a99397d025cfff81d3be34464ded0656f8a96676c029'] + +builddependencies = [ + ('binutils', '2.42'), + ('Python', '3.12.3'), +] + +configopts = '--disable-rust' + + +sanity_check_paths = { + 'files': ['bin/%(name)s'], + 'dirs': [], +} + +sanity_check_commands = ['%(name)s --help'] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/s/snappy/snappy-1.2.1-GCCcore-13.3.0.eb b/easybuild/easyconfigs/s/snappy/snappy-1.2.1-GCCcore-13.3.0.eb new file mode 100644 index 000000000000..2310edf55555 --- /dev/null +++ b/easybuild/easyconfigs/s/snappy/snappy-1.2.1-GCCcore-13.3.0.eb @@ -0,0 +1,38 @@ + +easyblock = 'CMakeMake' + +name = 'snappy' +version = '1.2.1' + +homepage = 'https://github.com/google/snappy' +description = """Snappy is a compression/decompression library. It does not aim +for maximum compression, or compatibility with any other compression library; +instead, it aims for very high speeds and reasonable compression.""" + +toolchain = {'name': 'GCCcore', 'version': '13.3.0'} + +source_urls = ['https://github.com/google/%(name)s/archive/'] +sources = ['%(version)s.tar.gz'] +patches = ['%(name)s-1.1.9_use-default-rtti.patch'] +checksums = [ + {'1.2.1.tar.gz': '736aeb64d86566d2236ddffa2865ee5d7a82d26c9016b36218fcc27ea4f09f86'}, + {'snappy-1.1.9_use-default-rtti.patch': 'af56538330b2d781677c7d94576c15fc36e004ae0b4f1ac7d86bbec22b65e73d'}, +] + +builddependencies = [ + ('binutils', '2.42'), + ('CMake', '3.29.3'), +] + +configopts = [ + "-DSNAPPY_BUILD_TESTS=OFF -DSNAPPY_BUILD_BENCHMARKS=OFF", + "-DBUILD_SHARED_LIBS=ON -DSNAPPY_BUILD_TESTS=OFF -DSNAPPY_BUILD_BENCHMARKS=OFF", +] + + +sanity_check_paths = { + 'files': ['lib64/libsnappy.a', 'lib64/libsnappy.%s' % SHLIB_EXT, 'include/snappy.h'], + 'dirs': [], +} + +moduleclass = 'lib'