Hello community, here is the log from the commit of package kmymoney for openSUSE:Factory checked in at 2017-06-12 15:33:18 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kmymoney (Old) and /work/SRC/openSUSE:Factory/.kmymoney.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kmymoney" Mon Jun 12 15:33:18 2017 rev:52 rq:502513 version:4.8.0 Changes: -------- --- /work/SRC/openSUSE:Factory/kmymoney/kmymoney.changes 2017-06-05 18:50:15.585914388 +0200 +++ /work/SRC/openSUSE:Factory/.kmymoney.new/kmymoney.changes 2017-06-12 15:33:20.196703384 +0200 @@ -1,0 +2,6 @@ +Wed Jun 7 07:38:06 UTC 2017 - wba...@tmo.at + +- Add aqbanking-5.1-backward-compatibility.patch to make it + possible to build the kbanking plugin on Leap 42.X (boo#1042760) + +------------------------------------------------------------------- New: ---- aqbanking-5.1-backward-compatibility.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kmymoney.spec ++++++ --- /var/tmp/diff_new_pack.uSXDCE/_old 2017-06-12 15:33:21.208560671 +0200 +++ /var/tmp/diff_new_pack.uSXDCE/_new 2017-06-12 15:33:21.212560107 +0200 @@ -28,6 +28,8 @@ Patch1: kmymoney-4.8.0-fix-csv-import-account-type.patch # PATCH-FIX-UPSTREAM fix-build.patch -- fix build with latest cmake in Factory Patch2: fix-build.patch +# PATCH-FIX-OPENSUSE aqbanking-5.1-backward-compatibility.patch boo#1042760 -- allow to build the kbanking plugin on Leap 42 +Patch3: aqbanking-5.1-backward-compatibility.patch BuildRequires: aqbanking-devel %if 0%{?suse_version} > 1325 BuildRequires: libboost_headers-devel @@ -90,6 +92,9 @@ %setup -q %patch1 -p1 %patch2 -p1 +%if 0%{suse_version} <= 1320 +%patch3 -p1 +%endif %build %cmake_kde4 -d build ++++++ aqbanking-5.1-backward-compatibility.patch ++++++ >From 245109ca0f045d5acba58d84862f343c1f597f13 Mon Sep 17 00:00:00 2001 From: Wolfgang Bauer <wba...@tmo.at> Date: Wed, 7 Jun 2017 11:07:36 +0200 Subject: [PATCH] Add back compatibility with older aqbanking and gwenhywfar This makes it possible to enable/build the kbanking plugin with the old aqbanking and gwenhywfar versions in Leap 42.X. The added cmake files are taken from kmymoney 4.7.2. Fixes boo#1042760. (based on a patch by i...@engsas.de) --- CMakeLists.txt | 8 ++--- cmake/modules/FindAqBanking.cmake | 35 ++++++++++++++++++++++ cmake/modules/FindGwenhywfar.cmake | 44 ++++++++++++++++++++++++++++ kmymoney/plugins/kbanking/CMakeLists.txt | 7 +---- kmymoney/plugins/kbanking/mymoneybanking.cpp | 26 +++++++++++++++- 5 files changed, 108 insertions(+), 12 deletions(-) create mode 100644 cmake/modules/FindAqBanking.cmake create mode 100644 cmake/modules/FindGwenhywfar.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 526ffc18..f75b6963 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -175,13 +175,11 @@ if(DEFINED ENABLE_KBANKING) endif(DEFINED ENABLE_KBANKING) option(ENABLE_KBANKING "Enable KBanking plugin" ON) if(ENABLE_KBANKING) - find_package(GWENHYWFAR CONFIG "4.13.0") - find_package(gwengui-qt4 CONFIG "4.13.0") - find_package(gwengui-cpp CONFIG "4.13.0") + find_package(Gwenhywfar) message(STATUS "Gwenhywfar ${GWENHYWFAR_VERSION} found at ${GWENHYWFAR_INCLUDE_DIRS} (${GWENHYWFAR_LIBRARIES})") - find_package(AQBANKING CONFIG "5.5.1") + find_package(AqBanking) message(STATUS "AqBanking ${AQBANKING_VERSION} found at ${AQBANKING_INCLUDE_DIRS} (${AQBANKING_LIBRARIES})") - if (AQBANKING_FOUND AND GWENHYWFAR_FOUND AND gwengui-qt4_FOUND AND gwengui-cpp_FOUND) + if (AQBANKING_FOUND AND GWENHYWFAR_FOUND) set(KBANKING_FOUND ON) else () if(NOT KBANKING_FOUND STREQUAL "AUTO") diff --git a/cmake/modules/FindAqBanking.cmake b/cmake/modules/FindAqBanking.cmake new file mode 100644 index 00000000..7826691f --- /dev/null +++ b/cmake/modules/FindAqBanking.cmake @@ -0,0 +1,35 @@ +# Find AqBanking +# +# AQBANKING_FOUND - system has AqBanking with the minimum version needed +# AQBANKING_INCLUDE_DIRS - the AqBanking include directories +# AQBANKING_LIBRARIES - The libraries needed to use AqBanking +# AQBANKING_VERSION = The version of AqBanking as defined in version.h + +set(AQBANKING_FOUND FALSE) + +if(NOT AQBANKING_MIN_VERSION) + set(AQBANKING_MIN_VERSION "5.0.0") +endif(NOT AQBANKING_MIN_VERSION) + +if(NOT AQBANKING_MAX_VERSION) + # for some unknown reason, we need to give a micro version number + # with an offset of 1 to the PKG_CHECK_MODULES macro. + # The actual version of KBanking will work with is 4.99.8 + + # set(AQBANKING_MAX_VERSION "4.99.9") + + # Currently there is no max version necessary +endif(NOT AQBANKING_MAX_VERSION) + +if(AQBANKING_INCLUDE_DIRS AND AQBANKING_LIBRARIES) + # Already in cache, be silent + set(AQBANKING_FIND_QUIETLY TRUE) +endif(AQBANKING_INCLUDE_DIRS AND AQBANKING_LIBRARIES) + +if(AQBANKING_MIN_VERSION AND AQBANKING_MAX_VERSION) + PKG_CHECK_MODULES(AQBANKING aqbanking>=${AQBANKING_MIN_VERSION} aqbanking<=${AQBANKING_MAX_VERSION}) +else (AQBANKING_MIN_VERSION AND AQBANKING_MAX_VERSION) + PKG_CHECK_MODULES(AQBANKING aqbanking>=${AQBANKING_MIN_VERSION}) +endif (AQBANKING_MIN_VERSION AND AQBANKING_MAX_VERSION) + +mark_as_advanced(AQBANKING_INCLUDE_DIRS AQBANKING_LIBRARIES) diff --git a/cmake/modules/FindGwenhywfar.cmake b/cmake/modules/FindGwenhywfar.cmake new file mode 100644 index 00000000..526c0415 --- /dev/null +++ b/cmake/modules/FindGwenhywfar.cmake @@ -0,0 +1,44 @@ +# Find Gwenhywfar +# +# GWENHYWFAR_FOUND - system has Gwenhywfar with the minimum version needed +# GWENHYWFAR_INCLUDE_DIRS - the Gwenhywfar include directories +# GWENHYWFAR_LIBRARIES - The libraries needed to use Gwenhywfar +# GWENHYWFAR_VERSION = The version of Gwenhywfar as defined in version.h + +find_package(PkgConfig) + +set(GWENHYWFAR_FOUND FALSE) + +if(NOT GWENHYWFAR_MIN_VERSION) + set(GWENHYWFAR_MIN_VERSION "4.0.0") +endif(NOT GWENHYWFAR_MIN_VERSION) + +if(GWENHYWFAR_INCLUDE_DIRS AND GWENHYWFAR_LIBRARIES) + # Already in cache, be silent + set(GWENHYWFAR_FIND_QUIETLY TRUE) +endif(GWENHYWFAR_INCLUDE_DIRS AND GWENHYWFAR_LIBRARIES) + +PKG_CHECK_MODULES(GWENHYWFAR_CORE gwenhywfar>=${GWENHYWFAR_MIN_VERSION}) +PKG_CHECK_MODULES(GWENHYWFAR_QT4GUI gwengui-qt4>=${GWENHYWFAR_MIN_VERSION}) + +if (${GWENHYWFAR_CORE_FOUND} AND ${GWENHYWFAR_QT4GUI_FOUND}) + set(GWENHYWFAR_FOUND TRUE) + set(GWENHYWFAR_INCLUDE_DIRS ${GWENHYWFAR_CORE_INCLUDE_DIRS}) + set(GWENHYWFAR_LIBRARIES ${GWENHYWFAR_QT4GUI_LIBRARIES} ${GWENHYWFAR_CORE_LIBRARIES}) + set(GWENHYWFAR_VERSION ${GWENHYWFAR_CORE_VERSION}) +else (${GWENHYWFAR_CORE_FOUND} AND ${GWENHYWFAR_QT4GUI_FOUND}) + set(GWENHYWFAR_FOUND FALSE) + unset(GWENHYWFAR_INCLUDE_DIRS) + unset(GWENHYWFAR_LIBRARIES) + unset(GWENHYWFAR_VERSION) +endif (${GWENHYWFAR_CORE_FOUND} AND ${GWENHYWFAR_QT4GUI_FOUND}) + +if (NOT ${GWENHYWFAR_QT4GUI_FOUND}) + message(WARNING "Gwenhywfar does not have the Qt4Banking frontend enabled") +endif (NOT ${GWENHYWFAR_QT4GUI_FOUND}) + +if (NOT ${GWENHYWFAR_CORE_VERSION} VERSION_EQUAL ${GWENHYWFAR_QT4GUI_VERSION}) + message(WARNING "Gwenhywfar libraries versions mismatch") +endif (NOT ${GWENHYWFAR_CORE_VERSION} VERSION_EQUAL ${GWENHYWFAR_QT4GUI_VERSION}) + +mark_as_advanced(GWENHYWFAR_INCLUDE_DIRS GWENHYWFAR_LIBRARIES) diff --git a/kmymoney/plugins/kbanking/CMakeLists.txt b/kmymoney/plugins/kbanking/CMakeLists.txt index f73fac3c..8c32e9a1 100644 --- a/kmymoney/plugins/kbanking/CMakeLists.txt +++ b/kmymoney/plugins/kbanking/CMakeLists.txt @@ -7,10 +7,7 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/widgets ${CMAKE_CURRENT_BINARY_DIR}/widgets ${GWENHYWFAR_INCLUDE_DIRS} - ${AQBANKING_INCLUDE_DIRS} - ${gwengui-cpp_INCLUDE_DIRS} - ${gwengui-qt4_INCLUDE_DIRS} -) + ${AQBANKING_INCLUDE_DIRS}) add_subdirectory( dialogs ) add_subdirectory( widgets ) @@ -56,8 +53,6 @@ target_link_libraries(kmm_kbanking ${KDE4_KDEUI_LIBS} ${QT_QTDECLARATIVE_LIBRARY} ${GWENHYWFAR_LIBRARIES} - ${gwengui-qt4_LIBRARIES} - ${gwengui-cpp_LIBRARIES} ${AQBANKING_LIBRARIES} ${LIBALKIMIA_LIBRARIES} ) diff --git a/kmymoney/plugins/kbanking/mymoneybanking.cpp b/kmymoney/plugins/kbanking/mymoneybanking.cpp index 4dc2e8e2..b4d8cbc4 100644 --- a/kmymoney/plugins/kbanking/mymoneybanking.cpp +++ b/kmymoney/plugins/kbanking/mymoneybanking.cpp @@ -90,6 +90,11 @@ #include "gwenhywfarqtoperators.h" #include "aqbankingkmmoperators.h" +#if AQB_IS_VERSION(5,2,0,1) +/** Defined for aqbanking > 5.2.0 */ +# define AQBANKING_VERSION_GREATER_5_2_0 +#endif + K_PLUGIN_FACTORY(KBankingFactory, registerPlugin<KBankingPlugin>();) K_EXPORT_PLUGIN(KBankingFactory("kmm_kbanking")) @@ -672,8 +677,12 @@ IonlineTaskSettings::ptr KBankingPlugin::settings(QString accountId, QString tas QScopedPointer<AB_JOB, QScopedPointerAbJobDeleter> abJob(AB_JobSingleTransfer_new(abAcc)); if (AB_Job_CheckAvailability(abJob.data()) != 0) return IonlineTaskSettings::ptr(); - +// adapted from http://code.gnucash.org/docs/MASTER/dialog-ab-trans_8c_source.html +#ifdef AQBANKING_VERSION_GREATER_5_2_0 const AB_TRANSACTION_LIMITS* limits = AB_Job_GetFieldLimits(abJob.data()); +#else + const AB_TRANSACTION_LIMITS* limits = AB_JobSingleTransfer_GetFieldLimits(abJob.data()); +#endif return AB_TransactionLimits_toGermanOnlineTaskSettings(limits).dynamicCast<IonlineTaskSettings>(); //! @todo needs free? because that is not possible with const AB_TRANSACTION_LIMITS* // AB_TransactionLimits_free( limits ); @@ -682,7 +691,12 @@ IonlineTaskSettings::ptr KBankingPlugin::settings(QString accountId, QString tas QScopedPointer<AB_JOB, QScopedPointerAbJobDeleter> abJob(AB_JobSepaTransfer_new(abAcc)); if (AB_Job_CheckAvailability(abJob.data()) != 0) return IonlineTaskSettings::ptr(); +// adapted from http://code.gnucash.org/docs/MASTER/dialog-ab-trans_8c_source.html +#ifdef AQBANKING_VERSION_GREATER_5_2_0 const AB_TRANSACTION_LIMITS* limits = AB_Job_GetFieldLimits(abJob.data()); +#else + const AB_TRANSACTION_LIMITS* limits = AB_JobSingleTransfer_GetFieldLimits(abJob.data()); +#endif return AB_TransactionLimits_toSepaOnlineTaskSettings(limits).dynamicCast<IonlineTaskSettings>(); } return IonlineTaskSettings::ptr(); @@ -734,7 +748,12 @@ bool KBankingPlugin::enqueTransaction(onlineJobTyped<germanOnlineTransfer>& job) AB_Transaction_SetValue(abTransaction, AB_Value_fromMyMoneyMoney(job.task()->value())); /** @todo LOW remove Debug info */ +// following the gnucash code, aqbnkaing prior 5.2 does support +// identical functions, but per transaction type (sepa, debitnote, ...). +// Therefore I disabled debug output before aqbanking 5.2 +#ifdef AQBANKING_VERSION_GREATER_5_2_0 qDebug() << "SetTransaction: " << AB_Job_SetTransaction(abJob, abTransaction); +#endif GWEN_DB_NODE *gwenNode = AB_Job_GetAppData(abJob); GWEN_DB_SetCharValue(gwenNode, GWEN_DB_FLAGS_DEFAULT, "kmmOnlineJobId", m_kbanking->mappingId(job).toLatin1().constData()); @@ -797,7 +816,12 @@ bool KBankingPlugin::enqueTransaction(onlineJobTyped<sepaOnlineTransfer>& job) AB_Transaction_SetValue(AbTransaction, AB_Value_fromMyMoneyMoney(job.constTask()->value())); /** @todo LOW remove Debug info */ +// following the gnucash code, aqbnkaing prior 5.2 does support +// identical functions, but per transaction type (sepa, debitnote, ...). +// Therefore I disabled debug output before aqbanking 5.2 +#ifdef AQBANKING_VERSION_GREATER_5_2_0 qDebug() << "SetTransaction: " << AB_Job_SetTransaction(abJob, AbTransaction); +#endif GWEN_DB_NODE *gwenNode = AB_Job_GetAppData(abJob); GWEN_DB_SetCharValue(gwenNode, GWEN_DB_FLAGS_DEFAULT, "kmmOnlineJobId", m_kbanking->mappingId(job).toLatin1().constData()); -- 2.12.3