Date: Sunday, April 20, 2014 @ 14:55:34 Author: andyrtr Revision: 211574
upgpkg: libreoffice 4.2.4-0.1 update to 4.2.4rc1 - brings lots of fixes, add an additional fix required for kde4 integration Added: libreoffice/trunk/prevent_KDE_Qt_from_interfering_with_the_session_manager.diff Modified: libreoffice/trunk/PKGBUILD ---------------------------------------------------------------+ PKGBUILD | 17 +- prevent_KDE_Qt_from_interfering_with_the_session_manager.diff | 72 ++++++++++ 2 files changed, 82 insertions(+), 7 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2014-04-20 09:09:39 UTC (rev 211573) +++ PKGBUILD 2014-04-20 12:55:34 UTC (rev 211574) @@ -29,7 +29,7 @@ 'gperf' 'kdelibs' 'gconf' 'gtk3' 'cppunit' 'beanshell2' 'vigra' 'clucene' 'junit' 'libmythes' 'libwpg' 'mesa' 'clucene' 'java-environment' 'postgresql-libs' 'bluez-libs' 'harfbuzz-icu' - 'gdb' 'doxygen' + 'gdb' 'doxygen' 'libatomic_ops' # the runtime dependencies "curl>=7.20.0" "hunspell>=1.2.8" "python>=3.4" 'libwpd>=0.9.2' 'libwps' 'libxaw' "neon>=0.28.6" 'pango' 'nspr' 'libjpeg' 'libxrandr' @@ -86,12 +86,12 @@ ${_additional_source_url}/libmwaw-0.2.0.tar.bz2 ${_additional_source_url}/libfreehand-0.0.0.tar.bz2 ${_additional_source_url}/Firebird-2.5.2.26540-0.tar.bz2 - ${_additional_source_url}/libatomic_ops-7_2d.zip ${_additional_source_url}/libe-book-0.0.3.tar.bz2 ${_additional_source_url}/libabw-0.0.2.tar.bz2 ${_additional_source_url}/language-subtag-registry-2014-03-27.tar.bz2 make-pyuno-work-with-system-wide-module-install.diff - libreoffice-common.sh libreoffice-common.csh) + libreoffice-common.sh libreoffice-common.csh + prevent_KDE_Qt_from_interfering_with_the_session_manager.diff) noextract=(15cb8c0803064faef0c4ddf5bc5ca279-boost_1_54_0.tar.bz2 9e96ed4c1d99c0d14ac03c140f9f346c-icu4c-52_1-src.tgz 185d60944ea767075d27247c3162b3bc-unowinreg.dll @@ -124,7 +124,6 @@ libmwaw-0.2.0.tar.bz2 libfreehand-0.0.0.tar.bz2 Firebird-2.5.2.26540-0.tar.bz2 - libatomic_ops-7_2d.zip libe-book-0.0.3.tar.bz2 libabw-0.0.2.tar.bz2 language-subtag-registry-2014-03-27.tar.bz2) @@ -166,13 +165,13 @@ 'd794625f156a9fb1c53b3f8a8aa13b5e' '496dd00028afcc19f896b01394769043' '21154d2004e025c8a3666625b0357bb5' - 'c0b86562d5aa40761a87134f83e6adcf' '2f1ceaf2ac8752ed278e175447d9b978' '40fa48e03b1e28ae0325cc34b35bc46d' '504af523f5d1a5590bbeb6a4b55e8a97' '07d2bf5ad839a394cca008b3ec6e7bb1' '4195735a80876ae812fca5736b50192a' - 'e7e4b3e70e99e5cba8f8dfcacf3b0d87') + 'e7e4b3e70e99e5cba8f8dfcacf3b0d87' + 'fa2109339289663cb8ea7cf27cc22f4e') prepare() { @@ -193,6 +192,10 @@ # fix not upstreamable pyuno paths - patch taken from Debian patch -Np1 -i ${srcdir}/make-pyuno-work-with-system-wide-module-install.diff + + # fix some startup issues with kde4 integration + # https://bugs.archlinux.org/task/39819 - https://bugs.freedesktop.org/show_bug.cgi?id=77128 + patch -Np1 -i ${srcdir}/prevent_KDE_Qt_from_interfering_with_the_session_manager.diff #use the CFLAGS but remove the LibO overridden ones for i in $CFLAGS; do @@ -267,7 +270,7 @@ --with-system-libetonyek \ --without-system-libfreehand \ --without-system-firebird \ - --without-system-libatomic-ops \ + --with-system-libatomic-ops \ --without-system-libebook \ --without-system-libabw \ --with-system-dicts \ Added: prevent_KDE_Qt_from_interfering_with_the_session_manager.diff =================================================================== --- prevent_KDE_Qt_from_interfering_with_the_session_manager.diff (rev 0) +++ prevent_KDE_Qt_from_interfering_with_the_session_manager.diff 2014-04-20 12:55:34 UTC (rev 211574) @@ -0,0 +1,72 @@ +From 01d128557726134b5da9e9b951e60286eac311a8 Mon Sep 17 00:00:00 2001 +From: Luboš Luňák <l.lu...@collabora.com> +Date: Tue, 25 Mar 2014 12:20:16 +0100 +Subject: [PATCH] prevent KDE/Qt from interfering with the session manager + +I occassionally get lockups in IceProcessMessages() called from QtCore, +I'm actually not exactly sure why, as theoretically two connections +from one app shouldn't be a problem, but since LO does its own +session handling, there's no need to the KDE/Qt code to be involved, +so prevent it from connecting to the session manager altogether. + +Change-Id: Iebe20d4cb5403e5fea8bd5d8c1f69b62d1c2907b +(cherry picked from commit 71f2aff7a56cef4e133abad3c2e447c76c5ee1fe) +--- + +diff --git a/vcl/unx/kde4/KDEXLib.cxx b/vcl/unx/kde4/KDEXLib.cxx +index 820d39a..e4900a7 100644 +--- a/vcl/unx/kde4/KDEXLib.cxx ++++ b/vcl/unx/kde4/KDEXLib.cxx +@@ -166,8 +166,23 @@ + + KCmdLineArgs::init( m_nFakeCmdLineArgs, m_pAppCmdLineArgs, kAboutData ); + ++ // LO does its own session management, so prevent KDE/Qt from interfering ++ // (QApplication::disableSessionManagement(false) wouldn't quite do, ++ // since that still actually connects to the session manager, it just ++ // won't save the application data on session shutdown). ++ char* session_manager = NULL; ++ if( getenv( "SESSION_MANAGER" ) != NULL ) ++ { ++ session_manager = strdup( getenv( "SESSION_MANAGER" )); ++ unsetenv( "SESSION_MANAGER" ); ++ } + m_pApplication = new VCLKDEApplication(); +- kapp->disableSessionManagement(); ++ if( session_manager != NULL ) ++ { ++ setenv( "SESSION_MANAGER", session_manager, 1 ); ++ free( session_manager ); ++ } ++ + KApplication::setQuitOnLastWindowClosed(false); + + #if KDE_HAVE_GLIB +diff --git a/vcl/unx/kde4/VCLKDEApplication.hxx b/vcl/unx/kde4/VCLKDEApplication.hxx +index 412ee34..4ce0b2c 100644 +--- a/vcl/unx/kde4/VCLKDEApplication.hxx ++++ b/vcl/unx/kde4/VCLKDEApplication.hxx +@@ -21,22 +21,14 @@ + + #define Region QtXRegion + +-#include <QSessionManager> +- + #include <kapplication.h> + + #undef Region + +-/* #i59042# override KApplications method for session management +- * since it will interfere badly with our own. +- */ + class VCLKDEApplication : public KApplication + { + public: + VCLKDEApplication(); +- +- virtual void commitData(QSessionManager&) {}; +- + virtual bool x11EventFilter(XEvent* event); + }; + +