4.8.6-0.1.rc1

- 4.8.6-rc1
- qt-aarch64.patch still needs some love
This commit is contained in:
Rex Dieter 2014-04-02 13:04:42 -05:00
parent 90f12d395b
commit 8ec4a9e6e1
13 changed files with 167 additions and 741 deletions

2
.gitignore vendored
View File

@ -1,4 +1,4 @@
/hi128-app-qt4-logo.png /hi128-app-qt4-logo.png
/hi48-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.5.tar.gz
/qt-everywhere-opensource-src-4.8.6-rc1.tar.gz

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -1,7 +1,8 @@
--- a/src/corelib/io/qprocess_unix.cpp 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
+++ a/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
@@ -139,13 +139,6 @@ static void qt_sa_sigchld_handler(int signum) +++ qt-everywhere-opensource-src-4.8.6/src/corelib/io/qprocess_unix.cpp 2014-03-31 18:04:05.958260978 -0500
oldAction(signum); @@ -158,13 +158,6 @@ static void qt_sa_sigchld_sigaction(int
}
} }
-static inline void add_fd(int &nfds, int fd, fd_set *fdset) -static inline void add_fd(int &nfds, int fd, fd_set *fdset)
@ -14,7 +15,7 @@
struct QProcessInfo { struct QProcessInfo {
QProcess *process; QProcess *process;
int deathPipe; int deathPipe;
@@ -231,9 +224,9 @@ QProcessManager::~QProcessManager() @@ -256,9 +249,9 @@ QProcessManager::~QProcessManager()
void QProcessManager::run() void QProcessManager::run()
{ {
forever { forever {
@ -27,7 +28,7 @@
#if defined (QPROCESS_DEBUG) #if defined (QPROCESS_DEBUG)
qDebug() << "QProcessManager::run() waiting for children to die"; 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 // block forever, or until activity is detected on the dead child
// pipe. the only other peers are the SIGCHLD signal handler, and the // pipe. the only other peers are the SIGCHLD signal handler, and the
// QProcessManager destructor. // QProcessManager destructor.
@ -38,7 +39,7 @@
if (errno == EINTR) if (errno == EINTR)
continue; continue;
break; break;
@@ -992,17 +985,6 @@ void QProcessPrivate::killProcess() @@ -1027,17 +1020,6 @@ void QProcessPrivate::killProcess()
::kill(pid_t(pid), SIGKILL); ::kill(pid_t(pid), SIGKILL);
} }
@ -56,7 +57,7 @@
/* /*
Returns the difference between msecs and elapsed. If msecs is -1, Returns the difference between msecs and elapsed. If msecs is -1,
however, -1 is returned. however, -1 is returned.
@@ -1025,10 +1007,10 @@ bool QProcessPrivate::waitForStarted(int msecs) @@ -1060,10 +1042,10 @@ bool QProcessPrivate::waitForStarted(int
childStartedPipe[0]); childStartedPipe[0]);
#endif #endif
@ -71,7 +72,7 @@
processError = QProcess::Timedout; processError = QProcess::Timedout;
q->setErrorString(QProcess::tr("Process operation timed out")); q->setErrorString(QProcess::tr("Process operation timed out"));
#if defined (QPROCESS_DEBUG) #if defined (QPROCESS_DEBUG)
@@ -1044,6 +1026,47 @@ bool QProcessPrivate::waitForStarted(int msecs) @@ -1079,6 +1061,47 @@ bool QProcessPrivate::waitForStarted(int
return startedEmitted; return startedEmitted;
} }
@ -119,7 +120,7 @@
bool QProcessPrivate::waitForReadyRead(int msecs) bool QProcessPrivate::waitForReadyRead(int msecs)
{ {
Q_Q(QProcess); Q_Q(QProcess);
@@ -1055,28 +1078,9 @@ bool QProcessPrivate::waitForReadyRead(int msecs) @@ -1090,28 +1113,9 @@ bool QProcessPrivate::waitForReadyRead(i
stopWatch.start(); stopWatch.start();
forever { forever {
@ -150,7 +151,7 @@
if (ret < 0) { if (ret < 0) {
break; break;
} }
@@ -1086,18 +1090,18 @@ bool QProcessPrivate::waitForReadyRead(int msecs) @@ -1121,18 +1125,18 @@ bool QProcessPrivate::waitForReadyRead(i
return false; return false;
} }
@ -172,7 +173,7 @@
bool canRead = _q_canReadStandardError(); bool canRead = _q_canReadStandardError();
if (processChannel == QProcess::StandardError && canRead) if (processChannel == QProcess::StandardError && canRead)
readyReadEmitted = true; readyReadEmitted = true;
@@ -1105,13 +1109,13 @@ bool QProcessPrivate::waitForReadyRead(int msecs) @@ -1140,13 +1144,13 @@ bool QProcessPrivate::waitForReadyRead(i
if (readyReadEmitted) if (readyReadEmitted)
return true; return true;
@ -189,7 +190,7 @@
} }
return false; return false;
} }
@@ -1127,29 +1131,9 @@ bool QProcessPrivate::waitForBytesWritten(int msecs) @@ -1162,29 +1166,9 @@ bool QProcessPrivate::waitForBytesWritte
stopWatch.start(); stopWatch.start();
while (!writeBuffer.isEmpty()) { while (!writeBuffer.isEmpty()) {
@ -221,7 +222,7 @@
if (ret < 0) { if (ret < 0) {
break; break;
} }
@@ -1160,24 +1144,24 @@ bool QProcessPrivate::waitForBytesWritten(int msecs) @@ -1195,24 +1179,24 @@ bool QProcessPrivate::waitForBytesWritte
return false; return false;
} }
@ -254,7 +255,7 @@
} }
return false; return false;
@@ -1194,29 +1178,9 @@ bool QProcessPrivate::waitForFinished(int msecs) @@ -1229,29 +1213,9 @@ bool QProcessPrivate::waitForFinished(in
stopWatch.start(); stopWatch.start();
forever { forever {
@ -286,7 +287,7 @@
if (ret < 0) { if (ret < 0) {
break; break;
} }
@@ -1226,20 +1190,20 @@ bool QProcessPrivate::waitForFinished(int msecs) @@ -1261,20 +1225,20 @@ bool QProcessPrivate::waitForFinished(in
return false; return false;
} }
@ -312,7 +313,7 @@
if (_q_processDied()) if (_q_processDied())
return true; return true;
} }
@@ -1249,10 +1213,10 @@ bool QProcessPrivate::waitForFinished(int msecs) @@ -1284,10 +1248,10 @@ bool QProcessPrivate::waitForFinished(in
bool QProcessPrivate::waitForWrite(int msecs) bool QProcessPrivate::waitForWrite(int msecs)
{ {
@ -327,9 +328,10 @@
} }
void QProcessPrivate::findExitCode() void QProcessPrivate::findExitCode()
--- a/src/corelib/kernel/qcore_unix.cpp 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
+++ a/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
@@ -103,4 +103,165 @@ int qt_safe_select(int nfds, fd_set *fdread, fd_set *fdwrite, fd_set *fdexcept, +++ 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 +#endif
+ +
QT_END_NAMESPACE QT_END_NAMESPACE
--- a/src/corelib/kernel/qcore_unix_p.h 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
+++ a/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
@@ -316,9 +316,42 @@ static inline pid_t qt_safe_waitpid(pid_t pid, int *status, int options) +++ 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 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 // according to X/OPEN we have to define semun ourselves
// we use prefix as on some systems sem.h will have it // we use prefix as on some systems sem.h will have it
struct semid_ds; struct semid_ds;
--- a/src/network/socket/qlocalserver_unix.cpp 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
+++ a/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
@@ -208,16 +208,11 @@ void QLocalServerPrivate::_q_onNewConnection() +++ 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) void QLocalServerPrivate::waitForNewConnection(int msec, bool *timedOut)
{ {
@ -563,9 +567,10 @@
if (-1 == result) { if (-1 == result) {
setError(QLatin1String("QLocalServer::waitForNewConnection")); setError(QLatin1String("QLocalServer::waitForNewConnection"));
closeServer(); closeServer();
--- a/src/network/socket/qlocalsocket_unix.cpp 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
+++ a/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
@@ -56,10 +56,6 @@ +++ 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 <qdebug.h>
#include <qelapsedtimer.h> #include <qelapsedtimer.h>
@ -576,7 +581,7 @@
#define QT_CONNECT_TIMEOUT 30000 #define QT_CONNECT_TIMEOUT 30000
QT_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE
@@ -520,32 +516,17 @@ bool QLocalSocket::waitForConnected(int msec) @@ -520,32 +516,17 @@ bool QLocalSocket::waitForConnected(int
if (state() != ConnectingState) if (state() != ConnectingState)
return (state() == ConnectedState); return (state() == ConnectedState);
@ -615,7 +620,7 @@
if (-1 == result && errno != EINTR) { if (-1 == result && errno != EINTR) {
d->errorOccurred( QLocalSocket::UnknownSocketError, d->errorOccurred( QLocalSocket::UnknownSocketError,
QLatin1String("QLocalSocket::waitForConnected")); QLatin1String("QLocalSocket::waitForConnected"));
@@ -553,6 +534,11 @@ bool QLocalSocket::waitForConnected(int msec) @@ -553,6 +534,11 @@ bool QLocalSocket::waitForConnected(int
} }
if (result > 0) if (result > 0)
d->_q_connectToSocket(); d->_q_connectToSocket();
@ -627,9 +632,10 @@
} }
return (state() == ConnectedState); return (state() == ConnectedState);
--- a/src/network/socket/qnativesocketengine_unix.cpp 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
+++ a/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
@@ -1090,48 +1090,40 @@ qint64 QNativeSocketEnginePrivate::nativeRead(char *data, qint64 maxSize) +++ 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 int QNativeSocketEnginePrivate::nativeSelect(int timeout, bool selectForRead) const
{ {
@ -704,9 +710,10 @@
return ret; return ret;
} }
--- a/src/qt3support/network/q3socketdevice_unix.cpp 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
+++ a/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
@@ -68,6 +68,7 @@ static inline int qt_socket_socket(int domain, int type, int protocol) +++ 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 #endif
#include "q3socketdevice.h" #include "q3socketdevice.h"
@ -714,7 +721,7 @@
#ifndef QT_NO_NETWORK #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() ) if ( !isValid() )
return -1; return -1;
@ -737,8 +744,9 @@
if ( rv < 0 ) if ( rv < 0 )
return -1; return -1;
--- 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
+++ a/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 @@ -981,13 +981,10 @@ bool Q3Process::isRunning() const
// On heavy processing, the socket notifier for the sigchild might not // On heavy processing, the socket notifier for the sigchild might not
// have found time to fire yet. // have found time to fire yet.

File diff suppressed because one or more lines are too long

View File

@ -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

View File

@ -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)

View File

@ -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;

View File

@ -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 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.0/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h.s390 2011-07-28 11:12:48.000000000 +0200 --- 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.0/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h 2011-07-28 11:13:56.000000000 +0200 +++ 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 @@ @@ -189,6 +189,18 @@
#define WTF_CPU_SPARC 1 #define WTF_CPU_SPARC 1
#endif #endif
@ -20,12 +20,12 @@ diff -up qt-everywhere-opensource-src-4.8.0/src/3rdparty/javascriptcore/JavaScri
/* CPU(X86) - i386 / x86 32-bit */ /* CPU(X86) - i386 / x86 32-bit */
#if defined(__i386__) \ #if defined(__i386__) \
|| defined(i386) \ || defined(i386) \
@@ -873,7 +885,7 @@ @@ -903,7 +915,7 @@
#endif #endif
#if !defined(WTF_USE_JSVALUE64) && !defined(WTF_USE_JSVALUE32) && !defined(WTF_USE_JSVALUE32_64) #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(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(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) || CPU(S390X)
#define WTF_USE_JSVALUE64 1 #define WTF_USE_JSVALUE64 1
#elif CPU(ARM) || CPU(PPC64) #elif CPU(ARM) || CPU(PPC64)
#define WTF_USE_JSVALUE32 1 #define WTF_USE_JSVALUE32 1

View File

@ -1,26 +1,7 @@
Description: Introduce a plugin system for QSystemTrayIcon. 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
Designed to be used with sni-qt (https://launchpad.net/sni-qt) --- qt-everywhere-opensource-src-4.8.6/examples/desktop/systray/window.cpp.systemtrayicon 2014-03-30 15:36:45.000000000 -0500
Author: agateau@kde.org +++ qt-everywhere-opensource-src-4.8.6/examples/desktop/systray/window.cpp 2014-03-31 18:16:39.707974934 -0500
Forwarded: no @@ -158,15 +158,23 @@ void Window::createIconGroupBox()
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 @@
iconComboBox->addItem(QIcon(":/images/bad.svg"), tr("Bad")); iconComboBox->addItem(QIcon(":/images/bad.svg"), tr("Bad"));
iconComboBox->addItem(QIcon(":/images/heart.svg"), tr("Heart")); iconComboBox->addItem(QIcon(":/images/heart.svg"), tr("Heart"));
iconComboBox->addItem(QIcon(":/images/trash.svg"), tr("Trash")); 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); iconGroupBox->setLayout(iconLayout);
} }
@@ -254,5 +262,37 @@ @@ -254,5 +262,37 @@ void Window::createTrayIcon()
trayIconMenu->addAction(quitAction); trayIconMenu->addAction(quitAction);
trayIcon = new QSystemTrayIcon(this); trayIcon = new QSystemTrayIcon(this);
@ -82,9 +63,10 @@ Introduce a plugin system for QSystemTrayIcon. Designed to be used with sni-qt
+ return false; + return false;
} }
+#endif +#endif
--- a/examples/desktop/systray/window.h 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
+++ b/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
@@ -69,6 +69,9 @@ +++ 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: protected:
void closeEvent(QCloseEvent *event); void closeEvent(QCloseEvent *event);
@ -94,7 +76,7 @@ Introduce a plugin system for QSystemTrayIcon. Designed to be used with sni-qt
private slots: private slots:
void setIcon(int index); void setIcon(int index);
@@ -86,6 +89,9 @@ @@ -86,6 +89,9 @@ private:
QLabel *iconLabel; QLabel *iconLabel;
QComboBox *iconComboBox; QComboBox *iconComboBox;
QCheckBox *showIconCheckBox; QCheckBox *showIconCheckBox;
@ -104,8 +86,9 @@ Introduce a plugin system for QSystemTrayIcon. Designed to be used with sni-qt
QGroupBox *messageGroupBox; QGroupBox *messageGroupBox;
QLabel *typeLabel; QLabel *typeLabel;
--- /dev/null 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
+++ b/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 @@ @@ -0,0 +1,65 @@
+/**************************************************************************** +/****************************************************************************
+** +**
@ -172,8 +155,9 @@ Introduce a plugin system for QSystemTrayIcon. Designed to be used with sni-qt
+} +}
+ +
+#endif +#endif
--- /dev/null 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
+++ b/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 @@ @@ -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 +#endif // QABSTRACTSYSTEMTRAYICONSYS_P_H
+ +
--- a/src/gui/util/qsystemtrayicon.cpp 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
+++ b/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
@@ -287,12 +287,6 @@ +++ 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) 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); return QObject::event(e);
} }
--- a/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
+++ b/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 @@ @@ -62,10 +62,17 @@
#include "QtGui/qpixmap.h" #include "QtGui/qpixmap.h"
#include "QtCore/qstring.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 QToolButton;
class QLabel; class QLabel;
@@ -75,6 +82,9 @@ @@ -75,6 +82,9 @@ class QSystemTrayIconPrivate : public QO
public: public:
QSystemTrayIconPrivate() : sys(0), visible(false) { } 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 install_sys();
void remove_sys(); void remove_sys();
@@ -90,7 +100,11 @@ @@ -90,7 +100,11 @@ public:
QPointer<QMenu> menu; QPointer<QMenu> menu;
QIcon icon; QIcon icon;
QString toolTip; QString toolTip;
@ -338,7 +324,7 @@ Introduce a plugin system for QSystemTrayIcon. Designed to be used with sni-qt
bool visible; bool visible;
}; };
@@ -123,60 +137,37 @@ @@ -123,60 +137,37 @@ private:
}; };
#if defined(Q_WS_X11) #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 QT_END_NAMESPACE
--- a/src/gui/util/qsystemtrayicon_x11.cpp 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
+++ b/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
@@ -1,6 +1,6 @@ +++ qt-everywhere-opensource-src-4.8.6/src/gui/util/qsystemtrayicon_x11.cpp 2014-03-31 18:16:39.709974914 -0500
/****************************************************************************
**
-** 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.
@@ -38,311 +38,122 @@ @@ -38,311 +38,122 @@
** $QT_END_LICENSE$ ** $QT_END_LICENSE$
** **
@ -817,7 +796,7 @@ Introduce a plugin system for QSystemTrayIcon. Designed to be used with sni-qt
} }
void QSystemTrayIconPrivate::remove_sys() void QSystemTrayIconPrivate::remove_sys()
@@ -350,35 +161,35 @@ @@ -350,35 +161,35 @@ void QSystemTrayIconPrivate::remove_sys(
if (!sys) if (!sys)
return; return;
QBalloonTip::hideBalloon(); QBalloonTip::hideBalloon();
@ -861,7 +840,7 @@ Introduce a plugin system for QSystemTrayIcon. Designed to be used with sni-qt
} }
bool QSystemTrayIconPrivate::supportsMessages_sys() 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, void QSystemTrayIconPrivate::showMessage_sys(const QString &message, const QString &title,
QSystemTrayIcon::MessageIcon icon, int msecs) 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 QT_END_NAMESPACE
--- /dev/null 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
+++ b/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 @@ @@ -0,0 +1,469 @@
+/**************************************************************************** +/****************************************************************************
+** +**
@ -1348,8 +1328,9 @@ Introduce a plugin system for QSystemTrayIcon. Designed to be used with sni-qt
+ +
+QT_END_NAMESPACE +QT_END_NAMESPACE
+#endif //QT_NO_SYSTEMTRAYICON +#endif //QT_NO_SYSTEMTRAYICON
--- /dev/null 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
+++ b/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 @@ @@ -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 +#endif // QXEMBEDSYSTEMTRAYICON_X11_P_H
+ +
--- a/src/gui/util/util.pri 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
+++ b/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
@@ -29,8 +29,13 @@ +++ 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 { unix:x11 {

50
qt.spec
View File

@ -21,18 +21,20 @@
# support qtchooser # support qtchooser
%define qtchooser 1 %define qtchooser 1
%define pre rc1
Summary: Qt toolkit Summary: Qt toolkit
Name: qt Name: qt
Epoch: 1 Epoch: 1
Version: 4.8.5 Version: 4.8.6
Release: 24%{?dist} Release: 0.1.%{pre}%{?dist}
# See LGPL_EXCEPTIONS.txt, LICENSE.GPL3, respectively, for exception details # 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 License: (LGPLv2 with exceptions or GPLv3 with exceptions) and ASL 2.0 and BSD and FTL and MIT
Group: System Environment/Libraries Group: System Environment/Libraries
Url: http://qt-project.org/ Url: http://qt-project.org/
%if 0%{?pre:1} %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 %else
Source0: http://download.qt-project.org/official_releases/qt/4.8/%{version}/qt-everywhere-opensource-src-%{version}.tar.gz Source0: http://download.qt-project.org/official_releases/qt/4.8/%{version}/qt-everywhere-opensource-src-%{version}.tar.gz
%endif %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 Patch65: qt-everywhere-opensource-src-4.8.0-tp-qtreeview-kpackagekit-crash.patch
# fix the outdated standalone copy of JavaScriptCore # 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 # https://bugs.webkit.org/show_bug.cgi?id=63941
# -Wall + -Werror = fail # -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 # 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 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 # https://bugzilla.redhat.com/show_bug.cgi?id=810500
Patch81: qt-everywhere-opensource-src-4.8.2--assistant-crash.patch 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) # fix QTBUG-35459 (too low entityCharacterLimit=1024 for CVE-2013-4549)
Patch84: qt-everywhere-opensource-src-4.8.5-QTBUG-35459.patch 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) # systemtrayicon plugin support (for appindicators)
Patch86: kubuntu_14_systemtrayicon.diff Patch86: qt-everywhere-opensource-src-4.8.6-systemtrayicon.patch
# upstream patches # upstream patches
# http://codereview.qt-project.org/#change,22006
Patch100: qt-everywhere-opensource-src-4.8.1-qtgahandle.patch
# backported from Qt5 (essentially) # backported from Qt5 (essentially)
# http://bugzilla.redhat.com/702493 # http://bugzilla.redhat.com/702493
# https://bugreports.qt-project.org/browse/QTBUG-5545 # https://bugreports.qt-project.org/browse/QTBUG-5545
Patch102: qt-everywhere-opensource-src-4.8.5-qgtkstyle_disable_gtk_theme_check.patch 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) # workaround for MOC issues with Boost headers (#756395)
# https://bugreports.qt-project.org/browse/QTBUG-22829 # https://bugreports.qt-project.org/browse/QTBUG-22829
Patch113: qt-everywhere-opensource-src-4.8.5-QTBUG-22829.patch 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 Patch181: qt-everywhere-opensource-src-4.8-ppc64le_support.patch
## upstream git ## 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 ## security patches
@ -529,26 +513,20 @@ rm -fv mkspecs/linux-g++*/qmake.conf.multilib-optflags
%patch74 -p1 -b .tds_no_strict_aliasing %patch74 -p1 -b .tds_no_strict_aliasing
%patch76 -p1 -b .s390-atomic %patch76 -p1 -b .s390-atomic
%patch77 -p1 -b .icu_no_debug %patch77 -p1 -b .icu_no_debug
%patch80 -p1 -b .ld.gold
%patch81 -p1 -b .assistant-crash %patch81 -p1 -b .assistant-crash
%patch82 -p1 -b .QTBUG-4862 %patch82 -p1 -b .QTBUG-4862
%patch83 -p1 -b .poll %patch83 -p1 -b .poll
# upstream patches # upstream patches
%patch100 -p1 -b .QTgaHandler
%patch102 -p1 -b .qgtkstyle_disable_gtk_theme_check %patch102 -p1 -b .qgtkstyle_disable_gtk_theme_check
%patch103 -p1 -R -b .QTBUG-15319
%patch113 -p1 -b .QTBUG-22829 %patch113 -p1 -b .QTBUG-22829
%patch180 -p1 -b .aarch64 %patch180 -p1 -b .aarch64
%patch181 -p1 -b .ppc64le %patch181 -p1 -b .ppc64le
# security fixes # security fixes
%patch1147 -p1 -b .0147
%patch1162 -p1 -b .0162
# regression fixes for the security fixes # regression fixes for the security fixes
%patch84 -p1 -b .QTBUG-35459 %patch84 -p1 -b .QTBUG-35459
%patch85 -p1 -b .QTBUG-35460
%patch86 -p1 -b .systemtrayicon %patch86 -p1 -b .systemtrayicon
# drop -fexceptions from $RPM_OPT_FLAGS # drop -fexceptions from $RPM_OPT_FLAGS
@ -562,15 +540,10 @@ RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS | sed 's|-fexceptions||g'`
%endif %endif
# https://bugzilla.redhat.com/478481 # https://bugzilla.redhat.com/478481
%ifarch x86_64 %ifarch x86_64 aarch64
%define platform linux-g++ %define platform linux-g++
%endif %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" \ sed -i -e "s|-O2|$RPM_OPT_FLAGS|g" \
mkspecs/%{platform}/qmake.conf mkspecs/%{platform}/qmake.conf
@ -907,7 +880,8 @@ rm -frv %{buildroot}%{_qt4_prefix}/tests/
%find_lang assistant --with-qt --without-mo %find_lang assistant --with-qt --without-mo
%find_lang qt_help --with-qt --without-mo %find_lang qt_help --with-qt --without-mo
%find_lang qtconfig --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 designer --with-qt --without-mo
%find_lang linguist --with-qt --without-mo %find_lang linguist --with-qt --without-mo
@ -1246,6 +1220,10 @@ fi
%changelog %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 * Wed Mar 26 2014 Rex Dieter <rdieter@fedoraproject.org> 4.8.5-24
- support ppc64le arch (#1081216) - support ppc64le arch (#1081216)

View File

@ -1,3 +1 @@
d9f511e4b51983b4e10eb58b320416d5 hi128-app-qt4-logo.png f5a9181d916abf83345915ed31dcaccc qt-everywhere-opensource-src-4.8.6-rc1.tar.gz
6dcc0672ff9e60a6b83f95c5f42bec5b hi48-app-qt4-logo.png
1864987bdbb2f58f8ae8b350dfdbe133 qt-everywhere-opensource-src-4.8.5.tar.gz