Skip to content

Commit

Permalink
Merge pull request #18558 from stefan-wolfsheimer/Qt5-5.15.10-GCCcore…
Browse files Browse the repository at this point in the history
…-12.3.0.eb

{devel}[GCCcore/12.3.0] Qt5 v5.15.10
  • Loading branch information
casparvl committed Aug 21, 2023
2 parents 336a624 + de3330f commit fa007cd
Show file tree
Hide file tree
Showing 3 changed files with 180 additions and 0 deletions.
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.

0 comments on commit fa007cd

Please sign in to comment.