author | Felix Yan
<felixonmars@archlinux.org> 2015-02-04 10:22:52 UTC |
committer | Felix Yan
<felixonmars@archlinux.org> 2015-02-04 10:22:52 UTC |
parent | 275e050d61a125d1e5a8353d2d2f627216af412f |
PKGBUILD | +9 | -3 |
fix-dolphin-hang.patch | +76 | -0 |
diff --git a/PKGBUILD b/PKGBUILD index fd7307c..93b8ab7 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -5,17 +5,23 @@ pkgbase=kate pkgname=('kwrite' 'kate') pkgver=14.12.2 -pkgrel=1 +pkgrel=2 arch=('i686' 'x86_64') license=('GPL' 'LGPL' 'FDL') depends=('knewstuff' 'ktexteditor' 'threadweaver' 'kded' 'kitemmodels') makedepends=('extra-cmake-modules' 'kdoctools' 'python' 'plasma-framework') optdepends=('kio-extras: extra protocols support (sftp, fish and more)') -source=("http://download.kde.org/stable/applications/${pkgver}/src/${pkgbase}-${pkgver}.tar.xz") -sha1sums=('bc3a5b1213fbe96756261daadf9ff8f94e74fd9c') +source=("http://download.kde.org/stable/applications/${pkgver}/src/${pkgbase}-${pkgver}.tar.xz" + fix-dolphin-hang.patch) +sha1sums=('bc3a5b1213fbe96756261daadf9ff8f94e74fd9c' + '4b15188df9d6cce000022f6f7969bf00ebe702af') prepare() { mkdir build + + # FS#43513 / https://bugs.kde.org/show_bug.cgi?id=339094 + cd ${pkgbase}-${pkgver} + patch -p1 -i ../fix-dolphin-hang.patch } build() { diff --git a/fix-dolphin-hang.patch b/fix-dolphin-hang.patch new file mode 100644 index 0000000..5e9f3ac --- /dev/null +++ b/fix-dolphin-hang.patch @@ -0,0 +1,76 @@ +diff -rup kate-14.12.1/CMakeLists.txt kate/CMakeLists.txt +--- kate-14.12.1/CMakeLists.txt 2014-12-09 19:35:28.000000000 +0800 ++++ kate/CMakeLists.txt 2015-01-25 17:16:16.570425122 +0800 +@@ -47,6 +47,12 @@ find_package(KF5 REQUIRED COMPONENTS + XmlGui + ) + ++find_package(X11) ++set(HAVE_X11 ${X11_FOUND}) ++if (HAVE_X11) ++ find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED X11Extras) ++endif() ++ + # use sane compile flags + add_definitions( + -DQT_USE_QSTRINGBUILDER +diff -rup kate-14.12.1/config.h.cmake kate/config.h.cmake +--- kate-14.12.1/config.h.cmake 2014-12-09 19:35:28.000000000 +0800 ++++ kate/config.h.cmake 2015-01-25 17:08:36.686329148 +0800 +@@ -8,4 +8,6 @@ + #cmakedefine HAVE_CTERMID 1 + #cmakedefine KActivities_FOUND 1 + ++#cmakedefine01 HAVE_X11 ++ + #endif +diff -rup kate-14.12.1/kate/src/kateapp.cpp kate/kate/src/kateapp.cpp +--- kate-14.12.1/kate/src/kateapp.cpp 2014-12-09 19:35:28.000000000 +0800 ++++ kate/kate/src/kateapp.cpp 2015-01-25 17:23:45.624284162 +0800 +@@ -151,9 +151,9 @@ bool KateApp::startupKate() + } else if (!m_args.isSet(QStringLiteral("stdin")) && (m_args.positionalArguments().count() == 0)) { // only start session if no files specified + // let the user choose session if possible + if (!sessionManager()->chooseSession()) { +-#ifdef Q_WS_X11 ++#ifdef HAVE_X11 + // we will exit kate now, notify the rest of the world we are done +- KStartupInfo::appStarted(startupId()); ++ KStartupInfo::appStarted(KStartupInfo::startupId()); + #endif + return false; + } +@@ -167,8 +167,8 @@ bool KateApp::startupKate() + } + + // notify about start +-#ifdef Q_WS_X11 +- KStartupInfo::setNewStartupId(activeKateMainWindow(), startupId()); ++#ifdef HAVE_X11 ++ KStartupInfo::setNewStartupId(activeKateMainWindow(), KStartupInfo::startupId()); + #endif + + QTextCodec *codec = m_args.isSet(QStringLiteral("encoding")) ? QTextCodec::codecForName(m_args.value(QStringLiteral("encoding")).toUtf8()) : 0; +diff -rup kate-14.12.1/kate/src/main.cpp kate/kate/src/main.cpp +--- kate-14.12.1/kate/src/main.cpp 2014-12-09 19:35:28.000000000 +0800 ++++ kate/kate/src/main.cpp 2015-01-25 20:34:33.613003810 +0800 +@@ -25,6 +25,7 @@ + + #include <KAboutData> + #include <KLocalizedString> ++#include <KStartupInfo> + #include <kdbusservice.h> + + #include <QByteArray> +@@ -385,7 +386,11 @@ extern "C" Q_DECL_EXPORT int kdemain(int + QDBusConnection::sessionBus().connect(serviceName, QStringLiteral("/MainApplication"), QStringLiteral("org.kde.Kate.Application"), QStringLiteral("documentClosed"), waiter, SLOT(documentClosed(QString))); + } + +- #ifdef Q_WS_X11 ++ // KToolInvocation (and KRun) will wait until we register on dbus ++ KDBusService dbusService(KDBusService::Multiple); ++ dbusService.unregister(); ++ ++ #ifdef HAVE_X11 + // make the world happy, we are started, kind of... + KStartupInfo::appStarted(); + #endif