Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

{devel}[GCCcore/12.3.0] Qt5 v5.15.10 #18558

Merged
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.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
78 changes: 78 additions & 0 deletions easybuild/easyconfigs/q/Qt5/Qt5-5.15.10-GCCcore-12.3.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
easyblock = 'EB_Qt'

name = 'Qt5'
version = '5.15.10'

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

toolchain = {'name': 'GCCcore', 'version': '12.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.15.10_fix-OF-Gentoo.patch',
'Qt5-5.15.10_fix-qtwebengine-breakpad-glibc-2.34.patch',
'Qt5-5.15.7_GCC-12.patch',
]
checksums = [
{'qt-everywhere-opensource-src-5.15.10.tar.xz': 'b545cb83c60934adc9a6bbd27e2af79e5013de77d46f5b9f5bb2a3c762bf55ca'},
{'Qt5-5.13.1_fix-avx2.patch': '6f46005f056bf9e6ff3e5d012a874d18ee03b33e685941f2979c970be91a9dbc'},
{'Qt5-5.13.1_fix-qmake-libdir.patch': '511ca9c0599ceb1989f73d8ceea9199c041512d3a26ee8c5fd870ead2c10cb63'},
{'Qt5-5.15.10_fix-OF-Gentoo.patch': '1c4d3b974422dadb4fd62f79581d48d25ae3d5f5f21489ae8c632e43e2e5286b'},
{'Qt5-5.15.10_fix-qtwebengine-breakpad-glibc-2.34.patch':
'3b536de3b2da9115d96323a00275fc6066bb048f3747f8e6971facd78ed4e2e2'},
{'Qt5-5.15.7_GCC-12.patch': '9a5bde91b223a3e2e90d3d6bec107af69a1a0f18d789593738a953080473fa68'},
]

builddependencies = [
('binutils', '2.40'),
('pkgconf', '1.9.5'),
# deps for QtWebEngine
('Bison', '3.8.2'),
('flex', '2.6.4'),
('gperf', '3.1'),
('Ninja', '1.11.1'),
('Python', '2.7.18'),
('re2c', '3.1'),
]

dependencies = [
('double-conversion', '3.3.0'),
('GLib', '2.77.1'),
('PCRE2', '10.42'),
('libpng', '1.6.39'),
('HarfBuzz', '5.3.1'),
('graphite2', '1.3.14'),
# deps for QtWebEngine
('X11', '20230603'),
('fontconfig', '2.14.2'),
('DBus', '1.15.4'),
('libevent', '2.1.12'),
('libGLU', '9.0.3'),
('libjpeg-turbo', '2.1.5.1'),
('NSS', '3.89.1'),
('snappy', '1.1.10'),
('JasPer', '4.0.0'),
('bzip2', '1.0.8'),
('OpenSSL', '1.1', '', SYSTEM),
('ICU', '73.2'),
('nodejs', '18.17.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'
82 changes: 82 additions & 0 deletions easybuild/easyconfigs/q/Qt5/Qt5-5.15.10_fix-OF-Gentoo.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
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
since 5.15.10 the file has been moved from qt3d/src/3rdparty/assimp/contrib/unzip/ioapi.h to qt3d/src/3rdparty/assimp/src/contrib/unzip/ioapi.h
author: Kenneth Hoste (HPC-UGent)
diff -ru qt-everywhere-src-5.14.1.orig/qt3d/src/3rdparty/assimp/contrib/unzip/ioapi.h qt-everywhere-src-5.14.1/qt3d/src/3rdparty/assimp/contrib/unzip/ioapi.h
--- qt-everywhere-src-5.14.1.orig/qt3d/src/3rdparty/assimp/src/contrib/unzip/ioapi.h 2020-01-15 17:09:24.000000000 -0000
+++ qt-everywhere-src-5.14.1/qt3d/src/3rdparty/assimp/src/contrib/unzip/ioapi.h 2020-09-25 18:30:03.146291932 -0000
@@ -35,6 +35,15 @@
extern "C" {
#endif

+// if OF macro is not defined by _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));
typedef uLong (ZCALLBACK *read_file_func) OF((voidpf opaque, voidpf stream, void* buf, uLong size));
typedef uLong (ZCALLBACK *write_file_func) OF((voidpf opaque, voidpf stream, const void* buf, uLong size));
diff -ru qt-everywhere-src-5.14.1.orig/qtquick3d/src/3rdparty/assimp/src/contrib/unzip/ioapi.h qt-everywhere-src-5.14.1/qtquick3d/src/3rdparty/assimp/src/contrib/unzip/ioapi.h
--- qt-everywhere-src-5.14.1.orig/qtquick3d/src/3rdparty/assimp/src/contrib/unzip/ioapi.h 2019-03-10 11:05:27.000000000 -0000
+++ qt-everywhere-src-5.14.1/qtquick3d/src/3rdparty/assimp/src/contrib/unzip/ioapi.h 2020-09-25 18:30:16.136640746 -0000
@@ -35,6 +35,15 @@
extern "C" {
#endif

+// if OF macro is not defined by _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));
typedef uLong (ZCALLBACK *read_file_func) OF((voidpf opaque, voidpf stream, void* buf, uLong size));
typedef uLong (ZCALLBACK *write_file_func) OF((voidpf opaque, voidpf stream, const void* buf, uLong size));
diff -ru qt-everywhere-src-5.14.1.orig/qtquick3d/src/3rdparty/assimp/src/contrib/zlib/contrib/minizip/ioapi.h qt-everywhere-src-5.14.1/qtquick3d/src/3rdparty/assimp/src/contrib/zlib/contrib/minizip/ioapi.h
--- qt-everywhere-src-5.14.1.orig/qtquick3d/src/3rdparty/assimp/src/contrib/zlib/contrib/minizip/ioapi.h 2019-03-10 11:05:27.000000000 -0000
+++ qt-everywhere-src-5.14.1/qtquick3d/src/3rdparty/assimp/src/contrib/zlib/contrib/minizip/ioapi.h 2020-09-25 18:30:23.096828085 -0000
@@ -131,6 +131,15 @@



+// if OF macro is not defined by _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));
typedef uLong (ZCALLBACK *read_file_func) OF((voidpf opaque, voidpf stream, void* buf, uLong size));
diff -ru qt-everywhere-src-5.14.1.orig/qtwebengine/src/3rdparty/chromium/third_party/zlib/contrib/minizip/ioapi.h qt-everywhere-src-5.14.1/qtwebengine/src/3rdparty/chromium/third_party/zlib/contrib/minizip/ioapi.h
--- qt-everywhere-src-5.14.1.orig/qtwebengine/src/3rdparty/chromium/third_party/zlib/contrib/minizip/ioapi.h 2020-01-20 10:37:42.000000000 -0000
+++ qt-everywhere-src-5.14.1/qtwebengine/src/3rdparty/chromium/third_party/zlib/contrib/minizip/ioapi.h 2020-09-25 18:29:45.635820801 -0000
@@ -129,8 +129,14 @@
#endif
#endif

-
-
+// if OF macro is not defined by _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));
typedef uLong (ZCALLBACK *read_file_func) OF((voidpf opaque, voidpf stream, void* buf, uLong size));
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
Fix "no matching function" error.
Patch taken from https://bugs.gentoo.org/811312

From a3bc792bdc116806a50e022d9102914c8daf6210 Mon Sep 17 00:00:00 2001
From: Martin Jansa <Martin.Jansa@gmail.com>
Date: Wed, 4 Aug 2021 19:11:06 +0200
Subject: [PATCH] chromium: breakpad: fix build with glibc-2.34

diff -ruN a/qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc b/qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
--- a/qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc 2022-04-06 15:32:17.000000000 +0200
+++ b/qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc 2023-08-15 13:16:53.990656375 +0200
@@ -138,7 +138,7 @@
// SIGSTKSZ may be too small to prevent the signal handlers from overrunning
// the alternative stack. Ensure that the size of the alternative stack is
// large enough.
- static const unsigned kSigStackSize = std::max(16384U, (unsigned)SIGSTKSZ);
+ static const unsigned kSigStackSize = std::max<size_t>(16384U, (unsigned)SIGSTKSZ);

// Only set an alternative stack if there isn't already one, or if the current
// one is too small.