From 9b15f4050d73e78c5c8bd070692753cc268e3238 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 4 Sep 2010 22:54:58 -0700
Subject: qt:Bumped/Updated for LinHES 7.

---
 abs/core-testing/qt/PKGBUILD                       | 103 +++++++++------------
 abs/core-testing/qt/QtWebKit_Flash.patch           |  48 ----------
 abs/core-testing/qt/assistant.desktop              |   2 +-
 abs/core-testing/qt/ca-certificates.patch          |  25 +++++
 abs/core-testing/qt/designer.desktop               |   2 +-
 abs/core-testing/qt/linguist.desktop               |   2 +-
 abs/core-testing/qt/qdoc3.patch                    |  25 -----
 .../qt/qt-webkit-4.6.3-flash-plugin-segfault.patch |  43 +++++++++
 abs/core-testing/qt/qt.install                     |  11 +++
 abs/core-testing/qt/qtconfig.desktop               |   2 +-
 10 files changed, 129 insertions(+), 134 deletions(-)
 mode change 100755 => 100644 abs/core-testing/qt/PKGBUILD
 delete mode 100644 abs/core-testing/qt/QtWebKit_Flash.patch
 create mode 100644 abs/core-testing/qt/ca-certificates.patch
 delete mode 100644 abs/core-testing/qt/qdoc3.patch
 create mode 100644 abs/core-testing/qt/qt-webkit-4.6.3-flash-plugin-segfault.patch
 create mode 100644 abs/core-testing/qt/qt.install

diff --git a/abs/core-testing/qt/PKGBUILD b/abs/core-testing/qt/PKGBUILD
old mode 100755
new mode 100644
index e315180..75e4737
--- a/abs/core-testing/qt/PKGBUILD
+++ b/abs/core-testing/qt/PKGBUILD
@@ -1,43 +1,23 @@
-# $Id$
+# $Id: PKGBUILD 82062 2010-06-08 11:58:32Z pierre $
 # Maintainer: Pierre Schmitz <pierre@archlinux.de>
 
 pkgname=qt
-pkgver=4.5.2
-pkgrel=5
-_kdeqtver=2d1727e396d5dca24ae0fb6a45d35ffc1abd0c12
+pkgver=4.6.3
+pkgrel=2
 pkgdesc='A cross-platform application and UI framework'
 arch=('i686' 'x86_64')
-url='http://www.qt.nokia.com/'
+url='http://qt.nokia.com/'
 license=('GPL3' 'LGPL')
-depends=('libpng' 'mesa' 'fontconfig' 'libtiff>=3.8.2-5' 'libmng>=1.0.10-2' 'sqlite3'
-         'libxrandr' 'glib2' 'libxi' 'dbus' 'libxcursor' 'libxinerama' 'libxrender')
+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=('inputproto' 'postgresql-libs' 'mysql' 'unixodbc' 'libxfixes' 'gtk2')
-provides=("qt4=${pkgver}")
-replaces=('qt4')
-conflicts=('qt4')
+makedepends=('mesa' 'inputproto' 'postgresql-libs' 'mysql' 'unixodbc' 'libxfixes' 'gtk2')
+install=qt.install
 options=('!libtool')
-_pkgfqn="qt-x11-opensource-src-${pkgver}"
-source=("http://get.qt.nokia.com/qt/source/${_pkgfqn}.tar.bz2"
-        "ftp://ftp.archlinux.org/other/kde-qt/kde-qt-patches-${_kdeqtver}.tar.bz2"
+_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'
-        'qdoc3.patch' 'QtWebKit_Flash.patch')
-
-_create-kdeqt-patches() {
-	local codir=$(mktemp -d)
-	mkdir -p "${codir}/kde-qt"
-	git clone git://gitorious.org/+kde-developers/qt/kde-qt.git "${codir}/kde-qt"
-	pushd "${codir}/kde-qt"
-	local kdeqtver=$(git --no-pager show --format='%H' "${pkgver}-patched")
-	mkdir "../kde-qt-patches-${kdeqtver}"
-	git format-patch -k "v${pkgver}..${pkgver}-patched" -o "../kde-qt-patches-${kdeqtver}"
-	popd
-	pushd "${codir}"
-	bsdtar -cjf "kde-qt-patches-${kdeqtver}.tar.bz2" kde-qt-patches-${kdeqtver}
-	popd
-	mv "${codir}/kde-qt-patches-${kdeqtver}.tar.bz2" .
-	rm -rf "${codir}"
-}
+        'ca-certificates.patch' 'qt-webkit-4.6.3-flash-plugin-segfault.patch')
 
 build() {
 	unset QMAKESPEC
@@ -46,16 +26,15 @@ build() {
 	export LD_LIBRARY_PATH=${QT4DIR}/lib:${LD_LIBRARY_PATH}
 
 	cd $srcdir/$_pkgfqn
-	for i in $srcdir/kde-qt-patches-${_kdeqtver}/*; do
-		echo "applying $i"
-		patch -p1 -i $i || return 1
-	done
 
-	patch -p0 -i $srcdir/qdoc3.patch
-	patch < $srcdir/QtWebKit_Flash.patch ${srcdir}/${_pkgfqn}/src/3rdparty/webkit/WebCore/plugins/qt/PluginPackageQt.cpp || return 1
+	# 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
 
 	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 \
 		-prefix /usr \
@@ -71,6 +50,7 @@ build() {
 		-system-sqlite \
 		-xmlpatterns \
 		-no-phonon \
+		-no-phonon-backend \
 		-svg \
 		-webkit \
 		-scripttools \
@@ -87,35 +67,44 @@ build() {
 		-silent \
 		-optimized-qmake \
 		-dbus \
-		-reduce-relocations \
 		-no-separate-debug-info \
+		-reduce-relocations \
 		-gtkstyle \
 		-opengl \
+		-no-openvg \
 		-glib
-
 	make
+}
+
+package() {
+	cd $srcdir/$_pkgfqn
 	make INSTALL_ROOT=$pkgdir install
 
-	install -D -m644 tools/assistant/tools/assistant/images/assistant.png ${pkgdir}/usr/share/pixmaps/assistant.png
-	install -D -m644 tools/linguist/linguist/images/appicon.png ${pkgdir}/usr/share/pixmaps/linguist.png
-	install -D -m644 tools/designer/src/designer/images/designer.png ${pkgdir}/usr/share/pixmaps/designer.png
-	install -D -m644 src/gui/dialogs/images/qtlogo-64.png ${pkgdir}/usr/share/pixmaps/qtlogo.png
+	# install missing icons and desktop files
+	for icon in tools/linguist/linguist/images/icons/linguist-*-32.png ; do
+		size=$(echo $(basename ${icon}) | cut -d- -f2)
+		install -p -D -m644 ${icon} ${pkgdir}/usr/share/icons/hicolor/${size}x${size}/apps/linguist.png
+	done
+	install -p -D -m644 src/gui/dialogs/images/qtlogo-64.png ${pkgdir}/usr/share/icons/hicolor/64x64/apps/qtlogo.png
+	install -p -D -m644 tools/assistant/tools/assistant/images/assistant.png ${pkgdir}/usr/share/icons/hicolor/32x32/apps/assistant.png
+	install -p -D -m644 tools/designer/src/designer/images/designer.png ${pkgdir}/usr/share/icons/hicolor/128x128/apps/designer.png
 	install -d ${pkgdir}/usr/share/applications
 	install -m644 ${srcdir}/{linguist,designer,assistant,qtconfig}.desktop ${pkgdir}/usr/share/applications/
+
+	# install license addition
 	install -D -m644 LGPL_EXCEPTION.txt ${pkgdir}/usr/share/licenses/qt/LGPL_EXCEPTION.txt
 
-	# cleanup and path fixes
-	find $pkgdir/usr/lib -type f -name '*prl' -print -exec sed -i -e "/^QMAKE_PRL_BUILD_DIR/d" {} \;
-	sed -i -e "s|-L$srcdir/${_pkgfqn}/lib||g" $pkgdir/usr/lib/pkgconfig/*.pc
-	sed -i -e "s|$srcdir/${_pkgfqn}/bin/moc|/usr/bin/moc|g" $pkgdir/usr/lib/pkgconfig/*.pc
-	sed -i -e "s|$srcdir/${_pkgfqn}/bin/uic|/usr/bin/uic|g" $pkgdir/usr/lib/pkgconfig/*.pc
+	# Fix wrong path in pkgconfig files
+	find ${pkgdir}/usr/lib/pkgconfig -type f -name '*.pc' \
+		-exec perl -pi -e "s, -L${srcdir}/?\S+,,g" {} \;
+	# Fix wrong path in prl files
+	find ${pkgdir}/usr/lib -type f -name '*.prl' \
+		-exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d;s/\(QMAKE_PRL_LIBS =\).*/\1/' {} \;
 }
-
-md5sums=('28a7e8ac9805a6f614d2a27ee1a6ac9d'
-         '4b333add3031f59538629b35858178d9'
-         'b352b4b70faba2571af3fce5d119580a'
-         '491a96682faa03407f768a53cca71db5'
-         'cda7ed7e132689991dc2968a0043b4b0'
-         '717669b728a0a795217d2f52969e454c'
-         '9c0a0db3569e889a54a6cddcd55c538c'
-         '0e2f5e43ed9dba32816fd4142b021762')
+md5sums=('5c69f16d452b0bb3d44bc3c10556c072'
+         'a445c6917086d80f1cfc1e40cb6b0132'
+         'd457f0a0ad68a3861c3cadefe3b42ded'
+         '668331d9798a0e2b94381efb7be4c513'
+         'c29f2993d6a0f73d756d2fa36e130e1c'
+         'd5c4cad7af93f1d736d4569a207bd739'
+         '17382f5532888268bb50d1ab47e5fa19')
diff --git a/abs/core-testing/qt/QtWebKit_Flash.patch b/abs/core-testing/qt/QtWebKit_Flash.patch
deleted file mode 100644
index 102f73c..0000000
--- a/abs/core-testing/qt/QtWebKit_Flash.patch
+++ /dev/null
@@ -1,48 +0,0 @@
---- PluginPackageQt.cpp.orig	2010-06-30 21:29:47.178707288 +0000
-+++ PluginPackageQt.cpp	2010-06-30 21:35:40.185441603 +0000
-@@ -36,6 +36,8 @@
- 
- namespace WebCore {
- 
-+typedef void gtkInitFunc(int *argc, char ***argv); 
-+
- bool PluginPackage::fetchInfo()
- {
-     if (!load())
-@@ -100,7 +102,8 @@
- 
-     NP_InitializeFuncPtr NP_Initialize;
-     NPError npErr;
--
-+    gtkInitFunc* gtkInit;
-+    
-     NP_Initialize = (NP_InitializeFuncPtr)m_module->resolve("NP_Initialize");
-     m_NPP_Shutdown = (NPP_ShutdownProcPtr)m_module->resolve("NP_Shutdown");
- 
-@@ -157,6 +160,26 @@
-     m_browserFuncs.enumerate = _NPN_Enumerate;
-     m_browserFuncs.construct = _NPN_Construct;
- 
-+    // 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
-+}
-+
- #if defined(XP_UNIX)
-     npErr = NP_Initialize(&m_browserFuncs, &m_pluginFuncs);
- #else
diff --git a/abs/core-testing/qt/assistant.desktop b/abs/core-testing/qt/assistant.desktop
index 48105b9..1b9f0a7 100644
--- a/abs/core-testing/qt/assistant.desktop
+++ b/abs/core-testing/qt/assistant.desktop
@@ -2,7 +2,7 @@
 Exec=/usr/bin/assistant
 Name=Qt Assistant
 GenericName=Qt Document Browser
-Icon=/usr/share/pixmaps/assistant.png
+Icon=assistant
 Terminal=false
 Type=Application
 Categories=Qt;Development;Documentation
diff --git a/abs/core-testing/qt/ca-certificates.patch b/abs/core-testing/qt/ca-certificates.patch
new file mode 100644
index 0000000..02ebbad
--- /dev/null
+++ b/abs/core-testing/qt/ca-certificates.patch
@@ -0,0 +1,25 @@
+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-testing/qt/designer.desktop b/abs/core-testing/qt/designer.desktop
index fefe095..8f36273 100644
--- a/abs/core-testing/qt/designer.desktop
+++ b/abs/core-testing/qt/designer.desktop
@@ -3,7 +3,7 @@ Exec=/usr/bin/designer
 Name=Qt Designer
 GenericName=Interface Designer
 MimeType=application/x-designer
-Icon=/usr/share/pixmaps/designer.png
+Icon=designer
 Terminal=false
 Type=Application
 Categories=Qt;Development;GUIDesigner
diff --git a/abs/core-testing/qt/linguist.desktop b/abs/core-testing/qt/linguist.desktop
index 04519bf..94e92c1 100644
--- a/abs/core-testing/qt/linguist.desktop
+++ b/abs/core-testing/qt/linguist.desktop
@@ -5,5 +5,5 @@ GenericName=Translation Tool
 MimeType=application/x-linguist
 Terminal=false
 Type=Application
-Icon=/usr/share/pixmaps/linguist.png
+Icon=linguist
 Categories=Qt;Development;Translation
diff --git a/abs/core-testing/qt/qdoc3.patch b/abs/core-testing/qt/qdoc3.patch
deleted file mode 100644
index c967b6e..0000000
--- a/abs/core-testing/qt/qdoc3.patch
+++ /dev/null
@@ -1,25 +0,0 @@
---- tools/qdoc3/qdoc3.pro       2009-06-25 17:34:42.000000000 +0200
-+++ tools/qdoc3/qdoc3.pro.new   2009-06-25 17:35:42.000000000 +0200
-@@ -8,6 +8,11 @@
-     CONFIG -= build_all
-     CONFIG += release
- }
-+
-+TARGET= qdoc3
-+target.path = $$[QT_INSTALL_BINS]
-+INSTALLS += target
-+
- mac:CONFIG -= app_bundle
- HEADERS += apigenerator.h \
-            archiveextractor.h \
-diff -up qt-x11-opensource-src-4.5.0/tools/tools.pro.qdoc3 qt-x11-opensource-src-4.5.0/tools/tools.pro
---- tools/tools.pro.qdoc3	2009-02-25 15:09:27.000000000 -0600
-+++ tools/tools.pro	2009-03-04 09:44:18.000000000 -0600
-@@ -13,6 +13,7 @@ no-png {
-          SUBDIRS += designer
-      }
-      SUBDIRS     += linguist
-+     SUBDIRS     += qdoc3
-      wince*: SUBDIRS = qtestlib designer
-      unix:!mac:!embedded:contains(QT_CONFIG, qt3support):SUBDIRS += qtconfig
-      win32:!wince*:!contains(QT_EDITION, OpenSource|Console):SUBDIRS += activeqt
diff --git a/abs/core-testing/qt/qt-webkit-4.6.3-flash-plugin-segfault.patch b/abs/core-testing/qt/qt-webkit-4.6.3-flash-plugin-segfault.patch
new file mode 100644
index 0000000..6fc87ca
--- /dev/null
+++ b/abs/core-testing/qt/qt-webkit-4.6.3-flash-plugin-segfault.patch
@@ -0,0 +1,43 @@
+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
+     }
diff --git a/abs/core-testing/qt/qt.install b/abs/core-testing/qt/qt.install
new file mode 100644
index 0000000..e70c054
--- /dev/null
+++ b/abs/core-testing/qt/qt.install
@@ -0,0 +1,11 @@
+post_install() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+	post_install
+}
diff --git a/abs/core-testing/qt/qtconfig.desktop b/abs/core-testing/qt/qtconfig.desktop
index 633d921..7c221e5 100644
--- a/abs/core-testing/qt/qtconfig.desktop
+++ b/abs/core-testing/qt/qtconfig.desktop
@@ -2,7 +2,7 @@
 Name=Qt Config 
 Comment=Configure Qt behavior, styles, fonts
 Exec=/usr/bin/qtconfig
-Icon=/usr/share/pixmaps/qtlogo
+Icon=qtlogo
 Terminal=false
 Type=Application
 Categories=Qt;Settings;
-- 
cgit v0.12

