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

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
+++ 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.

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

View File

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

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

View File

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