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

{lib}[GCCcore/13.2.0] Qt5 v5.15.11, double-conversion v3.3.0, snappy v1.1.10 #19320

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

name = 'double-conversion'
version = '3.3.0'

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

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

source_urls = ['https://github.com/google/double-conversion/archive']
sources = ['v%(version)s.tar.gz']
checksums = ['04ec44461850abbf33824da84978043b22554896b552c5fd11a9c5ae4b4d296e']

builddependencies = [
('binutils', '2.40'),
('CMake', '3.27.6'),
]

# 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'
94 changes: 94 additions & 0 deletions easybuild/easyconfigs/q/Qt5/Qt5-5.15.11-GCCcore-13.2.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
easyblock = 'EB_Qt'

name = 'Qt5'
version = '5.15.11'
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should at least bump this to 5.15.12 (cc @Neves-P)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Definitely, will do 👍

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've tried bumping the Qt5 install on my laptop to the latest version that is available as open source (5.15.12) and ran into the same compilation error as #19320 (comment). Going for the patched fork from KDE might be the next viable approach.


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-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',
'Qt5-5.15.10_webengine-chromium-drop-catapult.patch',
'Qt5-5.15.10_webengine-chromium-python3.patch',
'Qt5-5.15.10_webengine-drop-catapult.patch',
'Qt5-5.15.10_webengine-python3.patch',
'Qt5-5.15.10_webengine-python3.11.patch',
'Qt5-5.15.11_fix-XKB_KEY_dead.patch',
'Qt5-5.15.11_fix-includes.patch',
]
checksums = [
{'qt-everywhere-opensource-src-5.15.11.tar.xz': '7426b1eaab52ed169ce53804bdd05dfe364f761468f888a0f15a308dc1dc2951'},
{'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'},
{'Qt5-5.15.10_webengine-chromium-drop-catapult.patch':
'6325c6f63b144755fcf040614178923406d7526517d58b29d99b100919acec54'},
{'Qt5-5.15.10_webengine-chromium-python3.patch':
'128d58c1e83f551daec6e9122fc1cea07be76b79d4e99222969649be24334e1e'},
{'Qt5-5.15.10_webengine-drop-catapult.patch': '7a488a0d73b7a9f33a2bdb87996f0a16938f5f882385190833679d1d17684907'},
{'Qt5-5.15.10_webengine-python3.patch': '0e35606506cb218841e05d38214ec6a442f7481630c2d856a09b7863af304023'},
{'Qt5-5.15.10_webengine-python3.11.patch': '8486fc234de2cdf8a600b204bac5d8eb2bc0bc9b1b1d365505f801c4a201f9c3'},
{'Qt5-5.15.11_fix-XKB_KEY_dead.patch': '7fcee0d8414f5060d2b93a46bbd109b9712c127747dc654bf9dc99038e6b5340'},
{'Qt5-5.15.11_fix-includes.patch': '2dd44444c15cba5a00394edd949a793b41421431b89485fd0133146160e7e359'},
]

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

dependencies = [
('double-conversion', '3.3.0'),
('GLib', '2.78.1'),
('PCRE2', '10.42'),
('libpng', '1.6.40'),
('HarfBuzz', '8.2.2'),
('graphite2', '1.3.14'),
# deps for QtWebEngine
('X11', '20231019'),
('fontconfig', '2.14.2'),
('DBus', '1.15.8'),
('libevent', '2.1.12'),
('libGLU', '9.0.3'),
('libjpeg-turbo', '3.0.1'),
('NSS', '3.94'),
('snappy', '1.1.10'),
('JasPer', '4.0.0'),
('bzip2', '1.0.8'),
('OpenSSL', '1.1', '', SYSTEM),
('ICU', '74.1'),
('nodejs', '20.9.0'),
]

# 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'
19 changes: 19 additions & 0 deletions easybuild/easyconfigs/q/Qt5/Qt5-5.15.11_fix-XKB_KEY_dead.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
see https://bugreports.qt.io/browse/QTBUG-117950 + https://codereview.qt-project.org/c/qt/qtbase/+/510764
ported to Qt5 5.15.11 by Kenenth Hoste (HPC-UGent)
--- qt-everywhere-src-5.15.11/qtbase/src/platformsupport/input/xkbcommon/qxkbcommon.cpp.orig 2023-11-24 12:19:01.050524400 +0100
+++ qt-everywhere-src-5.15.11/qtbase/src/platformsupport/input/xkbcommon/qxkbcommon.cpp 2023-11-24 12:19:23.232570214 +0100
@@ -273,10 +273,14 @@
Xkb2Qt<XKB_KEY_dead_small_schwa, Qt::Key_Dead_Small_Schwa>,
Xkb2Qt<XKB_KEY_dead_capital_schwa, Qt::Key_Dead_Capital_Schwa>,
Xkb2Qt<XKB_KEY_dead_greek, Qt::Key_Dead_Greek>,
+/* The following four XKB_KEY_dead keys got removed in libxkbcommon 1.6.0
+ The define check is kind of version check here. */
+#ifdef XKB_KEY_dead_lowline
Xkb2Qt<XKB_KEY_dead_lowline, Qt::Key_Dead_Lowline>,
Xkb2Qt<XKB_KEY_dead_aboveverticalline, Qt::Key_Dead_Aboveverticalline>,
Xkb2Qt<XKB_KEY_dead_belowverticalline, Qt::Key_Dead_Belowverticalline>,
Xkb2Qt<XKB_KEY_dead_longsolidusoverlay, Qt::Key_Dead_Longsolidusoverlay>,
+#endif

// Special keys from X.org - This include multimedia keys,
// wireless/bluetooth/uwb keys, special launcher keys, etc.
88 changes: 88 additions & 0 deletions easybuild/easyconfigs/q/Qt5/Qt5-5.15.11_fix-includes.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
add missing stdint includes required when building with GCC 13.x
fix for:
include/mbgl/util/geometry.hpp:9:24: error: found : in nested-name-specifier, expected ::
and:
../../3rdparty/chromium/third_party/angle/src/common/angleutils.h:54:14: error: uintptr_t does not name a type

see also:
* https://gcc.gnu.org/gcc-13/porting_to.html
* https://bugreports.qt.io/browse/QTBUG-113111 and https://invent.kde.org/qt/qt/qtlocation-mapboxgl/-/merge_requests/1
* https://github.com/abseil/abseil-cpp/pull/1187
diff -ru qt-everywhere-src-5.15.11.orig/qtlocation/src/3rdparty/mapbox-gl-native/include/mbgl/util/geometry.hpp qt-everywhere-src-5.15.11/qtlocation/src/3rdparty/mapbox-gl-native/include/mbgl/util/geometry.hpp
--- qt-everywhere-src-5.15.11.orig/qtlocation/src/3rdparty/mapbox-gl-native/include/mbgl/util/geometry.hpp 2023-06-09 16:08:55.000000000 +0200
+++ qt-everywhere-src-5.15.11/qtlocation/src/3rdparty/mapbox-gl-native/include/mbgl/util/geometry.hpp 2023-11-24 14:19:35.465495021 +0100
@@ -1,5 +1,7 @@
#pragma once

+#include <cstdint>
+
#include <mapbox/geometry/geometry.hpp>
#include <mapbox/geometry/point_arithmetic.hpp>
#include <mapbox/geometry/for_each_point.hpp>
diff -ru qt-everywhere-src-5.15.11.orig/qtlocation/src/3rdparty/mapbox-gl-native/include/mbgl/util/string.hpp qt-everywhere-src-5.15.11/qtlocation/src/3rdparty/mapbox-gl-native/include/mbgl/util/string.hpp
--- qt-everywhere-src-5.15.11.orig/qtlocation/src/3rdparty/mapbox-gl-native/include/mbgl/util/string.hpp 2023-06-09 16:08:55.000000000 +0200
+++ qt-everywhere-src-5.15.11/qtlocation/src/3rdparty/mapbox-gl-native/include/mbgl/util/string.hpp 2023-11-24 14:19:35.465495021 +0100
@@ -3,6 +3,7 @@
#include <sstream>
#include <string>
#include <cassert>
+#include <cstdint>
#include <cstdlib>
#include <exception>

diff -ru qt-everywhere-src-5.15.11.orig/qtlocation/src/3rdparty/mapbox-gl-native/src/mbgl/gl/stencil_mode.hpp qt-everywhere-src-5.15.11/qtlocation/src/3rdparty/mapbox-gl-native/src/mbgl/gl/stencil_mode.hpp
--- qt-everywhere-src-5.15.11.orig/qtlocation/src/3rdparty/mapbox-gl-native/src/mbgl/gl/stencil_mode.hpp 2023-06-09 16:08:55.000000000 +0200
+++ qt-everywhere-src-5.15.11/qtlocation/src/3rdparty/mapbox-gl-native/src/mbgl/gl/stencil_mode.hpp 2023-11-24 14:19:35.465495021 +0100
@@ -1,5 +1,7 @@
#pragma once

+#include <cstdint>
+
#include <mbgl/util/variant.hpp>

namespace mbgl {

diff -u qt-everywhere-src-5.15.11.orig/qtwebengine/src/3rdparty/chromium/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h.orig qt-everywhere-src-5.15.11/qtwebengine/src/3rdparty/chromium/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h
--- qt-everywhere-src-5.15.11.orig/qtwebengine/src/3rdparty/chromium/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h.orig 2023-11-24 15:21:06.692238955 +0100
+++ qt-everywhere-src-5.15.11/qtwebengine/src/3rdparty/chromium/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h 2023-11-24 15:21:15.688260140 +0100
@@ -17,6 +17,7 @@
#define ABSL_STRINGS_INTERNAL_STR_FORMAT_EXTENSION_H_

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

#include <cstddef>
#include <cstring>
diff -ru qt-everywhere-src-5.15.11.orig/qtwebengine/src/3rdparty/chromium/components/variations/seed_response.h qt-everywhere-src-5.15.11/qtwebengine/src/3rdparty/chromium/components/variations/seed_response.h
--- qt-everywhere-src-5.15.11.orig/qtwebengine/src/3rdparty/chromium/components/variations/seed_response.h 2022-09-19 16:36:40.000000000 +0200
+++ qt-everywhere-src-5.15.11/qtwebengine/src/3rdparty/chromium/components/variations/seed_response.h 2023-11-26 15:46:34.777996583 +0100
@@ -5,6 +5,7 @@
#ifndef COMPONENTS_VARIATIONS_SEED_RESPONSE_H_
#define COMPONENTS_VARIATIONS_SEED_RESPONSE_H_

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

namespace variations {
diff -ru qt-everywhere-src-5.15.11.orig/qtwebengine/src/3rdparty/chromium/gpu/config/gpu_driver_bug_workarounds.h qt-everywhere-src-5.15.11/qtwebengine/src/3rdparty/chromium/gpu/config/gpu_driver_bug_workarounds.h
--- qt-everywhere-src-5.15.11.orig/qtwebengine/src/3rdparty/chromium/gpu/config/gpu_driver_bug_workarounds.h 2022-09-19 16:36:40.000000000 +0200
+++ qt-everywhere-src-5.15.11/qtwebengine/src/3rdparty/chromium/gpu/config/gpu_driver_bug_workarounds.h 2023-11-26 15:46:48.950005075 +0100
@@ -5,6 +5,7 @@
#ifndef GPU_CONFIG_GPU_DRIVER_BUG_WORKAROUNDS_H_
#define GPU_CONFIG_GPU_DRIVER_BUG_WORKAROUNDS_H_

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

#include "base/macros.h"
diff -ru qt-everywhere-src-5.15.11.orig/qtwebengine/src/3rdparty/chromium/third_party/webrtc/rtc_base/system/file_wrapper.h qt-everywhere-src-5.15.11/qtwebengine/src/3rdparty/chromium/third_party/webrtc/rtc_base/system/file_wrapper.h
--- qt-everywhere-src-5.15.11.orig/qtwebengine/src/3rdparty/chromium/third_party/webrtc/rtc_base/system/file_wrapper.h 2022-09-19 16:36:40.000000000 +0200
+++ qt-everywhere-src-5.15.11/qtwebengine/src/3rdparty/chromium/third_party/webrtc/rtc_base/system/file_wrapper.h 2023-11-26 15:47:10.722017828 +0100
@@ -11,6 +11,7 @@
#ifndef RTC_BASE_SYSTEM_FILE_WRAPPER_H_
#define RTC_BASE_SYSTEM_FILE_WRAPPER_H_

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

37 changes: 37 additions & 0 deletions easybuild/easyconfigs/s/snappy/snappy-1.1.10-GCCcore-13.2.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
easyblock = 'CMakeMake'

name = 'snappy'
version = '1.1.10'

homepage = 'https://github.com/google/snappy'
description = """Snappy is a compression/decompression library. It does not aim
for maximum compression, or compatibility with any other compression library;
instead, it aims for very high speeds and reasonable compression."""

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

source_urls = ['https://github.com/google/snappy/archive/']
sources = ['%(version)s.tar.gz']
patches = [
'%(name)s-1.1.9_use-default-rtti.patch',
]
checksums = [
{'1.1.10.tar.gz': '49d831bffcc5f3d01482340fe5af59852ca2fe76c3e05df0e67203ebbe0f1d90'},
{'snappy-1.1.9_use-default-rtti.patch': 'af56538330b2d781677c7d94576c15fc36e004ae0b4f1ac7d86bbec22b65e73d'},
]

builddependencies = [
('binutils', '2.40'),
('CMake', '3.27.6'),
]

# Disable building tests and benchmarks - we're not using them and they require googletest and benchmark source code
_configopts = '-DSNAPPY_BUILD_TESTS=OFF -DSNAPPY_BUILD_BENCHMARKS=OFF'
configopts = ['%s' % _configopts, '-DBUILD_SHARED_LIBS=ON %s' % _configopts]

sanity_check_paths = {
'files': ['lib64/libsnappy.a', 'lib64/libsnappy.%s' % SHLIB_EXT, 'include/snappy.h'],
'dirs': []
}

moduleclass = 'lib'