[Gpg4win-commits] [git] Gpg4win - branch, kleo-kf5, updated. gpg4win-2.3.0-51-g8021720

by Andre Heinecke cvs at cvs.gnupg.org
Thu Jan 28 18:42:08 CET 2016


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GnuPG for Windows".

The branch, kleo-kf5 has been updated
       via  8021720eb50f2538e4e33a3e83224756e19acff0 (commit)
      from  9be969d74ff76b0f9e6fe84e578ff00268c1357d (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 8021720eb50f2538e4e33a3e83224756e19acff0
Author: Andre Heinecke <aheinecke at intevation.de>
Date:   Thu Jan 28 18:38:19 2016 +0100

    Add KXmlGui and it's dependencies
    
    Dependencies are: QtSvg, KIconThemes, KItemViews and KConfigWidgets
    
    * patches/kconfigwidgets/0001-Make-QDbus-optional.patch
     patches/kconfigwidgets/0002-Crudely-remove-KF5Auth-depedency.patch
     patches/kiconthemes/0001-Make-DBus-optional.patand
     patches/kxmlgui/0001-Make-KGlobalAccel-dependency-optional.patch
     patches/kxmlgui/0002-Make-QDBus-dependency-optional.patch
     patches/kxmlgui/0003-Make-KTextWidgets-optional.patch
     patches/kxmlgui/0004-Cruedly-disable-KSendbugmail.patch
     patches/qtsvg/qtsvg-link-zlib.patch
     src/inst-kconfigwidgets.nsi
     src/inst-kiconthemes.nsi
     src/inst-kxmlgui.nsi
     src/inst-qtsvg.nsi
     src/uninst-kconfigwidgets.nsi
     src/uninst-kiconthemes.nsi
     src/uninst-kxmlgui.nsi
     src/uninst-qtsvg.nsi: New.
    * Makefile.am (EXTRA_DIST): Add new Patches.
    * configure.ac: Declare new packages.
    * pacakges/packages.current: Add new Packages.
    * src/Makefile.am: Add new things.
    * src/config.nsi.in, src/inst-sections.nsi: Update accordingly.
    * src/gpg4win.mk.in: Add Qt hacks for QtSvg.
    
    --
    The patches to make some dependencies optional are partly under
    review and might make it upstream.

diff --git a/Makefile.am b/Makefile.am
index 9cd7b43..e372e4f 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -37,7 +37,15 @@ EXTRA_DIST = autogen.sh README.GIT ONEWS \
         patches/ki18n/no-tests.patch \
         patches/gpgmepp/0002-disable-variants.patch \
         patches/kmime/0001-Check-for-and-replace-strcasestr.patch \
-        patches/kmime/0002-Fix-Windows-build.patch
+        patches/kmime/0002-Fix-Windows-build.patch \
+        patches/kxmlgui/0001-Make-KGlobalAccel-dependency-optional.patch \
+        patches/kxmlgui/0002-Make-QDBus-dependency-optional.patch \
+        patches/kxmlgui/0003-Make-KTextWidgets-optional.patch \
+        patches/kxmlgui/0004-Crudely-disable-KSendbugmail.patch \
+        patches/kconfigwidgets/0001-Make-QDbus-optional.patch \
+        patches/kconfigwidgets/0002-Crudely-remove-KF5Auth-depedency.patch \
+        patches/kiconthemes/0001-Make-DBus-optional.patch \
+        patches/qtsvg/qtsvg-link-zlib.patch
 
 copy-news:
 	cp NEWS doc/website/NEWS.last
diff --git a/configure.ac b/configure.ac
index 3f8ec25..6c59636 100644
--- a/configure.ac
+++ b/configure.ac
@@ -344,8 +344,9 @@ GPG4WIN_BPKG_BINSRC([oxygen-icons])
 GPG4WIN_SPKG([qtbase], [dbus libpng])
 GPG4WIN_SPKG([qttools], [qtbase])
 GPG4WIN_SPKG([qtwinextras], [qtbase])
+GPG4WIN_SPKG([qtsvg], [qtbase])
 GPG4WIN_SPKG([boost], [expat zlib bzip2])
-GPG4WIN_BPKG_BINSRC([kleopatra], [libkleo qtbase oxygen-icons])
+GPG4WIN_BPKG_BINSRC([kleopatra], [kxmlgui libkleo oxygen-icons])
 GPG4WIN_KDEPKG([extra-cmake-modules])
 GPG4WIN_KDEPKG([kconfig], [qtbase qttools extra-cmake-modules])
 GPG4WIN_KDEPKG([ki18n], [qtbase gettext qttools extra-cmake-modules])
@@ -355,8 +356,13 @@ GPG4WIN_KDEPKG([kcompletion], [kwidgetsaddons])
 GPG4WIN_KDEPKG([kwindowsystem], [qtbase qtwinextras])
 GPG4WIN_KDEPKG([kcoreaddons], [qtbase])
 GPG4WIN_KDEPKG([kcodecs], [qtbase])
+GPG4WIN_KDEPKG([kguiaddons], [qtbase])
 GPG4WIN_KDEPKG([kmime], [kcodecs])
-GPG4WIN_KDEPKG([libkleo], [gpgmepp kcodecs kmime kwidgetsaddons kwindowsystem kcompletion kconfig gpgme])
+GPG4WIN_KDEPKG([kconfigwidgets], [kwidgetsaddons kguiaddons ki18n kcodecs kconfig])
+GPG4WIN_KDEPKG([kitemviews], [qtbase])
+GPG4WIN_KDEPKG([kiconthemes], [qtsvg kconfigwidgets kiconthemes])
+GPG4WIN_KDEPKG([kxmlgui], [kiconthemes kconfigwidgets kitemviews])
+GPG4WIN_KDEPKG([libkleo], [gpgmepp kmime kwidgetsaddons kwindowsystem kcompletion kconfig gpgme])
 
 GPG4WIN_FINALIZE
 
diff --git a/packages/packages.current b/packages/packages.current
index 43d56e8..7566488 100644
--- a/packages/packages.current
+++ b/packages/packages.current
@@ -366,6 +366,15 @@ name qtwinextras-5.5.1.tar.xz
 file 5.5/5.5.1/submodules/qtwinextras-opensource-src-5.5.1.tar.xz
 chk 116678ea988123adb76a7406941b0f70519a9f6c
 
+# Qt svg
+# last changed: 2016-01-28
+# by: ah
+# verified: HTTPS https://download.qt.io/official_releases/qt/5.5/5.5.1/submodules/qtsvg-opensource-src-5.5.1.tar.xz.sha1
+name qtsvg-5.5.1.tar.xz
+file 5.5/5.5.1/submodules/qtsvg-opensource-src-5.5.1.tar.xz
+chk 701fcc10201abcf540d26a8fcc6a8b7184dc16b1
+
+
 # KDE Frameworks
 
 server http://download.kde.org/stable/frameworks/
@@ -426,6 +435,41 @@ chk 7c41dbcc217d0e93cb276c84b23a55ad803e80a3
 file 5.18/kcodecs-5.18.0.tar.xz
 chk 8d5f09a9fa5977658a31a13ae9cef4d81f741da3
 
+# KConfigWidgets
+# last changed: 2016-01-28
+# by: ah
+# verified: https://www.kde.org/info/kde-frameworks-5.18.0.php
+file 5.18/kconfigwidgets-5.18.0.tar.xz
+chk 3aa99f49d570d6cba6bbf86b4c3a2ca9f88a3d29
+
+# KXmlGui
+# last changed: 2016-01-28
+# by: ah
+# verified: https://www.kde.org/info/kde-frameworks-5.18.0.php
+file 5.18/kxmlgui-5.18.0.tar.xz
+chk 5609b50abad6f9ad618a8de3eb6f1307530265b9
+
+# KGuiAddons
+# last changed: 2016-01-28
+# by: ah
+# verified: https://www.kde.org/info/kde-frameworks-5.18.0.php
+file 5.18/kguiaddons-5.18.0.tar.xz
+chk 771d2c2e9ce074f89ee75e5685edaec10c00e709
+
+# KItemViews
+# last changed: 2016-01-28
+# by: ah
+# verified: https://www.kde.org/info/kde-frameworks-5.18.0.php
+file 5.18/kitemviews-5.18.0.tar.xz
+chk c10a50c6607e548f9d5727040971cbe8e1074851
+
+# KIconThemes
+# last changed: 2016-01-28
+# by: ah
+# verified: https://www.kde.org/info/kde-frameworks-5.18.0.php
+file 5.18/kiconthemes-5.18.0.tar.xz
+chk 015547e8939aad42bcff53daee344011cc3772f4
+
 # KDE Applications
 #
 # Devel versions are needed until Kleopatra can be based on
diff --git a/patches/kconfigwidgets/0001-Make-QDbus-optional.patch b/patches/kconfigwidgets/0001-Make-QDbus-optional.patch
new file mode 100755
index 0000000..bda7b3e
--- /dev/null
+++ b/patches/kconfigwidgets/0001-Make-QDbus-optional.patch
@@ -0,0 +1,129 @@
+#! /bin/sh
+patch -p1 -l -f $* < $0
+exit $?
+
+From 438f98aed2dd8857c6ea73b3b93b9cd0abaf6993 Mon Sep 17 00:00:00 2001
+From: Andre Heinecke <aheinecke at intevation.de>
+Date: Thu, 28 Jan 2016 15:27:54 +0100
+Subject: [PATCH 1/2] Make QDbus optional
+
+This removes the Klipper integration of KPasteAction if QDBus
+is not available.
+---
+ CMakeLists.txt                    | 11 ++++++++++-
+ src/CMakeLists.txt                |  7 ++++++-
+ src/config-kconfigwidgets.h.cmake |  2 ++
+ src/kpastetextaction.cpp          | 14 ++++++++++++--
+ 4 files changed, 30 insertions(+), 4 deletions(-)
+ create mode 100644 src/config-kconfigwidgets.h.cmake
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index bed53d1..87f976c 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -10,7 +10,16 @@ feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND FATAL_ON_MISSING_REQUIRED_PACKA
+ set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR})
+
+ set(REQUIRED_QT_VERSION "5.3.0")
+-find_package(Qt5 "${REQUIRED_QT_VERSION}" CONFIG REQUIRED Widgets DBus)
++if (UNIX)
++    find_package(Qt5 "${REQUIRED_QT_VERSION}" CONFIG REQUIRED Widgets DBus)
++else()
++    find_package(Qt5DBus "${REQUIRED_QT_VERSION}" CONFIG)
++    set_package_properties(Qt5DBus PROPERTIES DESCRIPTION "Qt DBus Library"
++                           PURPOSE "KPasteAction klipper integration."
++                           URL "https://doc.qt.io/qt-5/qdbus.html"
++                           TYPE OPTIONAL)
++endif()
++set (HAVE_QDBUS ${Qt5DBus_FOUND})
+ include(KDEInstallDirs)
+ include(KDEFrameworkCompilerSettings)
+ include(KDECMakeSettings)
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 97837b3..104b118 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -1,3 +1,8 @@
++if (HAVE_QDBUS)
++    set (KCONFIGWIDGETS_QDBUS_LIBS Qt5::DBus)
++endif ()
++configure_file(config-kconfigwidgets.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-kconfigwidgets.h )
++
+ set(kconfigwidgets_SRCS
+   kcodecaction.cpp
+   kcolorscheme.cpp
+@@ -29,7 +34,7 @@ target_link_libraries(KF5ConfigWidgets
+     KF5::ConfigGui # KStandardAction uses KStandardShortcut
+     KF5::Auth # KCModule uses KAuth::Action
+   PRIVATE
+-    Qt5::DBus # KPasteTextAction talks to Klipper via DBus
++    ${KCONFIGWIDGETS_QDBUS_LIBS} # KPasteTextAction talks to Klipper via DBus
+     KF5::CoreAddons # KCModule uses KAboutData, KTipDialog uses KRandom
+     KF5::GuiAddons # KColorScheme uses KColorUtils
+     KF5::I18n # For action and widget texts
+diff --git a/src/config-kconfigwidgets.h.cmake b/src/config-kconfigwidgets.h.cmake
+new file mode 100644
+index 0000000..4a933fa
+--- /dev/null
++++ b/src/config-kconfigwidgets.h.cmake
+@@ -0,0 +1,2 @@
++/* Qt5DBus available */
++#cmakedefine01 HAVE_QDBUS
+diff --git a/src/kpastetextaction.cpp b/src/kpastetextaction.cpp
+index a38aa0c..3c5a614 100644
+--- a/src/kpastetextaction.cpp
++++ b/src/kpastetextaction.cpp
+@@ -27,11 +27,15 @@
+
+ #include "kpastetextaction.h"
+
++#include "config-kconfigwidgets.h"
++
+ #include <QApplication>
+ #include <QClipboard>
+ #include <QMenu>
+-#include <QDBusInterface>
+-#include <QDBusReply>
++#if HAVE_QDBUS
++# include <QDBusInterface>
++# include <QDBusReply>
++#endif
+
+ class KPasteTextActionPrivate
+ {
+@@ -97,6 +101,7 @@ void KPasteTextActionPrivate::_k_menuAboutToShow()
+ {
+     m_popup->clear();
+     QStringList list;
++#if HAVE_QDBUS
+     QDBusInterface klipper(QStringLiteral("org.kde.klipper"), QStringLiteral("/klipper"), QStringLiteral("org.kde.klipper.klipper"));
+     if (klipper.isValid()) {
+         QDBusReply<QStringList> reply = klipper.call(QStringLiteral("getClipboardHistoryMenu"));
+@@ -104,6 +109,7 @@ void KPasteTextActionPrivate::_k_menuAboutToShow()
+             list = reply;
+         }
+     }
++#endif
+     QString clipboardText = qApp->clipboard()->text(QClipboard::Clipboard);
+     if (list.isEmpty()) {
+         list << clipboardText;
+@@ -123,6 +129,7 @@ void KPasteTextActionPrivate::_k_menuAboutToShow()
+
+ void KPasteTextActionPrivate::_k_slotTriggered(QAction *action)
+ {
++#if HAVE_QDBUS
+     QDBusInterface klipper(QStringLiteral("org.kde.klipper"), QStringLiteral("/klipper"), QStringLiteral("org.kde.klipper.klipper"));
+     if (klipper.isValid()) {
+         QDBusReply<QString> reply = klipper.call(QStringLiteral("getClipboardHistoryItem"),
+@@ -135,6 +142,9 @@ void KPasteTextActionPrivate::_k_slotTriggered(QAction *action)
+         //if (reply.isValid())
+         //  qDebug() << "Clipboard: " << qApp->clipboard()->text(QClipboard::Clipboard);
+     }
++#else
++    Q_UNUSED(action);
++#endif
+ }
+
+ #include "moc_kpastetextaction.cpp"
+--
+2.1.4
diff --git a/patches/kconfigwidgets/0002-Crudely-remove-KF5Auth-depedency.patch b/patches/kconfigwidgets/0002-Crudely-remove-KF5Auth-depedency.patch
new file mode 100755
index 0000000..32166cd
--- /dev/null
+++ b/patches/kconfigwidgets/0002-Crudely-remove-KF5Auth-depedency.patch
@@ -0,0 +1,68 @@
+#! /bin/sh
+patch -p1 -l -f $* < $0
+exit $?
+
+From bb6e1b9bf227a0276d35f9edb6e5b9240bd3cd69 Mon Sep 17 00:00:00 2001
+From: Andre Heinecke <aheinecke at intevation.de>
+Date: Thu, 28 Jan 2016 17:30:10 +0100
+Subject: [PATCH 2/2] Crudely remove KF5Auth depedency
+
+This is not intended for upstream
+---
+ CMakeLists.txt     | 1 -
+ src/CMakeLists.txt | 3 ---
+ 2 files changed, 4 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 87f976c..c150897 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -36,7 +36,6 @@ ecm_setup_version(${KF5_VERSION} VARIABLE_PREFIX KCONFIGWIDGETS
+                         PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF5ConfigWidgetsConfigVersion.cmake"
+                         SOVERSION 5)
+
+-find_package(KF5Auth ${KF5_DEP_VERSION} REQUIRED)
+ find_package(KF5CoreAddons ${KF5_DEP_VERSION} REQUIRED)
+ find_package(KF5Codecs ${KF5_DEP_VERSION} REQUIRED)
+ find_package(KF5Config ${KF5_DEP_VERSION} REQUIRED)
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 104b118..d2a5c50 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -10,7 +10,6 @@ set(kconfigwidgets_SRCS
+   kconfigdialog.cpp
+   kconfigviewstatesaver.cpp
+   kconfigdialogmanager.cpp
+-  kcmodule.cpp
+   khelpclient.cpp
+   klanguagebutton.cpp
+   kpastetextaction.cpp
+@@ -32,7 +31,6 @@ target_link_libraries(KF5ConfigWidgets
+     KF5::Codecs # KCodecActions uses KCharsets, KEncodingProber
+     KF5::WidgetsAddons # For K*Action, KPage*, KViewStateSerializer, KAcceleratorManager, K*GuiItem
+     KF5::ConfigGui # KStandardAction uses KStandardShortcut
+-    KF5::Auth # KCModule uses KAuth::Action
+   PRIVATE
+     ${KCONFIGWIDGETS_QDBUS_LIBS} # KPasteTextAction talks to Klipper via DBus
+     KF5::CoreAddons # KCModule uses KAboutData, KTipDialog uses KRandom
+@@ -53,7 +51,6 @@ ecm_generate_headers(KConfigWidgets_HEADERS
+   KConfigDialog
+   KConfigViewStateSaver
+   KConfigDialogManager
+-  KCModule
+   KHelpClient
+   KLanguageButton
+   KPasteTextAction
+diff --git a/KF5ConfigWidgetsConfig.cmake.in b/KF5ConfigWidgetsConfig.cmake.in
+index 9096da6..660db4c 100644
+--- a/KF5ConfigWidgetsConfig.cmake.in
++++ b/KF5ConfigWidgetsConfig.cmake.in
+@@ -1,6 +1,5 @@
+ @PACKAGE_INIT@
+
+-find_dependency(KF5Auth "@KF5_DEP_VERSION@")
+ find_dependency(KF5Codecs "@KF5_DEP_VERSION@")
+ find_dependency(KF5Config "@KF5_DEP_VERSION@")
+ find_dependency(KF5WidgetsAddons "@KF5_DEP_VERSION@")
+--
+2.1.4
diff --git a/patches/kiconthemes/0001-Make-DBus-optional.patch b/patches/kiconthemes/0001-Make-DBus-optional.patch
new file mode 100755
index 0000000..b5b6d47
--- /dev/null
+++ b/patches/kiconthemes/0001-Make-DBus-optional.patch
@@ -0,0 +1,124 @@
+#! /bin/sh
+patch -p1 -l -f $* < $0
+exit $?
+
+From a1afa2a58ea2b25887b5f9124cf5c886e799e547 Mon Sep 17 00:00:00 2001
+From: Andre Heinecke <aheinecke at intevation.de>
+Date: Thu, 28 Jan 2016 18:22:07 +0100
+Subject: [PATCH] Make DBus optional
+
+DBus is only used for the icon changed notifications emited by
+KIconLoader.
+---
+ CMakeLists.txt                 | 10 +++++++++-
+ src/CMakeLists.txt             |  7 ++++++-
+ src/config-kiconthemes.h.cmake |  2 ++
+ src/kiconloader.cpp            | 15 +++++++++++++--
+ 4 files changed, 30 insertions(+), 4 deletions(-)
+ create mode 100644 src/config-kiconthemes.h.cmake
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 5664ea1..22642b9 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -32,7 +32,15 @@ ecm_setup_version(${KF5_VERSION}
+ set(REQUIRED_QT_VERSION 5.3.0)
+ find_package(Qt5Widgets ${REQUIRED_QT_VERSION} REQUIRED NO_MODULE)
+ find_package(Qt5Svg ${REQUIRED_QT_VERSION} REQUIRED NO_MODULE)
+-find_package(Qt5DBus ${REQUIRED_QT_VERSION} REQUIRED NO_MODULE)
++if (UNIX)
++else()
++    find_package(Qt5DBus "${REQUIRED_QT_VERSION}" CONFIG)
++    set_package_properties(Qt5DBus PROPERTIES DESCRIPTION "Qt DBus Library"
++                           PURPOSE "KIconLoader icon change notifications."
++                           URL "https://doc.qt.io/qt-5/qdbus.html"
++                           TYPE OPTIONAL)
++endif()
++set (HAVE_QDBUS ${Qt5DBus_FOUND})
+
+ find_package(KF5I18n ${KF5_DEP_VERSION} REQUIRED)
+ find_package(KF5CoreAddons ${KF5_DEP_VERSION} REQUIRED)
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 82d2979..f006f17 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -3,6 +3,11 @@ if (APPLE)
+     add_subdirectory(tools/ksvg2icns)
+ endif()
+
++if (HAVE_QDBUS)
++    set (QDBUS_LIBS Qt5::DBus)
++endif ()
++configure_file(config-kiconthemes.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-kiconthemes.h )
++
+ set(kiconthemes_SRCS
+   kiconbutton.cpp
+   kicondialog.cpp
+@@ -23,7 +28,7 @@ target_link_libraries(KF5IconThemes
+   PUBLIC
+     Qt5::Widgets
+   PRIVATE
+-    Qt5::DBus
++    ${QDBUS_LIBS}      # for icon changed notification in KIconLoader
+     Qt5::Svg
+     KF5::I18n          # for i18n in KIconDialog
+     KF5::WidgetsAddons # for KPixmapSequence family
+diff --git a/src/config-kiconthemes.h.cmake b/src/config-kiconthemes.h.cmake
+new file mode 100644
+index 0000000..4a933fa
+--- /dev/null
++++ b/src/config-kiconthemes.h.cmake
+@@ -0,0 +1,2 @@
++/* Qt5DBus available */
++#cmakedefine01 HAVE_QDBUS
+diff --git a/src/kiconloader.cpp b/src/kiconloader.cpp
+index 75ab482..3a0ff0a 100644
+--- a/src/kiconloader.cpp
++++ b/src/kiconloader.cpp
+@@ -22,6 +22,8 @@
+  * Boston, MA 02110-1301, USA.
+  */
+
++#include "config-kiconthemes.h"
++
+ #include "kiconloader.h"
+
+ #include <qplatformdefs.h> //for readlink
+@@ -46,8 +48,11 @@
+ #include <kconfiggroup.h>
+ #include <kshareddatacache.h>
+ #include <ksharedconfig.h>
+-#include <QtDBus/QDBusConnection>
+-#include <QDBusMessage>
++
++#if HAVE_QDBUS
++# include <QtDBus/QDBusConnection>
++# include <QDBusMessage>
++#endif
+
+ // kdeui
+ #include "kicontheme.h"
+@@ -323,15 +328,21 @@ public:
+             parseGenericIconsFiles(file);
+         }
+
++#if HAVE_QDBUS
+         QDBusConnection::sessionBus().connect(QString(), QStringLiteral("/KIconLoader"), QStringLiteral("org.kde.KIconLoader"),
+                                               QStringLiteral("iconChanged"), this, SIGNAL(iconChanged(int)));
++#endif
+     }
+
+     void emitChange(KIconLoader::Group group)
+     {
++#if HAVE_QDBUS
+         QDBusMessage message = QDBusMessage::createSignal(QStringLiteral("/KIconLoader"), QStringLiteral("org.kde.KIconLoader"), QStringLiteral("iconChanged"));
+         message.setArguments(QList<QVariant>() << int(group));
+         QDBusConnection::sessionBus().send(message);
++#else
++        Q_UNUSED(group);
++#endif
+     }
+
+     QString genericIconFor(const QString &icon) const
+--
+2.1.4
diff --git a/patches/kxmlgui/0001-Make-KGlobalAccel-dependency-optional.patch b/patches/kxmlgui/0001-Make-KGlobalAccel-dependency-optional.patch
new file mode 100755
index 0000000..eb58a4b
--- /dev/null
+++ b/patches/kxmlgui/0001-Make-KGlobalAccel-dependency-optional.patch
@@ -0,0 +1,534 @@
+#! /bin/sh
+patch -p1 -l -f $* < $0
+exit $?
+
+From 915904a70894eb33c3451106b05816966489ad2c Mon Sep 17 00:00:00 2001
+From: Andre Heinecke <aheinecke at intevation.de>
+Date: Tue, 26 Jan 2016 17:20:18 +0100
+Subject: [PATCH] Make KGlobalAccel dependency optional
+
+Global shortcuts are a nice optional feature to have. They
+are not strictly neccessary for the core functionality of KXmlGui.
+As they pull in an extra dependency to DBus and need runtime support
+on the target platform they should be optional.
+---
+ CMakeLists.txt               | 10 ++++++++--
+ src/CMakeLists.txt           |  4 +++-
+ src/config-xmlgui.h.cmake    |  3 +++
+ src/kactioncollection.cpp    | 26 ++++++++++++++++++++++++--
+ src/kkeysequencewidget.cpp   | 13 ++++++++++++-
+ src/kshortcuteditwidget.cpp  |  7 ++++++-
+ src/kshortcutseditor.cpp     | 15 +++++++++++++--
+ src/kshortcutseditoritem.cpp | 32 +++++++++++++++++++++++++++++---
+ src/kxmlguifactory.cpp       |  7 ++++++-
+ 9 files changed, 104 insertions(+), 13 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 9d79619..448ae76 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -37,7 +37,6 @@ find_package(Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Widgets DBus Xml Network
+ find_package(KF5CoreAddons ${KF5_DEP_VERSION} REQUIRED)
+ find_package(KF5ItemViews ${KF5_DEP_VERSION} REQUIRED)
+ find_package(KF5Config ${KF5_DEP_VERSION} REQUIRED)
+-find_package(KF5GlobalAccel ${KF5_DEP_VERSION} REQUIRED)
+ find_package(KF5ConfigWidgets ${KF5_DEP_VERSION} REQUIRED)
+ find_package(KF5I18n ${KF5_DEP_VERSION} REQUIRED)
+ find_package(KF5IconThemes ${KF5_DEP_VERSION} REQUIRED)
+@@ -45,7 +44,6 @@ find_package(KF5TextWidgets ${KF5_DEP_VERSION} REQUIRED)
+ find_package(KF5WidgetsAddons ${KF5_DEP_VERSION} REQUIRED)
+ find_package(KF5WindowSystem ${KF5_DEP_VERSION} REQUIRED)
+ find_package(KF5Attica ${KF5_DEP_VERSION})
+-
+ set_package_properties(KF5Attica PROPERTIES DESCRIPTION "A Qt library that implements the Open Collaboration Services API"
+                        PURPOSE "Support for Get Hot New Stuff in KXMLGUI"
+                        URL "https://projects.kde.org/attica"
+@@ -53,6 +51,14 @@ set_package_properties(KF5Attica PROPERTIES DESCRIPTION "A Qt library that imple
+                       )
+ set (HAVE_ATTICA ${KF5Attica_FOUND})
+
++find_package(KF5GlobalAccel ${KF5_DEP_VERSION})
++set_package_properties(KF5GlobalAccel PROPERTIES DESCRIPTION "A KDE Frameworks Library for global workspace shortcuts"
++                       PURPOSE "Support for global shortcuts"
++                       URL "https://projects.kde.org/projects/frameworks/kglobalaccel"
++                       TYPE RECOMMENDED
++                      )
++set (HAVE_GLOBALACCEL ${KF5GlobalAccel_FOUND})
++
+ # Subdirectories
+ add_definitions(-DTRANSLATION_DOMAIN=\"kxmlgui5\")
+ if (IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/po")
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 58f0c7a..8126b5e 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -3,6 +3,9 @@ add_subdirectory(ksendbugmail)
+ if (HAVE_ATTICA)
+    set (XMLGUI_EXTRA_LIBS ${XMLGUI_EXTRA_LIBS} KF5::Attica)
+ endif ()
++if (HAVE_GLOBALACCEL)
++   set (XMLGUI_EXTRA_LIBS ${XMLGUI_EXTRA_LIBS} KF5::GlobalAccel)
++endif ()
+ if(WIN32)
+     set (XMLGUI_EXTRA_LIBS ${XMLGUI_EXTRA_LIBS} secur32) # GetUserNameEx()
+ endif()
+@@ -89,7 +92,6 @@ PRIVATE
+     KF5::IconThemes         #KIconLoader and KIconThemes in KToolBar
+     KF5::TextWidgets        #KTextEdit in kbugreport
+     KF5::WindowSystem       #KKeyServer in kkeysequencewidget
+-    KF5::GlobalAccel         #KActionCollection and shortcut widgets
+     ${XMLGUI_EXTRA_LIBS}
+ )
+
+diff --git a/src/config-xmlgui.h.cmake b/src/config-xmlgui.h.cmake
+index 07c882f..9d7f3dc 100644
+--- a/src/config-xmlgui.h.cmake
++++ b/src/config-xmlgui.h.cmake
+@@ -4,3 +4,6 @@
+
+ #define CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}"
+ #define KF5_LIBEXEC_INSTALL_DIR "${KF5_LIBEXEC_INSTALL_DIR}"
++
++/* KF5GlobalAccel available */
++#cmakedefine01 HAVE_GLOBALACCEL
+diff --git a/src/kactioncollection.cpp b/src/kactioncollection.cpp
+index 9c45725..db856db 100644
+--- a/src/kactioncollection.cpp
++++ b/src/kactioncollection.cpp
+@@ -24,6 +24,8 @@
+     Boston, MA 02110-1301, USA.
+ */
+
++#include "config-xmlgui.h"
++
+ #include "kactioncollection.h"
+
+ #include "kactioncategory.h"
+@@ -33,7 +35,9 @@
+
+ #include <kauthorized.h>
+ #include <kconfiggroup.h>
+-#include <kglobalaccel.h>
++#if HAVE_GLOBALACCEL
++# include <kglobalaccel.h>
++#endif
+ #include <ksharedconfig.h>
+
+ #include <QtXml/QDomDocument>
+@@ -62,7 +66,12 @@ public:
+
+     void setComponentForAction(QAction *action)
+     {
+-        if (!KGlobalAccel::self()->hasShortcut(action)) {
++#if HAVE_GLOBALACCEL
++        bool hasGlobalShortcut = KGlobalAccel::self()->hasShortcut(action);
++#else
++        bool hasGlobalShortcut = false;
++#endif
++        if (!hasGlobalShortcut) {
+             action->setProperty("componentName", m_componentName);
+             action->setProperty("componentDisplayName", m_componentDisplayName);
+         }
+@@ -254,6 +263,7 @@ QAction *KActionCollection::addAction(const QString &name, QAction *action)
+             // settings to disk. Both for local and global shortcuts.
+             qCDebug(DEBUG_KXMLGUI) << "Registering action " << objectName << " under new name " << indexName;
+             // If there is a global shortcuts it's a very bad idea.
++#if HAVE_GLOBALACCEL
+             if (KGlobalAccel::self()->hasShortcut(action)) {
+                 // In debug mode assert
+                 Q_ASSERT(!KGlobalAccel::self()->hasShortcut(action));
+@@ -261,6 +271,7 @@ QAction *KActionCollection::addAction(const QString &name, QAction *action)
+                 qCritical() << "Changing action name from " << objectName << " to " << indexName << "\nignored because of active global shortcut.";
+                 indexName = objectName;
+             }
++#endif
+         }
+
+         // Set the new name
+@@ -445,6 +456,7 @@ void KActionCollection::setConfigGlobal(bool global)
+
+ void KActionCollection::importGlobalShortcuts(KConfigGroup *config)
+ {
++#if HAVE_GLOBALACCEL
+     Q_ASSERT(config);
+     if (!config || !config->exists()) {
+         return;
+@@ -469,6 +481,9 @@ void KActionCollection::importGlobalShortcuts(KConfigGroup *config)
+             }
+         }
+     }
++#else
++    Q_UNUSED(config);
++#endif
+ }
+
+ void KActionCollection::readSettings(KConfigGroup *config)
+@@ -505,6 +520,7 @@ void KActionCollection::readSettings(KConfigGroup *config)
+
+ void KActionCollection::exportGlobalShortcuts(KConfigGroup *config, bool writeAll) const
+ {
++#if HAVE_GLOBALACCEL
+     Q_ASSERT(config);
+     if (!config) {
+         return;
+@@ -555,6 +571,10 @@ void KActionCollection::exportGlobalShortcuts(KConfigGroup *config, bool writeAl
+     }
+
+     config->sync();
++#else
++    Q_UNUSED(config);
++    Q_UNUSED(writeAll);
++#endif
+ }
+
+ bool KActionCollectionPrivate::writeKXMLGUIConfigFile()
+@@ -599,7 +619,9 @@ bool KActionCollectionPrivate::writeKXMLGUIConfigFile()
+         bool bSameAsDefault = (action->shortcuts() == q->defaultShortcuts(action));
+         qCDebug(DEBUG_KXMLGUI) << "name = " << actionName
+                  << " shortcut = " << QKeySequence::listToString(action->shortcuts())
++#if HAVE_GLOBALACCEL
+                  << " globalshortcut = " << QKeySequence::listToString(KGlobalAccel::self()->shortcut(action))
++#endif
+                  << " def = " << QKeySequence::listToString(q->defaultShortcuts(action));
+
+         // now see if this element already exists
+diff --git a/src/kkeysequencewidget.cpp b/src/kkeysequencewidget.cpp
+index b2e2b6a..b85d527 100644
+--- a/src/kkeysequencewidget.cpp
++++ b/src/kkeysequencewidget.cpp
+@@ -19,6 +19,8 @@
+     Boston, MA 02110-1301, USA.
+ */
+
++#include "config-xmlgui.h"
++
+ #include "kkeysequencewidget.h"
+ #include "kkeysequencewidget_p.h"
+
+@@ -34,7 +36,9 @@
+ #include <klocalizedstring.h>
+ #include <kmessagebox.h>
+ #include <kkeyserver.h>
+-#include <kglobalaccel.h>
++#if HAVE_GLOBALACCEL
++# include <kglobalaccel.h>
++#endif
+
+ #include "kactioncollection.h"
+
+@@ -112,6 +116,7 @@ public:
+         doneRecording();
+     }
+
++#if HAVE_GLOBALACCEL
+     bool promptStealShortcutSystemwide(
+         QWidget *parent,
+         const QHash<QKeySequence, QList<KGlobalShortcutInfo> > &shortcuts,
+@@ -146,6 +151,7 @@ public:
+         return KMessageBox::warningContinueCancel(parent, message, title, KGuiItem(i18n("Reassign")))
+                == KMessageBox::Continue;
+     }
++#endif
+
+ //private slot
+     void doneRecording(bool validate = true);
+@@ -471,6 +477,7 @@ bool KKeySequenceWidgetPrivate::conflictWithGlobalShortcuts(const QKeySequence &
+     }
+ #endif
+
++#if HAVE_GLOBALACCEL
+     if (!(checkAgainstShortcutTypes & KKeySequenceWidget::GlobalShortcuts)) {
+         return false;
+     }
+@@ -501,6 +508,10 @@ bool KKeySequenceWidgetPrivate::conflictWithGlobalShortcuts(const QKeySequence &
+         KGlobalAccel::stealShortcutSystemwide(keySequence[i]);
+     }
+     return false;
++#else
++    Q_UNUSED(keySequence);
++    return false;
++#endif
+ }
+
+ bool shortcutsConflictWith(const QList<QKeySequence> &shortcuts, const QKeySequence &needle)
+diff --git a/src/kshortcuteditwidget.cpp b/src/kshortcuteditwidget.cpp
+index 670d031..ebd59be 100644
+--- a/src/kshortcuteditwidget.cpp
++++ b/src/kshortcuteditwidget.cpp
+@@ -22,6 +22,7 @@
+     Boston, MA 02110-1301, USA.
+ */
+
++#include "config-xmlgui.h"
+ #include "kshortcutsdialog_p.h"
+
+ #include <QPainter>
+@@ -31,7 +32,9 @@
+ #include <QLabel>
+
+ #include <klocalizedstring.h>
+-#include <kglobalaccel.h>
++#if HAVE_GLOBALACCEL
++# include <kglobalaccel.h>
++#endif
+
+ #include "kkeysequencewidget.h"
+
+@@ -85,6 +88,7 @@ ShortcutEditWidget::ShortcutEditWidget(QWidget *viewport, const QKeySequence &de
+             this, SLOT(setCustom(QKeySequence)));
+     connect(m_customEditor, SIGNAL(stealShortcut(QKeySequence,QAction*)),
+             this, SIGNAL(stealShortcut(QKeySequence,QAction*)));
++#if HAVE_GLOBALACCEL
+     connect(KGlobalAccel::self(), &KGlobalAccel::globalShortcutChanged,
+         [this](QAction *action, const QKeySequence &seq) {
+             if (action != m_action) {
+@@ -93,6 +97,7 @@ ShortcutEditWidget::ShortcutEditWidget(QWidget *viewport, const QKeySequence &de
+             setKeySequence(seq);
+         }
+     );
++#endif
+ }
+
+ KKeySequenceWidget::ShortcutTypes ShortcutEditWidget::checkForConflictsAgainst() const
+diff --git a/src/kshortcutseditor.cpp b/src/kshortcutseditor.cpp
+index 99dfb3d..c32aed0 100644
+--- a/src/kshortcutseditor.cpp
++++ b/src/kshortcutseditor.cpp
+@@ -22,6 +22,7 @@
+     the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+     Boston, MA 02110-1301, USA.
+ */
++#include "config-xmlgui.h"
+
+ #include "kshortcutseditor.h"
+
+@@ -43,7 +44,9 @@
+
+ #include <kconfig.h>
+ #include <kconfiggroup.h>
+-#include <kglobalaccel.h>
++#if HAVE_GLOBALACCEL
++# include <kglobalaccel.h>
++#endif
+ #include <kmessagebox.h>
+ #include "kactioncollection.h"
+ #include "kactioncategory.h"
+@@ -292,7 +295,13 @@ void KShortcutsEditorPrivate::initGUI(KShortcutsEditor::ActionTypes types, KShor
+     ui.list->header()->setSectionResizeMode(QHeaderView::ResizeToContents);
+     ui.list->header()->hideSection(ShapeGesture);  //mouse gestures didn't make it in time...
+     ui.list->header()->hideSection(RockerGesture);
+-    if (!(actionTypes & KShortcutsEditor::GlobalAction)) {
++#if HAVE_GLOBALACCEL
++    bool hideGlobals = !(actionTypes & KShortcutsEditor::GlobalAction);
++#else
++    bool hideGlobals = true;
++#endif
++
++    if (hideGlobals) {
+         ui.list->header()->hideSection(GlobalPrimary);
+         ui.list->header()->hideSection(GlobalAlternate);
+     } else if (!(actionTypes & ~KShortcutsEditor::GlobalAction)) {
+@@ -388,11 +397,13 @@ void KShortcutsEditorPrivate::allDefault()
+             changeKeyShortcut(item, LocalAlternate, alternate);
+         }
+
++#if HAVE_GLOBALACCEL
+         if (KGlobalAccel::self()->shortcut(act) != KGlobalAccel::self()->defaultShortcut(act)) {
+             QList<QKeySequence> defaultShortcut = KGlobalAccel::self()->defaultShortcut(act);
+             changeKeyShortcut(item, GlobalPrimary, primarySequence(defaultShortcut));
+             changeKeyShortcut(item, GlobalAlternate, alternateSequence(defaultShortcut));
+         }
++#endif
+
+ #if 0
+         KShapeGesture actShapeGesture = KGestureMap::self()->shapeGesture(act);
+diff --git a/src/kshortcutseditoritem.cpp b/src/kshortcutseditoritem.cpp
+index 461a90c..8442f10 100644
+--- a/src/kshortcutseditoritem.cpp
++++ b/src/kshortcutseditoritem.cpp
+@@ -22,6 +22,7 @@
+     the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+     Boston, MA 02110-1301, USA.
+ */
++#include "config-xmlgui.h"
+
+ #include "kshortcutsdialog_p.h"
+
+@@ -33,7 +34,9 @@
+ #include <kgesturemap.h>
+ #endif
+
+-#include <kglobalaccel.h>
++#if HAVE_GLOBALACCEL
++# include <kglobalaccel.h>
++#endif
+
+ KShortcutsEditorItem::KShortcutsEditorItem(QTreeWidgetItem *parent, QAction *action)
+     : QTreeWidgetItem(parent, ActionItem)
+@@ -129,12 +132,14 @@ QVariant KShortcutsEditorItem::data(int column, int role) const
+         case LocalAlternate:
+             return !m_action->property("isShortcutConfigurable").isValid()
+                    || m_action->property("isShortcutConfigurable").toBool();
++#if HAVE_GLOBALACCEL
+         case GlobalPrimary:
+         case GlobalAlternate:
+             if (!KGlobalAccel::self()->hasShortcut(m_action)) {
+                 return false;
+             }
+             return true;
++#endif
+         default:
+             return false;
+         }
+@@ -166,17 +171,21 @@ QVariant KShortcutsEditorItem::data(int column, int role) const
+
+     case DefaultShortcutRole: {
+         QList<QKeySequence> defaultShortcuts = m_action->property("defaultShortcuts").value<QList<QKeySequence> >();
++#if HAVE_GLOBALACCEL
+         QList<QKeySequence> defaultGlobalShortcuts = KGlobalAccel::self()->defaultShortcut(m_action);
++#endif
+
+         switch (column) {
+         case LocalPrimary:
+             return primarySequence(defaultShortcuts);
+         case LocalAlternate:
+             return alternateSequence(defaultShortcuts);
++#if HAVE_GLOBALACCEL
+         case GlobalPrimary:
+             return primarySequence(defaultGlobalShortcuts);
+         case GlobalAlternate:
+             return alternateSequence(defaultGlobalShortcuts);
++#endif
+ #if 0
+         case ShapeGesture: {
+             QVariant ret;
+@@ -214,17 +223,21 @@ bool KShortcutsEditorItem::operator<(const QTreeWidgetItem &other) const
+ QKeySequence KShortcutsEditorItem::keySequence(uint column) const
+ {
+     QList<QKeySequence> shortcuts = m_action->shortcuts();
++#if HAVE_GLOBALACCEL
+     QList<QKeySequence> globalShortcuts = KGlobalAccel::self()->shortcut(m_action);
++#endif
+
+     switch (column) {
+     case LocalPrimary:
+         return primarySequence(shortcuts);
+     case LocalAlternate:
+         return alternateSequence(shortcuts);
++#if HAVE_GLOBALACCEL
+     case GlobalPrimary:
+         return primarySequence(globalShortcuts);
+     case GlobalAlternate:
+         return alternateSequence(globalShortcuts);
++#endif
+     default:
+         return QKeySequence();
+     }
+@@ -233,12 +246,15 @@ QKeySequence KShortcutsEditorItem::keySequence(uint column) const
+ void KShortcutsEditorItem::setKeySequence(uint column, const QKeySequence &seq)
+ {
+     QList<QKeySequence> ks;
++#if HAVE_GLOBALACCEL
+     if (column == GlobalPrimary || column == GlobalAlternate) {
+         ks = KGlobalAccel::self()->shortcut(m_action);
+         if (!m_oldGlobalShortcut) {
+             m_oldGlobalShortcut = new QList<QKeySequence>(ks);
+         }
+-    } else {
++    } else
++#endif
++    {
+         ks = m_action->shortcuts();
+         if (!m_oldLocalShortcut) {
+             m_oldLocalShortcut = new QList<QKeySequence>(ks);
+@@ -264,9 +280,13 @@ void KShortcutsEditorItem::setKeySequence(uint column, const QKeySequence &seq)
+     }
+
+     //avoid also setting the default shortcut - what we are setting here is custom by definition
++#if HAVE_GLOBALACCEL
+     if (column == GlobalPrimary || column == GlobalAlternate) {
+         KGlobalAccel::self()->setShortcut(m_action, ks, KGlobalAccel::NoAutoloading);
+-    } else {
++
++    } else
++#endif
++    {
+         m_action->setShortcuts(ks);
+     }
+
+@@ -304,10 +324,12 @@ void KShortcutsEditorItem::updateModified()
+         delete m_oldLocalShortcut;
+         m_oldLocalShortcut = 0;
+     }
++#if HAVE_GLOBALACCEL
+     if (m_oldGlobalShortcut && *m_oldGlobalShortcut == KGlobalAccel::self()->shortcut(m_action)) {
+         delete m_oldGlobalShortcut;
+         m_oldGlobalShortcut = 0;
+     }
++#endif
+ #if 0
+     if (m_oldShapeGesture && *m_oldShapeGesture == KGestureMap::self()->shapeGesture(m_action)) {
+         delete m_oldShapeGesture;
+@@ -335,6 +357,7 @@ bool KShortcutsEditorItem::isModified(uint column) const
+         } else {
+             return alternateSequence(*m_oldLocalShortcut) != alternateSequence(m_action->shortcuts());
+         }
++#if HAVE_GLOBALACCEL
+     case GlobalPrimary:
+     case GlobalAlternate:
+         if (!m_oldGlobalShortcut) {
+@@ -345,6 +368,7 @@ bool KShortcutsEditorItem::isModified(uint column) const
+         } else {
+             return alternateSequence(*m_oldGlobalShortcut) != alternateSequence(KGlobalAccel::self()->shortcut(m_action));
+         }
++#endif
+ #if 0
+     case ShapeGesture:
+         return static_cast<bool>(m_oldShapeGesture);
+@@ -370,9 +394,11 @@ void KShortcutsEditorItem::undo()
+         m_action->setShortcuts(*m_oldLocalShortcut);
+     }
+
++#if HAVE_GLOBALACCEL
+     if (m_oldGlobalShortcut) {
+         KGlobalAccel::self()->setShortcut(m_action, *m_oldGlobalShortcut, KGlobalAccel::NoAutoloading);
+     }
++#endif
+
+ #if 0
+     if (m_oldShapeGesture) {
+diff --git a/src/kxmlguifactory.cpp b/src/kxmlguifactory.cpp
+index 2767e69..4fcfeca 100644
+--- a/src/kxmlguifactory.cpp
++++ b/src/kxmlguifactory.cpp
+@@ -17,6 +17,7 @@
+    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+    Boston, MA 02110-1301, USA.
+ */
++#include "config-xmlgui.h"
+
+ #include "kxmlguifactory.h"
+
+@@ -42,7 +43,9 @@
+
+ #include <ksharedconfig.h>
+ #include <kconfiggroup.h>
+-#include <kglobalaccel.h>
++#if HAVE_GLOBALACCEL
++# include <kglobalaccel.h>
++#endif
+
+ Q_DECLARE_METATYPE(QList<QKeySequence>)
+
+@@ -675,7 +678,9 @@ void KXMLGUIFactoryPrivate::configureAction(QAction *action, const QDomAttr &att
+     } else if (isShortcut) {
+         // Setting the shortcut by property also sets the default shortcut (which is incorrect), so we have to do it directly
+         if (attrName == QStringLiteral("globalShortcut")) {
++#if HAVE_GLOBALACCEL
+             KGlobalAccel::self()->setShortcut(action, QKeySequence::listFromString(attribute.value()));
++#endif
+         } else {
+             action->setShortcuts(QKeySequence::listFromString(attribute.value()));
+         }
+--
+2.1.4
diff --git a/patches/kxmlgui/0002-Make-QDBus-dependency-optional.patch b/patches/kxmlgui/0002-Make-QDBus-dependency-optional.patch
new file mode 100755
index 0000000..e4b586b
--- /dev/null
+++ b/patches/kxmlgui/0002-Make-QDBus-dependency-optional.patch
@@ -0,0 +1,419 @@
+#! /bin/sh
+patch -p1 -l -f $* < $0
+exit $?
+
+From f13bd3aff95038689b1f1b728f9929215785caf7 Mon Sep 17 00:00:00 2001
+From: Andre Heinecke <aheinecke at intevation.de>
+Date: Tue, 26 Jan 2016 18:18:56 +0100
+Subject: [PATCH 2/3] Make QDBus dependency optional
+
+If an application is "standalone" DBus IPC may not be neccessary.
+This main use case for this are platforms like Windows where DBus
+is foreign.
+
+Features lost without DBus are the handling of global style changes
+in KToolBar and the general KDE DBus integration of KMainWindow.
+---
+ CMakeLists.txt                     | 13 +++++++++++--
+ autotests/kmainwindow_unittest.cpp | 10 ++++++++++
+ autotests/ktoolbar_unittest.cpp    | 20 +++++++++++++++++++-
+ src/CMakeLists.txt                 | 15 ++++++++++++---
+ src/config-xmlgui.h.cmake          |  3 +++
+ src/kmainwindow.cpp                | 10 ++++++++--
+ src/kmainwindowiface.cpp           |  2 +-
+ src/ktoolbar.cpp                   | 13 +++++++++++--
+ src/kxmlguiwindow.cpp              | 13 +++++++++++--
+ 9 files changed, 86 insertions(+), 13 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 59132d8..acb6037 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -32,8 +32,7 @@ ecm_setup_version(${KF5_VERSION}
+
+ # Dependencies
+ set(REQUIRED_QT_VERSION 5.3.0)
+-find_package(Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Widgets DBus Xml Network PrintSupport)
+-
++find_package(Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Widgets Xml Network PrintSupport)
+ find_package(KF5CoreAddons ${KF5_DEP_VERSION} REQUIRED)
+ find_package(KF5ItemViews ${KF5_DEP_VERSION} REQUIRED)
+ find_package(KF5Config ${KF5_DEP_VERSION} REQUIRED)
+@@ -43,6 +42,16 @@ find_package(KF5IconThemes ${KF5_DEP_VERSION} REQUIRED)
+ find_package(KF5TextWidgets ${KF5_DEP_VERSION} REQUIRED)
+ find_package(KF5WidgetsAddons ${KF5_DEP_VERSION} REQUIRED)
+ find_package(KF5WindowSystem ${KF5_DEP_VERSION} REQUIRED)
++
++# Optional dependencies
++find_package(Qt5DBus ${REQUIRED_QT_VERSION} CONFIG)
++set_package_properties(Qt5DBus PROPERTIES DESCRIPTION "Qt DBus Library"
++                       PURPOSE "KDE MainWindow DBus integration and global style change handling"
++                       URL "https://doc.qt.io/qt-5/qdbus.html"
++                       TYPE OPTIONAL
++                      )
++set (HAVE_QDBUS ${Qt5DBus_FOUND})
++
+ find_package(KF5Attica ${KF5_DEP_VERSION})
+ set_package_properties(KF5Attica PROPERTIES DESCRIPTION "A Qt library that implements the Open Collaboration Services API"
+                        PURPOSE "Support for Get Hot New Stuff in KXMLGUI"
+diff --git a/autotests/kmainwindow_unittest.cpp b/autotests/kmainwindow_unittest.cpp
+index 00282ef..7bbd581 100644
+--- a/autotests/kmainwindow_unittest.cpp
++++ b/autotests/kmainwindow_unittest.cpp
+@@ -17,6 +17,8 @@
+     Boston, MA 02110-1301, USA.
+ */
+
++#include "config-xmlgui.h"
++
+ #include <QTest>
+ #include "kmainwindow_unittest.h"
+ #include <QEventLoopLocker>
+@@ -91,12 +93,20 @@ void KMainWindow_UnitTest::testNameWithSpecialChars()
+     mw.setObjectName(QStringLiteral("a#@_test/"));
+     mw.show();
+     mw.ensurePolished();
++#if HAVE_QDBUS
+     QCOMPARE(mw.dbusName(), QString::fromLatin1("/kmainwindow_unittest/a___test_"));
++#else
++    QCOMPARE(mw.objectName(), QString::fromLatin1("a#@_test/"));
++#endif
+     KMainWindow mw2;
+     mw2.setObjectName(QStringLiteral("a#@_test/"));
+     mw2.show();
+     mw2.ensurePolished();
++#if HAVE_QDBUS
+     QCOMPARE(mw2.dbusName(), QString::fromLatin1("/kmainwindow_unittest/a___test_2"));
++#else
++    QCOMPARE(mw2.objectName(), QString::fromLatin1("a#@_test/2"));
++#endif
+ }
+
+ static bool s_mainWindowDeleted;
+diff --git a/autotests/ktoolbar_unittest.cpp b/autotests/ktoolbar_unittest.cpp
+index d6c1e05..da0eb4e 100644
+--- a/autotests/ktoolbar_unittest.cpp
++++ b/autotests/ktoolbar_unittest.cpp
+@@ -18,10 +18,14 @@
+     Boston, MA 02110-1301, USA.
+ */
+
++#include "config-xmlgui.h"
++
+ #include "testxmlguiwindow.h"
+ #include "testguiclient.h"
+
+-#include <QDBusConnection>
++#if HAVE_QDBUS
++# include <QDBusConnection>
++#endif
+ #include <QDir>
+ #include <QFile>
+ #include <QFileInfo>
+@@ -79,7 +83,9 @@ protected:
+ private:
+     void changeGlobalIconSizeSetting(int, int);
+     void deleteGlobalIconSizeSetting();
++#if HAVE_QDBUS
+     void changeGlobalToolButtonStyleSetting(const QString &, const QString &);
++#endif
+     void deleteGlobalToolButtonStyleSetting();
+     QByteArray m_xml;
+     bool m_showWasCalled;
+@@ -422,6 +428,7 @@ void tst_KToolBar::testToolButtonStyleNoXmlGui()
+         QCOMPARE((int)mainToolBar->toolButtonStyle(), (int)toolButtonStyle);
+         QCOMPARE((int)otherToolBar->toolButtonStyle(), (int)toolButtonStyle);
+
++#if HAVE_QDBUS
+         // Now change KDE-global setting
+         changeGlobalToolButtonStyleSetting(QStringLiteral("IconOnly"), QStringLiteral("TextOnly"));
+
+@@ -436,6 +443,9 @@ void tst_KToolBar::testToolButtonStyleNoXmlGui()
+         } else {
+             QCOMPARE((int)otherToolBar->toolButtonStyle(), (int)toolButtonStyle);
+         }
++#else
++        Q_UNUSED(selectedDefaultForOtherToolbar);
++#endif
+     }
+ }
+
+@@ -485,16 +495,23 @@ void tst_KToolBar::testToolButtonStyleXmlGui()
+         // Save settings
+         kmw.saveMainWindowSettings(group);
+
++#if HAVE_QDBUS
+         // Now change KDE-global setting
+         changeGlobalToolButtonStyleSetting(QStringLiteral("IconOnly"), QStringLiteral("TextOnly"));
+
+         QCOMPARE((int)mainToolBar->toolButtonStyle(), (int)expectedStyleMainToolbar);
+         QCOMPARE((int)otherToolBar->toolButtonStyle(), (int)expectedStyleOtherToolbar);
+         QCOMPARE((int)cleanToolBar->toolButtonStyle(), (int)expectedStyleCleanToolbar);
++#else
++        Q_UNUSED(expectedStyleMainToolbar);
++        Q_UNUSED(expectedStyleOtherToolbar);
++        Q_UNUSED(expectedStyleCleanToolbar);
++#endif
+
+     }
+ }
+
++#if HAVE_QDBUS
+ void tst_KToolBar::changeGlobalToolButtonStyleSetting(const QString &mainToolBar, const QString &otherToolBars)
+ {
+     KConfigGroup group(KSharedConfig::openConfig(), "Toolbar style");
+@@ -512,6 +529,7 @@ void tst_KToolBar::changeGlobalToolButtonStyleSetting(const QString &mainToolBar
+     KToolBar::emitToolbarStyleChanged();
+     spy.wait(2000);
+ }
++#endif
+
+ void tst_KToolBar::deleteGlobalToolButtonStyleSetting()
+ {
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 8126b5e..e849ab7 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -6,6 +6,10 @@ endif ()
+ if (HAVE_GLOBALACCEL)
+    set (XMLGUI_EXTRA_LIBS ${XMLGUI_EXTRA_LIBS} KF5::GlobalAccel)
+ endif ()
++if (HAVE_QDBUS)
++   set (XMLGUI_QDBUS_LIBS Qt5::DBus)
++   set (XMLGUI_DBUS_PRI_NAME "dbus")
++endif ()
+ if(WIN32)
+     set (XMLGUI_EXTRA_LIBS ${XMLGUI_EXTRA_LIBS} secur32) # GetUserNameEx()
+ endif()
+@@ -33,7 +37,6 @@ set(kxmlgui_SRCS
+   khelpmenu.cpp
+   kkeysequencewidget.cpp
+   kmainwindow.cpp
+-  kmainwindowiface.cpp
+   kmenumenuhandler_p.cpp
+   kshortcuteditwidget.cpp
+   kshortcutschemeseditor.cpp
+@@ -56,6 +59,12 @@ set(kxmlgui_SRCS
+   kundoactions.cpp
+   kcheckaccelerators.cpp
+ )
++if (HAVE_QDBUS)
++  set(kxmlgui_SRCS
++    ${kxmlgui_SRCS}
++    kmainwindowiface.cpp
++  )
++endif()
+
+ # add the resource file
+ qt5_add_resources(kxmlgui_SRCS kxmlgui.qrc)
+@@ -77,7 +86,7 @@ target_include_directories(KF5XmlGui INTERFACE "$<INSTALL_INTERFACE:${KDE_INSTAL
+
+ target_link_libraries(KF5XmlGui
+ PUBLIC
+-    Qt5::DBus           #QDBus connect to signal in KToolBar
++    ${XMLGUI_QDBUS_LIBS} #QDBus connect to signal in KToolBar
+     Qt5::Xml            #To parse the configuration (QDomDocument etc)
+     Qt5::Widgets        #QWidget is used everywhere
+     KF5::ConfigCore         #Reading config for ToolbarIcons, Shortcut Schemes...
+@@ -138,5 +147,5 @@ install(FILES
+ install( FILES ui_standards.rc  DESTINATION  ${KDE_INSTALL_CONFDIR}/ui )
+
+ include(ECMGeneratePriFile)
+-ecm_generate_pri_file(BASE_NAME KXmlGui LIB_NAME KF5XmlGui DEPS "dbus xml widgets KConfigCore KConfigWidgets" FILENAME_VAR PRI_FILENAME INCLUDE_INSTALL_DIR ${KDE_INSTALL_INCLUDEDIR_KF5}/KXmlGui)
++ecm_generate_pri_file(BASE_NAME KXmlGui LIB_NAME KF5XmlGui DEPS "${XMLGUI_DBUS_PRI_NAME} xml widgets KConfigCore KConfigWidgets" FILENAME_VAR PRI_FILENAME INCLUDE_INSTALL_DIR ${KDE_INSTALL_INCLUDEDIR_KF5}/KXmlGui)
+ install(FILES ${PRI_FILENAME} DESTINATION ${ECM_MKSPECS_INSTALL_DIR})
+diff --git a/src/config-xmlgui.h.cmake b/src/config-xmlgui.h.cmake
+index 9d7f3dc..35c9477 100644
+--- a/src/config-xmlgui.h.cmake
++++ b/src/config-xmlgui.h.cmake
+@@ -7,3 +7,6 @@
+
+ /* KF5GlobalAccel available */
+ #cmakedefine01 HAVE_GLOBALACCEL
++
++/* Qt5DBus available */
++#cmakedefine01 HAVE_QDBUS
+diff --git a/src/kmainwindow.cpp b/src/kmainwindow.cpp
+index cae655d..4c98c3f 100644
+--- a/src/kmainwindow.cpp
++++ b/src/kmainwindow.cpp
+@@ -23,11 +23,11 @@
+     the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+     Boston, MA 02110-1301, USA.
+ */
++#include "config-xmlgui.h"
+
+ #include "kmainwindow.h"
+
+ #include "kmainwindow_p.h"
+-#include "kmainwindowiface_p.h"
+ #include "ktoolbarhandler_p.h"
+ #include "khelpmenu.h"
+ #include "ktoolbar.h"
+@@ -46,7 +46,6 @@
+ #include <QStyle>
+ #include <QWidget>
+ #include <QWindow>
+-#include <QDBusConnection>
+
+ #include <ktoggleaction.h>
+ #include <kaboutdata.h>
+@@ -58,6 +57,11 @@
+ #include <kwindowconfig.h>
+ #include <kconfiggui.h>
+
++#if HAVE_QDBUS
++# include "kmainwindowiface_p.h"
++# include <QDBusConnection>
++#endif
++
+ //#include <ctype.h>
+
+ static const char WINDOW_PROPERTIES[]="WindowProperties";
+@@ -302,6 +306,7 @@ void KMainWindowPrivate::polish(KMainWindow *q)
+     q->winId(); // workaround for setWindowRole() crashing, and set also window role, just in case TT
+     q->setWindowRole(s);   // will keep insisting that object name suddenly should not be used for window role
+
++#if HAVE_QDBUS
+     dbusName = QLatin1Char('/') + QCoreApplication::applicationName() + QLatin1Char('/');
+     dbusName += q->objectName().replace(QLatin1Char('/'), QLatin1Char('_'));
+     // Clean up for dbus usage: any non-alphanumeric char should be turned into '_'
+@@ -317,6 +322,7 @@ void KMainWindowPrivate::polish(KMainWindow *q)
+             QDBusConnection::ExportNonScriptableSlots |
+             QDBusConnection::ExportNonScriptableProperties |
+             QDBusConnection::ExportAdaptors);
++#endif
+ }
+
+ void KMainWindowPrivate::setSettingsDirty(CallCompression callCompression)
+diff --git a/src/kmainwindowiface.cpp b/src/kmainwindowiface.cpp
+index c194bec..25439b3 100644
+--- a/src/kmainwindowiface.cpp
++++ b/src/kmainwindowiface.cpp
+@@ -18,8 +18,8 @@
+    Boston, MA 02110-1301, USA.
+ */
+
+-#include "kmainwindowiface_p.h"
+
++#include "kmainwindowiface_p.h"
+ #include "kactioncollection.h"
+ #include "kxmlguiwindow.h"
+
+diff --git a/src/ktoolbar.cpp b/src/ktoolbar.cpp
+index 8fcb9cb..6bda175 100644
+--- a/src/ktoolbar.cpp
++++ b/src/ktoolbar.cpp
+@@ -24,6 +24,8 @@
+     Boston, MA 02110-1301, USA.
+ */
+
++#include "config-xmlgui.h"
++
+ #include "ktoolbar.h"
+
+ #include <QPointer>
+@@ -38,10 +40,13 @@
+ #include <QMouseEvent>
+ #include <QToolButton>
+ #include <QtXml/QDomElement>
+-#include <QDBusConnection>
+-#include <QDBusMessage>
+ #include <QDebug>
+
++#if HAVE_QDBUS
++# include <QDBusConnection>
++# include <QDBusMessage>
++#endif
++
+ #include <kauthorized.h>
+ #include <kconfig.h>
+ #include <ksharedconfig.h>
+@@ -273,8 +278,10 @@ void KToolBar::Private::init(bool readConfig, bool _isMainToolBar)
+
+     q->setAcceptDrops(true);
+
++#if HAVE_QDBUS
+     QDBusConnection::sessionBus().connect(QString(), QStringLiteral("/KToolBar"), QStringLiteral("org.kde.KToolBar"),
+                                           QStringLiteral("styleChanged"), q, SLOT(slotAppearanceChanged()));
++#endif
+     connect(KIconLoader::global(), SIGNAL(iconLoaderSettingsChanged()),
+             q, SLOT(slotAppearanceChanged()));
+ }
+@@ -1465,8 +1472,10 @@ bool KToolBar::toolBarsLocked()
+
+ void KToolBar::emitToolbarStyleChanged()
+ {
++#if HAVE_QDBUS
+     QDBusMessage message = QDBusMessage::createSignal(QStringLiteral("/KToolBar"), QStringLiteral("org.kde.KToolBar"), QStringLiteral("styleChanged"));
+     QDBusConnection::sessionBus().send(message);
++#endif
+ }
+
+ #include "moc_ktoolbar.cpp"
+diff --git a/src/kxmlguiwindow.cpp b/src/kxmlguiwindow.cpp
+index b4162c8..9e76928 100644
+--- a/src/kxmlguiwindow.cpp
++++ b/src/kxmlguiwindow.cpp
+@@ -23,11 +23,12 @@
+     Boston, MA 02110-1301, USA.
+ */
+
++#include "config-xmlgui.h"
++
+ #include "kxmlguiwindow.h"
+
+ #include "kmainwindow_p.h"
+ #include "kactioncollection.h"
+-#include "kmainwindowiface_p.h"
+ #include "ktoolbarhandler_p.h"
+ #include "kxmlguifactory.h"
+ #include "kedittoolbar.h"
+@@ -35,7 +36,6 @@
+ #include "ktoolbar.h"
+
+ #include <QCloseEvent>
+-#include <QDBusConnection>
+ #include <QtXml/QDomDocument>
+ #include <QLayout>
+ #include <QDebug>
+@@ -46,6 +46,11 @@
+ #include <QWidget>
+ #include <QList>
+
++#if HAVE_QDBUS
++# include "kmainwindowiface_p.h"
++# include <QDBusConnection>
++#endif
++
+ #include <ktoggleaction.h>
+ #include <kstandardaction.h>
+ #include <kconfig.h>
+@@ -86,7 +91,9 @@ KXmlGuiWindow::KXmlGuiWindow(QWidget *parent, Qt::WindowFlags f)
+     d->toolBarHandler = 0;
+     d->showStatusBarAction = 0;
+     d->factory = 0;
++#if HAVE_QDBUS
+     new KMainWindowInterface(this);
++#endif
+ }
+
+ QAction *KXmlGuiWindow::toolBarMenuAction()
+@@ -116,6 +123,7 @@ KXmlGuiWindow::~KXmlGuiWindow()
+ bool KXmlGuiWindow::event(QEvent *ev)
+ {
+     bool ret = KMainWindow::event(ev);
++#if HAVE_QDBUS
+     if (ev->type() == QEvent::Polish) {
+         QDBusConnection::sessionBus().registerObject(dbusName() + QStringLiteral("/actions"), actionCollection(),
+                 QDBusConnection::ExportScriptableSlots |
+@@ -124,6 +132,7 @@ bool KXmlGuiWindow::event(QEvent *ev)
+                 QDBusConnection::ExportNonScriptableProperties |
+                 QDBusConnection::ExportChildObjects);
+     }
++#endif
+     return ret;
+ }
+
+--
+2.1.4
diff --git a/patches/kxmlgui/0003-Make-KTextWidgets-optional.patch b/patches/kxmlgui/0003-Make-KTextWidgets-optional.patch
new file mode 100755
index 0000000..7150e4e
--- /dev/null
+++ b/patches/kxmlgui/0003-Make-KTextWidgets-optional.patch
@@ -0,0 +1,155 @@
+#! /bin/sh
+patch -p1 -l -f $* < $0
+exit $?
+
+From 958f1e7fdca18da499dc8c72ffbe1fba9ed4878a Mon Sep 17 00:00:00 2001
+From: Andre Heinecke <aheinecke at intevation.de>
+Date: Tue, 26 Jan 2016 18:40:59 +0100
+Subject: [PATCH 3/3] Make KTextWidgets optional
+
+The textedit is only used in the bugreport widget. For a standalone
+application the added Features in there come at the cost of a dependency
+to KService. If it is optional a user of this library can decide if
+they want this.
+---
+ CMakeLists.txt            |  9 ++++++++-
+ src/CMakeLists.txt        |  4 +++-
+ src/config-xmlgui.h.cmake |  3 +++
+ src/kbugreport.cpp        | 21 ++++++++++++++++++---
+ tests/CMakeLists.txt      |  4 +++-
+ 5 files changed, 35 insertions(+), 6 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index acb6037..dcaecc3 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -39,7 +39,6 @@ find_package(KF5Config ${KF5_DEP_VERSION} REQUIRED)
+ find_package(KF5ConfigWidgets ${KF5_DEP_VERSION} REQUIRED)
+ find_package(KF5I18n ${KF5_DEP_VERSION} REQUIRED)
+ find_package(KF5IconThemes ${KF5_DEP_VERSION} REQUIRED)
+-find_package(KF5TextWidgets ${KF5_DEP_VERSION} REQUIRED)
+ find_package(KF5WidgetsAddons ${KF5_DEP_VERSION} REQUIRED)
+ find_package(KF5WindowSystem ${KF5_DEP_VERSION} REQUIRED)
+
+@@ -68,6 +67,14 @@ set_package_properties(KF5GlobalAccel PROPERTIES DESCRIPTION "A KDE Frameworks L
+                       )
+ set (HAVE_GLOBALACCEL ${KF5GlobalAccel_FOUND})
+
++find_package(KF5TextWidgets ${KF5_DEP_VERSION})
++set_package_properties(KF5TextWidgets PROPERTIES DESCRIPTION "Library for KDE integrated text editor widgets"
++                       PURPOSE "KDE integration (e.g. Spell Checking) in bug report editor"
++                       URL "https://projects.kde.org/projects/frameworks/ktextwidgets"
++                       TYPE OPTIONAL
++                      )
++set (HAVE_TEXTWIDGETS ${KF5TextWidgets_FOUND})
++
+ # Subdirectories
+ add_definitions(-DTRANSLATION_DOMAIN=\"kxmlgui5\")
+ if (IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/po")
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index e849ab7..a4e9dd0 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -10,6 +10,9 @@ if (HAVE_QDBUS)
+    set (XMLGUI_QDBUS_LIBS Qt5::DBus)
+    set (XMLGUI_DBUS_PRI_NAME "dbus")
+ endif ()
++if (HAVE_TEXTWIDGETS)
++   set (XMLGUI_EXTRA_LIBS ${XMLGUI_EXTRA_LIBS} KF5::TextWidgets) # KTextEdit in kbugreport
++endif()
+ if(WIN32)
+     set (XMLGUI_EXTRA_LIBS ${XMLGUI_EXTRA_LIBS} secur32) # GetUserNameEx()
+ endif()
+@@ -99,7 +102,6 @@ PRIVATE
+     KF5::ItemViews           #KWidgetItemDelegate in KAboutApplicationPersonListDelegate
+     KF5::I18n                #i18n and i18nc in many places
+     KF5::IconThemes         #KIconLoader and KIconThemes in KToolBar
+-    KF5::TextWidgets        #KTextEdit in kbugreport
+     KF5::WindowSystem       #KKeyServer in kkeysequencewidget
+     ${XMLGUI_EXTRA_LIBS}
+ )
+diff --git a/src/config-xmlgui.h.cmake b/src/config-xmlgui.h.cmake
+index 35c9477..0873a95 100644
+--- a/src/config-xmlgui.h.cmake
++++ b/src/config-xmlgui.h.cmake
+@@ -10,3 +10,6 @@
+
+ /* Qt5DBus available */
+ #cmakedefine01 HAVE_QDBUS
++
++/* KF5TextWidgets available */
++#cmakedefine01 HAVE_TEXTWIDGETS
+diff --git a/src/kbugreport.cpp b/src/kbugreport.cpp
+index f418dde..766b326 100644
+--- a/src/kbugreport.cpp
++++ b/src/kbugreport.cpp
+@@ -17,6 +17,8 @@
+    Boston, MA 02110-1301, USA.
+ */
+
++#include "config-xmlgui.h"
++
+ #include "kbugreport.h"
+
+ #include <QtCore/QProcess>
+@@ -43,9 +45,14 @@
+ #include <kemailsettings.h>
+ #include <klocalizedstring.h>
+ #include <kmessagebox.h>
+-#include <ktextedit.h>
+ #include <ktitlewidget.h>
+
++#if HAVE_TEXTWIDGETS
++# include <ktextedit.h>
++#else
++# include <QTextEdit>
++#endif
++
+ #include "kdepackages.h"
+ #include "../kxmlgui_version.h"
+ #include "systeminformation_p.h"
+@@ -65,7 +72,11 @@ public:
+     QProcess *m_process;
+     KAboutData m_aboutData;
+
++#if HAVE_TEXTWIDGETS
+     KTextEdit *m_lineedit;
++#else
++    QTextEdit *m_lineedit;
++#endif
+     QLineEdit *m_subject;
+     QLabel *m_from;
+     QLabel *m_version;
+@@ -263,12 +274,16 @@ KBugReport::KBugReport(const KAboutData &aboutData, QWidget *_parent)
+         lay->addWidget(label);
+
+         // The multiline-edit
++#if HAVE_TEXTWIDGETS
+         d->m_lineedit = new KTextEdit(this);
++        d->m_lineedit->setCheckSpellingEnabled(true);
++        d->m_lineedit->setSpellCheckingLanguage(QStringLiteral("en"));
++#else
++        d->m_lineedit = new QTextEdit(this);
++#endif
+         d->m_lineedit->setMinimumHeight(180);   // make it big
+         d->m_lineedit->setWordWrapMode(QTextOption::WrapAtWordBoundaryOrAnywhere);
+         d->m_lineedit->setLineWrapMode(QTextEdit::WidgetWidth);
+-        d->m_lineedit->setCheckSpellingEnabled(true);
+-        d->m_lineedit->setSpellCheckingLanguage(QStringLiteral("en"));
+         lay->addWidget(d->m_lineedit, 10 /*stretch*/);
+
+         d->_k_slotSetFrom();
+diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
+index 3a5a42f..9cc2e32 100644
+--- a/tests/CMakeLists.txt
++++ b/tests/CMakeLists.txt
+@@ -22,4 +22,6 @@ xmlgui_executable_tests(
+   kwindowtest
+ )
+
+-add_subdirectory(krichtexteditor)
++if (HAVE_TEXTWIDGETS)
++  add_subdirectory(krichtexteditor)
++endif()
+--
+2.1.4
diff --git a/patches/kxmlgui/0004-Cruedly-disable-KSendbugmail.patch b/patches/kxmlgui/0004-Cruedly-disable-KSendbugmail.patch
new file mode 100755
index 0000000..fa98b37
--- /dev/null
+++ b/patches/kxmlgui/0004-Cruedly-disable-KSendbugmail.patch
@@ -0,0 +1,28 @@
+#! /bin/sh
+patch -p1 -l -f $* < $0
+exit $?
+
+From d50224d4febca74a8647ea5e230a81a628ab01f0 Mon Sep 17 00:00:00 2001
+From: Andre Heinecke <aheinecke at intevation.de>
+Date: Thu, 28 Jan 2016 18:28:28 +0100
+Subject: [PATCH 4/4] Cruedly disable KSendbugmail
+
+Should probably not go upstream but maybe as an option.
+KSendbugmail uses its own sslsocket in the smtp implementation. Without
+a qt build with openssl support this is unavailable.
+---
+ src/CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 8126b5e..a296861 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -1,4 +1,4 @@
+-add_subdirectory(ksendbugmail)
++#add_subdirectory(ksendbugmail)
+
+ if (HAVE_ATTICA)
+    set (XMLGUI_EXTRA_LIBS ${XMLGUI_EXTRA_LIBS} KF5::Attica)
+--
+2.1.4
diff --git a/patches/qtsvg/qtsvg-link-zlib.patch b/patches/qtsvg/qtsvg-link-zlib.patch
new file mode 100755
index 0000000..ec52ca7
--- /dev/null
+++ b/patches/qtsvg/qtsvg-link-zlib.patch
@@ -0,0 +1,21 @@
+#! /bin/sh
+patch -p0 -f -l $* < $0
+exit $?
+
+--- src/svg/svg.pro.orig	2016-01-28 18:06:09.395046821 +0100
++++ src/svg/svg.pro	2016-01-28 18:06:53.687941080 +0100
+@@ -44,12 +44,5 @@
+         qsvgfunctions_wince_p.h
+ }
+
+-contains(QT_CONFIG, system-zlib) {
+-    if(unix|mingw):          LIBS_PRIVATE += -lz
+-    else:                    LIBS += zdll.lib
+-} else {
+-    git_build: \
+-        INCLUDEPATH += $$[QT_INSTALL_HEADERS/get]/QtZlib
+-    else: \
+-        INCLUDEPATH += $$[QT_INSTALL_HEADERS/src]/QtZlib
+-}
++if(unix|mingw):          LIBS_PRIVATE += -lz
++else:                    LIBS += zdll.lib
diff --git a/src/Makefile.am b/src/Makefile.am
index 039bf4a..ea7ac4f 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -71,7 +71,13 @@ EXTRA_DIST = pkg-config gpg4win.nsi gpg4win-src.nsi \
         inst-libkleo.nsi uninst-libkleo.nsi \
         inst-kcoreaddons.nsi uninst-kcoreaddons.nsi \
         inst-kcodecs.nsi uninst-kcodecs.nsi \
+        inst-kconfigwidgets.nsi uninst-kconfigwidgets.nsi \
+        inst-kxmlgui.nsi uninst-kxmlgui.nsi \
+        inst-kiconthemes.nsi uninst-kiconthemes.nsi \
+        inst-kitemviews.nsi uninst-kitemviews.nsi \
+        inst-kguiaddons.nsi uninst-kguiaddons.nsi \
         inst-kmime.nsi uninst-kmime.nsi \
+        inst-qtsvg.nsi uninst-qtsvg.nsi \
         inst-qttools.nsi uninst-qttools.nsi \
         inst-boost.nsi uninst-boost.nsi \
         inst-extra-cmake-modules.nsi uninst-extra-cmake-modules.nsi \
@@ -102,12 +108,13 @@ gpg4win_spkgs = glib libffi gdk-pixbuf gtk+ \
 		gpa opencdk \
 		pinentry libassuan \
 		w32pth paperkey regex libiconv gettext \
-		qtbase qttools boost qtwinextras
+		qtbase qttools boost qtwinextras qtsvg
 
 # Source packages following the KDE pattern
 gpg4win_kdepkgs = kconfig kwidgetsaddons gpgmepp ki18n extra-cmake-modules \
                   kcompletion kwindowsystem kcoreaddons libkleo kcodecs \
-                  kmime
+                  kmime kconfigwidgets kxmlgui kguiaddons kitemviews \
+                  kiconthemes
 
 # Supported source packages to build in an additional architecture
 gpg4win_expkgs = libgpg-error libassuan libiconv gettext w32pth gpgex gpgol \
@@ -318,6 +325,15 @@ define gpg4win_pkg_qtwinextras_post_install
   mv $$$${pkgidir}/lib/*.dll $$$${pkgidir}/bin;)
 endef
 
+define gpg4win_pkg_qtsvg_post_install
+ (cd $$$${pkgbdir}; \
+  make uninstall; \
+  mkdir $$$${pkgidir}; \
+  cp -r lib include plugins $$$${pkgidir}; \
+  mkdir $$$${pkgidir}/bin; \
+  mv $$$${pkgidir}/lib/*.dll $$$${pkgidir}/bin;)
+endef
+
 # Supported make-only source packages.
 gpg4win_mpkgs = bzip2 zlib
 
diff --git a/src/config.nsi.in b/src/config.nsi.in
index bb35f45..e3ccb7c 100644
--- a/src/config.nsi.in
+++ b/src/config.nsi.in
@@ -253,6 +253,30 @@
 !define gpg4win_pkg_kmime @gpg4win_pkg_kmime@
 !define gpg4win_pkg_kmime_version @gpg4win_pkg_kmime_version@
 
+ at HAVE_PKG_KCONFIGWIDGETS@
+!define gpg4win_pkg_kconfigwidgets @gpg4win_pkg_kconfigwidgets@
+!define gpg4win_pkg_kconfigwidgets_version @gpg4win_pkg_kconfigwidgets_version@
+
+ at HAVE_PKG_KXMLGUI@
+!define gpg4win_pkg_kxmlgui @gpg4win_pkg_kxmlgui@
+!define gpg4win_pkg_kxmlgui_version @gpg4win_pkg_kxmlgui_version@
+
+ at HAVE_PKG_KGUIADDONS@
+!define gpg4win_pkg_kguiaddons @gpg4win_pkg_kguiaddons@
+!define gpg4win_pkg_kguiaddons_version @gpg4win_pkg_kguiaddons_version@
+
+ at HAVE_PKG_KITEMVIEWS@
+!define gpg4win_pkg_kitemviews @gpg4win_pkg_kitemviews@
+!define gpg4win_pkg_kitemviews_version @gpg4win_pkg_kitemviews_version@
+
+ at HAVE_PKG_KICONTHEMES@
+!define gpg4win_pkg_kiconthemes @gpg4win_pkg_kiconthemes@
+!define gpg4win_pkg_kiconthemes_version @gpg4win_pkg_kiconthemes_version@
+
+ at HAVE_PKG_QTSVG@
+!define gpg4win_pkg_qtsvg @gpg4win_pkg_qtsvg@
+!define gpg4win_pkg_qtsvg_version @gpg4win_pkg_qtsvg_version@
+
 # Internal packages.
 @HAVE_PKG_COMPENDIUM@
 
diff --git a/src/gpg4win.mk.in b/src/gpg4win.mk.in
index 28a563c..fe8793b 100644
--- a/src/gpg4win.mk.in
+++ b/src/gpg4win.mk.in
@@ -116,6 +116,8 @@ define DEFLATE_macro
             $(TAR) -xJ --transform='s,^qttools-opensource-src,qttools,' -f "$(1)" ;; \
           */qtwinextras*.*.tar.xz)          \
             $(TAR) -xJ --transform='s,^qtwinextras-opensource-src,qtwinextras,' -f "$(1)" ;; \
+          */qtsvg*.*.tar.xz)          \
+            $(TAR) -xJ --transform='s,^qtsvg-opensource-src,qtsvg,' -f "$(1)" ;; \
           */boost*.*.tar.bz2)          \
             $(TAR) -xj --transform='s,^boost_1_60_0,boost-1.60.0,' -f "$(1)" ;; \
 	  *.tar.gz | *.tgz)		\
@@ -630,6 +632,7 @@ endef
 
 $(eval $(call OVERRIDE_QTTOOLS_CONF_TEMPLATE,qttools))
 $(eval $(call OVERRIDE_QTTOOLS_CONF_TEMPLATE,qtwinextras))
+$(eval $(call OVERRIDE_QTTOOLS_CONF_TEMPLATE,qtsvg))
 
 define OVERRIDE_BOOST_CONF_TEMPLATE
 # Override of the configure rule. For targets that not use
diff --git a/src/inst-kconfigwidgets.nsi b/src/inst-kconfigwidgets.nsi
new file mode 100644
index 0000000..0731b0b
--- /dev/null
+++ b/src/inst-kconfigwidgets.nsi
@@ -0,0 +1,35 @@
+# Copyright (C) 2015 Intevation GmbH
+#
+# This file is part of GPG4Win.
+#
+# GPG4Win is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# GPG4Win is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+!ifdef prefix
+!undef prefix
+!endif
+!define prefix ${ipdir}/kconfigwidgets-${gpg4win_pkg_kconfigwidgets_version}
+
+!ifdef DEBUG
+Section "kconfigwidgets" SEC_kconfigwidgets
+!else
+Section "-kconfigwidgets" SEC_kconfigwidgets
+!endif
+  SetOutPath "$INSTDIR"
+!ifdef SOURCES
+  File "${gpg4win_pkg_kconfigwidgets}"
+!else
+  SetOutPath "$INSTDIR\bin"
+  File ${prefix}/bin/libKF5ConfigWidgets.dll
+!endif
+SectionEnd
diff --git a/src/inst-kiconthemes.nsi b/src/inst-kiconthemes.nsi
new file mode 100644
index 0000000..afdff0a
--- /dev/null
+++ b/src/inst-kiconthemes.nsi
@@ -0,0 +1,35 @@
+# Copyright (C) 2015 Intevation GmbH
+#
+# This file is part of GPG4Win.
+#
+# GPG4Win is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# GPG4Win is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+!ifdef prefix
+!undef prefix
+!endif
+!define prefix ${ipdir}/kiconthemes-${gpg4win_pkg_kiconthemes_version}
+
+!ifdef DEBUG
+Section "kiconthemes" SEC_kiconthemes
+!else
+Section "-kiconthemes" SEC_kiconthemes
+!endif
+  SetOutPath "$INSTDIR"
+!ifdef SOURCES
+  File "${gpg4win_pkg_kiconthemes}"
+!else
+  SetOutPath "$INSTDIR\bin"
+  File ${prefix}/bin/libKF5IconThemes.dll
+!endif
+SectionEnd
diff --git a/src/inst-kxmlgui.nsi b/src/inst-kxmlgui.nsi
new file mode 100644
index 0000000..2eb9815
--- /dev/null
+++ b/src/inst-kxmlgui.nsi
@@ -0,0 +1,35 @@
+# Copyright (C) 2015 Intevation GmbH
+#
+# This file is part of GPG4Win.
+#
+# GPG4Win is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# GPG4Win is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+!ifdef prefix
+!undef prefix
+!endif
+!define prefix ${ipdir}/kxmlgui-${gpg4win_pkg_kxmlgui_version}
+
+!ifdef DEBUG
+Section "kxmlgui" SEC_kxmlgui
+!else
+Section "-kxmlgui" SEC_kxmlgui
+!endif
+  SetOutPath "$INSTDIR"
+!ifdef SOURCES
+  File "${gpg4win_pkg_kxmlgui}"
+!else
+  SetOutPath "$INSTDIR\bin"
+  File ${prefix}/bin/libKF5XmlGui.dll
+!endif
+SectionEnd
diff --git a/src/inst-qtsvg.nsi b/src/inst-qtsvg.nsi
new file mode 100644
index 0000000..e5b7c16
--- /dev/null
+++ b/src/inst-qtsvg.nsi
@@ -0,0 +1,35 @@
+# Copyright (C) 2015 Intevation GmbH
+#
+# This file is part of GPG4Win.
+#
+# GPG4Win is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# GPG4Win is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+!ifdef prefix
+!undef prefix
+!endif
+!define prefix ${ipdir}/qtsvg-${gpg4win_pkg_qtsvg_version}
+
+!ifdef DEBUG
+Section "qtsvg" SEC_qtsvg
+!else
+Section "-qtsvg" SEC_qtsvg
+!endif
+  SetOutPath "$INSTDIR"
+!ifdef SOURCES
+  File "${gpg4win_pkg_qtsvg}"
+!else
+  SetOutPath "$INSTDIR\bin"
+  File ${prefix}/bin/Qt5Svg.dll
+!endif
+SectionEnd
diff --git a/src/inst-sections.nsi b/src/inst-sections.nsi
index 7081fb4..8209380 100644
--- a/src/inst-sections.nsi
+++ b/src/inst-sections.nsi
@@ -137,15 +137,30 @@
 !ifdef HAVE_PKG_KCODECS
 !include "inst-kcodecs.nsi"
 !endif
+!ifdef HAVE_PKG_KCONFIGWIDGETS
+!include "inst-kconfigwidgets.nsi"
+!endif
+!ifdef HAVE_PKG_KXMLGUI
+!include "inst-kxmlgui.nsi"
+!endif
+!ifdef HAVE_PKG_KGUIADDONS
+!include "inst-kguiaddons.nsi"
+!endif
 !ifdef HAVE_PKG_KMIME
 !include "inst-kmime.nsi"
 !endif
+!ifdef HAVE_PKG_KICONTHEMES
+!include "inst-kiconthemes.nsi"
+!endif
 !ifdef HAVE_PKG_LIBKLEO
 !include "inst-libkleo.nsi"
 !endif
 !ifdef HAVE_PKG_EXTRA_CMAKE_MODULES
 !include "inst-extra-cmake-modules.nsi"
 !endif
+!ifdef HAVE_PKG_QTSVG
+!include "inst-qtsvg.nsi"
+!endif
 
 # These are displayed in the selection dialog.
 
@@ -338,6 +353,21 @@
 !ifdef HAVE_PKG_KCODECS
 !include "uninst-kcodecs.nsi"
 !endif
+!ifdef HAVE_PKG_KCONFIGWIDGETS
+!include "uninst-kconfigwidgets.nsi"
+!endif
+!ifdef HAVE_PKG_KGUIADDONS
+!include "uninst-kguiaddons.nsi"
+!endif
+!ifdef HAVE_PKG_KXMLGUI
+!include "uninst-kxmlgui.nsi"
+!endif
+!ifdef HAVE_PKG_KICONTHEMES
+!include "uninst-kiconthemes.nsi"
+!endif
+!ifdef HAVE_PKG_KITEMVIEWS
+!include "uninst-kitemviews.nsi"
+!endif
 !ifdef HAVE_PKG_KMIME
 !include "uninst-kmime.nsi"
 !endif
@@ -350,6 +380,9 @@
 !ifdef HAVE_PKG_BZIP2
 !include "uninst-bzip2.nsi"
 !endif
+!ifdef HAVE_PKG_QTSVG
+!include "uninst-qtsvg.nsi"
+!endif
 
 !include "uninst-gpg4win.nsi"
 
@@ -607,12 +640,30 @@ Function CalcDepends
 !ifdef HAVE_PKG_KCODECS
   !insertmacro UnselectSection ${SEC_kcodecs}
 !endif
+!ifdef HAVE_PKG_KCONFIGWIDGETS
+  !insertmacro UnselectSection ${SEC_kconfigwidgets}
+!endif
+!ifdef HAVE_PKG_KXMLGUI
+  !insertmacro UnselectSection ${SEC_kxmlgui}
+!endif
+!ifdef HAVE_PKG_KICONTHEMES
+  !insertmacro UnselectSection ${SEC_kiconthemes}
+!endif
+!ifdef HAVE_PKG_KITEMVIEWS
+  !insertmacro UnselectSection ${SEC_kitemviews}
+!endif
+!ifdef HAVE_PKG_KGUIADDONS
+  !insertmacro UnselectSection ${SEC_kguiaddons}
+!endif
 !ifdef HAVE_PKG_LIBKLEO
   !insertmacro UnselectSection ${SEC_libkleo}
 !endif
 !ifdef HAVE_PKG_KMIME
   !insertmacro UnselectSection ${SEC_kmime}
 !endif
+!ifdef HAVE_PKG_QTSVG
+  !insertmacro UnselectSection ${SEC_qtsvg}
+!endif
 
   # Always install gnupg2.  This is also ensured by putting
   # these packages in the RO section and enabling them by default, but
@@ -711,6 +762,12 @@ Function CalcDepends
   !insertmacro SelectSection ${SEC_kwindowsystem}
   !insertmacro SelectSection ${SEC_kcoreaddons}
   !insertmacro SelectSection ${SEC_kcodecs}
+  !insertmacro SelectSection ${SEC_kconfigwidgets}
+  !insertmacro SelectSection ${SEC_kxmlgui}
+  !insertmacro SelectSection ${SEC_kitemviews}
+  !insertmacro SelectSection ${SEC_kiconthemes}
+  !insertmacro SelectSection ${SEC_kguiaddons}
+  !insertmacro SelectSection ${SEC_qtsvg}
   !insertmacro SelectSection ${SEC_kmime}
   !insertmacro SelectSection ${SEC_libkleo}
   !insertmacro SelectSection ${SEC_qttools}
diff --git a/src/uninst-kconfigwidgets.nsi b/src/uninst-kconfigwidgets.nsi
new file mode 100644
index 0000000..e4578ec
--- /dev/null
+++ b/src/uninst-kconfigwidgets.nsi
@@ -0,0 +1,33 @@
+# Copyright (C) 2015 Intevation GmbH
+#
+# This file is part of GPG4Win.
+#
+# GPG4Win is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# GPG4Win is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+!ifdef prefix
+!undef prefix
+!endif
+!define prefix ${ipdir}/kconfigwidgets-${gpg4win_pkg_kconfigwidgets_version}
+
+; Uninstaller section.
+Section "-un.kconfigwidgets"
+!ifdef SOURCES
+  Push "${gpg4win_pkg_kconfigwidgets}"
+  Call un.SourceDelete
+!else
+  Delete "$INSTDIR\bin\libKF5ConfigWidgets.dll"
+  RmDir "$INSTDIR\bin"
+
+!endif
+SectionEnd
diff --git a/src/uninst-kiconthemes.nsi b/src/uninst-kiconthemes.nsi
new file mode 100644
index 0000000..ca070be
--- /dev/null
+++ b/src/uninst-kiconthemes.nsi
@@ -0,0 +1,33 @@
+# Copyright (C) 2015 Intevation GmbH
+#
+# This file is part of GPG4Win.
+#
+# GPG4Win is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# GPG4Win is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+!ifdef prefix
+!undef prefix
+!endif
+!define prefix ${ipdir}/kiconthemes-${gpg4win_pkg_kiconthemes_version}
+
+; Uninstaller section.
+Section "-un.kiconthemes"
+!ifdef SOURCES
+  Push "${gpg4win_pkg_kiconthemes}"
+  Call un.SourceDelete
+!else
+  Delete "$INSTDIR\bin\libKF5IconThemes.dll"
+  RmDir "$INSTDIR\bin"
+
+!endif
+SectionEnd
diff --git a/src/uninst-kxmlgui.nsi b/src/uninst-kxmlgui.nsi
new file mode 100644
index 0000000..5a9b6a5
--- /dev/null
+++ b/src/uninst-kxmlgui.nsi
@@ -0,0 +1,33 @@
+# Copyright (C) 2015 Intevation GmbH
+#
+# This file is part of GPG4Win.
+#
+# GPG4Win is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# GPG4Win is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+!ifdef prefix
+!undef prefix
+!endif
+!define prefix ${ipdir}/kxmlgui-${gpg4win_pkg_kxmlgui_version}
+
+; Uninstaller section.
+Section "-un.kxmlgui"
+!ifdef SOURCES
+  Push "${gpg4win_pkg_kxmlgui}"
+  Call un.SourceDelete
+!else
+  Delete "$INSTDIR\bin\libKF5XmlGui.dll"
+  RmDir "$INSTDIR\bin"
+
+!endif
+SectionEnd
diff --git a/src/uninst-qtsvg.nsi b/src/uninst-qtsvg.nsi
new file mode 100644
index 0000000..54d23e4
--- /dev/null
+++ b/src/uninst-qtsvg.nsi
@@ -0,0 +1,32 @@
+# Copyright (C) 2015 Intevation GmbH
+#
+# This file is part of GPG4Win.
+#
+# GPG4Win is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# GPG4Win is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+!ifdef prefix
+!undef prefix
+!endif
+!define prefix ${ipdir}/qtsvg-${gpg4win_pkg_qtsvg_version}
+
+; Uninstaller section.
+Section "-un.qtsvg"
+!ifdef SOURCES
+  Push "${gpg4win_pkg_qtsvg}"
+  Call un.SourceDelete
+!else
+  Delete "$INSTDIR\bin\Qt5Svg.dll"
+  RmDir "$INSTDIR\bin"
+!endif
+SectionEnd

-----------------------------------------------------------------------

Summary of changes:
 Makefile.am                                        |  10 +-
 configure.ac                                       |  10 +-
 packages/packages.current                          |  44 ++
 .../kconfigwidgets/0001-Make-QDbus-optional.patch  | 129 +++++
 .../0002-Crudely-remove-KF5Auth-depedency.patch    |  68 +++
 patches/kiconthemes/0001-Make-DBus-optional.patch  | 124 +++++
 ...001-Make-KGlobalAccel-dependency-optional.patch | 534 +++++++++++++++++++++
 .../0002-Make-QDBus-dependency-optional.patch      | 419 ++++++++++++++++
 .../kxmlgui/0003-Make-KTextWidgets-optional.patch  | 155 ++++++
 .../0004-Cruedly-disable-KSendbugmail.patch        |  28 ++
 patches/qtsvg/qtsvg-link-zlib.patch                |  21 +
 src/Makefile.am                                    |  20 +-
 src/config.nsi.in                                  |  24 +
 src/gpg4win.mk.in                                  |   3 +
 src/{inst-gpgmepp.nsi => inst-kconfigwidgets.nsi}  |  10 +-
 src/{inst-kcoreaddons.nsi => inst-kiconthemes.nsi} |  10 +-
 src/{inst-kcodecs.nsi => inst-kxmlgui.nsi}         |  10 +-
 src/{inst-boost.nsi => inst-qtsvg.nsi}             |  10 +-
 src/inst-sections.nsi                              |  57 +++
 ...{uninst-boost.nsi => uninst-kconfigwidgets.nsi} |   8 +-
 ...inst-kcoreaddons.nsi => uninst-kiconthemes.nsi} |   8 +-
 src/{uninst-boost.nsi => uninst-kxmlgui.nsi}       |   8 +-
 src/{uninst-boost.nsi => uninst-qtsvg.nsi}         |   9 +-
 23 files changed, 1677 insertions(+), 42 deletions(-)
 create mode 100755 patches/kconfigwidgets/0001-Make-QDbus-optional.patch
 create mode 100755 patches/kconfigwidgets/0002-Crudely-remove-KF5Auth-depedency.patch
 create mode 100755 patches/kiconthemes/0001-Make-DBus-optional.patch
 create mode 100755 patches/kxmlgui/0001-Make-KGlobalAccel-dependency-optional.patch
 create mode 100755 patches/kxmlgui/0002-Make-QDBus-dependency-optional.patch
 create mode 100755 patches/kxmlgui/0003-Make-KTextWidgets-optional.patch
 create mode 100755 patches/kxmlgui/0004-Cruedly-disable-KSendbugmail.patch
 create mode 100755 patches/qtsvg/qtsvg-link-zlib.patch
 copy src/{inst-gpgmepp.nsi => inst-kconfigwidgets.nsi} (78%)
 copy src/{inst-kcoreaddons.nsi => inst-kiconthemes.nsi} (80%)
 copy src/{inst-kcodecs.nsi => inst-kxmlgui.nsi} (82%)
 copy src/{inst-boost.nsi => inst-qtsvg.nsi} (83%)
 copy src/{uninst-boost.nsi => uninst-kconfigwidgets.nsi} (82%)
 copy src/{uninst-kcoreaddons.nsi => uninst-kiconthemes.nsi} (84%)
 copy src/{uninst-boost.nsi => uninst-kxmlgui.nsi} (85%)
 copy src/{uninst-boost.nsi => uninst-qtsvg.nsi} (86%)


hooks/post-receive
-- 
GnuPG for Windows
http://git.gnupg.org



More information about the Gpg4win-commits mailing list