Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
easyblock = 'CMakeMake'

name = 'double-conversion'
version = '3.2.0'

homepage = 'https://github.com/google/double-conversion'
description = "Efficient binary-decimal and decimal-binary conversion routines for IEEE doubles."

toolchain = {'name': 'GCCcore', 'version': '11.3.0'}

source_urls = ['https://github.com/google/%(name)s/archive']
sources = ['v%(version)s.tar.gz']
checksums = ['3dbcdf186ad092a8b71228a5962009b5c96abde9a315257a3452eb988414ea3b']

builddependencies = [
('binutils', '2.38'),
('CMake', '3.23.1'),
]

separate_build_dir = True

build_type = 'Release'

# 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'
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
easyblock = 'CMakeMake'

name = 'graphite2'
version = '1.3.14'

homepage = 'https://scripts.sil.org/cms/scripts/page.php?site_id=projects&item_id=graphite_home'
description = """Graphite is a "smart font" system developed specifically to
handle the complexities of lesser-known languages of the world."""

toolchain = {'name': 'GCCcore', 'version': '11.3.0'}

source_urls = ['https://github.com/silnrsi/graphite/archive/']
sources = ['%(version)s.zip']
checksums = ['36e15981af3bf7a3ca3daf53295c8ffde04cf7d163e3474e4d0836e2728b4149']

builddependencies = [
('CMake', '3.23.1'),
('binutils', '2.38'),
]

sanity_check_paths = {
'files': ['bin/gr2fonttest'] +
['lib/lib%%(name)s.%s' % x for x in [SHLIB_EXT, 'la']],
'dirs': ['include/%(name)s', 'share']
}

moduleclass = 'lib'
30 changes: 30 additions & 0 deletions easybuild/easyconfigs/n/NSPR/NSPR-4.34-GCCcore-11.3.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
easyblock = 'ConfigureMake'

name = 'NSPR'
version = '4.34'

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': '11.3.0'}

source_urls = ['https://ftp.mozilla.org/pub/nspr/releases/v%(version)s/src/']
sources = [SOURCELOWER_TAR_GZ]
checksums = ['beef011cd15d8f40794984d17014366513cec5719bf1a78f5e8a3e3a1cebf99c']

builddependencies = [('binutils', '2.38')]

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/nspr.pc'],
'dirs': ['include/nspr'],
}

sanity_check_commands = ["nspr-config --version"]

moduleclass = 'lib'
58 changes: 58 additions & 0 deletions easybuild/easyconfigs/n/NSS/NSS-3.79-GCCcore-11.3.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
easyblock = 'MakeCp'

name = 'NSS'
version = '3.79'

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': '11.3.0'}

source_urls = ['https://ftp.mozilla.org/pub/security/nss/releases/NSS_%(version_major)s_%(version_minor)s_RTM/src/']
sources = [SOURCELOWER_TAR_GZ]
patches = [
'NSS-3.39_pkgconfig.patch',
'NSS-3.55_fix-ftbfs-glibc-invalid-oob-error.patch',
]
checksums = [
'ebdf2d6a96613b6fe70ad579e9f983e0e94e0110171cfb2999db633d3394a514', # nss-3.79.tar.gz
'5c4b55842e5afd1e8e67b90635f6474510b89242963c4ac2622d3e3da9062774', # NSS-3.39_pkgconfig.patch
# NSS-3.55_fix-ftbfs-glibc-invalid-oob-error.patch
'15768297c5dd6918132af281531afcfe3e358f45a00bc2655d20a6cbe4310a9b',
]

builddependencies = [('binutils', '2.38')]

dependencies = [
('NSPR', '4.34'),
('zlib', '1.2.12'),
]

# building in parallel fails
parallel = 1

# fix for not being able to find header files
buildopts = 'BUILD_OPT=1 USE_64=1 CPATH="$EBROOTNSPR/include/nspr:$CPATH" '
# fix c standard causing missing functions
buildopts += 'OS_REL_CFLAGS="-D_XOPEN_SOURCE " && '
# also install pkgconfig file (see patch)
buildopts += "cd config && make PREFIX=%(installdir)s BUILD_OPT=1 USE_64=1 && cd -"
# optional testsuite (takes a long time)
# buildopts += " && cd %(builddir)s/%(namelower)s-%(version)s/%(namelower)s/tests && BUILD_OPT=1 USE_64=1 ./all.sh "

files_to_copy = ['../dist/Linux*.OBJ/*', (['../dist/public/*'], 'include')]

sanity_check_paths = {
'files': ['bin/nss-config', 'bin/multinit', 'lib/libnss.a'],
'dirs': ['include/dbm', 'include/nss'],
}

sanity_check_commands = [
"multinit --help",
"nss-config --version",
]

modextrapaths = {'CPATH': 'include/nss'}

moduleclass = 'lib'
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name = 'Python'
version = '2.7.18'
versionsuffix = '-bare'

homepage = 'https://python.org/'
description = """Python is a programming language that lets you work more quickly and integrate your systems
more effectively."""

toolchain = {'name': 'GCCcore', 'version': '11.3.0'}
toolchainopts = {'pic': True}

source_urls = ['https://www.python.org/ftp/%(namelower)s/%(version)s/']
sources = [SOURCE_TGZ]
checksums = ['da3080e3b488f648a3d7a4560ddee895284c3380b11d6de75edb986526b9a814']

builddependencies = [
('pkgconf', '1.8.0'),
]

dependencies = [
('binutils', '2.38'),
('bzip2', '1.0.8'), # required for bz2 package in Python stdlib
('zlib', '1.2.12'),
('libreadline', '8.1.2'),
('ncurses', '6.3'),
('SQLite', '3.38.3'),
('OpenSSL', '1.1', '', True),
]

install_pip = True

moduleclass = 'lang'
76 changes: 76 additions & 0 deletions easybuild/easyconfigs/q/Qt5/Qt5-5.15.5-GCCcore-11.3.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
easyblock = 'EB_Qt'

name = 'Qt5'
version = '5.15.5'

homepage = 'https://qt.io/'
description = "Qt is a comprehensive cross-platform C++ application framework."

toolchain = {'name': 'GCCcore', 'version': '11.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-opensource-src-%(version)s.tar.xz']
patches = [
'Qt5-5.13.1_fix-avx2.patch',
'Qt5-5.13.1_fix-qmake-libdir.patch',
'Qt5-5.14.1_fix-OF-Gentoo.patch',
'Qt5-5.15.5_fix-qtwebegine-HarfBuzz-3.x.patch',
]
checksums = [
'5a97827bdf9fd515f43bc7651defaf64fecb7a55e051c79b8f80510d0e990f06', # qt-everywhere-opensource-src-5.15.5.tar.xz
'6f46005f056bf9e6ff3e5d012a874d18ee03b33e685941f2979c970be91a9dbc', # Qt5-5.13.1_fix-avx2.patch
'511ca9c0599ceb1989f73d8ceea9199c041512d3a26ee8c5fd870ead2c10cb63', # Qt5-5.13.1_fix-qmake-libdir.patch
'0b9defb7ce75314d85bebe07e143db7f7de316fec64c17cbd13f7eec5d2d1afa', # Qt5-5.14.1_fix-OF-Gentoo.patch
'599cc94535dc276a5d97e002c81907c74ead9dc8d55f35567017fb7a491aaf01', # Qt5-5.15.5_fix-qtwebegine-HarfBuzz-3.x.patch
]

builddependencies = [
('binutils', '2.38'),
('pkgconf', '1.8.0'),
# deps for QtWebEngine
('Bison', '3.8.2'),
('flex', '2.6.4'),
('gperf', '3.1'),
('Ninja', '1.10.2'),
# Qt5WebEngine has build dependency on Python 2
('Python', '2.7.18', '-bare'),
('re2c', '2.2'),
]

dependencies = [
('double-conversion', '3.2.0'),
('GLib', '2.72.1'),
('PCRE2', '10.40'),
('libpng', '1.6.37'),
('HarfBuzz', '4.2.1'),
('graphite2', '1.3.14'),
# deps for QtWebEngine
('X11', '20220504'),
('fontconfig', '2.14.0'),
('DBus', '1.14.0'),
('libevent', '2.1.12'),
('libGLU', '9.0.2'),
('libjpeg-turbo', '2.1.3'),
('NSS', '3.79'),
('snappy', '1.1.9'),
('JasPer', '2.0.33'),
('bzip2', '1.0.8'),
('OpenSSL', '1.1', '', True),
('ICU', '71.1'),
('nodejs', '16.15.1'),
]

# qtgamepad needs recent kernel/libevdev (fails on RHEL 6.x)
# qtwayland fails to build on (some) Centos 7 systems
configopts = '-skip qtgamepad -skip qtwayland'

# make sure QtWebEngine component is being built & installed
check_qtwebengine = True

moduleclass = 'devel'
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
fix compatibility with HarfBuzz v3.x or newer:
../../3rdparty/chromium/components/paint_preview/common/subset_font.cc:74:3: error: hb_subset_input_set_retain_gids was not declared in this scope
../../3rdparty/chromium/components/paint_preview/common/subset_font.cc:76:35: error: hb_subset was not declared in this scope
see also https://bugs.gentoo.org/817758
--- qt-everywhere-src-5.15.5/qtwebengine/src/3rdparty/chromium/components/paint_preview/common/subset_font.cc
+++ qt-everywhere-src-5.15.5/qtwebengine/src/3rdparty/chromium/components/paint_preview/common/subset_font.cc
@@ -71,9 +71,9 @@ sk_sp<SkData> SubsetFont(SkTypeface* typeface, const GlyphUsage& usage) {
hb_set_t* glyphs =
hb_subset_input_glyph_set(input.get()); // Owned by |input|.
usage.ForEach(base::BindRepeating(&AddGlyphs, base::Unretained(glyphs)));
- hb_subset_input_set_retain_gids(input.get(), true);
+ hb_subset_input_set_flags(input.get(), HB_SUBSET_FLAGS_RETAIN_GIDS);

- HbScoped<hb_face_t> subset_face(hb_subset(face.get(), input.get()));
+ HbScoped<hb_face_t> subset_face(hb_subset_or_fail(face.get(), input.get()));
HbScoped<hb_blob_t> subset_blob(hb_face_reference_blob(subset_face.get()));
if (!subset_blob)
return nullptr;
--- qt-everywhere-src-5.15.5/qtwebengine/src/3rdparty/chromium/third_party/skia/src/pdf/SkPDFSubsetFont.cpp
+++ qt-everywhere-src-5.15.5/qtwebengine/src/3rdparty/chromium/third_party/skia/src/pdf/SkPDFSubsetFont.cpp
@@ -71,11 +71,10 @@ static sk_sp<SkData> subset_harfbuzz(sk_sp<SkData> fontData,
hb_set_t* glyphs = hb_subset_input_glyph_set(input.get());
glyphUsage.getSetValues([&glyphs](unsigned gid) { hb_set_add(glyphs, gid);});

- hb_subset_input_set_retain_gids(input.get(), true);
// TODO: When possible, check if a font is 'tricky' with FT_IS_TRICKY.
// If it isn't known if a font is 'tricky', retain the hints.
- hb_subset_input_set_drop_hints(input.get(), false);
- HBFace subset(hb_subset(face.get(), input.get()));
+ hb_subset_input_set_flags(input.get(), HB_SUBSET_FLAGS_RETAIN_GIDS | HB_SUBSET_FLAGS_NO_HINTING);
+ HBFace subset(hb_subset_or_fail(face.get(), input.get()));
HBBlob result(hb_face_reference_blob(subset.get()));
return to_data(std::move(result));
}

27 changes: 27 additions & 0 deletions easybuild/easyconfigs/r/re2c/re2c-2.2-GCCcore-11.3.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
easyblock = 'ConfigureMake'

name = 're2c'
version = '2.2'

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': '11.3.0'}

source_urls = ['https://github.com/skvadrik/re2c/releases/download/%(version)s']
sources = ['%(name)s-%(version)s.tar.xz']
checksums = ['0fc45e4130a8a555d68e230d1795de0216dfe99096b61b28e67c86dfd7d86bda']

builddependencies = [('binutils', '2.38')]

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

sanity_check_commands = ["re2c --help"]

moduleclass = 'tools'