Skip to content
36 changes: 36 additions & 0 deletions easybuild/easyconfigs/a/assimp/assimp-5.4.3-GCCcore-13.3.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Authors:: Richard Lawrence <rarensu@tamu.edu> - 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'
Original file line number Diff line number Diff line change
@@ -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'
33 changes: 33 additions & 0 deletions easybuild/easyconfigs/n/NSPR/NSPR-4.35-GCCcore-13.3.0.eb
Original file line number Diff line number Diff line change
@@ -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'
64 changes: 64 additions & 0 deletions easybuild/easyconfigs/n/NSS/NSS-3.104-GCCcore-13.3.0.eb
Original file line number Diff line number Diff line change
@@ -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'
90 changes: 90 additions & 0 deletions easybuild/easyconfigs/q/Qt6/Qt6-6.7.2-GCCcore-13.3.0.eb
Original file line number Diff line number Diff line change
@@ -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'
56 changes: 56 additions & 0 deletions easybuild/easyconfigs/q/Qt6/Qt6-6.7.2_fix_cpu_features.patch
Original file line number Diff line number Diff line change
@@ -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
33 changes: 33 additions & 0 deletions easybuild/easyconfigs/r/re2c/re2c-3.1-GCCcore-13.3.0.eb
Original file line number Diff line number Diff line change
@@ -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'
38 changes: 38 additions & 0 deletions easybuild/easyconfigs/s/snappy/snappy-1.2.1-GCCcore-13.3.0.eb
Original file line number Diff line number Diff line change
@@ -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'