From 1bc83bd99f473ad5cb9ba36795ccfc8c7e3bf63b Mon Sep 17 00:00:00 2001
From: Michael Hanson <hansonorders@verizon.net>
Date: Fri, 5 Nov 2010 02:54:26 +0000
Subject: qt: upgrade to 4.7.0

---
 abs/core/qt/.qmake.vars                            |  6 +++
 abs/core/qt/PKGBUILD                               | 56 +++++++++++++---------
 abs/core/qt/__changelog                            |  2 +
 abs/core/qt/ca-certificates.patch                  | 25 ----------
 abs/core/qt/fix-multisampling-with-ati-card.patch  | 25 ++++++++++
 .../qt/fix-scroll-when-last-item-is-removed.patch  | 38 +++++++++++++++
 .../qt/qt-webkit-4.6.3-flash-plugin-segfault.patch | 43 -----------------
 7 files changed, 104 insertions(+), 91 deletions(-)
 create mode 100644 abs/core/qt/.qmake.vars
 delete mode 100644 abs/core/qt/ca-certificates.patch
 create mode 100644 abs/core/qt/fix-multisampling-with-ati-card.patch
 create mode 100644 abs/core/qt/fix-scroll-when-last-item-is-removed.patch
 delete mode 100644 abs/core/qt/qt-webkit-4.6.3-flash-plugin-segfault.patch

diff --git a/abs/core/qt/.qmake.vars b/abs/core/qt/.qmake.vars
new file mode 100644
index 0000000..74936a5
--- /dev/null
+++ b/abs/core/qt/.qmake.vars
@@ -0,0 +1,6 @@
+styles += cde mac motif plastique cleanlooks windows
+decorations += default windows styled
+mouse-drivers += pc
+gfx-drivers += linuxfb
+mouse-drivers += linuxtp
+kbd-drivers += tty
diff --git a/abs/core/qt/PKGBUILD b/abs/core/qt/PKGBUILD
index 75e4737..e1ee827 100644
--- a/abs/core/qt/PKGBUILD
+++ b/abs/core/qt/PKGBUILD
@@ -1,23 +1,31 @@
-# $Id: PKGBUILD 82062 2010-06-08 11:58:32Z pierre $
-# Maintainer: Pierre Schmitz <pierre@archlinux.de>
+# $Id: PKGBUILD 94734 2010-10-10 14:30:15Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
 
 pkgname=qt
-pkgver=4.6.3
-pkgrel=2
+pkgver=4.7.0
+pkgrel=4
 pkgdesc='A cross-platform application and UI framework'
 arch=('i686' 'x86_64')
 url='http://qt.nokia.com/'
 license=('GPL3' 'LGPL')
-depends=('libpng' 'fontconfig' 'libtiff' 'libmng' 'sqlite3' 'xdg-utils' 'ca-certificates'
-         'hicolor-icon-theme' 'alsa-lib' 'glib2' 'dbus' 'libxrender' 'libgl' 'libsm')
-optdepends=('postgresql-libs' 'libmysqlclient' 'unixodbc')
-makedepends=('mesa' 'inputproto' 'postgresql-libs' 'mysql' 'unixodbc' 'libxfixes' 'gtk2')
-install=qt.install
+depends=('libtiff' 'libpng' 'libmng' 'sqlite3' 'ca-certificates' 'glib2' 'dbus'
+	'fontconfig' 'libgl' 'libsm' 'libxrandr' 'libxv' 'libxi' 'alsa-lib'
+	'xdg-utils' 'hicolor-icon-theme')
+optdepends=('postgresql-libs: PostgreSQL driver'
+	'libmysqlclient: MySQL driver'
+	'unixodbc: ODBC driver'
+	'libxinerama: Xinerama support'
+	'libxcursor: Xcursor support'
+	'libxfixes: Xfixes support')
+makedepends=('mesa' 'postgresql-libs' 'mysql' 'unixodbc' 'gtk2')
+install="${pkgname}.install"
 options=('!libtool')
 _pkgfqn="qt-everywhere-opensource-src-${pkgver}"
 source=("ftp://ftp.qt.nokia.com/qt/source/${_pkgfqn}.tar.gz"
         'assistant.desktop' 'designer.desktop' 'linguist.desktop' 'qtconfig.desktop'
-        'ca-certificates.patch' 'qt-webkit-4.6.3-flash-plugin-segfault.patch')
+        'fix-scroll-when-last-item-is-removed.patch'
+        'fix-multisampling-with-ati-card.patch')
 
 build() {
 	unset QMAKESPEC
@@ -27,22 +35,22 @@ build() {
 
 	cd $srcdir/$_pkgfqn
 
-	# see http://cvs.fedoraproject.org/viewvc/rpms/qt/devel/
-	# use system ssl cert bundle
-	patch -p1 -i $srcdir/ca-certificates.patch || return 1
-	patch -p0 < $srcdir/qt-webkit-4.6.3-flash-plugin-segfault.patch || return 1
+	# Already fixed in 4.7.1
+	patch -Np1 -i ${srcdir}/fix-scroll-when-last-item-is-removed.patch
+	patch -Np1 -i ${srcdir}/fix-multisampling-with-ati-card.patch
 
 	sed -i "s|-O2|$CXXFLAGS|" mkspecs/common/g++.conf
 	sed -i "/^QMAKE_RPATH/s| -Wl,-rpath,||g" mkspecs/common/g++.conf
 	sed -i "/^QMAKE_LFLAGS\s/s|+=|+= $LDFLAGS|g" mkspecs/common/g++.conf
 
-	./configure -confirm-license -opensource \
+	./configure -v -confirm-license -opensource \
 		-prefix /usr \
-		-sysconfdir /etc \
+		-docdir /usr/share/doc/qt \
 		-plugindir /usr/lib/qt/plugins \
-		-translationdir /usr/share/qt/translations \
+		-importdir /usr/lib/qt/imports \
 		-datadir /usr/share/qt \
-		-docdir /usr/share/doc/qt \
+		-translationdir /usr/share/qt/translations \
+		-sysconfdir /etc \
 		-examplesdir /usr/share/doc/qt/examples \
 		-demosdir /usr/share/doc/qt/demos \
 		-largefile \
@@ -53,22 +61,24 @@ build() {
 		-no-phonon-backend \
 		-svg \
 		-webkit \
+		-script \
 		-scripttools \
 		-system-zlib \
 		-system-libtiff \
 		-system-libpng \
 		-system-libmng \
 		-system-libjpeg \
-		-openssl-linked \
 		-nomake demos \
 		-nomake examples \
 		-nomake docs \
 		-no-rpath \
+                -no-cups \
+		-openssl-linked \
 		-silent \
 		-optimized-qmake \
 		-dbus \
-		-no-separate-debug-info \
 		-reduce-relocations \
+		-no-separate-debug-info \
 		-gtkstyle \
 		-opengl \
 		-no-openvg \
@@ -101,10 +111,10 @@ package() {
 	find ${pkgdir}/usr/lib -type f -name '*.prl' \
 		-exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d;s/\(QMAKE_PRL_LIBS =\).*/\1/' {} \;
 }
-md5sums=('5c69f16d452b0bb3d44bc3c10556c072'
+md5sums=('3a2f25b9b115037277f4fb759194a7a5'
          'a445c6917086d80f1cfc1e40cb6b0132'
          'd457f0a0ad68a3861c3cadefe3b42ded'
          '668331d9798a0e2b94381efb7be4c513'
          'c29f2993d6a0f73d756d2fa36e130e1c'
-         'd5c4cad7af93f1d736d4569a207bd739'
-         '17382f5532888268bb50d1ab47e5fa19')
+         'ef20c34afc5be5ed62f2935be66d9402'
+         'b2e0f134bbb848ebef41134a45a36ee9')
diff --git a/abs/core/qt/__changelog b/abs/core/qt/__changelog
index 86af276..d92474d 100644
--- a/abs/core/qt/__changelog
+++ b/abs/core/qt/__changelog
@@ -1,2 +1,4 @@
 remove cups support
 added QtWebKit_Flash.patch to fix crash with Flash 10.1 and webkit browsers like mythbrowser. http://trac.webkit.org/changeset/61307  This shouldn't be needed in qt versions 4.6.4 or later.
+
+upgrade to 4.7.0
diff --git a/abs/core/qt/ca-certificates.patch b/abs/core/qt/ca-certificates.patch
deleted file mode 100644
index 02ebbad..0000000
--- a/abs/core/qt/ca-certificates.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-diff -up qt-x11-opensource-src-4.5.3/src/network/ssl/qsslsocket_openssl.cpp.system_ca_certificates qt-x11-opensource-src-4.5.3/src/network/ssl/qsslsocket_openssl.cpp
---- qt-x11-opensource-src-4.5.3/src/network/ssl/qsslsocket_openssl.cpp.system_ca_certificates	2009-09-29 06:01:38.000000000 -0500
-+++ qt-x11-opensource-src-4.5.3/src/network/ssl/qsslsocket_openssl.cpp	2009-10-02 11:20:10.674662746 -0500
-@@ -482,8 +482,20 @@ void QSslSocketPrivate::resetDefaultCiph
- 
- QList<QSslCertificate> QSslSocketPrivate::systemCaCertificates()
- {
-+
-+    QFile caBundle;
-+
-+#ifdef Q_OS_UNIX
-+    // Check known locations for the system's default bundle.  ### On Windows,
-+    // we should use CAPI to find the bundle, and not rely on default unix
-+    // locations.
-+    caBundle.setFileName(QLatin1String("/etc/ssl/certs/ca-certificates.crt"));
-+    if (caBundle.open(QIODevice::ReadOnly | QIODevice::Text))
-+       return QSslCertificate::fromDevice(&caBundle);
-+#endif
-+
-     // Qt provides a default bundle of certificates
--    QFile caBundle(QLatin1String(":/trolltech/network/ssl/qt-ca-bundle.crt"));
-+    caBundle.setFileName(QLatin1String(":/trolltech/network/ssl/qt-ca-bundle.crt"));
-     if (caBundle.open(QIODevice::ReadOnly | QIODevice::Text))
-         return QSslCertificate::fromDevice(&caBundle);
- 
diff --git a/abs/core/qt/fix-multisampling-with-ati-card.patch b/abs/core/qt/fix-multisampling-with-ati-card.patch
new file mode 100644
index 0000000..c215c2c
--- /dev/null
+++ b/abs/core/qt/fix-multisampling-with-ati-card.patch
@@ -0,0 +1,25 @@
+From e48e50c460434c451c67403390d98f7418c77cce Mon Sep 17 00:00:00 2001
+From: Jonathan Liu <net147@gmail.com>
+Date: Wed, 25 Aug 2010 14:07:40 +1000
+Subject: [PATCH] Fix OpenGL multisampling for some graphics drivers
+
+---
+ src/opengl/qgl_win.cpp |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/src/opengl/qgl_win.cpp b/src/opengl/qgl_win.cpp
+index 5ab944a..8eb6177 100644
+--- a/src/opengl/qgl_win.cpp
++++ b/src/opengl/qgl_win.cpp
+@@ -1042,7 +1042,7 @@ int QGLContext::choosePixelFormat(void* dummyPfd, HDC pdc)
+         iAttributes[i++] = WGL_DRAW_TO_WINDOW_ARB;
+         iAttributes[i++] = TRUE;
+         iAttributes[i++] = WGL_COLOR_BITS_ARB;
+-        iAttributes[i++] = 32;
++        iAttributes[i++] = 24;
+         iAttributes[i++] = WGL_DOUBLE_BUFFER_ARB;
+         iAttributes[i++] = d->glFormat.doubleBuffer();
+         if (d->glFormat.stereo()) {
+-- 
+1.7.2.1
+
diff --git a/abs/core/qt/fix-scroll-when-last-item-is-removed.patch b/abs/core/qt/fix-scroll-when-last-item-is-removed.patch
new file mode 100644
index 0000000..8656702
--- /dev/null
+++ b/abs/core/qt/fix-scroll-when-last-item-is-removed.patch
@@ -0,0 +1,38 @@
+From 6da6b7099d4e0b49329793e4b90703ec3d868048 Mon Sep 17 00:00:00 2001
+From: Frank Reininghaus <frank78ac@googlemail.com>
+Date: Wed, 22 Sep 2010 10:19:59 +0200
+Subject: [PATCH] QTreeView: do not scroll to top if last item is removed
+
+When the last item is the current item and is removed,
+QTreeViewPrivate::updateScrollBars() is called after QTreeViewPrivate's
+viewItems member is cleared. This commit makes sure that viewItems is
+restored by calling QTreeView::doItemsLayout() in this case, preventing
+that the scroll bar range is set to zero temporarily and the view is
+scrolled to the top unexpectedly (this was a regression in 4.7.0:
+QTBUG-13567).
+
+Merge-request: 2481
+Reviewed-by: Olivier Goffart <olivier.goffart@nokia.com>
+---
+ src/gui/itemviews/qtreeview.cpp        |    4 ++++
+ tests/auto/qtreeview/tst_qtreeview.cpp |   22 ++++++++++++++++++++++
+ 2 files changed, 26 insertions(+), 0 deletions(-)
+
+diff --git a/src/gui/itemviews/qtreeview.cpp b/src/gui/itemviews/qtreeview.cpp
+index b797776..40b51fe 100644
+--- a/src/gui/itemviews/qtreeview.cpp
++++ b/src/gui/itemviews/qtreeview.cpp
+@@ -3435,6 +3435,10 @@ void QTreeViewPrivate::updateScrollBars()
+     if (!viewportSize.isValid())
+         viewportSize = QSize(0, 0);
+ 
++    if (viewItems.isEmpty()) {
++        q->doItemsLayout();
++    }
++
+     int itemsInViewport = 0;
+     if (uniformRowHeights) {
+         if (defaultItemHeight <= 0)
+-- 
+1.6.1
+
diff --git a/abs/core/qt/qt-webkit-4.6.3-flash-plugin-segfault.patch b/abs/core/qt/qt-webkit-4.6.3-flash-plugin-segfault.patch
deleted file mode 100644
index 6fc87ca..0000000
--- a/abs/core/qt/qt-webkit-4.6.3-flash-plugin-segfault.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-This patch fixes WebKit Bug 40567: [Qt] QtWebKit crashes while initializing
-flash plugin 10.1.53.64...
-https://bugs.webkit.org/show_bug.cgi?id=40567
-
---- src/3rdparty/webkit/WebCore/plugins/qt/PluginPackageQt.cpp
-+++ src/3rdparty/webkit/WebCore/plugins/qt/PluginPackageQt.cpp
-@@ -35,4 +35,6 @@
- 
- namespace WebCore {
-+
-+typedef void gtkInitFunc(int *argc, char ***argv);
- 
- bool PluginPackage::fetchInfo()
-@@ -110,4 +112,5 @@
-     NP_InitializeFuncPtr NP_Initialize;
-     NPError npErr;
-+    gtkInitFunc* gtkInit;
- 
-     NP_Initialize = (NP_InitializeFuncPtr)m_module->resolve("NP_Initialize");
-@@ -126,4 +129,24 @@
-         // It does so in NP_Initialize with a null instance, therefore it is done this way:
-         m_browserFuncs.getvalue = staticPluginQuirkRequiresGtkToolKit_NPN_GetValue;
-+    }
-+
-+    // WORKAROUND: Prevent gtk based plugin crashes such as BR# 40567 by
-+    // explicitly forcing the initializing of Gtk, i.e. calling gtk_init,
-+    // whenver the symbol is present in the plugin library loaded above.
-+    // Note that this workaround is based on code from the NSPluginClass ctor
-+    // in KDE's kdebase/apps/nsplugins/viewer/nsplugin.cpp file.
-+    gtkInit = (gtkInitFunc*)m_module->resolve("gtk_init");
-+    if (gtkInit) {
-+        // Prevent gtk_init() from replacing the X error handlers, since the Gtk
-+        // handlers abort when they receive an X error, thus killing the viewer.
-+#ifdef Q_WS_X11
-+        int (*old_error_handler)(Display*, XErrorEvent*) = XSetErrorHandler(0);
-+        int (*old_io_error_handler)(Display*) = XSetIOErrorHandler(0);
-+#endif
-+        gtkInit(0, 0);
-+#ifdef Q_WS_X11
-+        XSetErrorHandler(old_error_handler);
-+        XSetIOErrorHandler(old_io_error_handler);
-+#endif
-     }
-- 
cgit v0.12