diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..44c9b4e --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/akonadi-24.01.80.tar.xz diff --git a/akonadi-24.01.80-reenable-kaccounts.patch b/akonadi-24.01.80-reenable-kaccounts.patch new file mode 100644 index 0000000..f476481 --- /dev/null +++ b/akonadi-24.01.80-reenable-kaccounts.patch @@ -0,0 +1,63 @@ +From 857e22ecef960652f26e2793f57fc4fdb44dea20 Mon Sep 17 00:00:00 2001 +From: Nicolas Fella +Date: Mon, 4 Dec 2023 15:00:38 +0100 +Subject: [PATCH] Reenable and fix KAccounts integration + +--- + CMakeLists.txt | 6 +++--- + src/agentbase/CMakeLists.txt | 2 +- + src/agentbase/accountsintegration.cpp | 4 ++-- + 3 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 73cd9dd16..421c175ab 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -91,13 +91,13 @@ set_package_properties(AccountsQt6 PROPERTIES + TYPE OPTIONAL + ) + set(KAccounts_MINIMUM_VERSION "19.08.0") +-find_package(KAccounts ${KAccounts_MINIMUM_VERSION}) +-set_package_properties(KAccounts PROPERTIES ++find_package(KAccounts6 ${KAccounts_MINIMUM_VERSION}) ++set_package_properties(KAccounts6 PROPERTIES + DESCRIPTION "KDE library for Accounts framework integration" + URL "https://cgit.kde.org/kaccounts-integration.git" + TYPE OPTIONAL + ) +-if (${AccountsQt6_FOUND} AND ${KAccounts_FOUND}) ++if (${AccountsQt6_FOUND} AND ${KAccounts6_FOUND}) + set(WITH_ACCOUNTS TRUE) + endif() + +diff --git a/src/agentbase/CMakeLists.txt b/src/agentbase/CMakeLists.txt +index 4391db014..3f5467ea4 100644 +--- a/src/agentbase/CMakeLists.txt ++++ b/src/agentbase/CMakeLists.txt +@@ -94,7 +94,7 @@ PRIVATE + ) + + if (WITH_ACCOUNTS) +- target_link_libraries(KPim6AkonadiAgentBase PRIVATE KAccounts Qt::Xml) ++ target_link_libraries(KPim6AkonadiAgentBase PRIVATE KAccounts6 Qt::Xml) + target_include_directories(KPim6AkonadiAgentBase PRIVATE ${ACCOUNTSQT_INCLUDE_DIRS}) + endif() + +diff --git a/src/agentbase/accountsintegration.cpp b/src/agentbase/accountsintegration.cpp +index 40b43317a..ec2eedacf 100644 +--- a/src/agentbase/accountsintegration.cpp ++++ b/src/agentbase/accountsintegration.cpp +@@ -16,8 +16,8 @@ + #if WITH_ACCOUNTS + #include + #include +-#include +-#include ++#include ++#include + #endif + + using namespace Akonadi; +-- +GitLab + diff --git a/akonadi-server.spec b/akonadi-server.spec new file mode 100644 index 0000000..da629fb --- /dev/null +++ b/akonadi-server.spec @@ -0,0 +1,241 @@ +%if 0%{?flatpak} +%global database_backend SQLITE +%endif + +Name: akonadi-server +Summary: PIM Storage Service +Version: 24.01.80 +Release: 1%{?dist} + +License: BSD-3-Clause AND CC0-1.0 AND GPL-2.0-only AND GPL-2.0-or-later AND GPL-3.0-only AND LGPL-2.0-only AND LGPL-2.0-or-later AND LGPL-2.1-or-later AND LicenseRef-KDE-Accepted-GPL AND MIT +URL: https://invent.kde.org/frameworks/akonadi + +Source0: https://download.kde.org/%{stable_kf6}/release-service/%{version}/src/akonadi-%{version}.tar.xz + +## mysql config +Source10: akonadiserverrc.mysql +Source11: akonadiserverrc.sqlite + +Patch1: akonadi-24.01.80-reenable-kaccounts.patch + +## upstreamable patches + +## upstream patches (lookaside cache) + +## downstream patches + +%define mysql_conf_timestamp 20170512 + +BuildRequires: extra-cmake-modules +BuildRequires: kf6-rpm-macros +BuildRequires: qt6-qtbase-devel + +BuildRequires: cmake(KF6ItemViews) +BuildRequires: cmake(KF6KIO) +BuildRequires: cmake(KF6Config) +BuildRequires: cmake(KF6I18n) +BuildRequires: cmake(KF6DBusAddons) +BuildRequires: cmake(KF6ItemModels) +BuildRequires: cmake(KF6GuiAddons) +BuildRequires: cmake(KF6IconThemes) +BuildRequires: cmake(KF6WindowSystem) +BuildRequires: cmake(KF6Completion) +BuildRequires: cmake(KF6Crash) + +BuildRequires: boost-devel +BuildRequires: pkgconfig(libxslt) +BuildRequires: pkgconfig(shared-mime-info) +BuildRequires: pkgconfig(sqlite3) >= 3.6.23 + + +## (some) optional deps +BuildRequires: pkgconfig(Qt6Designer) +BuildRequires: cmake(AccountsQt6) +BuildRequires: cmake(KAccounts6) + +# ^^ sqlite3 driver plugin needs versioned qt6 dep +BuildRequires: qt6-qtbase-private-devel + +%if ! 0%{?flatpak} +BuildRequires: mysql-server +%endif + +Requires(post): /usr/sbin/update-alternatives +Requires(postun): /usr/sbin/update-alternatives + +%if ! 0%{?flatpak} +Recommends: %{name}-mysql = %{version}-%{release} +%endif + +Conflicts: akonadi < 1.13.0-100 + +%description +%{summary}. + +%package devel +Summary: Developer files for %{name} +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: cmake(KF6Config) +Requires: cmake(KF6ConfigWidgets) +Requires: cmake(KF6CoreAddons) +Requires: cmake(KF6ItemModels) +Requires: cmake(KF6XmlGui) +Requires: cmake(Qt6Core) +Requires: cmake(Qt6DBus) +Requires: cmake(Qt6Gui) +Requires: cmake(Qt6Network) +Requires: cmake(Qt6Widgets) +Requires: cmake(Qt6Xml) +# For testing +Requires: cmake(Qt6Test) +Requires: cmake(KF6KIO) + +# at least dbus-1/interfaces conflict, maybe more -- rex +Conflicts: akonadi-devel +Conflicts: kf5-akonadi-server-devel +%description devel +%{summary}. + +%package mysql +Summary: Akonadi MySQL backend support +# upgrade path +Provides: akonadi-mysql = %{version}-%{release} +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: mysql-server +Requires: qt6-qtbase-mysql%{?_isa} +Requires(post): /usr/sbin/update-alternatives +Requires(postun): /usr/sbin/update-alternatives +%description mysql +Configures akonadi to use mysql backend by default. + +Requires an available instance of mysql server at runtime. +Akonadi can spawn a per-user one automatically if the mysql-server +package is installed on the machine. +See also: %{_sysconfdir}/akonadi/mysql-global.conf + + +%prep +%autosetup -n akonadi-%{version} -p1 + + +%build +%cmake_kf6 \ + %{?database_backend:-DDATABASE_BACKEND=%{database_backend}} \ + -DINSTALL_APPARMOR:BOOL=OFF \ + -DMYSQLD_EXECUTABLE:FILEPATH=%{_libexecdir}/mysqld \ + -DMYSQLD_SCRIPTS_PATH:FILEPATH=%{_bindir}/mysql_install_db \ + -DPOSTGRES_PATH:FILEPATH=%{_bindir}/pg_ctl +%cmake_build + + +%install +%cmake_install + +%find_lang libakonadi5 +%find_lang akonadi_knut_resource +cat akonadi_knut_resource.lang >> libakonadi5.lang + +install -p -m644 -D %{SOURCE10} %{buildroot}%{_sysconfdir}/xdg/akonadi/akonadiserverrc.mysql +install -p -m644 -D %{SOURCE11} %{buildroot}%{_sysconfdir}/xdg/akonadi/akonadiserverrc.sqlite + +mkdir -p %{buildroot}%{_datadir}/akonadi/agents + +touch -d %{mysql_conf_timestamp} \ + %{buildroot}%{_sysconfdir}/xdg/akonadi/mysql-global*.conf \ + %{buildroot}%{_sysconfdir}/xdg/akonadi/mysql-local.conf + +# create/own these dirs +mkdir -p %{buildroot}%{_kf6_datadir}/akonadi/plugins +mkdir -p %{buildroot}%{_kf6_libdir}/akonadi + +# %%ghost'd global akonadiserverrc +touch akonadiserverrc +install -p -m644 -D akonadiserverrc %{buildroot}%{_sysconfdir}/xdg/akonadi/akonadiserverrc + +## unpackaged files +# omit mysql-global-mobile.conf +rm -fv %{buildroot}%{_sysconfdir}/xdg/akonadi/mysql-global-mobile.conf + + +%post +/usr/sbin/update-alternatives \ + --install %{_sysconfdir}/xdg/akonadi/akonadiserverrc \ + akonadiserverrc \ + %{_sysconfdir}/xdg/akonadi/akonadiserverrc.sqlite \ + 8 + +%postun +if [ $1 -eq 0 ] ; then +/usr/sbin/update-alternatives \ + --remove akonadiserverrc \ + %{_sysconfdir}/xdg/akonadi/akonadiserverrc.sqlite +fi + + +%files -f libakonadi5.lang +%doc AUTHORS +%doc README* +%license LICENSES/* +%dir %{_sysconfdir}/xdg/akonadi/ +%ghost %config(missingok,noreplace) %{_sysconfdir}/xdg/akonadi/akonadiserverrc +%config(noreplace) %{_sysconfdir}/xdg/akonadi/akonadiserverrc.sqlite +%{_kf6_datadir}/qlogging-categories6/akonadi.* +%{_kf6_bindir}/akonadi_agent_launcher +%{_kf6_bindir}/akonadi_agent_server +%{_kf6_bindir}/akonadi_control +%{_kf6_bindir}/akonadi_rds +%{_kf6_bindir}/akonadictl +%{_kf6_bindir}/akonadiserver +%{_kf6_bindir}/asapcat +%{_kf6_bindir}/akonadi2xml +%{_kf6_bindir}/akonadiselftest +%{_kf6_bindir}/akonaditest +%{_kf6_datadir}/dbus-1/services/org.freedesktop.Akonadi.*.service +%{_kf6_datadir}/mime/packages/akonadi-mime.xml +%{_kf6_datadir}/akonadi/ +%{_kf6_datadir}/config.kcfg/resourcebase.kcfg +%{_kf6_datadir}/kf6/akonadi/ +%{_kf6_qtplugindir}/designer/akonadi6widgets.so +%{_kf6_libdir}/libKPim6Akonadi*.so.* +%{_kf6_datadir}/icons/hicolor/*/apps/akonadi.* + +# akonadi_knut_resource +%{_kf6_bindir}/akonadi_knut_resource +%{_kf6_datadir}/kf6/akonadi_knut_resource/ + +%files devel +%{_kf6_datadir}/dbus-1/interfaces/org.freedesktop.Akonadi.*.xml +%{_includedir}/KPim6/Akonadi/ +%{_includedir}/KPim6/AkonadiAgentBase/ +%{_includedir}/KPim6/AkonadiCore/ +%{_includedir}/KPim6/AkonadiWidgets/ +%{_includedir}/KPim6/AkonadiXml/ +%{_kf6_libdir}/libKPim6Akonadi*.so +%{_kf6_libdir}/cmake/KPim6Akonadi/ +%{_kf6_qtplugindir}/pim6/akonadi/akonadi_test_searchplugin.so +%{_kf6_datadir}/kdevappwizard/templates/akonadiresource.tar.bz2 +%{_kf6_datadir}/kdevappwizard/templates/akonadiserializer.tar.bz2 + +%post mysql +/usr/sbin/update-alternatives \ + --install %{_sysconfdir}/xdg/akonadi/akonadiserverrc \ + akonadiserverrc \ + %{_sysconfdir}/xdg/akonadi/akonadiserverrc.mysql \ + 10 + +%postun mysql +if [ $1 -eq 0 ]; then +/usr/sbin/update-alternatives \ + --remove akonadiserverrc \ + %{_sysconfdir}/xdg/akonadi/akonadiserverrc.mysql +fi + +%files mysql +%config(noreplace) %{_sysconfdir}/xdg/akonadi/akonadiserverrc.mysql +%config(noreplace) %{_sysconfdir}/xdg/akonadi/mysql-global.conf +%config(noreplace) %{_sysconfdir}/xdg/akonadi/mysql-local.conf + + +%changelog +* Wed Dec 6 2023 Steve Cossette - 24.01.80-1 +- 24.01.80 diff --git a/akonadiserverrc.mysql b/akonadiserverrc.mysql new file mode 100644 index 0000000..f72ecdb --- /dev/null +++ b/akonadiserverrc.mysql @@ -0,0 +1,2 @@ +[%General] +Driver=QMYSQL diff --git a/akonadiserverrc.sqlite b/akonadiserverrc.sqlite new file mode 100644 index 0000000..cd29ea5 --- /dev/null +++ b/akonadiserverrc.sqlite @@ -0,0 +1,2 @@ +[%General] +Driver=QSQLITE3 diff --git a/sources b/sources new file mode 100644 index 0000000..a00b89b --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (akonadi-24.01.80.tar.xz) = 663dfb5ed7133991d086bbdc1a27b06d520d7f0e5e49adbd0e079f55a60d6b3281a81ec9b7eac5f4a7af76926cd1a10cb7b11a14a061f52c8c7c7346a46b3d88