From 9b15f4050d73e78c5c8bd070692753cc268e3238 Mon Sep 17 00:00:00 2001 From: Cecil Hugh Watson 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 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 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