summaryrefslogtreecommitdiff
path: root/app-office/kmymoney/files
diff options
context:
space:
mode:
Diffstat (limited to 'app-office/kmymoney/files')
-rw-r--r--app-office/kmymoney/files/kmymoney-4.8.0-alkimia-detect.patch29
-rw-r--r--app-office/kmymoney/files/kmymoney-4.8.0-cmake-3.9.patch38
-rw-r--r--app-office/kmymoney/files/kmymoney-4.8.0-drop-national-onlinetasks.patch289
-rw-r--r--app-office/kmymoney/files/kmymoney-4.8.0-fix-csvdialog.patch22
-rw-r--r--app-office/kmymoney/files/kmymoney-4.8.0-gpgmepp.patch77
-rw-r--r--app-office/kmymoney/files/kmymoney-4.8.0-kdepimlibs-optional.patch172
-rw-r--r--app-office/kmymoney/files/kmymoney-4.8.0-soversion.patch28
-rw-r--r--app-office/kmymoney/files/kmymoney-4.8.0-tests.patch210
8 files changed, 865 insertions, 0 deletions
diff --git a/app-office/kmymoney/files/kmymoney-4.8.0-alkimia-detect.patch b/app-office/kmymoney/files/kmymoney-4.8.0-alkimia-detect.patch
new file mode 100644
index 000000000000..628e7c87538e
--- /dev/null
+++ b/app-office/kmymoney/files/kmymoney-4.8.0-alkimia-detect.patch
@@ -0,0 +1,29 @@
+Some 8 cmake patches were necessary to get libalkimia detection right.
+This just copies the current state of 4.8 branch.
+
+--- a/CMakeLists.txt 2016-10-26 12:17:23.390317411 +0200
++++ b/CMakeLists.txt 2016-10-26 12:17:53.750544101 +0200
+@@ -110,14 +110,21 @@
+ add_custom_target(apidoc ${DOXYGEN} ${CMAKE_CURRENT_BINARY_DIR}/kmymoney.doxygen)
+ endif(DOXYGEN_FOUND)
+
+-find_package(LibAlkimia 4.3.2 REQUIRED)
++find_package(LibAlkimia REQUIRED)
+ #TODO: remove when LibAlkimia minimum version will be raised
+ if (NOT LIBALKIMIA_LIBRARIES AND LIBALKIMIA_LIBRARY)
+ # LibAlkimia 4.3.2 does not properly define LIBALKIMIA_LIBRARIES
+ find_package(GMP REQUIRED)
+ set(LIBALKIMIA_LIBRARIES ${GMP_LIBRARIES} ${LIBALKIMIA_LIBRARY} )
+ endif()
+-
++# make sure we have the matching version of LibAlkimia (not too new)
++if(${LibAlkimia_FOUND})
++ if (DEFINED ${LibAlkimia_VERSION})
++ if (NOT "${LibAlkimia_VERSION}" VERSION_LESS "6.0.0")
++ message(FATAL_ERROR "This version of KMyMoney requires LibAlkimia < 6.0.0 and does not work with the installed version of LibAlkimia")
++ endif()
++ endif()
++endif()
+ # check for PkgConfig
+ find_package(PkgConfig)
+
diff --git a/app-office/kmymoney/files/kmymoney-4.8.0-cmake-3.9.patch b/app-office/kmymoney/files/kmymoney-4.8.0-cmake-3.9.patch
new file mode 100644
index 000000000000..93e8809d824a
--- /dev/null
+++ b/app-office/kmymoney/files/kmymoney-4.8.0-cmake-3.9.patch
@@ -0,0 +1,38 @@
+From b0a68ca075928aa29ee1e0007bfb14d714f5a948 Mon Sep 17 00:00:00 2001
+From: Ralf Habacker <ralf.habacker@freenet.de>
+Date: Thu, 10 Aug 2017 13:45:04 +0200
+Subject: Fix 'Compile error on Fedora 26'
+
+CMake build system used some outdated variables which has been replaced
+by cmake build in variables to fix the issue.
+
+FIXED-IN:4.8.1
+BUG:383351
+---
+ kmymoney/dialogs/settings/CMakeLists.txt | 9 ++++-----
+ 1 file changed, 4 insertions(+), 5 deletions(-)
+
+diff --git a/kmymoney/dialogs/settings/CMakeLists.txt b/kmymoney/dialogs/settings/CMakeLists.txt
+index 5aacbea..b007dfb 100644
+--- a/kmymoney/dialogs/settings/CMakeLists.txt
++++ b/kmymoney/dialogs/settings/CMakeLists.txt
+@@ -1,12 +1,11 @@
+ add_custom_command(
+- OUTPUT ${KMyMoney2_BINARY_DIR}/kmymoneysettings.h ${KMyMoney2_BINARY_DIR}/kmymoneysettings.cpp
+- DEPENDS ${KMyMoney2_SOURCE_DIR}/kmymoney.kcfg ${KMyMoney2_SOURCE_DIR}/kmymoneysettings.kcfgc
+- COMMAND ${KDE4_KCFGC_EXECUTABLE} -d ${KMyMoney2_BINARY_DIR}/ ${KMyMoney2_SOURCE_DIR}/kmymoney.kcfg ${KMyMoney2_SOURCE_DIR}/kmymoneysettings.kcfgc
++ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/kmymoneysettings.h ${CMAKE_CURRENT_BINARY_DIR}/kmymoneysettings.cpp
++ DEPENDS ${CMAKE_SOURCE_DIR}/kmymoney/kmymoney.kcfg ${CMAKE_SOURCE_DIR}/kmymoney/kmymoneysettings.kcfgc
++ COMMAND ${KDE4_KCFGC_EXECUTABLE} -d ${CMAKE_CURRENT_BINARY_DIR}/ ${CMAKE_SOURCE_DIR}/kmymoney/kmymoney.kcfg ${CMAKE_SOURCE_DIR}/kmymoney/kmymoneysettings.kcfgc
+ )
+
+-
+ set (libsettings_a_SOURCES
+- ${KMyMoney2_BINARY_DIR}/kmymoneysettings.h
++ ${CMAKE_CURRENT_BINARY_DIR}/kmymoneysettings.cpp
+ ksettingscolors.cpp
+ ksettingsfonts.cpp
+ ksettingsforecast.cpp
+--
+cgit v0.11.2
+
diff --git a/app-office/kmymoney/files/kmymoney-4.8.0-drop-national-onlinetasks.patch b/app-office/kmymoney/files/kmymoney-4.8.0-drop-national-onlinetasks.patch
new file mode 100644
index 000000000000..abcffed02275
--- /dev/null
+++ b/app-office/kmymoney/files/kmymoney-4.8.0-drop-national-onlinetasks.patch
@@ -0,0 +1,289 @@
+commit 5979b1e92d67124591d10b18b173852882f077e7
+Author: Christian Dávid <christian-david@web.de>
+Date: Mon Jun 13 00:05:27 2016 +0200
+
+ Removed national credit transfers
+
+ They are not supported by the banks anymore. So they can be removed.
+
+ Unfortunately they contained the only example for a task converter.
+ Due to the removed plugin the CMakeLists.txt for sepa could be
+ simplified.
+
+ Cherry-picked from d514e650
+
+diff --git a/kmymoney/plugins/kbanking/aqbankingkmmoperators.cpp b/kmymoney/plugins/kbanking/aqbankingkmmoperators.cpp
+index 6c2b5d8a..8b67bcbb 100644
+--- a/kmymoney/plugins/kbanking/aqbankingkmmoperators.cpp
++++ b/kmymoney/plugins/kbanking/aqbankingkmmoperators.cpp
+@@ -24,9 +24,9 @@
+ #include <aqbanking/value.h>
+
+ #include "payeeidentifier/payeeidentifiertyped.h"
++#include "payeeidentifier/nationalaccount/nationalaccount.h"
+ #include "tasksettings/credittransfersettingsbase.h"
+ #include "onlinetasks/sepa/tasks/sepaonlinetransfer.h"
+-#include "onlinetasks/national/tasks/germanonlinetransfer.h"
+ #include "gwenhywfarqtoperators.h"
+
+ /**
+@@ -49,40 +49,6 @@ static const QString dtausChars = QString::fromUtf8("0123456789ABCDEFGHIJKLMNOPQ
+ */
+ static const QString sepaChars = QString("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz':?.,- (+)/");
+
+-QSharedPointer<germanOnlineTransfer::settings> AB_TransactionLimits_toGermanOnlineTaskSettings(const AB_TRANSACTION_LIMITS* aqlimits)
+-{
+- Q_CHECK_PTR(aqlimits);
+-
+- QSharedPointer<creditTransferSettingsBase> settings(new creditTransferSettingsBase);
+-
+- // AqBanking returns 0 as min length even if it requires one
+- int minLength = AB_TransactionLimits_GetMinLenPurpose(aqlimits);
+- if (minLength == 0)
+- minLength = 1;
+- settings->setPurposeLimits(AB_TransactionLimits_GetMaxLinesPurpose(aqlimits),
+- AB_TransactionLimits_GetMaxLenPurpose(aqlimits),
+- minLength
+- );
+-
+- // AqBanking returns 0 as min length even if it requires one
+- minLength = AB_TransactionLimits_GetMinLenRemoteName(aqlimits);
+- if (minLength == 0)
+- minLength = 1;
+- settings->setRecipientNameLimits(AB_TransactionLimits_GetMaxLinesRemoteName(aqlimits),
+- AB_TransactionLimits_GetMaxLenRemoteName(aqlimits),
+- minLength
+- );
+-
+- minLength = AB_TransactionLimits_GetMinLenLocalName(aqlimits);
+- if (minLength == 0)
+- minLength = 1;
+- settings->setPayeeNameLimits(1, AB_TransactionLimits_GetMaxLenLocalName(aqlimits), minLength);
+-
+- settings->setAllowedChars(dtausChars);
+-
+- return settings.dynamicCast<germanOnlineTransfer::settings>();
+-}
+-
+ /** @todo Check if AB_TransactionLimits_GetMaxLenCustomerReference really is the limit for the sepa reference */
+ QSharedPointer<sepaOnlineTransfer::settings> AB_TransactionLimits_toSepaOnlineTaskSettings(const AB_TRANSACTION_LIMITS* aqlimits)
+ {
+diff --git a/kmymoney/plugins/kbanking/aqbankingkmmoperators.h b/kmymoney/plugins/kbanking/aqbankingkmmoperators.h
+index a314cd72..5205a884 100644
+--- a/kmymoney/plugins/kbanking/aqbankingkmmoperators.h
++++ b/kmymoney/plugins/kbanking/aqbankingkmmoperators.h
+@@ -29,7 +29,6 @@
+
+ #include "onlinetasks/interfaces/tasks/ionlinetasksettings.h"
+ #include "onlinetasks/sepa/tasks/sepaonlinetransfer.h"
+-#include "onlinetasks/national/tasks/germanonlinetransfer.h"
+
+ class AB_ACCOUNT;
+ class AB_TRANSACTION_LIMITS;
+@@ -43,12 +42,6 @@ class nationalAccount;
+ }
+
+ /**
+- * @brief AB_TransactionLimits_toGermanOnlineTaskSettings
+- * @param aqlimits IN
+- */
+-QSharedPointer<germanOnlineTransfer::settings> AB_TransactionLimits_toGermanOnlineTaskSettings(const AB_TRANSACTION_LIMITS* aqlimits);
+-
+-/**
+ * @brief AB_TransactionLimits_toSepaOnlineTaskSettings
+ * @param aqlimits IN
+ */
+diff --git a/kmymoney/plugins/kbanking/mymoneybanking.cpp b/kmymoney/plugins/kbanking/mymoneybanking.cpp
+index d8c4a571..a64eaf61 100644
+--- a/kmymoney/plugins/kbanking/mymoneybanking.cpp
++++ b/kmymoney/plugins/kbanking/mymoneybanking.cpp
+@@ -598,11 +598,7 @@ void KBankingPlugin::sendOnlineJob(QList<onlineJob>& jobs)
+
+ if (!jobs.isEmpty()) {
+ foreach (onlineJob job, jobs) {
+- if (germanOnlineTransfer::name() == job.task()->taskName()) {
+- onlineJobTyped<germanOnlineTransfer> typedJob(job);
+- enqueTransaction(typedJob);
+- job = typedJob;
+- } else if (sepaOnlineTransfer::name() == job.task()->taskName()) {
++ if (sepaOnlineTransfer::name() == job.task()->taskName()) {
+ onlineJobTyped<sepaOnlineTransfer> typedJob(job);
+ enqueTransaction(typedJob);
+ job = typedJob;
+@@ -646,14 +642,8 @@ QStringList KBankingPlugin::availableJobs(QString accountId)
+
+ // Check availableJobs
+
+- // national transfer
+- AB_JOB *abJob = AB_JobSingleTransfer_new(abAccount);
+- if (AB_Job_CheckAvailability(abJob) == 0)
+- list.append(germanOnlineTransfer::name());
+- AB_Job_free(abJob);
+-
+ // sepa transfer
+- abJob = AB_JobSepaTransfer_new(abAccount);
++ AB_JOB* abJob = AB_JobSepaTransfer_new(abAccount);
+ if (AB_Job_CheckAvailability(abJob) == 0)
+ list.append(sepaOnlineTransfer::name());
+ AB_Job_free(abJob);
+@@ -686,17 +676,7 @@ IonlineTaskSettings::ptr KBankingPlugin::settings(QString accountId, QString tas
+ if (abAcc == 0)
+ return IonlineTaskSettings::ptr();
+
+- if (germanOnlineTransfer::name() == taskName) {
+- // Get Limits for germanOnlineTransfer
+- QScopedPointer<AB_JOB, QScopedPointerAbJobDeleter> abJob(AB_JobSingleTransfer_new(abAcc));
+- if (AB_Job_CheckAvailability(abJob.data()) != 0)
+- return IonlineTaskSettings::ptr();
+-
+- const AB_TRANSACTION_LIMITS* limits = AB_Job_GetFieldLimits(abJob.data());
+- return AB_TransactionLimits_toGermanOnlineTaskSettings(limits).dynamicCast<IonlineTaskSettings>();
+- //! @todo needs free? because that is not possible with const AB_TRANSACTION_LIMITS*
+- // AB_TransactionLimits_free( limits );
+- } else if (sepaOnlineTransfer::name() == taskName) {
++ if (sepaOnlineTransfer::name() == taskName) {
+ // Get limits for sepaonlinetransfer
+ QScopedPointer<AB_JOB, QScopedPointerAbJobDeleter> abJob(AB_JobSepaTransfer_new(abAcc));
+ if (AB_Job_CheckAvailability(abJob.data()) != 0)
+@@ -707,62 +687,6 @@ IonlineTaskSettings::ptr KBankingPlugin::settings(QString accountId, QString tas
+ return IonlineTaskSettings::ptr();
+ }
+
+-bool KBankingPlugin::enqueTransaction(onlineJobTyped<germanOnlineTransfer>& job)
+-{
+- /* get AqBanking account */
+- QString accId = job.constTask()->responsibleAccount();
+- AB_ACCOUNT *abAccount = aqbAccount(accId);
+- if (!abAccount) {
+- job.addJobMessage(onlineJobMessage(onlineJobMessage::warning, "KBanking", i18n("<qt>"
+- "The given application account <b>%1</b> "
+- "has not been mapped to an online "
+- "account."
+- "</qt>",
+- MyMoneyFile::instance()->account(accId).name())));
+- return false;
+- }
+- //setupAccountReference(acc, ba); // needed?
+-
+- AB_JOB *abJob = AB_JobSingleTransfer_new(abAccount);
+- int rv = AB_Job_CheckAvailability(abJob);
+- if (rv) {
+- qDebug("AB_ERROR_OFFSET is %i", AB_ERROR_OFFSET);
+- job.addJobMessage(onlineJobMessage::error, "AqBanking",
+- QString("National credit transfers for account \"%1\" are not available, error code %2.").arg(MyMoneyFile::instance()->account(accId).name(), rv),
+- QString::number(rv)
+- );
+- return false;
+- }
+- AB_TRANSACTION *abTransaction = AB_Transaction_new();
+-
+- // Recipient
+- payeeIdentifiers::nationalAccount beneficiaryAcc = job.task()->beneficiaryTyped();
+- AB_Transaction_SetRemoteAccount(abTransaction, beneficiaryAcc);
+-
+- // Origin Account
+- AB_Transaction_SetLocalAccount(abTransaction, abAccount);
+-
+- // Purpose
+- QStringList qPurpose = job.task()->purpose().split('\n', QString::SkipEmptyParts);
+- GWEN_STRINGLIST *purpose = GWEN_StringList_fromQStringList(qPurpose);
+- AB_Transaction_SetPurpose(abTransaction, purpose);
+- GWEN_StringList_free(purpose);
+-
+- // Other
+- AB_Transaction_SetTextKey(abTransaction, job.task()->textKey());
+- AB_Transaction_SetValue(abTransaction, AB_Value_fromMyMoneyMoney(job.task()->value()));
+-
+- /** @todo LOW remove Debug info */
+- qDebug() << "SetTransaction: " << AB_Job_SetTransaction(abJob, abTransaction);
+-
+- GWEN_DB_NODE *gwenNode = AB_Job_GetAppData(abJob);
+- GWEN_DB_SetCharValue(gwenNode, GWEN_DB_FLAGS_DEFAULT, "kmmOnlineJobId", m_kbanking->mappingId(job).toLatin1().constData());
+-
+- qDebug() << "Enqueue: " << m_kbanking->enqueueJob(abJob);
+- //delete localAcc;
+- return true;
+-}
+-
+ bool KBankingPlugin::enqueTransaction(onlineJobTyped<sepaOnlineTransfer>& job)
+ {
+ /* get AqBanking account */
+diff --git a/kmymoney/plugins/kbanking/mymoneybanking.h b/kmymoney/plugins/kbanking/mymoneybanking.h
+index c2559ae7..7936704e 100644
+--- a/kmymoney/plugins/kbanking/mymoneybanking.h
++++ b/kmymoney/plugins/kbanking/mymoneybanking.h
+@@ -64,7 +64,6 @@ class KBAccountSettings;
+
+ #include "mymoney/onlinejobtyped.h"
+ #include "onlinetasks/sepa/tasks/sepaonlinetransfer.h"
+-#include "onlinetasks/national/tasks/germanonlinetransfer.h"
+
+ /**
+ * This class represents the KBanking plugin towards KMymoney.
+@@ -184,7 +183,6 @@ private:
+ */
+ void startPasswordTimer();
+
+- bool enqueTransaction(onlineJobTyped<germanOnlineTransfer>& job);
+ bool enqueTransaction(onlineJobTyped<sepaOnlineTransfer>& job);
+
+
+diff --git a/kmymoney/plugins/kbanking/tasksettings/credittransfersettingsbase.h b/kmymoney/plugins/kbanking/tasksettings/credittransfersettingsbase.h
+index 28d55a06..3bac6ce8 100644
+--- a/kmymoney/plugins/kbanking/tasksettings/credittransfersettingsbase.h
++++ b/kmymoney/plugins/kbanking/tasksettings/credittransfersettingsbase.h
+@@ -20,14 +20,13 @@
+ #define CREDITTRANSFERSETTINGSBASE_H
+
+ #include "onlinetasks/sepa/tasks/sepaonlinetransfer.h"
+-#include "onlinetasks/national/tasks/germanonlinetransfer.h"
+
+ /**
+ * @brief Base class for sepaCreditTransfer and germanCreditTransfer settings
+ *
+ * @internal Both credit transfers have similar fields
+ */
+-class creditTransferSettingsBase : public sepaOnlineTransfer::settings, public germanOnlineTransfer::settings
++class creditTransferSettingsBase : public sepaOnlineTransfer::settings
+ {
+ public:
+ creditTransferSettingsBase()
+diff --git a/kmymoney/plugins/onlinetasks/CMakeLists.txt b/kmymoney/plugins/onlinetasks/CMakeLists.txt
+index 7be53137..2e57b214 100644
+--- a/kmymoney/plugins/onlinetasks/CMakeLists.txt
++++ b/kmymoney/plugins/onlinetasks/CMakeLists.txt
+@@ -1,5 +1,4 @@
+
+ add_subdirectory(interfaces)
+ add_subdirectory(sepa)
+-add_subdirectory(national)
+ add_subdirectory(unavailabletask)
+diff --git a/kmymoney/plugins/onlinetasks/sepa/CMakeLists.txt b/kmymoney/plugins/onlinetasks/sepa/CMakeLists.txt
+index 3c2d9db1..e3962d7a 100644
+--- a/kmymoney/plugins/onlinetasks/sepa/CMakeLists.txt
++++ b/kmymoney/plugins/onlinetasks/sepa/CMakeLists.txt
+@@ -2,6 +2,7 @@ set( sepaOnlineTasks_SRCS
+ tasks/sepaonlinetransferimpl.cpp
+ ui/sepacredittransferedit.cpp
+ sepastorageplugin.cpp
++ sepaonlinetasksloader.cpp
+ )
+
+ set( sepaOnlineTasks_HEADER
+@@ -12,14 +13,8 @@ kde4_add_ui_files( sepaOnlineTasks_SRCS
+ ui/sepacredittransferedit.ui
+ )
+
+-automoc4( konlinetasks_sepa_OBJECTS sepaOnlineTasks_SRCS)
+-add_library( konlinetasks_sepa_OBJECTS OBJECT ${sepaOnlineTasks_SRCS} )
+-
+-# Add actual plugin here it is not part of the objects
+-# needed if multiple plugins are linked (needed for unit tests)
+-kde4_add_plugin(konlinetasks_sepa
+- $<TARGET_OBJECTS:konlinetasks_sepa_OBJECTS>
+- sepaonlinetasksloader.cpp
++add_library(konlinetasks_sepa MODULE
++ ${sepaOnlineTasks_SRCS}
+ )
+
+ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/kmymoney-sepaorders.desktop.in ${CMAKE_CURRENT_BINARY_DIR}/kmymoney-sepaorders.desktop)
diff --git a/app-office/kmymoney/files/kmymoney-4.8.0-fix-csvdialog.patch b/app-office/kmymoney/files/kmymoney-4.8.0-fix-csvdialog.patch
new file mode 100644
index 000000000000..4f84a17f5b57
--- /dev/null
+++ b/app-office/kmymoney/files/kmymoney-4.8.0-fix-csvdialog.patch
@@ -0,0 +1,22 @@
+From: Łukasz Wojniłowicz <lukasz.wojnilowicz@gmail.com>
+Date: Sat, 06 Aug 2016 11:14:18 +0000
+Subject: Remove Qt::WindowStaysOnTopHint from CSV dialog
+X-Git-Url: http://quickgit.kde.org/?p=kmymoney.git&a=commitdiff&h=d129b22e2da6e7972008f2b5ef3eccc95d758201
+---
+Remove Qt::WindowStaysOnTopHint from CSV dialog
+
+BUG: 363429
+---
+
+
+--- a/kmymoney/plugins/csvimport/csvdialog.cpp
++++ b/kmymoney/plugins/csvimport/csvdialog.cpp
+@@ -224,7 +224,6 @@
+
+ m_investmentDlg->init();
+ Qt::WindowFlags eFlags = windowFlags();
+- eFlags |= Qt::WindowStaysOnTopHint;
+ m_wiz->setWindowFlags(eFlags);
+ m_wiz->show();
+ }// CSVDialog
+
diff --git a/app-office/kmymoney/files/kmymoney-4.8.0-gpgmepp.patch b/app-office/kmymoney/files/kmymoney-4.8.0-gpgmepp.patch
new file mode 100644
index 000000000000..7b76eb1358c6
--- /dev/null
+++ b/app-office/kmymoney/files/kmymoney-4.8.0-gpgmepp.patch
@@ -0,0 +1,77 @@
+From cddb71b5bbe0c7d73877f0308ad0ac64d9f99c20 Mon Sep 17 00:00:00 2001
+From: Andreas Sturmlechner <andreas.sturmlechner@gmail.com>
+Date: Thu, 10 Nov 2016 15:53:32 +0100
+Subject: [PATCH 1/2] Use GpgME++ if possible, QGpgme from kdepimlibs-4 as
+ fallback
+
+Remove bogus qgpgme include.
+
+REVIEW: 129371
+---
+ CMakeLists.txt | 9 ++++++++-
+ libkdchart/kdablibfakes/src/KDABLibFakes.h | 3 +++
+ libkgpgfile/CMakeLists.txt | 2 +-
+ libkgpgfile/kgpgfile.cpp | 1 -
+ 4 files changed, 12 insertions(+), 3 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 2251518..5a01673 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -76,7 +76,14 @@ else (WIN32)
+ find_package(Boost "1.33.1" COMPONENTS graph)
+ endif (WIN32)
+ # needed by libkgpgfile
+-find_package(QGpgme REQUIRED)
++find_package(Gpgmepp 1.7.0)
++set(GPGMEPP_LIBS Gpgmepp)
++if (NOT Gpgmepp_FOUND)
++ find_package(QGpgme REQUIRED)
++ set(GPGMEPP_LIBS ${QGPGME_LIBRARIES})
++else (NOT Gpgmepp_FOUND)
++ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
++endif (NOT Gpgmepp_FOUND)
+ find_package(KdepimLibs REQUIRED)
+ find_package(SharedMimeInfo REQUIRED)
+
+diff --git a/libkdchart/kdablibfakes/src/KDABLibFakes.h b/libkdchart/kdablibfakes/src/KDABLibFakes.h
+index f47ec24..b998723 100644
+--- a/libkdchart/kdablibfakes/src/KDABLibFakes.h
++++ b/libkdchart/kdablibfakes/src/KDABLibFakes.h
+@@ -59,6 +59,9 @@
+ #elif defined (Q_OS_DARWIN) || defined (Q_OS_CYGWIN)
+ #define ISNAN(x) std::isnan(x)
+ #define ISINF(x) std::isinf(x)
++#elif defined (__GXX_EXPERIMENTAL_CXX0X) || __cplusplus >= 201103L
++#define ISNAN(x) std::isnan(x)
++#define ISINF(x) std::isinf(x)
+ #else
+ #define ISNAN(x) isnan(x)
+ #define ISINF(x) isinf(x)
+diff --git a/libkgpgfile/CMakeLists.txt b/libkgpgfile/CMakeLists.txt
+index a41a6a4..a7c982e 100644
+--- a/libkgpgfile/CMakeLists.txt
++++ b/libkgpgfile/CMakeLists.txt
+@@ -7,6 +7,6 @@ set(kgpgfile_STAT_SRCS
+ )
+
+ kde4_add_library(kgpgfile STATIC ${kgpgfile_STAT_SRCS})
+-target_link_libraries(kgpgfile ${QGPGME_LIBRARIES})
++target_link_libraries(kgpgfile ${GPGMEPP_LIBS})
+
+
+diff --git a/libkgpgfile/kgpgfile.cpp b/libkgpgfile/kgpgfile.cpp
+index b1870be..a5d3d4e 100644
+--- a/libkgpgfile/kgpgfile.cpp
++++ b/libkgpgfile/kgpgfile.cpp
+@@ -47,7 +47,6 @@
+ #include <gpgme++/keylistresult.h>
+ #include <gpgme++/key.h>
+ #include <gpgme++/data.h>
+-#include <qgpgme/dataprovider.h>
+
+ class KGPGFile::Private
+ {
+--
+2.7.3
+
diff --git a/app-office/kmymoney/files/kmymoney-4.8.0-kdepimlibs-optional.patch b/app-office/kmymoney/files/kmymoney-4.8.0-kdepimlibs-optional.patch
new file mode 100644
index 000000000000..30b416868cf6
--- /dev/null
+++ b/app-office/kmymoney/files/kmymoney-4.8.0-kdepimlibs-optional.patch
@@ -0,0 +1,172 @@
+From c66ab47628ad0cf76cc63de0bdf1ed578e4138ed Mon Sep 17 00:00:00 2001
+From: Andreas Sturmlechner <andreas.sturmlechner@gmail.com>
+Date: Thu, 10 Nov 2016 16:18:42 +0100
+Subject: [PATCH 2/2] Make kdepimlibs optional
+
+Based on b5de50ccaa1571c4feb0c17ea8016554e3b822d7 from master.
+
+REVIEW: 129371
+---
+ CMakeLists.txt | 5 ++++-
+ kmymoney/dialogs/settings/ksettingsschedules.cpp | 5 ++++-
+ kmymoney/kmymoney.cpp | 20 +++++++++++++++++++-
+ 3 files changed, 27 insertions(+), 3 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 5a01673..6662521 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -84,7 +84,7 @@ if (NOT Gpgmepp_FOUND)
+ else (NOT Gpgmepp_FOUND)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
+ endif (NOT Gpgmepp_FOUND)
+-find_package(KdepimLibs REQUIRED)
++find_package(KdepimLibs)
+ find_package(SharedMimeInfo REQUIRED)
+
+ # set the configuration switch signaling that KDE PIM libraries were found
+@@ -417,6 +417,7 @@ macro(nice_yesno _varname)
+ endif(${_varname})
+ endmacro(nice_yesno _varname)
+
++nice_yesno("KdepimLibs_FOUND")
+ nice_yesno("LIBOFX_FOUND")
+ nice_yesno("LIBOFX_HAVE_CLIENTUID")
+ nice_yesno("KBANKING_FOUND")
+@@ -433,6 +434,8 @@ message("
+
+ Configure results (user options):
+ --------------------------------------------
++KDE PIM holidays: ${nice_KdepimLibs_FOUND}
++
+ OFX plugin: ${nice_LIBOFX_FOUND}
+ OFX clientuid support ${nice_LIBOFX_HAVE_CLIENTUID}
+
+diff --git a/kmymoney/dialogs/settings/ksettingsschedules.cpp b/kmymoney/dialogs/settings/ksettingsschedules.cpp
+index da138a7..1f0d16f 100644
+--- a/kmymoney/dialogs/settings/ksettingsschedules.cpp
++++ b/kmymoney/dialogs/settings/ksettingsschedules.cpp
+@@ -24,8 +24,10 @@
+
+ #include <kdeversion.h>
+ #include <KStandardDirs>
++#ifdef HAVE_KDEPIMLIBS
+ #include <KHolidays/Holidays>
+ using namespace KHolidays;
++#endif
+
+ // ----------------------------------------------------------------------------
+ // Project Includes
+@@ -50,6 +52,7 @@ KSettingsSchedules::KSettingsSchedules(QWidget* parent) :
+ void KSettingsSchedules::loadList()
+ {
+ QStringList regions;
++#ifdef HAVE_KDEPIMLIBS
+ QStringList regionCodes = HolidayRegion::regionCodes();
+
+ foreach (const QString &regionCode, regionCodes) {
+@@ -65,7 +68,7 @@ void KSettingsSchedules::loadList()
+ regions << region;
+ }
+ regions.sort();
+-
++#endif
+ m_regionMap[m_holidayRegion->itemText(0)] = "";
+ m_holidayRegion->insertItems(1, regions);
+ }
+diff --git a/kmymoney/kmymoney.cpp b/kmymoney/kmymoney.cpp
+index a4251f0..0bd2d3b 100644
+--- a/kmymoney/kmymoney.cpp
++++ b/kmymoney/kmymoney.cpp
+@@ -89,7 +89,9 @@
+ #include <kinputdialog.h>
+ #include <kxmlguifactory.h>
+ #include <krecentfilesaction.h>
++#ifdef HAVE_KDEPIMLIBS
+ #include <KHolidays/Holidays>
++#endif
+
+ // ----------------------------------------------------------------------------
+ // Project Includes
+@@ -221,7 +223,9 @@ public:
+ m_additionalKeyLabel(0),
+ m_additionalKeyButton(0),
+ m_recentFiles(0),
++#ifdef HAVE_KDEPIMLIBS
+ m_holidayRegion(0),
++#endif
+ m_applicationIsReady(true) {
+ // since the days of the week are from 1 to 7,
+ // and a day of the week is used to index this bit array,
+@@ -343,9 +347,10 @@ public:
+ KPushButton* m_additionalKeyButton;
+
+ KRecentFilesAction* m_recentFiles;
+-
++#ifdef HAVE_KDEPIMLIBS
+ // used by the calendar interface for schedules
+ KHolidays::HolidayRegion* m_holidayRegion;
++#endif
+ QBitArray m_processingDays;
+ QMap<QDate, bool> m_holidayMap;
+ QStringList m_consistencyCheckResult;
+@@ -455,7 +460,9 @@ KMyMoneyApp::~KMyMoneyApp()
+ delete d->m_transactionEditor;
+ delete d->m_endingBalanceDlg;
+ delete d->m_moveToAccountSelector;
++#ifdef HAVE_KDEPIMLIBS
+ delete d->m_holidayRegion;
++#endif
+ delete d;
+ }
+
+@@ -7732,6 +7739,7 @@ void KMyMoneyApp::slotOnlineJobLog(const QStringList& onlineJobIds)
+
+ void KMyMoneyApp::setHolidayRegion(const QString& holidayRegion)
+ {
++#ifdef HAVE_KDEPIMLIBS
+ //since the cost of updating the cache is now not negligible
+ //check whether the region has been modified
+ if (!d->m_holidayRegion || d->m_holidayRegion->regionCode() != holidayRegion) {
+@@ -7743,10 +7751,14 @@ void KMyMoneyApp::setHolidayRegion(const QString& holidayRegion)
+ //clear and update the holiday cache
+ preloadHolidays();
+ }
++#else
++ Q_UNUSED(holidayRegion);
++#endif
+ }
+
+ bool KMyMoneyApp::isProcessingDate(const QDate& date) const
+ {
++#ifdef HAVE_KDEPIMLIBS
+ if (!d->m_processingDays.testBit(date.dayOfWeek()))
+ return false;
+ if (!d->m_holidayRegion || !d->m_holidayRegion->isValid())
+@@ -7760,10 +7772,15 @@ bool KMyMoneyApp::isProcessingDate(const QDate& date) const
+ d->m_holidayMap.insert(date, processingDay);
+ return processingDay;
+ }
++#else
++ Q_UNUSED(date);
++ return true;
++#endif
+ }
+
+ void KMyMoneyApp::preloadHolidays()
+ {
++#ifdef HAVE_KDEPIMLIBS
+ //clear the cache before loading
+ d->m_holidayMap.clear();
+ //only do this if it is a valid region
+@@ -7792,6 +7809,7 @@ void KMyMoneyApp::preloadHolidays()
+ }
+ }
+ }
++#endif
+ }
+
+ KMStatus::KMStatus(const QString &text)
+--
+2.7.3
+
diff --git a/app-office/kmymoney/files/kmymoney-4.8.0-soversion.patch b/app-office/kmymoney/files/kmymoney-4.8.0-soversion.patch
new file mode 100644
index 000000000000..f1154908cdec
--- /dev/null
+++ b/app-office/kmymoney/files/kmymoney-4.8.0-soversion.patch
@@ -0,0 +1,28 @@
+From: Thomas Baumgart <thb@net-bembel.de>
+Date: Wed, 13 Jul 2016 05:48:46 +0000
+Subject: Added versioning to kmm_payeeidentifier library
+X-Git-Url: http://quickgit.kde.org/?p=kmymoney.git&a=commitdiff&h=1b818335b4242ad5096489ab4f8e3e7c3fc62d55
+---
+Added versioning to kmm_payeeidentifier library
+
+The missing version caused incorrect naming of the library.
+
+Modified version of patch provided by Christian Dávid in commit
+4a0fed749df71bb2acfc15bd6c0bff4806927f01
+BUG: 364387
+FIXED-IN: 4.8.1
+---
+
+
+--- a/kmymoney/mymoney/payeeidentifier/CMakeLists.txt
++++ b/kmymoney/mymoney/payeeidentifier/CMakeLists.txt
+@@ -11,6 +11,8 @@
+ add_library( kmm_payeeidentifier SHARED
+ ${PAYEEIDENTIFIER_SCRS}
+ )
++
++set_target_properties(kmm_payeeidentifier PROPERTIES VERSION ${GENERIC_LIB_VERSION} SOVERSION ${GENERIC_LIB_SOVERSION})
+
+ generate_export_header( kmm_payeeidentifier )
+
+
diff --git a/app-office/kmymoney/files/kmymoney-4.8.0-tests.patch b/app-office/kmymoney/files/kmymoney-4.8.0-tests.patch
new file mode 100644
index 000000000000..1b71180096a3
--- /dev/null
+++ b/app-office/kmymoney/files/kmymoney-4.8.0-tests.patch
@@ -0,0 +1,210 @@
+From: Cristian Oneț <onet.cristian@gmail.com>
+Date: Thu, 16 Jun 2016 07:06:32 +0000
+Subject: Fix the tests of the 4.8 build.
+X-Git-Url: http://quickgit.kde.org/?p=kmymoney.git&a=commitdiff&h=29ab40829f86f6bd32229ededcc09bf2736e67bd
+---
+Fix the tests of the 4.8 build.
+
+Do this by backporting the change that is already in frameworks in commit 77085ff468336f26f6bcf5f2a1a08e16409172e6. Did not use cherry pick because the testfile was moved in frameworks.
+
+BUG: 364355
+---
+
+
+--- a/kmymoney/mymoney/storage/mymoneymap.h
++++ b/kmymoney/mymoney/storage/mymoneymap.h
+@@ -195,7 +195,7 @@
+ that = *(dynamic_cast<QMap<Key, T>* >(const_cast<MyMoneyMap<Key, T>* >(this)));
+ }
+
+- inline size_t count(void) const {
++ inline int count(void) const {
+ return QMap<Key, T>::count();
+ }
+
+
+--- a/kmymoney/mymoney/storage/mymoneyseqaccessmgrtest.cpp
++++ b/kmymoney/mymoney/storage/mymoneyseqaccessmgrtest.cpp
+@@ -58,13 +58,13 @@
+ QCOMPARE(m->m_nextPayeeID, 0ul);
+ QCOMPARE(m->m_nextScheduleID, 0ul);
+ QCOMPARE(m->m_nextReportID, 0ul);
+- QCOMPARE(m->m_institutionList.count(), 0ul);
+- QCOMPARE(m->m_accountList.count(), 5ul);
+- QCOMPARE(m->m_transactionList.count(), 0ul);
+- QCOMPARE(m->m_transactionKeys.count(), 0ul);
+- QCOMPARE(m->m_payeeList.count(), 0ul);
+- QCOMPARE(m->m_tagList.count(), 0ul);
+- QCOMPARE(m->m_scheduleList.count(), 0ul);
++ QCOMPARE(m->m_institutionList.count(), 0);
++ QCOMPARE(m->m_accountList.count(), 5);
++ QCOMPARE(m->m_transactionList.count(), 0);
++ QCOMPARE(m->m_transactionKeys.count(), 0);
++ QCOMPARE(m->m_payeeList.count(), 0);
++ QCOMPARE(m->m_tagList.count(), 0);
++ QCOMPARE(m->m_scheduleList.count(), 0);
+
+ QCOMPARE(m->m_dirty, false);
+ QCOMPARE(m->m_creationDate, QDate::currentDate());
+@@ -187,7 +187,7 @@
+
+ QCOMPARE(m->m_nextAccountID, 1ul);
+ QCOMPARE(m->dirty(), true);
+- QCOMPARE(m->m_accountList.count(), static_cast<std::size_t>(6));
++ QCOMPARE(m->m_accountList.count(), 6);
+ QCOMPARE(m->m_accountList["A000001"].name(), QLatin1String("AccountName"));
+ }
+
+@@ -235,7 +235,7 @@
+ m->m_dirty = false;
+
+ QCOMPARE(m->m_nextAccountID, 2ul);
+- QCOMPARE(m->m_accountList.count(), static_cast<std::size_t>(7));
++ QCOMPARE(m->m_accountList.count(), 7);
+
+ // try to add account to undefined account
+ try {
+@@ -271,7 +271,7 @@
+ i.setName("Inst Name");
+
+ m->addInstitution(i);
+- QCOMPARE(m->m_institutionList.count(), static_cast<std::size_t>(1));
++ QCOMPARE(m->m_institutionList.count(), 1);
+ QCOMPARE(m->m_nextInstitutionID, 1ul);
+ QCOMPARE(m->m_institutionList["I000001"].name(), QLatin1String("Inst Name"));
+ }
+@@ -950,11 +950,11 @@
+ // check that we can remove an unreferenced payee
+ MyMoneyPayee p = m->payee("P000001");
+ try {
+- QCOMPARE(m->m_payeeList.count(), static_cast<std::size_t>(1));
++ QCOMPARE(m->m_payeeList.count(), 1);
+ m->removePayee(p);
+ m->commitTransaction();
+ m->startTransaction();
+- QCOMPARE(m->m_payeeList.count(), static_cast<std::size_t>(0));
++ QCOMPARE(m->m_payeeList.count(), 0);
+ QCOMPARE(m->dirty(), true);
+ } catch (const MyMoneyException &) {
+ QFAIL("Unexpected exception");
+@@ -996,7 +996,7 @@
+ QFAIL("Expected exception");
+ } catch (const MyMoneyException &) {
+ }
+- QCOMPARE(m->m_payeeList.count(), static_cast<std::size_t>(1));
++ QCOMPARE(m->m_payeeList.count(), 1);
+ }
+
+ void MyMoneySeqAccessMgrTest::testAddTag()
+@@ -1046,11 +1046,11 @@
+ // check that we can remove an unreferenced tag
+ MyMoneyTag ta = m->tag("G000001");
+ try {
+- QCOMPARE(m->m_tagList.count(), static_cast<std::size_t>(1));
++ QCOMPARE(m->m_tagList.count(), 1);
+ m->removeTag(ta);
+ m->commitTransaction();
+ m->startTransaction();
+- QCOMPARE(m->m_tagList.count(), static_cast<std::size_t>(0));
++ QCOMPARE(m->m_tagList.count(), 0);
+ QCOMPARE(m->dirty(), true);
+ } catch (const MyMoneyException &) {
+ QFAIL("Unexpected exception");
+@@ -1094,7 +1094,7 @@
+ QFAIL("Expected exception");
+ } catch (const MyMoneyException &) {
+ }
+- QCOMPARE(m->m_tagList.count(), static_cast<std::size_t>(1));
++ QCOMPARE(m->m_tagList.count(), 1);
+ }
+
+ void MyMoneySeqAccessMgrTest::testRemoveAccountFromTree()
+@@ -1267,7 +1267,7 @@
+
+
+ try {
+- QCOMPARE(m->m_scheduleList.count(), static_cast<std::size_t>(0));
++ QCOMPARE(m->m_scheduleList.count(), 0);
+ MyMoneyTransaction t1;
+ MyMoneySplit s1, s2;
+ s1.setAccountId("A000001");
+@@ -1287,7 +1287,7 @@
+
+ m->addSchedule(schedule);
+
+- QCOMPARE(m->m_scheduleList.count(), static_cast<std::size_t>(1));
++ QCOMPARE(m->m_scheduleList.count(), 1);
+ QCOMPARE(schedule.id(), QLatin1String("SCH000001"));
+ QCOMPARE(m->m_scheduleList["SCH000001"].id(), QLatin1String("SCH000001"));
+ } catch (const MyMoneyException &) {
+@@ -1342,7 +1342,7 @@
+ sched.setName("New Sched-Name");
+ try {
+ m->modifySchedule(sched);
+- QCOMPARE(m->m_scheduleList.count(), static_cast<std::size_t>(1));
++ QCOMPARE(m->m_scheduleList.count(), 1);
+ QCOMPARE(m->m_scheduleList["SCH000001"].name(), QLatin1String("New Sched-Name"));
+
+ } catch (const MyMoneyException &) {
+@@ -1373,7 +1373,7 @@
+ try {
+ m->removeSchedule(sched);
+ m->commitTransaction();
+- QCOMPARE(m->m_scheduleList.count(), static_cast<std::size_t>(0));
++ QCOMPARE(m->m_scheduleList.count(), 0);
+
+ } catch (const MyMoneyException &) {
+ m->rollbackTransaction();
+@@ -1548,13 +1548,13 @@
+ void MyMoneySeqAccessMgrTest::testAddCurrency()
+ {
+ MyMoneySecurity curr("EUR", "Euro", "?", 100, 100);
+- QCOMPARE(m->m_currencyList.count(), static_cast<std::size_t>(0));
++ QCOMPARE(m->m_currencyList.count(), 0);
+ m->m_dirty = false;
+ try {
+ m->addCurrency(curr);
+ m->commitTransaction();
+ m->startTransaction();
+- QCOMPARE(m->m_currencyList.count(), static_cast<std::size_t>(1));
++ QCOMPARE(m->m_currencyList.count(), 1);
+ QCOMPARE(m->m_currencyList["EUR"].name(), QLatin1String("Euro"));
+ QCOMPARE(m->dirty(), true);
+ } catch (const MyMoneyException &) {
+@@ -1582,7 +1582,7 @@
+ m->modifyCurrency(curr);
+ m->commitTransaction();
+ m->startTransaction();
+- QCOMPARE(m->m_currencyList.count(), static_cast<std::size_t>(1));
++ QCOMPARE(m->m_currencyList.count(), 1);
+ QCOMPARE(m->m_currencyList["EUR"].name(), QLatin1String("EURO"));
+ QCOMPARE(m->dirty(), true);
+ } catch (const MyMoneyException &) {
+@@ -1611,7 +1611,7 @@
+ m->removeCurrency(curr);
+ m->commitTransaction();
+ m->startTransaction();
+- QCOMPARE(m->m_currencyList.count(), static_cast<std::size_t>(0));
++ QCOMPARE(m->m_currencyList.count(), 0);
+ QCOMPARE(m->dirty(), true);
+ } catch (const MyMoneyException &) {
+ QFAIL("Unexpected exception");
+@@ -1668,7 +1668,7 @@
+ try {
+ m->addCurrency(unknownCurr);
+ m->m_dirty = false;
+- QCOMPARE(m->m_currencyList.count(), static_cast<std::size_t>(2));
++ QCOMPARE(m->m_currencyList.count(), 2);
+ QCOMPARE(m->currencyList().count(), 2);
+ QCOMPARE(m->dirty(), false);
+ } catch (const MyMoneyException &) {
+@@ -1797,7 +1797,7 @@
+
+ QCOMPARE(m->m_nextOnlineJobID, 1ul);
+ QCOMPARE(m->dirty(), true);
+- QCOMPARE(m->m_onlineJobList.count(), static_cast<std::size_t>(1));
++ QCOMPARE(m->m_onlineJobList.count(), 1);
+ QVERIFY(! m->m_onlineJobList["O000001"].isNull());
+
+ }
+