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/10.2.0] Qt5 v5.14.2 #11555

Merged
merged 9 commits into from
Nov 29, 2020
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
76 changes: 76 additions & 0 deletions easybuild/easyconfigs/q/Qt5/Qt5-5.14.2-GCCcore-10.2.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
easyblock = 'EB_Qt'

name = 'Qt5'
version = '5.14.2'

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

toolchain = {'name': 'GCCcore', 'version': '10.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/'
]
sources = ['qt-everywhere-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.14.2_fix-missing-stdint.patch',
'Qt5-5.14.2_fix-webengine-bison.patch',
]
checksums = [
'c6fcd53c744df89e7d3223c02838a33309bd1c291fcb6f9341505fe99f7f19fa', # qt-everywhere-src-5.14.2.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
'648e2a92d5ea139543db5d01a80aa33d4721e52bb59c785490b64497b0ede4ab', # Qt5-5.14.2_fix-missing-stdint.patch
'6ace4735e35dee95d6b6c7eea3a7c46c264589a319d745310282ee724f632861', # Qt5-5.14.2_fix-webengine-bison.patch
]

builddependencies = [
('binutils', '2.35'),
('pkg-config', '0.29.2'),
# deps for QtWebEngine
('Bison', '3.7.1'),
('flex', '2.6.4'),
('gperf', '3.1'),
('Ninja', '1.10.1'),
('Python', '2.7.18'),
('re2c', '2.0.3')
]

dependencies = [
('double-conversion', '3.1.5'),
('GLib', '2.66.1'),
('PCRE2', '10.35'),
('libpng', '1.6.37'),
# deps for QtWebEngine
('X11', '20201008'),
('fontconfig', '2.13.92'),
('DBus', '1.13.18'),
('libevent', '2.1.12'),
('libGLU', '9.0.1'),
('libjpeg-turbo', '2.0.5'),
('NSS', '3.57'),
('snappy', '1.1.8'),
('JasPer', '2.0.14'),
('bzip2', '1.0.8'),
# OS dependency should be preferred if the os version is more recent then this version,
# it is nice to have an up to date openssl for security reasons
# ('OpenSSL', '1.1.1h'), # Qt5 > 5.15.0 requires OpenSSL 1.1.1
]

osdependencies = [OS_PKG_OPENSSL_DEV]

# 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'
70 changes: 70 additions & 0 deletions easybuild/easyconfigs/q/Qt5/Qt5-5.14.2_fix-missing-stdint.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# Missing include leads to compilation error. Seemingly only affects 5.14.2
# Ref: https://bugreports.qt.io/browse/QTBUG-83225
# Mikael Öhman <[email protected]>
--- qtlocation/src/3rdparty/mapbox-gl-native/src/mbgl/util/convert.cpp.orig 2020-11-21 03:17:06.465885355 +0100
+++ qtlocation/src/3rdparty/mapbox-gl-native/src/mbgl/util/convert.cpp 2020-11-21 03:16:51.225862093 +0100
@@ -1,3 +1,4 @@
+#include <stdint.h>
#include <mbgl/util/convert.hpp>

namespace mbgl {
--- ./qtwebengine/src/3rdparty/chromium/base/task_runner.h.orig 2020-11-23 11:41:09.804800874 +0100
+++ ./qtwebengine/src/3rdparty/chromium/base/task_runner.h 2020-11-23 11:39:55.982675225 +0100
@@ -6,6 +6,7 @@
#define BASE_TASK_RUNNER_H_

#include <stddef.h>
+#include <stdint.h>

#include "base/base_export.h"
#include "base/callback.h"
--- ./qtwebengine/src/3rdparty/chromium/third_party/perfetto/include/perfetto/base/task_runner.h.orig 2020-11-23 19:05:25.400843511 +0100
+++ ./qtwebengine/src/3rdparty/chromium/third_party/perfetto/include/perfetto/base/task_runner.h 2020-11-23 19:05:40.863866361 +0100
@@ -17,6 +17,7 @@
#ifndef INCLUDE_PERFETTO_BASE_TASK_RUNNER_H_
#define INCLUDE_PERFETTO_BASE_TASK_RUNNER_H_

+#include <stdint.h>
#include <functional>

#include "perfetto/base/export.h"
--- ./qtwebengine/src/3rdparty/chromium/third_party/webrtc/call/rtx_receive_stream.h.orig 2020-11-23 19:54:51.112219468 +0100
+++ ./qtwebengine/src/3rdparty/chromium/third_party/webrtc/call/rtx_receive_stream.h 2020-11-23 19:55:01.389234744 +0100
@@ -11,6 +11,7 @@
#ifndef CALL_RTX_RECEIVE_STREAM_H_
#define CALL_RTX_RECEIVE_STREAM_H_

+#include <stdint.h>
#include <map>

#include "call/rtp_packet_sink_interface.h"
--- ./qtwebengine/src/3rdparty/chromium/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h.orig 2020-11-23 20:24:51.676954471 +0100
+++ ./qtwebengine/src/3rdparty/chromium/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h 2020-11-23 20:25:03.439972877 +0100
@@ -11,6 +11,7 @@
#ifndef MODULES_AUDIO_PROCESSING_AEC3_CLOCKDRIFT_DETECTOR_H_
#define MODULES_AUDIO_PROCESSING_AEC3_CLOCKDRIFT_DETECTOR_H_

+#include <cstddef>
#include <array>

namespace webrtc {
--- ./qtwebengine/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/decoding_state.h.orig 2020-11-23 20:58:34.577202208 +0100
+++ ./qtwebengine/src/3rdparty/chromium/third_party/webrtc/modules/video_coding/decoding_state.h 2020-11-23 20:58:22.770184640 +0100
@@ -11,6 +11,7 @@
#ifndef MODULES_VIDEO_CODING_DECODING_STATE_H_
#define MODULES_VIDEO_CODING_DECODING_STATE_H_

+#include <stdint.h>
#include <map>
#include <set>
#include <vector>
--- ./qtwebengine/src/3rdparty/chromium/media/cdm/supported_cdm_versions.h.orig 2020-11-24 18:20:48.115156207 +0100
+++ ./qtwebengine/src/3rdparty/chromium/media/cdm/supported_cdm_versions.h 2020-11-24 18:21:21.415054163 +0100
@@ -5,6 +5,7 @@
#ifndef MEDIA_CDM_SUPPORTED_CDM_VERSIONS_H_
#define MEDIA_CDM_SUPPORTED_CDM_VERSIONS_H_

+#include <cstddef>
#include <array>

#include "media/base/media_export.h"
57 changes: 57 additions & 0 deletions easybuild/easyconfigs/q/Qt5/Qt5-5.14.2_fix-webengine-bison.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
Stolen from https://code.qt.io/cgit/qt/qtwebengine-chromium.git/commit/?h=80-based&id=1a53f599
with paths adjusted for Qt 3rdparty:

From 1a53f5995697f5ac6fd501dbdc0ee39c9488ee66 Mon Sep 17 00:00:00 2001
From: Allan Sandfeld Jensen <[email protected]>
Date: Fri, 14 Aug 2020 16:38:48 +0200
Subject: Fix bison 3.7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Do a replace run inspired by newer versions of the script.

Fixes: QTBUG-86018
Change-Id: Ib1dc771e22a662aff0fae842d135ad58fad08bc1
Reviewed-by: Michael Brüning <[email protected]>
---
.../blink/renderer/build/scripts/rule_bison.py | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)

diff --git a/chromium/third_party/blink/renderer/build/scripts/rule_bison.py b/chromium/third_party/blink/renderer/build/scripts/rule_bison.py
index f75e25fd23f..7e0767e951a 100755
--- ./qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/rule_bison.py.orig
+++ ./qtwebengine/src/3rdparty/chromium/third_party/blink/renderer/build/scripts/rule_bison.py
@@ -45,6 +45,19 @@ from utilities import abs

from blinkbuild.name_style_converter import NameStyleConverter

+def modify_file(path, prefix_lines, suffix_lines, replace_list=[]):
+ prefix_lines = map(lambda s: s + '\n', prefix_lines)
+ suffix_lines = map(lambda s: s + '\n', suffix_lines)
+ with open(path, 'r') as f:
+ old_lines = f.readlines()
+ for i in range(len(old_lines)):
+ for src, dest in replace_list:
+ old_lines[i] = old_lines[i].replace(src, dest)
+ new_lines = prefix_lines + old_lines + suffix_lines
+ with open(path, 'w') as f:
+ f.writelines(new_lines)
+
+
assert len(sys.argv) == 4 or len(sys.argv) == 5

inputFile = abs(sys.argv[1])
@@ -115,3 +128,9 @@ print >>outputHFile, '#define %s' % headerGuard
print >>outputHFile, outputHContents
print >>outputHFile, '#endif // %s' % headerGuard
outputHFile.close()
+
+common_replace_list = [(inputRoot + '.hh',
+ inputRoot + '.h')]
+modify_file(
+ outputCpp, [], [],
+ replace_list=common_replace_list)
--
cgit v1.2.1