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


Reply via email to