summaryrefslogtreecommitdiff
path: root/debian
diff options
context:
space:
mode:
authorFathi Boudra <fabo@debian.org>2011-12-27 18:16:54 +0200
committerFathi Boudra <fabo@debian.org>2011-12-27 18:16:54 +0200
commit20a7e5ad02b7f3bee6a992fb4cfd49f09e213032 (patch)
treeeb516f956641df8bc7d2ae1bbbbcfb3c7c1381b4 /debian
parent18bfb4d22fde046dcc46550df09df81c3e856fdf (diff)
downloadqt4-x11-20a7e5ad02b7f3bee6a992fb4cfd49f09e213032.tar.gz
Drop patches stolen or fixed upstream.
Diffstat (limited to 'debian')
-rw-r--r--debian/changelog20
-rw-r--r--debian/patches/Bug-fix-Allow-QTDIR-to-contain-regex-metacharacters.patch82
-rw-r--r--debian/patches/Fix_builds_with_compilers_without_--with-fpu_neon_as_default.patch43
-rw-r--r--debian/patches/Fix_fontconfig_usage_in_X11_font_database.patch224
-rw-r--r--debian/patches/Fix_transformIsSimple_in_QGraphicsScene.patch43
-rw-r--r--debian/patches/Fixed_bug_in_X11_backend_when_creating_translucent_windows.patch33
-rw-r--r--debian/patches/Improve-performance-of-partial-updates-in-raster-win.patch110
-rw-r--r--debian/patches/Make_use_of_the_fast_image_paths.patch78
-rw-r--r--debian/patches/Micro-optimization_for_QSpanData.patch26
-rw-r--r--debian/patches/Remove_QtHelp_dependency_on_QtXml.patch30
-rw-r--r--debian/patches/Some_Optimizations_for_the_gray_raster.patch104
-rw-r--r--debian/patches/Take_Xft.hintstyle_by_default_to_match_the_behavior_of_GTK+.patch53
-rw-r--r--debian/patches/Update_createwindow_in_qgl_x11egl.patch38
-rw-r--r--debian/patches/armv6_Add_support_for_ARMv7_atomic_operations.patch399
-rw-r--r--debian/patches/armv6_Include_explicitly_IT_instructions.patch26
-rw-r--r--debian/patches/blacklist-diginotar-cert.diff92
-rw-r--r--debian/patches/openssl_no_ssl2.patch129
-rw-r--r--debian/patches/s390x_jscore.diff70
-rw-r--r--debian/patches/series19
19 files changed, 21 insertions, 1598 deletions
diff --git a/debian/changelog b/debian/changelog
index cacbde1..1cf2af8 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -2,6 +2,26 @@ qt4-x11 (4:4.8.0-0multiarch1) UNRELEASED; urgency=low
* New upstream release.
+ [ Fathi Boudra ]
+ * Drop patches (stolen upstream):
+ - Fix_builds_with_compilers_without_--with-fpu_neon_as_default.patch
+ - Update_createwindow_in_qgl_x11egl.patch
+ - Improve-performance-of-partial-updates-in-raster-win.patch
+ - Fix_transformIsSimple_in_QGraphicsScene.patch
+ - Micro-optimization_for_QSpanData.patch
+ - Some_Optimizations_for_the_gray_raster.patch
+ - Make_use_of_the_fast_image_paths.patch
+ - Fixed_bug_in_X11_backend_when_creating_translucent_windows.patch
+ - Take_Xft.hintstyle_by_default_to_match_the_behavior_of_GTK+.patch
+ - Fix_fontconfig_usage_in_X11_font_database.patch
+ - Bug-fix-Allow-QTDIR-to-contain-regex-metacharacters.patch
+ - armv6_Include_explicitly_IT_instructions.patch
+ - armv6_Add_support_for_ARMv7_atomic_operations.patch
+ - s390x_jscore.diff
+ - blacklist-diginotar-cert.diff
+ - Remove_QtHelp_dependency_on_QtXml.patch
+ * Drop openssl_no_ssl2.patch - fixed upstream.
+
[ Pino Toscano ]
* Use the hurd-g++ mkspec when building on Hurd:
- add mkspecs/hurd-g++/qmake.conf in 01_debian_append_qt4_suffix.diff
diff --git a/debian/patches/Bug-fix-Allow-QTDIR-to-contain-regex-metacharacters.patch b/debian/patches/Bug-fix-Allow-QTDIR-to-contain-regex-metacharacters.patch
deleted file mode 100644
index 55fa107..0000000
--- a/debian/patches/Bug-fix-Allow-QTDIR-to-contain-regex-metacharacters.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-From 388705d3616c3edd0bb1c7bfef2f093a446ff13a Mon Sep 17 00:00:00 2001
-From: James Perrett <james.perrett@tandberg.com>
-Date: Mon, 15 Mar 2010 15:54:31 +0100
-Subject: [PATCH] Bug fix: Allow $QTDIR to contain regex metacharacters
-
-Quote $QTDIR (and variables based on it) when they are used in regex
-patterns - this allows $QTDIR to contain valid pathname characters that
-are also regex metacharacters, such as '.' and '+'.
-
-Merge-Request: 506
-Reviewed-by: Zeno Albisser
----
- bin/syncqt | 17 ++++++++---------
- 1 file changed, 8 insertions(+), 9 deletions(-)
-
---- a/bin/syncqt
-+++ b/bin/syncqt
-@@ -75,6 +75,7 @@ my @modules_to_sync ;
- $force_relative = 1 if ( -d "/System/Library/Frameworks" );
- my $out_basedir = $basedir;
- $out_basedir =~ s=\\=/=g;
-+my $quoted_basedir = "\Q$basedir";
-
- # functions ----------------------------------------------------------
-
-@@ -352,11 +353,9 @@ sub syncHeader {
- ######################################################################
- sub fixPaths {
- my ($file, $dir) = @_;
-- $dir =~ s=^$basedir/=$out_basedir/= if(!($basedir eq $out_basedir));
-+ $dir =~ s=^$quoted_basedir/=$out_basedir/= if(!($basedir eq $out_basedir));
- $file =~ s=\\=/=g;
-- $file =~ s/\+/\\+/g;
- $dir =~ s=\\=/=g;
-- $dir =~ s/\+/\\+/g;
-
- #setup
- my $ret = $file;
-@@ -380,7 +379,7 @@ sub fixPaths {
- my $slash = index($file_dir, "/", $i);
- last if($slash == -1);
- my $tmp = substr($file_dir, 0, $slash);
-- last unless($dir =~ m,^$tmp/,);
-+ last unless($dir =~ m,^\Q$tmp\E/,);
- $match_dir = $tmp;
- $i = $slash;
- }
-@@ -391,7 +390,7 @@ sub fixPaths {
- for(my $i = 0; $i < $count; $i++) {
- $dots .= "../";
- }
-- $ret =~ s,^$match_dir,$dots,;
-+ $ret =~ s,^\Q$match_dir\E,$dots,;
- }
- $ret =~ s,/+,/,g;
- return $ret;
-@@ -509,13 +508,13 @@ sub symlinkFile
-
- if ($isunix) {
- print "symlink created for $file " unless $quiet;
-- if ( $force_relative && ($ifile =~ /^$basedir/)) {
-+ if ( $force_relative && ($ifile =~ /^$quoted_basedir/)) {
- my $t = getcwd();
- my $c = -1;
- my $p = "../";
-- $t =~ s-^$basedir/--;
-+ $t =~ s-^$quoted_basedir/--;
- $p .= "../" while( ($c = index( $t, "/", $c + 1)) != -1 );
-- $file =~ s-^$basedir/-$p-;
-+ $file =~ s-^$quoted_basedir/-$p-;
- print " ($file)\n" unless $quiet;
- }
- print "\n" unless $quiet;
-@@ -839,7 +838,7 @@ foreach my $lib (@modules_to_sync) {
- @headers = ( "$out_basedir/include/$lib/$header" );
-
- # write forwarding headers to include/Qt
-- if ($lib ne "phonon" && $subdir =~ /^$basedir\/src/) {
-+ if ($lib ne "phonon" && $subdir =~ /^$quoted_basedir\/src/) {
- my $file_name = "$out_basedir/include/Qt/$header";
- my $file_op = '>';
- my $header_content = '';
diff --git a/debian/patches/Fix_builds_with_compilers_without_--with-fpu_neon_as_default.patch b/debian/patches/Fix_builds_with_compilers_without_--with-fpu_neon_as_default.patch
deleted file mode 100644
index 115ca51..0000000
--- a/debian/patches/Fix_builds_with_compilers_without_--with-fpu_neon_as_default.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-commit bc21d7604c78cf05780bb9974911ba81e787b6f9
-Author: Robin Burchell <robin.burchell@collabora.co.uk>
-Date: Fri Feb 4 12:39:51 2011 +0100
-
- Fix builds with compilers without --with-fpu=neon as a default.
-
- The changes introduced in fac68dca46131d63f11c37210834073848f5a93d do not work
- correctly on compilers without --with-fpu=neon as a default, NEON_SOURCES would
- be (incorrectly) compiled without -mfpu=neon, resulting in build failure.
-
- This also moves -mfpu=neon after CXXFLAGS, as CXXFLAGS may contain
- -mfpu=vfpv3-d16.
-
- Issue noted by Carsten Munk while building Qt for MeeGo ARM with NEON.
-
- Merge-request: 1042
- Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
-
----
- src/gui/gui.pro | 7 +++----
- 1 file changed, 3 insertions(+), 4 deletions(-)
-
---- a/src/gui/gui.pro
-+++ b/src/gui/gui.pro
-@@ -63,15 +63,14 @@ symbian {
- neon:*-g++* {
- DEFINES += QT_HAVE_NEON
- HEADERS += $$NEON_HEADERS
-- SOURCES += $$NEON_SOURCES
-
- DRAWHELPER_NEON_ASM_FILES = $$NEON_ASM
-
-- neon_compiler.commands = $$QMAKE_CXX -c -mfpu=neon
-- neon_compiler.commands += $(CXXFLAGS) $(INCPATH) ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT}
-+ neon_compiler.commands = $$QMAKE_CXX -c
-+ neon_compiler.commands += $(CXXFLAGS) -mfpu=neon $(INCPATH) ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT}
- neon_compiler.dependency_type = TYPE_C
- neon_compiler.output = ${QMAKE_VAR_OBJECTS_DIR}${QMAKE_FILE_BASE}$${first(QMAKE_EXT_OBJ)}
-- neon_compiler.input = DRAWHELPER_NEON_ASM_FILES
-+ neon_compiler.input = DRAWHELPER_NEON_ASM_FILES NEON_SOURCES
- neon_compiler.variable_out = OBJECTS
- neon_compiler.name = compiling[neon] ${QMAKE_FILE_IN}
- silent:neon_compiler.commands = @echo compiling[neon] ${QMAKE_FILE_IN} && $$neon_compiler.commands
diff --git a/debian/patches/Fix_fontconfig_usage_in_X11_font_database.patch b/debian/patches/Fix_fontconfig_usage_in_X11_font_database.patch
deleted file mode 100644
index b1d7eb3..0000000
--- a/debian/patches/Fix_fontconfig_usage_in_X11_font_database.patch
+++ /dev/null
@@ -1,224 +0,0 @@
-From d9f1c15f10e1a1d076ea4810e708a4c5419b73d2 Mon Sep 17 00:00:00 2001
-From: Jiang Jiang <jiang.jiang@nokia.com>
-Date: Mon, 20 Jun 2011 13:47:01 +0200
-Subject: [PATCH] Fix fontconfig usage in X11 font database
-
-We should do FcConfigSubstitute(0, pattern, FcMatchFont) on a
-FcPattern for query because the family list in it will contain
-almost all the families after FcConfigSubstitute(0, pattern,
-FcMatchPattern), then the test in <match target="font"> will
-almost always succeed. In general, FcMatchFont substitute
-should only be done on the FcPattern that we got after
-FcFontMatch() or FcFontRenderPrepare().
-
-Based on the suggestion of fontconfig author Behdad Esfahbod,
-this patch reorganized the tryPatternLoad logic so that it only
-does the QFontEngine creation part, FcPattern *match is retrieved
-outside of that function. In this way, the match pattern we got
-can be either from FcFontMatch() or after FcFontRenderPrepare()
-on one of the fonts we got from qt_fontSetForPattern(). Then we
-don't need to duplicate the pattern and add all criterias back
-with qt_addPatternProps(). It not only simplified the code a lot
-but also fix the way we apply FcMatchFont substitution. This
-substitution will either be done by FcFontMatch() or
-FcFontRenderPrepare, both implicitly.
-
-Task-number: QTBUG-2148, QTBUG-19947
-Reviewed-by: Eskil
----
- src/gui/text/qfontdatabase_x11.cpp | 55 +++++++++++++++----------------------
- src/gui/text/qfontengine_x11.cpp | 28 +++++-------------
- 2 files changed, 31 insertions(+), 52 deletions(-)
-
---- a/src/gui/text/qfontdatabase_x11.cpp
-+++ b/src/gui/text/qfontdatabase_x11.cpp
-@@ -1545,9 +1545,8 @@ static FcPattern *getFcPattern(const QFo
-
- qt_addPatternProps(pattern, fp->screen, script, request);
-
-- FcDefaultSubstitute(pattern);
- FcConfigSubstitute(0, pattern, FcMatchPattern);
-- FcConfigSubstitute(0, pattern, FcMatchFont);
-+ FcDefaultSubstitute(pattern);
-
- // these should only get added to the pattern _after_ substitution
- // append the default fallback font for the specified script
-@@ -1585,35 +1584,20 @@ static void FcFontSetRemove(FcFontSet *f
- memmove(fs->fonts + at, fs->fonts + at + 1, len);
- }
-
--static QFontEngine *tryPatternLoad(FcPattern *p, int screen,
-- const QFontDef &request, int script, FcPattern **matchedPattern = 0)
-+static QFontEngine *tryPatternLoad(FcPattern *match, int screen,
-+ const QFontDef &request, int script)
- {
- #ifdef FONT_MATCH_DEBUG
- FcChar8 *fam;
-- FcPatternGetString(p, FC_FAMILY, 0, &fam);
-+ FcPatternGetString(match, FC_FAMILY, 0, &fam);
- FM_DEBUG("==== trying %s\n", fam);
- #endif
- FM_DEBUG("passes charset test\n");
-- FcPattern *pattern = FcPatternDuplicate(p);
-- // add properties back in as the font selected from the
-- // list doesn't contain them.
-- qt_addPatternProps(pattern, screen, script, request);
--
-- FcConfigSubstitute(0, pattern, FcMatchPattern);
-- FcDefaultSubstitute(pattern);
-- FcResult res;
-- FcPattern *match = FcFontMatch(0, pattern, &res);
--
-- if (matchedPattern)
-- *matchedPattern = 0;
-
- QFontEngineX11FT *engine = 0;
- if (!match) // probably no fonts available.
- goto done;
-
-- if (matchedPattern)
-- *matchedPattern = FcPatternDuplicate(match);
--
- if (script != QUnicodeTables::Common) {
- // skip font if it doesn't support the language we want
- if (specialChars[script]) {
-@@ -1652,11 +1636,6 @@ static QFontEngine *tryPatternLoad(FcPat
- }
- }
- done:
-- FcPatternDestroy(pattern);
-- if (!engine && matchedPattern && *matchedPattern) {
-- FcPatternDestroy(*matchedPattern);
-- *matchedPattern = 0;
-- }
- return engine;
- }
-
-@@ -1705,14 +1684,26 @@ static QFontEngine *loadFc(const QFontPr
- #endif
-
- QFontEngine *fe = 0;
-- FcPattern *matchedPattern = 0;
-- fe = tryPatternLoad(pattern, fp->screen, request, script, &matchedPattern);
-+ FcResult res;
-+ FcPattern *match = FcFontMatch(0, pattern, &res);
-+ fe = tryPatternLoad(match, fp->screen, request, script);
- if (!fe) {
- FcFontSet *fs = qt_fontSetForPattern(pattern, request);
-
-+ if (match) {
-+ FcPatternDestroy(match);
-+ match = 0;
-+ }
-+
- if (fs) {
-- for (int i = 0; !fe && i < fs->nfont; ++i)
-- fe = tryPatternLoad(fs->fonts[i], fp->screen, request, script, &matchedPattern);
-+ for (int i = 0; !fe && i < fs->nfont; ++i) {
-+ match = FcFontRenderPrepare(NULL, pattern, fs->fonts[i]);
-+ fe = tryPatternLoad(match, fp->screen, request, script);
-+ if (fe)
-+ break;
-+ FcPatternDestroy(match);
-+ match = 0;
-+ }
- FcFontSetDestroy(fs);
- }
- FM_DEBUG("engine for script %d is %s\n", script, fe ? fe->fontDef.family.toLatin1().data(): "(null)");
-@@ -1720,11 +1711,11 @@ static QFontEngine *loadFc(const QFontPr
- if (fe
- && script == QUnicodeTables::Common
- && !(request.styleStrategy & QFont::NoFontMerging) && !fe->symbol) {
-- fe = new QFontEngineMultiFT(fe, matchedPattern, pattern, fp->screen, request);
-+ fe = new QFontEngineMultiFT(fe, match, pattern, fp->screen, request);
- } else {
- FcPatternDestroy(pattern);
-- if (matchedPattern)
-- FcPatternDestroy(matchedPattern);
-+ if (match)
-+ FcPatternDestroy(match);
- }
- return fe;
- }
---- a/src/gui/text/qfontengine_x11.cpp
-+++ b/src/gui/text/qfontengine_x11.cpp
-@@ -863,11 +863,8 @@ glyph_t QFontEngineXLFD::glyphIndexToFre
- // Multi FT engine
- // ------------------------------------------------------------------
-
--static QFontEngine *engineForPattern(FcPattern *pattern, const QFontDef &request,
-- int screen)
-+static QFontEngine *engineForPattern(FcPattern *match, const QFontDef &request, int screen)
- {
-- FcResult res;
-- FcPattern *match = FcFontMatch(0, pattern, &res);
- QFontEngineX11FT *engine = new QFontEngineX11FT(match, request, screen);
- if (!engine->invalid())
- return engine;
-@@ -879,9 +876,9 @@ static QFontEngine *engineForPattern(FcP
- }
-
- QFontEngineMultiFT::QFontEngineMultiFT(QFontEngine *fe, FcPattern *matchedPattern, FcPattern *p, int s, const QFontDef &req)
-- : QFontEngineMulti(2), request(req), pattern(p), firstEnginePattern(matchedPattern), fontSet(0), screen(s)
-+ : QFontEngineMulti(2), request(req), pattern(p), fontSet(0), screen(s)
- {
--
-+ firstEnginePattern = FcPatternDuplicate(matchedPattern);
- engines[0] = fe;
- engines.at(0)->ref.ref();
- fontDef = engines[0]->fontDef;
-@@ -907,8 +904,6 @@ void QFontEngineMultiFT::loadEngine(int
- extern QMutex *qt_fontdatabase_mutex();
- QMutexLocker locker(qt_fontdatabase_mutex());
-
-- extern void qt_addPatternProps(FcPattern *pattern, int screen, int script,
-- const QFontDef &request);
- extern QFontDef qt_FcPatternToQFontDef(FcPattern *pattern, const QFontDef &);
- extern FcFontSet *qt_fontSetForPattern(FcPattern *pattern, const QFontDef &request);
-
-@@ -940,22 +935,18 @@ void QFontEngineMultiFT::loadEngine(int
- Q_ASSERT(at < engines.size());
- Q_ASSERT(engines.at(at) == 0);
-
-- FcPattern *pattern = FcPatternDuplicate(fontSet->fonts[at + firstFontIndex - 1]);
-- qt_addPatternProps(pattern, screen, QUnicodeTables::Common, request);
--
-- QFontDef fontDef = qt_FcPatternToQFontDef(pattern, this->request);
-+ FcPattern *match = FcFontRenderPrepare(NULL, pattern, fontSet->fonts[at + firstFontIndex - 1]);
-+ QFontDef fontDef = qt_FcPatternToQFontDef(match, this->request);
-
- // note: we use -1 for the script to make sure that we keep real
- // FT engines separate from Multi engines in the font cache
- QFontCache::Key key(fontDef, -1, screen);
- QFontEngine *fontEngine = QFontCache::instance()->findEngine(key);
- if (!fontEngine) {
-- FcConfigSubstitute(0, pattern, FcMatchPattern);
-- FcDefaultSubstitute(pattern);
-- fontEngine = engineForPattern(pattern, request, screen);
-+ fontEngine = engineForPattern(match, request, screen);
- QFontCache::instance()->insertEngine(key, fontEngine);
- }
-- FcPatternDestroy(pattern);
-+ FcPatternDestroy(match);
- fontEngine->ref.ref();
- engines[at] = fontEngine;
- }
-@@ -1109,17 +1100,14 @@ QFontEngineX11FT::QFontEngineX11FT(FcPat
- }
- #endif
-
-- if (!init(face_id, antialias, defaultFormat)) {
-- FcPatternDestroy(pattern);
-+ if (!init(face_id, antialias, defaultFormat))
- return;
-- }
-
- if (!freetype->charset) {
- FcCharSet *cs;
- FcPatternGetCharSet (pattern, FC_CHARSET, 0, &cs);
- freetype->charset = FcCharSetCopy(cs);
- }
-- FcPatternDestroy(pattern);
- }
-
- QFontEngineX11FT::~QFontEngineX11FT()
diff --git a/debian/patches/Fix_transformIsSimple_in_QGraphicsScene.patch b/debian/patches/Fix_transformIsSimple_in_QGraphicsScene.patch
deleted file mode 100644
index d04a8e4..0000000
--- a/debian/patches/Fix_transformIsSimple_in_QGraphicsScene.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-commit 6901d3a9ff05a6fbf13ef7f38a36ad21d20f6a49
-Author: Jørgen Lind <jorgen.lind@nokia.com>
-Date: Tue Nov 16 12:45:15 2010 +0100
-
- Fix transformIsSimple in QGraphicsScene
-
- The transformIsSimple was a bit to restrictive
-
- Reviewed-by: bnilsen
-
----
- src/gui/graphicsview/qgraphicsscene.cpp | 19 +------------------
- 1 file changed, 1 insertion(+), 18 deletions(-)
-
---- a/src/gui/graphicsview/qgraphicsscene.cpp
-+++ b/src/gui/graphicsview/qgraphicsscene.cpp
-@@ -4369,25 +4369,8 @@ static void _q_paintIntoCache(QPixmap *p
- static inline bool transformIsSimple(const QTransform& transform)
- {
- QTransform::TransformationType type = transform.type();
-- if (type == QTransform::TxNone || type == QTransform::TxTranslate) {
-+ if (type <= QTransform::TxScale) {
- return true;
-- } else if (type == QTransform::TxScale) {
-- // Check for 0 and 180 degree rotations.
-- // (0 might happen after 4 rotations of 90 degrees).
-- qreal m11 = transform.m11();
-- qreal m12 = transform.m12();
-- qreal m21 = transform.m21();
-- qreal m22 = transform.m22();
-- if (m12 == 0.0f && m21 == 0.0f) {
-- if (m11 == 1.0f && m22 == 1.0f)
-- return true; // 0 degrees
-- else if (m11 == -1.0f && m22 == -1.0f)
-- return true; // 180 degrees.
-- if(m11 == 1.0f && m22 == -1.0f)
-- return true; // 0 degrees inverted y.
-- else if(m11 == -1.0f && m22 == 1.0f)
-- return true; // 180 degrees inverted y.
-- }
- } else if (type == QTransform::TxRotate) {
- // Check for 90, and 270 degree rotations.
- qreal m11 = transform.m11();
diff --git a/debian/patches/Fixed_bug_in_X11_backend_when_creating_translucent_windows.patch b/debian/patches/Fixed_bug_in_X11_backend_when_creating_translucent_windows.patch
deleted file mode 100644
index c47e9e5..0000000
--- a/debian/patches/Fixed_bug_in_X11_backend_when_creating_translucent_windows.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-commit 5a834d7141cc7d29d022911ccec16e628d94acf1
-Author: Samuel Rødal <samuel.rodal@nokia.com>
-Date: Tue May 3 12:36:08 2011 +0200
-
- Fixed bug in X11 backend when creating translucent windows.
-
- We forgot to send the ParentAboutToChange event, which meant QGLWidget
- didn't destroy the old EGL surface. This could cause two EGL surfaces to
- be created for the same QGLWidget, which leads to undefined behaviour on
- some platforms.
-
----
- src/gui/kernel/qwidget_x11.cpp | 9 +++++++--
- 1 file changed, 7 insertions(+), 2 deletions(-)
-
---- a/src/gui/kernel/qwidget_x11.cpp
-+++ b/src/gui/kernel/qwidget_x11.cpp
-@@ -939,8 +939,13 @@ static void qt_x11_recreateWidget(QWidge
- // recreate their GL context, which in turn causes them to choose
- // their visual again. Now that WA_TranslucentBackground is set,
- // QGLContext::chooseVisual will select an ARGB visual.
-- QEvent e(QEvent::ParentChange);
-- QApplication::sendEvent(widget, &e);
-+
-+ // QGLWidget expects a ParentAboutToChange to be sent first
-+ QEvent aboutToChangeEvent(QEvent::ParentAboutToChange);
-+ QApplication::sendEvent(widget, &aboutToChangeEvent);
-+
-+ QEvent parentChangeEvent(QEvent::ParentChange);
-+ QApplication::sendEvent(widget, &parentChangeEvent);
- } else {
- // For regular widgets, reparent them with their parent which
- // also triggers a recreation of the native window
diff --git a/debian/patches/Improve-performance-of-partial-updates-in-raster-win.patch b/debian/patches/Improve-performance-of-partial-updates-in-raster-win.patch
deleted file mode 100644
index 82625af..0000000
--- a/debian/patches/Improve-performance-of-partial-updates-in-raster-win.patch
+++ /dev/null
@@ -1,110 +0,0 @@
-From 30dee4f433d2426ce2dc0bccda8e62683380a1c4 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Samuel=20R=C3=B8dal?= <samuel.rodal@nokia.com>
-Date: Thu, 3 Feb 2011 17:06:15 +0100
-Subject: [PATCH] Improve performance of partial updates in raster window surface on X11.
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-An XSync is needed to prevent the raster engine from writing to the
-shared memory raster backbuffer at the same time the X server reads from
-it. However, instead of doing the sync right after telling X to blit, we
-can do it right before we start writing to it with raster. At this point
-there will on average be less processing heavy X commands in the command
-queue, and we thus spend less time blocking the GUI thread.
-
-Measured frame rate improvement of 20 - 60 % in an update stress testing
-the performance of partial updates.
-
-Idea-from: Olivier Goffart
-Reviewed-by: Bjørn Erik Nilsen
----
- src/gui/painting/qwindowsurface_raster.cpp | 29 +++++++++++++++++++++++++++--
- src/gui/painting/qwindowsurface_raster_p.h | 3 +++
- 2 files changed, 30 insertions(+), 2 deletions(-)
-
---- a/src/gui/painting/qwindowsurface_raster.cpp
-+++ b/src/gui/painting/qwindowsurface_raster.cpp
-@@ -75,6 +75,9 @@ public:
-
- #ifdef Q_WS_X11
- GC gc;
-+#ifndef QT_NO_MITSHM
-+ uint needsSync : 1;
-+#endif
- #ifndef QT_NO_XRENDER
- uint translucentBackground : 1;
- #endif
-@@ -91,6 +94,9 @@ QRasterWindowSurface::QRasterWindowSurfa
- d_ptr->translucentBackground = X11->use_xrender
- && window->x11Info().depth() == 32;
- #endif
-+#ifndef QT_NO_MITHSM
-+ d_ptr->needsSync = false;
-+#endif
- #endif
- d_ptr->image = 0;
- d_ptr->inSetGeometry = false;
-@@ -113,8 +119,23 @@ QPaintDevice *QRasterWindowSurface::pain
- return &d_ptr->image->image;
- }
-
-+#if defined(Q_WS_X11) && !defined(QT_NO_MITSHM)
-+void QRasterWindowSurface::syncX()
-+{
-+ // delay writing to the backbuffer until we know for sure X is done reading from it
-+ if (d_ptr->needsSync) {
-+ XSync(X11->display, false);
-+ d_ptr->needsSync = false;
-+ }
-+}
-+#endif
-+
- void QRasterWindowSurface::beginPaint(const QRegion &rgn)
- {
-+#if defined(Q_WS_X11) && !defined(QT_NO_MITSHM)
-+ syncX();
-+#endif
-+
- #if (defined(Q_WS_X11) && !defined(QT_NO_XRENDER)) || (defined(Q_WS_WIN) && !defined(Q_WS_WINCE))
- if (!qt_widget_private(window())->isOpaque && window()->testAttribute(Qt::WA_TranslucentBackground)) {
- #if defined(Q_WS_WIN) && !defined(Q_WS_WINCE)
-@@ -214,13 +235,13 @@ void QRasterWindowSurface::flush(QWidget
- if (d_ptr->image->xshmpm) {
- XCopyArea(X11->display, d_ptr->image->xshmpm, widget->handle(), d_ptr->gc,
- br.x(), br.y(), br.width(), br.height(), wbr.x(), wbr.y());
-- XSync(X11->display, False);
-+ d_ptr->needsSync = true;
- } else if (d_ptr->image->xshmimg) {
- const QImage &src = d->image->image;
- br = br.intersected(src.rect());
- XShmPutImage(X11->display, widget->handle(), d_ptr->gc, d_ptr->image->xshmimg,
- br.x(), br.y(), wbr.x(), wbr.y(), br.width(), br.height(), False);
-- XSync(X11->display, False);
-+ d_ptr->needsSync = true;
- } else
- #endif
- {
-@@ -347,6 +368,10 @@ bool QRasterWindowSurface::scroll(const
- if (!d->image || d->image->image.isNull())
- return false;
-
-+#if defined(Q_WS_X11) && !defined(QT_NO_MITSHM)
-+ syncX();
-+#endif
-+
- const QVector<QRect> rects = area.rects();
- for (int i = 0; i < rects.size(); ++i)
- qt_scrollRectInImage(d->image->image, rects.at(i), QPoint(dx, dy));
---- a/src/gui/painting/qwindowsurface_raster_p.h
-+++ b/src/gui/painting/qwindowsurface_raster_p.h
-@@ -107,6 +107,9 @@ public:
- bool scroll(const QRegion &area, int dx, int dy);
-
- private:
-+#if defined(Q_WS_X11) && !defined(QT_NO_MITSHM)
-+ void syncX();
-+#endif
- void prepareBuffer(QImage::Format format, QWidget *widget);
- Q_DECLARE_PRIVATE(QRasterWindowSurface)
- QScopedPointer<QRasterWindowSurfacePrivate> d_ptr;
diff --git a/debian/patches/Make_use_of_the_fast_image_paths.patch b/debian/patches/Make_use_of_the_fast_image_paths.patch
deleted file mode 100644
index e856311..0000000
--- a/debian/patches/Make_use_of_the_fast_image_paths.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-commit 60da9087f137f59d6b34e3b5c12f7c266de2d1f0
-Author: Samuel Rødal <samuel.rodal@nokia.com>
-Date: Mon Nov 1 12:49:41 2010 +0100
-
- Make use of the fast image paths for CompositionMode_Source as well.
-
- Blending / blitting of images without an alpha-channel gives the same
- result with CompositionMode_Source and CompositionMode_SourceOver.
-
- Task-number: QTBUG-14901
- Reviewed-by: Kim
-
----
- src/gui/painting/qpaintengine_raster.cpp | 17 ++++++++++++-----
- src/gui/painting/qpaintengine_raster_p.h | 1 +
- 2 files changed, 13 insertions(+), 5 deletions(-)
-
---- a/src/gui/painting/qpaintengine_raster.cpp
-+++ b/src/gui/painting/qpaintengine_raster.cpp
-@@ -2506,7 +2506,7 @@ void QRasterPaintEngine::drawImage(const
- const QClipData *clip = d->clip();
- QPointF pt(p.x() + s->matrix.dx(), p.y() + s->matrix.dy());
-
-- if (s->flags.fast_images) {
-+ if (d->canUseFastImageBlending(d->rasterBuffer->compositionMode, img)) {
- SrcOverBlendFunc func = qBlendFunctions[d->rasterBuffer->format][img.format()];
- if (func) {
- if (!clip) {
-@@ -2690,7 +2690,7 @@ void QRasterPaintEngine::drawImage(const
- bool exceedsPrecision = targetBounds.width() > 0xffff
- || targetBounds.height() > 0xffff;
-
-- if (s->flags.fast_images && !exceedsPrecision) {
-+ if (!exceedsPrecision && d->canUseFastImageBlending(d->rasterBuffer->compositionMode, img)) {
- if (s->matrix.type() > QTransform::TxScale) {
- SrcOverTransformFunc func = qTransformFunctions[d->rasterBuffer->format][img.format()];
- if (func && (!clip || clip->hasRectClip)) {
-@@ -2765,8 +2765,7 @@ void QRasterPaintEngine::drawImage(const
- fillPath(path, &d->image_filler_xform);
- s->matrix = m;
- } else {
--
-- if (s->flags.fast_images) {
-+ if (d->canUseFastImageBlending(d->rasterBuffer->compositionMode, img)) {
- SrcOverBlendFunc func = qBlendFunctions[d->rasterBuffer->format][img.format()];
- if (func) {
- QPointF pt(r.x() + s->matrix.dx(), r.y() + s->matrix.dy());
-@@ -4304,11 +4303,19 @@ void QRasterPaintEnginePrivate::recalcul
- QRasterPaintEngineState *s = q->state();
-
- s->flags.fast_images = !(s->renderHints & QPainter::SmoothPixmapTransform)
-- && rasterBuffer->compositionMode == QPainter::CompositionMode_SourceOver
- && s->matrix.type() <= QTransform::TxShear;
- }
-
-+bool QRasterPaintEnginePrivate::canUseFastImageBlending(QPainter::CompositionMode mode, const QImage &image) const
-+{
-+ Q_Q(const QRasterPaintEngine);
-+ const QRasterPaintEngineState *s = q->state();
-
-+ return s->flags.fast_images
-+ && (mode == QPainter::CompositionMode_SourceOver
-+ || (mode == QPainter::CompositionMode_Source
-+ && !image.hasAlphaChannel()));
-+}
-
- QImage QRasterBuffer::colorizeBitmap(const QImage &image, const QColor &color)
- {
---- a/src/gui/painting/qpaintengine_raster_p.h
-+++ b/src/gui/painting/qpaintengine_raster_p.h
-@@ -340,6 +340,7 @@ public:
- void initializeRasterizer(QSpanData *data);
-
- void recalculateFastImages();
-+ bool canUseFastImageBlending(QPainter::CompositionMode mode, const QImage &image) const;
-
- QPaintDevice *device;
- QScopedPointer<QOutlineMapper> outlineMapper;
diff --git a/debian/patches/Micro-optimization_for_QSpanData.patch b/debian/patches/Micro-optimization_for_QSpanData.patch
deleted file mode 100644
index 1ec0425..0000000
--- a/debian/patches/Micro-optimization_for_QSpanData.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-commit 09317dda494a51d101723131c5a01af4149ac5de
-Author: Andreas Kling <andreas.kling@nokia.com>
-Date: Mon Dec 20 13:04:23 2010 +0100
-
- Micro-optimization for QSpanData::setup()
-
- Don't call QColor::rgba() in a macro arg that gets evaluated multiple times.
-
- Reviewed-by: Samuel Rødal
-
----
- src/gui/painting/qpaintengine_raster.cpp | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
---- a/src/gui/painting/qpaintengine_raster.cpp
-+++ b/src/gui/painting/qpaintengine_raster.cpp
-@@ -5154,7 +5154,8 @@ void QSpanData::setup(const QBrush &brus
- case Qt::SolidPattern: {
- type = Solid;
- QColor c = qbrush_color(brush);
-- solid.color = PREMUL(ARGB_COMBINE_ALPHA(c.rgba(), alpha));
-+ QRgb rgba = c.rgba();
-+ solid.color = PREMUL(ARGB_COMBINE_ALPHA(rgba, alpha));
- if ((solid.color & 0xff000000) == 0
- && compositionMode == QPainter::CompositionMode_SourceOver) {
- type = None;
diff --git a/debian/patches/Remove_QtHelp_dependency_on_QtXml.patch b/debian/patches/Remove_QtHelp_dependency_on_QtXml.patch
deleted file mode 100644
index aa5a2a7..0000000
--- a/debian/patches/Remove_QtHelp_dependency_on_QtXml.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-commit 02f55668dada4a23ab84e4d3bda1df8a4984b3ae
-Author: Constantin Makshin <cmakshin@gmail.com>
-Date: Mon Sep 5 19:43:00 2011 +0200
-
- Removed the unnecessary dependency of the QtHelp module on the QtXml one
-
- Merge-request: 2669
- Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
-
----
- mkspecs/features/help.prf | 2 +-
- tools/assistant/lib/lib.pro | 1 -
- 2 files changed, 1 insertion(+), 2 deletions(-)
-
---- a/mkspecs/features/help.prf
-+++ b/mkspecs/features/help.prf
-@@ -1,4 +1,4 @@
- INCLUDEPATH = $$QMAKE_INCDIR_QT/QtHelp $$INCLUDEPATH
--QT += xml sql
-+QT += sql
-
- qtAddLibrary(QtHelp)
---- a/tools/assistant/lib/lib.pro
-+++ b/tools/assistant/lib/lib.pro
-@@ -1,5 +1,4 @@
- QT += sql \
-- xml \
- network
- TEMPLATE = lib
- TARGET = QtHelp
diff --git a/debian/patches/Some_Optimizations_for_the_gray_raster.patch b/debian/patches/Some_Optimizations_for_the_gray_raster.patch
deleted file mode 100644
index b756885..0000000
--- a/debian/patches/Some_Optimizations_for_the_gray_raster.patch
+++ /dev/null
@@ -1,104 +0,0 @@
-commit 7eb560609cf1fc82f897a9a67c76e42b06823f9b
-Author: Samuel Rødal <samuel.rodal@nokia.com>
-Date: Thu Nov 18 12:06:41 2010 +0100
-
- Some optimizations for the gray-raster (raster engine antialiasing).
-
- Increase the size of the initial memory pool (it's anyways free'd later
- on) to improve the performance of the rasterizer and also decrease the
- chance of re-allocations.
-
- Also, by combining gray_record_cell and gray_find_cell into one
- function, as gray_find_cell is only called from the former, we can skip
- some unnecessary operations.
-
- Measured performance improvements range from 58 % to 154 % for rounded
- rect filling and stroking.
-
- Reviewed-by: Andreas Kling
-
----
- src/gui/painting/qgrayraster.c | 35 ++++++++++++-----------------------
- src/gui/painting/qgrayraster_p.h | 2 +-
- 2 files changed, 13 insertions(+), 24 deletions(-)
-
---- a/src/gui/painting/qgrayraster.c
-+++ b/src/gui/painting/qgrayraster.c
-@@ -408,25 +408,31 @@
- /* */
- /* Record the current cell in the table. */
- /* */
-- static PCell
-- gray_find_cell( RAS_ARG )
-+ static void
-+ gray_record_cell( RAS_ARG )
- {
- PCell *pcell, cell;
- int x = ras.ex;
-
-+ if ( ras.invalid || !( ras.area | ras.cover ) )
-+ return;
-
- if ( x > ras.max_ex )
- x = ras.max_ex;
-
- pcell = &ras.ycells[ras.ey];
-+
- for (;;)
- {
- cell = *pcell;
- if ( cell == NULL || cell->x > x )
- break;
-
-- if ( cell->x == x )
-- goto Exit;
-+ if ( cell->x == x ) {
-+ cell->area += ras.area;
-+ cell->cover += ras.cover;
-+ return;
-+ }
-
- pcell = &cell->next;
- }
-@@ -436,28 +442,11 @@
-
- cell = ras.cells + ras.num_cells++;
- cell->x = x;
-- cell->area = 0;
-- cell->cover = 0;
-+ cell->area = ras.area;
-+ cell->cover = ras.cover;
-
- cell->next = *pcell;
- *pcell = cell;
--
-- Exit:
-- return cell;
-- }
--
--
-- static void
-- gray_record_cell( RAS_ARG )
-- {
-- if ( !ras.invalid && ( ras.area | ras.cover ) )
-- {
-- PCell cell = gray_find_cell( RAS_VAR );
--
--
-- cell->area += ras.area;
-- cell->cover += ras.cover;
-- }
- }
-
-
---- a/src/gui/painting/qgrayraster_p.h
-+++ b/src/gui/painting/qgrayraster_p.h
-@@ -91,7 +91,7 @@
-
- /* Minimum buffer size for raster object, that accounts
- for TWorker and TCell sizes.*/
--#define MINIMUM_POOL_SIZE 4096
-+#define MINIMUM_POOL_SIZE 8192
-
- QT_FT_EXPORT_VAR( const QT_FT_Raster_Funcs ) qt_ft_grays_raster;
-
diff --git a/debian/patches/Take_Xft.hintstyle_by_default_to_match_the_behavior_of_GTK+.patch b/debian/patches/Take_Xft.hintstyle_by_default_to_match_the_behavior_of_GTK+.patch
deleted file mode 100644
index fb86b3f..0000000
--- a/debian/patches/Take_Xft.hintstyle_by_default_to_match_the_behavior_of_GTK+.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-commit 5c46d9a4c85abbcc0b5db2bbbafded3efd784cd9
-Author: Jiang Jiang <jiang.jiang@nokia.com>
-Date: Thu Nov 25 17:30:32 2010 +0100
-
- Take Xft.hintstyle by default to match the behavior of GTK+
-
- For Qt apps running in GNOME, we use the GTK+ settings by
- default (instead of fontconfig settings).
-
- Task-number: QTBUG-13800
- Reviewed-by: Samuel
-
----
- src/gui/kernel/qapplication_x11.cpp | 4 ++++
- src/gui/text/qfontengine_x11.cpp | 7 ++++++-
- 2 files changed, 10 insertions(+), 1 deletion(-)
-
---- a/src/gui/kernel/qapplication_x11.cpp
-+++ b/src/gui/kernel/qapplication_x11.cpp
-@@ -1589,6 +1589,9 @@ static void getXDefault(const char *grou
- int v = strtol(str, &end, 0);
- if (str != end)
- *val = v;
-+ // otherwise use fontconfig to convert the string to integer
-+ else
-+ FcNameConstant((FcChar8 *) str, val);
- }
- }
-
-@@ -2233,6 +2236,7 @@ void qt_init(QApplicationPrivate *priv,
- }
- getXDefault("Xft", FC_ANTIALIAS, &X11->fc_antialias);
- #ifdef FC_HINT_STYLE
-+ X11->fc_hint_style = -1;
- getXDefault("Xft", FC_HINT_STYLE, &X11->fc_hint_style);
- #endif
- #if 0
---- a/src/gui/text/qfontengine_x11.cpp
-+++ b/src/gui/text/qfontengine_x11.cpp
-@@ -1015,7 +1015,12 @@ QFontEngineX11FT::QFontEngineX11FT(FcPat
- #ifdef FC_HINT_STYLE
- {
- int hint_style = 0;
-- if (FcPatternGetInteger (pattern, FC_HINT_STYLE, 0, &hint_style) == FcResultNoMatch)
-+ // Try to use Xft.hintstyle from XDefaults first if running in GNOME, to match
-+ // the behavior of cairo
-+ if (X11->fc_hint_style > -1 && X11->desktopEnvironment == DE_GNOME)
-+ hint_style = X11->fc_hint_style;
-+ else if (FcPatternGetInteger (pattern, FC_HINT_STYLE, 0, &hint_style) == FcResultNoMatch
-+ && X11->fc_hint_style > -1)
- hint_style = X11->fc_hint_style;
-
- switch (hint_style) {
diff --git a/debian/patches/Update_createwindow_in_qgl_x11egl.patch b/debian/patches/Update_createwindow_in_qgl_x11egl.patch
deleted file mode 100644
index 6090e82..0000000
--- a/debian/patches/Update_createwindow_in_qgl_x11egl.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 0aef3363aca14b0ba6ac56f86cadeb4acdef729e Mon Sep 17 00:00:00 2001
-From: JuanZhao <juan.j.zhao@intel.com>
-Date: Tue, 12 Apr 2011 09:37:53 +0200
-Subject: [PATCH] Update XCreateWindow in qgl_X11egl.cpp
-MIME-Version: 1.0
-Content-Type: text/plain; charset=utf-8
-Content-Transfer-Encoding: 8bit
-
-XCreateWindow should provide mask and colormap, or this may load XCreateWindow error in the server side.
-
-Merge-request: 1183
-Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
----
- src/opengl/qgl_x11egl.cpp | 10 +++++++++-
- 1 file changed, 9 insertions(+), 1 deletion(-)
-
---- a/src/opengl/qgl_x11egl.cpp
-+++ b/src/opengl/qgl_x11egl.cpp
-@@ -105,10 +105,18 @@ QGLTemporaryContext::QGLTemporaryContext
- return;
- }
-
-+ XSetWindowAttributes attr;
-+ unsigned long mask;
-+ attr.background_pixel = 0;
-+ attr.border_pixel = 0;
-+ attr.colormap = XCreateColormap(X11->display, DefaultRootWindow(X11->display), vi->visual, AllocNone);
-+ attr.event_mask = StructureNotifyMask | ExposureMask;
-+ mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask;
-+
- d->window = XCreateWindow(X11->display, RootWindow(X11->display, screen),
- 0, 0, 1, 1, 0,
- vi->depth, InputOutput, vi->visual,
-- 0, 0);
-+ mask, &attr);
-
- d->surface = eglCreateWindowSurface(d->display, config, (EGLNativeWindowType) d->window, NULL);
-
diff --git a/debian/patches/armv6_Add_support_for_ARMv7_atomic_operations.patch b/debian/patches/armv6_Add_support_for_ARMv7_atomic_operations.patch
deleted file mode 100644
index a311c78..0000000
--- a/debian/patches/armv6_Add_support_for_ARMv7_atomic_operations.patch
+++ /dev/null
@@ -1,399 +0,0 @@
-Description: Add support for ARMv7 atomic operations
-
- ARMv7 adds the DMB (data memory barrier) instruction which we can use to
- enforce memory barriers in QAtomicInt and QAtomicPointer. Other than
- that, ARMv7 is identical to ARMv6.
-
- Adjust the ARMv6 code to relax the compiler memory barriers on the
- *Relaxed() operations, and use *Relaxed() functions together the
- appropriate compiler barriers in the *Acquire(), *Release(), and
- *Ordered() functions. For "pure" ARMv6 code, the barriers are only
- compiler barriers, but for ARMv7, we also emit the DMB instruction.
-
- Fixed in Qt 4.8. See patchset:
- f293b98 Silence preprocessor warnings about __TARGET_ARCH_ARM not being
- defined
- c7bf2d7 Fixed compile for symbian
- dc8d096 Compile when detecting ARMv5
- 2c73f55 Compile when detecting ARMv5
- 82b4fff Add support for ARMv7 atomic operations
- 7be2c58 Merge the armv6 and arm architectures
- 1c0b3237 Copy src/corelib/arch/qatomic_arm.h to
- src/corelib/arch/qatomic_armv5.h
- a0f69c0 Move symbian specific qatomic_generic_armv6.cpp
-
-Author: Bradley T. Hughes <bradley.hughes@nokia.com>
-Bug-Ubuntu: https://launchpad.net/bugs/490371
----
- src/corelib/arch/qatomic_armv6.h | 162 ++++++++++++++++++++++++++-------------
- 1 file changed, 111 insertions(+), 51 deletions(-)
-
---- a/src/corelib/arch/qatomic_armv6.h
-+++ b/src/corelib/arch/qatomic_armv6.h
-@@ -102,6 +102,15 @@ Q_INLINE_TEMPLATE bool QBasicAtomicPoint
-
- #ifndef Q_CC_RVCT
-
-+// use the DMB instruction when compiling for ARMv7
-+#ifndef Q_DATA_MEMORY_BARRIER
-+# define Q_DATA_MEMORY_BARRIER asm volatile("dmb\n":::"memory")
-+#endif
-+#ifndef Q_COMPILER_MEMORY_BARRIER
-+# define Q_COMPILER_MEMORY_BARRIER asm volatile("":::"memory")
-+#endif
-+
-+// ... but the implementation is otherwise identical to that for ARMv6
- inline bool QBasicAtomicInt::ref()
- {
- register int newValue;
-@@ -138,7 +147,7 @@ inline bool QBasicAtomicInt::deref()
- return newValue != 0;
- }
-
--inline bool QBasicAtomicInt::testAndSetOrdered(int expectedValue, int newValue)
-+inline bool QBasicAtomicInt::testAndSetRelaxed(int expectedValue, int newValue)
- {
- register int result;
- asm volatile("0:\n"
-@@ -153,11 +162,11 @@ inline bool QBasicAtomicInt::testAndSetO
- : [expectedValue] "r" (expectedValue),
- [newValue] "r" (newValue),
- [_q_value] "r" (&_q_value)
-- : "cc", "memory");
-+ : "cc");
- return result == 0;
- }
-
--inline int QBasicAtomicInt::fetchAndStoreOrdered(int newValue)
-+inline int QBasicAtomicInt::fetchAndStoreRelaxed(int newValue)
- {
- register int originalValue;
- register int result;
-@@ -171,11 +180,11 @@ inline int QBasicAtomicInt::fetchAndStor
- "+m" (_q_value)
- : [newValue] "r" (newValue),
- [_q_value] "r" (&_q_value)
-- : "cc", "memory");
-+ : "cc");
- return originalValue;
- }
-
--inline int QBasicAtomicInt::fetchAndAddOrdered(int valueToAdd)
-+inline int QBasicAtomicInt::fetchAndAddRelaxed(int valueToAdd)
- {
- register int originalValue;
- register int newValue;
-@@ -192,12 +201,12 @@ inline int QBasicAtomicInt::fetchAndAddO
- "+m" (_q_value)
- : [valueToAdd] "r" (valueToAdd),
- [_q_value] "r" (&_q_value)
-- : "cc", "memory");
-+ : "cc");
- return originalValue;
- }
-
- template <typename T>
--Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetOrdered(T *expectedValue, T *newValue)
-+Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetRelaxed(T *expectedValue, T *newValue)
- {
- register T *result;
- asm volatile("0:\n"
-@@ -212,12 +221,12 @@ Q_INLINE_TEMPLATE bool QBasicAtomicPoint
- : [expectedValue] "r" (expectedValue),
- [newValue] "r" (newValue),
- [_q_value] "r" (&_q_value)
-- : "cc", "memory");
-+ : "cc");
- return result == 0;
- }
-
- template <typename T>
--Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreOrdered(T *newValue)
-+Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreRelaxed(T *newValue)
- {
- register T *originalValue;
- register int result;
-@@ -231,12 +240,12 @@ Q_INLINE_TEMPLATE T *QBasicAtomicPointer
- "+m" (_q_value)
- : [newValue] "r" (newValue),
- [_q_value] "r" (&_q_value)
-- : "cc", "memory");
-+ : "cc");
- return originalValue;
- }
-
- template <typename T>
--Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddOrdered(qptrdiff valueToAdd)
-+Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddRelaxed(qptrdiff valueToAdd)
- {
- register T *originalValue;
- register T *newValue;
-@@ -253,7 +262,7 @@ Q_INLINE_TEMPLATE T *QBasicAtomicPointer
- "+m" (_q_value)
- : [valueToAdd] "r" (valueToAdd * sizeof(T)),
- [_q_value] "r" (&_q_value)
-- : "cc", "memory");
-+ : "cc");
- return originalValue;
- }
-
-@@ -265,9 +274,18 @@ Q_INLINE_TEMPLATE T *QBasicAtomicPointer
- // RVCT embedded assembly documentation:
- // http://www.keil.com/support/man/docs/armcc/armcc_chddbeib.htm
-
--// save our pragma state and switch to ARM mode
--#pragma push
--#pragma arm
-+#if __TARGET_ARCH_THUMB-0 < 4
-+// save our pragma state and switch to ARM mode (unless using Thumb2)
-+# pragma push
-+# pragma arm
-+#endif
-+
-+#ifndef Q_DATA_MEMORY_BARRIER
-+# define Q_DATA_MEMORY_BARRIER __schedule_barrier()
-+#endif
-+#ifndef Q_COMPILER_MEMORY_BARRIER
-+# define Q_COMPILER_MEMORY_BARRIER __schedule_barrier()
-+#endif
-
- inline bool QBasicAtomicInt::ref()
- {
-@@ -299,7 +317,7 @@ inline bool QBasicAtomicInt::deref()
- return newValue != 0;
- }
-
--inline bool QBasicAtomicInt::testAndSetOrdered(int expectedValue, int newValue)
-+inline bool QBasicAtomicInt::testAndSetRelaxed(int expectedValue, int newValue)
- {
- register int result;
- retry:
-@@ -313,7 +331,7 @@ inline bool QBasicAtomicInt::testAndSetO
- return result == 0;
- }
-
--inline int QBasicAtomicInt::fetchAndStoreOrdered(int newValue)
-+inline int QBasicAtomicInt::fetchAndStoreRelaxed(int newValue)
- {
- register int originalValue;
- register int result;
-@@ -327,7 +345,7 @@ inline int QBasicAtomicInt::fetchAndStor
- return originalValue;
- }
-
--inline int QBasicAtomicInt::fetchAndAddOrdered(int valueToAdd)
-+inline int QBasicAtomicInt::fetchAndAddRelaxed(int valueToAdd)
- {
- register int originalValue;
- register int newValue;
-@@ -344,7 +362,7 @@ inline int QBasicAtomicInt::fetchAndAddO
- }
-
- template <typename T>
--Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetOrdered(T *expectedValue, T *newValue)
-+Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetRelaxed(T *expectedValue, T *newValue)
- {
- register T *result;
- retry:
-@@ -359,7 +377,7 @@ Q_INLINE_TEMPLATE bool QBasicAtomicPoint
- }
-
- template <typename T>
--Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreOrdered(T *newValue)
-+Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreRelaxed(T *newValue)
- {
- register T *originalValue;
- register int result;
-@@ -374,7 +392,7 @@ Q_INLINE_TEMPLATE T *QBasicAtomicPointer
- }
-
- template <typename T>
--Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddOrdered(qptrdiff valueToAdd)
-+Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddRelaxed(qptrdiff valueToAdd)
- {
- register T *originalValue;
- register T *newValue;
-@@ -390,111 +408,153 @@ Q_INLINE_TEMPLATE T *QBasicAtomicPointer
- return originalValue;
- }
-
--// go back to the previous pragma state (probably Thumb mode)
--#pragma pop
-+#if __TARGET_ARCH_THUMB-0 < 4
-+# pragma pop
- #endif
-
--// common code
-+#endif
-
--inline bool QBasicAtomicInt::testAndSetRelaxed(int expectedValue, int newValue)
--{
-- return testAndSetOrdered(expectedValue, newValue);
--}
-+// common code
-
- inline bool QBasicAtomicInt::testAndSetAcquire(int expectedValue, int newValue)
- {
-- return testAndSetOrdered(expectedValue, newValue);
-+ bool returnValue = testAndSetRelaxed(expectedValue, newValue);
-+ Q_DATA_MEMORY_BARRIER;
-+ return returnValue;
- }
-
- inline bool QBasicAtomicInt::testAndSetRelease(int expectedValue, int newValue)
- {
-- return testAndSetOrdered(expectedValue, newValue);
-+ Q_DATA_MEMORY_BARRIER;
-+ return testAndSetRelaxed(expectedValue, newValue);
- }
-
--inline int QBasicAtomicInt::fetchAndStoreRelaxed(int newValue)
-+inline bool QBasicAtomicInt::testAndSetOrdered(int expectedValue, int newValue)
- {
-- return fetchAndStoreOrdered(newValue);
-+ Q_DATA_MEMORY_BARRIER;
-+ bool returnValue = testAndSetRelaxed(expectedValue, newValue);
-+ Q_COMPILER_MEMORY_BARRIER;
-+ return returnValue;
- }
-
- inline int QBasicAtomicInt::fetchAndStoreAcquire(int newValue)
- {
-- return fetchAndStoreOrdered(newValue);
-+ int returnValue = fetchAndStoreRelaxed(newValue);
-+ Q_DATA_MEMORY_BARRIER;
-+ return returnValue;
- }
-
- inline int QBasicAtomicInt::fetchAndStoreRelease(int newValue)
- {
-- return fetchAndStoreOrdered(newValue);
-+ Q_DATA_MEMORY_BARRIER;
-+ return fetchAndStoreRelaxed(newValue);
- }
-
--inline int QBasicAtomicInt::fetchAndAddRelaxed(int valueToAdd)
-+inline int QBasicAtomicInt::fetchAndStoreOrdered(int newValue)
- {
-- return fetchAndAddOrdered(valueToAdd);
-+ Q_DATA_MEMORY_BARRIER;
-+ int returnValue = fetchAndStoreRelaxed(newValue);
-+ Q_COMPILER_MEMORY_BARRIER;
-+ return returnValue;
- }
-
-+
- inline int QBasicAtomicInt::fetchAndAddAcquire(int valueToAdd)
- {
-- return fetchAndAddOrdered(valueToAdd);
-+ int returnValue = fetchAndAddRelaxed(valueToAdd);
-+ Q_DATA_MEMORY_BARRIER;
-+ return returnValue;
- }
-
- inline int QBasicAtomicInt::fetchAndAddRelease(int valueToAdd)
- {
-- return fetchAndAddOrdered(valueToAdd);
-+ Q_DATA_MEMORY_BARRIER;
-+ return fetchAndAddRelaxed(valueToAdd);
- }
-
--template <typename T>
--Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetRelaxed(T *expectedValue, T *newValue)
-+inline int QBasicAtomicInt::fetchAndAddOrdered(int valueToAdd)
- {
-- return testAndSetOrdered(expectedValue, newValue);
-+ Q_DATA_MEMORY_BARRIER;
-+ int returnValue = fetchAndAddRelaxed(valueToAdd);
-+ Q_COMPILER_MEMORY_BARRIER;
-+ return returnValue;
- }
-
- template <typename T>
- Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetAcquire(T *expectedValue, T *newValue)
- {
-- return testAndSetOrdered(expectedValue, newValue);
-+ bool returnValue = testAndSetRelaxed(expectedValue, newValue);
-+ Q_DATA_MEMORY_BARRIER;
-+ return returnValue;
- }
-
- template <typename T>
- Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetRelease(T *expectedValue, T *newValue)
- {
-- return testAndSetOrdered(expectedValue, newValue);
-+ Q_DATA_MEMORY_BARRIER;
-+ return testAndSetRelaxed(expectedValue, newValue);
- }
-
- template <typename T>
--Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreRelaxed(T *newValue)
-+Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetOrdered(T *expectedValue, T *newValue)
- {
-- return fetchAndStoreOrdered(newValue);
-+ Q_DATA_MEMORY_BARRIER;
-+ bool returnValue = testAndSetAcquire(expectedValue, newValue);
-+ Q_COMPILER_MEMORY_BARRIER;
-+ return returnValue;
- }
-
- template <typename T>
- Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreAcquire(T *newValue)
- {
-- return fetchAndStoreOrdered(newValue);
-+ T *returnValue = fetchAndStoreRelaxed(newValue);
-+ Q_DATA_MEMORY_BARRIER;
-+ return returnValue;
- }
-
- template <typename T>
- Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreRelease(T *newValue)
- {
-- return fetchAndStoreOrdered(newValue);
-+ Q_DATA_MEMORY_BARRIER;
-+ return fetchAndStoreRelaxed(newValue);
- }
-
- template <typename T>
--Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddRelaxed(qptrdiff valueToAdd)
-+Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreOrdered(T *newValue)
- {
-- return fetchAndAddOrdered(valueToAdd);
-+ Q_DATA_MEMORY_BARRIER;
-+ T *returnValue = fetchAndStoreRelaxed(newValue);
-+ Q_COMPILER_MEMORY_BARRIER;
-+ return returnValue;
- }
-
- template <typename T>
- Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddAcquire(qptrdiff valueToAdd)
- {
-- return fetchAndAddOrdered(valueToAdd);
-+ T *returnValue = fetchAndAddRelaxed(valueToAdd);
-+ Q_DATA_MEMORY_BARRIER;
-+ return returnValue;
- }
-
- template <typename T>
- Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddRelease(qptrdiff valueToAdd)
- {
-- return fetchAndAddOrdered(valueToAdd);
-+ Q_DATA_MEMORY_BARRIER;
-+ return fetchAndAddRelaxed(valueToAdd);
- }
-
-+template <typename T>
-+Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddOrdered(qptrdiff valueToAdd)
-+{
-+ Q_DATA_MEMORY_BARRIER;
-+ T *returnValue = fetchAndAddRelaxed(valueToAdd);
-+ Q_COMPILER_MEMORY_BARRIER;
-+ return returnValue;
-+}
-+
-+#undef Q_DATA_MEMORY_BARRIER
-+#undef Q_COMPILER_MEMORY_BARRIER
-+
- QT_END_NAMESPACE
-
- QT_END_HEADER
diff --git a/debian/patches/armv6_Include_explicitly_IT_instructions.patch b/debian/patches/armv6_Include_explicitly_IT_instructions.patch
deleted file mode 100644
index 22ab9d2..0000000
--- a/debian/patches/armv6_Include_explicitly_IT_instructions.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-Description: include explicitly IT instructions to fix build failure without
-implicit-it=thumb
-Author: Michael Hope <michael.hope@linaro.org>
-Bug-Ubuntu: https://launchpad.net/bugs/673085
----
- src/corelib/arch/qatomic_armv6.h | 2 ++
- 1 file changed, 2 insertions(+)
-
---- a/src/corelib/arch/qatomic_armv6.h
-+++ b/src/corelib/arch/qatomic_armv6.h
-@@ -144,6 +144,7 @@ inline bool QBasicAtomicInt::testAndSetO
- asm volatile("0:\n"
- "ldrex %[result], [%[_q_value]]\n"
- "eors %[result], %[result], %[expectedValue]\n"
-+ "itt eq\n"
- "strexeq %[result], %[newValue], [%[_q_value]]\n"
- "teqeq %[result], #1\n"
- "beq 0b\n"
-@@ -202,6 +203,7 @@ Q_INLINE_TEMPLATE bool QBasicAtomicPoint
- asm volatile("0:\n"
- "ldrex %[result], [%[_q_value]]\n"
- "eors %[result], %[result], %[expectedValue]\n"
-+ "itt eq\n"
- "strexeq %[result], %[newValue], [%[_q_value]]\n"
- "teqeq %[result], #1\n"
- "beq 0b\n"
diff --git a/debian/patches/blacklist-diginotar-cert.diff b/debian/patches/blacklist-diginotar-cert.diff
deleted file mode 100644
index a79899d..0000000
--- a/debian/patches/blacklist-diginotar-cert.diff
+++ /dev/null
@@ -1,92 +0,0 @@
-Taken from upstream. Will be in post 4.7.4 releases.
-http://qt.nokia.com/files/qt-patches/blacklist-diginotar-certs.diff/at_download/file
----
- src/network/ssl/qsslcertificate.cpp | 45 +++++++++++++++++++++++++--------
- src/network/ssl/qsslsocket_openssl.cpp | 16 +++++++----
- 2 files changed, 45 insertions(+), 16 deletions(-)
-
---- a/src/network/ssl/qsslcertificate.cpp
-+++ b/src/network/ssl/qsslcertificate.cpp
-@@ -803,22 +803,47 @@ QList<QSslCertificate> QSslCertificatePr
- // These certificates are known to be fraudulent and were created during the comodo
- // compromise. See http://www.comodo.com/Comodo-Fraud-Incident-2011-03-23.html
- static const char *certificate_blacklist[] = {
-- "04:7e:cb:e9:fc:a5:5f:7b:d0:9e:ae:36:e1:0c:ae:1e",
-- "f5:c8:6a:f3:61:62:f1:3a:64:f5:4f:6d:c9:58:7c:06",
-- "d7:55:8f:da:f5:f1:10:5b:b2:13:28:2b:70:77:29:a3",
-- "39:2a:43:4f:0e:07:df:1f:8a:a3:05:de:34:e0:c2:29",
-- "3e:75:ce:d4:6b:69:30:21:21:88:30:ae:86:a8:2a:71",
-- "e9:02:8b:95:78:e4:15:dc:1a:71:0a:2b:88:15:44:47",
-- "92:39:d5:34:8f:40:d1:69:5a:74:54:70:e1:f2:3f:43",
-- "b0:b7:13:3e:d0:96:f9:b5:6f:ae:91:c8:74:bd:3a:c0",
-- "d8:f3:5f:4e:b7:87:2b:2d:ab:06:92:e3:15:38:2f:b0",
-+ "04:7e:cb:e9:fc:a5:5f:7b:d0:9e:ae:36:e1:0c:ae:1e", "mail.google.com", // Comodo
-+ "f5:c8:6a:f3:61:62:f1:3a:64:f5:4f:6d:c9:58:7c:06", "www.google.com", // Comodo
-+ "d7:55:8f:da:f5:f1:10:5b:b2:13:28:2b:70:77:29:a3", "login.yahoo.com", // Comodo
-+ "39:2a:43:4f:0e:07:df:1f:8a:a3:05:de:34:e0:c2:29", "login.yahoo.com", // Comodo
-+ "3e:75:ce:d4:6b:69:30:21:21:88:30:ae:86:a8:2a:71", "login.yahoo.com", // Comodo
-+ "e9:02:8b:95:78:e4:15:dc:1a:71:0a:2b:88:15:44:47", "login.skype.com", // Comodo
-+ "92:39:d5:34:8f:40:d1:69:5a:74:54:70:e1:f2:3f:43", "addons.mozilla.org", // Comodo
-+ "b0:b7:13:3e:d0:96:f9:b5:6f:ae:91:c8:74:bd:3a:c0", "login.live.com", // Comodo
-+ "d8:f3:5f:4e:b7:87:2b:2d:ab:06:92:e3:15:38:2f:b0", "global trustee", // Comodo
-+
-+ "05:e2:e6:a4:cd:09:ea:54:d6:65:b0:75:fe:22:a2:56", "*.google.com", // leaf certificate issued by DigiNotar
-+ "0c:76:da:9c:91:0c:4e:2c:9e:fe:15:d0:58:93:3c:4c", "DigiNotar Root CA", // DigiNotar root
-+ "f1:4a:13:f4:87:2b:56:dc:39:df:84:ca:7a:a1:06:49", "DigiNotar Services CA", // DigiNotar intermediate signed by DigiNotar Root
-+ "36:16:71:55:43:42:1b:9d:e6:cb:a3:64:41:df:24:38", "DigiNotar Services 1024 CA", // DigiNotar intermediate signed by DigiNotar Root
-+ "0a:82:bd:1e:14:4e:88:14:d7:5b:1a:55:27:be:bf:3e", "DigiNotar Root CA G2", // other DigiNotar Root CA
-+ "a4:b6:ce:e3:2e:d3:35:46:26:3c:b3:55:3a:a8:92:21", "CertiID Enterprise Certificate Authority", // DigiNotar intermediate signed by "DigiNotar Root CA G2"
-+ "5b:d5:60:9c:64:17:68:cf:21:0e:35:fd:fb:05:ad:41", "DigiNotar Qualified CA", // DigiNotar intermediate signed by DigiNotar Root
-+
-+ "1184640176", "DigiNotar Services 1024 CA", // DigiNotar intermediate cross-signed by Entrust
-+ "120000525", "DigiNotar Cyber CA", // DigiNotar intermediate cross-signed by CyberTrust
-+ "120000505", "DigiNotar Cyber CA", // DigiNotar intermediate cross-signed by CyberTrust
-+ "120000515", "DigiNotar Cyber CA", // DigiNotar intermediate cross-signed by CyberTrust
-+ "20015536", "DigiNotar PKIoverheid CA Overheid en Bedrijven", // DigiNotar intermediate cross-signed by the Dutch government
-+ "20001983", "DigiNotar PKIoverheid CA Organisatie - G2", // DigiNotar intermediate cross-signed by the Dutch government
-+ "d6:d0:29:77:f1:49:fd:1a:83:f2:b9:ea:94:8c:5c:b4", "DigiNotar Extended Validation CA", // DigiNotar intermediate signed by DigiNotar EV Root
-+ "1e:7d:7a:53:3d:45:30:41:96:40:0f:71:48:1f:45:04", "DigiNotar Public CA 2025", // DigiNotar intermediate
-+// "(has not been seen in the wild so far)", "DigiNotar Public CA - G2", // DigiNotar intermediate
-+// "(has not been seen in the wild so far)", "Koninklijke Notariele Beroepsorganisatie CA", // compromised during DigiNotar breach
-+// "(has not been seen in the wild so far)", "Stichting TTP Infos CA," // compromised during DigiNotar breach
-+ "1184640175", "DigiNotar Root CA", // DigiNotar intermediate cross-signed by Entrust
-+ "1184644297", "DigiNotar Root CA", // DigiNotar intermediate cross-signed by Entrust
- 0
- };
-
- bool QSslCertificatePrivate::isBlacklisted(const QSslCertificate &certificate)
- {
- for (int a = 0; certificate_blacklist[a] != 0; a++) {
-- if (certificate.serialNumber() == certificate_blacklist[a])
-+ QString blacklistedCommonName = QString::fromUtf8(certificate_blacklist[(a+1)]);
-+ if (certificate.serialNumber() == certificate_blacklist[a++] &&
-+ (certificate.subjectInfo(QSslCertificate::CommonName) == blacklistedCommonName ||
-+ certificate.issuerInfo(QSslCertificate::CommonName) == blacklistedCommonName))
- return true;
- }
- return false;
---- a/src/network/ssl/qsslsocket_openssl.cpp
-+++ b/src/network/ssl/qsslsocket_openssl.cpp
-@@ -1193,12 +1193,16 @@ bool QSslSocketBackendPrivate::startHand
- X509 *x509 = q_SSL_get_peer_certificate(ssl);
- configuration.peerCertificate = QSslCertificatePrivate::QSslCertificate_from_X509(x509);
- q_X509_free(x509);
-- if (QSslCertificatePrivate::isBlacklisted(configuration.peerCertificate)) {
-- q->setErrorString(QSslSocket::tr("The peer certificate is blacklisted"));
-- q->setSocketError(QAbstractSocket::SslHandshakeFailedError);
-- emit q->error(QAbstractSocket::SslHandshakeFailedError);
-- plainSocket->disconnectFromHost();
-- return false;
-+
-+ // check the whole chain for blacklisting (including root, as we check for subjectInfo and issuer)
-+ foreach (const QSslCertificate &cert, configuration.peerCertificateChain) {
-+ if (QSslCertificatePrivate::isBlacklisted(cert)) {
-+ q->setErrorString(QSslSocket::tr("The peer certificate is blacklisted"));
-+ q->setSocketError(QAbstractSocket::SslHandshakeFailedError);
-+ emit q->error(QAbstractSocket::SslHandshakeFailedError);
-+ plainSocket->disconnectFromHost();
-+ return false;
-+ }
- }
-
- // Start translating errors.
diff --git a/debian/patches/openssl_no_ssl2.patch b/debian/patches/openssl_no_ssl2.patch
deleted file mode 100644
index f5d3eda..0000000
--- a/debian/patches/openssl_no_ssl2.patch
+++ /dev/null
@@ -1,129 +0,0 @@
-Description: OpenSSL in Debian dropped the insecure SSLv2 protocol. Check OPENSSL_NO_SSL2.
-Author: Fathi Boudra <fabo@debian.org>
-Bug-Debian: http://bugs.debian.org/640210
-
----
- src/network/ssl/qsslsocket_openssl.cpp | 4 ++++
- src/network/ssl/qsslsocket_openssl_symbols.cpp | 16 ++++++++++++++++
- src/network/ssl/qsslsocket_openssl_symbols_p.h | 8 ++++++++
- 3 files changed, 28 insertions(+)
-
---- a/src/network/ssl/qsslsocket_openssl.cpp
-+++ b/src/network/ssl/qsslsocket_openssl.cpp
-@@ -196,8 +196,10 @@ QSslCipher QSslSocketBackendPrivate::QSs
- ciph.d->protocol = QSsl::UnknownProtocol;
- if (protoString == QLatin1String("SSLv3"))
- ciph.d->protocol = QSsl::SslV3;
-+#ifndef OPENSSL_NO_SSL2
- else if (protoString == QLatin1String("SSLv2"))
- ciph.d->protocol = QSsl::SslV2;
-+#endif
- else if (protoString == QLatin1String("TLSv1"))
- ciph.d->protocol = QSsl::TlsV1;
-
-@@ -246,9 +248,11 @@ bool QSslSocketBackendPrivate::initSslCo
- bool reinitialized = false;
- init_context:
- switch (configuration.protocol) {
-+#ifndef OPENSSL_NO_SSL2
- case QSsl::SslV2:
- ctx = q_SSL_CTX_new(client ? q_SSLv2_client_method() : q_SSLv2_server_method());
- break;
-+#endif
- case QSsl::SslV3:
- ctx = q_SSL_CTX_new(client ? q_SSLv3_client_method() : q_SSLv3_server_method());
- break;
---- a/src/network/ssl/qsslsocket_openssl_symbols.cpp
-+++ b/src/network/ssl/qsslsocket_openssl_symbols.cpp
-@@ -214,20 +214,28 @@ DEFINEFUNC(void, SSL_set_accept_state, S
- DEFINEFUNC(void, SSL_set_connect_state, SSL *a, a, return, DUMMYARG)
- DEFINEFUNC(int, SSL_shutdown, SSL *a, a, return -1, return)
- #if OPENSSL_VERSION_NUMBER >= 0x10000000L
-+#ifndef OPENSSL_NO_SSL2
- DEFINEFUNC(const SSL_METHOD *, SSLv2_client_method, DUMMYARG, DUMMYARG, return 0, return)
-+#endif
- DEFINEFUNC(const SSL_METHOD *, SSLv3_client_method, DUMMYARG, DUMMYARG, return 0, return)
- DEFINEFUNC(const SSL_METHOD *, SSLv23_client_method, DUMMYARG, DUMMYARG, return 0, return)
- DEFINEFUNC(const SSL_METHOD *, TLSv1_client_method, DUMMYARG, DUMMYARG, return 0, return)
-+#ifndef OPENSSL_NO_SSL2
- DEFINEFUNC(const SSL_METHOD *, SSLv2_server_method, DUMMYARG, DUMMYARG, return 0, return)
-+#endif
- DEFINEFUNC(const SSL_METHOD *, SSLv3_server_method, DUMMYARG, DUMMYARG, return 0, return)
- DEFINEFUNC(const SSL_METHOD *, SSLv23_server_method, DUMMYARG, DUMMYARG, return 0, return)
- DEFINEFUNC(const SSL_METHOD *, TLSv1_server_method, DUMMYARG, DUMMYARG, return 0, return)
- #else
-+#ifndef OPENSSL_NO_SSL2
- DEFINEFUNC(SSL_METHOD *, SSLv2_client_method, DUMMYARG, DUMMYARG, return 0, return)
-+#endif
- DEFINEFUNC(SSL_METHOD *, SSLv3_client_method, DUMMYARG, DUMMYARG, return 0, return)
- DEFINEFUNC(SSL_METHOD *, SSLv23_client_method, DUMMYARG, DUMMYARG, return 0, return)
- DEFINEFUNC(SSL_METHOD *, TLSv1_client_method, DUMMYARG, DUMMYARG, return 0, return)
-+#ifndef OPENSSL_NO_SSL2
- DEFINEFUNC(SSL_METHOD *, SSLv2_server_method, DUMMYARG, DUMMYARG, return 0, return)
-+#endif
- DEFINEFUNC(SSL_METHOD *, SSLv3_server_method, DUMMYARG, DUMMYARG, return 0, return)
- DEFINEFUNC(SSL_METHOD *, SSLv23_server_method, DUMMYARG, DUMMYARG, return 0, return)
- DEFINEFUNC(SSL_METHOD *, TLSv1_server_method, DUMMYARG, DUMMYARG, return 0, return)
-@@ -591,11 +599,15 @@ bool q_resolveOpenSslSymbols()
- RESOLVEFUNC(SSL_set_connect_state, 152, libs.first )
- RESOLVEFUNC(SSL_shutdown, 173, libs.first )
- RESOLVEFUNC(SSL_write, 188, libs.first )
-+#ifndef OPENSSL_NO_SSL2
- RESOLVEFUNC(SSLv2_client_method, 192, libs.first )
-+#endif
- RESOLVEFUNC(SSLv3_client_method, 195, libs.first )
- RESOLVEFUNC(SSLv23_client_method, 189, libs.first )
- RESOLVEFUNC(TLSv1_client_method, 198, libs.first )
-+#ifndef OPENSSL_NO_SSL2
- RESOLVEFUNC(SSLv2_server_method, 194, libs.first )
-+#endif
- RESOLVEFUNC(SSLv3_server_method, 197, libs.first )
- RESOLVEFUNC(SSLv23_server_method, 191, libs.first )
- RESOLVEFUNC(TLSv1_server_method, 200, libs.first )
-@@ -715,11 +727,15 @@ bool q_resolveOpenSslSymbols()
- RESOLVEFUNC(SSL_set_connect_state)
- RESOLVEFUNC(SSL_shutdown)
- RESOLVEFUNC(SSL_write)
-+#ifndef OPENSSL_NO_SSL2
- RESOLVEFUNC(SSLv2_client_method)
-+#endif
- RESOLVEFUNC(SSLv3_client_method)
- RESOLVEFUNC(SSLv23_client_method)
- RESOLVEFUNC(TLSv1_client_method)
-+#ifndef OPENSSL_NO_SSL2
- RESOLVEFUNC(SSLv2_server_method)
-+#endif
- RESOLVEFUNC(SSLv3_server_method)
- RESOLVEFUNC(SSLv23_server_method)
- RESOLVEFUNC(TLSv1_server_method)
---- a/src/network/ssl/qsslsocket_openssl_symbols_p.h
-+++ b/src/network/ssl/qsslsocket_openssl_symbols_p.h
-@@ -322,20 +322,28 @@ void q_SSL_set_accept_state(SSL *a);
- void q_SSL_set_connect_state(SSL *a);
- int q_SSL_shutdown(SSL *a);
- #if OPENSSL_VERSION_NUMBER >= 0x10000000L
-+#ifndef OPENSSL_NO_SSL2
- const SSL_METHOD *q_SSLv2_client_method();
-+#endif
- const SSL_METHOD *q_SSLv3_client_method();
- const SSL_METHOD *q_SSLv23_client_method();
- const SSL_METHOD *q_TLSv1_client_method();
-+#ifndef OPENSSL_NO_SSL2
- const SSL_METHOD *q_SSLv2_server_method();
-+#endif
- const SSL_METHOD *q_SSLv3_server_method();
- const SSL_METHOD *q_SSLv23_server_method();
- const SSL_METHOD *q_TLSv1_server_method();
- #else
-+#ifndef OPENSSL_NO_SSL2
- SSL_METHOD *q_SSLv2_client_method();
-+#endif
- SSL_METHOD *q_SSLv3_client_method();
- SSL_METHOD *q_SSLv23_client_method();
- SSL_METHOD *q_TLSv1_client_method();
-+#ifndef OPENSSL_NO_SSL2
- SSL_METHOD *q_SSLv2_server_method();
-+#endif
- SSL_METHOD *q_SSLv3_server_method();
- SSL_METHOD *q_SSLv23_server_method();
- SSL_METHOD *q_TLSv1_server_method();
diff --git a/debian/patches/s390x_jscore.diff b/debian/patches/s390x_jscore.diff
deleted file mode 100644
index 0abe431..0000000
--- a/debian/patches/s390x_jscore.diff
+++ /dev/null
@@ -1,70 +0,0 @@
-Description: Add support for s390/s390x architectures
-Author: Dan Horák <dan@danny.cz>
-Origin: vendor (http://trac.webkit.org/changeset?old_path=%2Ftrunk&old=71843+&new_path=%2Ftrunk&new=71844+)
-Forwarded: no
-Last-Update: 2011-08-03
-
----
- src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h | 14 +++++++++++++-
- src/3rdparty/webkit/JavaScriptCore/wtf/Platform.h | 13 +++++++++++++
- 2 files changed, 26 insertions(+), 1 deletion(-)
-
---- a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h
-+++ b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h
-@@ -189,6 +189,18 @@
- #define WTF_CPU_SPARC 1
- #endif
-
-+/* CPU(S390X) - S390 64-bit */
-+#if defined(__s390x__)
-+#define WTF_CPU_S390X 1
-+#define WTF_CPU_BIG_ENDIAN 1
-+#endif
-+
-+/* CPU(S390) - S390 32-bit */
-+#if defined(__s390__)
-+#define WTF_CPU_S390 1
-+#define WTF_CPU_BIG_ENDIAN 1
-+#endif
-+
- /* CPU(X86) - i386 / x86 32-bit */
- #if defined(__i386__) \
- || defined(i386) \
-@@ -870,7 +882,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)
- #define WTF_USE_JSVALUE64 1
- #elif CPU(ARM) || CPU(PPC64)
- #define WTF_USE_JSVALUE32 1
---- a/src/3rdparty/webkit/JavaScriptCore/wtf/Platform.h
-+++ b/src/3rdparty/webkit/JavaScriptCore/wtf/Platform.h
-@@ -180,6 +180,18 @@
- #define WTF_CPU_SPARC 1
- #endif
-
-+/* CPU(S390X) - S390 64-bit */
-+#if defined(__s390x__)
-+#define WTF_CPU_S390X 1
-+#define WTF_CPU_BIG_ENDIAN 1
-+#endif
-+
-+/* CPU(S390) - S390 32-bit */
-+#if defined(__s390__)
-+#define WTF_CPU_S390 1
-+#define WTF_CPU_BIG_ENDIAN 1
-+#endif
-+
- /* CPU(X86) - i386 / x86 32-bit */
- #if defined(__i386__) \
- || defined(i386) \
-@@ -885,6 +897,7 @@
- #if (CPU(X86_64) && (OS(UNIX) || OS(WINDOWS))) \
- || (CPU(IA64) && !CPU(IA64_32)) \
- || CPU(ALPHA) \
-+ || CPU(S390X) \
- || CPU(SPARC64)
- #define WTF_USE_JSVALUE64 1
- #elif CPU(ARM) || CPU(PPC64) || CPU(MIPS)
diff --git a/debian/patches/series b/debian/patches/series
index 84a262a..57c6ce2 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,16 +1,5 @@
# upstream patches
-Fix_builds_with_compilers_without_--with-fpu_neon_as_default.patch
-Update_createwindow_in_qgl_x11egl.patch
-Improve-performance-of-partial-updates-in-raster-win.patch
-Fix_transformIsSimple_in_QGraphicsScene.patch
-Micro-optimization_for_QSpanData.patch
-Some_Optimizations_for_the_gray_raster.patch
-Make_use_of_the_fast_image_paths.patch
Add_support_for_QT_USE_DRAG_DISTANCE_env_var.patch
-Fixed_bug_in_X11_backend_when_creating_translucent_windows.patch
-Take_Xft.hintstyle_by_default_to_match_the_behavior_of_GTK+.patch
-Fix_fontconfig_usage_in_X11_font_database.patch
-Bug-fix-Allow-QTDIR-to-contain-regex-metacharacters.patch
# qt-copy patches
0195-compositing-properties.diff
@@ -29,7 +18,7 @@ buildable_appchooser_states_demos.patch
15_fix_qmake_makefile_generation.diff
16_hide_std_symbols_on_qtwebkit.diff
18_enable_qt3support_qtwebkit_debug_info.diff
-20_install_qvfb.diff
+# FIXME: 20_install_qvfb.diff
23_permit_plugins_built_with_future_qt.diff
30_webkit_unaligned_access.diff
40_alpha_ice.diff
@@ -47,9 +36,3 @@ powerpcspe.diff
sh.diff
kfreebsd_monotonic_clock.diff
powerpc_designer_gstabs.diff
-armv6_Include_explicitly_IT_instructions.patch
-armv6_Add_support_for_ARMv7_atomic_operations.patch
-s390x_jscore.diff
-blacklist-diginotar-cert.diff
-openssl_no_ssl2.patch
-Remove_QtHelp_dependency_on_QtXml.patch