diff options
author | Fathi Boudra <fabo@debian.org> | 2011-12-27 18:16:54 +0200 |
---|---|---|
committer | Fathi Boudra <fabo@debian.org> | 2011-12-27 18:16:54 +0200 |
commit | 20a7e5ad02b7f3bee6a992fb4cfd49f09e213032 (patch) | |
tree | eb516f956641df8bc7d2ae1bbbbcfb3c7c1381b4 /debian | |
parent | 18bfb4d22fde046dcc46550df09df81c3e856fdf (diff) | |
download | qt4-x11-20a7e5ad02b7f3bee6a992fb4cfd49f09e213032.tar.gz |
Drop patches stolen or fixed upstream.
Diffstat (limited to 'debian')
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 |