import qt5-qtbase-5.15.3-1.el8
This commit is contained in:
parent
8a1ae7ff30
commit
a6a1058298
3
.gitignore
vendored
3
.gitignore
vendored
@ -1 +1,2 @@
|
||||
SOURCES/qtbase-everywhere-src-5.15.2.tar.xz
|
||||
SOURCES/kde-5.15-rollup-20220324.patch.gz
|
||||
SOURCES/qtbase-everywhere-opensource-src-5.15.3.tar.xz
|
||||
|
@ -1 +1,2 @@
|
||||
b5ad67fc6381ad7fae0296944734198488d096a3 SOURCES/qtbase-everywhere-src-5.15.2.tar.xz
|
||||
981f5fbeb315c2e4adc122cee944368598466b67 SOURCES/kde-5.15-rollup-20220324.patch.gz
|
||||
d7383126e1f412ef26096692b9e50a1887eb11f7 SOURCES/qtbase-everywhere-opensource-src-5.15.3.tar.xz
|
||||
|
17
SOURCES/qt5-qtbase-5.12.1-firebird-4.0.0.patch
Normal file
17
SOURCES/qt5-qtbase-5.12.1-firebird-4.0.0.patch
Normal file
@ -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": {
|
171
SOURCES/qt5-qtbase-gcc11.patch
Normal file
171
SOURCES/qt5-qtbase-gcc11.patch
Normal file
@ -0,0 +1,171 @@
|
||||
diff --git a/src/corelib/codecs/qtextcodec.cpp b/src/corelib/codecs/qtextcodec.cpp
|
||||
index 06fd88da..dbff3239 100644
|
||||
--- a/src/corelib/codecs/qtextcodec.cpp
|
||||
+++ b/src/corelib/codecs/qtextcodec.cpp
|
||||
@@ -38,6 +38,7 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
+#include <limits>
|
||||
#include "qplatformdefs.h"
|
||||
|
||||
#include "qtextcodec.h"
|
||||
diff --git a/src/corelib/codecs/qutfcodec.cpp b/src/corelib/codecs/qutfcodec.cpp
|
||||
index 8561f908..8128d3cf 100644
|
||||
--- a/src/corelib/codecs/qutfcodec.cpp
|
||||
+++ b/src/corelib/codecs/qutfcodec.cpp
|
||||
@@ -38,6 +38,8 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
+#include <limits>
|
||||
+
|
||||
#include "qutfcodec_p.h"
|
||||
#include "qlist.h"
|
||||
#include "qendian.h"
|
||||
diff --git a/src/corelib/global/qendian.cpp b/src/corelib/global/qendian.cpp
|
||||
index eb08b2f8..6b41b3dd 100644
|
||||
--- a/src/corelib/global/qendian.cpp
|
||||
+++ b/src/corelib/global/qendian.cpp
|
||||
@@ -38,6 +38,7 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
+#include <limits>
|
||||
#include "qendian.h"
|
||||
|
||||
#include "qalgorithms.h"
|
||||
diff --git a/src/corelib/global/qfloat16.cpp b/src/corelib/global/qfloat16.cpp
|
||||
index c9733174..c62a1972 100644
|
||||
--- a/src/corelib/global/qfloat16.cpp
|
||||
+++ b/src/corelib/global/qfloat16.cpp
|
||||
@@ -38,6 +38,7 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
+#include <limits>
|
||||
#include "qfloat16.h"
|
||||
#include "private/qsimd_p.h"
|
||||
#include <cmath> // for fpclassify()'s return values
|
||||
diff --git a/src/corelib/global/qrandom.cpp b/src/corelib/global/qrandom.cpp
|
||||
index 10672c1f..6d5fd63e 100644
|
||||
--- a/src/corelib/global/qrandom.cpp
|
||||
+++ b/src/corelib/global/qrandom.cpp
|
||||
@@ -40,6 +40,7 @@
|
||||
// for rand_s
|
||||
#define _CRT_RAND_S
|
||||
|
||||
+#include <limits>
|
||||
#include "qrandom.h"
|
||||
#include "qrandom_p.h"
|
||||
#include <qobjectdefs.h>
|
||||
diff --git a/src/corelib/plugin/qelfparser_p.cpp b/src/corelib/plugin/qelfparser_p.cpp
|
||||
index 13eee353..9e7a7a41 100644
|
||||
--- a/src/corelib/plugin/qelfparser_p.cpp
|
||||
+++ b/src/corelib/plugin/qelfparser_p.cpp
|
||||
@@ -37,6 +37,7 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
+#include <limits>
|
||||
#include "qelfparser_p.h"
|
||||
|
||||
#if defined (Q_OF_ELF) && defined(Q_CC_GNU)
|
||||
diff --git a/src/corelib/plugin/qmachparser.cpp b/src/corelib/plugin/qmachparser.cpp
|
||||
index 11670caf..39f5596b 100644
|
||||
--- a/src/corelib/plugin/qmachparser.cpp
|
||||
+++ b/src/corelib/plugin/qmachparser.cpp
|
||||
@@ -37,6 +37,8 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
+#include <limits>
|
||||
+
|
||||
#include "qmachparser_p.h"
|
||||
|
||||
#if defined(Q_OF_MACH_O)
|
||||
diff --git a/src/corelib/plugin/quuid.cpp b/src/corelib/plugin/quuid.cpp
|
||||
index 83873edf..5aafb4e5 100644
|
||||
--- a/src/corelib/plugin/quuid.cpp
|
||||
+++ b/src/corelib/plugin/quuid.cpp
|
||||
@@ -38,6 +38,7 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
+#include <limits>
|
||||
#include "quuid.h"
|
||||
|
||||
#include "qcryptographichash.h"
|
||||
diff --git a/src/corelib/serialization/qdatastream.cpp b/src/corelib/serialization/qdatastream.cpp
|
||||
index 5082a8cb..7eecfcca 100644
|
||||
--- a/src/corelib/serialization/qdatastream.cpp
|
||||
+++ b/src/corelib/serialization/qdatastream.cpp
|
||||
@@ -40,6 +40,8 @@
|
||||
#include "qdatastream.h"
|
||||
#include "qdatastream_p.h"
|
||||
|
||||
+#include <limits>
|
||||
+
|
||||
#if !defined(QT_NO_DATASTREAM) || defined(QT_BOOTSTRAPPED)
|
||||
#include "qbuffer.h"
|
||||
#include "qfloat16.h"
|
||||
diff --git a/src/corelib/text/qbytearray.cpp b/src/corelib/text/qbytearray.cpp
|
||||
index 9a72df58..6651ee98 100644
|
||||
--- a/src/corelib/text/qbytearray.cpp
|
||||
+++ b/src/corelib/text/qbytearray.cpp
|
||||
@@ -39,6 +39,7 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
+#include <limits>
|
||||
#include "qbytearray.h"
|
||||
#include "qbytearraymatcher.h"
|
||||
#include "private/qtools_p.h"
|
||||
diff --git a/src/corelib/text/qbytearraymatcher.cpp b/src/corelib/text/qbytearraymatcher.cpp
|
||||
index 72e09226..80511cb5 100644
|
||||
--- a/src/corelib/text/qbytearraymatcher.cpp
|
||||
+++ b/src/corelib/text/qbytearraymatcher.cpp
|
||||
@@ -37,6 +37,7 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
+#include <limits>
|
||||
#include "qbytearraymatcher.h"
|
||||
|
||||
#include <limits.h>
|
||||
diff --git a/src/corelib/tools/qbitarray.cpp b/src/corelib/tools/qbitarray.cpp
|
||||
index ab3054d5..22efb3a0 100644
|
||||
--- a/src/corelib/tools/qbitarray.cpp
|
||||
+++ b/src/corelib/tools/qbitarray.cpp
|
||||
@@ -38,6 +38,7 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
+#include <limits>
|
||||
#include "qbitarray.h"
|
||||
#include <qalgorithms.h>
|
||||
#include <qdatastream.h>
|
||||
diff --git a/src/corelib/tools/qcryptographichash.cpp b/src/corelib/tools/qcryptographichash.cpp
|
||||
index fa8d21e0..cd85956d 100644
|
||||
--- a/src/corelib/tools/qcryptographichash.cpp
|
||||
+++ b/src/corelib/tools/qcryptographichash.cpp
|
||||
@@ -38,6 +38,7 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
+#include <limits>
|
||||
#include <qcryptographichash.h>
|
||||
#include <qiodevice.h>
|
||||
|
||||
diff --git a/src/gui/text/qfontengine_qpf2.cpp b/src/gui/text/qfontengine_qpf2.cpp
|
||||
index e00f9d05..917ab5f9 100644
|
||||
--- a/src/gui/text/qfontengine_qpf2.cpp
|
||||
+++ b/src/gui/text/qfontengine_qpf2.cpp
|
||||
@@ -37,6 +37,7 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
+#include <limits>
|
||||
#include "qfontengine_qpf2_p.h"
|
||||
|
||||
#include <QtCore/QFile>
|
@ -1,289 +0,0 @@
|
||||
From 081d835c040a90f8ee76807354355062ac521dfb Mon Sep 17 00:00:00 2001
|
||||
From: Eirik Aavitsland <eirik.aavitsland@qt.io>
|
||||
Date: Tue, 13 Apr 2021 14:23:45 +0200
|
||||
Subject: [PATCH] Avoid processing-intensive painting of high number of tiny
|
||||
dashes
|
||||
|
||||
When stroking a dashed path, an unnecessary amount of processing would
|
||||
be spent if there is a huge number of dashes visible, e.g. because of
|
||||
scaling. Since the dashes are too small to be indivdually visible
|
||||
anyway, just replace with a semi-transparent solid line for such
|
||||
cases.
|
||||
|
||||
Pick-to: 6.1 6.0 5.15
|
||||
Change-Id: I9e9f7861257ad5bce46a0cf113d1a9d7824911e6
|
||||
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
||||
(cherry picked from commit f4d791b330d02777fcaf02938732892eb3167e9b)
|
||||
|
||||
* asturmlechner 2021-08-21:
|
||||
Conflict from preceding 94dd2ceb in dev branch:
|
||||
src/gui/painting/qpaintengineex.cpp
|
||||
Resolved via:
|
||||
|
||||
if (pen.style() > Qt::SolidLine) {
|
||||
QRectF cpRect = path.controlPointRect();
|
||||
const QTransform &xf = state()->matrix;
|
||||
- if (pen.isCosmetic()) {
|
||||
+ if (qt_pen_is_cosmetic(pen, state()->renderHints)){
|
||||
clipRect = d->exDeviceRect;
|
||||
cpRect.translate(xf.dx(), xf.dy());
|
||||
} else {
|
||||
|
||||
FTBFS from preceding 471e4fcb in dev branch changing QVector to QList:
|
||||
Resolved via:
|
||||
|
||||
QRectF extentRect = cpRect.adjusted(-pw, -pw, pw, pw) & clipRect;
|
||||
qreal extent = qMax(extentRect.width(), extentRect.height());
|
||||
qreal patternLength = 0;
|
||||
- const QList<qreal> pattern = pen.dashPattern();
|
||||
+ const QVector<qreal> pattern = pen.dashPattern();
|
||||
const int patternSize = qMin(pattern.size(), 32);
|
||||
for (int i = 0; i < patternSize; i++)
|
||||
patternLength += qMax(pattern.at(i), qreal(0));
|
||||
---
|
||||
src/gui/painting/qpaintengineex.cpp | 44 +++++++++++++++----
|
||||
.../other/lancelot/scripts/tinydashes.qps | 34 ++++++++++++++
|
||||
2 files changed, 69 insertions(+), 9 deletions(-)
|
||||
create mode 100644 tests/auto/other/lancelot/scripts/tinydashes.qps
|
||||
|
||||
diff --git a/src/gui/painting/qpaintengineex.cpp b/src/gui/painting/qpaintengineex.cpp
|
||||
index 5d8f89eadd..55fdb0c2a0 100644
|
||||
--- a/src/gui/painting/qpaintengineex.cpp
|
||||
+++ b/src/gui/painting/qpaintengineex.cpp
|
||||
@@ -385,7 +385,7 @@ QPainterState *QPaintEngineEx::createState(QPainterState *orig) const
|
||||
|
||||
Q_GUI_EXPORT extern bool qt_scaleForTransform(const QTransform &transform, qreal *scale); // qtransform.cpp
|
||||
|
||||
-void QPaintEngineEx::stroke(const QVectorPath &path, const QPen &pen)
|
||||
+void QPaintEngineEx::stroke(const QVectorPath &path, const QPen &inPen)
|
||||
{
|
||||
#ifdef QT_DEBUG_DRAW
|
||||
qDebug() << "QPaintEngineEx::stroke()" << pen;
|
||||
@@ -403,6 +403,38 @@ void QPaintEngineEx::stroke(const QVectorPath &path, const QPen &pen)
|
||||
d->stroker.setCubicToHook(qpaintengineex_cubicTo);
|
||||
}
|
||||
|
||||
+ QRectF clipRect;
|
||||
+ QPen pen = inPen;
|
||||
+ if (pen.style() > Qt::SolidLine) {
|
||||
+ QRectF cpRect = path.controlPointRect();
|
||||
+ const QTransform &xf = state()->matrix;
|
||||
+ if (qt_pen_is_cosmetic(pen, state()->renderHints)){
|
||||
+ clipRect = d->exDeviceRect;
|
||||
+ cpRect.translate(xf.dx(), xf.dy());
|
||||
+ } else {
|
||||
+ clipRect = xf.inverted().mapRect(QRectF(d->exDeviceRect));
|
||||
+ }
|
||||
+ // Check to avoid generating unwieldy amount of dashes that will not be visible anyway
|
||||
+ QRectF extentRect = cpRect & clipRect;
|
||||
+ qreal extent = qMax(extentRect.width(), extentRect.height());
|
||||
+ qreal patternLength = 0;
|
||||
+ const QVector<qreal> pattern = pen.dashPattern();
|
||||
+ const int patternSize = qMin(pattern.size(), 32);
|
||||
+ for (int i = 0; i < patternSize; i++)
|
||||
+ patternLength += qMax(pattern.at(i), qreal(0));
|
||||
+ if (pen.widthF())
|
||||
+ patternLength *= pen.widthF();
|
||||
+ if (qFuzzyIsNull(patternLength)) {
|
||||
+ pen.setStyle(Qt::NoPen);
|
||||
+ } else if (extent / patternLength > 10000) {
|
||||
+ // approximate stream of tiny dashes with semi-transparent solid line
|
||||
+ pen.setStyle(Qt::SolidLine);
|
||||
+ QColor color(pen.color());
|
||||
+ color.setAlpha(color.alpha() / 2);
|
||||
+ pen.setColor(color);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
if (!qpen_fast_equals(pen, d->strokerPen)) {
|
||||
d->strokerPen = pen;
|
||||
d->stroker.setJoinStyle(pen.joinStyle());
|
||||
@@ -430,14 +462,8 @@ void QPaintEngineEx::stroke(const QVectorPath &path, const QPen &pen)
|
||||
return;
|
||||
}
|
||||
|
||||
- if (pen.style() > Qt::SolidLine) {
|
||||
- if (qt_pen_is_cosmetic(pen, state()->renderHints)){
|
||||
- d->activeStroker->setClipRect(d->exDeviceRect);
|
||||
- } else {
|
||||
- QRectF clipRect = state()->matrix.inverted().mapRect(QRectF(d->exDeviceRect));
|
||||
- d->activeStroker->setClipRect(clipRect);
|
||||
- }
|
||||
- }
|
||||
+ if (!clipRect.isNull())
|
||||
+ d->activeStroker->setClipRect(clipRect);
|
||||
|
||||
if (d->activeStroker == &d->stroker)
|
||||
d->stroker.setForceOpen(path.hasExplicitOpen());
|
||||
diff --git a/tests/auto/other/lancelot/scripts/tinydashes.qps b/tests/auto/other/lancelot/scripts/tinydashes.qps
|
||||
new file mode 100644
|
||||
index 0000000000..d41ced7f5f
|
||||
--- /dev/null
|
||||
+++ b/tests/auto/other/lancelot/scripts/tinydashes.qps
|
||||
@@ -0,0 +1,34 @@
|
||||
+# Version: 1
|
||||
+# CheckVsReference: 5%
|
||||
+
|
||||
+path_addEllipse mypath 20.0 20.0 200.0 200.0
|
||||
+
|
||||
+save
|
||||
+setPen blue 20 SolidLine FlatCap
|
||||
+pen_setCosmetic true
|
||||
+pen_setDashPattern [ 0.0004 0.0004 ]
|
||||
+setBrush yellow
|
||||
+
|
||||
+drawPath mypath
|
||||
+translate 300 0
|
||||
+setRenderHint Antialiasing true
|
||||
+drawPath mypath
|
||||
+restore
|
||||
+
|
||||
+path_addEllipse bigpath 200000.0 200000.0 2000000.0 2000000.0
|
||||
+
|
||||
+setPen blue 20 DotLine FlatCap
|
||||
+setBrush yellow
|
||||
+
|
||||
+save
|
||||
+translate 0 300
|
||||
+scale 0.0001 0.00011
|
||||
+drawPath bigpath
|
||||
+restore
|
||||
+
|
||||
+save
|
||||
+translate 300 300
|
||||
+setRenderHint Antialiasing true
|
||||
+scale 0.0001 0.00011
|
||||
+drawPath bigpath
|
||||
+restore
|
||||
--
|
||||
GitLab
|
||||
|
||||
From 6b400e3147dcfd8cc3a393ace1bd118c93762e0c Mon Sep 17 00:00:00 2001
|
||||
From: Eirik Aavitsland <eirik.aavitsland@qt.io>
|
||||
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 <robert.loehning@qt.io>
|
||||
---
|
||||
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 2997d533107..22e9a621c3c 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 *= pen.widthF();
|
||||
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());
|
||||
|
||||
From 427df34efdcb56582a9ae9f7d2d1f39eeff70328 Mon Sep 17 00:00:00 2001
|
||||
From: Eirik Aavitsland <eirik.aavitsland@qt.io>
|
||||
Date: Fri, 30 Jul 2021 13:03:49 +0200
|
||||
Subject: [PATCH] Refix for avoiding huge number of tiny dashes
|
||||
|
||||
Previous fix hit too widely so some valid horizontal and vertical
|
||||
lines were affected; the root problem being that such lines have an
|
||||
empty control point rect (width or height is 0). Fix by caculating in
|
||||
the pen width.
|
||||
|
||||
Pick-to: 6.2 6.1 5.15
|
||||
Change-Id: I7a436e873f6d485028f6759d0e2c6456f07eebdc
|
||||
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
||||
(cherry picked from commit 84aba80944a2e1c3058d7a1372e0e66676411884)
|
||||
---
|
||||
src/gui/painting/qpaintengineex.cpp | 8 ++---
|
||||
.../gui/painting/qpainter/tst_qpainter.cpp | 31 +++++++++++++++++++
|
||||
2 files changed, 35 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/gui/painting/qpaintengineex.cpp b/src/gui/painting/qpaintengineex.cpp
|
||||
index 19e4b23423..9fe510827a 100644
|
||||
--- a/src/gui/painting/qpaintengineex.cpp
|
||||
+++ b/src/gui/painting/qpaintengineex.cpp
|
||||
@@ -415,18 +415,18 @@ void QPaintEngineEx::stroke(const QVectorPath &path, const QPen &inPen)
|
||||
clipRect = xf.inverted().mapRect(QRectF(d->exDeviceRect));
|
||||
}
|
||||
// Check to avoid generating unwieldy amount of dashes that will not be visible anyway
|
||||
- QRectF extentRect = cpRect & clipRect;
|
||||
+ qreal pw = pen.widthF() ? pen.widthF() : 1;
|
||||
+ QRectF extentRect = cpRect.adjusted(-pw, -pw, pw, pw) & clipRect;
|
||||
qreal extent = qMax(extentRect.width(), extentRect.height());
|
||||
qreal patternLength = 0;
|
||||
const QVector<qreal> pattern = pen.dashPattern();
|
||||
const int patternSize = qMin(pattern.size(), 32);
|
||||
for (int i = 0; i < patternSize; i++)
|
||||
patternLength += qMax(pattern.at(i), qreal(0));
|
||||
- if (pen.widthF())
|
||||
- patternLength *= pen.widthF();
|
||||
+ patternLength *= pw;
|
||||
if (qFuzzyIsNull(patternLength)) {
|
||||
pen.setStyle(Qt::NoPen);
|
||||
- } else if (qFuzzyIsNull(extent) || extent / patternLength > 10000) {
|
||||
+ } else if (extent / patternLength > 10000) {
|
||||
// approximate stream of tiny dashes with semi-transparent solid line
|
||||
pen.setStyle(Qt::SolidLine);
|
||||
QColor color(pen.color());
|
||||
diff --git a/tests/auto/gui/painting/qpainter/tst_qpainter.cpp b/tests/auto/gui/painting/qpainter/tst_qpainter.cpp
|
||||
index 42e98ce363..d7c3f95f1d 100644
|
||||
--- a/tests/auto/gui/painting/qpainter/tst_qpainter.cpp
|
||||
+++ b/tests/auto/gui/painting/qpainter/tst_qpainter.cpp
|
||||
@@ -308,6 +308,7 @@ private slots:
|
||||
void fillPolygon();
|
||||
|
||||
void drawImageAtPointF();
|
||||
+ void scaledDashes();
|
||||
|
||||
private:
|
||||
void fillData();
|
||||
@@ -5468,6 +5469,36 @@ void tst_QPainter::drawImageAtPointF()
|
||||
paint.end();
|
||||
}
|
||||
|
||||
+void tst_QPainter::scaledDashes()
|
||||
+{
|
||||
+ // Test that we do not hit the limit-huge-number-of-dashes path
|
||||
+ QRgb fore = qRgb(0, 0, 0xff);
|
||||
+ QRgb back = qRgb(0xff, 0xff, 0);
|
||||
+ QImage image(5, 32, QImage::Format_RGB32);
|
||||
+ image.fill(back);
|
||||
+ QPainter p(&image);
|
||||
+ QPen pen(QColor(fore), 3, Qt::DotLine);
|
||||
+ p.setPen(pen);
|
||||
+ p.scale(1, 2);
|
||||
+ p.drawLine(2, 0, 2, 16);
|
||||
+ p.end();
|
||||
+
|
||||
+ bool foreFound = false;
|
||||
+ bool backFound = false;
|
||||
+ int i = 0;
|
||||
+ while (i < 32 && (!foreFound || !backFound)) {
|
||||
+ QRgb pix = image.pixel(3, i);
|
||||
+ if (pix == fore)
|
||||
+ foreFound = true;
|
||||
+ else if (pix == back)
|
||||
+ backFound = true;
|
||||
+ i++;
|
||||
+ }
|
||||
+
|
||||
+ QVERIFY(foreFound);
|
||||
+ QVERIFY(backFound);
|
||||
+}
|
||||
+
|
||||
QTEST_MAIN(tst_QPainter)
|
||||
|
||||
#include "tst_qpainter.moc"
|
||||
--
|
||||
GitLab
|
15
SOURCES/qtbase-everywhere-src-5.15.2-libglvnd.patch
Normal file
15
SOURCES/qtbase-everywhere-src-5.15.2-libglvnd.patch
Normal file
@ -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<Display *>(EGL_DEFAULT_DISPLAY);",
|
||||
"EGLNativeDisplayType egldpy = XOpenDisplay(\"\");",
|
||||
- "dpy = egldpy;",
|
||||
+ "dpy = reinterpret_cast<Display *>(egldpy);",
|
||||
"EGLNativeWindowType w = XCreateWindow(dpy, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);",
|
||||
"XDestroyWindow(dpy, w);",
|
||||
"XCloseDisplay(dpy);"
|
@ -17,6 +17,9 @@
|
||||
%endif
|
||||
%endif
|
||||
|
||||
# Disable automatic .la file removal
|
||||
%global __brp_remove_la_files %nil
|
||||
|
||||
%global platform linux-g++
|
||||
|
||||
%if 0%{?use_clang}
|
||||
@ -28,23 +31,23 @@
|
||||
%global rpm_macros_dir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d)
|
||||
|
||||
%global journald -journald
|
||||
BuildRequires: make
|
||||
BuildRequires: pkgconfig(libsystemd)
|
||||
|
||||
## skip for now, until we're better at it --rex
|
||||
%global examples 1
|
||||
%global build_tests 1
|
||||
#global tests 1
|
||||
|
||||
Name: qt5-qtbase
|
||||
Summary: Qt5 - QtBase components
|
||||
Version: 5.15.2
|
||||
Release: 4%{?dist}
|
||||
Version: 5.15.3
|
||||
Release: 1%{?dist}
|
||||
|
||||
# See LGPL_EXCEPTIONS.txt, for exception details
|
||||
License: LGPLv2 with exceptions or GPLv3 with exceptions
|
||||
Url: http://qt-project.org/
|
||||
%global majmin %(echo %{version} | cut -d. -f1-2)
|
||||
Source0: https://download.qt.io/official_releases/qt/%{majmin}/%{version}/submodules/%{qt_module}-everywhere-src-%{version}.tar.xz
|
||||
Source0: https://download.qt.io/official_releases/qt/%{majmin}/%{version}/submodules/%{qt_module}-everywhere-opensource-src-%{version}.tar.xz
|
||||
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1227295
|
||||
Source1: qtlogging.ini
|
||||
@ -94,20 +97,33 @@ 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
|
||||
|
||||
Patch68: qtbase-ambiguous-python-shebang.patch
|
||||
|
||||
# gcc-11
|
||||
Patch90: %{name}-gcc11.patch
|
||||
|
||||
# Security fixes
|
||||
Patch100: qtbase-CVE-2021-38593.patch
|
||||
## upstream patches
|
||||
# https://invent.kde.org/qt/qt/qtbase, kde/5.15 branch
|
||||
# git diff v5.15.3-lts-lgpl..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-20220324.patch.gz
|
||||
# HACK to make 'fedpkg sources' consider it 'used"
|
||||
Source100: kde-5.15-rollup-20220324.patch.gz
|
||||
|
||||
# Do not check any files in %%{_qt5_plugindir}/platformthemes/ for requires.
|
||||
# Those themes are there for platform integration. If the required libraries are
|
||||
@ -129,6 +145,8 @@ BuildRequires: pkgconfig(alsa)
|
||||
BuildRequires: pkgconfig(atspi-2)
|
||||
%if 0%{?use_clang}
|
||||
BuildRequires: clang >= 3.7.0
|
||||
%else
|
||||
BuildRequires: gcc-c++
|
||||
%endif
|
||||
# http://bugzilla.redhat.com/1196359
|
||||
%if 0%{?fedora} || 0%{?rhel} > 6
|
||||
@ -351,6 +369,7 @@ 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
|
||||
%patch64 -p1 -b .firebird
|
||||
%if 0%{?fedora} > 27 || 0%{?rhel} > 7
|
||||
@ -358,7 +377,10 @@ Qt5 libraries used for drawing widgets and OpenGL items.
|
||||
%endif
|
||||
%patch68 -p1
|
||||
|
||||
%patch100 -p1 -b .CVE-2021-38593
|
||||
%patch90 -p1 -b .gcc11
|
||||
|
||||
## upstream patches
|
||||
%patch100 -p1
|
||||
|
||||
# move some bundled libs to ensure they're not accidentally used
|
||||
pushd src/3rdparty
|
||||
@ -384,6 +406,13 @@ sed -i -e "s|^#!/usr/bin/env perl$|#!%{__perl}|" \
|
||||
mkspecs/features/data/unix/findclasslist.pl
|
||||
|
||||
%build
|
||||
# QT is known not to work properly with LTO at this point. Some of the issues
|
||||
# are being worked on upstream and disabling LTO should be re-evaluated as
|
||||
# we update this change. Until such time...
|
||||
# Disable LTO
|
||||
# https://bugzilla.redhat.com/1900527
|
||||
%define _lto_cflags %{nil}
|
||||
|
||||
## adjust $RPM_OPT_FLAGS
|
||||
# remove -fexceptions
|
||||
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS | sed 's|-fexceptions||g'`
|
||||
@ -420,7 +449,7 @@ export MAKEFLAGS="%{?_smp_mflags}"
|
||||
-shared \
|
||||
-accessibility \
|
||||
%{?dbus}%{!?dbus:-dbus-runtime} \
|
||||
%{?egl:-egl} \
|
||||
%{?egl:-egl -eglfs} \
|
||||
-fontconfig \
|
||||
-glib \
|
||||
-gtk \
|
||||
@ -516,7 +545,7 @@ translationdir=%{_qt5_translationdir}
|
||||
|
||||
Name: Qt5
|
||||
Description: Qt5 Configuration
|
||||
Version: %{version}
|
||||
Version: 5.15.3
|
||||
EOF
|
||||
|
||||
# rpm macros
|
||||
@ -596,6 +625,10 @@ EOF
|
||||
mkdir -p %{buildroot}%{_qt5_headerdir}/QtXcb
|
||||
install -m 644 src/plugins/platforms/xcb/*.h %{buildroot}%{_qt5_headerdir}/QtXcb/
|
||||
|
||||
# drop Qt5Bootstrap from -static (#2017661)
|
||||
rm -f %{buildroot}%{_qt5_libdir}/libQt5Bootstrap.*a
|
||||
rm -f %{buildroot}%{_qt5_libdir}/libQt5Bootstrap.prl
|
||||
|
||||
%check
|
||||
# verify Qt5.pc
|
||||
export PKG_CONFIG_PATH=%{buildroot}%{_libdir}/pkgconfig
|
||||
@ -698,7 +731,7 @@ fi
|
||||
%{_qt5_importdir}/
|
||||
%{_qt5_translationdir}/
|
||||
%if "%{_qt5_prefix}" != "%{_prefix}"
|
||||
%dir %{_qt5_prefix}
|
||||
%dir %{_qt5_prefix}/
|
||||
%endif
|
||||
%dir %{_qt5_archdatadir}/
|
||||
%dir %{_qt5_datadir}/
|
||||
@ -810,7 +843,6 @@ fi
|
||||
%{_qt5_libdir}/cmake/Qt5DBus/Qt5DBusConfig*.cmake
|
||||
%{_qt5_libdir}/cmake/Qt5DBus/Qt5DBusMacros.cmake
|
||||
%{_qt5_libdir}/cmake/Qt5Gui/Qt5GuiConfig*.cmake
|
||||
%{_qt5_libdir}/cmake/Qt5Gui/Qt5Gui_QLibInputPlugin.cmake
|
||||
%{_qt5_libdir}/cmake/Qt5Network/Qt5NetworkConfig*.cmake
|
||||
%{_qt5_libdir}/cmake/Qt5OpenGL/Qt5OpenGLConfig*.cmake
|
||||
%{_qt5_libdir}/cmake/Qt5PrintSupport/Qt5PrintSupportConfig*.cmake
|
||||
@ -820,24 +852,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
|
||||
@ -868,8 +900,6 @@ fi
|
||||
#{_qt5_archdatadir}/mkspecs/modules/qt_lib_*_private.pri
|
||||
|
||||
%files static
|
||||
%{_qt5_libdir}/libQt5Bootstrap.*a
|
||||
%{_qt5_libdir}/libQt5Bootstrap.prl
|
||||
%{_qt5_headerdir}/QtOpenGLExtensions/
|
||||
%{_qt5_libdir}/libQt5OpenGLExtensions.*a
|
||||
%{_qt5_libdir}/libQt5OpenGLExtensions.prl
|
||||
@ -1025,6 +1055,11 @@ fi
|
||||
|
||||
|
||||
%changelog
|
||||
* Thu Mar 24 2022 Jan Grulich <jgrulich@redhat.com> - 5.15.3-1
|
||||
- 5.15.3 + sync with Fedora
|
||||
Resolves: bz#2061377
|
||||
Resolves: bz#2059853
|
||||
|
||||
* Tue Oct 12 2021 Jan Grulich <jgrulich@redhat.com> - 5.15.2-4
|
||||
- Fix out-of-bounds write in QOutlineMapper::convertPath
|
||||
Resolves: bz#1996877
|
||||
|
Loading…
Reference in New Issue
Block a user