diff --git a/.gitignore b/.gitignore index 5ab0702..97f5185 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ +SOURCES/kde-5.15-rollup-20211012.patch.gz SOURCES/qtbase-everywhere-src-5.15.2.tar.xz diff --git a/.qt5-qtbase.metadata b/.qt5-qtbase.metadata index 4ced115..a98c50f 100644 --- a/.qt5-qtbase.metadata +++ b/.qt5-qtbase.metadata @@ -1 +1,2 @@ +cd5af27701311d04f66777e184b0dcfbc9c14bc2 SOURCES/kde-5.15-rollup-20211012.patch.gz b5ad67fc6381ad7fae0296944734198488d096a3 SOURCES/qtbase-everywhere-src-5.15.2.tar.xz diff --git a/SOURCES/0068-Bump-version.patch b/SOURCES/0068-Bump-version.patch new file mode 100644 index 0000000..6720f2e --- /dev/null +++ b/SOURCES/0068-Bump-version.patch @@ -0,0 +1,25 @@ +From 6344955d17e17e2398720fe60c34cfc2a4a95208 Mon Sep 17 00:00:00 2001 +From: Liang Qi +Date: Tue, 17 Nov 2020 11:07:30 +0100 +Subject: [PATCH 068/220] Bump version + +Change-Id: I5697edf968dfaebe25c73899d26ed234631e55dc +Reviewed-by: Kevin Funk +Reviewed-by: Jani Heikkinen +--- + .qmake.conf | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/.qmake.conf b/.qmake.conf +index 9476d20099..1bf1a80475 100644 +--- a/.qmake.conf ++++ b/.qmake.conf +@@ -6,4 +6,4 @@ DEFINES += QT_NO_JAVA_STYLE_ITERATORS + QT_SOURCE_TREE = $$PWD + QT_BUILD_TREE = $$shadowed($$PWD) + +-MODULE_VERSION = 5.15.2 ++MODULE_VERSION = 5.15.3 +-- +2.31.1 + diff --git a/SOURCES/qt5-qtbase-5.12.1-firebird-4.0.0.patch b/SOURCES/qt5-qtbase-5.12.1-firebird-4.0.0.patch new file mode 100644 index 0000000..9c09161 --- /dev/null +++ b/SOURCES/qt5-qtbase-5.12.1-firebird-4.0.0.patch @@ -0,0 +1,17 @@ +diff -up qtbase-everywhere-src-5.12.1/src/plugins/sqldrivers/configure.json.firebird qtbase-everywhere-src-5.12.1/src/plugins/sqldrivers/configure.json +--- qtbase-everywhere-src-5.12.1/src/plugins/sqldrivers/configure.json.firebird 2019-01-28 11:11:52.000000000 -0600 ++++ qtbase-everywhere-src-5.12.1/src/plugins/sqldrivers/configure.json 2019-02-03 13:41:27.392305128 -0600 +@@ -49,10 +49,11 @@ + "ibase": { + "label": "InterBase", + "test": {}, +- "headers": "ibase.h", ++ "headers": "ibase.h", + "sources": [ + { "libs": "-lgds32_ms", "condition": "config.win32" }, +- { "libs": "-lgds", "condition": "!config.win32" } ++ { "libs": "-lgds", "condition": "!config.win32" }, ++ { "libs": "-lfbclient", "condition": "!config.win32" } + ] + }, + "mysql": { diff --git a/SOURCES/qtbase-CVE-2021-38593.patch b/SOURCES/qtbase-CVE-2021-38593.patch new file mode 100644 index 0000000..75feb11 --- /dev/null +++ b/SOURCES/qtbase-CVE-2021-38593.patch @@ -0,0 +1,31 @@ +From 6b400e3147dcfd8cc3a393ace1bd118c93762e0c Mon Sep 17 00:00:00 2001 +From: Eirik Aavitsland +Date: Fri, 23 Jul 2021 15:53:56 +0200 +Subject: [PATCH] Improve fix for avoiding huge number of tiny dashes +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Some pathological cases were not caught by the previous fix. + +Fixes: QTBUG-95239 +Pick-to: 6.2 6.1 5.15 +Change-Id: I0337ee3923ff93ccb36c4d7b810a9c0667354cc5 +Reviewed-by: Robert Löhning +--- + src/gui/painting/qpaintengineex.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/gui/painting/qpaintengineex.cpp b/src/gui/painting/qpaintengineex.cpp +index 9fe51082..22e1b18f 100644 +--- a/src/gui/painting/qpaintengineex.cpp ++++ b/src/gui/painting/qpaintengineex.cpp +@@ -426,7 +426,7 @@ void QPaintEngineEx::stroke(const QVectorPath &path, const QPen &inPen) + patternLength *= pw; + if (qFuzzyIsNull(patternLength)) { + pen.setStyle(Qt::NoPen); +- } else if (extent / patternLength > 10000) { ++ } else if (qFuzzyIsNull(extent) || extent / patternLength > 10000) { + // approximate stream of tiny dashes with semi-transparent solid line + pen.setStyle(Qt::SolidLine); + QColor color(pen.color()); diff --git a/SOURCES/qtbase-QTBUG-89977.patch b/SOURCES/qtbase-QTBUG-89977.patch deleted file mode 100644 index cfaac11..0000000 --- a/SOURCES/qtbase-QTBUG-89977.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -up qtbase-everywhere-src-5.15.2/src/corelib/text/qbytearray.h.foo qtbase-everywhere-src-5.15.2/src/corelib/text/qbytearray.h ---- qtbase-everywhere-src-5.15.2/src/corelib/text/qbytearray.h.foo 2020-10-27 03:02:11.000000000 -0500 -+++ qtbase-everywhere-src-5.15.2/src/corelib/text/qbytearray.h 2021-02-06 17:05:04.879201352 -0600 -@@ -51,6 +49,7 @@ - - #include - #include -+#include - - #ifdef truncate - #error qbytearray.h must be included before any header file that defines truncate diff --git a/SOURCES/qtbase-QTBUG-90395.patch b/SOURCES/qtbase-QTBUG-90395.patch deleted file mode 100644 index cc4bb6e..0000000 --- a/SOURCES/qtbase-QTBUG-90395.patch +++ /dev/null @@ -1,23 +0,0 @@ -diff -up qtbase-everywhere-src-5.15.2/src/corelib/global/qendian.h.QTBUG-90395 qtbase-everywhere-src-5.15.2/src/corelib/global/qendian.h ---- qtbase-everywhere-src-5.15.2/src/corelib/global/qendian.h.QTBUG-90395 2020-10-27 03:02:11.000000000 -0500 -+++ qtbase-everywhere-src-5.15.2/src/corelib/global/qendian.h 2021-02-06 16:36:27.072105717 -0600 -@@ -44,6 +44,8 @@ - #include - #include - -+#include -+ - // include stdlib.h and hope that it defines __GLIBC__ for glibc-based systems - #include - #include -diff -up qtbase-everywhere-src-5.15.2/src/corelib/global/qfloat16.h.QTBUG-90395 qtbase-everywhere-src-5.15.2/src/corelib/global/qfloat16.h ---- qtbase-everywhere-src-5.15.2/src/corelib/global/qfloat16.h.QTBUG-90395 2021-02-06 16:36:27.074105730 -0600 -+++ qtbase-everywhere-src-5.15.2/src/corelib/global/qfloat16.h 2021-02-06 16:37:19.212440114 -0600 -@@ -43,6 +43,7 @@ - - #include - #include -+#include - #include - - #if defined(QT_COMPILER_SUPPORTS_F16C) && defined(__AVX2__) && !defined(__F16C__) diff --git a/SOURCES/qtbase-everywhere-src-5.15.2-libglvnd.patch b/SOURCES/qtbase-everywhere-src-5.15.2-libglvnd.patch new file mode 100644 index 0000000..e819f8d --- /dev/null +++ b/SOURCES/qtbase-everywhere-src-5.15.2-libglvnd.patch @@ -0,0 +1,15 @@ +diff -up qtbase-everywhere-src-5.15.2/src/gui/configure.json.libglvnd qtbase-everywhere-src-5.15.2/src/gui/configure.json +--- qtbase-everywhere-src-5.15.2/src/gui/configure.json.libglvnd 2020-10-27 03:02:11.000000000 -0500 ++++ qtbase-everywhere-src-5.15.2/src/gui/configure.json 2021-09-10 10:05:53.610312223 -0500 +@@ -847,9 +847,9 @@ + ], + "include": [ "EGL/egl.h", "X11/Xlib.h" ], + "main": [ +- "Display *dpy = EGL_DEFAULT_DISPLAY;", ++ "Display *dpy = reinterpret_cast(EGL_DEFAULT_DISPLAY);", + "EGLNativeDisplayType egldpy = XOpenDisplay(\"\");", +- "dpy = egldpy;", ++ "dpy = reinterpret_cast(egldpy);", + "EGLNativeWindowType w = XCreateWindow(dpy, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);", + "XDestroyWindow(dpy, w);", + "XCloseDisplay(dpy);" diff --git a/SOURCES/qtbase-filechooser-portal-send-window-id-in-hex.patch b/SOURCES/qtbase-filechooser-portal-send-window-id-in-hex.patch deleted file mode 100644 index 4203036..0000000 --- a/SOURCES/qtbase-filechooser-portal-send-window-id-in-hex.patch +++ /dev/null @@ -1,26 +0,0 @@ -From acaabc9108dfe75530960cf8e3ec4f3602cd82e0 Mon Sep 17 00:00:00 2001 -From: Jan Grulich -Date: Mon, 08 Mar 2021 12:29:21 +0100 -Subject: [PATCH] FileChooser portal: send window id in hex - -We send window id in decimal, however, it is expected to be send in hex. -This causes a mismatch and makes portal dialog to show in background. - -Pick-to: 5.15 6.0 6.1 -Change-Id: Ibd77199bbb4a2ad4782a0457ddc5506c6b5608fe -Reviewed-by: Thiago Macieira ---- - -diff --git a/src/plugins/platformthemes/xdgdesktopportal/qxdgdesktopportalfiledialog.cpp b/src/plugins/platformthemes/xdgdesktopportal/qxdgdesktopportalfiledialog.cpp -index ec153f6..85bdd1a 100644 ---- a/src/plugins/platformthemes/xdgdesktopportal/qxdgdesktopportalfiledialog.cpp -+++ b/src/plugins/platformthemes/xdgdesktopportal/qxdgdesktopportalfiledialog.cpp -@@ -185,7 +185,7 @@ - QLatin1String("/org/freedesktop/portal/desktop"), - QLatin1String("org.freedesktop.portal.FileChooser"), - d->saveFile ? QLatin1String("SaveFile") : QLatin1String("OpenFile")); -- QString parentWindowId = QLatin1String("x11:") + QString::number(d->winId); -+ QString parentWindowId = QLatin1String("x11:") + QString::number(d->winId, 16); - - QVariantMap options; - if (!d->acceptLabel.isEmpty()) diff --git a/SPECS/qt5-qtbase.spec b/SPECS/qt5-qtbase.spec index 5aebdc6..9521b04 100644 --- a/SPECS/qt5-qtbase.spec +++ b/SPECS/qt5-qtbase.spec @@ -57,7 +57,7 @@ BuildRequires: pkgconfig(libsystemd) Name: qt5-qtbase Summary: Qt5 - QtBase components Version: 5.15.2 -Release: 25%{?dist} +Release: 27%{?dist} # See LGPL_EXCEPTIONS.txt, for exception details @@ -114,11 +114,17 @@ Patch54: qtbase-qmake_LFLAGS.patch # don't use relocatable heuristics to guess prefix when using -no-feature-relocatable Patch55: qtbase-everywhere-src-5.14.2-no_relocatable.patch +# fix FTBFS against libglvnd-1.3.4+ +Patch56: qtbase-everywhere-src-5.15.2-libglvnd.patch + # drop -O3 and make -O2 by default Patch61: qt5-qtbase-cxxflag.patch # support firebird version 3.x -Patch64: qt5-qtbase-5.12.1-firebird.patch +Patch63: qt5-qtbase-5.12.1-firebird.patch + +# support firebird version 4.x +Patch64: qt5-qtbase-5.12.1-firebird-4.0.0.patch # fix for new mariadb Patch65: qtbase-opensource-src-5.9.0-mysql.patch @@ -133,13 +139,14 @@ Patch80: qtbase-use-wayland-on-gnome.patch # gcc-11 Patch90: %{name}-gcc11.patch -# glibc stat - ## upstream patches -# see also patch90 -Patch200: qtbase-QTBUG-90395.patch -Patch201: qtbase-QTBUG-89977.patch -Patch202: qtbase-filechooser-portal-send-window-id-in-hex.patch +# https://invent.kde.org/qt/qt/qtbase, kde/5.15 branch +# git diff v5.15.2..HEAD | gzip > kde-5.15-rollup-$(date +%Y%m%d).patch.gz +# patch100 in lookaside cache due to large'ish size -- rdieter +Patch100: kde-5.15-rollup-20211012.patch.gz +Patch101: 0068-Bump-version.patch + +Patch102: qtbase-CVE-2021-38593.patch # Do not check any files in %%{_qt5_plugindir}/platformthemes/ for requires. # Those themes are there for platform integration. If the required libraries are @@ -331,10 +338,10 @@ Requires: %{name}%{?_isa} = %{version}-%{release} %package mysql Summary: MySQL driver for Qt5's SQL classes -%if 0%{?fedora} > 27 || 0%{?rhel} > 8 -BuildRequires: mariadb-connector-c-devel -%else +%if 0%{?rhel} && 0%{?rhel} < 9 BuildRequires: mysql-devel +%else +BuildRequires: mariadb-connector-c-devel %endif Requires: %{name}%{?_isa} = %{version}-%{release} %description mysql @@ -367,7 +374,7 @@ Requires: %{name}%{?_isa} = %{version}-%{release} %package gui Summary: Qt5 GUI-related libraries Requires: %{name}%{?_isa} = %{version}-%{release} -%if 0%{?fedora} > 20 +%if ! 0%{?rhel} < 8 Recommends: mesa-dri-drivers %endif Obsoletes: qt5-qtbase-x11 < 5.2.0 @@ -394,8 +401,13 @@ Qt5 libraries used for drawing widgets and OpenGL items. %patch53 -p1 -b .qt5gui_cmake_isystem_includes %patch54 -p1 -b .qmake_LFLAGS %patch55 -p1 -b .no_relocatable +%patch56 -p1 -b .libglvnd %patch61 -p1 -b .qt5-qtbase-cxxflag +%if 0%{?fedora} < 35 +%patch63 -p1 -b .firebird +%else %patch64 -p1 -b .firebird +%endif %if 0%{?fedora} > 27 %patch65 -p1 -b .mysql %endif @@ -408,8 +420,11 @@ Qt5 libraries used for drawing widgets and OpenGL items. %patch90 -p1 -b .gcc11 ## upstream patches -%patch200 -p1 -b .QTBUG-90395 -%patch201 -p1 -b .QTBUG-89977 +%patch100 -p1 +# revert version bump +%patch101 -p1 -R + +%patch102 -p1 # move some bundled libs to ensure they're not accidentally used pushd src/3rdparty @@ -483,7 +498,7 @@ export MAKEFLAGS="%{?_smp_mflags}" -shared \ -accessibility \ %{?dbus}%{!?dbus:-dbus-runtime} \ - %{?egl:-egl} \ + %{?egl:-egl -eglfs} \ -fontconfig \ -glib \ -gtk \ @@ -519,6 +534,16 @@ export MAKEFLAGS="%{?_smp_mflags}" QMAKE_CXXFLAGS_RELEASE="${CXXFLAGS:-$RPM_OPT_FLAGS}" \ QMAKE_LFLAGS_RELEASE="${LDFLAGS:-$RPM_LD_FLAGS}" +# Validate config results +for config_test in egl-x11 ; do +config_result="$(grep ^cache.${config_test}.result config.cache | cut -d= -f2 | tr -d ' ')" +if [ "${config_result}" != "true" ]; then + echo "${config_test} detection failed" + config_failed=1 +fi +done +if [ ${config_failed} -eq 1 ]; then exit 1; fi + # ensure qmake build using optflags (which can happen if not munging qmake.conf defaults) make clean -C qmake %make_build -C qmake all binary \ @@ -880,24 +905,24 @@ fi %{_qt5_libdir}/cmake/Qt5Widgets/Qt5WidgetsMacros.cmake %{_qt5_libdir}/cmake/Qt5Xml/Qt5XmlConfig*.cmake %{_qt5_libdir}/cmake/Qt5/Qt5ModuleLocation.cmake -%{_qt5_libdir}/cmake/Qt5AccessibilitySupport/Qt5AccessibilitySupportConfig*.cmake -%{_qt5_libdir}/cmake/Qt5DeviceDiscoverySupport/Qt5DeviceDiscoverySupportConfig*.cmake -%{_qt5_libdir}/cmake/Qt5EdidSupport/Qt5EdidSupportConfig*.cmake -%{_qt5_libdir}/cmake/Qt5EglFSDeviceIntegration/Qt5EglFSDeviceIntegrationConfig*.cmake -%{_qt5_libdir}/cmake/Qt5EglFsKmsSupport/Qt5EglFsKmsSupportConfig*.cmake -%{_qt5_libdir}/cmake/Qt5EglSupport/Qt5EglSupportConfig*.cmake -%{_qt5_libdir}/cmake/Qt5EventDispatcherSupport/Qt5EventDispatcherSupportConfig*.cmake -%{_qt5_libdir}/cmake/Qt5FbSupport/Qt5FbSupportConfig*.cmake -%{_qt5_libdir}/cmake/Qt5FontDatabaseSupport/Qt5FontDatabaseSupportConfig*.cmake -%{_qt5_libdir}/cmake/Qt5GlxSupport/Qt5GlxSupportConfig*.cmake -%{_qt5_libdir}/cmake/Qt5InputSupport/Qt5InputSupportConfig*.cmake -%{_qt5_libdir}/cmake/Qt5KmsSupport/Qt5KmsSupportConfig*.cmake -%{_qt5_libdir}/cmake/Qt5LinuxAccessibilitySupport/Qt5LinuxAccessibilitySupportConfig*.cmake -%{_qt5_libdir}/cmake/Qt5PlatformCompositorSupport/Qt5PlatformCompositorSupportConfig*.cmake -%{_qt5_libdir}/cmake/Qt5ServiceSupport/Qt5ServiceSupportConfig*.cmake -%{_qt5_libdir}/cmake/Qt5ThemeSupport/Qt5ThemeSupportConfig*.cmake -%{_qt5_libdir}/cmake/Qt5XcbQpa/Qt5XcbQpaConfig*.cmake -%{_qt5_libdir}/cmake/Qt5XkbCommonSupport/Qt5XkbCommonSupportConfig*.cmake +%{_qt5_libdir}/cmake/Qt5AccessibilitySupport/ +%{_qt5_libdir}/cmake/Qt5DeviceDiscoverySupport/ +%{_qt5_libdir}/cmake/Qt5EdidSupport/ +%{_qt5_libdir}/cmake/Qt5EglFSDeviceIntegration/ +%{_qt5_libdir}/cmake/Qt5EglFsKmsSupport/ +%{_qt5_libdir}/cmake/Qt5EglSupport/ +%{_qt5_libdir}/cmake/Qt5EventDispatcherSupport/ +%{_qt5_libdir}/cmake/Qt5FbSupport/ +%{_qt5_libdir}/cmake/Qt5FontDatabaseSupport/ +%{_qt5_libdir}/cmake/Qt5GlxSupport/ +%{_qt5_libdir}/cmake/Qt5InputSupport/ +%{_qt5_libdir}/cmake/Qt5KmsSupport/ +%{_qt5_libdir}/cmake/Qt5LinuxAccessibilitySupport/ +%{_qt5_libdir}/cmake/Qt5PlatformCompositorSupport/ +%{_qt5_libdir}/cmake/Qt5ServiceSupport/ +%{_qt5_libdir}/cmake/Qt5ThemeSupport/ +%{_qt5_libdir}/cmake/Qt5XcbQpa/ +%{_qt5_libdir}/cmake/Qt5XkbCommonSupport/ %{_qt5_libdir}/metatypes/qt5core_metatypes.json %{_qt5_libdir}/metatypes/qt5gui_metatypes.json %{_qt5_libdir}/metatypes/qt5widgets_metatypes.json @@ -1091,6 +1116,21 @@ fi %changelog +* Mon Oct 18 2021 Jan Grulich - 5.15.2-27 +- Sync with Fedora: + - sync kde/5.15 branch patches + - validate configure results (base, egl-x11) + + Resolves: bz#2014991 + +* Wed Sep 08 2021 Jan Grulich - 5.15.2-26 +- Sync with Fedora: + - sync kde/5.15 branch patches + - -gui: add mesa-dri-drivers soft dep for rhel8+ too + Resolves: bz#1998959 +- Fix out-of-bound write in QOutlineMapper::converPath + Resolves: bz#1996876 + * Tue Aug 10 2021 Mohan Boddu - 5.15.2-25 - Rebuilt for IMA sigs, glibc 2.34, aarch64 flags Related: rhbz#1991688