summaryrefslogtreecommitdiff
path: root/debian/patches
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches')
-rw-r--r--debian/patches/0001_webkit_backround_in_scrollbars_webkit-5b0ea6b840a6e25e97b886e1852c3fc6ef8e8d0d.diff42
-rw-r--r--debian/patches/0002_https_lowercase.cpp35
-rw-r--r--debian/patches/0167-fix-group-reading.diff21
-rw-r--r--debian/patches/0180-window-role.diff8
-rw-r--r--debian/patches/0195-compositing-properties.diff6
-rw-r--r--debian/patches/01_qmake_for_debian.diff2
-rw-r--r--debian/patches/0203-qtexthtmlparser-link-color.diff4
-rw-r--r--debian/patches/0210-fix-crash-q3stylesheet-font-size.diff24
-rw-r--r--debian/patches/0214-fix-qgraphicsproxywidget-tab-crash.diff23
-rw-r--r--debian/patches/0216-allow-isystem-for-headers.diff4
-rw-r--r--debian/patches/0220-no-x-recursion-in-xerrhandler.diff47
-rw-r--r--debian/patches/0223-fix-qpixmap-hasalpha.diff26
-rw-r--r--debian/patches/0224-fast-qpixmap-fill.diff2
-rw-r--r--debian/patches/0225-invalidate-tabbar-geometry-on-refresh.patch (renamed from debian/patches/0225-invalidate-tabbar-geometry-on-refresh.diff)2
-rw-r--r--debian/patches/0226-qtreeview-column_resize_when_needed.diff8
-rw-r--r--debian/patches/0227-qdatastream-regression.diff63
-rw-r--r--debian/patches/0228-qsortfilterproxymodel-invalidate-noscroll.diff21
-rw-r--r--debian/patches/0230-qtextcontrol-selectnextword.diff33
-rw-r--r--debian/patches/0233-fix-q3textbrowser-image.diff22
-rw-r--r--debian/patches/0234-fix-mysql-threaded.diff10
-rw-r--r--debian/patches/0235-qdbus-dispatch-async-timeout.diff20
-rw-r--r--debian/patches/0236-qtoolbararealayout-restore.diff23
-rw-r--r--debian/patches/0238-fix-qt-qttabbar-size.diff (renamed from debian/patches/0003_tab_text_cutoff.diff)11
-rw-r--r--debian/patches/0245-fix-randr-changes-detecting.diff25
-rw-r--r--debian/patches/0248-fix-qwidget-scroll-slowness.diff39
-rw-r--r--debian/patches/0249-webkit-stale-frame-pointer.diff161
-rw-r--r--debian/patches/0254-fix-qgraphicsproxywidget-deletion-crash.diff23
-rw-r--r--debian/patches/0255-qtreeview-selection-columns-hidden.diff42
-rw-r--r--debian/patches/0256-fix-recursive-backingstore-sync-crash.diff38
-rw-r--r--debian/patches/0257-qurl-validate-speedup.diff21
-rw-r--r--debian/patches/0260-fix-qgraphicswidget-deletionclearFocus.diff20
-rw-r--r--debian/patches/0261-sync-before-reset-errorhandler.patch22
-rw-r--r--debian/patches/0262-fix-treeview-animation-crash.diff44
-rw-r--r--debian/patches/02_launch_assistant-qt4.diff4
-rw-r--r--debian/patches/03_launch_moc-qt4.diff2
-rw-r--r--debian/patches/04_launch_uic-qt4.diff2
-rw-r--r--debian/patches/05_append_qt4_target.diff36
-rw-r--r--debian/patches/07_trust_dpkg-arch_over_uname-m.diff2
-rw-r--r--debian/patches/09_qmake_lflags_as-needed.diff2
-rw-r--r--debian/patches/10_config_tests_fixes.diff16
-rw-r--r--debian/patches/12_fix_qmake_pkgconfig.diff2
-rw-r--r--debian/patches/14_add_libraries_to_gui_build_where_actually_needed.diff13
-rw-r--r--debian/patches/15_fix_qmake_makefile_generation.diff2
-rw-r--r--debian/patches/16_hide_std_symbols_on_qtwebkit.diff6
-rw-r--r--debian/patches/17_add_postgresql_8.3_support.diff46
-rw-r--r--debian/patches/20_mips_atomic_ops.diff32
-rw-r--r--debian/patches/21_qprintdialog_honour_fileprintersadded.diff11
-rw-r--r--debian/patches/30_webkit_unaligned_access.diff (renamed from debian/patches/30_webkit-unaligned-access.patch)28
-rw-r--r--debian/patches/40_alpha_ice.diff6
-rw-r--r--debian/patches/41_disable_opengl_visibility.diff2
-rw-r--r--debian/patches/50_kfreebsd_build_fix.diff14
-rw-r--r--debian/patches/60_m68k_inotify_fix.diff18
-rw-r--r--debian/patches/71_hppa_unaligned_access_fix_458133.diff66
-rw-r--r--debian/patches/72_generic_arch_atomic_header_fix.diff17
-rw-r--r--debian/patches/73_from4.4.1_no_AAAA_when_ipv6_disabled.diff30
-rw-r--r--debian/patches/80_hurd_max_path.diff2
-rw-r--r--debian/patches/90_gcc43.diff20
-rw-r--r--debian/patches/series35
58 files changed, 602 insertions, 704 deletions
diff --git a/debian/patches/0001_webkit_backround_in_scrollbars_webkit-5b0ea6b840a6e25e97b886e1852c3fc6ef8e8d0d.diff b/debian/patches/0001_webkit_backround_in_scrollbars_webkit-5b0ea6b840a6e25e97b886e1852c3fc6ef8e8d0d.diff
deleted file mode 100644
index 5e3195c..0000000
--- a/debian/patches/0001_webkit_backround_in_scrollbars_webkit-5b0ea6b840a6e25e97b886e1852c3fc6ef8e8d0d.diff
+++ /dev/null
@@ -1,42 +0,0 @@
-This is expected to be in 4.4.2
-
-
-From: Tor Arne Vestbø <tavestbo@trolltech.com>
-Date: Tue, 10 Jun 2008 16:04:06 +0000 (+0200)
-Subject: Fill the background of scrollbars to the window color before
-X-Git-Url: http://code.staikos.net/cgi-bin/gitweb.cgi?p=webkit;a=commitdiff_plain;h=5b0ea6b840a6e25e97b886e1852c3fc6ef8e8d0d
-
-Fill the background of scrollbars to the window color before
-letting the QStyle paint its primitive elements.
-
-Signed-off-by: Simon
----
-
-+2008-06-10 Tor Arne Vestbø <tavestbo@trolltech.com>
-+
-+ Reviewed by Simon
-+
-+ Fill the background of scrollbars to the window color before
-+ letting the QStyle paint its primitive elements.
-+
-+ * platform/qt/PlatformScrollBarQt.cpp:
-+ (WebCore::PlatformScrollbar::paint):
-+
- 2008-05-30 Adam Treat <treat@kde.org>
-
- Reviewed by Simon.
-diff --git a/WebCore/platform/qt/PlatformScrollBarQt.cpp b/WebCore/platform/qt/PlatformScrollBarQt.cpp
-index 66063eb..c7f5bdd 100644
---- a/src/3rdparty/webkit/WebCore/platform/qt/PlatformScrollBarQt.cpp
-+++ b/src/3rdparty/webkit/WebCore/platform/qt/PlatformScrollBarQt.cpp
-@@ -183,6 +183,10 @@ void PlatformScrollbar::paint(GraphicsContext* graphicsContext, const IntRect& d
- #else
- p->translate(topLeft);
- m_opt.rect.moveTo(QPoint(0, 0));
-+
-+ // The QStyle expects the background to be already filled
-+ p->fillRect(m_opt.rect, m_opt.palette.background());
-+
- QApplication::style()->drawComplexControl(QStyle::CC_ScrollBar, &m_opt, p, 0);
- m_opt.rect.moveTo(topLeft);
- #endif
diff --git a/debian/patches/0002_https_lowercase.cpp b/debian/patches/0002_https_lowercase.cpp
deleted file mode 100644
index 3c900d4..0000000
--- a/debian/patches/0002_https_lowercase.cpp
+++ /dev/null
@@ -1,35 +0,0 @@
-Fetched from 4.4.2
-treat Https, HTtps, hTTps, ... as https as well
-
-Index: b/src/network/access/qnetworkaccesshttpbackend.cpp
-===================================================================
---- a/src/network/access/qnetworkaccesshttpbackend.cpp
-+++ b/src/network/access/qnetworkaccesshttpbackend.cpp
-@@ -64,7 +64,7 @@
- static QByteArray makeCacheKey(const QUrl &url)
- {
- QUrl copy = url;
-- bool isEncrypted = url.scheme() == QLatin1String("https");
-+ bool isEncrypted = url.scheme().toLower() == QLatin1String("https");
- copy.setPort(url.port(isEncrypted ? DefaultHttpsPort : DefaultHttpPort));
- return "http-connection:" + copy.toEncoded(QUrl::RemovePassword | QUrl::RemovePath |
- QUrl::RemoveQuery | QUrl::RemoveFragment);
-@@ -88,7 +88,8 @@
- }
-
- QUrl url = request.url();
-- if (url.scheme() == QLatin1String("http") || url.scheme() == QLatin1String("https"))
-+ QString scheme = url.scheme().lower();
-+ if (scheme == QLatin1String("http") || scheme == QLatin1String("https"))
- return new QNetworkAccessHttpBackend;
-
- return 0;
-@@ -309,7 +310,7 @@
- void QNetworkAccessHttpBackend::open()
- {
- QUrl url = request().url();
-- bool encrypt = url.scheme() == QLatin1String("https");
-+ bool encrypt = url.scheme().toLower() == QLatin1String("https");
- setAttribute(QNetworkRequest::ConnectionEncryptedAttribute, encrypt);
-
- // set the port number in the reply if it wasn't set
diff --git a/debian/patches/0167-fix-group-reading.diff b/debian/patches/0167-fix-group-reading.diff
index c7080d5..60e2efc 100644
--- a/debian/patches/0167-fix-group-reading.diff
+++ b/debian/patches/0167-fix-group-reading.diff
@@ -9,23 +9,20 @@ Try a bit harder.
--- a/src/corelib/io/qfsfileengine_unix.cpp
+++ b/src/corelib/io/qfsfileengine_unix.cpp
-@@ -829,9 +829,16 @@
- } else if (own == OwnerGroup) {
- struct group *gr = 0;
- #if !defined(QT_NO_THREAD) && defined(_POSIX_THREAD_SAFE_FUNCTIONS) && !defined(Q_OS_OPENBSD)
-- buf.resize(sysconf(_SC_GETGR_R_SIZE_MAX));
+@@ -857,9 +857,13 @@
+ size_max = sysconf(_SC_GETGR_R_SIZE_MAX);
+ if (size_max == -1)
+ size_max = 1024;
+- buf.resize(size_max);
- struct group entry;
- getgrgid_r(ownerId(own), &entry, buf.data(), buf.size(), &gr);
-+ for (unsigned size = sysconf(_SC_GETGR_R_SIZE_MAX); size < 256000; size += size)
-+ {
-+ buf.resize(size);
++ for (;size_max < 256000; size_max += size_max) {
++ buf.resize(size_max);
+ struct group entry;
-+ // ERANGE indicates that the buffer was too small
-+ if (!getgrgid_r(ownerId(own), &entry, buf.data(), buf.size(), &gr)
-+ || errno != ERANGE)
++ if (!getgrgid_r(ownerId(own), &entry, buf.data(), buf.size(), &gr) || errno != ERANGE)
+ break;
-+ }
+
++ }
#else
gr = getgrgid(ownerId(own));
#endif
diff --git a/debian/patches/0180-window-role.diff b/debian/patches/0180-window-role.diff
index bbd2900..a26ef89 100644
--- a/debian/patches/0180-window-role.diff
+++ b/debian/patches/0180-window-role.diff
@@ -14,7 +14,7 @@ this makes the window role set in many cases (which KWin uses for window identif
--- a/src/corelib/kernel/qobject.cpp
+++ b/src/corelib/kernel/qobject.cpp
-@@ -1016,9 +1016,18 @@
+@@ -1037,9 +1037,18 @@
{
Q_D(QObject);
d->objectName = name;
@@ -47,7 +47,7 @@ this makes the window role set in many cases (which KWin uses for window identif
struct Connection
--- a/src/gui/kernel/qwidget_p.h
+++ b/src/gui/kernel/qwidget_p.h
-@@ -328,6 +328,7 @@
+@@ -333,6 +333,7 @@
#if defined(Q_WS_X11)
void setWindowRole();
@@ -57,7 +57,7 @@ this makes the window role set in many cases (which KWin uses for window identif
#endif
--- a/src/gui/kernel/qwidget_x11.cpp
+++ b/src/gui/kernel/qwidget_x11.cpp
-@@ -714,13 +714,17 @@
+@@ -719,13 +719,17 @@
data.fstrut_dirty = 1;
// declare the widget's window role
@@ -81,7 +81,7 @@ this makes the window role set in many cases (which KWin uses for window identif
}
// set client leader property
-@@ -2857,6 +2861,17 @@
+@@ -2719,6 +2723,17 @@
(unsigned char *)windowRole.constData(), windowRole.length());
}
diff --git a/debian/patches/0195-compositing-properties.diff b/debian/patches/0195-compositing-properties.diff
index 3e9c2be..1e5b453 100644
--- a/debian/patches/0195-compositing-properties.diff
+++ b/debian/patches/0195-compositing-properties.diff
@@ -9,7 +9,7 @@ so they can be used when compositing.
--- a/src/gui/kernel/qwidget_x11.cpp
+++ b/src/gui/kernel/qwidget_x11.cpp
-@@ -657,6 +657,11 @@
+@@ -662,6 +662,11 @@
Q_ASSERT(id);
XChangeWindowAttributes(dpy, id, CWOverrideRedirect | CWSaveUnder,
&wsa);
@@ -21,7 +21,7 @@ so they can be used when compositing.
} else if (topLevel && !desktop) { // top-level widget
if (!X11->wm_client_leader)
create_wm_client_leader();
-@@ -705,13 +710,21 @@
+@@ -710,13 +715,21 @@
// set EWMH window types
setNetWmWindowTypes();
@@ -45,7 +45,7 @@ so they can be used when compositing.
// declare the widget's window role
QByteArray windowRole;
-@@ -731,10 +744,6 @@
+@@ -736,10 +749,6 @@
XChangeProperty(dpy, id, ATOM(WM_CLIENT_LEADER),
XA_WINDOW, 32, PropModeReplace,
(unsigned char *)&X11->wm_client_leader, 1);
diff --git a/debian/patches/01_qmake_for_debian.diff b/debian/patches/01_qmake_for_debian.diff
index d03f635..24b2893 100644
--- a/debian/patches/01_qmake_for_debian.diff
+++ b/debian/patches/01_qmake_for_debian.diff
@@ -4,7 +4,7 @@ Ensures qmake generates Makefiles that use the -qt4 tools.
--- a/mkspecs/common/linux.conf
+++ b/mkspecs/common/linux.conf
-@@ -23,8 +23,8 @@
+@@ -23,8 +23,8 @@ QMAKE_LIBS_OPENGL = -lGLU -lGL
QMAKE_LIBS_OPENGL_QT = -lGL
QMAKE_LIBS_THREAD = -lpthread
diff --git a/debian/patches/0203-qtexthtmlparser-link-color.diff b/debian/patches/0203-qtexthtmlparser-link-color.diff
index 4584160..54b6dca 100644
--- a/debian/patches/0203-qtexthtmlparser-link-color.diff
+++ b/debian/patches/0203-qtexthtmlparser-link-color.diff
@@ -1,5 +1,5 @@
qt-bugs@ issue : N190509
-Trolltech task ID : 190904
+Trolltech task ID : 190904 (Status: closed; Version fix: 4.5.0)
applied: no
author: Rafael Fernández López <ereslibre@kde.org>
@@ -7,7 +7,7 @@ Links are assigned a foreground color according to the system current color sche
--- a/src/gui/text/qtexthtmlparser.cpp
+++ b/src/gui/text/qtexthtmlparser.cpp
-@@ -1053,7 +1053,7 @@
+@@ -1056,7 +1056,7 @@
&& !attributes.at(i + 1).isEmpty()) {
hasHref = true;
charFormat.setUnderlineStyle(QTextCharFormat::SingleUnderline);
diff --git a/debian/patches/0210-fix-crash-q3stylesheet-font-size.diff b/debian/patches/0210-fix-crash-q3stylesheet-font-size.diff
deleted file mode 100644
index 338478b..0000000
--- a/debian/patches/0210-fix-crash-q3stylesheet-font-size.diff
+++ /dev/null
@@ -1,24 +0,0 @@
-qt-bugs@ issue : 197621
-Trolltech task ID : 197836
-bugs.kde.org number : none
-applied: no
-author: Montel Laurent <montel@kde.org>
-
-This patch fixes crashs in q3stylesheet (it was possible to
-use a qfont size < 1)
-Bug reported to TT with this patch.
-
---- a/src/qt3support/text/q3stylesheet.cpp
-+++ b/src/qt3support/text/q3stylesheet.cpp
-@@ -1463,9 +1463,9 @@
- s = baseSize;
- }
- if (pixel)
-- font.setPixelSize(s);
-+ font.setPixelSize(qMax(1,s));
- else
-- font.setPointSize(s);
-+ font.setPointSize(qMax(1,s));
- }
-
- QT_END_NAMESPACE
diff --git a/debian/patches/0214-fix-qgraphicsproxywidget-tab-crash.diff b/debian/patches/0214-fix-qgraphicsproxywidget-tab-crash.diff
deleted file mode 100644
index 5a4e01b..0000000
--- a/debian/patches/0214-fix-qgraphicsproxywidget-tab-crash.diff
+++ /dev/null
@@ -1,23 +0,0 @@
-qt-bugs@ issue : N199058
-Trolltech task ID : none
-applied: no
-author: Frerich Raabe <raabe@kde.org>
-
-Fixes a crash in QGraphicsProxyWidget which was triggered when no
-QGraphicsProxyWidget item in a QGraphicsScene had a QWidget associated
-with it. As soon as the user pressed <Tab>, QGraphicsProxyWidget
-attempted to give the focus to *some* QWidget (even if it was null).
-
---- a/src/gui/graphicsview/qgraphicsproxywidget.cpp
-+++ b/src/gui/graphicsview/qgraphicsproxywidget.cpp
-@@ -376,6 +376,10 @@
- }
- }
-
-+ if (!child) {
-+ return 0;
-+ }
-+
- QWidget *oldChild = child;
- do {
- if (child->isEnabled()
diff --git a/debian/patches/0216-allow-isystem-for-headers.diff b/debian/patches/0216-allow-isystem-for-headers.diff
index b6b2dbc..7e1d1dd 100644
--- a/debian/patches/0216-allow-isystem-for-headers.diff
+++ b/debian/patches/0216-allow-isystem-for-headers.diff
@@ -24,7 +24,7 @@ directory at the end of the compiler's header search path.
--- a/configure
+++ b/configure
-@@ -829,6 +829,11 @@
+@@ -833,6 +833,11 @@
VAL=`echo $1 | sed 's,-D,,'`
fi
;;
@@ -36,7 +36,7 @@ directory at the end of the compiler's header search path.
-I?*|-I)
VAR="add_ipath"
if [ "$1" = "-I" ]; then
-@@ -1725,6 +1730,9 @@
+@@ -1740,6 +1745,9 @@
add_ipath)
I_FLAGS="$I_FLAGS -I\"${VAL}\""
;;
diff --git a/debian/patches/0220-no-x-recursion-in-xerrhandler.diff b/debian/patches/0220-no-x-recursion-in-xerrhandler.diff
deleted file mode 100644
index d756124..0000000
--- a/debian/patches/0220-no-x-recursion-in-xerrhandler.diff
+++ /dev/null
@@ -1,47 +0,0 @@
-qt-bugs@ issue : 205699
-Trolltech task ID : none yet
-bugs.kde.org number : none
-applied: no
-author: Lubos Lunak <l.lunak@kde.org>
-os: unix
-
-X error handler is not allowed to do X protocol requests. Therefore e.g. creating
-QDragManager instance should not be allowed in it, as it results in things like
-creating X pixmaps. See https://bugzilla.novell.com/show_bug.cgi?id=368456.
-
---- a/src/gui/kernel/qdnd_x11.cpp
-+++ b/src/gui/kernel/qdnd_x11.cpp
-@@ -1700,21 +1700,23 @@
-
- bool QX11Data::xdndHandleBadwindow()
- {
-- QDragManager *manager = QDragManager::self();
-- if (manager->object && qt_xdnd_current_target) {
-- qt_xdnd_current_target = 0;
-- qt_xdnd_current_proxy_target = 0;
-- manager->object->deleteLater();
-- manager->object = 0;
-- delete xdnd_data.deco;
-- xdnd_data.deco = 0;
-- return true;
-+ if (qt_xdnd_current_target) { // avoid possibly on-demand creating the manager in X error handler
-+ QDragManager *manager = QDragManager::self();
-+ if (manager->object) {
-+ qt_xdnd_current_target = 0;
-+ qt_xdnd_current_proxy_target = 0;
-+ manager->object->deleteLater();
-+ manager->object = 0;
-+ xdnd_data.deco->deleteLater();
-+ xdnd_data.deco = 0;
-+ return true;
-+ }
- }
- if (qt_xdnd_dragsource_xid) {
- qt_xdnd_dragsource_xid = 0;
- if (qt_xdnd_current_widget) {
- QDragLeaveEvent e;
-- QApplication::sendEvent(qt_xdnd_current_widget, &e);
-+ QApplication::postEvent(qt_xdnd_current_widget, &e);
- qt_xdnd_current_widget = 0;
- }
- return true;
diff --git a/debian/patches/0223-fix-qpixmap-hasalpha.diff b/debian/patches/0223-fix-qpixmap-hasalpha.diff
deleted file mode 100644
index 5e7a058..0000000
--- a/debian/patches/0223-fix-qpixmap-hasalpha.diff
+++ /dev/null
@@ -1,26 +0,0 @@
-qt-bugs@ issue : N206173
-Trolltech task ID : 206174
-bugs.kde.org number : none
-applied: no
-author: Fredrik Höglund <fredrik@kde.org>
-
-Calling data->mask() in a pixmap that has an alpha channel causes
-the mask to be generated from the alpha channel. This is a very
-expensive operation, and completely unecessary in this case since
-the generated bitmap is immediately discarded.
-
-Fix the issue by reversing the order of the tests in the return
-statement, so the function returns true if the pixmap has an alpha
-channel, without generating the mask.
-
---- a/src/gui/image/qpixmap.cpp
-+++ b/src/gui/image/qpixmap.cpp
-@@ -1661,7 +1661,7 @@
- */
- bool QPixmap::hasAlpha() const
- {
-- return (!data->mask().isNull() || data->hasAlphaChannel());
-+ return (data->hasAlphaChannel() || !data->mask().isNull());
- }
-
- /*!
diff --git a/debian/patches/0224-fast-qpixmap-fill.diff b/debian/patches/0224-fast-qpixmap-fill.diff
index 6e6c5c6..1fc721f 100644
--- a/debian/patches/0224-fast-qpixmap-fill.diff
+++ b/debian/patches/0224-fast-qpixmap-fill.diff
@@ -16,7 +16,7 @@ fill server side.
--- a/src/gui/image/qpixmap_x11.cpp
+++ b/src/gui/image/qpixmap_x11.cpp
-@@ -1107,7 +1107,26 @@
+@@ -1121,7 +1121,26 @@
{
if (fillColor.alpha() != 255) {
#ifndef QT_NO_XRENDER
diff --git a/debian/patches/0225-invalidate-tabbar-geometry-on-refresh.diff b/debian/patches/0225-invalidate-tabbar-geometry-on-refresh.patch
index 8cdaeb3..a02361c 100644
--- a/debian/patches/0225-invalidate-tabbar-geometry-on-refresh.diff
+++ b/debian/patches/0225-invalidate-tabbar-geometry-on-refresh.patch
@@ -1,7 +1,7 @@
qt-bugs@ issue : None
Trolltech task ID : None
bugs.kde.org number : 159014
-applied: yes
+applied: no
author: Robert Knight <robertknight@gmail.com>
When tabs are inserted or removed in a QTabBar, QTabBarPrivate::refresh()
diff --git a/debian/patches/0226-qtreeview-column_resize_when_needed.diff b/debian/patches/0226-qtreeview-column_resize_when_needed.diff
index 180abec..986b652 100644
--- a/debian/patches/0226-qtreeview-column_resize_when_needed.diff
+++ b/debian/patches/0226-qtreeview-column_resize_when_needed.diff
@@ -28,7 +28,7 @@ no other columns become shrinked), the contents will be visible.
#endif // QT_NO_TREEVIEW
--- a/src/gui/itemviews/qtreeview.cpp
+++ b/src/gui/itemviews/qtreeview.cpp
-@@ -246,6 +246,19 @@
+@@ -248,6 +248,19 @@
connect(d->model, SIGNAL(modelAboutToBeReset()), SLOT(_q_modelAboutToBeReset()));
@@ -48,7 +48,7 @@ no other columns become shrinked), the contents will be visible.
if (d->sortingEnabled)
sortByColumn(header()->sortIndicatorSection());
}
-@@ -2787,6 +2800,8 @@
+@@ -2815,6 +2828,8 @@
}
if (model->canFetchMore(index))
model->fetchMore(index);
@@ -57,7 +57,7 @@ no other columns become shrinked), the contents will be visible.
}
void QTreeViewPrivate::collapse(int item, bool emitSignal)
-@@ -2826,6 +2841,8 @@
+@@ -2854,6 +2869,8 @@
else
emit q->collapsed(modelIndex);
}
@@ -66,7 +66,7 @@ no other columns become shrinked), the contents will be visible.
}
void QTreeViewPrivate::prepareAnimatedOperation(int item, AnimatedOperation::Type type)
-@@ -2937,6 +2954,25 @@
+@@ -2965,6 +2982,25 @@
viewItems.clear();
}
diff --git a/debian/patches/0227-qdatastream-regression.diff b/debian/patches/0227-qdatastream-regression.diff
deleted file mode 100644
index 17efc0e..0000000
--- a/debian/patches/0227-qdatastream-regression.diff
+++ /dev/null
@@ -1,63 +0,0 @@
-qt-bugs@ issue : N211089
-Trolltech task ID : 211301
-bugs.kde.org number : None
-applied: no
-author: Dirk Mueller <mueller@kde.org>
-
-when launching Qt3 applications under a KDE that runs with Qt 4.4,
-all apps either hang, crash, or eat horrible amounts of memory.
-
---- a/src/gui/kernel/qpalette.cpp
-+++ b/src/gui/kernel/qpalette.cpp
-@@ -79,9 +79,9 @@
- int max = QPalette::NColorRoles;
- if (s.version() <= QDataStream::Qt_2_1)
- max = QPalette::HighlightedText + 1;
-- if (s.version() <= QDataStream::Qt_4_3)
-+ else if (s.version() <= QDataStream::Qt_4_3)
- max = QPalette::AlternateBase + 1;
-- for(int r = 0 ; r < max ; r++)
-+ for(int r = 0 ; r < max ; r++)
- s << g.brush((QPalette::ColorRole)r);
- }
- return s;
-@@ -1021,7 +1021,7 @@
- int max = QPalette::ToolTipText + 1;
- if (s.version() <= QDataStream::Qt_2_1)
- max = QPalette::HighlightedText + 1;
-- if (s.version() <= QDataStream::Qt_4_3)
-+ else if (s.version() <= QDataStream::Qt_4_3)
- max = QPalette::AlternateBase + 1;
- for (int r = 0; r < max; r++)
- s << p.d->br[grp][r];
---- a/src/gui/painting/qbrush.cpp
-+++ b/src/gui/painting/qbrush.cpp
-@@ -924,12 +924,24 @@
-
- QDataStream &operator<<(QDataStream &s, const QBrush &b)
- {
-- s << (quint8)b.style() << b.color();
-- if (b.style() == Qt::TexturePattern) {
-+ quint8 style = (quint8) b.style();
-+
-+ if (s.version() < QDataStream::Qt_4_0) {
-+
-+ if (style == Qt::LinearGradientPattern
-+ || style == Qt::RadialGradientPattern
-+ || style == Qt::ConicalGradientPattern)
-+ style = Qt::NoBrush;
-+ }
-+
-+ s << style << b.color();
-+ if (b.style() == Qt::TexturePattern)
- s << b.texture();
-- } else if (b.style() == Qt::LinearGradientPattern
-+
-+ if (s.version() >= QDataStream::Qt_4_0 && (
-+ b.style() == Qt::LinearGradientPattern
- || b.style() == Qt::RadialGradientPattern
-- || b.style() == Qt::ConicalGradientPattern) {
-+ || b.style() == Qt::ConicalGradientPattern)) {
- const QGradient *gradient = b.gradient();
- int type_as_int = int(gradient->type());
- s << type_as_int;
diff --git a/debian/patches/0228-qsortfilterproxymodel-invalidate-noscroll.diff b/debian/patches/0228-qsortfilterproxymodel-invalidate-noscroll.diff
deleted file mode 100644
index b6da2cc..0000000
--- a/debian/patches/0228-qsortfilterproxymodel-invalidate-noscroll.diff
+++ /dev/null
@@ -1,21 +0,0 @@
-qt-bugs@ issue : none
-Trolltech task ID : 204403
-bugs.kde.org number : none
-applied: no
-author: Mikko C. <mikko.cal@gmail.com>
-
-Calling QSortFilterProxyModel::invalidate causes view
-to scroll to the current item/index.
-This behavior was not present on the Qt4.3.x. Fixed in Qt4.4.1 snapshots
-
---- a/src/gui/itemviews/qabstractitemview.cpp
-+++ b/src/gui/itemviews/qabstractitemview.cpp
-@@ -2980,7 +2980,7 @@
- if (q->isVisible()) {
- q->doItemsLayout();
- const QModelIndex current = q->currentIndex();
-- if (current.isValid())
-+ if (current.isValid() && state == QAbstractItemView::EditingState)
- q->scrollTo(current);
- } else {
- doDelayedItemsLayout();
diff --git a/debian/patches/0230-qtextcontrol-selectnextword.diff b/debian/patches/0230-qtextcontrol-selectnextword.diff
deleted file mode 100644
index 91ab87e..0000000
--- a/debian/patches/0230-qtextcontrol-selectnextword.diff
+++ /dev/null
@@ -1,33 +0,0 @@
-qt-bugs@ issue : N213258
-Trolltech task ID : 213259
-bugs.kde.org number : I guess there is one
-applied: no
-author: David Faure <faure@kde.org>
-
-Imagine a konqueror window with two tabs, and in the current tab there's a QTextEdit (in a web form).
-When typing Ctrl+Shift+Right, it is expected that the next word is selected.
-However, the QAction for "move this tab to the right" is triggered, which is unexpected.
-This wouldn't happen if the QTextEdit would react to the ShortcutOverride event which
-is sent first, for this exact purpose (so that widget-specific shortcuts are done first).
-QTextControl already handles some ShortcutOverride events, but not all of them.
-The patch below adds a few useful ones, i.e. possibly-conflicting ones. I guess one could
-be exhaustive and list all possible shortcuts there....
-
-
---- a/src/gui/text/qtextcontrol.cpp
-+++ b/src/gui/text/qtextcontrol.cpp
-@@ -1065,6 +1065,14 @@
- || ke == QKeySequence::MoveToPreviousWord
- || ke == QKeySequence::MoveToStartOfDocument
- || ke == QKeySequence::MoveToEndOfDocument
-+ || ke == QKeySequence::SelectNextWord
-+ || ke == QKeySequence::SelectPreviousWord
-+ || ke == QKeySequence::SelectStartOfLine
-+ || ke == QKeySequence::SelectEndOfLine
-+ || ke == QKeySequence::SelectStartOfBlock
-+ || ke == QKeySequence::SelectEndOfBlock
-+ || ke == QKeySequence::SelectStartOfDocument
-+ || ke == QKeySequence::SelectEndOfDocument
- ) {
- ke->accept();
- #endif
diff --git a/debian/patches/0233-fix-q3textbrowser-image.diff b/debian/patches/0233-fix-q3textbrowser-image.diff
deleted file mode 100644
index 70e9bae..0000000
--- a/debian/patches/0233-fix-q3textbrowser-image.diff
+++ /dev/null
@@ -1,22 +0,0 @@
-qt-bugs@ issue : N217218
-Trolltech task ID : 217145 (Status: closed; Version fix: 4.4.2)
-applied: yes
-author: TT :) (bug reported by Laurent Montel montel@kde.org and patch provides by TT
-
-In qt4.4.x there is a regression in Q3TextBrowser it can load an image.
-
---- a/src/qt3support/other/q3mimefactory.cpp 2008-06-25 14:30:02 -0000
-+++ b/src/qt3support/other/q3mimefactory.cpp 2008-06-25 14:30:02 -0000
-
-@@ -152,9 +152,8 @@
- QByteArray mimetype("application/octet-stream");
- if (extensions.contains(e))
- mimetype = extensions[e].latin1();
-- QByteArray imgfmt = QImageReader::imageFormat(abs_name);
-- if (!imgfmt.isEmpty())
-- mimetype = "image/" + imgfmt.toLower();
-+ if (!QImageReader::imageFormat(abs_name).isEmpty())
-+ mimetype = "application/x-qt-image";
-
- QFile f(abs_name);
- if (f.open(QIODevice::ReadOnly) && f.size()) {
diff --git a/debian/patches/0234-fix-mysql-threaded.diff b/debian/patches/0234-fix-mysql-threaded.diff
index f38a656..3ccc006 100644
--- a/debian/patches/0234-fix-mysql-threaded.diff
+++ b/debian/patches/0234-fix-mysql-threaded.diff
@@ -1,15 +1,15 @@
qt-bugs@ issue : N217716
Trolltech task ID : 217788
bugs.kde.org number : no report
-applied: yes
+applied: no
author: Tobias Koenig <tokoe@kde.org>
This patch will fix the handling of connections to
mysql server in a multithreaded environment
---- a/src/sql/drivers/mysql/qsql_mysql.cpp (revision 804421)
-+++ b/src/sql/drivers/mysql/qsql_mysql.cpp (working copy)
-@@ -1215,6 +1215,10 @@
+--- a/src/sql/drivers/mysql/qsql_mysql.cpp
++++ b/src/sql/drivers/mysql/qsql_mysql.cpp
+@@ -1248,6 +1248,10 @@
d->preparedQuerysEnabled = false;
#endif
@@ -20,7 +20,7 @@ mysql server in a multithreaded environment
setOpen(true);
setOpenError(false);
return true;
-@@ -1223,6 +1227,9 @@
+@@ -1256,6 +1260,9 @@
void QMYSQLDriver::close()
{
if (isOpen()) {
diff --git a/debian/patches/0235-qdbus-dispatch-async-timeout.diff b/debian/patches/0235-qdbus-dispatch-async-timeout.diff
deleted file mode 100644
index edd7fe7..0000000
--- a/debian/patches/0235-qdbus-dispatch-async-timeout.diff
+++ /dev/null
@@ -1,20 +0,0 @@
-qt-bugs@ issue : none
-Trolltech task ID : none
-bugs.kde.org number : none
-applied: no
-author: Michael Leupold <lemma@confuego.org>
-
-This patch dispatches synthesized timeout messages directly
-after handling them. This is neccessary in order to receive timeout
-errors to asynchroneous messages.
-
---- a/src/dbus/qdbusintegrator.cpp (Revision 827848)
-+++ b/src/dbus/qdbusintegrator.cpp (Arbeitskopie)
-@@ -988,6 +988,7 @@
- {
- DBusTimeout *timeout = timeouts.value(e->timerId(), 0);
- q_dbus_timeout_handle(timeout);
-+ doDispatch();
- }
-
- void QDBusConnectionPrivate::customEvent(QEvent *e)
diff --git a/debian/patches/0236-qtoolbararealayout-restore.diff b/debian/patches/0236-qtoolbararealayout-restore.diff
deleted file mode 100644
index 3f461b3..0000000
--- a/debian/patches/0236-qtoolbararealayout-restore.diff
+++ /dev/null
@@ -1,23 +0,0 @@
-qt-bugs@ issue : N218280
-Trolltech task ID : 218280
-bugs.kde.org number : none
-applied: yes
-author: TT
-
-QMainWindow::restoreState doesn't layout toolbars properly, regression
-from Qt-4.4
-
-Index: a/src/gui/widgets/qtoolbararealayout.cpp
-===================================================================
---- a/src/gui/widgets/qtoolbararealayout.cpp (revision 829449)
-+++ b/src/gui/widgets/qtoolbararealayout.cpp (working copy)
-@@ -1323,7 +1323,8 @@ bool QToolBarAreaLayout::restoreState(QD
- toolBar->setVisible(shown);
- toolBar->d_func()->setWindowState(floating, true, rect);
-
-- item.extraSpace = item.size - pick(line.o, item.sizeHint());
-+ //if it is -1, it means we should use the default size
-+ item.extraSpace = (item.size == -1) ? 0 : item.size - pick(line.o, item.sizeHint());
-
-
- line.toolBarItems.append(item);
diff --git a/debian/patches/0003_tab_text_cutoff.diff b/debian/patches/0238-fix-qt-qttabbar-size.diff
index 9f90b9b..8b35ab0 100644
--- a/debian/patches/0003_tab_text_cutoff.diff
+++ b/debian/patches/0238-fix-qt-qttabbar-size.diff
@@ -1,5 +1,5 @@
qt-bugs@ issue : N216195
-Trolltech task ID : 216537
+Trolltech task ID : 216537 (Applied in Qt 4.5)
bugs.kde.org number : 162737
applied: no
author: Michael Leupold <lemma@confuego.org>
@@ -7,19 +7,14 @@ author: Michael Leupold <lemma@confuego.org>
This patch fixes some characters in a tabbar being cut-off due
to a wrong size hint (visible if using a kstyle).
-More info here.
-http://lists.kde.org/?l=kde-core-devel&m=121526335523921&w=2
-It might very well very soon be a qtcopy patch
-Index: b/src/gui/widgets/qtabbar.cpp
-===================================================================
--- a/src/gui/widgets/qtabbar.cpp
+++ b/src/gui/widgets/qtabbar.cpp
-@@ -1084,7 +1084,7 @@
+@@ -1078,7 +1078,7 @@ QSize QTabBar::tabSizeHint(int index) co
QStyleOptionTabV2 opt;
initStyleOption(&opt, index);
opt.text = d->tabList.at(index).text;
- QSize iconSize = tab->icon.isNull() ? QSize() : opt.iconSize;
-+ QSize iconSize = tab->icon.isNull() ? QSize(0,0) : opt.iconSize;
++ QSize iconSize = tab->icon.isNull() ? QSize(0, 0) : opt.iconSize;
int hframe = style()->pixelMetric(QStyle::PM_TabBarTabHSpace, &opt, this);
int vframe = style()->pixelMetric(QStyle::PM_TabBarTabVSpace, &opt, this);
const QFontMetrics fm = fontMetrics();
diff --git a/debian/patches/0245-fix-randr-changes-detecting.diff b/debian/patches/0245-fix-randr-changes-detecting.diff
new file mode 100644
index 0000000..5eaf5a9
--- /dev/null
+++ b/debian/patches/0245-fix-randr-changes-detecting.diff
@@ -0,0 +1,25 @@
+qt-bugs@ issue : none yet
+Trolltech task ID : none yet
+bugs.kde.org number : ?
+applied: no
+author: Lubos Lunak <l.lunak@kde.org>
+
+Fix QDesktopWidget not detecting some changes in multiscreen setups
+(e.g. two screens 1280x1024, one of them switching to smaller size).
+
+--- a/src/gui/kernel/qapplication_x11.cpp
++++ b/src/gui/kernel/qapplication_x11.cpp
+@@ -2994,11 +2994,11 @@ int QApplication::x11ProcessEvent(XEvent
+ QSize oldSize(w->size());
+ w->data->crect.setWidth(DisplayWidth(X11->display, scr));
+ w->data->crect.setHeight(DisplayHeight(X11->display, scr));
+- if (w->size() != oldSize) {
++// if (w->size() != oldSize) {
+ QResizeEvent e(w->size(), oldSize);
+ QApplication::sendEvent(w, &e);
+ emit desktop()->resized(scr);
+- }
++// }
+ }
+ #endif // QT_NO_XRANDR
+
diff --git a/debian/patches/0248-fix-qwidget-scroll-slowness.diff b/debian/patches/0248-fix-qwidget-scroll-slowness.diff
new file mode 100644
index 0000000..8e0353b
--- /dev/null
+++ b/debian/patches/0248-fix-qwidget-scroll-slowness.diff
@@ -0,0 +1,39 @@
+qt-bugs@ issue : N227210
+Trolltech task ID : 228764
+bugs.kde.org number : 167739
+applied: no
+author: Germain Garand <germain@ebooksfrance.org>
+
+QWidgetPrivate::scrollRect doesn't account for it's rect argument
+but rather examine the whole widget surface when pondering if
+it can apply accelerated blitting, resulting in unnecessarily slow
+and non-blitting QWidget::scroll calls.
+
+--- a/src/gui/painting/qbackingstore.cpp
++++ b/src/gui/painting/qbackingstore.cpp
+@@ -517,7 +517,8 @@ void QWidgetPrivate::scrollRect(const QR
+ }
+
+ bool overlapped = false;
+- bool accelerateScroll = accelEnv && isOpaque() && !(overlapped = isOverlapped(data.crect));
++ QRect cRect = clipRect();
++ bool accelerateScroll = accelEnv && isOpaque() && !(overlapped = isOverlapped(rect & cRect));
+
+ #if defined(Q_WS_QWS)
+ QWSWindowSurface *surface;
+@@ -552,13 +553,13 @@ void QWidgetPrivate::scrollRect(const QR
+ #ifdef Q_WS_QWS
+ QWSWindowSurface *surface = static_cast<QWSWindowSurface*>(wbs->windowSurface);
+ const QRegion clip = surface->clipRegion().translated(-toplevelOffset)
+- & clipRect();
++ & cRect;
+ const QRect scrollRect = rect & clip.boundingRect();
+ const QRect destRect = scrollRect.translated(dx, dy)
+ & scrollRect
+ & clip.boundingRect();
+ #else
+- QRect scrollRect = rect & clipRect();
++ QRect scrollRect = rect & cRect;
+
+ QRect destRect = scrollRect.isValid() ? scrollRect.translated(dx,dy).intersected(scrollRect) : QRect();
+
diff --git a/debian/patches/0249-webkit-stale-frame-pointer.diff b/debian/patches/0249-webkit-stale-frame-pointer.diff
new file mode 100644
index 0000000..c966d9a
--- /dev/null
+++ b/debian/patches/0249-webkit-stale-frame-pointer.diff
@@ -0,0 +1,161 @@
+qt-bugs@ issue : none yet
+Trolltech task ID : none yet
+bugs.kde.org number : none
+applied: no
+author: Apple
+
+this fixes CVE-2008-3632:
+
+Use-after-free vulnerability in WebKit in Apple iPod touch 1.1 through 2.0.2,
+and iPhone 1.0 through 2.0.2, allows remote attackers to execute arbitrary code
+or cause a denial of service (application crash) via a web page with crafted
+Cascading Style Sheets (CSS) import statements.
+
+
+--- a/src/3rdparty/webkit/WebCore/dom/Document.cpp
++++ b/src/3rdparty/webkit/WebCore/dom/Document.cpp
+@@ -291,9 +291,8 @@ Document::Document(DOMImplementation* im
+ m_renderArena = 0;
+
+ m_axObjectCache = 0;
+-
+- // FIXME: DocLoader probably no longer needs the frame argument
+- m_docLoader = new DocLoader(frame, this);
++
++ m_docLoader = new DocLoader(this);
+
+ visuallyOrdered = false;
+ m_bParsing = false;
+@@ -1169,15 +1168,23 @@ void Document::detach()
+ if (render)
+ render->destroy();
+
+- // FIXME: is this needed or desirable?
+- m_frame = 0;
+-
++ // This is required, as our Frame might delete itself as soon as it detaches
++ // us. However, this violates Node::detach() symantics, as it's never
++ // possible to re-attach. Eventually Document::detach() should be renamed
++ // or this call made explicit in each of the callers of Document::detach().
++ clearFramePointer();
++
+ if (m_renderArena) {
+ delete m_renderArena;
+ m_renderArena = 0;
+ }
+ }
+
++void Document::clearFramePointer()
++{
++ m_frame = 0;
++}
++
+ void Document::removeAllEventListenersFromAllNodes()
+ {
+ m_windowEventListeners.clear();
+--- a/src/3rdparty/webkit/WebCore/dom/Document.h
++++ b/src/3rdparty/webkit/WebCore/dom/Document.h
+@@ -344,6 +344,8 @@ public:
+ virtual void attach();
+ virtual void detach();
+
++ void clearFramePointer();
++
+ RenderArena* renderArena() { return m_renderArena; }
+
+ AXObjectCache* axObjectCache() const;
+--- a/src/3rdparty/webkit/WebCore/loader/DocLoader.cpp
++++ b/src/3rdparty/webkit/WebCore/loader/DocLoader.cpp
+@@ -40,10 +40,9 @@
+
+ namespace WebCore {
+
+-DocLoader::DocLoader(Frame *frame, Document* doc)
++DocLoader::DocLoader(Document* doc)
+ : m_cache(cache())
+ , m_cachePolicy(CachePolicyVerify)
+- , m_frame(frame)
+ , m_doc(doc)
+ , m_requestCount(0)
+ , m_autoLoadImages(true)
+@@ -53,6 +52,11 @@ DocLoader::DocLoader(Frame *frame, Docum
+ m_cache->addDocLoader(this);
+ }
+
++Frame* DocLoader::frame() const
++{
++ return m_doc->frame();
++}
++
+ DocLoader::~DocLoader()
+ {
+ HashMap<String, CachedResource*>::iterator end = m_docResources.end();
+@@ -146,7 +150,7 @@ CachedResource* DocLoader::requestResour
+ }
+ }
+
+- if (m_frame && m_frame->loader()->isReloading())
++ if (frame() && frame()->loader()->isReloading())
+ setCachePolicy(CachePolicyReload);
+
+ checkForReload(fullURL);
+@@ -197,8 +201,8 @@ void DocLoader::removeCachedResource(Cac
+ void DocLoader::setLoadInProgress(bool load)
+ {
+ m_loadInProgress = load;
+- if (!load && m_frame)
+- m_frame->loader()->loadDone();
++ if (!load && frame())
++ frame()->loader()->loadDone();
+ }
+
+ void DocLoader::checkCacheObjectStatus(CachedResource* resource)
+@@ -217,7 +221,7 @@ void DocLoader::checkCacheObjectStatus(C
+ }
+
+ // Notify the caller that we "loaded".
+- if (!m_frame || m_frame->loader()->haveToldBridgeAboutLoad(resource->url()))
++ if (!frame() || frame()->loader()->haveToldBridgeAboutLoad(resource->url()))
+ return;
+
+ ResourceRequest request(resource->url());
+@@ -226,9 +230,9 @@ void DocLoader::checkCacheObjectStatus(C
+
+ if (resource->sendResourceLoadCallbacks()) {
+ // FIXME: If the WebKit client changes or cancels the request, WebCore does not respect this and continues the load.
+- m_frame->loader()->loadedResourceFromMemoryCache(request, response, data ? data->size() : 0);
++ frame()->loader()->loadedResourceFromMemoryCache(request, response, data ? data->size() : 0);
+ }
+- m_frame->loader()->didTellBridgeAboutLoad(resource->url());
++ frame()->loader()->didTellBridgeAboutLoad(resource->url());
+ }
+
+ void DocLoader::incrementRequestCount()
+--- a/src/3rdparty/webkit/WebCore/loader/DocLoader.h
++++ b/src/3rdparty/webkit/WebCore/loader/DocLoader.h
+@@ -49,7 +49,7 @@ friend class Cache;
+ friend class HTMLImageLoader;
+
+ public:
+- DocLoader(Frame*, Document*);
++ DocLoader(Document*);
+ ~DocLoader();
+
+ CachedImage* requestImage(const String& url);
+@@ -73,7 +73,7 @@ public:
+ CachePolicy cachePolicy() const { return m_cachePolicy; }
+ void setCachePolicy(CachePolicy);
+
+- Frame* frame() const { return m_frame; }
++ Frame* frame() const; // Can be NULL
+ Document* doc() const { return m_doc; }
+
+ void removeCachedResource(CachedResource*) const;
+@@ -100,7 +100,6 @@ private:
+ HashSet<String> m_reloadedURLs;
+ mutable HashMap<String, CachedResource*> m_docResources;
+ CachePolicy m_cachePolicy;
+- Frame* m_frame;
+ Document *m_doc;
+
+ int m_requestCount;
diff --git a/debian/patches/0254-fix-qgraphicsproxywidget-deletion-crash.diff b/debian/patches/0254-fix-qgraphicsproxywidget-deletion-crash.diff
new file mode 100644
index 0000000..e9eefe9
--- /dev/null
+++ b/debian/patches/0254-fix-qgraphicsproxywidget-deletion-crash.diff
@@ -0,0 +1,23 @@
+qt-bugs@ issue : none
+Trolltech task ID : None
+applied: no
+author: Alexis Menard <alexis.menard@trolltech.com>
+
+Fix deletion of a qgraphicsproxywidget if it is in a layout
+
+Will be included in 4.4.4
+
+--- a/src/gui/graphicsview/qgraphicsproxywidget.cpp
++++ b/src/gui/graphicsview/qgraphicsproxywidget.cpp
+@@ -515,9 +515,8 @@ QGraphicsProxyWidget::~QGraphicsProxyWid
+ {
+ Q_D(QGraphicsProxyWidget);
+ if (d->widget) {
+- QWidget *w = d->widget;
+- setWidget(0);
+- delete w;
++ QObject::disconnect(d->widget, SIGNAL(destroyed()), this, SLOT(_q_removeWidgetSlot()));
++ delete d->widget;
+ }
+ }
+
diff --git a/debian/patches/0255-qtreeview-selection-columns-hidden.diff b/debian/patches/0255-qtreeview-selection-columns-hidden.diff
new file mode 100644
index 0000000..4a15b35
--- /dev/null
+++ b/debian/patches/0255-qtreeview-selection-columns-hidden.diff
@@ -0,0 +1,42 @@
+qt-bugs@ issue : N232819
+Trolltech task ID : 232831
+applied: no
+author: Rafael Fernández López <ereslibre@kde.org>
+
+In a treeview with columns like this:
+
+Column 1 | Column 2 | ... | Column k | ... | Column n
+
+When selecting with rubberband (by clicking on the blank part of the viewport) while Column k is
+hidden, you get double items on the selection model, when asking for selection(). This is becase
+ranges are incorrectly calculated when there are hidden columns. A way to reproduce:
+
+Column 1 | Column 2 | Column 4 (Column 3 is hidden)
+ item
+ item
+ item
+ x <- press button here and move it up to select items (on this same column)
+
+If you do like this:
+
+Column 1 | Column 2 | Column 4 (Column 3 is hidden)
+ item
+ item
+ item
+ x <- press button here and move it up
+
+you won't be able to reproduce, since you need the hidden column to be between the one you click and
+the last one. The reason is that columnRanges returns two ranges when there is supposed to return 1
+range (even when there are hidden columns).
+
+--- a/src/gui/itemviews/qtreeview.cpp
++++ b/src/gui/itemviews/qtreeview.cpp
+@@ -3530,7 +3530,7 @@ QList<QPair<int, int> > QTreeViewPrivate
+ current.first = -2; // -1 is not enough because -1+1 = 0
+ current.second = -2;
+ foreach(int logicalColumn, logicalIndexes) {
+- if (current.second + 1 != logicalColumn) {
++ if (current.second + 1 != logicalColumn && !header->isSectionHidden(current.second + 1)) {
+ if (current.first != -2) {
+ //let's save the current one
+ ret += current;
diff --git a/debian/patches/0256-fix-recursive-backingstore-sync-crash.diff b/debian/patches/0256-fix-recursive-backingstore-sync-crash.diff
new file mode 100644
index 0000000..9665d5a
--- /dev/null
+++ b/debian/patches/0256-fix-recursive-backingstore-sync-crash.diff
@@ -0,0 +1,38 @@
+qt-bugs@ issue : N227209
+Trolltech task ID : none yet
+bugs.kde.org number : 174065
+applied: yes
+author: Szymon Tomasz Stefanek <s.stefanek@gmail.com>
+
+This patch fixes a crash deep inside the qt painting engine.
+
+The toplevel shared painter is instantiated by the topmost window
+which "owns" the backingstore buffer. The topmost window then recursively
+asks the children to paint themselves with the shared painter.
+With certain widget hierarchies it turns out that the topmost window
+may be asked to paint itself deep inside the recursive painting stack:
+a sort of "hierarchy-looping recursion".
+The window will do the job and then happily destroy the shared
+painter leaving the outer stack frames with a dangling pointer.
+
+This patch stops the "looping recursion" when it's triggered
+with a shared painter already active. The bug doesn't seem to
+be present in qt 4.5 snapshots, but in the meantime we need this fix.
+
+
+--- a/src/gui/painting/qbackingstore.cpp
++++ b/src/gui/painting/qbackingstore.cpp
+@@ -988,8 +988,12 @@ void QWidgetBackingStore::cleanRegion(co
+ return;
+ }
+
+- if (tlw->updatesEnabled()) {
++ // With certain widget hierarchies we may end up being called recursively
++ // on the same toplevel. This is likely to explode once the painter is released
++ // in the code below (since there is no reference counting). Avoid it.
++ bool alreadyPainting = tlwExtra->sharedPainter && tlwExtra->sharedPainter->isActive();
+
++ if (tlw->updatesEnabled() && !alreadyPainting) {
+ // hw: XXX the toClean region is not correct if !dirtyWidgets.isEmpty()
+
+ // Pre render config
diff --git a/debian/patches/0257-qurl-validate-speedup.diff b/debian/patches/0257-qurl-validate-speedup.diff
new file mode 100644
index 0000000..eefd01f
--- /dev/null
+++ b/debian/patches/0257-qurl-validate-speedup.diff
@@ -0,0 +1,21 @@
+qt-bugs@ issue : N234179
+Trolltech task ID : none
+bugs.kde.org number : 174144
+applied: no
+author: David Faure <faure@kde.org> (and Qt Software, independently)
+
+QUrl is supposed to have flags for parsing and validating a given URL only once.
+However it only sets the Validated flag on error, not after successful validation.
+So a valid url will be validated over and over again, every time e.g. port() or isValid() is called.
+
+--- a/src/corelib/io/qurl.cpp
++++ b/src/corelib/io/qurl.cpp
+@@ -3440,6 +3440,8 @@ void QUrlPrivate::validate() const
+ that->encodedOriginal = that->toEncoded(); // may detach
+ parse(ParseOnly);
+
++ QURL_SETFLAG(that->stateFlags, Validated);
++
+ if (!isValid)
+ return;
+
diff --git a/debian/patches/0260-fix-qgraphicswidget-deletionclearFocus.diff b/debian/patches/0260-fix-qgraphicswidget-deletionclearFocus.diff
new file mode 100644
index 0000000..3936f34
--- /dev/null
+++ b/debian/patches/0260-fix-qgraphicswidget-deletionclearFocus.diff
@@ -0,0 +1,20 @@
+qt-bugs@ issue : none
+Trolltech task ID : None
+applied: no
+author: Alexis Menard <alexis.menard@trolltech.com>
+
+Fix deletion of a qgraphicswidget on clear focus even if it doesn't have the focus.
+
+Will be included in 4.4.4
+
+--- a/src/gui/graphicsview/qgraphicsitem.cpp
++++ b/src/gui/graphicsview/qgraphicsitem.cpp
+@@ -1951,7 +1951,7 @@ void QGraphicsItem::setFocus(Qt::FocusRe
+ */
+ void QGraphicsItem::clearFocus()
+ {
+- if (!d_ptr->scene || !hasFocus())
++ if (!d_ptr->scene)
+ return;
+ if (d_ptr->isWidget) {
+ // Invisible widget items with focus must explicitly clear subfocus.
diff --git a/debian/patches/0261-sync-before-reset-errorhandler.patch b/debian/patches/0261-sync-before-reset-errorhandler.patch
new file mode 100644
index 0000000..2128ba8
--- /dev/null
+++ b/debian/patches/0261-sync-before-reset-errorhandler.patch
@@ -0,0 +1,22 @@
+qt-bugs@ issue : 236401
+Trolltech task ID : none
+bugs.kde.org number : none
+applied: no
+author: Lubos Lunak <l.lunak@kde.org>
+
+Sync X connection before resetting X error handler to the one provided
+by Xlib (which just aborts), in case there are still queued requests
+that may result in an error.
+
+
+--- a/src/gui/kernel/qapplication_x11.cpp
++++ b/src/gui/kernel/qapplication_x11.cpp
+@@ -2312,6 +2312,8 @@ void qt_cleanup()
+ #endif
+
+ // Reset the error handlers
++ if (qt_is_gui_used)
++ XSync(X11->display, False); // sync first to process all possible errors
+ XSetErrorHandler(original_x_errhandler);
+ XSetIOErrorHandler(original_xio_errhandler);
+
diff --git a/debian/patches/0262-fix-treeview-animation-crash.diff b/debian/patches/0262-fix-treeview-animation-crash.diff
new file mode 100644
index 0000000..e307f3a
--- /dev/null
+++ b/debian/patches/0262-fix-treeview-animation-crash.diff
@@ -0,0 +1,44 @@
+Trolltech task ID : 236454
+bugs.kde.org number : 176045
+applied: no
+author: Olivier Goffart
+
+This patch makes sure no deleted items are being accessed during an animation of the treeview
+It will also be contained in the upcoming Qt snapshots
+--- a/src/gui/itemviews/qtreeview.cpp
++++ b/src/gui/itemviews/qtreeview.cpp
+@@ -2815,10 +2815,9 @@ void QTreeViewPrivate::expand(int item,
+ q->setState(oldState);
+
+ if (emitSignal) {
++ emit q->expanded(index);
+ if (animationsEnabled)
+ beginAnimatedOperation();
+- else
+- emit q->expanded(index);
+ }
+ if (model->canFetchMore(index))
+ model->fetchMore(index);
+@@ -2858,10 +2857,9 @@ void QTreeViewPrivate::collapse(int item
+ q->setState(oldState);
+
+ if (emitSignal) {
++ emit q->collapsed(modelIndex);
+ if (animationsEnabled)
+ beginAnimatedOperation();
+- else
+- emit q->collapsed(modelIndex);
+ }
+
+ _q_forceColumnResizeToFitContents();
+@@ -2918,10 +2916,6 @@ void QTreeViewPrivate::_q_endAnimatedOpe
+ animatedOperation.before = QPixmap();
+ animatedOperation.after = QPixmap();
+ q->setState(QAbstractItemView::NoState);
+- if (animatedOperation.type == AnimatedOperation::Expand)
+- emit q->expanded(viewItems.at(animatedOperation.item).index);
+- else // operation == AnimatedOperation::Collapse
+- emit q->collapsed(viewItems.at(animatedOperation.item).index);
+ q->updateGeometries();
+ viewport->update();
+ }
diff --git a/debian/patches/02_launch_assistant-qt4.diff b/debian/patches/02_launch_assistant-qt4.diff
index aeb1c33..f086432 100644
--- a/debian/patches/02_launch_assistant-qt4.diff
+++ b/debian/patches/02_launch_assistant-qt4.diff
@@ -1,6 +1,6 @@
--- a/demos/qtdemo/menumanager.cpp
+++ b/demos/qtdemo/menumanager.cpp
-@@ -291,7 +291,7 @@
+@@ -285,7 +285,7 @@ void MenuManager::showDocInAssistant(con
if (this->assistantProcess.state() != QProcess::Running){
QString app = QLibraryInfo::location(QLibraryInfo::BinariesPath) + QDir::separator();
#if !defined(Q_OS_MAC)
@@ -11,7 +11,7 @@
#endif
--- a/tools/designer/src/designer/assistantclient.cpp
+++ b/tools/designer/src/designer/assistantclient.cpp
-@@ -115,7 +115,7 @@
+@@ -109,7 +109,7 @@ QString AssistantClient::binary()
{
QString app = QLibraryInfo::location(QLibraryInfo::BinariesPath) + QDir::separator();
#if !defined(Q_OS_MAC)
diff --git a/debian/patches/03_launch_moc-qt4.diff b/debian/patches/03_launch_moc-qt4.diff
index b3a354a..e5bfcf4 100644
--- a/debian/patches/03_launch_moc-qt4.diff
+++ b/debian/patches/03_launch_moc-qt4.diff
@@ -4,7 +4,7 @@ Ensure the Qt4 version of moc is launched.
--- a/tools/qdbus/qdbuscpp2xml/qdbuscpp2xml.cpp
+++ b/tools/qdbus/qdbuscpp2xml/qdbuscpp2xml.cpp
-@@ -398,7 +398,7 @@
+@@ -392,7 +392,7 @@ int main(int argc, char **argv)
else {
// run moc on this file
QProcess proc;
diff --git a/debian/patches/04_launch_uic-qt4.diff b/debian/patches/04_launch_uic-qt4.diff
index 70e5595..eedb093 100644
--- a/debian/patches/04_launch_uic-qt4.diff
+++ b/debian/patches/04_launch_uic-qt4.diff
@@ -2,7 +2,7 @@ author: Fathi Boudra <fabo@debian.org>
--- a/tools/designer/src/lib/shared/qdesigner_utils.cpp
+++ b/tools/designer/src/lib/shared/qdesigner_utils.cpp
-@@ -488,7 +488,7 @@
+@@ -482,7 +482,7 @@ namespace qdesigner_internal
binary += QDir::separator();
switch (mode) {
case UIC_GenerateCode:
diff --git a/debian/patches/05_append_qt4_target.diff b/debian/patches/05_append_qt4_target.diff
index d2f3b1a..32dfeea 100644
--- a/debian/patches/05_append_qt4_target.diff
+++ b/debian/patches/05_append_qt4_target.diff
@@ -2,7 +2,7 @@ author: Fathi Boudra <fabo@debian.org>
--- a/config.tests/unix/compile.test
+++ b/config.tests/unix/compile.test
-@@ -51,7 +51,7 @@
+@@ -53,7 +53,7 @@ test -d "$OUTDIR/$TEST" || mkdir -p "$OU
cd "$OUTDIR/$TEST"
make distclean >/dev/null 2>&1
@@ -13,7 +13,7 @@ author: Fathi Boudra <fabo@debian.org>
make
--- a/config.tests/unix/doubleformat.test
+++ b/config.tests/unix/doubleformat.test
-@@ -10,7 +10,7 @@
+@@ -10,7 +10,7 @@ OUTDIR=$4
# build and run a test program
test -d "$OUTDIR/config.tests/unix/doubleformat" || mkdir -p "$OUTDIR/config.tests/unix/doubleformat"
@@ -24,7 +24,7 @@ author: Fathi Boudra <fabo@debian.org>
DOUBLEFORMAT="UNKNOWN"
--- a/config.tests/unix/endian.test
+++ b/config.tests/unix/endian.test
-@@ -10,7 +10,7 @@
+@@ -10,7 +10,7 @@ OUTDIR=$4
# build and run a test program
test -d "$OUTDIR/config.tests/unix/endian" || mkdir -p "$OUTDIR/config.tests/unix/endian"
@@ -35,7 +35,7 @@ author: Fathi Boudra <fabo@debian.org>
--- a/config.tests/unix/ptrsize.test
+++ b/config.tests/unix/ptrsize.test
-@@ -10,7 +10,7 @@
+@@ -10,7 +10,7 @@ OUTDIR=$4
# build and run a test program
test -d "$OUTDIR/config.tests/unix/ptrsize" || mkdir -p "$OUTDIR/config.tests/unix/ptrsize"
@@ -46,7 +46,7 @@ author: Fathi Boudra <fabo@debian.org>
if [ "$VERBOSE" = "yes" ]; then
--- a/config.tests/x11/notype.test
+++ b/config.tests/x11/notype.test
-@@ -27,7 +27,7 @@
+@@ -27,7 +27,7 @@ if [ $XPLATFORM = "solaris-g++" -o $XPLA
NOTYPE=yes
test -d "$OUTDIR/config.tests/x11/notype" || mkdir -p "$OUTDIR/config.tests/x11/notype"
@@ -57,7 +57,7 @@ author: Fathi Boudra <fabo@debian.org>
if [ "$VERBOSE" = "yes" ]; then
--- a/configure
+++ b/configure
-@@ -3799,7 +3799,7 @@
+@@ -3789,7 +3789,7 @@ END {
}
# build qmake
@@ -66,7 +66,7 @@ author: Fathi Boudra <fabo@debian.org>
echo "Creating qmake. Please wait..."
OLD_QCONFIG_H=
-@@ -6012,8 +6012,8 @@
+@@ -6031,8 +6031,8 @@ QMAKE_ABSOLUTE_SOURCE_ROOT = \$\$QT_SOUR
QMAKE_MOC_SRC = \$\$QT_BUILD_TREE/src/moc
#local paths that cannot be queried from the QT_INSTALL_* properties while building QTDIR
@@ -77,7 +77,7 @@ author: Fathi Boudra <fabo@debian.org>
QMAKE_UIC3 = \$\$QT_BUILD_TREE/bin/uic3
QMAKE_RCC = \$\$QT_BUILD_TREE/bin/rcc
QMAKE_QDBUSXML2CPP = \$\$QT_BUILD_TREE/bin/qdbusxml2cpp
-@@ -6313,11 +6313,11 @@
+@@ -6333,11 +6333,11 @@ EXEC=""
#-------------------------------------------------------------------------------
echo "Finding project files. Please wait..."
@@ -91,7 +91,7 @@ author: Fathi Boudra <fabo@debian.org>
fi
# .projects -> projects to process
-@@ -6490,7 +6490,7 @@
+@@ -6510,7 +6510,7 @@ for file in .projects .projects.3; do
echo " for $a\c"
fi
@@ -102,7 +102,7 @@ author: Fathi Boudra <fabo@debian.org>
if echo '\c' | grep '\c' >/dev/null; then
--- a/projects.pro
+++ b/projects.pro
-@@ -114,7 +114,7 @@
+@@ -116,7 +116,7 @@ qmake.path=$$[QT_INSTALL_BINS]
win32 {
qmake.files=$$QT_BUILD_TREE/bin/qmake.exe
} else {
@@ -113,7 +113,7 @@ author: Fathi Boudra <fabo@debian.org>
--- a/qmake/Makefile.unix
+++ b/qmake/Makefile.unix
-@@ -98,17 +98,17 @@
+@@ -98,17 +98,17 @@ CPPFLAGS = -I. -Igenerators -Igenerators
CXXFLAGS = @QMAKE_CXXFLAGS@ $(CPPFLAGS)
@@ -137,7 +137,7 @@ author: Fathi Boudra <fabo@debian.org>
makedepend -D__MAKEDEPEND__ $(CPPFLAGS) $(DEPEND_SRC)
--- a/tools/linguist/lrelease/lrelease.pro
+++ b/tools/linguist/lrelease/lrelease.pro
-@@ -29,7 +29,7 @@
+@@ -29,7 +29,7 @@ HEADERS += $$PROPARSERPATH/proitems.h \
SOURCES += $$PROPARSERPATH/proitems.cpp \
$$PROPARSERPATH/proreader.cpp
@@ -148,7 +148,7 @@ author: Fathi Boudra <fabo@debian.org>
--- a/tools/linguist/lupdate/lupdate.pro
+++ b/tools/linguist/lupdate/lupdate.pro
-@@ -42,7 +42,7 @@
+@@ -42,7 +42,7 @@ SOURCES += $$PROPARSERPATH/proitems.cpp
$$PROPARSERPATH/proreader.cpp
@@ -168,7 +168,7 @@ author: Fathi Boudra <fabo@debian.org>
CONFIG -= qt
--- a/src/tools/uic/uic.pro
+++ b/src/tools/uic/uic.pro
-@@ -9,7 +9,7 @@
+@@ -9,7 +9,7 @@ build_all:!build_pass {
unix:!contains(QT_CONFIG, zlib):LIBS += -lz
@@ -179,7 +179,7 @@ author: Fathi Boudra <fabo@debian.org>
DEFINES += QT_BOOTSTRAPPED QT_UIC QT_LITE_UNICODE QT_NO_DATASTREAM \
--- a/tools/assistant/tools/assistant/assistant.pro
+++ b/tools/assistant/tools/assistant/assistant.pro
-@@ -2,7 +2,7 @@
+@@ -2,7 +2,7 @@ include($$QT_SOURCE_TREE/tools/shared/fo
TEMPLATE = app
LANGUAGE = C++
@@ -190,7 +190,7 @@ author: Fathi Boudra <fabo@debian.org>
--- a/tools/designer/src/designer/designer.pro
+++ b/tools/designer/src/designer/designer.pro
-@@ -24,7 +24,7 @@
+@@ -24,7 +24,7 @@ contains(CONFIG, static) {
DEFINES += QT_DESIGNER_STATIC
}
@@ -201,7 +201,7 @@ author: Fathi Boudra <fabo@debian.org>
include($$QT_SOURCE_TREE/tools/shared/qttoolbardialog/qttoolbardialog.pri)
--- a/tools/linguist/linguist/linguist.pro
+++ b/tools/linguist/linguist/linguist.pro
-@@ -67,7 +67,7 @@
+@@ -67,7 +67,7 @@ HEADERS += batchtranslationdialog.h \
contains(QT_PRODUCT, OpenSource.*):DEFINES *= QT_OPENSOURCE
DEFINES += QT_KEYWORDS
DESTDIR = ../../../bin
@@ -212,7 +212,7 @@ author: Fathi Boudra <fabo@debian.org>
static:CONFIG -= global_init_link_order
--- a/tools/qtconfig/qtconfig.pro
+++ b/tools/qtconfig/qtconfig.pro
-@@ -19,7 +19,7 @@
+@@ -19,7 +19,7 @@ FORMS = mainwindowbase.ui palette
RESOURCES = qtconfig.qrc
PROJECTNAME = Qt Configuration
diff --git a/debian/patches/07_trust_dpkg-arch_over_uname-m.diff b/debian/patches/07_trust_dpkg-arch_over_uname-m.diff
index 4671553..48fa1ae 100644
--- a/debian/patches/07_trust_dpkg-arch_over_uname-m.diff
+++ b/debian/patches/07_trust_dpkg-arch_over_uname-m.diff
@@ -2,7 +2,7 @@ author: Sune Vuorela
Reported to trolltech as N180631 - and task 181882
--- a/configure
+++ b/configure
-@@ -93,7 +93,50 @@
+@@ -94,7 +94,50 @@ getQMakeConf()
#-------------------------------------------------------------------------------
# need that throughout the script
diff --git a/debian/patches/09_qmake_lflags_as-needed.diff b/debian/patches/09_qmake_lflags_as-needed.diff
index 5a6d11c..4a191bf 100644
--- a/debian/patches/09_qmake_lflags_as-needed.diff
+++ b/debian/patches/09_qmake_lflags_as-needed.diff
@@ -5,7 +5,7 @@ Bug reported to Trolltech.
--- a/configure
+++ b/configure
-@@ -503,6 +503,8 @@
+@@ -463,6 +463,8 @@ mkdir -p "$outpath/config.tests"
rm -f "$outpath/config.tests/.qmake.cache"
cp "$QMAKE_VARS_FILE" "$outpath/config.tests/.qmake.cache"
diff --git a/debian/patches/10_config_tests_fixes.diff b/debian/patches/10_config_tests_fixes.diff
index 14db57a..acb0670 100644
--- a/debian/patches/10_config_tests_fixes.diff
+++ b/debian/patches/10_config_tests_fixes.diff
@@ -16,7 +16,7 @@
+LIBS += -liodbc
--- a/src/plugins/sqldrivers/odbc/odbc.pro
+++ b/src/plugins/sqldrivers/odbc/odbc.pro
-@@ -12,7 +12,7 @@
+@@ -12,7 +12,7 @@ mac {
unix {
!contains( LIBS, .*odbc.* ) {
@@ -27,7 +27,7 @@
--- a/src/sql/drivers/drivers.pri
+++ b/src/sql/drivers/drivers.pri
-@@ -48,7 +48,7 @@
+@@ -48,7 +48,7 @@ contains(sql-drivers, odbc) {
SOURCES += drivers/odbc/qsql_odbc.cpp
mac:!contains( LIBS, .*odbc.* ):LIBS *= -liodbc
@@ -36,7 +36,7 @@
win32 {
!win32-borland:LIBS *= -lodbc32
-@@ -93,7 +93,7 @@
+@@ -93,7 +93,7 @@ contains(sql-drivers, ibase) {
HEADERS += drivers/ibase/qsql_ibase.h
SOURCES += drivers/ibase/qsql_ibase.cpp
@@ -47,7 +47,7 @@
!win32-borland:LIBS *= -lgds32_ms
--- a/src/plugins/sqldrivers/ibase/ibase.pro
+++ b/src/plugins/sqldrivers/ibase/ibase.pro
-@@ -4,7 +4,7 @@
+@@ -4,7 +4,7 @@ HEADERS = ../../../sql/drivers/ibase/qs
SOURCES = main.cpp \
../../../sql/drivers/ibase/qsql_ibase.cpp
@@ -56,11 +56,3 @@
win32:!contains( LIBS, .*gds.* ):!contains( LIBS, .*fbclient.* ) {
!win32-borland:LIBS *= -lgds32_ms
---- a/config.tests/unix/sqlite/sqlite.pro
-+++ b/config.tests/unix/sqlite/sqlite.pro
-@@ -1,4 +1,4 @@
- SOURCES = sqlite.cpp
- CONFIG -= qt dylib
- mac:CONFIG -= app_bundle
--LIBS += -lsqlite3
-+LIBS += -lsqlite3 -ldl
diff --git a/debian/patches/12_fix_qmake_pkgconfig.diff b/debian/patches/12_fix_qmake_pkgconfig.diff
index 33fffbb..1535dce 100644
--- a/debian/patches/12_fix_qmake_pkgconfig.diff
+++ b/debian/patches/12_fix_qmake_pkgconfig.diff
@@ -1,6 +1,6 @@
--- a/qmake/generators/unix/unixmake2.cpp
+++ b/qmake/generators/unix/unixmake2.cpp
-@@ -1440,6 +1440,8 @@
+@@ -1434,6 +1434,8 @@ UnixMakefileGenerator::writePkgConfigFil
pkgConfiglibName = "-l" + lname.left(lname.length()-Option::libtool_ext.length());
}
t << pkgConfiglibDir << " " << pkgConfiglibName << " ";
diff --git a/debian/patches/14_add_libraries_to_gui_build_where_actually_needed.diff b/debian/patches/14_add_libraries_to_gui_build_where_actually_needed.diff
index 47fee7e..aa988de 100644
--- a/debian/patches/14_add_libraries_to_gui_build_where_actually_needed.diff
+++ b/debian/patches/14_add_libraries_to_gui_build_where_actually_needed.diff
@@ -1,24 +1,17 @@
--- a/src/gui/kernel/kernel.pri
+++ b/src/gui/kernel/kernel.pri
-@@ -112,6 +112,7 @@
- HEADERS += \
- kernel/qguieventdispatcher_glib_p.h
- QMAKE_CXXFLAGS += $$QT_CFLAGS_GLIB
-+ LIBS +=$$QT_LIBS_GLIB
- }
- SOURCES += \
- kernel/qeventdispatcher_x11.cpp
-@@ -140,6 +141,7 @@
+@@ -141,6 +141,8 @@ embedded {
HEADERS += \
kernel/qeventdispatcher_glib_qws_p.h
QMAKE_CXXFLAGS += $$QT_CFLAGS_GLIB
++ LIBS +=$$QT_LIBS_GLIB
+ LIBS +=$$QT_LIBS_GLIB
}
--- a/src/gui/painting/painting.pri
+++ b/src/gui/painting/painting.pri
-@@ -63,6 +63,8 @@
+@@ -63,6 +63,8 @@ SOURCES += \
painting/qpathclipper.cpp \
painting/qmemrotate.cpp
diff --git a/debian/patches/15_fix_qmake_makefile_generation.diff b/debian/patches/15_fix_qmake_makefile_generation.diff
index 94307e4..17f810b 100644
--- a/debian/patches/15_fix_qmake_makefile_generation.diff
+++ b/debian/patches/15_fix_qmake_makefile_generation.diff
@@ -1,6 +1,6 @@
--- a/qmake/generators/makefile.cpp
+++ b/qmake/generators/makefile.cpp
-@@ -2334,7 +2334,7 @@
+@@ -2328,7 +2328,7 @@ MakefileGenerator::writeSubTargets(QText
QString mkfile = subtarget->makefile;
if(!in_directory.isEmpty())
diff --git a/debian/patches/16_hide_std_symbols_on_qtwebkit.diff b/debian/patches/16_hide_std_symbols_on_qtwebkit.diff
index 5df9aa4..3ecbd99 100644
--- a/debian/patches/16_hide_std_symbols_on_qtwebkit.diff
+++ b/debian/patches/16_hide_std_symbols_on_qtwebkit.diff
@@ -1,8 +1,6 @@
-Index: b/src/3rdparty/webkit/WebKit.pri
-===================================================================
--- a/src/3rdparty/webkit/WebKit.pri
+++ b/src/3rdparty/webkit/WebKit.pri
-@@ -27,6 +27,7 @@
+@@ -27,6 +27,7 @@ CONFIG(release) {
BASE_DIR = $$PWD
qt-port:INCLUDEPATH += \
$$PWD/WebKit/qt/Api
@@ -10,8 +8,6 @@ Index: b/src/3rdparty/webkit/WebKit.pri
gtk-port:INCLUDEPATH += \
$$BASE_DIR/WebCore/platform/gtk \
$$BASE_DIR/WebCore/platform/network/curl \
-Index: b/src/3rdparty/webkit/symbols.filter
-===================================================================
--- /dev/null
+++ b/src/3rdparty/webkit/symbols.filter
@@ -0,0 +1,5 @@
diff --git a/debian/patches/17_add_postgresql_8.3_support.diff b/debian/patches/17_add_postgresql_8.3_support.diff
new file mode 100644
index 0000000..7edc391
--- /dev/null
+++ b/debian/patches/17_add_postgresql_8.3_support.diff
@@ -0,0 +1,46 @@
+Enable PostgreSQL 8.3 support.
+
+--- a/src/sql/drivers/psql/qsql_psql.cpp
++++ b/src/sql/drivers/psql/qsql_psql.cpp
+@@ -633,9 +633,12 @@ static QPSQLDriver::Protocol getPSQLVers
+ serverVersion = QPSQLDriver::Version81;
+ break;
+ case 2:
+- default:
+ serverVersion = QPSQLDriver::Version82;
+ break;
++ case 3:
++ default:
++ serverVersion = QPSQLDriver::Version83;
++ break;
+ }
+ break;
+ default:
+@@ -916,6 +919,7 @@ QSqlIndex QPSQLDriver::primaryIndex(cons
+ case QPSQLDriver::Version8:
+ case QPSQLDriver::Version81:
+ case QPSQLDriver::Version82:
++ case QPSQLDriver::Version83:
+ stmt = QLatin1String("SELECT pg_attribute.attname, pg_attribute.atttypid::int, "
+ "pg_class.relname "
+ "FROM pg_attribute, pg_class "
+@@ -989,6 +993,7 @@ QSqlRecord QPSQLDriver::record(const QSt
+ case QPSQLDriver::Version8:
+ case QPSQLDriver::Version81:
+ case QPSQLDriver::Version82:
++ case QPSQLDriver::Version83:
+ stmt = QLatin1String("select pg_attribute.attname, pg_attribute.atttypid::int, "
+ "pg_attribute.attnotnull, pg_attribute.attlen, pg_attribute.atttypmod, "
+ "pg_attrdef.adsrc "
+--- a/src/sql/drivers/psql/qsql_psql.h
++++ b/src/sql/drivers/psql/qsql_psql.h
+@@ -100,7 +100,8 @@ public:
+ Version74 = 10,
+ Version8 = 11,
+ Version81 = 12,
+- Version82 = 13
++ Version82 = 13,
++ Version83 = 14
+ };
+
+ explicit QPSQLDriver(QObject *parent=0);
diff --git a/debian/patches/20_mips_atomic_ops.diff b/debian/patches/20_mips_atomic_ops.diff
index 5e15f58..11b7fb2 100644
--- a/debian/patches/20_mips_atomic_ops.diff
+++ b/debian/patches/20_mips_atomic_ops.diff
@@ -4,9 +4,9 @@ Fix compilation for Linux MIPS-I code.
--- a/src/corelib/arch/mips/qatomic32.s
+++ b/src/corelib/arch/mips/qatomic32.s
-@@ -6,10 +6,12 @@
- .globl q_atomic_test_and_set_int
+@@ -7,10 +7,12 @@
.ent q_atomic_test_and_set_int
+ .set mips2
q_atomic_test_and_set_int:
+ .set mips2
1: ll $8,0($4)
@@ -17,25 +17,25 @@ Fix compilation for Linux MIPS-I code.
beqz $2,1b
nop
jr $31
-@@ -21,6 +23,7 @@
- .globl q_atomic_test_and_set_acquire_int
+@@ -24,6 +26,7 @@ q_atomic_test_and_set_int:
.ent q_atomic_test_and_set_acquire_int
+ .set mips2
q_atomic_test_and_set_acquire_int:
+ .set mips2
1: ll $8,0($4)
bne $8,$5,2f
move $2,$6
-@@ -30,6 +33,7 @@
+@@ -33,6 +36,7 @@ q_atomic_test_and_set_acquire_int:
jr $31
nop
2: sync
+ .set mips0
jr $31
move $2,$0
- .end q_atomic_test_and_set_acquire_int
-@@ -37,11 +41,13 @@
- .globl q_atomic_test_and_set_release_int
+ .set mips0
+@@ -42,11 +46,13 @@ q_atomic_test_and_set_acquire_int:
.ent q_atomic_test_and_set_release_int
+ .set mips2
q_atomic_test_and_set_release_int:
+ .set mips2
sync
@@ -47,9 +47,9 @@ Fix compilation for Linux MIPS-I code.
beqz $2,1b
nop
jr $31
-@@ -53,10 +59,12 @@
- .globl q_atomic_test_and_set_ptr
+@@ -60,10 +66,12 @@ q_atomic_test_and_set_release_int:
.ent q_atomic_test_and_set_ptr
+ .set mips2
q_atomic_test_and_set_ptr:
+ .set mips2
1: ll $8,0($4)
@@ -60,25 +60,25 @@ Fix compilation for Linux MIPS-I code.
beqz $2,1b
nop
jr $31
-@@ -68,6 +76,7 @@
- .globl q_atomic_test_and_set_acquire_ptr
+@@ -77,6 +85,7 @@ q_atomic_test_and_set_ptr:
.ent q_atomic_test_and_set_acquire_ptr
+ .set mips2
q_atomic_test_and_set_acquire_ptr:
+ .set mips2
1: ll $8,0($4)
bne $8,$5,2f
move $2,$6
-@@ -77,6 +86,7 @@
+@@ -86,6 +95,7 @@ q_atomic_test_and_set_acquire_ptr:
jr $31
nop
2: sync
+ .set mips0
jr $31
move $2,$0
- .end q_atomic_test_and_set_acquire_ptr
-@@ -84,11 +94,13 @@
- .globl q_atomic_test_and_set_release_ptr
+ .set mips0
+@@ -95,11 +105,13 @@ q_atomic_test_and_set_acquire_ptr:
.ent q_atomic_test_and_set_release_ptr
+ .set mips2
q_atomic_test_and_set_release_ptr:
+ .set mips2
sync
diff --git a/debian/patches/21_qprintdialog_honour_fileprintersadded.diff b/debian/patches/21_qprintdialog_honour_fileprintersadded.diff
deleted file mode 100644
index 3df3beb..0000000
--- a/debian/patches/21_qprintdialog_honour_fileprintersadded.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/src/gui/dialogs/qprintdialog_unix.cpp
-+++ b/src/gui/dialogs/qprintdialog_unix.cpp
-@@ -749,7 +749,7 @@
- Q_ASSERT(index != printerCount - 3); // separator
- widget.filename->setEnabled(false);
- widget.lOutput->setEnabled(false);
-- if (index > printerCount - 3) { // PDF or postscript
-+ if (filePrintersAdded && index > printerCount - 3) { // PDF or postscript
- widget.location->setText(QPrintDialog::tr("Local file"));
- widget.type->setText(QPrintDialog::tr("Write %1 file").arg(index == printerCount - 2 ?
- QString::fromLatin1("PDF") : QString::fromLatin1("Postscript")));
diff --git a/debian/patches/30_webkit-unaligned-access.patch b/debian/patches/30_webkit_unaligned_access.diff
index 5bec884..8bc9211 100644
--- a/debian/patches/30_webkit-unaligned-access.patch
+++ b/debian/patches/30_webkit_unaligned_access.diff
@@ -12,11 +12,9 @@ Some compiler warnings about alignment remain, but I don't know if they are
a real problem yet.
---
-Index: b/src/3rdparty/webkit/JavaScriptCore/wtf/FastMalloc.cpp
-===================================================================
--- a/src/3rdparty/webkit/JavaScriptCore/wtf/FastMalloc.cpp
+++ b/src/3rdparty/webkit/JavaScriptCore/wtf/FastMalloc.cpp
-@@ -1267,14 +1267,14 @@
+@@ -1267,14 +1267,14 @@ static TCMalloc_Central_FreeListPadded c
// Page-level allocator
static SpinLock pageheap_lock = SPINLOCK_INITIALIZER;
@@ -33,11 +31,9 @@ Index: b/src/3rdparty/webkit/JavaScriptCore/wtf/FastMalloc.cpp
TCMalloc_PageHeap m_pageHeap;
} PageHeapUnion;
-Index: b/src/3rdparty/webkit/JavaScriptCore/wtf/ListHashSet.h
-===================================================================
--- a/src/3rdparty/webkit/JavaScriptCore/wtf/ListHashSet.h
+++ b/src/3rdparty/webkit/JavaScriptCore/wtf/ListHashSet.h
-@@ -122,7 +122,7 @@
+@@ -122,7 +122,7 @@ namespace WTF {
: m_freeList(pool())
, m_isDoneWithInitialFreeList(false)
{
@@ -46,7 +42,7 @@ Index: b/src/3rdparty/webkit/JavaScriptCore/wtf/ListHashSet.h
}
Node* allocate()
-@@ -166,7 +166,7 @@
+@@ -166,7 +166,7 @@ namespace WTF {
}
private:
@@ -55,7 +51,7 @@ Index: b/src/3rdparty/webkit/JavaScriptCore/wtf/ListHashSet.h
Node* pastPool() { return pool() + m_poolSize; }
bool inPool(Node* node)
-@@ -177,10 +177,7 @@
+@@ -177,10 +177,7 @@ namespace WTF {
Node* m_freeList;
bool m_isDoneWithInitialFreeList;
static const size_t m_poolSize = 256;
@@ -67,8 +63,6 @@ Index: b/src/3rdparty/webkit/JavaScriptCore/wtf/ListHashSet.h
};
template<typename ValueArg> struct ListHashSetNode {
-Index: b/src/3rdparty/webkit/JavaScriptCore/wtf/Platform.h
-===================================================================
--- a/src/3rdparty/webkit/JavaScriptCore/wtf/Platform.h
+++ b/src/3rdparty/webkit/JavaScriptCore/wtf/Platform.h
@@ -167,6 +167,23 @@
@@ -95,11 +89,9 @@ Index: b/src/3rdparty/webkit/JavaScriptCore/wtf/Platform.h
/* Compiler */
/* COMPILER(MSVC) */
-Index: b/src/3rdparty/webkit/JavaScriptCore/wtf/Vector.h
-===================================================================
--- a/src/3rdparty/webkit/JavaScriptCore/wtf/Vector.h
+++ b/src/3rdparty/webkit/JavaScriptCore/wtf/Vector.h
-@@ -355,8 +355,7 @@
+@@ -355,8 +355,7 @@ namespace WTF {
static const size_t m_inlineBufferSize = inlineCapacity * sizeof(T);
T* inlineBuffer() { return reinterpret_cast<T*>(&m_inlineBuffer); }
@@ -109,11 +101,9 @@ Index: b/src/3rdparty/webkit/JavaScriptCore/wtf/Vector.h
};
template<typename T, size_t inlineCapacity = 0>
-Index: b/src/3rdparty/webkit/WebCore/platform/AtomicString.cpp
-===================================================================
--- a/src/3rdparty/webkit/WebCore/platform/AtomicString.cpp
+++ b/src/3rdparty/webkit/WebCore/platform/AtomicString.cpp
-@@ -104,7 +104,7 @@
+@@ -104,7 +104,7 @@ struct UCharBufferTranslator {
if (strLength != bufLength)
return false;
@@ -122,11 +112,9 @@ Index: b/src/3rdparty/webkit/WebCore/platform/AtomicString.cpp
const UChar* strChars = str->characters();
const UChar* bufChars = buf.s;
-Index: b/src/3rdparty/webkit/WebCore/platform/StringHash.h
-===================================================================
--- a/src/3rdparty/webkit/WebCore/platform/StringHash.h
+++ b/src/3rdparty/webkit/WebCore/platform/StringHash.h
-@@ -44,6 +44,15 @@
+@@ -44,6 +44,15 @@ namespace WTF {
if (aLength != bLength)
return false;
@@ -142,7 +130,7 @@ Index: b/src/3rdparty/webkit/WebCore/platform/StringHash.h
const uint32_t* aChars = reinterpret_cast<const uint32_t*>(a->characters());
const uint32_t* bChars = reinterpret_cast<const uint32_t*>(b->characters());
-@@ -56,6 +65,7 @@
+@@ -56,6 +65,7 @@ namespace WTF {
return false;
return true;
diff --git a/debian/patches/40_alpha_ice.diff b/debian/patches/40_alpha_ice.diff
index 524ae33..621bc8a 100644
--- a/debian/patches/40_alpha_ice.diff
+++ b/debian/patches/40_alpha_ice.diff
@@ -1,6 +1,6 @@
--- a/src/corelib/global/qlibraryinfo.cpp
+++ b/src/corelib/global/qlibraryinfo.cpp
-@@ -78,14 +78,7 @@
+@@ -72,14 +72,7 @@ class QLibraryInfoPrivate
{
public:
static QSettings *findConfiguration();
@@ -16,7 +16,7 @@
static QSettings *configuration()
{
#ifdef QT_NO_THREAD
-@@ -104,6 +97,15 @@
+@@ -98,6 +91,15 @@ public:
}
};
@@ -34,7 +34,7 @@
settings = QLibraryInfoPrivate::findConfiguration();
--- a/src/corelib/tools/qhash.h
+++ b/src/corelib/tools/qhash.h
-@@ -499,7 +499,7 @@
+@@ -493,7 +493,7 @@ Q_INLINE_TEMPLATE void QHash<Key, T>::de
}
template <class Key, class T>
diff --git a/debian/patches/41_disable_opengl_visibility.diff b/debian/patches/41_disable_opengl_visibility.diff
index f27b26e..6557b2d 100644
--- a/debian/patches/41_disable_opengl_visibility.diff
+++ b/debian/patches/41_disable_opengl_visibility.diff
@@ -2,7 +2,7 @@ temporary fix because of alpha, has to be dropped as soon as gcc's bug is fixed.
--- a/src/opengl/opengl.pro
+++ b/src/opengl/opengl.pro
-@@ -6,6 +6,7 @@
+@@ -6,6 +6,7 @@ DEFINES += QT_NO_USING_NAMESPACE
win32-msvc*|win32-icc:QMAKE_LFLAGS += /BASE:0x63000000
solaris-cc*:QMAKE_CXXFLAGS_RELEASE -= -O2
diff --git a/debian/patches/50_kfreebsd_build_fix.diff b/debian/patches/50_kfreebsd_build_fix.diff
index 84736f6..03a9cb4 100644
--- a/debian/patches/50_kfreebsd_build_fix.diff
+++ b/debian/patches/50_kfreebsd_build_fix.diff
@@ -4,7 +4,7 @@ Fixes FTBFS on GNU/kFreeBSD by creating new Q_OS_GLIBC.
--- a/src/corelib/global/qglobal.h
+++ b/src/corelib/global/qglobal.h
-@@ -210,6 +210,12 @@
+@@ -204,6 +204,12 @@ namespace QT_NAMESPACE {}
# define Q_OS_RELIANT
#elif defined(__linux__) || defined(__linux)
# define Q_OS_LINUX
@@ -17,7 +17,7 @@ Fixes FTBFS on GNU/kFreeBSD by creating new Q_OS_GLIBC.
#elif defined(__FreeBSD__) || defined(__DragonFly__)
# define Q_OS_FREEBSD
# define Q_OS_BSD4
-@@ -230,8 +236,6 @@
+@@ -224,8 +230,6 @@ namespace QT_NAMESPACE {}
# define Q_OS_AIX
#elif defined(__Lynx__)
# define Q_OS_LYNX
@@ -28,9 +28,9 @@ Fixes FTBFS on GNU/kFreeBSD by creating new Q_OS_GLIBC.
#elif defined(__QNXNTO__)
--- a/src/corelib/plugin/qlibrary.cpp
+++ b/src/corelib/plugin/qlibrary.cpp
-@@ -288,13 +288,13 @@
+@@ -286,13 +286,13 @@ static bool qt_parse_pattern(const char
- #if defined(Q_OS_UNIX) && !defined(Q_OS_MAC)
+ #if defined(Q_OS_UNIX) && !defined(Q_OS_MAC) && !defined(QT_NO_PLUGIN_CHECK)
-#if defined(Q_OS_FREEBSD) || defined(Q_OS_LINUX)
+#if defined(Q_OS_FREEBSD) || defined(Q_OS_GLIBC)
@@ -46,7 +46,7 @@ Fixes FTBFS on GNU/kFreeBSD by creating new Q_OS_GLIBC.
const char *pattern, ulong p_len)
--- a/src/corelib/tools/qlocale.cpp
+++ b/src/corelib/tools/qlocale.cpp
-@@ -80,7 +80,7 @@
+@@ -74,7 +74,7 @@ QT_END_NAMESPACE
#include <qdebug.h>
#include <time.h>
@@ -55,7 +55,7 @@ Fixes FTBFS on GNU/kFreeBSD by creating new Q_OS_GLIBC.
# include <fenv.h>
#endif
-@@ -6256,7 +6256,7 @@
+@@ -6253,7 +6253,7 @@ Q_CORE_EXPORT char *qdtoa ( double d, in
_control87(MCW_EM, MCW_EM);
#endif
@@ -64,7 +64,7 @@ Fixes FTBFS on GNU/kFreeBSD by creating new Q_OS_GLIBC.
fenv_t envp;
feholdexcept(&envp);
#endif
-@@ -6272,7 +6272,7 @@
+@@ -6269,7 +6269,7 @@ Q_CORE_EXPORT char *qdtoa ( double d, in
#endif //_M_X64
#endif //Q_OS_WIN
diff --git a/debian/patches/60_m68k_inotify_fix.diff b/debian/patches/60_m68k_inotify_fix.diff
deleted file mode 100644
index aac297a..0000000
--- a/debian/patches/60_m68k_inotify_fix.diff
+++ /dev/null
@@ -1,18 +0,0 @@
-author: Brian Nelson <pyro@debian.org>
-
-From Roman Zippel <zippel@linux-m68k.org>: These defines are taken from the
-m68k tree, they should appear like this soon also in the upstream source.
-
---- a/src/corelib/io/qfilesystemwatcher_inotify.cpp
-+++ b/src/corelib/io/qfilesystemwatcher_inotify.cpp
-@@ -112,6 +112,10 @@
- # define __NR_inotify_init 240
- # define __NR_inotify_add_watch 241
- # define __NR_inotify_rm_watch 242
-+#elif defined (__mc68000__)
-+# define __NR_inotify_init 284
-+# define __NR_inotify_add_watch 285
-+# define __NR_inotify_rm_watch 286
- #else
- # error "This architecture is not supported. Please talk to qt-bugs@trolltech.com"
- #endif
diff --git a/debian/patches/71_hppa_unaligned_access_fix_458133.diff b/debian/patches/71_hppa_unaligned_access_fix_458133.diff
index 2402781..4d22cbc 100644
--- a/debian/patches/71_hppa_unaligned_access_fix_458133.diff
+++ b/debian/patches/71_hppa_unaligned_access_fix_458133.diff
@@ -2,71 +2,9 @@ author: Bernhard R. Link <brlink@debian.org>
Fix unaligned access on hppa
---- a/src/corelib/global/qnumeric_p.h
-+++ b/src/corelib/global/qnumeric_p.h
-@@ -64,11 +64,17 @@
- static const unsigned char qt_armfpa_inf_bytes[] = { 0, 0, 0xf0, 0x7f, 0, 0, 0, 0 };
- static inline double qt_inf()
- {
-+ union { double d; unsigned char bytes[8]; } val;
-+
- #ifdef QT_ARMFPA
-- return *reinterpret_cast<const double *>(qt_armfpa_inf_bytes);
-+ qMemCopy(val.bytes, qt_armfpa_inf_bytes, 8);
- #else
-- return *reinterpret_cast<const double *>(QSysInfo::ByteOrder == QSysInfo::BigEndian ? qt_be_inf_bytes : qt_le_inf_bytes);
-+ if (QSysInfo::ByteOrder == QSysInfo::BigEndian)
-+ qMemCopy(val.bytes, qt_be_inf_bytes, 8);
-+ else
-+ qMemCopy(val.bytes, qt_le_inf_bytes, 8);
- #endif
-+ return val.d;
- }
-
- // Signaling NAN
-@@ -77,11 +83,17 @@
- static const unsigned char qt_armfpa_snan_bytes[] = { 0, 0, 0xf8, 0x7f, 0, 0, 0, 0 };
- static inline double qt_snan()
- {
-+ union { double d; unsigned char bytes[8]; } val;
-+
- #ifdef QT_ARMFPA
-- return *reinterpret_cast<const double *>(qt_armfpa_snan_bytes);
-+ qMemCopy(val.bytes, qt_armfpa_snan_bytes, 8);
- #else
-- return *reinterpret_cast<const double *>(QSysInfo::ByteOrder == QSysInfo::BigEndian ? qt_be_snan_bytes : qt_le_snan_bytes);
-+ if (QSysInfo::ByteOrder == QSysInfo::BigEndian)
-+ qMemCopy(val.bytes, qt_be_snan_bytes, 8);
-+ else
-+ qMemCopy(val.bytes, qt_le_snan_bytes, 8);
- #endif
-+ return val.d;
- }
-
- // Quiet NAN
-@@ -90,11 +102,17 @@
- static const unsigned char qt_armfpa_qnan_bytes[] = { 0, 0, 0xf8, 0xff, 0, 0, 0, 0 };
- static inline double qt_qnan()
- {
-+ union { double d; unsigned char bytes[8]; } val;
-+
- #ifdef QT_ARMFPA
-- return *reinterpret_cast<const double *>(qt_armfpa_qnan_bytes);
-+ qMemCopy(val.bytes, qt_armfpa_qnan_bytes, 8);
- #else
-- return *reinterpret_cast<const double *>(QSysInfo::ByteOrder == QSysInfo::BigEndian ? qt_be_qnan_bytes : qt_le_qnan_bytes);
-+ if (QSysInfo::ByteOrder == QSysInfo::BigEndian)
-+ qMemCopy(val.bytes, qt_be_qnan_bytes, 8);
-+ else
-+ qMemCopy(val.bytes, qt_le_qnan_bytes, 8);
- #endif
-+ return val.d;
- }
-
- static inline bool qt_is_inf(double d)
--- a/src/3rdparty/sha1/sha1.cpp
+++ b/src/3rdparty/sha1/sha1.cpp
-@@ -151,10 +151,10 @@
+@@ -145,10 +145,10 @@ static inline void sha1ProcessChunk(Sha1
quint32 d = state->h3;
quint32 e = state->h4;
@@ -80,7 +18,7 @@ Fix unaligned access on hppa
for (int i = 0; i < 16; ++i)
chunk->words[i] = qFromBigEndian(chunk->words[i]);
-@@ -190,7 +190,7 @@
+@@ -184,7 +184,7 @@ static inline void sha1ProcessChunk(Sha1
// Wipe variables
#ifdef SHA1_WIPE_VARIABLES
a = b = c = d = e = 0;
diff --git a/debian/patches/72_generic_arch_atomic_header_fix.diff b/debian/patches/72_generic_arch_atomic_header_fix.diff
deleted file mode 100644
index a6a1f8d..0000000
--- a/debian/patches/72_generic_arch_atomic_header_fix.diff
+++ /dev/null
@@ -1,17 +0,0 @@
-http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=475767
-
-This mostly affects hppa, but hppa is "community supported" - meaning that the Trolls doesn't care much.
-
-Index: b/src/corelib/arch/qatomic_generic.h
-===================================================================
---- a/src/corelib/arch/qatomic_generic.h
-+++ b/src/corelib/arch/qatomic_generic.h
-@@ -223,7 +223,7 @@
- Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreOrdered(T *newValue)
- {
- return reinterpret_cast<T *>
-- (QBasicAtomicPointer_fetchAndStoreOrdered(&reinterpret_cast<void * volatile *>(&_q_value),
-+ (QBasicAtomicPointer_fetchAndStoreOrdered(reinterpret_cast<void * volatile *>(&_q_value),
- newValue));
- }
-
diff --git a/debian/patches/73_from4.4.1_no_AAAA_when_ipv6_disabled.diff b/debian/patches/73_from4.4.1_no_AAAA_when_ipv6_disabled.diff
deleted file mode 100644
index df618e1..0000000
--- a/debian/patches/73_from4.4.1_no_AAAA_when_ipv6_disabled.diff
+++ /dev/null
@@ -1,30 +0,0 @@
---- a/src/network/kernel/qhostinfo_unix.cpp 2008-04-28 16:11:19.000000000 +0300
-+++ b/src/network/kernel/qhostinfo_unix.cpp 2008-06-08 02:35:23.000000000 +0300
-@@ -167,8 +167,19 @@
- struct addrinfo hints;
- memset(&hints, 0, sizeof(hints));
- hints.ai_family = PF_UNSPEC;
-+# ifdef AI_ADDRCONFIG
-+ hints.ai_flags = AI_ADDRCONFIG;
-+# endif
-
- int result = getaddrinfo(hostName.toLatin1().constData(), 0, &hints, &res);
-+# ifdef AI_ADDRCONFIG
-+ if (result == EAI_BADFLAGS) {
-+ // if the lookup failed with AI_ADDRCONFIG set, try again without it
-+ hints.ai_flags = 0;
-+ result = getaddrinfo(hostName.toLatin1().constData(), 0, &hints, &res);
-+ }
-+# endif
-+
- if (result == 0) {
- addrinfo *node = res;
- QList<QHostAddress> addresses;
-@@ -200,7 +211,6 @@
- freeaddrinfo(res);
- } else if (result == EAI_NONAME
- || result == EAI_FAIL
-- || result == EAI_FAIL
- #ifdef EAI_NODATA
- // EAI_NODATA is deprecated in RFC 3493
- || result == EAI_NODATA
diff --git a/debian/patches/80_hurd_max_path.diff b/debian/patches/80_hurd_max_path.diff
index bda822e..a6983cc 100644
--- a/debian/patches/80_hurd_max_path.diff
+++ b/debian/patches/80_hurd_max_path.diff
@@ -2,7 +2,7 @@ author: Brian Nelson <pyro@debian.org>
--- a/src/corelib/io/qfsfileengine_unix.cpp
+++ b/src/corelib/io/qfsfileengine_unix.cpp
-@@ -66,6 +66,10 @@
+@@ -60,6 +60,10 @@
QT_BEGIN_NAMESPACE
diff --git a/debian/patches/90_gcc43.diff b/debian/patches/90_gcc43.diff
deleted file mode 100644
index 71dbc14..0000000
--- a/debian/patches/90_gcc43.diff
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/src/sql/drivers/ibase/qsql_ibase.cpp
-+++ b/src/sql/drivers/ibase/qsql_ibase.cpp
-@@ -467,7 +467,7 @@
- }
- /* char** ? seems like bad influence from oracle ... */
- template<>
--static QList<QVariant> toList<long>(char** buf, int count, long*)
-+QList<QVariant> toList<long>(char** buf, int count, long*)
- {
- QList<QVariant> res;
- for (int i = 0; i < count; ++i) {
-@@ -622,7 +622,7 @@
- }
-
- template<>
--static char* fillList<float>(char *buffer, const QList<QVariant> &list, float*)
-+char* fillList<float>(char *buffer, const QList<QVariant> &list, float*)
- {
- for (int i = 0; i < list.size(); ++i) {
- double val;
diff --git a/debian/patches/series b/debian/patches/series
index 81bf1f0..e1b1327 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,28 +1,25 @@
-# patches from upstream
-0001_webkit_backround_in_scrollbars_webkit-5b0ea6b840a6e25e97b886e1852c3fc6ef8e8d0d.diff
-0002_https_lowercase.cpp
-0003_tab_text_cutoff.diff
# qt-copy patches
0167-fix-group-reading.diff
0180-window-role.diff
0195-compositing-properties.diff
0203-qtexthtmlparser-link-color.diff
0209-prevent-qt-mixing.diff
-0210-fix-crash-q3stylesheet-font-size.diff
-0214-fix-qgraphicsproxywidget-tab-crash.diff
0216-allow-isystem-for-headers.diff
-0220-no-x-recursion-in-xerrhandler.diff
-0223-fix-qpixmap-hasalpha.diff
0224-fast-qpixmap-fill.diff
-0225-invalidate-tabbar-geometry-on-refresh.diff
+0225-invalidate-tabbar-geometry-on-refresh.patch
0226-qtreeview-column_resize_when_needed.diff
-0227-qdatastream-regression.diff
-0228-qsortfilterproxymodel-invalidate-noscroll.diff
-0230-qtextcontrol-selectnextword.diff
-0233-fix-q3textbrowser-image.diff
0234-fix-mysql-threaded.diff
-0235-qdbus-dispatch-async-timeout.diff
-0236-qtoolbararealayout-restore.diff
+0238-fix-qt-qttabbar-size.diff
+0245-fix-randr-changes-detecting.diff
+0248-fix-qwidget-scroll-slowness.diff
+0249-webkit-stale-frame-pointer.diff
+0254-fix-qgraphicsproxywidget-deletion-crash.diff
+0255-qtreeview-selection-columns-hidden.diff
+0256-fix-recursive-backingstore-sync-crash.diff
+0257-qurl-validate-speedup.diff
+0260-fix-qgraphicswidget-deletionclearFocus.diff
+0261-sync-before-reset-errorhandler.patch
+0262-fix-treeview-animation-crash.diff
# debian patches
01_qmake_for_debian.diff
@@ -37,17 +34,13 @@
14_add_libraries_to_gui_build_where_actually_needed.diff
15_fix_qmake_makefile_generation.diff
16_hide_std_symbols_on_qtwebkit.diff
+17_add_postgresql_8.3_support.diff
20_mips_atomic_ops.diff
-21_qprintdialog_honour_fileprintersadded.diff
-30_webkit-unaligned-access.patch
+30_webkit_unaligned_access.diff
40_alpha_ice.diff
41_disable_opengl_visibility.diff
50_kfreebsd_build_fix.diff
-60_m68k_inotify_fix.diff
70_hppa_ldcw_fix.diff
71_hppa_unaligned_access_fix_458133.diff
-72_generic_arch_atomic_header_fix.diff
-73_from4.4.1_no_AAAA_when_ipv6_disabled.diff
80_hurd_max_path.diff
81_hurd_more_max_path.diff
-90_gcc43.diff