format patches
This commit is contained in:
parent
9dcf79f8fe
commit
c2a0d75dd0
|
@ -1,19 +1,27 @@
|
|||
Description: 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 individually visible
|
||||
anyway, just replace with a semi-transparent solid line for such
|
||||
cases.
|
||||
From: Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
|
||||
Date: Sat, 14 May 2022 17:41:00 +0800
|
||||
Subject: 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 individually visible
|
||||
anyway, just replace with a semi-transparent solid line for such
|
||||
cases.
|
||||
Origin: upstream, commits:
|
||||
https://code.qt.io/cgit/qt/qtbase.git/commit/?id=f4d791b330d02777
|
||||
https://code.qt.io/cgit/qt/qtbase.git/commit/?id=6b400e3147dcfd8c
|
||||
https://code.qt.io/cgit/qt/qtbase.git/commit/?id=84aba80944a2e1c3
|
||||
https://code.qt.io/cgit/qt/qtbase.git/commit/?id=cca8ed0547405b1c
|
||||
Last-Update: 2021-11-27
|
||||
---
|
||||
src/gui/painting/qpaintengineex.cpp | 46 +++++++++++++++++++++++++++++--------
|
||||
1 file changed, 36 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/src/gui/painting/qpaintengineex.cpp b/src/gui/painting/qpaintengineex.cpp
|
||||
index 5d8f89e..a7d2e7a 100644
|
||||
--- a/src/gui/painting/qpaintengineex.cpp
|
||||
+++ b/src/gui/painting/qpaintengineex.cpp
|
||||
@@ -385,10 +385,10 @@ QPainterState *QPaintEngineEx::createSta
|
||||
@@ -385,10 +385,10 @@ QPainterState *QPaintEngineEx::createState(QPainterState *orig) const
|
||||
|
||||
Q_GUI_EXPORT extern bool qt_scaleForTransform(const QTransform &transform, qreal *scale); // qtransform.cpp
|
||||
|
||||
|
@ -26,7 +34,7 @@ Last-Update: 2021-11-27
|
|||
#endif
|
||||
|
||||
Q_D(QPaintEngineEx);
|
||||
@@ -403,6 +403,38 @@ void QPaintEngineEx::stroke(const QVecto
|
||||
@@ -403,6 +403,38 @@ void QPaintEngineEx::stroke(const QVectorPath &path, const QPen &pen)
|
||||
d->stroker.setCubicToHook(qpaintengineex_cubicTo);
|
||||
}
|
||||
|
||||
|
@ -65,7 +73,7 @@ Last-Update: 2021-11-27
|
|||
if (!qpen_fast_equals(pen, d->strokerPen)) {
|
||||
d->strokerPen = pen;
|
||||
d->stroker.setJoinStyle(pen.joinStyle());
|
||||
@@ -430,14 +462,8 @@ void QPaintEngineEx::stroke(const QVecto
|
||||
@@ -430,14 +462,8 @@ void QPaintEngineEx::stroke(const QVectorPath &path, const QPen &pen)
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,19 +1,28 @@
|
|||
Description: QProcess: ensure we don't accidentally execute something from CWD
|
||||
Unless "." (or the empty string) is in $PATH, we're not supposed to find
|
||||
executables in the current directory. This is how the Unix shells behave
|
||||
and we match their behavior. It's also the behavior Qt had prior to 5.9
|
||||
(commit 28666d167aa8e602c0bea25ebc4d51b55005db13). On Windows, searching
|
||||
the current directory is the norm, so we keep that behavior.
|
||||
.
|
||||
This commit does not add an explicit check for an empty return from
|
||||
QStandardPaths::findExecutable(). Instead, we allow that empty string to
|
||||
go all the way to execve(2), which will fail with ENOENT. We could catch
|
||||
it early, before fork(2), but why add code for the error case?
|
||||
.
|
||||
See https://kde.org/info/security/advisory-20220131-1.txt
|
||||
From: Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
|
||||
Date: Sat, 14 May 2022 17:41:01 +0800
|
||||
Subject: QProcess: ensure we don't accidentally execute something from CWD
|
||||
|
||||
Unless "." (or the empty string) is in $PATH, we're not supposed to find
|
||||
executables in the current directory. This is how the Unix shells behave
|
||||
and we match their behavior. It's also the behavior Qt had prior to 5.9
|
||||
(commit 28666d167aa8e602c0bea25ebc4d51b55005db13). On Windows, searching
|
||||
the current directory is the norm, so we keep that behavior.
|
||||
|
||||
This commit does not add an explicit check for an empty return from
|
||||
QStandardPaths::findExecutable(). Instead, we allow that empty string to
|
||||
go all the way to execve(2), which will fail with ENOENT. We could catch
|
||||
it early, before fork(2), but why add code for the error case?
|
||||
|
||||
See https://kde.org/info/security/advisory-20220131-1.txt
|
||||
Origin: upstream, https://download.qt.io/official_releases/qt/5.15/CVE-2022-25255-qprocess5-15.diff
|
||||
Last-Update: 2022-02-21
|
||||
---
|
||||
src/corelib/io/qprocess_unix.cpp | 28 ++++++++++++----------
|
||||
.../kernel/qapplication/tst_qapplication.cpp | 4 ++--
|
||||
2 files changed, 17 insertions(+), 15 deletions(-)
|
||||
|
||||
diff --git a/src/corelib/io/qprocess_unix.cpp b/src/corelib/io/qprocess_unix.cpp
|
||||
index 50390e5..15c8f30 100644
|
||||
--- a/src/corelib/io/qprocess_unix.cpp
|
||||
+++ b/src/corelib/io/qprocess_unix.cpp
|
||||
@@ -1,7 +1,7 @@
|
||||
|
@ -47,7 +56,7 @@ Last-Update: 2022-02-21
|
|||
|
||||
// Add every argument to the list
|
||||
for (int i = 0; i < arguments.count(); ++i)
|
||||
@@ -983,15 +984,16 @@ bool QProcessPrivate::startDetached(qint
|
||||
@@ -983,15 +984,16 @@ bool QProcessPrivate::startDetached(qint64 *pid)
|
||||
envp = _q_dupEnvironment(environment.d.constData()->vars, &envc);
|
||||
}
|
||||
|
||||
|
@ -70,9 +79,11 @@ Last-Update: 2022-02-21
|
|||
|
||||
if (envp)
|
||||
qt_safe_execve(argv[0], argv, envp);
|
||||
diff --git a/tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp b/tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp
|
||||
index 69a81bd..8e81425 100644
|
||||
--- a/tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp
|
||||
+++ b/tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp
|
||||
@@ -1493,7 +1493,7 @@ void tst_QApplication::desktopSettingsAw
|
||||
@@ -1493,7 +1493,7 @@ void tst_QApplication::desktopSettingsAware()
|
||||
{
|
||||
#if QT_CONFIG(process)
|
||||
QProcess testProcess;
|
||||
|
|
|
@ -1,8 +1,15 @@
|
|||
Description: support ARMv4 architecture, needed for armel builds
|
||||
Author: Dmitry Shachnev <mitya57@debian.org>
|
||||
From: Dmitry Shachnev <mitya57@debian.org>
|
||||
Date: Sat, 14 May 2022 17:41:01 +0800
|
||||
Subject: support ARMv4 architecture, needed for armel builds
|
||||
|
||||
Forwarded: no
|
||||
Last-Update: 2016-07-01
|
||||
---
|
||||
src/corelib/global/qprocessordetection.h | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/src/corelib/global/qprocessordetection.h b/src/corelib/global/qprocessordetection.h
|
||||
index 8d65720..a6ead54 100644
|
||||
--- a/src/corelib/global/qprocessordetection.h
|
||||
+++ b/src/corelib/global/qprocessordetection.h
|
||||
@@ -132,6 +132,8 @@
|
||||
|
|
|
@ -1,7 +1,14 @@
|
|||
Description: properly cast types for libglvnd 1.3.4
|
||||
Origin: https://src.fedoraproject.org/rpms/qt5-qtbase/blob/rawhide/f/qtbase-everywhere-src-5.15.2-libglvnd.patch
|
||||
Author: Rex Dieter <rdieter@gmail.com>
|
||||
From: Rex Dieter <rdieter@gmail.com>
|
||||
Date: Sat, 14 May 2022 17:41:01 +0800
|
||||
Subject: properly cast types for libglvnd 1.3.4
|
||||
|
||||
Origin: https://src.fedoraproject.org/rpms/qt5-qtbase/blob/rawhide/f/qtbase-everywhere-src-5.15.2-libglvnd.patch
|
||||
---
|
||||
src/gui/configure.json | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/gui/configure.json b/src/gui/configure.json
|
||||
index 1f08795..f159568 100644
|
||||
--- a/src/gui/configure.json
|
||||
+++ b/src/gui/configure.json
|
||||
@@ -838,9 +838,9 @@
|
||||
|
|
|
@ -1,15 +1,25 @@
|
|||
Description: call pkgconfig in order to be able to cross build qtbase with MySql.
|
||||
Qt's build system calls mysql_config... which won't work in a cross build
|
||||
environment like Debian's, as it will throw an exec format error.
|
||||
.
|
||||
In order to solve this call pkgconfig and use mysqlclient.pc.
|
||||
Author: Helmut Grohne <helmut@subdivi.de>
|
||||
From: Helmut Grohne <helmut@subdivi.de>
|
||||
Date: Sat, 14 May 2022 17:41:01 +0800
|
||||
Subject: call pkgconfig in order to be able to cross build qtbase with MySql.
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Qt's build system calls mysql_config... which won't work in a cross build
|
||||
environment like Debian's, as it will throw an exec format error.
|
||||
|
||||
In order to solve this call pkgconfig and use mysqlclient.pc.
|
||||
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=971604
|
||||
Forwarded: not-needed
|
||||
Reviewed-by: Lisandro Damián Nicanor Pérez Meyer <lisandro@debian.org>
|
||||
---
|
||||
src/plugins/sqldrivers/configure.json | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
--- qtbase-opensource-src-5.14.2+dfsg.orig/src/plugins/sqldrivers/configure.json
|
||||
+++ qtbase-opensource-src-5.14.2+dfsg/src/plugins/sqldrivers/configure.json
|
||||
diff --git a/src/plugins/sqldrivers/configure.json b/src/plugins/sqldrivers/configure.json
|
||||
index 9db93d6..5c35cd9 100644
|
||||
--- a/src/plugins/sqldrivers/configure.json
|
||||
+++ b/src/plugins/sqldrivers/configure.json
|
||||
@@ -67,6 +67,7 @@
|
||||
},
|
||||
"headers": "mysql.h",
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
From c47bb4478a4c3a29c0505d7d89755f40601b326f Mon Sep 17 00:00:00 2001
|
||||
From: Zhang Yu <zhangyub@uniontech.com>
|
||||
Date: Mon, 22 Feb 2021 09:25:01 +0800
|
||||
Subject: [PATCH] Fix invalid pointer return with QGridLayout::itemAt(-1)
|
||||
|
@ -11,12 +10,15 @@ Pick-to: 5.15 6.0 6.1
|
|||
Change-Id: Idfb9fb6228b9707f817353b04974da16205a835c
|
||||
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
|
||||
---
|
||||
src/widgets/kernel/qgridlayout.cpp | 6 +--
|
||||
.../widgets/kernel/qgridlayout/tst_qgridlayout.cpp | 51 ++++++++++++++++++++++
|
||||
2 files changed, 54 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/widgets/kernel/qgridlayout.cpp b/src/widgets/kernel/qgridlayout.cpp
|
||||
index 121bae0..336a68c 100644
|
||||
index b4e8541..e2777b6 100644
|
||||
--- a/src/widgets/kernel/qgridlayout.cpp
|
||||
+++ b/src/widgets/kernel/qgridlayout.cpp
|
||||
@@ -149,14 +149,14 @@
|
||||
@@ -149,14 +149,14 @@ public:
|
||||
QRect cellRect(int row, int col) const;
|
||||
|
||||
inline QLayoutItem *itemAt(int index) const {
|
||||
|
@ -33,7 +35,7 @@ index 121bae0..336a68c 100644
|
|||
if (QGridBox *b = things.takeAt(index)) {
|
||||
QLayoutItem *item = b->takeItem();
|
||||
if (QLayout *l = item->layout()) {
|
||||
@@ -184,7 +184,7 @@
|
||||
@@ -184,7 +184,7 @@ public:
|
||||
}
|
||||
|
||||
void getItemPosition(int index, int *row, int *column, int *rowSpan, int *columnSpan) const {
|
||||
|
@ -43,10 +45,10 @@ index 121bae0..336a68c 100644
|
|||
int toRow = b->toRow(rr);
|
||||
int toCol = b->toCol(cc);
|
||||
diff --git a/tests/auto/widgets/kernel/qgridlayout/tst_qgridlayout.cpp b/tests/auto/widgets/kernel/qgridlayout/tst_qgridlayout.cpp
|
||||
index e3bd1d1..2cf2462 100644
|
||||
index 1d63d14..d57da3c 100644
|
||||
--- a/tests/auto/widgets/kernel/qgridlayout/tst_qgridlayout.cpp
|
||||
+++ b/tests/auto/widgets/kernel/qgridlayout/tst_qgridlayout.cpp
|
||||
@@ -75,6 +75,7 @@
|
||||
@@ -75,6 +75,7 @@ private slots:
|
||||
void taskQTBUG_40609_addingWidgetToItsOwnLayout();
|
||||
void taskQTBUG_40609_addingLayoutToItself();
|
||||
void taskQTBUG_52357_spacingWhenItemIsHidden();
|
||||
|
@ -54,7 +56,7 @@ index e3bd1d1..2cf2462 100644
|
|||
void replaceWidget();
|
||||
void dontCrashWhenExtendsToEnd();
|
||||
};
|
||||
@@ -1666,6 +1667,56 @@
|
||||
@@ -1666,6 +1667,56 @@ void tst_QGridLayout::taskQTBUG_52357_spacingWhenItemIsHidden()
|
||||
QTRY_COMPARE_WITH_TIMEOUT(tempWidth, button1.width() + button3.width() + layout.spacing(), 1000);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,24 +1,33 @@
|
|||
Description: fix misplacement of placeholder text in QLineEdit with RTL content
|
||||
The placeholder text was rendered in the wrong position after clicking
|
||||
on the clear button in a QLineEdit with right-to-left content. The
|
||||
button was still taking up space while it was fading out, so the first
|
||||
paintEvent rendered the placeholder with space reserved for the clear
|
||||
button. Once the button gets hidden, no new update was issued, so
|
||||
garbage was left behind.
|
||||
.
|
||||
Fix this by not giving a fading-out clear button any margin space. The
|
||||
result of this is that the placeholder text is visible underneath the
|
||||
fading-out clear button. This is preferable to the placeholder text
|
||||
being first rendered next to the fading-out clear button, and then
|
||||
popping to the edge when the clear button is hidden (which would have
|
||||
been the result of issuing a complete update for the line edit at the
|
||||
end of the fade-out animation).
|
||||
From: Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
|
||||
Date: Sat, 14 May 2022 17:41:00 +0800
|
||||
Subject: fix misplacement of placeholder text in QLineEdit with RTL content
|
||||
|
||||
The placeholder text was rendered in the wrong position after clicking
|
||||
on the clear button in a QLineEdit with right-to-left content. The
|
||||
button was still taking up space while it was fading out, so the first
|
||||
paintEvent rendered the placeholder with space reserved for the clear
|
||||
button. Once the button gets hidden, no new update was issued, so
|
||||
garbage was left behind.
|
||||
|
||||
Fix this by not giving a fading-out clear button any margin space. The
|
||||
result of this is that the placeholder text is visible underneath the
|
||||
fading-out clear button. This is preferable to the placeholder text
|
||||
being first rendered next to the fading-out clear button, and then
|
||||
popping to the edge when the clear button is hidden (which would have
|
||||
been the result of issuing a complete update for the line edit at the
|
||||
end of the fade-out animation).
|
||||
Origin: upstream, https://code.qt.io/cgit/qt/qtbase.git/commit/?id=dc794f7622bc00f7
|
||||
Last-Update: 2021-06-16
|
||||
---
|
||||
src/widgets/widgets/qlineedit_p.cpp | 14 +++++++++++---
|
||||
src/widgets/widgets/qlineedit_p.h | 2 ++
|
||||
2 files changed, 13 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/widgets/widgets/qlineedit_p.cpp b/src/widgets/widgets/qlineedit_p.cpp
|
||||
index b854d9d..3eb3abc 100644
|
||||
--- a/src/widgets/widgets/qlineedit_p.cpp
|
||||
+++ b/src/widgets/widgets/qlineedit_p.cpp
|
||||
@@ -664,10 +664,18 @@ static int effectiveTextMargin(int defau
|
||||
@@ -664,10 +664,18 @@ static int effectiveTextMargin(int defaultMargin, const QLineEditPrivate::SideWi
|
||||
if (widgets.empty())
|
||||
return defaultMargin;
|
||||
|
||||
|
@ -40,6 +49,8 @@ Last-Update: 2021-06-16
|
|||
}
|
||||
|
||||
QMargins QLineEditPrivate::effectiveTextMargins() const
|
||||
diff --git a/src/widgets/widgets/qlineedit_p.h b/src/widgets/widgets/qlineedit_p.h
|
||||
index 5ae402b..bbe3e8e 100644
|
||||
--- a/src/widgets/widgets/qlineedit_p.h
|
||||
+++ b/src/widgets/widgets/qlineedit_p.h
|
||||
@@ -95,6 +95,8 @@ public:
|
||||
|
|
|
@ -1,21 +1,31 @@
|
|||
Description: fix placement of placeholder text in QLineEdits with action icons
|
||||
After dc794f7622bc00f7ca50fab65d6965695d6d2972, side widgets only got
|
||||
space if they were not fading out, but the logic was not correctly
|
||||
accounting for side widgets that never fade, such as buttons added via
|
||||
QLineEdit::addAction.
|
||||
.
|
||||
Fix this to give visible widgets space, unless they are fading out. That
|
||||
was the intent of the original change. Rename the variable to make its
|
||||
purpose clearer, and reset it at the end of the fade-out animation.
|
||||
.
|
||||
Add a much-needed test that relies on private APIs to verify that the
|
||||
effective margins are calculated correctly.
|
||||
From: Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
|
||||
Date: Sat, 14 May 2022 17:41:00 +0800
|
||||
Subject: fix placement of placeholder text in QLineEdits with action icons
|
||||
|
||||
After dc794f7622bc00f7ca50fab65d6965695d6d2972, side widgets only got
|
||||
space if they were not fading out, but the logic was not correctly
|
||||
accounting for side widgets that never fade, such as buttons added via
|
||||
QLineEdit::addAction.
|
||||
|
||||
Fix this to give visible widgets space, unless they are fading out. That
|
||||
was the intent of the original change. Rename the variable to make its
|
||||
purpose clearer, and reset it at the end of the fade-out animation.
|
||||
|
||||
Add a much-needed test that relies on private APIs to verify that the
|
||||
effective margins are calculated correctly.
|
||||
Origin: upstream, https://code.qt.io/cgit/qt/qtbase.git/commit/?id=0e6b31019f01c72e
|
||||
Last-Update: 2021-08-10
|
||||
---
|
||||
src/widgets/widgets/qlineedit_p.cpp | 5 +-
|
||||
src/widgets/widgets/qlineedit_p.h | 9 ++-
|
||||
.../widgets/widgets/qlineedit/tst_qlineedit.cpp | 66 ++++++++++++++++++++++
|
||||
3 files changed, 75 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/src/widgets/widgets/qlineedit_p.cpp b/src/widgets/widgets/qlineedit_p.cpp
|
||||
index 3eb3abc..bad36fd 100644
|
||||
--- a/src/widgets/widgets/qlineedit_p.cpp
|
||||
+++ b/src/widgets/widgets/qlineedit_p.cpp
|
||||
@@ -407,8 +407,9 @@ void QLineEditIconButton::setHideWithTex
|
||||
@@ -407,8 +407,9 @@ void QLineEditIconButton::setHideWithText(bool hide)
|
||||
|
||||
void QLineEditIconButton::onAnimationFinished()
|
||||
{
|
||||
|
@ -26,7 +36,7 @@ Last-Update: 2021-08-10
|
|||
|
||||
// Invalidate previous geometry to take into account new size of side widgets
|
||||
if (auto le = lineEditPrivate())
|
||||
@@ -418,7 +419,7 @@ void QLineEditIconButton::onAnimationFin
|
||||
@@ -418,7 +419,7 @@ void QLineEditIconButton::onAnimationFinished()
|
||||
|
||||
void QLineEditIconButton::animateShow(bool visible)
|
||||
{
|
||||
|
@ -35,6 +45,8 @@ Last-Update: 2021-08-10
|
|||
|
||||
if (shouldHideWithText() && !isVisible()) {
|
||||
show();
|
||||
diff --git a/src/widgets/widgets/qlineedit_p.h b/src/widgets/widgets/qlineedit_p.h
|
||||
index bbe3e8e..f55210f 100644
|
||||
--- a/src/widgets/widgets/qlineedit_p.h
|
||||
+++ b/src/widgets/widgets/qlineedit_p.h
|
||||
@@ -95,8 +95,11 @@ public:
|
||||
|
@ -60,6 +72,8 @@ Last-Update: 2021-08-10
|
|||
#endif
|
||||
|
||||
};
|
||||
diff --git a/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp b/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp
|
||||
index 6408df3..7c2203d 100644
|
||||
--- a/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp
|
||||
+++ b/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp
|
||||
@@ -292,6 +292,7 @@ private slots:
|
||||
|
@ -70,7 +84,7 @@ Last-Update: 2021-08-10
|
|||
|
||||
void shouldShowPlaceholderText_data();
|
||||
void shouldShowPlaceholderText();
|
||||
@@ -4646,6 +4647,71 @@ void tst_QLineEdit::sideWidgetsActionEve
|
||||
@@ -4646,6 +4647,71 @@ void tst_QLineEdit::sideWidgetsActionEvents()
|
||||
QCOMPARE(toolButton2->x(), toolButton1X);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,16 +1,26 @@
|
|||
Description: fix recursion crash when calling setStyleSheet with qproperty-styleSheet
|
||||
When calling setStyleSheet with property qproperty-styleSheet,
|
||||
QStyleSheetStyle::polish will call QStyleSheetStyle::setProperties,
|
||||
and then QStyleSheetStyle::setProperties goes on to call setProperty.
|
||||
Because there is property qproperty-styleSheet, it will update
|
||||
stylesheet by calling QStyleSheetStyle::polish.
|
||||
This causes the recursive call to crash.
|
||||
From: Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
|
||||
Date: Sat, 14 May 2022 17:41:00 +0800
|
||||
Subject: fix recursion crash when calling setStyleSheet with
|
||||
qproperty-styleSheet
|
||||
|
||||
When calling setStyleSheet with property qproperty-styleSheet,
|
||||
QStyleSheetStyle::polish will call QStyleSheetStyle::setProperties,
|
||||
and then QStyleSheetStyle::setProperties goes on to call setProperty.
|
||||
Because there is property qproperty-styleSheet, it will update
|
||||
stylesheet by calling QStyleSheetStyle::polish.
|
||||
This causes the recursive call to crash.
|
||||
Origin: upstream, https://code.qt.io/cgit/qt/qtbase.git/commit/?id=e9cdcc7cb314586a
|
||||
Last-Update: 2021-11-13
|
||||
---
|
||||
src/widgets/styles/qstylesheetstyle.cpp | 3 +++
|
||||
.../styles/qstylesheetstyle/tst_qstylesheetstyle.cpp | 18 ++++++++++++++++++
|
||||
2 files changed, 21 insertions(+)
|
||||
|
||||
diff --git a/src/widgets/styles/qstylesheetstyle.cpp b/src/widgets/styles/qstylesheetstyle.cpp
|
||||
index 53fff29..f9ab558 100644
|
||||
--- a/src/widgets/styles/qstylesheetstyle.cpp
|
||||
+++ b/src/widgets/styles/qstylesheetstyle.cpp
|
||||
@@ -2640,6 +2640,9 @@ void QStyleSheetStyle::setProperties(QWi
|
||||
@@ -2640,6 +2640,9 @@ void QStyleSheetStyle::setProperties(QWidget *w)
|
||||
default: v = decl.d->values.at(0).variant; break;
|
||||
}
|
||||
|
||||
|
@ -20,6 +30,8 @@ Last-Update: 2021-11-13
|
|||
w->setProperty(propertyL1, v);
|
||||
}
|
||||
}
|
||||
diff --git a/tests/auto/widgets/styles/qstylesheetstyle/tst_qstylesheetstyle.cpp b/tests/auto/widgets/styles/qstylesheetstyle/tst_qstylesheetstyle.cpp
|
||||
index 26868a7..5d67ce5 100644
|
||||
--- a/tests/auto/widgets/styles/qstylesheetstyle/tst_qstylesheetstyle.cpp
|
||||
+++ b/tests/auto/widgets/styles/qstylesheetstyle/tst_qstylesheetstyle.cpp
|
||||
@@ -94,6 +94,7 @@ private slots:
|
||||
|
|
|
@ -1,15 +1,23 @@
|
|||
Description: fix QTextFormat::FullWidthSelection for right-to-left text layouts
|
||||
Using the QTextFormat::FullWidthSelection property to select a line
|
||||
would previously not take into account right-to-left text layouts.
|
||||
.
|
||||
With this patch, the whole line should now be drawn correctly for both
|
||||
left-to-right, and right-to-left layouts.
|
||||
From: Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
|
||||
Date: Sat, 14 May 2022 17:41:00 +0800
|
||||
Subject: fix QTextFormat::FullWidthSelection for right-to-left text layouts
|
||||
|
||||
Using the QTextFormat::FullWidthSelection property to select a line
|
||||
would previously not take into account right-to-left text layouts.
|
||||
|
||||
With this patch, the whole line should now be drawn correctly for both
|
||||
left-to-right, and right-to-left layouts.
|
||||
Origin: upstream, https://code.qt.io/cgit/qt/qtbase.git/commit/?id=a7894855f2f59028
|
||||
Last-Update: 2021-08-15
|
||||
---
|
||||
src/gui/text/qtextlayout.cpp | 15 +++++++++++----
|
||||
1 file changed, 11 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/gui/text/qtextlayout.cpp b/src/gui/text/qtextlayout.cpp
|
||||
index 5ae41d9..a82d061 100644
|
||||
--- a/src/gui/text/qtextlayout.cpp
|
||||
+++ b/src/gui/text/qtextlayout.cpp
|
||||
@@ -1173,10 +1173,17 @@ void QTextLayout::draw(QPainter *p, cons
|
||||
@@ -1173,10 +1173,17 @@ void QTextLayout::draw(QPainter *p, const QPointF &pos, const QVector<FormatRang
|
||||
QRectF fullLineRect(tl.rect());
|
||||
fullLineRect.translate(position);
|
||||
fullLineRect.setRight(QFIXED_MAX);
|
||||
|
|
|
@ -1,16 +1,24 @@
|
|||
Description: QPushButton/fusion style: don't ignore QIcon::On icon
|
||||
The fusion style did ignore the QIcon::On icon because it reset
|
||||
State_On to avoid the visual shift of a pressed button.
|
||||
But it's not needed to reset this flag - the shift does not happen
|
||||
because the fusion style does return 0 as offset for
|
||||
PM_ButtonShiftHorizontal/PM_ButtonShiftVertical so no shifting will
|
||||
happen.
|
||||
From: Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
|
||||
Date: Sat, 14 May 2022 17:41:00 +0800
|
||||
Subject: QPushButton/fusion style: don't ignore QIcon::On icon
|
||||
|
||||
The fusion style did ignore the QIcon::On icon because it reset
|
||||
State_On to avoid the visual shift of a pressed button.
|
||||
But it's not needed to reset this flag - the shift does not happen
|
||||
because the fusion style does return 0 as offset for
|
||||
PM_ButtonShiftHorizontal/PM_ButtonShiftVertical so no shifting will
|
||||
happen.
|
||||
Origin: upstream, https://code.qt.io/cgit/qt/qtbase.git/commit/?id=e9ccdf4d84157173
|
||||
Last-Update: 2021-08-10
|
||||
---
|
||||
src/widgets/styles/qfusionstyle.cpp | 8 --------
|
||||
1 file changed, 8 deletions(-)
|
||||
|
||||
diff --git a/src/widgets/styles/qfusionstyle.cpp b/src/widgets/styles/qfusionstyle.cpp
|
||||
index f4345d9..962912c 100644
|
||||
--- a/src/widgets/styles/qfusionstyle.cpp
|
||||
+++ b/src/widgets/styles/qfusionstyle.cpp
|
||||
@@ -1772,14 +1772,6 @@ void QFusionStyle::drawControl(ControlEl
|
||||
@@ -1772,14 +1772,6 @@ void QFusionStyle::drawControl(ControlElement element, const QStyleOption *optio
|
||||
proxy()->drawControl(CE_PushButtonLabel, &subopt, painter, widget);
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -1,9 +1,17 @@
|
|||
Description: Fix builds of qtconcurrentthreadengine.h with GCC 11
|
||||
Without this patch, all the code that #includes QtConcurrent headers
|
||||
will fail to compile with GCC 11.
|
||||
From: Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
|
||||
Date: Sat, 14 May 2022 17:41:01 +0800
|
||||
Subject: Fix builds of qtconcurrentthreadengine.h with GCC 11
|
||||
|
||||
Without this patch, all the code that #includes QtConcurrent headers
|
||||
will fail to compile with GCC 11.
|
||||
Origin: upstream, https://codereview.qt-project.org/c/qt/qtbase/+/339417
|
||||
Last-Update: 2022-04-01
|
||||
---
|
||||
src/concurrent/qtconcurrentthreadengine.h | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/concurrent/qtconcurrentthreadengine.h b/src/concurrent/qtconcurrentthreadengine.h
|
||||
index af41370..a4c8548 100644
|
||||
--- a/src/concurrent/qtconcurrentthreadengine.h
|
||||
+++ b/src/concurrent/qtconcurrentthreadengine.h
|
||||
@@ -247,8 +247,8 @@ template <>
|
||||
|
|
|
@ -1,7 +1,15 @@
|
|||
Description: include <limits> to fix GCC 11 build
|
||||
From: Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
|
||||
Date: Sat, 14 May 2022 17:41:00 +0800
|
||||
Subject: include <limits> to fix GCC 11 build
|
||||
|
||||
Origin: upstream, https://code.qt.io/cgit/qt/qtbase.git/commit/?id=813a928c7c3cf986
|
||||
Last-Update: 2022-03-03
|
||||
---
|
||||
src/corelib/text/qbytearraymatcher.h | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/src/corelib/text/qbytearraymatcher.h b/src/corelib/text/qbytearraymatcher.h
|
||||
index 0eedfc1..f5f9bef 100644
|
||||
--- a/src/corelib/text/qbytearraymatcher.h
|
||||
+++ b/src/corelib/text/qbytearraymatcher.h
|
||||
@@ -42,6 +42,8 @@
|
||||
|
|
|
@ -1,16 +1,35 @@
|
|||
Author: Pino Toscano <toscano.pino@tiscali.it>
|
||||
Description: Initial GNU/kFreeBSD support
|
||||
- add a gnukfreebsd-g++ qmake mkspec, mostly copied from the hurd-g++ one
|
||||
- properly use LD_LIBRARY_PATH on GNU/* systems
|
||||
From: Pino Toscano <toscano.pino@tiscali.it>
|
||||
Date: Sat, 14 May 2022 17:41:01 +0800
|
||||
Subject: Initial GNU/kFreeBSD support
|
||||
|
||||
- add a gnukfreebsd-g++ qmake mkspec, mostly copied from the hurd-g++ one
|
||||
- properly use LD_LIBRARY_PATH on GNU/* systems
|
||||
Last-Update: 2015-06-03
|
||||
Forwarded: no
|
||||
|
||||
---
|
||||
mkspecs/features/qt_functions.prf | 2
|
||||
mkspecs/gnukfreebsd-g++/qmake.conf | 54 ++++++++++++++++++++
|
||||
mkspecs/gnukfreebsd-g++/qplatformdefs.h | 84 ++++++++++++++++++++++++++++++++
|
||||
mkspecs/features/qt_functions.prf | 2 +
|
||||
mkspecs/gnukfreebsd-g++/qmake.conf | 54 +++++++++++++++++++++
|
||||
mkspecs/gnukfreebsd-g++/qplatformdefs.h | 84 +++++++++++++++++++++++++++++++++
|
||||
3 files changed, 140 insertions(+)
|
||||
create mode 100644 mkspecs/gnukfreebsd-g++/qmake.conf
|
||||
create mode 100644 mkspecs/gnukfreebsd-g++/qplatformdefs.h
|
||||
|
||||
diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf
|
||||
index 7777e61..87f054a 100644
|
||||
--- a/mkspecs/features/qt_functions.prf
|
||||
+++ b/mkspecs/features/qt_functions.prf
|
||||
@@ -215,6 +215,8 @@ defineTest(qtAddTargetEnv) {
|
||||
deppath.name = PATH
|
||||
} else:contains(QMAKE_HOST.os, Linux|FreeBSD|OpenBSD|NetBSD|DragonFly|SunOS|HP-UX|QNX|GNU) {
|
||||
deppath.name = LD_LIBRARY_PATH
|
||||
+ } else:contains(QMAKE_HOST.os, ^GNU/.*) {
|
||||
+ deppath.name = LD_LIBRARY_PATH
|
||||
} else:contains(QMAKE_HOST.os, Haiku) {
|
||||
deppath.name = LIBRARY_PATH
|
||||
} else:equals(QMAKE_HOST.os, Darwin) {
|
||||
diff --git a/mkspecs/gnukfreebsd-g++/qmake.conf b/mkspecs/gnukfreebsd-g++/qmake.conf
|
||||
new file mode 100644
|
||||
index 0000000..5637201
|
||||
--- /dev/null
|
||||
+++ b/mkspecs/gnukfreebsd-g++/qmake.conf
|
||||
@@ -0,0 +1,54 @@
|
||||
|
@ -68,6 +87,9 @@ Forwarded: no
|
|||
+include(../common/gcc-base-unix.conf)
|
||||
+include(../common/g++-unix.conf)
|
||||
+load(qt_config)
|
||||
diff --git a/mkspecs/gnukfreebsd-g++/qplatformdefs.h b/mkspecs/gnukfreebsd-g++/qplatformdefs.h
|
||||
new file mode 100644
|
||||
index 0000000..90aeac2
|
||||
--- /dev/null
|
||||
+++ b/mkspecs/gnukfreebsd-g++/qplatformdefs.h
|
||||
@@ -0,0 +1,84 @@
|
||||
|
@ -155,14 +177,3 @@ Forwarded: no
|
|||
+#endif
|
||||
+
|
||||
+#endif // QPLATFORMDEFS_H
|
||||
--- a/mkspecs/features/qt_functions.prf
|
||||
+++ b/mkspecs/features/qt_functions.prf
|
||||
@@ -215,6 +215,8 @@ defineTest(qtAddTargetEnv) {
|
||||
deppath.name = PATH
|
||||
} else:contains(QMAKE_HOST.os, Linux|FreeBSD|OpenBSD|NetBSD|DragonFly|SunOS|HP-UX|QNX|GNU) {
|
||||
deppath.name = LD_LIBRARY_PATH
|
||||
+ } else:contains(QMAKE_HOST.os, ^GNU/.*) {
|
||||
+ deppath.name = LD_LIBRARY_PATH
|
||||
} else:contains(QMAKE_HOST.os, Haiku) {
|
||||
deppath.name = LIBRARY_PATH
|
||||
} else:equals(QMAKE_HOST.os, Darwin) {
|
||||
|
|
|
@ -1,17 +1,20 @@
|
|||
Description: catch linker warnings in some config tests
|
||||
Without this, qmake wrongly thinks that the tests succeed, for example:
|
||||
.
|
||||
./config.tests/unix/futimens/futimens.cpp:44: warning: futimens is not implemented and will always fail
|
||||
test config.corelib.tests.futimens succeeded
|
||||
Author: Dmitry Shachnev <mitya57@debian.org>
|
||||
From: Dmitry Shachnev <mitya57@debian.org>
|
||||
Date: Sat, 14 May 2022 17:41:01 +0800
|
||||
Subject: catch linker warnings in some config tests
|
||||
|
||||
Without this, qmake wrongly thinks that the tests succeed, for example:
|
||||
|
||||
./config.tests/unix/futimens/futimens.cpp:44: warning: futimens is not implemented and will always fail
|
||||
test config.corelib.tests.futimens succeeded
|
||||
Forwarded: https://codereview.qt-project.org/163214 (rejected)
|
||||
Bug: https://bugs.debian.org/827935
|
||||
Last-Update: 2019-03-02
|
||||
|
||||
---
|
||||
src/corelib/configure.json | 3 +++
|
||||
src/corelib/configure.json | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/src/corelib/configure.json b/src/corelib/configure.json
|
||||
index 9b5d19d..3cf77dc 100644
|
||||
--- a/src/corelib/configure.json
|
||||
+++ b/src/corelib/configure.json
|
||||
@@ -331,6 +331,7 @@
|
||||
|
|
|
@ -1,9 +1,15 @@
|
|||
Description: build ibase sql plugin against firebird
|
||||
Author: Fathi Boudra <fabo@debian.org>
|
||||
Author: Dmitry Shachnev <mitya57@debian.org>
|
||||
From: Fathi Boudra <fabo@debian.org>
|
||||
Date: Sat, 14 May 2022 17:41:01 +0800
|
||||
Subject: build ibase sql plugin against firebird
|
||||
|
||||
Forwarded: no
|
||||
Last-Update: 2017-06-30
|
||||
---
|
||||
src/plugins/sqldrivers/configure.json | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/plugins/sqldrivers/configure.json b/src/plugins/sqldrivers/configure.json
|
||||
index 28ccbea..9db93d6 100644
|
||||
--- a/src/plugins/sqldrivers/configure.json
|
||||
+++ b/src/plugins/sqldrivers/configure.json
|
||||
@@ -52,7 +52,7 @@
|
||||
|
|
|
@ -1,13 +1,22 @@
|
|||
Description: adjust QMimeDatabase implementation
|
||||
When multiple globs match, and the result from magic sniffing is
|
||||
unrelated to any of those globs, globs have priority and one of them
|
||||
should be picked up.
|
||||
From: Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
|
||||
Date: Sat, 14 May 2022 17:41:00 +0800
|
||||
Subject: adjust QMimeDatabase implementation
|
||||
|
||||
When multiple globs match, and the result from magic sniffing is
|
||||
unrelated to any of those globs, globs have priority and one of them
|
||||
should be picked up.
|
||||
Origin: upstream, https://code.qt.io/cgit/qt/qtbase.git/commit/?id=0cbbba2aa5b47224
|
||||
Last-Update: 2021-06-12
|
||||
---
|
||||
src/corelib/mimetypes/qmimedatabase.cpp | 11 +++++++----
|
||||
src/corelib/mimetypes/qmimeglobpattern.cpp | 5 ++++-
|
||||
2 files changed, 11 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/src/corelib/mimetypes/qmimedatabase.cpp b/src/corelib/mimetypes/qmimedatabase.cpp
|
||||
index 9de22ce..ff868a3 100644
|
||||
--- a/src/corelib/mimetypes/qmimedatabase.cpp
|
||||
+++ b/src/corelib/mimetypes/qmimedatabase.cpp
|
||||
@@ -389,20 +389,23 @@ QMimeType QMimeDatabasePrivate::mimeType
|
||||
@@ -389,20 +389,23 @@ QMimeType QMimeDatabasePrivate::mimeTypeForFileNameAndData(const QString &fileNa
|
||||
// Disambiguate conflicting extensions (if magic matching found something)
|
||||
if (candidateByData.isValid() && magicAccuracy > 0) {
|
||||
const QString sniffedMime = candidateByData.name();
|
||||
|
@ -35,9 +44,11 @@ Last-Update: 2021-06-12
|
|||
}
|
||||
}
|
||||
|
||||
diff --git a/src/corelib/mimetypes/qmimeglobpattern.cpp b/src/corelib/mimetypes/qmimeglobpattern.cpp
|
||||
index 1016884..943eb84 100644
|
||||
--- a/src/corelib/mimetypes/qmimeglobpattern.cpp
|
||||
+++ b/src/corelib/mimetypes/qmimeglobpattern.cpp
|
||||
@@ -83,7 +83,10 @@ void QMimeGlobMatchResult::addMatch(cons
|
||||
@@ -83,7 +83,10 @@ void QMimeGlobMatchResult::addMatch(const QString &mimeType, int weight, const Q
|
||||
}
|
||||
if (!m_matchingMimeTypes.contains(mimeType)) {
|
||||
m_matchingMimeTypes.append(mimeType);
|
||||
|
|
|
@ -1,12 +1,21 @@
|
|||
Description: handle even more include in enum cases
|
||||
The solution in d3ed7dac8aa2f4ede0c409254b9dd44842086be0 was needlessly
|
||||
complicated, and broke a valid use case.
|
||||
The issue of no identifier being available to parse after the include
|
||||
has been processed can instead be solved by moving the test for the
|
||||
closing brace after the include processing.
|
||||
From: Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
|
||||
Date: Sat, 14 May 2022 17:41:01 +0800
|
||||
Subject: handle even more include in enum cases
|
||||
|
||||
The solution in d3ed7dac8aa2f4ede0c409254b9dd44842086be0 was needlessly
|
||||
complicated, and broke a valid use case.
|
||||
The issue of no identifier being available to parse after the include
|
||||
has been processed can instead be solved by moving the test for the
|
||||
closing brace after the include processing.
|
||||
Origin: upstream, https://code.qt.io/cgit/qt/qtbase.git/commit/?id=87973325f1b99f2b
|
||||
Last-Update: 2022-04-07
|
||||
---
|
||||
src/tools/moc/moc.cpp | 3 +--
|
||||
tests/auto/tools/moc/enum_with_include.h | 5 +++++
|
||||
2 files changed, 6 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/tools/moc/moc.cpp b/src/tools/moc/moc.cpp
|
||||
index 7389919..28c7a43 100644
|
||||
--- a/src/tools/moc/moc.cpp
|
||||
+++ b/src/tools/moc/moc.cpp
|
||||
@@ -305,10 +305,9 @@ bool Moc::parseEnum(EnumDef *def)
|
||||
|
@ -21,6 +30,8 @@ Last-Update: 2022-04-07
|
|||
next(IDENTIFIER);
|
||||
def->values += lexem();
|
||||
handleInclude();
|
||||
diff --git a/tests/auto/tools/moc/enum_with_include.h b/tests/auto/tools/moc/enum_with_include.h
|
||||
index b8abf77..cd53ba6 100644
|
||||
--- a/tests/auto/tools/moc/enum_with_include.h
|
||||
+++ b/tests/auto/tools/moc/enum_with_include.h
|
||||
@@ -34,6 +34,11 @@ class Foo : public QObject {
|
||||
|
|
|
@ -1,12 +1,20 @@
|
|||
Description: treat the MYSQL_FIELD as read-only
|
||||
The MariaDB-connector-c version 3.2 and MariaDB server version 10.6
|
||||
cooperate to avoid re-transferring the query metadata, so the fact that
|
||||
we were modifying it was causing it to improperly decode the DATETIME
|
||||
data types into string, as we had asked. We ended up with a 7-byte
|
||||
string that was actually the date binary-encoded.
|
||||
From: Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
|
||||
Date: Sat, 14 May 2022 17:41:00 +0800
|
||||
Subject: treat the MYSQL_FIELD as read-only
|
||||
|
||||
The MariaDB-connector-c version 3.2 and MariaDB server version 10.6
|
||||
cooperate to avoid re-transferring the query metadata, so the fact that
|
||||
we were modifying it was causing it to improperly decode the DATETIME
|
||||
data types into string, as we had asked. We ended up with a 7-byte
|
||||
string that was actually the date binary-encoded.
|
||||
Origin: upstream, https://code.qt.io/cgit/qt/qtbase.git/commit/?id=549ee216fd5bf2b3
|
||||
Last-Update: 2021-11-13
|
||||
---
|
||||
src/plugins/sqldrivers/mysql/qsql_mysql.cpp | 28 +++++++++++++---------------
|
||||
1 file changed, 13 insertions(+), 15 deletions(-)
|
||||
|
||||
diff --git a/src/plugins/sqldrivers/mysql/qsql_mysql.cpp b/src/plugins/sqldrivers/mysql/qsql_mysql.cpp
|
||||
index 7ca055e..49a6ae5 100644
|
||||
--- a/src/plugins/sqldrivers/mysql/qsql_mysql.cpp
|
||||
+++ b/src/plugins/sqldrivers/mysql/qsql_mysql.cpp
|
||||
@@ -223,7 +223,7 @@ public:
|
||||
|
|
|
@ -1,17 +1,25 @@
|
|||
Description: remove the version number checks in favor of actual functionality
|
||||
MariaDB library version 3.2 no longer returns the server version in the
|
||||
10.x range but the library version itself, which is lower than 4.x. That
|
||||
meant we concluded the server did not support prepared statements.
|
||||
.
|
||||
And because of the lack of prepared statements, all QDateTime
|
||||
conversions failed, because of the timezone. I don't know if this was
|
||||
intended or what, but it's a side issue.
|
||||
From: Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
|
||||
Date: Sat, 14 May 2022 17:41:00 +0800
|
||||
Subject: remove the version number checks in favor of actual functionality
|
||||
|
||||
MariaDB library version 3.2 no longer returns the server version in the
|
||||
10.x range but the library version itself, which is lower than 4.x. That
|
||||
meant we concluded the server did not support prepared statements.
|
||||
|
||||
And because of the lack of prepared statements, all QDateTime
|
||||
conversions failed, because of the timezone. I don't know if this was
|
||||
intended or what, but it's a side issue.
|
||||
Origin: upstream, https://code.qt.io/cgit/qt/qtbase.git/commit/?id=211369133cf40b2f
|
||||
Last-Update: 2021-08-10
|
||||
---
|
||||
src/plugins/sqldrivers/mysql/qsql_mysql.cpp | 17 +++++++++++++++--
|
||||
1 file changed, 15 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/plugins/sqldrivers/mysql/qsql_mysql.cpp b/src/plugins/sqldrivers/mysql/qsql_mysql.cpp
|
||||
index a641935..7ca055e 100644
|
||||
--- a/src/plugins/sqldrivers/mysql/qsql_mysql.cpp
|
||||
+++ b/src/plugins/sqldrivers/mysql/qsql_mysql.cpp
|
||||
@@ -158,6 +158,20 @@ static inline QVariant qDateTimeFromStri
|
||||
@@ -158,6 +158,20 @@ static inline QVariant qDateTimeFromString(QString &val)
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -32,7 +40,7 @@ Last-Update: 2021-08-10
|
|||
class QMYSQLResultPrivate;
|
||||
|
||||
class QMYSQLResult : public QSqlResult
|
||||
@@ -1371,8 +1385,7 @@ bool QMYSQLDriver::open(const QString& d
|
||||
@@ -1371,8 +1385,7 @@ bool QMYSQLDriver::open(const QString& db,
|
||||
}
|
||||
#endif // MYSQL_VERSION_ID >= 50007
|
||||
|
||||
|
|
|
@ -1,8 +1,15 @@
|
|||
Description: disable htmlinfo example which contains non-free files
|
||||
Author: Dmitry Shachnev <mitya57@debian.org>
|
||||
From: Dmitry Shachnev <mitya57@debian.org>
|
||||
Date: Sat, 14 May 2022 17:41:01 +0800
|
||||
Subject: disable htmlinfo example which contains non-free files
|
||||
|
||||
Forwarded: not-needed
|
||||
Last-Update: 2014-12-17
|
||||
---
|
||||
examples/xml/xml.pro | 3 +--
|
||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||
|
||||
diff --git a/examples/xml/xml.pro b/examples/xml/xml.pro
|
||||
index b075057..1c78e6b 100644
|
||||
--- a/examples/xml/xml.pro
|
||||
+++ b/examples/xml/xml.pro
|
||||
@@ -1,6 +1,5 @@
|
||||
|
|
|
@ -1,17 +1,19 @@
|
|||
Description: guard UTIME_NOW/UTIME_OMIT usages
|
||||
Author: Dmitry Shachnev <mitya57@debian.org>
|
||||
Author: Pino Toscano <pino@debian.org>
|
||||
From: Dmitry Shachnev <mitya57@debian.org>
|
||||
Date: Sat, 14 May 2022 17:41:01 +0800
|
||||
Subject: guard UTIME_NOW/UTIME_OMIT usages
|
||||
|
||||
Forwarded: no
|
||||
Last-Update: 2018-02-22
|
||||
|
||||
---
|
||||
qmake/library/ioutils.cpp | 2 +-
|
||||
src/corelib/io/qfilesystemengine_unix.cpp | 2 +-
|
||||
qmake/library/ioutils.cpp | 2 +-
|
||||
src/corelib/io/qfilesystemengine_unix.cpp | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/qmake/library/ioutils.cpp b/qmake/library/ioutils.cpp
|
||||
index d217127..6fada00 100644
|
||||
--- a/qmake/library/ioutils.cpp
|
||||
+++ b/qmake/library/ioutils.cpp
|
||||
@@ -228,7 +228,7 @@ bool IoUtils::touchFile(const QString &t
|
||||
@@ -228,7 +228,7 @@ bool IoUtils::touchFile(const QString &targetFileName, const QString &referenceF
|
||||
*errorString = fL1S("Cannot stat() reference file %1: %2.").arg(referenceFileName, fL1S(strerror(errno)));
|
||||
return false;
|
||||
}
|
||||
|
@ -20,9 +22,11 @@ Last-Update: 2018-02-22
|
|||
const struct timespec times[2] = { { 0, UTIME_NOW }, st.st_mtim };
|
||||
const bool utimeError = utimensat(AT_FDCWD, targetFileName.toLocal8Bit().constData(), times, 0) < 0;
|
||||
# else
|
||||
diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp
|
||||
index 231e5cb..3cbf032 100644
|
||||
--- a/src/corelib/io/qfilesystemengine_unix.cpp
|
||||
+++ b/src/corelib/io/qfilesystemengine_unix.cpp
|
||||
@@ -1595,7 +1595,7 @@ bool QFileSystemEngine::setFileTime(int
|
||||
@@ -1595,7 +1595,7 @@ bool QFileSystemEngine::setFileTime(int fd, const QDateTime &newDate, QAbstractF
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,7 @@
|
|||
Description: upstream fixes to support OpenSSL 3.0
|
||||
From: Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
|
||||
Date: Sat, 14 May 2022 17:41:00 +0800
|
||||
Subject: upstream fixes to support OpenSSL 3.0
|
||||
|
||||
Origin: upstream, commits
|
||||
https://code.qt.io/cgit/qt/qtbase.git/commit/?id=3186ca3e3972cf46
|
||||
https://code.qt.io/cgit/qt/qtbase.git/commit/?id=408656c6f9de326c
|
||||
|
@ -6,7 +9,15 @@ Origin: upstream, commits
|
|||
and a small part of
|
||||
https://code.qt.io/cgit/qt/qtbase.git/commit/?id=4c0f81490ba0c4ec
|
||||
Last-Update: 2021-12-09
|
||||
---
|
||||
src/network/ssl/qsslcontext_openssl.cpp | 4 +-
|
||||
.../ssl/qssldiffiehellmanparameters_openssl.cpp | 51 ----------------------
|
||||
src/network/ssl/qsslsocket_openssl_symbols.cpp | 22 +++++++---
|
||||
src/network/ssl/qsslsocket_openssl_symbols_p.h | 16 ++++---
|
||||
4 files changed, 29 insertions(+), 64 deletions(-)
|
||||
|
||||
diff --git a/src/network/ssl/qsslcontext_openssl.cpp b/src/network/ssl/qsslcontext_openssl.cpp
|
||||
index c9f202f..d0a428c 100644
|
||||
--- a/src/network/ssl/qsslcontext_openssl.cpp
|
||||
+++ b/src/network/ssl/qsslcontext_openssl.cpp
|
||||
@@ -409,7 +409,7 @@ init_context:
|
||||
|
@ -27,6 +38,8 @@ Last-Update: 2021-12-09
|
|||
break;
|
||||
case QSsl::TlsV1_3OrLater:
|
||||
#ifdef TLS1_3_VERSION
|
||||
diff --git a/src/network/ssl/qssldiffiehellmanparameters_openssl.cpp b/src/network/ssl/qssldiffiehellmanparameters_openssl.cpp
|
||||
index aaf8741..b589353 100644
|
||||
--- a/src/network/ssl/qssldiffiehellmanparameters_openssl.cpp
|
||||
+++ b/src/network/ssl/qssldiffiehellmanparameters_openssl.cpp
|
||||
@@ -59,57 +59,6 @@
|
||||
|
@ -87,9 +100,11 @@ Last-Update: 2021-12-09
|
|||
static bool isSafeDH(DH *dh)
|
||||
{
|
||||
int status = 0;
|
||||
diff --git a/src/network/ssl/qsslsocket_openssl_symbols.cpp b/src/network/ssl/qsslsocket_openssl_symbols.cpp
|
||||
index 94aa5a5..f89f520 100644
|
||||
--- a/src/network/ssl/qsslsocket_openssl_symbols.cpp
|
||||
+++ b/src/network/ssl/qsslsocket_openssl_symbols.cpp
|
||||
@@ -148,7 +148,6 @@ DEFINEFUNC(int, EVP_PKEY_up_ref, EVP_PKE
|
||||
@@ -148,7 +148,6 @@ DEFINEFUNC(int, EVP_PKEY_up_ref, EVP_PKEY *a, a, return 0, return)
|
||||
DEFINEFUNC2(EVP_PKEY_CTX *, EVP_PKEY_CTX_new, EVP_PKEY *pkey, pkey, ENGINE *e, e, return nullptr, return)
|
||||
DEFINEFUNC(int, EVP_PKEY_param_check, EVP_PKEY_CTX *ctx, ctx, return 0, return)
|
||||
DEFINEFUNC(void, EVP_PKEY_CTX_free, EVP_PKEY_CTX *ctx, ctx, return, return)
|
||||
|
@ -97,7 +112,7 @@ Last-Update: 2021-12-09
|
|||
DEFINEFUNC(int, RSA_bits, RSA *a, a, return 0, return)
|
||||
DEFINEFUNC(int, DSA_bits, DSA *a, a, return 0, return)
|
||||
DEFINEFUNC(int, OPENSSL_sk_num, OPENSSL_STACK *a, a, return -1, return)
|
||||
@@ -368,7 +367,15 @@ DEFINEFUNC(const SSL_CIPHER *, SSL_get_c
|
||||
@@ -368,7 +367,15 @@ DEFINEFUNC(const SSL_CIPHER *, SSL_get_current_cipher, SSL *a, a, return nullptr
|
||||
DEFINEFUNC(int, SSL_version, const SSL *a, a, return 0, return)
|
||||
DEFINEFUNC2(int, SSL_get_error, SSL *a, a, int b, b, return -1, return)
|
||||
DEFINEFUNC(STACK_OF(X509) *, SSL_get_peer_cert_chain, SSL *a, a, return nullptr, return)
|
||||
|
@ -113,7 +128,7 @@ Last-Update: 2021-12-09
|
|||
DEFINEFUNC(long, SSL_get_verify_result, const SSL *a, a, return -1, return)
|
||||
DEFINEFUNC(SSL *, SSL_new, SSL_CTX *a, a, return nullptr, return)
|
||||
DEFINEFUNC(SSL_CTX *, SSL_get_SSL_CTX, SSL *a, a, return nullptr, return)
|
||||
@@ -489,9 +496,7 @@ DEFINEFUNC(DH *, DH_new, DUMMYARG, DUMMY
|
||||
@@ -489,9 +496,7 @@ DEFINEFUNC(DH *, DH_new, DUMMYARG, DUMMYARG, return nullptr, return)
|
||||
DEFINEFUNC(void, DH_free, DH *dh, dh, return, DUMMYARG)
|
||||
DEFINEFUNC3(DH *, d2i_DHparams, DH**a, a, const unsigned char **pp, pp, long length, length, return nullptr, return)
|
||||
DEFINEFUNC2(int, i2d_DHparams, DH *a, a, unsigned char **p, p, return -1, return)
|
||||
|
@ -157,9 +172,11 @@ Last-Update: 2021-12-09
|
|||
RESOLVEFUNC(BN_bin2bn)
|
||||
|
||||
#ifndef OPENSSL_NO_EC
|
||||
diff --git a/src/network/ssl/qsslsocket_openssl_symbols_p.h b/src/network/ssl/qsslsocket_openssl_symbols_p.h
|
||||
index c46afcf..b36d0bc 100644
|
||||
--- a/src/network/ssl/qsslsocket_openssl_symbols_p.h
|
||||
+++ b/src/network/ssl/qsslsocket_openssl_symbols_p.h
|
||||
@@ -236,7 +236,6 @@ Q_AUTOTEST_EXPORT int q_EVP_PKEY_up_ref(
|
||||
@@ -236,7 +236,6 @@ Q_AUTOTEST_EXPORT int q_EVP_PKEY_up_ref(EVP_PKEY *a);
|
||||
EVP_PKEY_CTX *q_EVP_PKEY_CTX_new(EVP_PKEY *pkey, ENGINE *e);
|
||||
void q_EVP_PKEY_CTX_free(EVP_PKEY_CTX *ctx);
|
||||
int q_EVP_PKEY_param_check(EVP_PKEY_CTX *ctx);
|
||||
|
@ -167,7 +184,7 @@ Last-Update: 2021-12-09
|
|||
int q_RSA_bits(RSA *a);
|
||||
Q_AUTOTEST_EXPORT int q_OPENSSL_sk_num(OPENSSL_STACK *a);
|
||||
Q_AUTOTEST_EXPORT void q_OPENSSL_sk_pop_free(OPENSSL_STACK *a, void (*b)(void *));
|
||||
@@ -509,7 +508,6 @@ const SSL_CIPHER *q_SSL_get_current_ciph
|
||||
@@ -509,7 +508,6 @@ const SSL_CIPHER *q_SSL_get_current_cipher(SSL *a);
|
||||
int q_SSL_version(const SSL *a);
|
||||
int q_SSL_get_error(SSL *a, int b);
|
||||
STACK_OF(X509) *q_SSL_get_peer_cert_chain(SSL *a);
|
||||
|
@ -186,7 +203,7 @@ Last-Update: 2021-12-09
|
|||
|
||||
BIGNUM *q_BN_bin2bn(const unsigned char *s, int len, BIGNUM *ret);
|
||||
#define q_SSL_CTX_set_tmp_dh(ctx, dh) q_SSL_CTX_ctrl((ctx), SSL_CTRL_SET_TMP_DH, 0, (char *)dh)
|
||||
@@ -751,6 +746,17 @@ void *q_CRYPTO_malloc(size_t num, const
|
||||
@@ -751,6 +746,17 @@ void *q_CRYPTO_malloc(size_t num, const char *file, int line);
|
||||
int q_SSL_CTX_get_security_level(const SSL_CTX *ctx);
|
||||
void q_SSL_CTX_set_security_level(SSL_CTX *ctx, int level);
|
||||
|
||||
|
|
|
@ -1,13 +1,20 @@
|
|||
Author: Pino Toscano <toscano.pino@tiscali.it>
|
||||
Description: Avoid unconditional PATH_MAX usage
|
||||
Use a "safe" size in case PATH_MAX is not defined; in the end, this should not
|
||||
be used, as a allocating realpath() will be used instead.
|
||||
From: Pino Toscano <toscano.pino@tiscali.it>
|
||||
Date: Sat, 14 May 2022 17:41:01 +0800
|
||||
Subject: Avoid unconditional PATH_MAX usage
|
||||
|
||||
Use a "safe" size in case PATH_MAX is not defined; in the end, this should not
|
||||
be used, as a allocating realpath() will be used instead.
|
||||
Forwarded: no
|
||||
Last-Update: 2020-04-19
|
||||
---
|
||||
src/corelib/io/qfilesystemengine_unix.cpp | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp
|
||||
index 3cbf032..2432171 100644
|
||||
--- a/src/corelib/io/qfilesystemengine_unix.cpp
|
||||
+++ b/src/corelib/io/qfilesystemengine_unix.cpp
|
||||
@@ -689,7 +689,11 @@ QFileSystemEntry QFileSystemEngine::cano
|
||||
@@ -689,7 +689,11 @@ QFileSystemEntry QFileSystemEngine::canonicalName(const QFileSystemEntry &entry,
|
||||
Q_UNUSED(data);
|
||||
return QFileSystemEntry(slowCanonicalized(absoluteName(entry).filePath()));
|
||||
#else
|
||||
|
|
|
@ -1,13 +1,16 @@
|
|||
Description: pass default include directories to qdoc
|
||||
Author: Martin Smith <martin.smith@qt.io>
|
||||
From: Martin Smith <martin.smith@qt.io>
|
||||
Date: Sat, 14 May 2022 17:41:01 +0800
|
||||
Subject: pass default include directories to qdoc
|
||||
|
||||
Bug: https://bugs.debian.org/908328
|
||||
Forwarded: no
|
||||
Last-Update: 2020-01-28
|
||||
|
||||
---
|
||||
mkspecs/features/qt_docs.prf | 4 ++++
|
||||
mkspecs/features/qt_docs.prf | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/mkspecs/features/qt_docs.prf b/mkspecs/features/qt_docs.prf
|
||||
index 095bf15..5178a7d 100644
|
||||
--- a/mkspecs/features/qt_docs.prf
|
||||
+++ b/mkspecs/features/qt_docs.prf
|
||||
@@ -98,6 +98,10 @@ doc_command = $$QDOC $$QMAKE_DOCS
|
||||
|
|
|
@ -1,16 +1,23 @@
|
|||
Author: Pino Toscano <toscano.pino@tiscali.it>
|
||||
Description: Limit Linux-only code with Q_OS_LINUX
|
||||
The QStorageInfo/QStorageIterator implementation used for Linux is used also
|
||||
on Hurd, as it uses an interface provided by GNU libc.
|
||||
QStorageIterator::device() tries to use PATH_MAX (unavailable on the Hurd)
|
||||
to lookup a /dev/block/ path, which exists on Linux only; hence, perform that
|
||||
check within a Q_OS_LINUX block.
|
||||
From: Pino Toscano <toscano.pino@tiscali.it>
|
||||
Date: Sat, 14 May 2022 17:41:01 +0800
|
||||
Subject: Limit Linux-only code with Q_OS_LINUX
|
||||
|
||||
The QStorageInfo/QStorageIterator implementation used for Linux is used also
|
||||
on Hurd, as it uses an interface provided by GNU libc.
|
||||
QStorageIterator::device() tries to use PATH_MAX (unavailable on the Hurd)
|
||||
to lookup a /dev/block/ path, which exists on Linux only; hence, perform that
|
||||
check within a Q_OS_LINUX block.
|
||||
Forwarded: no
|
||||
Last-Update: 2020-04-19
|
||||
---
|
||||
src/corelib/io/qstorageinfo_unix.cpp | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/src/corelib/io/qstorageinfo_unix.cpp b/src/corelib/io/qstorageinfo_unix.cpp
|
||||
index 698c4dd..45570ee 100644
|
||||
--- a/src/corelib/io/qstorageinfo_unix.cpp
|
||||
+++ b/src/corelib/io/qstorageinfo_unix.cpp
|
||||
@@ -566,6 +566,7 @@ inline QByteArray QStorageIterator::file
|
||||
@@ -566,6 +566,7 @@ inline QByteArray QStorageIterator::fileSystemType() const
|
||||
|
||||
inline QByteArray QStorageIterator::device() const
|
||||
{
|
||||
|
@ -18,7 +25,7 @@ Last-Update: 2020-04-19
|
|||
// check that the device exists
|
||||
if (mnt.mnt_fsname[0] == '/' && access(mnt.mnt_fsname, F_OK) != 0) {
|
||||
// It doesn't, so let's try to resolve the dev_t from /dev/block.
|
||||
@@ -581,6 +582,7 @@ inline QByteArray QStorageIterator::devi
|
||||
@@ -581,6 +582,7 @@ inline QByteArray QStorageIterator::device() const
|
||||
return dev;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,15 +1,19 @@
|
|||
Description: remove non-used privacy-breach code
|
||||
This code makes Lintian unhappy. But we are really not using it, it only
|
||||
gets inserted when building the online doc.
|
||||
Anyways the best way to calm down Lintian is to simply remove it.
|
||||
Author: Lisandro Damián Nicanor Pérez Meyer <lisandro@debian.org>
|
||||
From: =?utf-8?q?Lisandro_Dami=C3=A1n_Nicanor_P=C3=A9rez_Meyer?=
|
||||
<lisandro@debian.org>
|
||||
Date: Sat, 14 May 2022 17:41:01 +0800
|
||||
Subject: remove non-used privacy-breach code
|
||||
|
||||
This code makes Lintian unhappy. But we are really not using it, it only
|
||||
gets inserted when building the online doc.
|
||||
Anyways the best way to calm down Lintian is to simply remove it.
|
||||
Forwarded: not-needed
|
||||
Last-Update: 2015-02-18
|
||||
|
||||
---
|
||||
doc/global/template/scripts/main.js | 5 -----
|
||||
doc/global/template/scripts/main.js | 5 -----
|
||||
1 file changed, 5 deletions(-)
|
||||
|
||||
diff --git a/doc/global/template/scripts/main.js b/doc/global/template/scripts/main.js
|
||||
index 823cebe..7d99e00 100644
|
||||
--- a/doc/global/template/scripts/main.js
|
||||
+++ b/doc/global/template/scripts/main.js
|
||||
@@ -94,11 +94,6 @@ $(document).ready(function($) {
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
# Backported from upstream.
|
||||
gcc_11_limits.diff
|
||||
mime_globs.diff
|
||||
fix-invalid-pointer-return-with-QGridLayout.diff
|
||||
|
@ -15,8 +14,6 @@ openssl3.diff
|
|||
CVE-2022-25255.diff
|
||||
gcc-11-qtconcurrentthreadengine.diff
|
||||
moc_handle_include.diff
|
||||
|
||||
# Debian specific.
|
||||
gnukfreebsd.diff
|
||||
no_htmlinfo_example.diff
|
||||
remove_privacy_breaches.diff
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
From 02248eea5562c1df39ee23f195011afacc6759b0 Mon Sep 17 00:00:00 2001
|
||||
From: Liang Qi <liang.qi@qt.io>
|
||||
Date: Wed, 7 Jul 2021 13:19:14 +0200
|
||||
Subject: [PATCH] xcb: add a timeout control when reading INCR property
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
For the first call of QXcbClipboard::clipboardReadProperty()
|
||||
|
@ -23,12 +22,14 @@ Change-Id: Ib45f08464d39ad79137b1da99808c89b7dca2d08
|
|||
Reviewed-by: JiDe Zhang <zhangjide@uniontech.com>
|
||||
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
||||
---
|
||||
src/plugins/platforms/xcb/qxcbclipboard.cpp | 8 ++++++--
|
||||
src/plugins/platforms/xcb/qxcbclipboard.cpp | 8 ++++++--
|
||||
1 file changed, 6 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/plugins/platforms/xcb/qxcbclipboard.cpp b/src/plugins/platforms/xcb/qxcbclipboard.cpp
|
||||
index 0a4d675..dabdfcb 100644
|
||||
--- a/src/plugins/platforms/xcb/qxcbclipboard.cpp
|
||||
+++ b/src/plugins/platforms/xcb/qxcbclipboard.cpp
|
||||
@@ -835,6 +835,8 @@ QByteArray QXcbClipboard::clipboardReadI
|
||||
@@ -835,6 +835,8 @@ QByteArray QXcbClipboard::clipboardReadIncrementalProperty(xcb_window_t win, xcb
|
||||
alloc_error = buf.size() != nbytes+1;
|
||||
}
|
||||
|
||||
|
@ -37,7 +38,7 @@ Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
|||
for (;;) {
|
||||
connection()->flush();
|
||||
xcb_generic_event_t *ge = waitForClipboardEvent(win, XCB_PROPERTY_NOTIFY);
|
||||
@@ -870,9 +872,11 @@ QByteArray QXcbClipboard::clipboardReadI
|
||||
@@ -870,9 +872,11 @@ QByteArray QXcbClipboard::clipboardReadIncrementalProperty(xcb_window_t win, xcb
|
||||
tmp_buf.resize(0);
|
||||
offset += length;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue