4.8.6-0.1.rc1
- 4.8.6-rc1 - qt-aarch64.patch still needs some love
This commit is contained in:
parent
90f12d395b
commit
8ec4a9e6e1
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,4 +1,4 @@
|
||||
/hi128-app-qt4-logo.png
|
||||
/hi48-app-qt4-logo.png
|
||||
/qt-everywhere-opensource-src-4.8.4.tar.gz
|
||||
/qt-everywhere-opensource-src-4.8.5.tar.gz
|
||||
/qt-everywhere-opensource-src-4.8.6-rc1.tar.gz
|
||||
|
@ -1,124 +0,0 @@
|
||||
From 512a1ce0698d370c313bb561bbf078935fa0342e Mon Sep 17 00:00:00 2001
|
||||
From: Mitch Curtis <mitch.curtis@digia.com>
|
||||
Date: Thu, 7 Nov 2013 09:36:29 +0100
|
||||
Subject: [PATCH 147/192] Disallow deep or widely nested entity references.
|
||||
|
||||
Nested references with a depth of 2 or greater will fail. References
|
||||
that partially expand to greater than 1024 characters will also fail.
|
||||
|
||||
This is a backport of 46a8885ae486e238a39efa5119c2714f328b08e4.
|
||||
|
||||
Change-Id: I0c2e1fa13d6ccb5f88641dae2ed3f28bfdeaf609
|
||||
Reviewed-by: Richard J. Moore <rich@kde.org>
|
||||
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
||||
---
|
||||
src/xml/sax/qxml.cpp | 51 +++++++++++++++++++
|
||||
.../auto/qxmlsimplereader/tst_qxmlsimplereader.cpp | 58 ++++++++++++++++++++++
|
||||
.../xmldocs/1-levels-nested-dtd.xml | 12 +++++
|
||||
.../xmldocs/2-levels-nested-dtd.xml | 13 +++++
|
||||
.../internal-entity-polynomial-attribute.xml | 13 +++++
|
||||
5 files changed, 147 insertions(+)
|
||||
create mode 100644 tests/auto/qxmlsimplereader/xmldocs/1-levels-nested-dtd.xml
|
||||
create mode 100644 tests/auto/qxmlsimplereader/xmldocs/2-levels-nested-dtd.xml
|
||||
create mode 100644 tests/auto/qxmlsimplereader/xmldocs/internal-entity-polynomial-attribute.xml
|
||||
|
||||
diff --git a/src/xml/sax/qxml.cpp b/src/xml/sax/qxml.cpp
|
||||
index a1777c5..3904632 100644
|
||||
--- a/src/xml/sax/qxml.cpp
|
||||
+++ b/src/xml/sax/qxml.cpp
|
||||
@@ -424,6 +424,10 @@ private:
|
||||
int stringValueLen;
|
||||
QString emptyStr;
|
||||
|
||||
+ // The limit to the amount of times the DTD parsing functions can be called
|
||||
+ // for the DTD currently being parsed.
|
||||
+ int dtdRecursionLimit;
|
||||
+
|
||||
const QString &string();
|
||||
void stringClear();
|
||||
void stringAddC(QChar);
|
||||
@@ -492,6 +496,7 @@ private:
|
||||
void unexpectedEof(ParseFunction where, int state);
|
||||
void parseFailed(ParseFunction where, int state);
|
||||
void pushParseState(ParseFunction function, int state);
|
||||
+ bool isPartiallyExpandedEntityValueTooLarge(QString *errorMessage);
|
||||
|
||||
Q_DECLARE_PUBLIC(QXmlSimpleReader)
|
||||
QXmlSimpleReader *q_ptr;
|
||||
@@ -2759,6 +2764,7 @@ QXmlSimpleReaderPrivate::QXmlSimpleReaderPrivate(QXmlSimpleReader *reader)
|
||||
useNamespacePrefixes = false;
|
||||
reportWhitespaceCharData = true;
|
||||
reportEntities = false;
|
||||
+ dtdRecursionLimit = 2;
|
||||
}
|
||||
|
||||
QXmlSimpleReaderPrivate::~QXmlSimpleReaderPrivate()
|
||||
@@ -5018,6 +5024,11 @@ bool QXmlSimpleReaderPrivate::parseDoctype()
|
||||
}
|
||||
break;
|
||||
case Mup:
|
||||
+ if (dtdRecursionLimit > 0 && parameterEntities.size() > dtdRecursionLimit) {
|
||||
+ reportParseError(QString::fromLatin1(
|
||||
+ "DTD parsing exceeded recursion limit of %1.").arg(dtdRecursionLimit));
|
||||
+ return false;
|
||||
+ }
|
||||
if (!parseMarkupdecl()) {
|
||||
parseFailed(&QXmlSimpleReaderPrivate::parseDoctype, state);
|
||||
return false;
|
||||
@@ -6627,6 +6638,37 @@ bool QXmlSimpleReaderPrivate::parseChoiceSeq()
|
||||
return false;
|
||||
}
|
||||
|
||||
+bool QXmlSimpleReaderPrivate::isPartiallyExpandedEntityValueTooLarge(QString *errorMessage)
|
||||
+{
|
||||
+ const QString value = string();
|
||||
+ QMap<QString, int> referencedEntityCounts;
|
||||
+ foreach (QString entityName, entities.keys()) {
|
||||
+ for (int i = 0; i < value.size() && i != -1; ) {
|
||||
+ i = value.indexOf(entityName, i);
|
||||
+ if (i != -1) {
|
||||
+ // The entityName we're currently trying to find
|
||||
+ // was matched in this string; increase our count.
|
||||
+ ++referencedEntityCounts[entityName];
|
||||
+ i += entityName.size();
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ foreach (QString entityName, referencedEntityCounts.keys()) {
|
||||
+ const int timesReferenced = referencedEntityCounts[entityName];
|
||||
+ const QString entityValue = entities[entityName];
|
||||
+ if (entityValue.size() * timesReferenced > 1024) {
|
||||
+ if (errorMessage) {
|
||||
+ *errorMessage = QString::fromLatin1("The XML entity \"%1\""
|
||||
+ "expands too a string that is too large to process when "
|
||||
+ "referencing \"%2\" %3 times.").arg(entityName).arg(entityName).arg(timesReferenced);
|
||||
+ }
|
||||
+ return true;
|
||||
+ }
|
||||
+ }
|
||||
+ return false;
|
||||
+}
|
||||
+
|
||||
/*
|
||||
Parse a EntityDecl [70].
|
||||
|
||||
@@ -6721,6 +6763,15 @@ bool QXmlSimpleReaderPrivate::parseEntityDecl()
|
||||
switch (state) {
|
||||
case EValue:
|
||||
if ( !entityExist(name())) {
|
||||
+ QString errorMessage;
|
||||
+ if (isPartiallyExpandedEntityValueTooLarge(&errorMessage)) {
|
||||
+ // The entity at entityName is entityValue.size() characters
|
||||
+ // long in its unexpanded form, and was mentioned timesReferenced times,
|
||||
+ // resulting in a string that would be greater than 1024 characters.
|
||||
+ reportParseError(errorMessage);
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
entities.insert(name(), string());
|
||||
if (declHnd) {
|
||||
if (!declHnd->internalEntityDecl(name(), string())) {
|
||||
--
|
||||
1.8.4.2
|
||||
|
@ -1,128 +0,0 @@
|
||||
From cecceb0cdd87482124a73ecf537f3445d68be13e Mon Sep 17 00:00:00 2001
|
||||
From: Mitch Curtis <mitch.curtis@digia.com>
|
||||
Date: Tue, 12 Nov 2013 13:44:56 +0100
|
||||
Subject: [PATCH 162/192] Fully expand entities to ensure deep or widely nested
|
||||
ones fail parsing
|
||||
|
||||
With 512a1ce0698d370c313bb561bbf078935fa0342e, we failed when parsing
|
||||
entities whose partially expanded size was greater than 1024
|
||||
characters. That was not enough, so now we fully expand all entities.
|
||||
|
||||
This is a backport of f1053d94f59f053ce4acad9320df14f1fbe4faac.
|
||||
|
||||
Change-Id: I41dd6f4525c63e82fd320a22d19248169627f7e0
|
||||
Reviewed-by: Richard J. Moore <rich@kde.org>
|
||||
---
|
||||
src/xml/sax/qxml.cpp | 61 +++++++++++++---------
|
||||
.../auto/qxmlsimplereader/tst_qxmlsimplereader.cpp | 2 +-
|
||||
2 files changed, 37 insertions(+), 26 deletions(-)
|
||||
|
||||
diff --git a/src/xml/sax/qxml.cpp b/src/xml/sax/qxml.cpp
|
||||
index 3904632..befa801 100644
|
||||
--- a/src/xml/sax/qxml.cpp
|
||||
+++ b/src/xml/sax/qxml.cpp
|
||||
@@ -426,7 +426,9 @@ private:
|
||||
|
||||
// The limit to the amount of times the DTD parsing functions can be called
|
||||
// for the DTD currently being parsed.
|
||||
- int dtdRecursionLimit;
|
||||
+ static const int dtdRecursionLimit = 2;
|
||||
+ // The maximum amount of characters an entity value may contain, after expansion.
|
||||
+ static const int entityCharacterLimit = 1024;
|
||||
|
||||
const QString &string();
|
||||
void stringClear();
|
||||
@@ -496,7 +498,7 @@ private:
|
||||
void unexpectedEof(ParseFunction where, int state);
|
||||
void parseFailed(ParseFunction where, int state);
|
||||
void pushParseState(ParseFunction function, int state);
|
||||
- bool isPartiallyExpandedEntityValueTooLarge(QString *errorMessage);
|
||||
+ bool isExpandedEntityValueTooLarge(QString *errorMessage);
|
||||
|
||||
Q_DECLARE_PUBLIC(QXmlSimpleReader)
|
||||
QXmlSimpleReader *q_ptr;
|
||||
@@ -2764,7 +2766,6 @@ QXmlSimpleReaderPrivate::QXmlSimpleReaderPrivate(QXmlSimpleReader *reader)
|
||||
useNamespacePrefixes = false;
|
||||
reportWhitespaceCharData = true;
|
||||
reportEntities = false;
|
||||
- dtdRecursionLimit = 2;
|
||||
}
|
||||
|
||||
QXmlSimpleReaderPrivate::~QXmlSimpleReaderPrivate()
|
||||
@@ -6638,30 +6639,43 @@ bool QXmlSimpleReaderPrivate::parseChoiceSeq()
|
||||
return false;
|
||||
}
|
||||
|
||||
-bool QXmlSimpleReaderPrivate::isPartiallyExpandedEntityValueTooLarge(QString *errorMessage)
|
||||
+bool QXmlSimpleReaderPrivate::isExpandedEntityValueTooLarge(QString *errorMessage)
|
||||
{
|
||||
- const QString value = string();
|
||||
- QMap<QString, int> referencedEntityCounts;
|
||||
- foreach (QString entityName, entities.keys()) {
|
||||
- for (int i = 0; i < value.size() && i != -1; ) {
|
||||
- i = value.indexOf(entityName, i);
|
||||
- if (i != -1) {
|
||||
- // The entityName we're currently trying to find
|
||||
- // was matched in this string; increase our count.
|
||||
- ++referencedEntityCounts[entityName];
|
||||
- i += entityName.size();
|
||||
+ QMap<QString, int> literalEntitySizes;
|
||||
+ // The entity at (QMap<QString,) referenced the entities at (QMap<QString,) (int>) times.
|
||||
+ QMap<QString, QMap<QString, int> > referencesToOtherEntities;
|
||||
+ QMap<QString, int> expandedSizes;
|
||||
+
|
||||
+ // For every entity, check how many times all entity names were referenced in its value.
|
||||
+ foreach (QString toSearch, entities.keys()) {
|
||||
+ // The amount of characters that weren't entity names, but literals, like 'X'.
|
||||
+ QString leftOvers = entities.value(toSearch);
|
||||
+ // How many times was entityName referenced by toSearch?
|
||||
+ foreach (QString entityName, entities.keys()) {
|
||||
+ for (int i = 0; i < leftOvers.size() && i != -1; ) {
|
||||
+ i = leftOvers.indexOf(QString::fromLatin1("&%1;").arg(entityName), i);
|
||||
+ if (i != -1) {
|
||||
+ leftOvers.remove(i, entityName.size() + 2);
|
||||
+ // The entityName we're currently trying to find was matched in this string; increase our count.
|
||||
+ ++referencesToOtherEntities[toSearch][entityName];
|
||||
+ }
|
||||
}
|
||||
}
|
||||
+ literalEntitySizes[toSearch] = leftOvers.size();
|
||||
}
|
||||
|
||||
- foreach (QString entityName, referencedEntityCounts.keys()) {
|
||||
- const int timesReferenced = referencedEntityCounts[entityName];
|
||||
- const QString entityValue = entities[entityName];
|
||||
- if (entityValue.size() * timesReferenced > 1024) {
|
||||
+ foreach (QString entity, referencesToOtherEntities.keys()) {
|
||||
+ expandedSizes[entity] = literalEntitySizes[entity];
|
||||
+ foreach (QString referenceTo, referencesToOtherEntities.value(entity).keys()) {
|
||||
+ const int references = referencesToOtherEntities.value(entity).value(referenceTo);
|
||||
+ // The total size of an entity's value is the expanded size of all of its referenced entities, plus its literal size.
|
||||
+ expandedSizes[entity] += expandedSizes[referenceTo] * references + literalEntitySizes[referenceTo] * references;
|
||||
+ }
|
||||
+
|
||||
+ if (expandedSizes[entity] > entityCharacterLimit) {
|
||||
if (errorMessage) {
|
||||
- *errorMessage = QString::fromLatin1("The XML entity \"%1\""
|
||||
- "expands too a string that is too large to process when "
|
||||
- "referencing \"%2\" %3 times.").arg(entityName).arg(entityName).arg(timesReferenced);
|
||||
+ *errorMessage = QString::fromLatin1("The XML entity \"%1\" expands too a string that is too large to process (%2 characters > %3).");
|
||||
+ *errorMessage = (*errorMessage).arg(entity).arg(expandedSizes[entity]).arg(entityCharacterLimit);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -6764,10 +6778,7 @@ bool QXmlSimpleReaderPrivate::parseEntityDecl()
|
||||
case EValue:
|
||||
if ( !entityExist(name())) {
|
||||
QString errorMessage;
|
||||
- if (isPartiallyExpandedEntityValueTooLarge(&errorMessage)) {
|
||||
- // The entity at entityName is entityValue.size() characters
|
||||
- // long in its unexpanded form, and was mentioned timesReferenced times,
|
||||
- // resulting in a string that would be greater than 1024 characters.
|
||||
+ if (isExpandedEntityValueTooLarge(&errorMessage)) {
|
||||
reportParseError(errorMessage);
|
||||
return false;
|
||||
}
|
||||
--
|
||||
1.8.4.2
|
||||
|
@ -1,34 +0,0 @@
|
||||
From f45cdeda88796830b3fe71aff7ceb1919d00400d Mon Sep 17 00:00:00 2001
|
||||
From: Aurelien Lourot <aurelien.lourot@gmail.com>
|
||||
Date: Thu, 10 Jan 2013 22:28:37 +0100
|
||||
Subject: [PATCH] QTBUG-15319: fix shortcuts with secondary Xkb layout.
|
||||
|
||||
Change-Id: Iadb89137ec017b9dcd4d1588fd582ea46a9d7cc1
|
||||
Reviewed-by: Aurelien <aurelien.lourot@gmail.com>
|
||||
Reviewed-by: David Faure (KDE) <faure@kde.org>
|
||||
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
||||
---
|
||||
src/gui/kernel/qkeymapper_x11.cpp | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/gui/kernel/qkeymapper_x11.cpp b/src/gui/kernel/qkeymapper_x11.cpp
|
||||
index 7daa41d..005ff3f 100644
|
||||
--- a/src/gui/kernel/qkeymapper_x11.cpp
|
||||
+++ b/src/gui/kernel/qkeymapper_x11.cpp
|
||||
@@ -282,9 +282,12 @@ QList<int> QKeyMapperPrivate::possibleKeysXKB(QKeyEvent *event)
|
||||
|
||||
// first, translate key only using lock modifiers (there are no Qt equivalents for these, so we must
|
||||
// always use them when determining the baseKeySym)
|
||||
+ // Note: the Xkb group to be used for the conversion keycode->keysym has to be given to
|
||||
+ // XkbLookupKeySym(). This information is contained in the bits 8 to 15 of xmodifiers.
|
||||
+ // See https://bugreports.qt-project.org/browse/QTBUG-15319 .
|
||||
KeySym baseKeySym;
|
||||
uint consumedModifiers;
|
||||
- if (!XkbLookupKeySym(X11->display, xkeycode, (xmodifiers & (LockMask | qt_num_lock_mask)),
|
||||
+ if (!XkbLookupKeySym(X11->display, xkeycode, (xmodifiers & (0xff00 | LockMask | qt_num_lock_mask)),
|
||||
&consumedModifiers, &baseKeySym))
|
||||
return QList<int>();
|
||||
|
||||
--
|
||||
1.8.3.1
|
||||
|
@ -1,7 +1,8 @@
|
||||
--- a/src/corelib/io/qprocess_unix.cpp
|
||||
+++ a/src/corelib/io/qprocess_unix.cpp
|
||||
@@ -139,13 +139,6 @@ static void qt_sa_sigchld_handler(int signum)
|
||||
oldAction(signum);
|
||||
diff -up qt-everywhere-opensource-src-4.8.6/src/corelib/io/qprocess_unix.cpp.poll qt-everywhere-opensource-src-4.8.6/src/corelib/io/qprocess_unix.cpp
|
||||
--- qt-everywhere-opensource-src-4.8.6/src/corelib/io/qprocess_unix.cpp.poll 2014-03-30 15:36:48.000000000 -0500
|
||||
+++ qt-everywhere-opensource-src-4.8.6/src/corelib/io/qprocess_unix.cpp 2014-03-31 18:04:05.958260978 -0500
|
||||
@@ -158,13 +158,6 @@ static void qt_sa_sigchld_sigaction(int
|
||||
}
|
||||
}
|
||||
|
||||
-static inline void add_fd(int &nfds, int fd, fd_set *fdset)
|
||||
@ -14,7 +15,7 @@
|
||||
struct QProcessInfo {
|
||||
QProcess *process;
|
||||
int deathPipe;
|
||||
@@ -231,9 +224,9 @@ QProcessManager::~QProcessManager()
|
||||
@@ -256,9 +249,9 @@ QProcessManager::~QProcessManager()
|
||||
void QProcessManager::run()
|
||||
{
|
||||
forever {
|
||||
@ -27,7 +28,7 @@
|
||||
|
||||
#if defined (QPROCESS_DEBUG)
|
||||
qDebug() << "QProcessManager::run() waiting for children to die";
|
||||
@@ -242,8 +235,8 @@ void QProcessManager::run()
|
||||
@@ -267,8 +260,8 @@ void QProcessManager::run()
|
||||
// block forever, or until activity is detected on the dead child
|
||||
// pipe. the only other peers are the SIGCHLD signal handler, and the
|
||||
// QProcessManager destructor.
|
||||
@ -38,7 +39,7 @@
|
||||
if (errno == EINTR)
|
||||
continue;
|
||||
break;
|
||||
@@ -992,17 +985,6 @@ void QProcessPrivate::killProcess()
|
||||
@@ -1027,17 +1020,6 @@ void QProcessPrivate::killProcess()
|
||||
::kill(pid_t(pid), SIGKILL);
|
||||
}
|
||||
|
||||
@ -56,7 +57,7 @@
|
||||
/*
|
||||
Returns the difference between msecs and elapsed. If msecs is -1,
|
||||
however, -1 is returned.
|
||||
@@ -1025,10 +1007,10 @@ bool QProcessPrivate::waitForStarted(int msecs)
|
||||
@@ -1060,10 +1042,10 @@ bool QProcessPrivate::waitForStarted(int
|
||||
childStartedPipe[0]);
|
||||
#endif
|
||||
|
||||
@ -71,7 +72,7 @@
|
||||
processError = QProcess::Timedout;
|
||||
q->setErrorString(QProcess::tr("Process operation timed out"));
|
||||
#if defined (QPROCESS_DEBUG)
|
||||
@@ -1044,6 +1026,47 @@ bool QProcessPrivate::waitForStarted(int msecs)
|
||||
@@ -1079,6 +1061,47 @@ bool QProcessPrivate::waitForStarted(int
|
||||
return startedEmitted;
|
||||
}
|
||||
|
||||
@ -119,7 +120,7 @@
|
||||
bool QProcessPrivate::waitForReadyRead(int msecs)
|
||||
{
|
||||
Q_Q(QProcess);
|
||||
@@ -1055,28 +1078,9 @@ bool QProcessPrivate::waitForReadyRead(int msecs)
|
||||
@@ -1090,28 +1113,9 @@ bool QProcessPrivate::waitForReadyRead(i
|
||||
stopWatch.start();
|
||||
|
||||
forever {
|
||||
@ -150,7 +151,7 @@
|
||||
if (ret < 0) {
|
||||
break;
|
||||
}
|
||||
@@ -1086,18 +1090,18 @@ bool QProcessPrivate::waitForReadyRead(int msecs)
|
||||
@@ -1121,18 +1125,18 @@ bool QProcessPrivate::waitForReadyRead(i
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -172,7 +173,7 @@
|
||||
bool canRead = _q_canReadStandardError();
|
||||
if (processChannel == QProcess::StandardError && canRead)
|
||||
readyReadEmitted = true;
|
||||
@@ -1105,13 +1109,13 @@ bool QProcessPrivate::waitForReadyRead(int msecs)
|
||||
@@ -1140,13 +1144,13 @@ bool QProcessPrivate::waitForReadyRead(i
|
||||
if (readyReadEmitted)
|
||||
return true;
|
||||
|
||||
@ -189,7 +190,7 @@
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -1127,29 +1131,9 @@ bool QProcessPrivate::waitForBytesWritten(int msecs)
|
||||
@@ -1162,29 +1166,9 @@ bool QProcessPrivate::waitForBytesWritte
|
||||
stopWatch.start();
|
||||
|
||||
while (!writeBuffer.isEmpty()) {
|
||||
@ -221,7 +222,7 @@
|
||||
if (ret < 0) {
|
||||
break;
|
||||
}
|
||||
@@ -1160,24 +1144,24 @@ bool QProcessPrivate::waitForBytesWritten(int msecs)
|
||||
@@ -1195,24 +1179,24 @@ bool QProcessPrivate::waitForBytesWritte
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -254,7 +255,7 @@
|
||||
}
|
||||
|
||||
return false;
|
||||
@@ -1194,29 +1178,9 @@ bool QProcessPrivate::waitForFinished(int msecs)
|
||||
@@ -1229,29 +1213,9 @@ bool QProcessPrivate::waitForFinished(in
|
||||
stopWatch.start();
|
||||
|
||||
forever {
|
||||
@ -286,7 +287,7 @@
|
||||
if (ret < 0) {
|
||||
break;
|
||||
}
|
||||
@@ -1226,20 +1190,20 @@ bool QProcessPrivate::waitForFinished(int msecs)
|
||||
@@ -1261,20 +1225,20 @@ bool QProcessPrivate::waitForFinished(in
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -312,7 +313,7 @@
|
||||
if (_q_processDied())
|
||||
return true;
|
||||
}
|
||||
@@ -1249,10 +1213,10 @@ bool QProcessPrivate::waitForFinished(int msecs)
|
||||
@@ -1284,10 +1248,10 @@ bool QProcessPrivate::waitForFinished(in
|
||||
|
||||
bool QProcessPrivate::waitForWrite(int msecs)
|
||||
{
|
||||
@ -327,9 +328,10 @@
|
||||
}
|
||||
|
||||
void QProcessPrivate::findExitCode()
|
||||
--- a/src/corelib/kernel/qcore_unix.cpp
|
||||
+++ a/src/corelib/kernel/qcore_unix.cpp
|
||||
@@ -103,4 +103,165 @@ int qt_safe_select(int nfds, fd_set *fdread, fd_set *fdwrite, fd_set *fdexcept,
|
||||
diff -up qt-everywhere-opensource-src-4.8.6/src/corelib/kernel/qcore_unix.cpp.poll qt-everywhere-opensource-src-4.8.6/src/corelib/kernel/qcore_unix.cpp
|
||||
--- qt-everywhere-opensource-src-4.8.6/src/corelib/kernel/qcore_unix.cpp.poll 2014-03-30 15:36:48.000000000 -0500
|
||||
+++ qt-everywhere-opensource-src-4.8.6/src/corelib/kernel/qcore_unix.cpp 2014-03-31 18:01:59.369715403 -0500
|
||||
@@ -99,4 +99,165 @@ int qt_safe_select(int nfds, fd_set *fdr
|
||||
}
|
||||
}
|
||||
|
||||
@ -495,9 +497,10 @@
|
||||
+#endif
|
||||
+
|
||||
QT_END_NAMESPACE
|
||||
--- a/src/corelib/kernel/qcore_unix_p.h
|
||||
+++ a/src/corelib/kernel/qcore_unix_p.h
|
||||
@@ -316,9 +316,42 @@ static inline pid_t qt_safe_waitpid(pid_t pid, int *status, int options)
|
||||
diff -up qt-everywhere-opensource-src-4.8.6/src/corelib/kernel/qcore_unix_p.h.poll qt-everywhere-opensource-src-4.8.6/src/corelib/kernel/qcore_unix_p.h
|
||||
--- qt-everywhere-opensource-src-4.8.6/src/corelib/kernel/qcore_unix_p.h.poll 2014-03-30 15:36:48.000000000 -0500
|
||||
+++ qt-everywhere-opensource-src-4.8.6/src/corelib/kernel/qcore_unix_p.h 2014-03-31 18:01:59.370715392 -0500
|
||||
@@ -345,9 +345,42 @@ static inline pid_t qt_safe_waitpid(pid_
|
||||
|
||||
timeval qt_gettime(); // in qelapsedtimer_mac.cpp or qtimestamp_unix.cpp
|
||||
|
||||
@ -540,9 +543,10 @@
|
||||
// according to X/OPEN we have to define semun ourselves
|
||||
// we use prefix as on some systems sem.h will have it
|
||||
struct semid_ds;
|
||||
--- a/src/network/socket/qlocalserver_unix.cpp
|
||||
+++ a/src/network/socket/qlocalserver_unix.cpp
|
||||
@@ -208,16 +208,11 @@ void QLocalServerPrivate::_q_onNewConnection()
|
||||
diff -up qt-everywhere-opensource-src-4.8.6/src/network/socket/qlocalserver_unix.cpp.poll qt-everywhere-opensource-src-4.8.6/src/network/socket/qlocalserver_unix.cpp
|
||||
--- qt-everywhere-opensource-src-4.8.6/src/network/socket/qlocalserver_unix.cpp.poll 2014-03-30 15:36:49.000000000 -0500
|
||||
+++ qt-everywhere-opensource-src-4.8.6/src/network/socket/qlocalserver_unix.cpp 2014-03-31 18:01:59.370715392 -0500
|
||||
@@ -208,16 +208,11 @@ void QLocalServerPrivate::_q_onNewConnec
|
||||
|
||||
void QLocalServerPrivate::waitForNewConnection(int msec, bool *timedOut)
|
||||
{
|
||||
@ -563,9 +567,10 @@
|
||||
if (-1 == result) {
|
||||
setError(QLatin1String("QLocalServer::waitForNewConnection"));
|
||||
closeServer();
|
||||
--- a/src/network/socket/qlocalsocket_unix.cpp
|
||||
+++ a/src/network/socket/qlocalsocket_unix.cpp
|
||||
@@ -56,10 +56,6 @@
|
||||
diff -up qt-everywhere-opensource-src-4.8.6/src/network/socket/qlocalsocket_unix.cpp.poll qt-everywhere-opensource-src-4.8.6/src/network/socket/qlocalsocket_unix.cpp
|
||||
--- qt-everywhere-opensource-src-4.8.6/src/network/socket/qlocalsocket_unix.cpp.poll 2014-03-30 15:36:49.000000000 -0500
|
||||
+++ qt-everywhere-opensource-src-4.8.6/src/network/socket/qlocalsocket_unix.cpp 2014-03-31 18:01:59.370715392 -0500
|
||||
@@ -56,10 +56,6 @@
|
||||
#include <qdebug.h>
|
||||
#include <qelapsedtimer.h>
|
||||
|
||||
@ -576,7 +581,7 @@
|
||||
#define QT_CONNECT_TIMEOUT 30000
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
@@ -520,32 +516,17 @@ bool QLocalSocket::waitForConnected(int msec)
|
||||
@@ -520,32 +516,17 @@ bool QLocalSocket::waitForConnected(int
|
||||
if (state() != ConnectingState)
|
||||
return (state() == ConnectedState);
|
||||
|
||||
@ -615,7 +620,7 @@
|
||||
if (-1 == result && errno != EINTR) {
|
||||
d->errorOccurred( QLocalSocket::UnknownSocketError,
|
||||
QLatin1String("QLocalSocket::waitForConnected"));
|
||||
@@ -553,6 +534,11 @@ bool QLocalSocket::waitForConnected(int msec)
|
||||
@@ -553,6 +534,11 @@ bool QLocalSocket::waitForConnected(int
|
||||
}
|
||||
if (result > 0)
|
||||
d->_q_connectToSocket();
|
||||
@ -627,9 +632,10 @@
|
||||
}
|
||||
|
||||
return (state() == ConnectedState);
|
||||
--- a/src/network/socket/qnativesocketengine_unix.cpp
|
||||
+++ a/src/network/socket/qnativesocketengine_unix.cpp
|
||||
@@ -1090,48 +1090,40 @@ qint64 QNativeSocketEnginePrivate::nativeRead(char *data, qint64 maxSize)
|
||||
diff -up qt-everywhere-opensource-src-4.8.6/src/network/socket/qnativesocketengine_unix.cpp.poll qt-everywhere-opensource-src-4.8.6/src/network/socket/qnativesocketengine_unix.cpp
|
||||
--- qt-everywhere-opensource-src-4.8.6/src/network/socket/qnativesocketengine_unix.cpp.poll 2014-03-30 15:36:49.000000000 -0500
|
||||
+++ qt-everywhere-opensource-src-4.8.6/src/network/socket/qnativesocketengine_unix.cpp 2014-03-31 18:01:59.371715381 -0500
|
||||
@@ -1068,48 +1068,40 @@ qint64 QNativeSocketEnginePrivate::nativ
|
||||
|
||||
int QNativeSocketEnginePrivate::nativeSelect(int timeout, bool selectForRead) const
|
||||
{
|
||||
@ -704,9 +710,10 @@
|
||||
return ret;
|
||||
}
|
||||
|
||||
--- a/src/qt3support/network/q3socketdevice_unix.cpp
|
||||
+++ a/src/qt3support/network/q3socketdevice_unix.cpp
|
||||
@@ -68,6 +68,7 @@ static inline int qt_socket_socket(int domain, int type, int protocol)
|
||||
diff -up qt-everywhere-opensource-src-4.8.6/src/qt3support/network/q3socketdevice_unix.cpp.poll qt-everywhere-opensource-src-4.8.6/src/qt3support/network/q3socketdevice_unix.cpp
|
||||
--- qt-everywhere-opensource-src-4.8.6/src/qt3support/network/q3socketdevice_unix.cpp.poll 2014-03-30 15:36:49.000000000 -0500
|
||||
+++ qt-everywhere-opensource-src-4.8.6/src/qt3support/network/q3socketdevice_unix.cpp 2014-03-31 18:01:59.371715381 -0500
|
||||
@@ -68,6 +68,7 @@ static inline int qt_socket_socket(int d
|
||||
#endif
|
||||
|
||||
#include "q3socketdevice.h"
|
||||
@ -714,7 +721,7 @@
|
||||
|
||||
#ifndef QT_NO_NETWORK
|
||||
|
||||
@@ -588,19 +589,10 @@ Q_LONG Q3SocketDevice::waitForMore( int msecs, bool *timeout ) const
|
||||
@@ -588,19 +589,10 @@ Q_LONG Q3SocketDevice::waitForMore( int
|
||||
{
|
||||
if ( !isValid() )
|
||||
return -1;
|
||||
@ -737,8 +744,9 @@
|
||||
|
||||
if ( rv < 0 )
|
||||
return -1;
|
||||
--- a/src/qt3support/other/q3process_unix.cpp
|
||||
+++ a/src/qt3support/other/q3process_unix.cpp
|
||||
diff -up qt-everywhere-opensource-src-4.8.6/src/qt3support/other/q3process_unix.cpp.poll qt-everywhere-opensource-src-4.8.6/src/qt3support/other/q3process_unix.cpp
|
||||
--- qt-everywhere-opensource-src-4.8.6/src/qt3support/other/q3process_unix.cpp.poll 2014-03-30 15:36:49.000000000 -0500
|
||||
+++ qt-everywhere-opensource-src-4.8.6/src/qt3support/other/q3process_unix.cpp 2014-03-31 18:01:59.372715370 -0500
|
||||
@@ -981,13 +981,10 @@ bool Q3Process::isRunning() const
|
||||
// On heavy processing, the socket notifier for the sigchild might not
|
||||
// have found time to fire yet.
|
||||
|
279
qt-aarch64.patch
279
qt-aarch64.patch
File diff suppressed because one or more lines are too long
@ -1,22 +0,0 @@
|
||||
diff -up qt-everywhere-opensource-src-4.8.0/src/3rdparty/webkit/Source/common.pri.me qt-everywhere-opensource-src-4.8.0/src/3rdparty/webkit/Source/common.pri
|
||||
--- qt-everywhere-opensource-src-4.8.0/src/3rdparty/webkit/Source/common.pri.me 2012-01-24 13:05:50.460890750 +0100
|
||||
+++ qt-everywhere-opensource-src-4.8.0/src/3rdparty/webkit/Source/common.pri 2012-01-24 13:19:08.836799974 +0100
|
||||
@@ -3,12 +3,12 @@
|
||||
contains(JAVASCRIPTCORE_JIT,yes): DEFINES+=ENABLE_JIT=1
|
||||
contains(JAVASCRIPTCORE_JIT,no): DEFINES+=ENABLE_JIT=0
|
||||
|
||||
-linux-g++ {
|
||||
-isEmpty($$(SBOX_DPKG_INST_ARCH)):exists(/usr/bin/ld.gold) {
|
||||
- message(Using gold linker)
|
||||
- QMAKE_LFLAGS+=-fuse-ld=gold
|
||||
-}
|
||||
-}
|
||||
+#linux-g++ {
|
||||
+#isEmpty($$(SBOX_DPKG_INST_ARCH)):exists(/usr/bin/ld.gold) {
|
||||
+# message(Using gold linker)
|
||||
+# QMAKE_LFLAGS+=-fuse-ld=gold
|
||||
+#}
|
||||
+#}
|
||||
|
||||
# We use this flag on production branches
|
||||
# See https://bugs.webkit.org/show_bug.cgi?id=60824
|
@ -1,53 +0,0 @@
|
||||
diff -up qt-everywhere-opensource-src-4.8.1/src/plugins/imageformats/tga/qtgafile.cpp.me qt-everywhere-opensource-src-4.8.1/src/plugins/imageformats/tga/qtgafile.cpp
|
||||
--- qt-everywhere-opensource-src-4.8.1/src/plugins/imageformats/tga/qtgafile.cpp.me 2012-03-30 21:54:59.921331145 +0200
|
||||
+++ qt-everywhere-opensource-src-4.8.1/src/plugins/imageformats/tga/qtgafile.cpp 2012-03-30 21:58:14.516042067 +0200
|
||||
@@ -41,6 +41,7 @@
|
||||
|
||||
#include "qtgafile.h"
|
||||
|
||||
+#include <QtCore/QBuffer>
|
||||
#include <QtCore/QIODevice>
|
||||
#include <QtCore/QDebug>
|
||||
#include <QtCore/QDateTime>
|
||||
@@ -264,3 +265,16 @@ QImage QTgaFile::readImage()
|
||||
// TODO: add processing of TGA extension information - ie TGA 2.0 files
|
||||
return im;
|
||||
}
|
||||
+/**
|
||||
+ * Checks if device contains a valid tga image, *without* changing device
|
||||
+ * position.
|
||||
+ */
|
||||
+bool QTgaFile::canRead(QIODevice *device)
|
||||
+{
|
||||
+ QByteArray header = device->peek(HeaderSize);
|
||||
+ if (header.size() < HeaderSize)
|
||||
+ return false;
|
||||
+ QBuffer buffer(&header);
|
||||
+ QTgaFile tga(&buffer);
|
||||
+ return tga.isValid();
|
||||
+}
|
||||
diff -up qt-everywhere-opensource-src-4.8.1/src/plugins/imageformats/tga/qtgafile.h.me qt-everywhere-opensource-src-4.8.1/src/plugins/imageformats/tga/qtgafile.h
|
||||
--- qt-everywhere-opensource-src-4.8.1/src/plugins/imageformats/tga/qtgafile.h.me 2012-03-30 21:58:39.670023189 +0200
|
||||
+++ qt-everywhere-opensource-src-4.8.1/src/plugins/imageformats/tga/qtgafile.h 2012-03-30 21:59:06.202317384 +0200
|
||||
@@ -93,6 +93,8 @@ public:
|
||||
inline QSize size() const;
|
||||
inline Compression compression() const;
|
||||
|
||||
+ static bool canRead(QIODevice *device);
|
||||
+
|
||||
private:
|
||||
static inline quint16 littleEndianInt(const unsigned char *d);
|
||||
|
||||
diff -up qt-everywhere-opensource-src-4.8.1/src/plugins/imageformats/tga/qtgahandler.cpp.me qt-everywhere-opensource-src-4.8.1/src/plugins/imageformats/tga/qtgahandler.cpp
|
||||
--- qt-everywhere-opensource-src-4.8.1/src/plugins/imageformats/tga/qtgahandler.cpp.me 2012-03-30 21:59:17.373303356 +0200
|
||||
+++ qt-everywhere-opensource-src-4.8.1/src/plugins/imageformats/tga/qtgahandler.cpp 2012-03-30 22:00:13.817226439 +0200
|
||||
@@ -77,8 +77,7 @@ bool QTgaHandler::canRead(QIODevice *dev
|
||||
qWarning("QTgaHandler::canRead() called with no device");
|
||||
return false;
|
||||
}
|
||||
- QTgaFile tga(device);
|
||||
- return tga.isValid();
|
||||
+ return QTgaFile::canRead(device);
|
||||
}
|
||||
|
||||
bool QTgaHandler::read(QImage *image)
|
@ -1,12 +0,0 @@
|
||||
diff -ur qt-everywhere-opensource-src-4.8.5-CVE-2013-4549/src/xml/sax/qxml.cpp qt-everywhere-opensource-src-4.8.5-QTBUG-35460/src/xml/sax/qxml.cpp
|
||||
--- qt-everywhere-opensource-src-4.8.5-CVE-2013-4549/src/xml/sax/qxml.cpp 2013-12-05 19:23:33.000000000 +0100
|
||||
+++ qt-everywhere-opensource-src-4.8.5-QTBUG-35460/src/xml/sax/qxml.cpp 2014-01-13 20:15:11.000000000 +0100
|
||||
@@ -6674,7 +6674,7 @@
|
||||
|
||||
if (expandedSizes[entity] > entityCharacterLimit) {
|
||||
if (errorMessage) {
|
||||
- *errorMessage = QString::fromLatin1("The XML entity \"%1\" expands too a string that is too large to process (%2 characters > %3).");
|
||||
+ *errorMessage = QString::fromLatin1("The XML entity \"%1\" expands to a string that is too large to process (%2 characters > %3).");
|
||||
*errorMessage = (*errorMessage).arg(entity).arg(expandedSizes[entity]).arg(entityCharacterLimit);
|
||||
}
|
||||
return true;
|
@ -1,6 +1,6 @@
|
||||
diff -up qt-everywhere-opensource-src-4.8.0/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h.s390 qt-everywhere-opensource-src-4.8.0/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h
|
||||
--- qt-everywhere-opensource-src-4.8.0/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h.s390 2011-07-28 11:12:48.000000000 +0200
|
||||
+++ qt-everywhere-opensource-src-4.8.0/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h 2011-07-28 11:13:56.000000000 +0200
|
||||
diff -up qt-everywhere-opensource-src-4.8.6/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h.s390 qt-everywhere-opensource-src-4.8.6/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h
|
||||
--- qt-everywhere-opensource-src-4.8.6/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h.s390 2014-03-30 15:36:49.000000000 -0500
|
||||
+++ qt-everywhere-opensource-src-4.8.6/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h 2014-03-31 17:59:16.846465899 -0500
|
||||
@@ -189,6 +189,18 @@
|
||||
#define WTF_CPU_SPARC 1
|
||||
#endif
|
||||
@ -20,12 +20,12 @@ diff -up qt-everywhere-opensource-src-4.8.0/src/3rdparty/javascriptcore/JavaScri
|
||||
/* CPU(X86) - i386 / x86 32-bit */
|
||||
#if defined(__i386__) \
|
||||
|| defined(i386) \
|
||||
@@ -873,7 +885,7 @@
|
||||
@@ -903,7 +915,7 @@
|
||||
#endif
|
||||
|
||||
#if !defined(WTF_USE_JSVALUE64) && !defined(WTF_USE_JSVALUE32) && !defined(WTF_USE_JSVALUE32_64)
|
||||
-#if (CPU(X86_64) && (OS(UNIX) || OS(WINDOWS) || OS(SOLARIS) || OS(HPUX))) || (CPU(IA64) && !CPU(IA64_32)) || CPU(ALPHA) || CPU(AIX64) || CPU(SPARC64)
|
||||
+#if (CPU(X86_64) && (OS(UNIX) || OS(WINDOWS) || OS(SOLARIS) || OS(HPUX))) || (CPU(IA64) && !CPU(IA64_32)) || CPU(ALPHA) || CPU(AIX64) || CPU(SPARC64) || CPU(S390X)
|
||||
-#if (CPU(X86_64) && (OS(UNIX) || OS(WINDOWS) || OS(SOLARIS) || OS(HPUX))) || (CPU(IA64) && !CPU(IA64_32)) || CPU(ALPHA) || CPU(AIX64) || CPU(SPARC64) || CPU(MIPS64) || CPU(AARCH64)
|
||||
+#if (CPU(X86_64) && (OS(UNIX) || OS(WINDOWS) || OS(SOLARIS) || OS(HPUX))) || (CPU(IA64) && !CPU(IA64_32)) || CPU(ALPHA) || CPU(AIX64) || CPU(SPARC64) || CPU(MIPS64) || CPU(AARCH64) || CPU(S390X)
|
||||
#define WTF_USE_JSVALUE64 1
|
||||
#elif CPU(ARM) || CPU(PPC64)
|
||||
#define WTF_USE_JSVALUE32 1
|
@ -1,26 +1,7 @@
|
||||
Description: Introduce a plugin system for QSystemTrayIcon.
|
||||
Designed to be used with sni-qt (https://launchpad.net/sni-qt)
|
||||
Author: agateau@kde.org
|
||||
Forwarded: no
|
||||
|
||||
Introduce a plugin system for QSystemTrayIcon. Designed to be used with sni-qt
|
||||
(https://launchpad.net/sni-qt)
|
||||
---
|
||||
examples/desktop/systray/window.cpp | 40 ++
|
||||
examples/desktop/systray/window.h | 6
|
||||
src/gui/util/qabstractsystemtrayiconsys.cpp | 65 +++
|
||||
src/gui/util/qabstractsystemtrayiconsys_p.h | 106 ++++++
|
||||
src/gui/util/qsystemtrayicon.cpp | 6
|
||||
src/gui/util/qsystemtrayicon_p.h | 85 ++---
|
||||
src/gui/util/qsystemtrayicon_x11.cpp | 356 ++++-----------------
|
||||
src/gui/util/qxembedsystemtrayicon_x11.cpp | 469 ++++++++++++++++++++++++++++
|
||||
src/gui/util/qxembedsystemtrayicon_x11_p.h | 104 ++++++
|
||||
src/gui/util/util.pri | 7
|
||||
10 files changed, 916 insertions(+), 328 deletions(-)
|
||||
|
||||
--- a/examples/desktop/systray/window.cpp
|
||||
+++ b/examples/desktop/systray/window.cpp
|
||||
@@ -158,15 +158,23 @@
|
||||
diff -up qt-everywhere-opensource-src-4.8.6/examples/desktop/systray/window.cpp.systemtrayicon qt-everywhere-opensource-src-4.8.6/examples/desktop/systray/window.cpp
|
||||
--- qt-everywhere-opensource-src-4.8.6/examples/desktop/systray/window.cpp.systemtrayicon 2014-03-30 15:36:45.000000000 -0500
|
||||
+++ qt-everywhere-opensource-src-4.8.6/examples/desktop/systray/window.cpp 2014-03-31 18:16:39.707974934 -0500
|
||||
@@ -158,15 +158,23 @@ void Window::createIconGroupBox()
|
||||
iconComboBox->addItem(QIcon(":/images/bad.svg"), tr("Bad"));
|
||||
iconComboBox->addItem(QIcon(":/images/heart.svg"), tr("Heart"));
|
||||
iconComboBox->addItem(QIcon(":/images/trash.svg"), tr("Trash"));
|
||||
@ -44,7 +25,7 @@ Introduce a plugin system for QSystemTrayIcon. Designed to be used with sni-qt
|
||||
iconGroupBox->setLayout(iconLayout);
|
||||
}
|
||||
|
||||
@@ -254,5 +262,37 @@
|
||||
@@ -254,5 +262,37 @@ void Window::createTrayIcon()
|
||||
trayIconMenu->addAction(quitAction);
|
||||
|
||||
trayIcon = new QSystemTrayIcon(this);
|
||||
@ -82,9 +63,10 @@ Introduce a plugin system for QSystemTrayIcon. Designed to be used with sni-qt
|
||||
+ return false;
|
||||
}
|
||||
+#endif
|
||||
--- a/examples/desktop/systray/window.h
|
||||
+++ b/examples/desktop/systray/window.h
|
||||
@@ -69,6 +69,9 @@
|
||||
diff -up qt-everywhere-opensource-src-4.8.6/examples/desktop/systray/window.h.systemtrayicon qt-everywhere-opensource-src-4.8.6/examples/desktop/systray/window.h
|
||||
--- qt-everywhere-opensource-src-4.8.6/examples/desktop/systray/window.h.systemtrayicon 2014-03-30 15:36:45.000000000 -0500
|
||||
+++ qt-everywhere-opensource-src-4.8.6/examples/desktop/systray/window.h 2014-03-31 18:16:39.707974934 -0500
|
||||
@@ -69,6 +69,9 @@ public:
|
||||
|
||||
protected:
|
||||
void closeEvent(QCloseEvent *event);
|
||||
@ -94,7 +76,7 @@ Introduce a plugin system for QSystemTrayIcon. Designed to be used with sni-qt
|
||||
|
||||
private slots:
|
||||
void setIcon(int index);
|
||||
@@ -86,6 +89,9 @@
|
||||
@@ -86,6 +89,9 @@ private:
|
||||
QLabel *iconLabel;
|
||||
QComboBox *iconComboBox;
|
||||
QCheckBox *showIconCheckBox;
|
||||
@ -104,8 +86,9 @@ Introduce a plugin system for QSystemTrayIcon. Designed to be used with sni-qt
|
||||
|
||||
QGroupBox *messageGroupBox;
|
||||
QLabel *typeLabel;
|
||||
--- /dev/null
|
||||
+++ b/src/gui/util/qabstractsystemtrayiconsys.cpp
|
||||
diff -up qt-everywhere-opensource-src-4.8.6/src/gui/util/qabstractsystemtrayiconsys.cpp.systemtrayicon qt-everywhere-opensource-src-4.8.6/src/gui/util/qabstractsystemtrayiconsys.cpp
|
||||
--- qt-everywhere-opensource-src-4.8.6/src/gui/util/qabstractsystemtrayiconsys.cpp.systemtrayicon 2014-03-31 18:16:39.707974934 -0500
|
||||
+++ qt-everywhere-opensource-src-4.8.6/src/gui/util/qabstractsystemtrayiconsys.cpp 2014-03-31 18:16:39.707974934 -0500
|
||||
@@ -0,0 +1,65 @@
|
||||
+/****************************************************************************
|
||||
+**
|
||||
@ -172,8 +155,9 @@ Introduce a plugin system for QSystemTrayIcon. Designed to be used with sni-qt
|
||||
+}
|
||||
+
|
||||
+#endif
|
||||
--- /dev/null
|
||||
+++ b/src/gui/util/qabstractsystemtrayiconsys_p.h
|
||||
diff -up qt-everywhere-opensource-src-4.8.6/src/gui/util/qabstractsystemtrayiconsys_p.h.systemtrayicon qt-everywhere-opensource-src-4.8.6/src/gui/util/qabstractsystemtrayiconsys_p.h
|
||||
--- qt-everywhere-opensource-src-4.8.6/src/gui/util/qabstractsystemtrayiconsys_p.h.systemtrayicon 2014-03-31 18:16:39.708974924 -0500
|
||||
+++ qt-everywhere-opensource-src-4.8.6/src/gui/util/qabstractsystemtrayiconsys_p.h 2014-03-31 18:16:39.708974924 -0500
|
||||
@@ -0,0 +1,106 @@
|
||||
+/****************************************************************************
|
||||
+**
|
||||
@ -281,9 +265,10 @@ Introduce a plugin system for QSystemTrayIcon. Designed to be used with sni-qt
|
||||
+
|
||||
+#endif // QABSTRACTSYSTEMTRAYICONSYS_P_H
|
||||
+
|
||||
--- a/src/gui/util/qsystemtrayicon.cpp
|
||||
+++ b/src/gui/util/qsystemtrayicon.cpp
|
||||
@@ -287,12 +287,6 @@
|
||||
diff -up qt-everywhere-opensource-src-4.8.6/src/gui/util/qsystemtrayicon.cpp.systemtrayicon qt-everywhere-opensource-src-4.8.6/src/gui/util/qsystemtrayicon.cpp
|
||||
--- qt-everywhere-opensource-src-4.8.6/src/gui/util/qsystemtrayicon.cpp.systemtrayicon 2014-03-30 15:36:49.000000000 -0500
|
||||
+++ qt-everywhere-opensource-src-4.8.6/src/gui/util/qsystemtrayicon.cpp 2014-03-31 18:16:39.708974924 -0500
|
||||
@@ -287,12 +287,6 @@ bool QSystemTrayIcon::isVisible() const
|
||||
*/
|
||||
bool QSystemTrayIcon::event(QEvent *e)
|
||||
{
|
||||
@ -296,8 +281,9 @@ Introduce a plugin system for QSystemTrayIcon. Designed to be used with sni-qt
|
||||
return QObject::event(e);
|
||||
}
|
||||
|
||||
--- a/src/gui/util/qsystemtrayicon_p.h
|
||||
+++ b/src/gui/util/qsystemtrayicon_p.h
|
||||
diff -up qt-everywhere-opensource-src-4.8.6/src/gui/util/qsystemtrayicon_p.h.systemtrayicon qt-everywhere-opensource-src-4.8.6/src/gui/util/qsystemtrayicon_p.h
|
||||
--- qt-everywhere-opensource-src-4.8.6/src/gui/util/qsystemtrayicon_p.h.systemtrayicon 2014-03-30 15:36:49.000000000 -0500
|
||||
+++ qt-everywhere-opensource-src-4.8.6/src/gui/util/qsystemtrayicon_p.h 2014-03-31 18:16:39.708974924 -0500
|
||||
@@ -62,10 +62,17 @@
|
||||
#include "QtGui/qpixmap.h"
|
||||
#include "QtCore/qstring.h"
|
||||
@ -316,7 +302,7 @@ Introduce a plugin system for QSystemTrayIcon. Designed to be used with sni-qt
|
||||
class QToolButton;
|
||||
class QLabel;
|
||||
|
||||
@@ -75,6 +82,9 @@
|
||||
@@ -75,6 +82,9 @@ class QSystemTrayIconPrivate : public QO
|
||||
|
||||
public:
|
||||
QSystemTrayIconPrivate() : sys(0), visible(false) { }
|
||||
@ -326,7 +312,7 @@ Introduce a plugin system for QSystemTrayIcon. Designed to be used with sni-qt
|
||||
|
||||
void install_sys();
|
||||
void remove_sys();
|
||||
@@ -90,7 +100,11 @@
|
||||
@@ -90,7 +100,11 @@ public:
|
||||
QPointer<QMenu> menu;
|
||||
QIcon icon;
|
||||
QString toolTip;
|
||||
@ -338,7 +324,7 @@ Introduce a plugin system for QSystemTrayIcon. Designed to be used with sni-qt
|
||||
bool visible;
|
||||
};
|
||||
|
||||
@@ -123,60 +137,37 @@
|
||||
@@ -123,60 +137,37 @@ private:
|
||||
};
|
||||
|
||||
#if defined(Q_WS_X11)
|
||||
@ -423,16 +409,9 @@ Introduce a plugin system for QSystemTrayIcon. Designed to be used with sni-qt
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
||||
--- a/src/gui/util/qsystemtrayicon_x11.cpp
|
||||
+++ b/src/gui/util/qsystemtrayicon_x11.cpp
|
||||
@@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
|
||||
+** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the QtGui module of the Qt Toolkit.
|
||||
diff -up qt-everywhere-opensource-src-4.8.6/src/gui/util/qsystemtrayicon_x11.cpp.systemtrayicon qt-everywhere-opensource-src-4.8.6/src/gui/util/qsystemtrayicon_x11.cpp
|
||||
--- qt-everywhere-opensource-src-4.8.6/src/gui/util/qsystemtrayicon_x11.cpp.systemtrayicon 2014-03-30 15:36:49.000000000 -0500
|
||||
+++ qt-everywhere-opensource-src-4.8.6/src/gui/util/qsystemtrayicon_x11.cpp 2014-03-31 18:16:39.709974914 -0500
|
||||
@@ -38,311 +38,122 @@
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
@ -817,7 +796,7 @@ Introduce a plugin system for QSystemTrayIcon. Designed to be used with sni-qt
|
||||
}
|
||||
|
||||
void QSystemTrayIconPrivate::remove_sys()
|
||||
@@ -350,35 +161,35 @@
|
||||
@@ -350,35 +161,35 @@ void QSystemTrayIconPrivate::remove_sys(
|
||||
if (!sys)
|
||||
return;
|
||||
QBalloonTip::hideBalloon();
|
||||
@ -861,7 +840,7 @@ Introduce a plugin system for QSystemTrayIcon. Designed to be used with sni-qt
|
||||
}
|
||||
|
||||
bool QSystemTrayIconPrivate::supportsMessages_sys()
|
||||
@@ -389,12 +200,9 @@
|
||||
@@ -389,12 +200,9 @@ bool QSystemTrayIconPrivate::supportsMes
|
||||
void QSystemTrayIconPrivate::showMessage_sys(const QString &message, const QString &title,
|
||||
QSystemTrayIcon::MessageIcon icon, int msecs)
|
||||
{
|
||||
@ -876,8 +855,9 @@ Introduce a plugin system for QSystemTrayIcon. Designed to be used with sni-qt
|
||||
}
|
||||
|
||||
QT_END_NAMESPACE
|
||||
--- /dev/null
|
||||
+++ b/src/gui/util/qxembedsystemtrayicon_x11.cpp
|
||||
diff -up qt-everywhere-opensource-src-4.8.6/src/gui/util/qxembedsystemtrayicon_x11.cpp.systemtrayicon qt-everywhere-opensource-src-4.8.6/src/gui/util/qxembedsystemtrayicon_x11.cpp
|
||||
--- qt-everywhere-opensource-src-4.8.6/src/gui/util/qxembedsystemtrayicon_x11.cpp.systemtrayicon 2014-03-31 18:16:39.709974914 -0500
|
||||
+++ qt-everywhere-opensource-src-4.8.6/src/gui/util/qxembedsystemtrayicon_x11.cpp 2014-03-31 18:16:39.709974914 -0500
|
||||
@@ -0,0 +1,469 @@
|
||||
+/****************************************************************************
|
||||
+**
|
||||
@ -1348,8 +1328,9 @@ Introduce a plugin system for QSystemTrayIcon. Designed to be used with sni-qt
|
||||
+
|
||||
+QT_END_NAMESPACE
|
||||
+#endif //QT_NO_SYSTEMTRAYICON
|
||||
--- /dev/null
|
||||
+++ b/src/gui/util/qxembedsystemtrayicon_x11_p.h
|
||||
diff -up qt-everywhere-opensource-src-4.8.6/src/gui/util/qxembedsystemtrayicon_x11_p.h.systemtrayicon qt-everywhere-opensource-src-4.8.6/src/gui/util/qxembedsystemtrayicon_x11_p.h
|
||||
--- qt-everywhere-opensource-src-4.8.6/src/gui/util/qxembedsystemtrayicon_x11_p.h.systemtrayicon 2014-03-31 18:16:39.709974914 -0500
|
||||
+++ qt-everywhere-opensource-src-4.8.6/src/gui/util/qxembedsystemtrayicon_x11_p.h 2014-03-31 18:16:39.709974914 -0500
|
||||
@@ -0,0 +1,104 @@
|
||||
+/****************************************************************************
|
||||
+**
|
||||
@ -1455,9 +1436,10 @@ Introduce a plugin system for QSystemTrayIcon. Designed to be used with sni-qt
|
||||
+
|
||||
+#endif // QXEMBEDSYSTEMTRAYICON_X11_P_H
|
||||
+
|
||||
--- a/src/gui/util/util.pri
|
||||
+++ b/src/gui/util/util.pri
|
||||
@@ -29,8 +29,13 @@
|
||||
diff -up qt-everywhere-opensource-src-4.8.6/src/gui/util/util.pri.systemtrayicon qt-everywhere-opensource-src-4.8.6/src/gui/util/util.pri
|
||||
--- qt-everywhere-opensource-src-4.8.6/src/gui/util/util.pri.systemtrayicon 2014-03-30 15:36:49.000000000 -0500
|
||||
+++ qt-everywhere-opensource-src-4.8.6/src/gui/util/util.pri 2014-03-31 18:16:39.710974903 -0500
|
||||
@@ -29,8 +29,13 @@ wince* {
|
||||
}
|
||||
|
||||
unix:x11 {
|
50
qt.spec
50
qt.spec
@ -21,18 +21,20 @@
|
||||
# support qtchooser
|
||||
%define qtchooser 1
|
||||
|
||||
%define pre rc1
|
||||
|
||||
Summary: Qt toolkit
|
||||
Name: qt
|
||||
Epoch: 1
|
||||
Version: 4.8.5
|
||||
Release: 24%{?dist}
|
||||
Version: 4.8.6
|
||||
Release: 0.1.%{pre}%{?dist}
|
||||
|
||||
# See LGPL_EXCEPTIONS.txt, LICENSE.GPL3, respectively, for exception details
|
||||
License: (LGPLv2 with exceptions or GPLv3 with exceptions) and ASL 2.0 and BSD and FTL and MIT
|
||||
Group: System Environment/Libraries
|
||||
Url: http://qt-project.org/
|
||||
%if 0%{?pre:1}
|
||||
Source0: http://download.qt-project.org/snapshots/qt/4.8/%{version}-%{pre}/qt-everywhere-opensource-src-%{version}-%{pre}.tar.gz
|
||||
Source0: http://download.qt-project.org/development_releases/qt/4.8/%{version}-%{pre}/qt-everywhere-opensource-src-%{version}-%{pre}.tar.gz
|
||||
%else
|
||||
Source0: http://download.qt-project.org/official_releases/qt/4.8/%{version}/qt-everywhere-opensource-src-%{version}.tar.gz
|
||||
%endif
|
||||
@ -101,7 +103,7 @@ Patch64: qt-everywhere-opensource-src-4.8.5-QTBUG-14467.patch
|
||||
Patch65: qt-everywhere-opensource-src-4.8.0-tp-qtreeview-kpackagekit-crash.patch
|
||||
|
||||
# fix the outdated standalone copy of JavaScriptCore
|
||||
Patch67: qt-everywhere-opensource-src-4.8.0-beta1-s390.patch
|
||||
Patch67: qt-everywhere-opensource-src-4.8.6-s390.patch
|
||||
|
||||
# https://bugs.webkit.org/show_bug.cgi?id=63941
|
||||
# -Wall + -Werror = fail
|
||||
@ -123,9 +125,6 @@ Patch76: qt-everywhere-opensource-src-4.8.0-s390-atomic.patch
|
||||
# don't spam in release/no_debug mode if libicu is not present at runtime
|
||||
Patch77: qt-everywhere-opensource-src-4.8.3-icu_no_debug.patch
|
||||
|
||||
# gcc doesn't support flag -fuse-ld=gold
|
||||
Patch80: qt-everywhere-opensource-src-4.8.0-ld-gold.patch
|
||||
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=810500
|
||||
Patch81: qt-everywhere-opensource-src-4.8.2--assistant-crash.patch
|
||||
|
||||
@ -141,23 +140,14 @@ Patch83: qt-4.8-poll.patch
|
||||
# fix QTBUG-35459 (too low entityCharacterLimit=1024 for CVE-2013-4549)
|
||||
Patch84: qt-everywhere-opensource-src-4.8.5-QTBUG-35459.patch
|
||||
|
||||
# fix QTBUG-35460 (error message for CVE-2013-4549 is misspelled)
|
||||
Patch85: qt-everywhere-opensource-src-4.8.5-QTBUG-35460.patch
|
||||
|
||||
# systemtrayicon plugin support (for appindicators)
|
||||
Patch86: kubuntu_14_systemtrayicon.diff
|
||||
Patch86: qt-everywhere-opensource-src-4.8.6-systemtrayicon.patch
|
||||
|
||||
# upstream patches
|
||||
# http://codereview.qt-project.org/#change,22006
|
||||
Patch100: qt-everywhere-opensource-src-4.8.1-qtgahandle.patch
|
||||
# backported from Qt5 (essentially)
|
||||
# http://bugzilla.redhat.com/702493
|
||||
# https://bugreports.qt-project.org/browse/QTBUG-5545
|
||||
Patch102: qt-everywhere-opensource-src-4.8.5-qgtkstyle_disable_gtk_theme_check.patch
|
||||
# revert fix for QTBUG-15319, fixes regression QTBUG-32908
|
||||
# http://bugzilla.redhat.com/968367
|
||||
# https://bugreports.qt-project.org/browse/QTBUG-32908
|
||||
Patch103: QTBUG-15319-fix-shortcuts-with-secondary-Xkb-layout.patch
|
||||
# workaround for MOC issues with Boost headers (#756395)
|
||||
# https://bugreports.qt-project.org/browse/QTBUG-22829
|
||||
Patch113: qt-everywhere-opensource-src-4.8.5-QTBUG-22829.patch
|
||||
@ -168,12 +158,6 @@ Patch180: qt-aarch64.patch
|
||||
Patch181: qt-everywhere-opensource-src-4.8-ppc64le_support.patch
|
||||
|
||||
## upstream git
|
||||
# related prereq patch to 0162 below
|
||||
Patch1147: 0147-Disallow-deep-or-widely-nested-entity-references.patch
|
||||
# CVE-2013-4549
|
||||
# http://lists.qt-project.org/pipermail/announce/2013-December/000036.html
|
||||
# https://codereview.qt-project.org/#change,71010
|
||||
Patch1162: 0162-Fully-expand-entities-to-ensure-deep-or-widely-neste.patch
|
||||
|
||||
## security patches
|
||||
|
||||
@ -529,26 +513,20 @@ rm -fv mkspecs/linux-g++*/qmake.conf.multilib-optflags
|
||||
%patch74 -p1 -b .tds_no_strict_aliasing
|
||||
%patch76 -p1 -b .s390-atomic
|
||||
%patch77 -p1 -b .icu_no_debug
|
||||
%patch80 -p1 -b .ld.gold
|
||||
%patch81 -p1 -b .assistant-crash
|
||||
%patch82 -p1 -b .QTBUG-4862
|
||||
%patch83 -p1 -b .poll
|
||||
|
||||
# upstream patches
|
||||
%patch100 -p1 -b .QTgaHandler
|
||||
%patch102 -p1 -b .qgtkstyle_disable_gtk_theme_check
|
||||
%patch103 -p1 -R -b .QTBUG-15319
|
||||
%patch113 -p1 -b .QTBUG-22829
|
||||
|
||||
%patch180 -p1 -b .aarch64
|
||||
%patch181 -p1 -b .ppc64le
|
||||
|
||||
# security fixes
|
||||
%patch1147 -p1 -b .0147
|
||||
%patch1162 -p1 -b .0162
|
||||
# regression fixes for the security fixes
|
||||
%patch84 -p1 -b .QTBUG-35459
|
||||
%patch85 -p1 -b .QTBUG-35460
|
||||
%patch86 -p1 -b .systemtrayicon
|
||||
|
||||
# drop -fexceptions from $RPM_OPT_FLAGS
|
||||
@ -562,15 +540,10 @@ RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS | sed 's|-fexceptions||g'`
|
||||
%endif
|
||||
|
||||
# https://bugzilla.redhat.com/478481
|
||||
%ifarch x86_64
|
||||
%ifarch x86_64 aarch64
|
||||
%define platform linux-g++
|
||||
%endif
|
||||
|
||||
# qt mkspecs makes assumptions about CFLAGS where it should distro defaults
|
||||
%ifarch aarch64
|
||||
%define platform linux-g++-aarch64
|
||||
%endif
|
||||
|
||||
sed -i -e "s|-O2|$RPM_OPT_FLAGS|g" \
|
||||
mkspecs/%{platform}/qmake.conf
|
||||
|
||||
@ -907,7 +880,8 @@ rm -frv %{buildroot}%{_qt4_prefix}/tests/
|
||||
%find_lang assistant --with-qt --without-mo
|
||||
%find_lang qt_help --with-qt --without-mo
|
||||
%find_lang qtconfig --with-qt --without-mo
|
||||
cat assistant.lang qt_help.lang qtconfig.lang >qt-x11.lang
|
||||
%find_lang qtscript --with-qt --without-mo
|
||||
cat assistant.lang qt_help.lang qtconfig.lang qtscript.lang >qt-x11.lang
|
||||
|
||||
%find_lang designer --with-qt --without-mo
|
||||
%find_lang linguist --with-qt --without-mo
|
||||
@ -1246,6 +1220,10 @@ fi
|
||||
|
||||
|
||||
%changelog
|
||||
* Tue Apr 01 2014 Rex Dieter <rdieter@fedoraproject.org>
|
||||
- 4.8.6-0.1.rc1
|
||||
- 4.8.6-rc1
|
||||
|
||||
* Wed Mar 26 2014 Rex Dieter <rdieter@fedoraproject.org> 4.8.5-24
|
||||
- support ppc64le arch (#1081216)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user