Hello community,

here is the log from the commit of package kjots for openSUSE:Factory checked 
in at 2020-08-18 13:58:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kjots (Old)
 and      /work/SRC/openSUSE:Factory/.kjots.new.3399 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kjots"

Tue Aug 18 13:58:22 2020 rev:9 rq:826430 version:5.0.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/kjots/kjots.changes      2020-04-22 
20:59:32.340167340 +0200
+++ /work/SRC/openSUSE:Factory/.kjots.new.3399/kjots.changes    2020-08-18 
13:59:26.310221284 +0200
@@ -1,0 +2,6 @@
+Thu Jul 23 11:09:08 UTC 2020 - [email protected]
+
+- Add Install-the-kontact-plugin-into-kontact5.patch to fix build
+  with kontactinterface 20.08
+
+-------------------------------------------------------------------

New:
----
  Install-the-kontact-plugin-into-kontact5.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ kjots.spec ++++++
--- /var/tmp/diff_new_pack.wBD0PZ/_old  2020-08-18 13:59:26.958221550 +0200
+++ /var/tmp/diff_new_pack.wBD0PZ/_new  2020-08-18 13:59:26.962221551 +0200
@@ -26,6 +26,8 @@
 Source0:        
http://download.kde.org/stable/kjots/%{version}/%{name}-%{version}.tar.xz
 # PATCH-FIX-UPSTREAM
 Patch0:         Fix-bookmarks-actions.patch
+# PATCH-FIX-UPSTREAM
+Patch1:         Install-the-kontact-plugin-into-kontact5.patch
 BuildRequires:  akonadi-server-devel
 BuildRequires:  extra-cmake-modules
 BuildRequires:  grantlee5-devel
@@ -86,7 +88,8 @@
 %_kf5_sharedir/kjots/
 %_kf5_iconsdir/hicolor/*/apps/kjots.*
 %_kf5_iconsdir/oxygen/*/actions/edit-delete-page.*
-%{_kf5_plugindir}/kontact_kjotsplugin.so
+%dir %{_kf5_plugindir}/kontact5/
+%{_kf5_plugindir}/kontact5/kontact_kjotsplugin.so
 %{_datadir}/kontact/
 %{_kf5_servicesdir}/kontact/
 

++++++ Install-the-kontact-plugin-into-kontact5.patch ++++++
>From bcf49fb95bee12bbc4bef0578285ad296deafcae Mon Sep 17 00:00:00 2001
From: David Faure <[email protected]>
Date: Fri, 24 Apr 2020 01:25:43 +0200
Subject: [PATCH] Install the kontact plugin into kontact5, with JSON metadata.

Summary: This will allow kontact to use KPluginLoader one day.

It also fixes compilation with current kontactinterface API.

Test Plan:
rm $prefix/lib64/plugins/kontact_zanshinplugin.so ; make install
kontact still finds the zanshin plugin

The same steps (other than old-kontact-interface compatibility) were already
pushed to all other kontact plugins.

This commit is very similar to https://phabricator.kde.org/D28847
and its predecessor commit, in zanshin.
---
 src/kontact_plugin/CMakeLists.txt      | 11 ++++++++-
 src/kontact_plugin/kjots_plugin.cpp    | 34 ++++++++++++++++++++------
 src/kontact_plugin/kjots_plugin.h      |  5 ++++
 src/kontact_plugin/kjotsplugin.desktop |  2 +-
 4 files changed, 43 insertions(+), 9 deletions(-)

diff --git a/src/kontact_plugin/CMakeLists.txt 
b/src/kontact_plugin/CMakeLists.txt
index 8a6b5e1..dec4b8b 100644
--- a/src/kontact_plugin/CMakeLists.txt
+++ b/src/kontact_plugin/CMakeLists.txt
@@ -1,13 +1,22 @@
 include_directories(${kjots_SOURCE_DIR}/src)
 
+# TODO: remove once kontactinterface 5.14.42 is required
+if(NOT CMAKE_VERSION VERSION_LESS "3.10.0")
+  # CMake 3.9+ warns about automoc on files without Q_OBJECT, and doesn't know 
about other macros.
+  # 3.10+ lets us provide more macro names that require automoc.
+  # KF5 >= 5.42 takes care itself of adding its macros in its cmake config 
files
+  list(APPEND CMAKE_AUTOMOC_MACRO_NAMES "EXPORT_KONTACT_PLUGIN_WITH_JSON")
+endif()
+
 set(kontact_kjots_PART_SRCS
     kjots_plugin.cpp
 )
 
 add_library(kontact_kjotsplugin MODULE ${kontact_kjots_PART_SRCS})
 target_link_libraries(kontact_kjotsplugin KF5::KontactInterface)
+kcoreaddons_desktop_to_json(kontact_kjotsplugin kjotsplugin.desktop)
 
-install(TARGETS kontact_kjotsplugin DESTINATION ${KDE_INSTALL_PLUGINDIR})
+install(TARGETS kontact_kjotsplugin DESTINATION 
${KDE_INSTALL_PLUGINDIR}/kontact5)
 install(FILES kjotsplugin.desktop DESTINATION 
${KDE_INSTALL_KSERVICES5DIR}/kontact)
 install(FILES kjots.setdlg DESTINATION 
${KDE_INSTALL_DATADIR}/kontact/ksettingsdialog)
 
diff --git a/src/kontact_plugin/kjots_plugin.cpp 
b/src/kontact_plugin/kjots_plugin.cpp
index 66e7ed5..b74d601 100644
--- a/src/kontact_plugin/kjots_plugin.cpp
+++ b/src/kontact_plugin/kjots_plugin.cpp
@@ -33,7 +33,25 @@
 #include <QIcon>
 #include <QStandardPaths>
 
-EXPORT_KONTACT_PLUGIN(KJotsPlugin, kjots)
+#if KONTACTINTERFACE_VERSION < QT_VERSION_CHECK(5, 14, 42)
+/**
+  Exports Kontact plugin.
+  @param pluginclass the class to instanciate (must derive from 
KontactInterface::Plugin
+  @param jsonFile filename of the JSON file, generated from a .desktop file
+ */
+#define EXPORT_KONTACT_PLUGIN_WITH_JSON( pluginclass, jsonFile ) \
+    class Instance                                           \
+    {                                                        \
+    public:                                                \
+        static QObject *createInstance( QWidget *, QObject *parent, const 
QVariantList &list ) \
+        { return new pluginclass( static_cast<KontactInterface::Core*>( parent 
), list ); } \
+    };                                                                    \
+    K_PLUGIN_FACTORY_WITH_JSON( KontactPluginFactory, jsonFile, 
registerPlugin< pluginclass >   \
+                              ( QString(), Instance::createInstance ); ) \
+    K_EXPORT_PLUGIN_VERSION(KONTACT_PLUGIN_VERSION)
+#endif
+
+EXPORT_KONTACT_PLUGIN_WITH_JSON(KJotsPlugin, "kjotsplugin.json")
 
 KJotsPlugin::KJotsPlugin(KontactInterface::Core *core, const QVariantList &)
     : KontactInterface::Plugin(core, core, "kjots")
@@ -63,15 +81,17 @@ QStringList KJotsPlugin::invisibleToolbarActions() const
     return { QStringLiteral("new_page"), QStringLiteral("new_book") };
 }
 
+#if KONTACTINTERFACE_VERSION >= QT_VERSION_CHECK(5, 14, 42)
+KParts::Part *KJotsPlugin::createPart()
+{
+    return loadPart();
+}
+#else
 KParts::ReadOnlyPart *KJotsPlugin::createPart()
 {
-    KParts::ReadOnlyPart *part = loadPart();
-    if (!part) {
-        return Q_NULLPTR;
-    }
-
-    return part;
+    return loadPart();
 }
+#endif
 
 QStringList KJotsPlugin::configModules() const
 {
diff --git a/src/kontact_plugin/kjots_plugin.h 
b/src/kontact_plugin/kjots_plugin.h
index cd62373..4945d25 100644
--- a/src/kontact_plugin/kjots_plugin.h
+++ b/src/kontact_plugin/kjots_plugin.h
@@ -24,6 +24,7 @@
 #define KJOTS_PLUGIN_H
 
 #include <KontactInterface/UniqueAppHandler>
+#include <kontactinterface_version.h>
 
 namespace KontactInterface
 {
@@ -62,7 +63,11 @@ public:
     QStringList invisibleToolbarActions() const Q_DECL_OVERRIDE;
 
 protected:
+#if KONTACTINTERFACE_VERSION >= QT_VERSION_CHECK(5, 14, 42)
+    KParts::Part *createPart() override;
+#else
     KParts::ReadOnlyPart *createPart() Q_DECL_OVERRIDE;
+#endif
     KontactInterface::UniqueAppWatcher *mUniqueAppWatcher;
 
 private:
diff --git a/src/kontact_plugin/kjotsplugin.desktop 
b/src/kontact_plugin/kjotsplugin.desktop
index 1339753..d5a198f 100644
--- a/src/kontact_plugin/kjotsplugin.desktop
+++ b/src/kontact_plugin/kjotsplugin.desktop
@@ -3,7 +3,7 @@ Type=Service
 Icon=kjots
 X-KDE-ServiceTypes=Kontact/Plugin,KPluginInfo
 
-X-KDE-Library=kontact_kjotsplugin
+X-KDE-Library=kontact5/kontact_kjotsplugin
 X-KDE-KontactPluginVersion=10
 X-KDE-KontactPartLibraryName=kjotspart
 X-KDE-KontactPartExecutableName=kjots
-- 
GitLab


Reply via email to