git: 3edfc59720f6 - main - finance/kraft: import upstream patches to deal with Akonadi renames

From: Adriaan de Groot <adridg_at_FreeBSD.org>
Date: Sun, 10 Sep 2023 08:45:26 UTC
The branch main has been updated by adridg:

URL: https://cgit.FreeBSD.org/ports/commit/?id=3edfc59720f656a84cda06ed267fbe7f19a78210

commit 3edfc59720f656a84cda06ed267fbe7f19a78210
Author:     Adriaan de Groot <adridg@FreeBSD.org>
AuthorDate: 2023-09-10 08:44:36 +0000
Commit:     Adriaan de Groot <adridg@FreeBSD.org>
CommitDate: 2023-09-10 08:45:22 +0000

    finance/kraft: import upstream patches to deal with Akonadi renames
---
 finance/kraft/Makefile                             |   2 +-
 ...-0001-Adopt-CMake-files-to-Akonadi-prefix-KPim5 | 119 +++++++++++++++++
 ...ption-to-set-AKO_PREFIX-rather-than-an-internal |  25 ++++
 .../files/patch-0003-Fix-Akonadi-legacy-detection  |  47 +++++++
 ...-Akonadi-version-check-for-some-renamed-compone | 147 +++++++++++++++++++++
 5 files changed, 339 insertions(+), 1 deletion(-)

diff --git a/finance/kraft/Makefile b/finance/kraft/Makefile
index a0b7c789b0b2..4f6e5fee4193 100644
--- a/finance/kraft/Makefile
+++ b/finance/kraft/Makefile
@@ -1,7 +1,7 @@
 PORTNAME=	kraft
 DISTVERSIONPREFIX=	v
 DISTVERSION=	1.0
-PORTREVISION=	1
+PORTREVISION=	2
 CATEGORIES=	finance kde
 
 MAINTAINER=	kde@FreeBSD.org
diff --git a/finance/kraft/files/patch-0001-Adopt-CMake-files-to-Akonadi-prefix-KPim5 b/finance/kraft/files/patch-0001-Adopt-CMake-files-to-Akonadi-prefix-KPim5
new file mode 100644
index 000000000000..8e5b8b0640b6
--- /dev/null
+++ b/finance/kraft/files/patch-0001-Adopt-CMake-files-to-Akonadi-prefix-KPim5
@@ -0,0 +1,119 @@
+From f54b317f5cd894e4063b6d4c4c3a96012c1bcb28 Mon Sep 17 00:00:00 2001
+From: Klaas Freitag <kraft@freisturz.de>
+Date: Sat, 29 Apr 2023 10:37:55 +0200
+Subject: [PATCH] Adopt CMake files to Akonadi prefix KPim5
+
+---
+ CMakeLists.txt       | 16 ++++++++++------
+ src/CMakeLists.txt   | 13 ++++++-------
+ tools/CMakeLists.txt |  6 +++---
+ 3 files changed, 19 insertions(+), 16 deletions(-)
+
+diff --git CMakeLists.txt CMakeLists.txt
+index 07e15dd..8b5374c 100644
+--- CMakeLists.txt
++++ CMakeLists.txt
+@@ -8,6 +8,9 @@ find_package(ECM REQUIRED NO_MODULE)
+ set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules)
+ set(CMAKE_AUTOMOC TRUE)
+ 
++# Akonadi Prefix: Set this to KF5 for builds with Akonadi Libs before 5.23
++set(AKO_PREFIX "KPim5")
++
+ include(KDEInstallDirs)
+ include(KDECMakeSettings)
+ include(ECMInstallIcons)
+@@ -47,23 +50,23 @@ set_package_properties(Grantlee5 PROPERTIES
+     TYPE OPTIONAL
+ )
+ 
+-find_package(KF5Akonadi)
+-set_package_properties(KF5Akonadi PROPERTIES
++find_package(${AKO_PREFIX}Akonadi)
++set_package_properties(${AKO_PREFIX}Akonadi PROPERTIES
+     DESCRIPTION "Library for general Access to Akonadi"
+     URL "https://www.kde.org/"
+     PURPOSE "Optionally used for addressbook integration"
+     TYPE OPTIONAL
+ )
+ 
+-find_package(KF5AkonadiContact)
+-set_package_properties(KF5AkonadiContact PROPERTIES
++find_package(${AKO_PREFIX}AkonadiContact)
++set_package_properties(${AKO_PREFIX}AkonadiContact PROPERTIES
+     DESCRIPTION "Library for Accessing Contacts stored in Akonadi"
+     URL "https://www.kde.org/"
+     PURPOSE "Optionally used for addressbook integration"
+     TYPE OPTIONAL
+ )
+ 
+-if(KF5Akonadi_FOUND AND KF5AkonadiContact_FOUND)
++if(${AKO_PREFIX}Akonadi_FOUND AND ${AKO_PREFIX}AkonadiContact_FOUND)
+    add_definitions(-DHAVE_AKONADI)
+ endif()
+ 
+@@ -80,7 +83,8 @@ set(QT_DEFINITIONS "${Qt5Core_DEFINITIONS} ${Qt5Gui_DEFINITIONS} ${Qt5Widgets_DE
+ add_definitions(${QT_DEFINITIONS} )
+ 
+ include_directories(${QT_INCLUDES} src)
+-include_directories( /usr/include/KF5/AkonadiCore )
++include_directories( /usr/include/${AKO_PREFIX}/AkonadiCore )
++include_directories(/usr/include/${AKO_PREFIX}/)
+ 
+ if (IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/po")
+         ki18n_install(po)
+diff --git src/CMakeLists.txt src/CMakeLists.txt
+index 6eaa557..8e9b069 100644
+--- src/CMakeLists.txt
++++ src/CMakeLists.txt
+@@ -1,4 +1,3 @@
+-# include_directories(${KDE4_INCLUDES} ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} ${CMAKE_CURRENT_BINARY_DIR} ${KDEPIMLIBS_INCLUDE_DIRS} external)
+ 
+ include_directories(${QT_INCLUDES} src)
+ add_subdirectory(pics)
+@@ -167,13 +166,13 @@ set(KRAFT_LINK_LIBS
+     ${CTEMPLATE_LIBRARIES} pthread
+     Grantlee5::Templates
+ )
+-if(KF5Akonadi_FOUND)
++if(${AKO_PREFIX}Akonadi_FOUND)
+   list(APPEND KRAFT_LINK_LIBS
+-    KF5::AkonadiCore
+-    KF5::AkonadiContact
+-    KF5::AkonadiAgentBase
+-    KF5::AkonadiWidgets
+-    KF5::AkonadiXml
++    ${AKO_PREFIX}::AkonadiCore
++    ${AKO_PREFIX}::AkonadiContact
++    ${AKO_PREFIX}::AkonadiAgentBase
++    ${AKO_PREFIX}::AkonadiWidgets
++    ${AKO_PREFIX}::AkonadiXml
+   )
+ endif()
+ 
+diff --git tools/CMakeLists.txt tools/CMakeLists.txt
+index 0c58c75..f005cfe 100644
+--- tools/CMakeLists.txt
++++ tools/CMakeLists.txt
+@@ -8,15 +8,15 @@ set(AUTOMOC ON)
+ # For now there is only the Akonadi based address backend, and thus
+ # the findcontact tool is only built if akonadi is there.
+ # If there are other backends, this must be FIXED.
+-if(KF5Akonadi_FOUND)
++if(${AKO_PREFIX}Akonadi_FOUND)
+     add_executable(${findcontact_NAME} ${FINDCONTACT_SRC})
+ 
+     target_link_libraries( ${findcontact_NAME}
+         Qt5::Core
+         Qt5::Widgets
+         KF5::Contacts
+-        KF5::AkonadiCore
+-        KF5::AkonadiContact
++        ${AKO_PREFIX}::AkonadiCore
++        ${AKO_PREFIX}::AkonadiContact
+     )
+ 
+     ########### install files ###############
+-- 
+2.41.0
+
diff --git a/finance/kraft/files/patch-0002-use-option-to-set-AKO_PREFIX-rather-than-an-internal b/finance/kraft/files/patch-0002-use-option-to-set-AKO_PREFIX-rather-than-an-internal
new file mode 100644
index 000000000000..3d556a6e2196
--- /dev/null
+++ b/finance/kraft/files/patch-0002-use-option-to-set-AKO_PREFIX-rather-than-an-internal
@@ -0,0 +1,25 @@
+From 50e090059365ddbacfd219325095f4f6c5f4aa7b Mon Sep 17 00:00:00 2001
+From: Klaas Freitag <kraft@freisturz.de>
+Date: Sat, 29 Apr 2023 22:23:27 +0200
+Subject: [PATCH] use option to set AKO_PREFIX rather than an internal variable
+
+---
+ CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git CMakeLists.txt CMakeLists.txt
+index 8b5374c..f5ecc41 100644
+--- CMakeLists.txt
++++ CMakeLists.txt
+@@ -9,7 +9,7 @@ set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modul
+ set(CMAKE_AUTOMOC TRUE)
+ 
+ # Akonadi Prefix: Set this to KF5 for builds with Akonadi Libs before 5.23
+-set(AKO_PREFIX "KPim5")
++option(AKO_PREFIX "Akonadi Prefix, either KF5 or KPim5, can be set by -DAKO_PREFIX=KF5" "KPim5")
+ 
+ include(KDEInstallDirs)
+ include(KDECMakeSettings)
+-- 
+2.41.0
+
diff --git a/finance/kraft/files/patch-0003-Fix-Akonadi-legacy-detection b/finance/kraft/files/patch-0003-Fix-Akonadi-legacy-detection
new file mode 100644
index 000000000000..64e346705d25
--- /dev/null
+++ b/finance/kraft/files/patch-0003-Fix-Akonadi-legacy-detection
@@ -0,0 +1,47 @@
+From 66b64505bbfbc3285ba34ccacdf454720c8e0abc Mon Sep 17 00:00:00 2001
+From: Klaas Freitag <kraft@freisturz.de>
+Date: Mon, 1 May 2023 14:09:09 +0200
+Subject: [PATCH] Fix Akonadi legacy detection
+
+---
+ CMakeLists.txt | 8 +++++++-
+ INSTALL.md     | 3 +++
+ 2 files changed, 10 insertions(+), 1 deletion(-)
+
+diff --git CMakeLists.txt CMakeLists.txt
+index f5ecc41..82b4e07 100644
+--- CMakeLists.txt
++++ CMakeLists.txt
+@@ -8,8 +8,14 @@ find_package(ECM REQUIRED NO_MODULE)
+ set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules)
+ set(CMAKE_AUTOMOC TRUE)
+ 
++option(AKONADI_LEGACY_BUILD "Build with older versions of Akonadi (KF5 Prefix)" OFF)
+ # Akonadi Prefix: Set this to KF5 for builds with Akonadi Libs before 5.23
+-option(AKO_PREFIX "Akonadi Prefix, either KF5 or KPim5, can be set by -DAKO_PREFIX=KF5" "KPim5")
++set(AKO_PREFIX "KPim5")
++
++if (AKONADI_LEGACY_BUILD)
++  set(AKO_PREFIX "KF5")
++endif()
++message("Akonadi Prefix is ${AKO_PREFIX}")
+ 
+ include(KDEInstallDirs)
+ include(KDECMakeSettings)
+diff --git INSTALL.md INSTALL.md
+index 1edd0ae..77d559c 100644
+--- INSTALL.md
++++ INSTALL.md
+@@ -59,6 +59,9 @@ These are optional to build with Akonadi Support:
+ - akonadi-contact-devel
+ - akonadi-devel
+ 
++To build with Akonadi versions before 23.04, cmake has to run wtih the
++build option `-DAKONADI_LEGACY_BUILD=ON` to use the old prefix KF5.
++
+ ### Build Kraft
+ 
+ cmake is designed so that the build process can be done in a separate
+-- 
+2.41.0
+
diff --git a/finance/kraft/files/patch-0004-Added-Akonadi-version-check-for-some-renamed-compone b/finance/kraft/files/patch-0004-Added-Akonadi-version-check-for-some-renamed-compone
new file mode 100644
index 000000000000..4327b0469e5a
--- /dev/null
+++ b/finance/kraft/files/patch-0004-Added-Akonadi-version-check-for-some-renamed-compone
@@ -0,0 +1,147 @@
+From 51563665cb6b113881e8f1efe00f3df2df48d1f5 Mon Sep 17 00:00:00 2001
+From: Klaas Freitag <kraft@freisturz.de>
+Date: Tue, 29 Aug 2023 21:03:40 +0200
+Subject: [PATCH] Added Akonadi version check for some renamed components
+ (#210)
+
+* Added Akonadi version check for some renamed components
+
+Akonadi renamed the contact viewer and editors namespace.
+
+kudos to @t-8ch
+---
+ CMakeLists.txt                | 10 +++++++++-
+ src/CMakeLists.txt            |  1 +
+ src/addressselectorwidget.cpp | 20 +++++++++++++++-----
+ src/addressselectorwidget.h   | 15 +++++++++++++--
+ 4 files changed, 38 insertions(+), 8 deletions(-)
+
+diff --git CMakeLists.txt CMakeLists.txt
+index 0f5541d..0cd73f9 100644
+--- CMakeLists.txt
++++ CMakeLists.txt
+@@ -109,7 +109,15 @@ set_package_properties(${AKO_PREFIX}AkonadiContact PROPERTIES
+     TYPE OPTIONAL
+ )
+ 
+-if(${AKO_PREFIX}Akonadi_FOUND AND ${AKO_PREFIX}AkonadiContact_FOUND)
++find_package(${AKO_PREFIX}ContactEditor)
++set_package_properties(${AKO_PREFIX}ContactEditor PROPERTIES
++    DESCRIPTION "Library for editing contacts stored in Akonadi"
++    URL "https://www.kde.org/"
++    PURPOSE "Optionally used for addressbook integration"
++    TYPE OPTIONAL
++)
++
++if(${AKO_PREFIX}Akonadi_FOUND AND ${AKO_PREFIX}AkonadiContact_FOUND AND ${AKO_PREFIX}ContactEditor_FOUND)
+    add_definitions(-DHAVE_AKONADI)
+ endif()
+ 
+diff --git src/CMakeLists.txt src/CMakeLists.txt
+index a2bc5dc..eac624d 100644
+--- src/CMakeLists.txt
++++ src/CMakeLists.txt
+@@ -173,6 +173,7 @@ if(${AKO_PREFIX}Akonadi_FOUND)
+   list(APPEND KRAFT_LINK_LIBS
+     ${AKO_PREFIX}::AkonadiCore
+     ${AKO_PREFIX}::AkonadiContact
++    ${AKO_PREFIX}::ContactEditor
+     ${AKO_PREFIX}::AkonadiAgentBase
+     ${AKO_PREFIX}::AkonadiWidgets
+     ${AKO_PREFIX}::AkonadiXml
+diff --git src/addressselectorwidget.cpp src/addressselectorwidget.cpp
+index fd08363..1cf2317 100644
+--- src/addressselectorwidget.cpp
++++ src/addressselectorwidget.cpp
+@@ -235,7 +235,11 @@ KraftContactViewer::KraftContactViewer(QWidget *parent)
+     lay->setMargin(0);
+     setLayout(lay);
+ #ifdef HAVE_AKONADI
++#if AKONADICONTACT_VERSION >= QT_VERSION_CHECK(5, 24, 0)
++    _contactViewer = new ContactEditor::ContactViewer;
++#else
+     _contactViewer = new Akonadi::ContactViewer;
++#endif
+     _contactViewer->setShowQRCode(false);
+ 
+     lay->addWidget(_contactViewer);
+@@ -372,9 +376,12 @@ bool AddressSelectorWidget::backendUp() const
+ void AddressSelectorWidget::slotCreateNewContact()
+ {
+ #ifdef HAVE_AKONADI
+-    // FIXME
+-_addressEditor.reset(new Akonadi::ContactEditorDialog( Akonadi::ContactEditorDialog::CreateMode, this ));
+-_addressEditor->show();
++#if AKONADICONTACT_VERSION >= QT_VERSION_CHECK(5, 24, 0)
++    _addressEditor = new ContactEditor::ContactEditorDialog(ContactEditor::ContactEditorDialog::EditMode, this );
++#else
++    _addressEditor = new Akonadi::ContactEditorDialog(Akonadi::ContactEditorDialog::CreateMode, this );
++#endif
++    _addressEditor->show();
+ #endif
+ }
+ 
+@@ -398,13 +405,16 @@ void AddressSelectorWidget::slotAddresseeSelected(QModelIndex index)
+ void AddressSelectorWidget::slotEditContact()
+ {
+ #ifdef HAVE_AKONADI
+-
+   if( _addressTreeView->selectionModel()->hasSelection() ) {
+       QModelIndex index = _addressTreeView->selectionModel()->currentIndex();
+     if ( index.isValid() ) {
+       const Akonadi::Item item = index.data( Akonadi::EntityTreeModel::ItemRole ).value<Akonadi::Item>();
+       if ( item.isValid() && item.hasPayload<KContacts::Addressee>() ) {
+-        _addressEditor.reset(new Akonadi::ContactEditorDialog( Akonadi::ContactEditorDialog::EditMode, this ));
++#if AKONADICONTACT_VERSION >= QT_VERSION_CHECK(5, 24, 0)
++        _addressEditor = new ContactEditor::ContactEditorDialog(ContactEditor::ContactEditorDialog::EditMode, this );
++#else
++        _addressEditor = new Akonadi::ContactEditorDialog(Akonadi::ContactEditorDialog::CreateMode, this );
++#endif
+         _addressEditor->setContact( item );
+         _addressEditor->show();
+       }
+diff --git src/addressselectorwidget.h src/addressselectorwidget.h
+index 4c5ec3e..70d9759 100644
+--- src/addressselectorwidget.h
++++ src/addressselectorwidget.h
+@@ -30,7 +30,10 @@
+ #else
+ #define AKONADICONTACT_VERSION AKONADI_VERSION
+ #endif
+-#if AKONADICONTACT_VERSION >= QT_VERSION_CHECK(5, 20, 0)
++#if AKONADICONTACT_VERSION >= QT_VERSION_CHECK(5, 24, 0)
++#include <AkonadiContactEditor/Akonadi/ContactViewer>
++#include <AkonadiContactEditor/Akonadi/ContactEditorDialog>
++#elif AKONADICONTACT_VERSION >= QT_VERSION_CHECK(5, 20, 0)
+ #include <AkonadiContact/Akonadi/ContactViewer>
+ #include <AkonadiContact/Akonadi/ContactEditorDialog>
+ #else
+@@ -66,8 +69,12 @@ class KraftContactViewer : public QWidget
+ 
+ private:
+ #ifdef HAVE_AKONADI
++#if AKONADICONTACT_VERSION >= QT_VERSION_CHECK(5, 24, 0)
++    ContactEditor::ContactViewer *_contactViewer;
++#else
+     Akonadi::ContactViewer *_contactViewer;
+ #endif
++#endif
+ };
+ 
+ class AddressSortProxyModel : public QSortFilterProxyModel
+@@ -124,7 +131,11 @@ private:
+   QTreeView *_addressTreeView;
+   KraftContactViewer *_contactViewer;
+ #ifdef HAVE_AKONADI
+-  QScopedPointer<Akonadi::ContactEditorDialog> _addressEditor;
++#if AKONADICONTACT_VERSION >= QT_VERSION_CHECK(5, 24, 0)
++    ContactEditor::ContactEditorDialog *_addressEditor;
++#else
++    Akonadi::ContactEditorDialog *_addressEditor;
++#endif
+ #endif
+ };
+ 
+-- 
+2.41.0
+