summaryrefslogtreecommitdiff
path: root/app-office/kmymoney
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /app-office/kmymoney
reinit the tree, so we can have metadata
Diffstat (limited to 'app-office/kmymoney')
-rw-r--r--app-office/kmymoney/Manifest13
-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
-rw-r--r--app-office/kmymoney/kmymoney-4.8.0-r2.ebuild91
-rw-r--r--app-office/kmymoney/metadata.xml16
11 files changed, 985 insertions, 0 deletions
diff --git a/app-office/kmymoney/Manifest b/app-office/kmymoney/Manifest
new file mode 100644
index 000000000000..8a993dee55e0
--- /dev/null
+++ b/app-office/kmymoney/Manifest
@@ -0,0 +1,13 @@
+AUX kmymoney-4.8.0-alkimia-detect.patch 1172 SHA256 61045b42bac92d8e141cbb936f9509d3de69cb649fb17cc0abe5179b3d1aed5e SHA512 7e7cd092d460bf462fd46ee9003dcbf60ec3525bf1bfadac97d440688e5835737862cdc0f8275559d2e516a05ac25566faf037ac2e2bdac8b5f41e975f05c2c3 WHIRLPOOL 3a4bff547964429fdae6b0b661750a8e2c40bb45e58f1b682222b8bfdb0a9780898fe9ff3abaa20e02c5615e0f2d6bbcd0dd7e8954030495a54b77363121b20c
+AUX kmymoney-4.8.0-cmake-3.9.patch 1657 SHA256 4e5a998e7ce99fdbd8e9ffae0c8033600ad13fab02b595430597791a5cc6dedf SHA512 6acb4354c08b551fd290e2943e85436b74a809f8681dc8fdaaff7d54912332dff22ddef7b57a03292a936645d5baf0bbc2cc94cf23c565cb939639fd9bb912ff WHIRLPOOL e3733adebd3a40f0604a5aa370fa39b7162040463025669bc67a15cb883f11188dfa92d5ac0c86f304e925394f863680e2f1f21ca3f75663c80e63806ceccebf
+AUX kmymoney-4.8.0-drop-national-onlinetasks.patch 12078 SHA256 d594df9d3c6d6292cee84f5196b9fb28b098f369c5d648a26de41545cd85108c SHA512 7db0358ccdc55bf12ffe11fd765acd93d2493036177f379bf30996b11b51feb2188343fcedc88b5784a67b0cfd61b2c77c83c582c3cfe793c37e8461ec312781 WHIRLPOOL 12057e9f199b4f7b81df72875478e529c1b6b9509adf65215d5fa159319cdac647ae1a0f6565b805ead7530a6fd3bb5aaf922674025439bfcbb8fdc36558b90c
+AUX kmymoney-4.8.0-fix-csvdialog.patch 626 SHA256 2fff7799962aedb628a806f867f12c092b42764dbcf6d87fdc1e7bbecf8fc867 SHA512 7a26265cd16e194113bc50935204f0c2709b7d6be49ec42cd3ee908e237f2172245c5d49094b6fabe82bef2e6b3e54cd4f74ed6dc577927b62dd50f8b822d20b WHIRLPOOL 278be14e906c52eb0dadf4e69b15a4beddccb44afd089a1aee83a05c344570d3c7445cad9a70ab7a74e170ea85f18768763177dbf315690df40a36b0b771945d
+AUX kmymoney-4.8.0-gpgmepp.patch 2446 SHA256 4d0a01fdc62eb07ea4a27afdc1fb56938b6943491c31d3d3f903facbcf9899c9 SHA512 7c77b7994c7bf94746df182e44b980f6344bb3483363c306c4c6deb8e1eb154d2a058c0314fe1e7c9e9501da4f8c9816d980afcec7bd6ca25aaf333f5e572c55 WHIRLPOOL 1309aeeb5e9e7efee95dada5bf36b5f4d6b1f1de0ee5e377bb00fa7bdfa50352525b5f987c424b463fe53340ea6b5b8f3dafbb35fcd86e10e2a99b326e37940b
+AUX kmymoney-4.8.0-kdepimlibs-optional.patch 5262 SHA256 b1bf519c536f1fadb14b30b674ea2d4dce4f52009cfac7a7455d2cdfd379e127 SHA512 89670941602b83a24b8825a99a6ba59a3e27fa8a1ab7d49c477c413c1603d8a8a61a8cc9516402058d9424dbbe0e545a2c4f6c912cc8f9aee51654a807ec7432 WHIRLPOOL 0f95085d0025fb5801615df3962248d69f1a394eb22cae225834e3569ada8e84d0e9a3f52e817bbfa47c71893aa0fb60d88268ecac30e222ca6968dda7874399
+AUX kmymoney-4.8.0-soversion.patch 870 SHA256 74eabed61e7db6696a73bdd7cd974dfa9aaf0c256fb940761b11fdf9c21c7479 SHA512 b1687ddf582e2ed2ca2b26b4bd39428a69fee6469fbdba6b1f7575f433db822eaf9ef96d57c2b35a0bbe22e4fa140438e7005bab4953035ba5adfc853ef98070 WHIRLPOOL e44bfb3c99057d77dae6d89bba2475afe4155445df2872f5d57ddac6cb6f4e02dc771163527c5f38cf41c0c5e8dd92766629fa6ec1d7f752b9c5765f6270c0ad
+AUX kmymoney-4.8.0-tests.patch 7303 SHA256 21cd9d7fece1b38b87ade8e4fc7f01397cf44a7fe0bc44cd08dda01d05207215 SHA512 e7f8cd817eee087faa02b7ca4320a2df0a3c52f4db2dfe8ce32314d2abb8572f0f2caa8b0f96e4a43be3fab3dff76e5211e693cfa6105ee85d1252cc6e3bcfbb WHIRLPOOL 254bb128ca8789b70519ad59d54fe2b364336e698da000177343d9a345461d4533c7f20aae6e0c3ce6b50c783b3b507cb5788d0331ef7d71ba79f1f132a35c28
+DIST kmymoney-4.8.0.tar.xz 20785888 SHA256 c2a635710aafa6925a49803c480e043e0bf4bc5b62430689aa5eb95619f48ac2 SHA512 883635a94333341cbe3d6c835fe1dbc1cc5ed5cc834f76c945030ec680aee4fc6ceb367fdde811672a392eb5cd7b735c858e0be5a7f7964a4ccf5f9ba8865381 WHIRLPOOL acbada22e3e9c83e88e571b397c37da79eb36ce05a55786c352af306d3f863dc2db7140c9f1e1757393ea7f6dc9a1728debe077c71ce28b655c65e707f1130cd
+EBUILD kmymoney-4.8.0-r2.ebuild 2206 SHA256 d3cc9ebd7bc4b94b488c32f2fb44c1158d9d464defaec7a8fbf4b6eea16d7bed SHA512 e55f0d764337c93506e9956f090b89080c60661aff8e7c530c8a36de9096cc85427dedb0bbca937ffe55b40f3c3cc633429571c30e5c3f4e88ca572a0e902999 WHIRLPOOL 07f8b4fbe6716a39d0b32fde4011b71119d884cdd1bbe75707d83050546afcadd7989cc99d29d466ea1ea545e8f5797689eaffe34ea08f5bcdcb12cde23ba2d6
+MISC ChangeLog 4485 SHA256 9e175277e4da330ae2d945b5de2fe704a85ad896157a82f16932cc9a84dd6911 SHA512 92fd06b647814339aec3d64ed7af4935aaec6d31235b64ecd72e315bedce826311696869a7df4511dcedbb3c07b1ca235c73bc65db9853ab05abf4224be451ed WHIRLPOOL 93f5ff364291eec18400b39aa75e2af182098fafad9ee4dd9a8ef58392a5972e4ca862253e16f8d9415466b09052f3b0c2f57dc0cf183bf3ec7259ff24dffbd0
+MISC ChangeLog-2015 8457 SHA256 2582e98eb7536147ea28b2a71cb0a1a779523c062372e1e0737fc893f06bd86b SHA512 2461320ccd8bed67dd135627efaafd466eee7b5c95d142b7f90d53affa65cff24dfafa1c3583997f6ea06feb912f3bcf3413f2dc9a1599018892b334b4214ac8 WHIRLPOOL 6ec23d745285fcba6e2e7588da1029c0a86742651b349a4d5dbaf58be761b8ee41e0494abb7afa7c245b469485b79333979ce14252d160af2f57517ed61f4cc1
+MISC metadata.xml 607 SHA256 a1b461518a4e68c8bb6e9cf6b94e02008213961e6c546cbf0ea569b470713e04 SHA512 53ff98b9a6a419763e03670c0f6b5da707ff0b17f9f6ac8c03df46502599225d8780c099627fe8bc1c35f13452b80deb88d6fd0da450634f42a9aed827d256e1 WHIRLPOOL c2b048bcf5eb51f3a9798fe5d5d2d4da2e1d07c929a6811d1a62f545b9ba0fb3d1bb28e8459d973e37457f13a325ae36a0733f743baf893d957e974057aa9a72
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());
+
+ }
+
diff --git a/app-office/kmymoney/kmymoney-4.8.0-r2.ebuild b/app-office/kmymoney/kmymoney-4.8.0-r2.ebuild
new file mode 100644
index 000000000000..b6f87338fb73
--- /dev/null
+++ b/app-office/kmymoney/kmymoney-4.8.0-r2.ebuild
@@ -0,0 +1,91 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+KDE_LINGUAS="bs ca ca@valencia cs da de el en_GB es et eu fi fr gl
+hu it kk nds nl pl pt pt_BR ro ru sk sv tr uk zh_CN zh_TW"
+KDE_HANDBOOK="optional"
+SQL_REQUIRED="always"
+VIRTUALX_REQUIRED="test"
+VIRTUALDBUS_TEST="true"
+inherit kde4-base
+
+DESCRIPTION="Personal finance manager by KDE"
+HOMEPAGE="https://kmymoney.org/"
+if [[ ${KDE_BUILD_TYPE} = release ]]; then
+ SRC_URI="mirror://kde/stable/${PN}/${PV}/src/${P}.tar.xz"
+fi
+
+LICENSE="GPL-2"
+SLOT="4"
+KEYWORDS="amd64 x86"
+IUSE="calendar debug doc hbci ofx quotes weboob"
+
+COMMON_DEPEND="
+ >=app-crypt/gpgme-1.7.0[cxx]
+ <app-office/libalkimia-6.0.0
+ dev-libs/gmp:0=
+ dev-libs/libgpg-error
+ x11-misc/shared-mime-info
+ calendar? ( dev-libs/libical:= )
+ hbci? (
+ >=net-libs/aqbanking-5.5.1
+ >=sys-libs/gwenhywfar-4.15.3[qt4]
+ )
+ ofx? ( >=dev-libs/libofx-0.9.4 )
+ weboob? ( www-client/weboob )
+"
+RDEPEND="${COMMON_DEPEND}
+ quotes? ( dev-perl/Finance-Quote )
+"
+DEPEND="${COMMON_DEPEND}
+ dev-libs/boost
+ virtual/pkgconfig
+ doc? ( app-doc/doxygen )
+"
+
+PATCHES=(
+ "${FILESDIR}/${P}-tests.patch"
+ "${FILESDIR}/${P}-alkimia-detect.patch"
+ "${FILESDIR}/${P}-fix-csvdialog.patch"
+ "${FILESDIR}/${P}-soversion.patch"
+ "${FILESDIR}/${P}-gpgmepp.patch"
+ "${FILESDIR}/${P}-kdepimlibs-optional.patch"
+ "${FILESDIR}/${P}-drop-national-onlinetasks.patch"
+ "${FILESDIR}/${P}-cmake-3.9.patch"
+)
+
+src_prepare() {
+ kde4-base_src_prepare
+
+ # don't install as executable
+ sed -i kmymoney/CMakeLists.txt \
+ -e "/install.*kmymoney.appdata/ s/PROGRAMS/FILES/" || die
+
+ # bug #617636, complement to drop-national-onlinetasks.patch
+ rm -r kmymoney/plugins/onlinetasks/national || die
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DUSE_QT_DESIGNER=OFF
+ -DENABLE_LIBICAL=$(usex calendar)
+ -DUSE_DEVELOPER_DOC=$(usex doc)
+ -DENABLE_KBANKING=$(usex hbci)
+ -DENABLE_LIBOFX=$(usex ofx)
+ -DCMAKE_DISABLE_FIND_PACKAGE_KdepimLibs=ON
+ -DENABLE_WEBOOB=$(usex weboob)
+ )
+ kde4-base_src_configure
+}
+
+src_compile() {
+ kde4-base_src_compile
+ use doc && kde4-base_src_compile apidoc
+}
+
+src_install() {
+ use doc && HTML_DOCS=("${BUILD_DIR}/apidocs/html/")
+ kde4-base_src_install
+}
diff --git a/app-office/kmymoney/metadata.xml b/app-office/kmymoney/metadata.xml
new file mode 100644
index 000000000000..2a46248a2be8
--- /dev/null
+++ b/app-office/kmymoney/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>kde@gentoo.org</email>
+ <name>Gentoo KDE Project</name>
+ </maintainer>
+ <use>
+ <flag name="hbci">Enable HBCI support using <pkg>net-libs/aqbanking</pkg></flag>
+ <flag name="quotes">Enable Online Stock Quote retrieval</flag>
+ <flag name="weboob">Enable import of online banking transactions extracted by <pkg>www-client/weboob</pkg></flag>
+ </use>
+ <upstream>
+ <remote-id type="sourceforge">kmymoney2</remote-id>
+ </upstream>
+</pkgmetadata>