From 2e26b01e4c3ba8ca8e13a1c7fb6a4f2244ccd521 Mon Sep 17 00:00:00 2001 From: Lukas Krupcik Date: Fri, 5 Apr 2024 11:49:49 +0200 Subject: [PATCH] new file: f/ffnvcodec/ffnvcodec-12.1.14.0.eb new file: q/Qt6/Qt6-6.6.3-GCCcore-13.2.0.eb new file: q/Qt6/Qt6-6.6.3_fix_OF-Gentoo.patch --- f/ffnvcodec/ffnvcodec-12.1.14.0.eb | 35 +++++++++++ q/Qt6/Qt6-6.6.3-GCCcore-13.2.0.eb | 92 +++++++++++++++++++++++++++++ q/Qt6/Qt6-6.6.3_fix_OF-Gentoo.patch | 49 +++++++++++++++ 3 files changed, 176 insertions(+) create mode 100644 f/ffnvcodec/ffnvcodec-12.1.14.0.eb create mode 100644 q/Qt6/Qt6-6.6.3-GCCcore-13.2.0.eb create mode 100644 q/Qt6/Qt6-6.6.3_fix_OF-Gentoo.patch diff --git a/f/ffnvcodec/ffnvcodec-12.1.14.0.eb b/f/ffnvcodec/ffnvcodec-12.1.14.0.eb new file mode 100644 index 00000000..fabd24bc --- /dev/null +++ b/f/ffnvcodec/ffnvcodec-12.1.14.0.eb @@ -0,0 +1,35 @@ +# IT4Innovations +# LK 2024 + +easyblock = 'ConfigureMake' + +name = 'ffnvcodec' +version = '12.1.14.0' + +homepage = 'https://git.videolan.org/?p=ffmpeg/nv-codec-headers.git' + +description = """FFmpeg nvidia headers. Adds support for nvenc and nvdec. Requires Nvidia GPU and drivers to be present +(picked up dynamically).""" + +toolchain = SYSTEM + +sources = [{ + 'git_config': { + 'url': 'https://git.videolan.org/git/ffmpeg/', + 'repo_name': 'nv-codec-headers', + 'tag': 'n%(version)s', + }, + 'filename': SOURCE_TAR_GZ, +}] +checksums = ['3a343666ee2d002b637fec7a9e22e9d6b908092866f56bcb49dadab3119ec97a'] + +skipsteps = ['configure'] + +preinstallopts = 'sed -i "s|PREFIX =.*|PREFIX ?= %(installdir)s|" Makefile && ' + +sanity_check_paths = { + 'files': ['include/ffnvcodec/nvEncodeAPI.h', 'lib/pkgconfig/ffnvcodec.pc'], + 'dirs': [], +} + +moduleclass = 'lib' diff --git a/q/Qt6/Qt6-6.6.3-GCCcore-13.2.0.eb b/q/Qt6/Qt6-6.6.3-GCCcore-13.2.0.eb new file mode 100644 index 00000000..ce9908ca --- /dev/null +++ b/q/Qt6/Qt6-6.6.3-GCCcore-13.2.0.eb @@ -0,0 +1,92 @@ +# IT4Innovations +# LK 2024 + +easyblock = 'CMakeNinja' + +name = 'Qt6' +version = '6.6.3' + +homepage = 'https://qt.io/' +description = "Qt is a comprehensive cross-platform C++ application framework." + +toolchain = {'name': 'GCCcore', 'version': '13.2.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 = [ + 'Qt6-6.6.3_fix_OF-Gentoo.patch', +] +checksums = [ + {'qt-everywhere-src-6.6.3.tar.xz': '69d0348fef415da98aa890a34651e9cfb232f1bffcee289b7b4e21386bf36104'}, + {'Qt6-6.6.3_fix_OF-Gentoo.patch': 'd4d4878ac76cb985e45eb3b6e90ba2233f65807d6bd9bbe2b71365b181347b7b'}, +] + +builddependencies = [ + ('binutils', '2.40'), + ('pkgconf', '2.0.3'), + ('CMake', '3.27.6'), + ('Ninja', '1.11.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.78.1'), + ('PCRE2', '10.42'), + ('libpng', '1.6.40'), + ('LibTIFF', '4.6.0'), + ('libwebp', '1.3.2'), + ('JasPer', '4.0.0'), + ('HarfBuzz', '8.2.2'), + ('SQLite', '3.43.1'), + ('graphite2', '1.3.14'), + ('assimp', '5.3.1'), # for Qt 3D + ('FFmpeg', '6.0'), + ('X11', '20231019'), + ('fontconfig', '2.14.2'), + ('zlib', '1.2.13'), + ('Python', '3.11.5'), + ('Python-bundle-PyPI', '2023.10'), # WebEngine + ('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.94'), # WebEngine, required + ('snappy', '1.1.10'), # WebEngine + ('OpenSSL', '1.1', '', SYSTEM), + ('ICU', '74.1'), # WebEngine, optional + ('nodejs', '20.9.0'), # WebEngine, required + # ('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 &&' # Typo +preconfigopts += 'sed -i "23i set(Python3_ROOT_DIR \\$ENV{EBROOTPYTHON})" ' \ + '../qt-everywhere-src-6.6.3/qtwebengine/src/gn/CMakeLists.txt &&' + +configopts = '-Wno-dev ' +configopts += '-DFEATURE_qtpdf_build=OFF ' # Requires CUPS +configopts += '-DQT_AVOID_CMAKE_ARCHIVING_API=ON ' +configopts += '-DPython3_ROOT_DIR=$EBROOTPYTHON ' +configopts += '-DBUILD_qtwayland=OFF ' # Does not work on CentOS 7 +# 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/q/Qt6/Qt6-6.6.3_fix_OF-Gentoo.patch b/q/Qt6/Qt6-6.6.3_fix_OF-Gentoo.patch new file mode 100644 index 00000000..9ba2974b --- /dev/null +++ b/q/Qt6/Qt6-6.6.3_fix_OF-Gentoo.patch @@ -0,0 +1,49 @@ +############################################ +# Update from Qt5-5.14.1_fix-OF-Gentoo.patch +# 1. qt3d/..../unzip/ioapi.h and qtquick3d/..../unzip/ioapi.h do not use OF macro anymore +# 2. qtquick3d/..../minizip/ioapi.h is moved to qt3d/..../minizip/ioapi.h +############################################ +fix compilation on top of zlib provided by Gentoo, +where OF macro has been renamed to _Z_OF +see https://bugreports.qt.io/browse/QTBUG-68467 and https://bugs.gentoo.org/383179 +author: Kenneth Hoste (HPC-UGent) +diff --git a/qt3d/src/3rdparty/assimp/src/contrib/unzip/ioapi.h +b/qt3d/src/3rdparty/assimp/src/contrib/zlib/contrib/unzip/ioapi.h +index 8dcbdb06e3..e9cc96914e 100644 +--- a/qt3d/src/3rdparty/assimp/src/contrib/unzip/ioapi.h ++++ b/qt3d/src/3rdparty/assimp/src/contrib/unzip/ioapi.h +@@ -130,6 +130,14 @@ extern "C" { + #endif + + ++// if OF macro is not defined but _Z_OF is, define OF as _Z_OF ++// required when building with zlib provided by Gentoo ++// see https://bugreports.qt.io/browse/QTBUG-68467 and https://bugs.gentoo.org/383179 ++#ifndef OF ++ #ifdef _Z_OF ++ #define OF _Z_OF ++ #endif ++#endif + + + typedef voidpf (ZCALLBACK *open_file_func) OF((voidpf opaque, const char* filename, int mode)); +diff --git a/qtwebengine/src/3rdparty/chromium/third_party/zlib/contrib/minizip/ioapi.h b/qtwebengine/src/3rdparty/chromium/third_party/zlib/contrib/minizip/ioapi.h +index c1b7a54847..c5546a26b9 100644 +--- a/qtwebengine/src/3rdparty/chromium/third_party/zlib/contrib/minizip/ioapi.h ++++ b/qtwebengine/src/3rdparty/chromium/third_party/zlib/contrib/minizip/ioapi.h +@@ -130,6 +130,14 @@ extern "C" { + #endif + + ++// if OF macro is not defined but _Z_OF is, define OF as _Z_OF ++// required when building with zlib provided by Gentoo ++// see https://bugreports.qt.io/browse/QTBUG-68467 and https://bugs.gentoo.org/383179 ++#ifndef OF ++ #ifdef _Z_OF ++ #define OF _Z_OF ++ #endif ++#endif + + + typedef voidpf (ZCALLBACK *open_file_func) OF((voidpf opaque, const char* filename, int mode)); +