Update to 5.3.0

This commit is contained in:
Jan Grulich 2014-05-21 12:03:59 +02:00
parent 86ce10d90f
commit 7a3dd6d5af
6 changed files with 18 additions and 141 deletions

View File

@ -21,8 +21,8 @@
Summary: Qt5 - QtBase components
Name: qt5-qtbase
Version: 5.2.1
Release: 8%{?dist}
Version: 5.3.0
Release: 1%{?dist}
# See LGPL_EXCEPTIONS.txt, LICENSE.GPL3, respectively, for exception details
License: LGPLv2 with exceptions or GPLv3 with exceptions
@ -45,22 +45,12 @@ Source5: qconfig-multilib.h
# QT_XCB_FORCE_SOFTWARE_OPENGL for them
Source6: 10-qt5-check-opengl2.sh
# help build on some lowmem archs, e.g. drop hard-coded -O3 optimization on some files
Patch1: qtbase-opensource-src-5.0.2-lowmem.patch
# support multilib optflags
Patch2: qtbase-multilib_optflags.patch
# qatomic on ppc/ppc64, http://bugzilla.redhat.com/1005482
Patch3: qtbase-qatomic-ppc.patch
# fix QTBUG-35459 (too low entityCharacterLimit=1024 for CVE-2013-4549)
Patch4: qt-everywhere-opensource-src-4.8.5-QTBUG-35459.patch
# add a QT_XCB_FORCE_SOFTWARE_OPENGL environment variable to allow forcing
# LIBGL_ALWAYS_SOFTWARE (llvmpipe) for Qt 5 apps only
Patch6: qtbase-opensource-src-5.2.0-allow-forcing-llvmpipe.patch
# unconditionally enable freetype lcdfilter support
Patch12: qtbase-opensource-src-5.2.0-enable_ft_lcdfilter.patch
@ -72,10 +62,6 @@ Patch50: qt5-poll.patch
##upstream patches
## security patches
# https://bugreports.qt-project.org/browse/QTBUG-38367
Patch200: qtbase-opensource-src-5.2.1-QTBUG-38367.patch
# macros
%define _qt5 %{name}
%define _qt5_prefix %{_libdir}/qt5
@ -262,23 +248,14 @@ Qt5 libraries used for drawing widgets and OpenGL items.
# drop backup file(s), else they get installed too, http://bugzilla.redhat.com/639463
rm -fv mkspecs/linux-g++*/qmake.conf.multilib-optflags
%patch3 -p1 -b .qatomic-ppc
%patch4 -p1 -b .QTBUG-35459
%patch6 -p1 -b .allow-forcing-llvmpipe
%patch12 -p1 -b .enable_ft_lcdfilter
#patch50 -p1 -b .poll
%patch200 -p1 -b .QTBUG-38367
# drop -fexceptions from $RPM_OPT_FLAGS
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS | sed 's|-fexceptions||g'`
# lowmem hacks
#ifarch %{arm} s390
%patch1 -p1 -b .lowmem
#endif
%define platform linux-g++
%ifarch %{multilib_archs}
%if "%{?__isa_bits}" == "64"
@ -694,6 +671,9 @@ popd
%changelog
* Wed May 21 2014 Jan Grulich <jgrulich@redhat.com> 5.3.0-1
- 5.3.0
* Thu Apr 24 2014 Rex Dieter <rdieter@fedoraproject.org> 5.2.1-8
- DoS vulnerability in the GIF image handler (QTBUG-38367)

View File

@ -1,6 +1,7 @@
diff -up qtbase-opensource-src-5.1.0/mkspecs/linux-g++-32/qmake.conf.multilib_optflags qtbase-opensource-src-5.1.0/mkspecs/linux-g++-32/qmake.conf
--- qtbase-opensource-src-5.1.0/mkspecs/linux-g++-32/qmake.conf.multilib_optflags 2013-08-27 10:28:26.599972122 -0500
+++ qtbase-opensource-src-5.1.0/mkspecs/linux-g++-32/qmake.conf 2013-08-27 10:30:03.780950078 -0500
diff --git a/mkspecs/linux-g++-32/qmake.conf b/mkspecs/linux-g++-32/qmake.conf
index 340aa85..571a559 100644
--- a/mkspecs/linux-g++-32/qmake.conf
+++ b/mkspecs/linux-g++-32/qmake.conf
@@ -9,6 +9,8 @@ QMAKE_INCREMENTAL_STYLE = sublib
QMAKE_CFLAGS = -m32
QMAKE_LFLAGS = -m32
@ -10,9 +11,10 @@ diff -up qtbase-opensource-src-5.1.0/mkspecs/linux-g++-32/qmake.conf.multilib_op
include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)
diff -up qtbase-opensource-src-5.1.0/mkspecs/linux-g++-64/qmake.conf.multilib_optflags qtbase-opensource-src-5.1.0/mkspecs/linux-g++-64/qmake.conf
--- qtbase-opensource-src-5.1.0/mkspecs/linux-g++-64/qmake.conf.multilib_optflags 2013-08-27 10:28:26.600972112 -0500
+++ qtbase-opensource-src-5.1.0/mkspecs/linux-g++-64/qmake.conf 2013-08-27 10:29:49.188103550 -0500
diff --git a/mkspecs/linux-g++-64/qmake.conf b/mkspecs/linux-g++-64/qmake.conf
index 36fb6a8..9a07595 100644
--- a/mkspecs/linux-g++-64/qmake.conf
+++ b/mkspecs/linux-g++-64/qmake.conf
@@ -12,6 +12,8 @@ QMAKE_INCREMENTAL_STYLE = sublib
QMAKE_CFLAGS = -m64
QMAKE_LFLAGS = -m64
@ -22,11 +24,12 @@ diff -up qtbase-opensource-src-5.1.0/mkspecs/linux-g++-64/qmake.conf.multilib_op
include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)
diff -up qtbase-opensource-src-5.1.0/mkspecs/linux-g++/qmake.conf.multilib_optflags qtbase-opensource-src-5.1.0/mkspecs/linux-g++/qmake.conf
--- qtbase-opensource-src-5.1.0/mkspecs/linux-g++/qmake.conf.multilib_optflags 2013-08-27 10:28:26.601972101 -0500
+++ qtbase-opensource-src-5.1.0/mkspecs/linux-g++/qmake.conf 2013-08-27 10:29:30.196303285 -0500
diff --git a/mkspecs/linux-g++/qmake.conf b/mkspecs/linux-g++/qmake.conf
index 35bce8f..5186f98 100644
--- a/mkspecs/linux-g++/qmake.conf
+++ b/mkspecs/linux-g++/qmake.conf
@@ -6,6 +6,8 @@ MAKEFILE_GENERATOR = UNIX
CONFIG += incremental gdb_dwarf_index
CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublib
+QMAKE_CFLAGS_RELEASE += -O2

View File

@ -1,14 +0,0 @@
diff -up qtbase-opensource-src-5.0.2/src/gui/painting/qdrawhelper.cpp.lowmem qtbase-opensource-src-5.0.2/src/gui/painting/qdrawhelper.cpp
--- qtbase-opensource-src-5.0.2/src/gui/painting/qdrawhelper.cpp.lowmem 2013-04-08 19:11:09.000000000 -0500
+++ qtbase-opensource-src-5.0.2/src/gui/painting/qdrawhelper.cpp 2013-04-18 19:34:44.600940784 -0500
@@ -43,8 +43,8 @@
&& (__GNUC__ * 100 + __GNUC_MINOR__ * 10 + __GNUC_PATCHLEVEL__ >= 440)
// GCC 4.4 supports #pragma GCC optimize and #pragma GCC target
-# if (__GNUC__ * 100 + __GNUC_MINOR__ * 10 + __GNUC_PATCHLEVEL__ < 473)
-// From GCC 4.7.3 onwards, GCC optimize can result in gcc bailing out with OOM
+# if (__GNUC__ * 100 + __GNUC_MINOR__ * 10 + __GNUC_PATCHLEVEL__ < 472)
+// From GCC 4.7.2 onwards, GCC optimize can result in gcc bailing out with OOM
# pragma GCC optimize "O3"
# endif

View File

@ -1,53 +0,0 @@
diff -ur qtbase-opensource-src-5.2.0/src/platformsupport/glxconvenience/qglxconvenience.cpp qtbase-opensource-src-5.2.0-allow-forcing-llvmpipe/src/platformsupport/glxconvenience/qglxconvenience.cpp
--- qtbase-opensource-src-5.2.0/src/platformsupport/glxconvenience/qglxconvenience.cpp 2013-12-08 18:09:47.000000000 +0100
+++ qtbase-opensource-src-5.2.0-allow-forcing-llvmpipe/src/platformsupport/glxconvenience/qglxconvenience.cpp 2014-01-29 19:03:23.000000000 +0100
@@ -39,6 +39,10 @@
**
****************************************************************************/
+// We have to include this before the X11 headers dragged in by
+// qglxconvenience_p.h.
+#include <QtCore/QByteArray>
+
#include "qglxconvenience_p.h"
#include <QtCore/QVector>
@@ -116,6 +120,27 @@
GLXFBConfig qglx_findConfig(Display *display, int screen , const QSurfaceFormat &format, int drawableBit)
{
+ // Allow forcing LIBGL_ALWAYS_SOFTWARE for Qt 5 applications only.
+ // This is most useful with drivers that only support OpenGL 1.
+ // We need OpenGL 2, but the user probably doesn't want
+ // LIBGL_ALWAYS_SOFTWARE in OpenGL 1 apps.
+ static bool checkedForceSoftwareOpenGL = false;
+ static bool forceSoftwareOpenGL = false;
+ if (!checkedForceSoftwareOpenGL) {
+ // If LIBGL_ALWAYS_SOFTWARE is already set, don't mess with it.
+ // We want to unset LIBGL_ALWAYS_SOFTWARE at the end so it does not
+ // get inherited by other processes, of course only if it wasn't
+ // already set before.
+ if (!qEnvironmentVariableIsEmpty("QT_XCB_FORCE_SOFTWARE_OPENGL")
+ && !qEnvironmentVariableIsSet("LIBGL_ALWAYS_SOFTWARE"))
+ forceSoftwareOpenGL = true;
+
+ checkedForceSoftwareOpenGL = true;
+ }
+
+ if (forceSoftwareOpenGL)
+ qputenv("LIBGL_ALWAYS_SOFTWARE", QByteArrayLiteral("1"));
+
bool reduced = true;
GLXFBConfig chosenConfig = 0;
QSurfaceFormat reducedFormat = format;
@@ -159,6 +184,10 @@
reducedFormat = qglx_reduceSurfaceFormat(reducedFormat,&reduced);
}
+ // unset LIBGL_ALWAYS_SOFTWARE now so other processes don't inherit it
+ if (forceSoftwareOpenGL)
+ qunsetenv("LIBGL_ALWAYS_SOFTWARE");
+
return chosenConfig;
}

View File

@ -1,17 +0,0 @@
diff -up qtbase-opensource-src-5.2.1/src/gui/image/qgifhandler.cpp.QTBUG-38367 qtbase-opensource-src-5.2.1/src/gui/image/qgifhandler.cpp
--- qtbase-opensource-src-5.2.1/src/gui/image/qgifhandler.cpp.QTBUG-38367 2014-02-01 14:37:35.000000000 -0600
+++ qtbase-opensource-src-5.2.1/src/gui/image/qgifhandler.cpp 2014-04-24 16:28:10.952100278 -0500
@@ -359,6 +359,13 @@ int QGIFFormat::decode(QImage *image, co
memset(bits, 0, image->byteCount());
}
+ // Check if the previous attempt to create the image failed. If it
+ // did then the image is broken and we should give up.
+ if (image->isNull()) {
+ state = Error;
+ return -1;
+ }
+
disposePrevious(image);
disposed = false;

View File

@ -1,22 +0,0 @@
Index: qtbase-opensource-src-5.1.1/src/corelib/thread/qoldbasicatomic.h
===================================================================
--- qtbase-opensource-src-5.1.1.orig/src/corelib/thread/qoldbasicatomic.h
+++ qtbase-opensource-src-5.1.1/src/corelib/thread/qoldbasicatomic.h
@@ -63,7 +63,7 @@ public:
// Atomic API, implemented in qatomic_XXX.h
int load() const { return _q_value; }
- int loadAcquire() { return _q_value; }
+ int loadAcquire() const { return _q_value; }
void store(int newValue) { _q_value = newValue; }
void storeRelease(int newValue) { _q_value = newValue; }
@@ -107,7 +107,7 @@ public:
// Atomic API, implemented in qatomic_XXX.h
T *load() const { return _q_value; }
- T *loadAcquire() { return _q_value; }
+ T *loadAcquire() const { return _q_value; }
void store(T *newValue) { _q_value = newValue; }
void storeRelease(T *newValue) { _q_value = newValue; }