diff --git a/0031-Less-C-11-fixes-build-with-clang.patch b/0031-Less-C-11-fixes-build-with-clang.patch deleted file mode 100644 index f915ce2..0000000 --- a/0031-Less-C-11-fixes-build-with-clang.patch +++ /dev/null @@ -1,52 +0,0 @@ -From c23607679fa1451f0c6890bd4a5656c07d519853 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Dan=20Vr=C3=A1til?= -Date: Fri, 6 Feb 2015 13:33:50 +0100 -Subject: [PATCH 31/34] Less C++11, fixes build with clang - ---- - server/tests/unittest/searchtest.cpp | 28 ++++++++++++++-------------- - 1 file changed, 14 insertions(+), 14 deletions(-) - -diff --git a/server/tests/unittest/searchtest.cpp b/server/tests/unittest/searchtest.cpp -index f523b09..969d296 100644 ---- a/server/tests/unittest/searchtest.cpp -+++ b/server/tests/unittest/searchtest.cpp -@@ -119,21 +119,21 @@ private Q_SLOTS: - QTest::addColumn("mimetypes"); - QTest::addColumn>("expectedResults"); - -- QTest::newRow("") << QVector({ 0 }) -- << QStringList({ QLatin1String("text/plain") }) -- << QVector({ col4.id(), col5.id(), col7.id() }); -- QTest::newRow("") << QVector({ 0 }) -- << QStringList({ QLatin1String("application/octet-stream") }) -- << QVector({ col2.id(), col3.id(), col6.id(), col8.id() }); -- QTest::newRow("") << QVector({ col1.id() }) -- << QStringList({ QLatin1String("text/plain") }) -- << QVector({ col4.id() }); -- QTest::newRow("") << QVector({ col1.id() }) -- << QStringList({ QLatin1String("unique/mime-type") }) -+ QTest::newRow("") << (QVector() << 0) -+ << (QStringList() << QLatin1String("text/plain")) -+ << (QVector() << col4.id() << col5.id() << col7.id()); -+ QTest::newRow("") << (QVector() << 0) -+ << (QStringList() << QLatin1String("application/octet-stream")) -+ << (QVector() << col2.id() << col3.id() << col6.id() << col8.id()); -+ QTest::newRow("") << (QVector() << col1.id()) -+ << (QStringList() << QLatin1String("text/plain")) -+ << (QVector() << col4.id()); -+ QTest::newRow("") << (QVector() << col1.id()) -+ << (QStringList() << QLatin1String("unique/mime-type")) - << QVector(); -- QTest::newRow("") << QVector({ col2.id(), col7.id() }) -- << QStringList({ QLatin1String("application/octet-stream") }) -- << QVector({ col3.id(), col8.id() }); -+ QTest::newRow("") << (QVector() << col2.id() << col7.id()) -+ << (QStringList() << QLatin1String("application/octet-stream")) -+ << (QVector() << col3.id() << col8.id()); - } - - void testSearchHelperCollectionListing() --- -2.4.3 - diff --git a/0032-Don-t-throw-exception-when-MOVE-handler-finds-no-ite.patch b/0032-Don-t-throw-exception-when-MOVE-handler-finds-no-ite.patch deleted file mode 100644 index 62a7637..0000000 --- a/0032-Don-t-throw-exception-when-MOVE-handler-finds-no-ite.patch +++ /dev/null @@ -1,60 +0,0 @@ -From abe71f46c3b2e657db25ac16c43a4c76b2212a9f Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Dan=20Vr=C3=A1til?= -Date: Wed, 17 Jun 2015 13:04:13 +0200 -Subject: [PATCH 32/34] Don't throw exception when MOVE handler finds no items - to move - -Instead return "OK MOVE complete" right away. The reason for this is that -when client tries to move an Item from a folder into the same folder (it's -possible in KMail, also mailfilter agent might trigger this situation) the -subsequent command gets eaten by ImapStreamParser and the client's Job gets -stuck waiting for response forever. According to Laurent this could also fix -the Mail Filter Agent getting stuck occasionally. - -The problem is in ImapStreamParser::atCommandEnd() method, which is called -by the Move handler at some point. atCommandEnd() checks whether we reached -command end in the stream by looking if the next characters in the stream -are "\r\n" and if so it will consume the command end ("\r\n"), effectively -moving the streaming position BEYOND the command. In case of MOVE the -command has already been completely parsed so we are actually at the end of -the command and so ImapStreamParser will consume the "\r\n" and position the -stream beyond the command end. - -After that the Move handler tries to get the items from DB and throws the -exception (the second part of the condition in the SQL query causes that -the query yields no results in this situation) which gets us back to -Connection where we then call ImapStreamParser::skipCommand(). At this point -however there are no more data in the stream (because atCommandEnd() moved -us beyond the end of the MOVE command) and so ImapStreamParser will block -and wait for more data (with 30 seconds timeout). If client sends another -command within this time the ImapStreamParser will think that this is the -command to be skipped and will consume it. This means that the command never -really reaches the Connection as it's consumed as soon as it's captured by -ImapStreamParser. And because Akonadi never receives the command it cannot -send a response and thus the Job in client will wait forever and ever... - -Proper fix would be to make ImapStreamParser::atCommandEnd() to only peek -instead of actually altering the position in the stream however I'm really -afraid that it could break some other stuff that relies on this (broken?) -behaviour and our test coverage is not sufficient at this point to be -reliable enough. ---- - server/src/handler/move.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/server/src/handler/move.cpp b/server/src/handler/move.cpp -index 0a6c3bf..4cf9d4e 100644 ---- a/server/src/handler/move.cpp -+++ b/server/src/handler/move.cpp -@@ -85,7 +85,7 @@ bool Move::parseStream() - if ( qb.exec() ) { - const QVector items = qb.result(); - if ( items.isEmpty() ) { -- throw HandlerException( "No items found" ); -+ return successResponse( "MOVE complete" ); - } - - // Split the list by source collection --- -2.4.3 - diff --git a/0033-Don-t-leak-old-external-payload-files.patch b/0033-Don-t-leak-old-external-payload-files.patch deleted file mode 100644 index 2325de0..0000000 --- a/0033-Don-t-leak-old-external-payload-files.patch +++ /dev/null @@ -1,140 +0,0 @@ -From 9c0dc6b3f0826d32eac310b2e7ecd858ca3df681 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Dan=20Vr=C3=A1til?= -Date: Mon, 29 Jun 2015 22:45:11 +0200 -Subject: [PATCH 33/34] Don't leak old external payload files - -Actually delete old payload files after we increase the payload revision or -switch from external to internal payload. This caused ~/.local/share/akonadi/file_db_data -to grow insanely for all users, leaving them with many duplicated files (just with -different revisions). - -It is recommended that users run akonadictl fsck to clean up the leaked payload -files. - -Note that there won't be any more releases of Akonadi 1.13 (and this has been -fixed in master already), so I strongly recommend distributions to pick this -patch into their packaging. - -BUG: 341884 -CCBUG: 338402 ---- - server/src/storage/partstreamer.cpp | 14 ++++++++++++++ - server/tests/unittest/partstreamertest.cpp | 24 +++++++++++++----------- - 2 files changed, 27 insertions(+), 11 deletions(-) - -diff --git a/server/src/storage/partstreamer.cpp b/server/src/storage/partstreamer.cpp -index 2ec41fa..71bdca8 100644 ---- a/server/src/storage/partstreamer.cpp -+++ b/server/src/storage/partstreamer.cpp -@@ -290,6 +290,12 @@ bool PartStreamer::stream(const QByteArray &command, bool checkExists, - mDataChanged = true; - } - -+ // If the part is external, remember it's current file name -+ QString originalFile; -+ if (part.isValid() && part.external()) { -+ originalFile = PartHelper::resolveAbsolutePath(part.data()); -+ } -+ - part.setPartType(partType); - part.setVersion(partVersion); - part.setPimItemId(mItem.id()); -@@ -306,6 +312,14 @@ bool PartStreamer::stream(const QByteArray &command, bool checkExists, - *changed = mDataChanged; - } - -+ if (!originalFile.isEmpty()) { -+ // If the part was external but is not anymore, or if it's still external -+ // but the filename has changed (revision update), remove the original file -+ if (!part.external() || (part.external() && originalFile != PartHelper::resolveAbsolutePath(part.data()))) { -+ PartHelper::removeFile(originalFile); -+ } -+ } -+ - return ok; - } - -diff --git a/server/tests/unittest/partstreamertest.cpp b/server/tests/unittest/partstreamertest.cpp -index 05e3a8a..669bbbc 100644 ---- a/server/tests/unittest/partstreamertest.cpp -+++ b/server/tests/unittest/partstreamertest.cpp -@@ -91,6 +91,7 @@ private Q_SLOTS: - QTest::addColumn("expectedPartSize"); - QTest::addColumn("expectedChanged"); - QTest::addColumn("isExternal"); -+ QTest::addColumn("version"); - QTest::addColumn("pimItem"); - - PimItem item; -@@ -101,22 +102,22 @@ private Q_SLOTS: - QVERIFY(item.insert()); - - // Order of these tests matters! -- QTest::newRow("item 1, internal") << QByteArray("PLD:DATA") << QByteArray("123") << 3ll << true << false << item; -- QTest::newRow("item 1, change to external") << QByteArray("PLD:DATA") << QByteArray("123456789") << 9ll << true << true << item; -- QTest::newRow("item 1, update external") << QByteArray("PLD:DATA") << QByteArray("987654321") << 9ll << true << true << item; -- QTest::newRow("item 1, external, no change") << QByteArray("PLD:DATA") << QByteArray("987654321") << 9ll << false << true << item; -- QTest::newRow("item 1, change to internal") << QByteArray("PLD:DATA") << QByteArray("1234") << 4ll << true << false << item; -- QTest::newRow("item 1, internal, no change") << QByteArray("PLD:DATA") << QByteArray("1234") << 4ll << false << false << item; -+ QTest::newRow("item 1, internal") << QByteArray("PLD:DATA") << QByteArray("123") << 3ll << true << false << -1 << item; -+ QTest::newRow("item 1, change to external") << QByteArray("PLD:DATA") << QByteArray("123456789") << 9ll << true << true << 0 << item; -+ QTest::newRow("item 1, update external") << QByteArray("PLD:DATA") << QByteArray("987654321") << 9ll << true << true << 1 << item; -+ QTest::newRow("item 1, external, no change") << QByteArray("PLD:DATA") << QByteArray("987654321") << 9ll << false << true << 2 << item; -+ QTest::newRow("item 1, change to internal") << QByteArray("PLD:DATA") << QByteArray("1234") << 4ll << true << false << 2 << item; -+ QTest::newRow("item 1, internal, no change") << QByteArray("PLD:DATA") << QByteArray("1234") << 4ll << false << false << 2 << item; - } - - void testStreamer() - { -- return; - QFETCH(QByteArray, expectedPartName); - QFETCH(QByteArray, expectedData); - QFETCH(qint64, expectedPartSize); - QFETCH(bool, expectedChanged); - QFETCH(bool, isExternal); -+ QFETCH(int, version); - QFETCH(PimItem, pimItem); - - FakeConnection connection; -@@ -160,17 +161,18 @@ private Q_SLOTS: - - PimItem item = PimItem::retrieveById(pimItem.id()); - const QVector parts = item.parts(); -- QVERIFY(parts.count() == 1); -+ QCOMPARE(parts.count(), 1); - const Part part = parts[0]; - QCOMPARE(part.datasize(), expectedPartSize); - QCOMPARE(part.external(), isExternal); -+ qDebug() << part.version() << part.data(); - const QByteArray data = part.data(); - if (isExternal) { - QVERIFY(streamerSpy.count() == 1); - QVERIFY(streamerSpy.first().count() == 1); - const Response response = streamerSpy.first().first().value(); - const QByteArray str = response.asString(); -- const QByteArray expectedResponse = "+ STREAM [FILE " + QByteArray::number(part.id()) + "_r" + QByteArray::number(part.version()) + "]"; -+ const QByteArray expectedResponse = "+ STREAM [FILE " + QByteArray::number(part.id()) + "_r" + QByteArray::number(version) + "]"; - QCOMPARE(QString::fromUtf8(str), QString::fromUtf8(expectedResponse)); - - QFile file(PartHelper::resolveAbsolutePath(data)); -@@ -182,7 +184,7 @@ private Q_SLOTS: - QCOMPARE(fileData, expectedData); - - // Make sure no previous versions are left behind in file_db_data -- for (int i = 0; i < part.version(); ++i) { -+ for (int i = 0; i < version; ++i) { - const QByteArray fileName = QByteArray::number(part.id()) + "_r" + QByteArray::number(part.version()); - const QString filePath = PartHelper::resolveAbsolutePath(fileName); - QVERIFY(!QFile::exists(filePath)); -@@ -194,7 +196,7 @@ private Q_SLOTS: - QCOMPARE(data, expectedData); - - // Make sure nothing is left behind in file_db_data -- for (int i = 0; i <= part.version(); ++i) { -+ for (int i = 0; i <= version; ++i) { - const QByteArray fileName = QByteArray::number(part.id()) + "_r" + QByteArray::number(part.version()); - const QString filePath = PartHelper::resolveAbsolutePath(fileName); - QVERIFY(!QFile::exists(filePath)); --- -2.4.3 - diff --git a/0034-set-cmake_min_req-to-match-kdelibs4-and-enable-newer.patch b/0034-set-cmake_min_req-to-match-kdelibs4-and-enable-newer.patch deleted file mode 100644 index 9d6411f..0000000 --- a/0034-set-cmake_min_req-to-match-kdelibs4-and-enable-newer.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 18ed37d89b8185ac15a8bfe245de8a88d17f2c64 Mon Sep 17 00:00:00 2001 -From: David Faure -Date: Tue, 28 Jul 2015 12:47:44 +0200 -Subject: [PATCH 34/34] set cmake_min_req to match kdelibs4 and enable newer - policies - ---- - CMakeLists.txt | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 2d790c9..a64e724 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -1,6 +1,6 @@ -+cmake_minimum_required(VERSION 2.8.9) - project(Akonadi) - --cmake_minimum_required(VERSION 2.8.8 FATAL_ERROR) - - # where to look first for cmake modules, before ${CMAKE_ROOT}/Modules/ is checked - set(CMAKE_MODULE_PATH "${Akonadi_SOURCE_DIR}/cmake/modules") --- -2.4.3 - diff --git a/akonadi-1.13.0-libs_only.patch b/akonadi-1.13.0-libs_only.patch deleted file mode 100644 index 96f48cd..0000000 --- a/akonadi-1.13.0-libs_only.patch +++ /dev/null @@ -1,33 +0,0 @@ -diff -up akonadi-1.13.0/CMakeLists.txt.opt akonadi-1.13.0/CMakeLists.txt ---- akonadi-1.13.0/CMakeLists.txt.opt 2015-12-11 07:44:57.653216984 -0600 -+++ akonadi-1.13.0/CMakeLists.txt 2015-12-11 07:52:14.749205933 -0600 -@@ -339,22 +339,22 @@ endif() - - include_directories(${Akonadi_SOURCE_DIR} ${Akonadi_BINARY_DIR} ${QT_INCLUDES} ${Boost_INCLUDE_DIR}) - --add_subdirectory(interfaces) -+add_subdirectory(interfaces) - add_subdirectory(libs) - set(AKONADI_PROTOCOLINTERNALS_LIBS ${akonadiprotocolinternals_LIB_DEPENDS} akonadiprotocolinternals) - --add_subdirectory(shared) --add_subdirectory(agentserver) --add_subdirectory(server) -+#add_subdirectory(shared) -+#add_subdirectory(agentserver) -+#add_subdirectory(server) - --add_subdirectory(rds) -+#add_subdirectory(rds) - if(NOT WIN32) -- add_subdirectory(asapcat) -+ #add_subdirectory(asapcat) - endif() - if (NOT QT5_BUILD) - if(SQLITE_FOUND) - option(SQLITE_LINK_STATIC "link libsqlite3 statically" FALSE) -- add_subdirectory(qsqlite) -+ #add_subdirectory(qsqlite) - endif() - endif() - diff --git a/akonadi.spec b/akonadi.spec index e616592..5704924 100644 --- a/akonadi.spec +++ b/akonadi.spec @@ -1,5 +1,3 @@ -# Force out of source build -%undefine __cmake_in_source_build # base pkg default to SQLITE now, install -mysql if you want that instead %global database_backend SQLITE @@ -7,21 +5,39 @@ # trim changelog included in binary rpms %global _changelog_trimtime %(date +%s -d "1 year ago") -Summary: PIM Storage Service Libraries +# legacy nepomuk/soprano support (ie, kde < 4.13) +%if 0%{?fedora} < 20 +%define soprano 1 +%endif + +%global mysql mysql +%if 0%{?rhel} > 6 +# el7 mariadb pkgs don't have compat Provides: mysql (apparently?) +%global mysql mariadb +%endif + +Summary: PIM Storage Service Name: akonadi Version: 1.13.0 -Release: 130%{?dist} +Release: 12%{?dist} -License: LGPL-2.0-or-later +License: LGPLv2+ URL: http://community.kde.org/KDE_PIM/Akonadi +%if 0%{?snap} +# git clone git://git.kde.org/akonadi +# git archive --prefix=akonadi-%{version}/ master | bzip2 > akonadi-%{version}-%{snap}.tar.bz2 +Source0: akonadi-%{version}-%{snap}.tar.bz2 +%else +# Official release Source0: http://download.kde.org/stable/akonadi/src/akonadi-%{version}.tar.bz2 +%endif -## downstream patches -Patch100: akonadi-1.13.0-libs_only.patch +## mysql config +Source10: akonadiserverrc.mysql ## upstreamable patches -## upstream patches (1.13 branch) +## upstream patches Patch1: 0001-FindSqlite-Use-CMAKE_FLAGS-the-right-way-in-try_comp.patch Patch2: 0002-Do-not-enter-the-test-directories-if-AKONADI_BUILD_T.patch Patch3: 0003-STORE-Allow-modifying-items-tags-via-Tag-RID-or-GID.patch @@ -53,187 +69,171 @@ Patch28: 0028-Extend-imapparser-benchmark-and-keep-static-data-aro.patch Patch29: 0029-Reduce-the-amount-of-allocations-by-preallocating-a-.patch Patch30: 0030-Preallocate-a-capacity-of-16-for-the-returned-list.patch +%define mysql_conf_timestamp 20140709 + BuildRequires: automoc4 BuildRequires: boost-devel BuildRequires: cmake >= 2.8.8 -BuildRequires: gcc-c++ # for xsltproc BuildRequires: libxslt BuildRequires: pkgconfig(QtDBus) pkgconfig(QtSql) pkgconfig(QtXml) BuildRequires: pkgconfig(shared-mime-info) +%if 0%{?soprano} +BuildRequires: pkgconfig(soprano) +%endif +BuildRequires: pkgconfig(sqlite3) >= 3.6.23 +# %%check +BuildRequires: dbus-x11 xorg-x11-server-Xvfb +# backends, used at buildtime to query known locations of server binaries +# FIXME/TODO: set these via cmake directives, avoids needless buildroot items +BuildRequires: mariadb-server +BuildRequires: postgresql-server + +%{?_qt4_version:Requires: qt4%{?_isa} >= %{_qt4_version}} + +Requires(postun): /sbin/ldconfig %description %{summary}. %package devel Summary: Developer files for %{name} -Conflicts: kf5-akonadi-server-devel Requires: %{name}%{?_isa} = %{version}-%{release} %description devel %{summary}. +%package mysql +Summary: Akonadi MySQL backend support +# upgrade path +Obsoletes: akonadi < 1.7.90-2 +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{mysql}-server +%if "%{?mysql}" != "mariadb" && 0%{?fedora} > 20 +Recommends: mariadb-server +%endif +Requires: qt4-mysql%{?_isa} +Requires(post): %{_sbindir}/update-alternatives +Requires(postun): %{_sbindir}/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 -p1 -n akonadi-%{version} %build -%cmake -DCMAKE_BUILD_TYPE:STRING="Release" -%cmake_build +mkdir -p %{_target_platform} +pushd %{_target_platform} +%{cmake} \ + -DCONFIG_INSTALL_DIR=%{_sysconfdir} \ + %{?database_backend:-DDATABASE_BACKEND=%{database_backend}} \ + -DINSTALL_QSQLITE_IN_QT_PREFIX:BOOL=ON \ + -DWITH_SOPRANO:BOOL=%{?soprano:ON}%{!?soprano:OFF} \ + .. +popd + +make %{?_smp_mflags} -C %{_target_platform} %install -%cmake_install +make install/fast DESTDIR=$RPM_BUILD_ROOT -C %{_target_platform} + +install -p -m644 -D %{SOURCE10} %{buildroot}%{_sysconfdir}/xdg/akonadi/akonadiserverrc.mysql + +mkdir -p %{buildroot}%{_datadir}/akonadi/agents + +touch -d %{mysql_conf_timestamp} \ + %{buildroot}%{_sysconfdir}/akonadi/mysql-global*.conf \ + %{buildroot}%{_sysconfdir}/akonadi/mysql-local.conf + +# create/own %{_libdir}/akondi +mkdir -p %{buildroot}%{_libdir}/akonadi + +# %%ghost'd global akonadiserverrc +touch akonadiserverrc +install -p -m644 -D akonadiserverrc %{buildroot}%{_sysconfdir}/xdg/akonadi/akonadiserverrc ## unpackaged files -rm -fv %{buildroot}%{_datadir}/mime/packages/akonadi-mime.xml +# omit mysql-global-mobile.conf +rm -fv %{buildroot}%{_sysconfdir}/akonadi/mysql-global-mobile.conf %check export PKG_CONFIG_PATH=%{buildroot}%{_datadir}/pkgconfig:%{buildroot}%{_libdir}/pkgconfig test "$(pkg-config --modversion akonadi)" = "%{version}" +# this one (still) fails in mock (local build ok): +# 14/14 Test #14: akonadi-dbconfigtest +xvfb-run -a dbus-launch --exit-with-session make test -C %{_target_platform} ||: -%ldconfig_scriptlets +%post +/sbin/ldconfig +touch --no-create %{_datadir}/mime/packages &> /dev/null || : + +%posttrans +update-mime-database %{?fedora:-n} %{_datadir}/mime &> /dev/null || : + +%postun +/sbin/ldconfig ||: +if [ $1 -eq 0 ] ; then + touch --no-create %{_datadir}/mime/packages &> /dev/null || : + update-mime-database %{?fedora:-n} %{_datadir}/mime &> /dev/null ||: +fi %files -%doc AUTHORS -%license lgpl-license +%doc AUTHORS lgpl-license +%dir %{_sysconfdir}/xdg/akonadi/ +%ghost %config(missingok,noreplace) %{_sysconfdir}/xdg/akonadi/akonadiserverrc +%dir %{_sysconfdir}/akonadi/ +%{_bindir}/akonadi_agent_launcher +%{_bindir}/akonadi_agent_server +%{_bindir}/akonadi_control +%{_bindir}/akonadi_rds +%{_bindir}/akonadictl +%{_bindir}/akonadiserver +%{_libdir}/akonadi/ %{_libdir}/libakonadiprotocolinternals.so.1* +%{_datadir}/dbus-1/interfaces/org.freedesktop.Akonadi.*.xml +%{_datadir}/dbus-1/services/org.freedesktop.Akonadi.*.service +%{_datadir}/mime/packages/akonadi-mime.xml +%{_datadir}/akonadi/ +%{_qt4_plugindir}/sqldrivers/libqsqlite3.so %files devel +%{_bindir}/asapcat %{_includedir}/akonadi/ %{_libdir}/pkgconfig/akonadi.pc %{_libdir}/libakonadiprotocolinternals.so %{_libdir}/cmake/Akonadi/ -%{_datadir}/dbus-1/interfaces/org.freedesktop.Akonadi.*.xml + +%post mysql +%{_sbindir}/update-alternatives \ + --install %{_sysconfdir}/xdg/akonadi/akonadiserverrc \ + akonadiserverrc \ + %{_sysconfdir}/xdg/akonadi/akonadiserverrc.mysql \ + 10 + +%postun mysql +if [ $1 -eq 0 ]; then +%{_sbindir}/update-alternatives \ + --remove akonadiserverrc \ + %{_sysconfdir}/xdg/akonadi/akonadiserverrc.mysql +fi + +%files mysql +%config(noreplace) %{_sysconfdir}/xdg/akonadi/akonadiserverrc.mysql +%config(noreplace) %{_sysconfdir}/akonadi/mysql-global.conf +%config(noreplace) %{_sysconfdir}/akonadi/mysql-local.conf %changelog -* Fri Jan 16 2026 Fedora Release Engineering - 1.13.0-130 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild - -* Wed Jul 23 2025 Fedora Release Engineering - 1.13.0-129 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Thu Jan 16 2025 Fedora Release Engineering - 1.13.0-128 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Wed Jul 17 2024 Fedora Release Engineering - 1.13.0-127 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Mon Jan 22 2024 Fedora Release Engineering - 1.13.0-126 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Fri Jan 19 2024 Fedora Release Engineering - 1.13.0-125 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Wed Jul 19 2023 Fedora Release Engineering - 1.13.0-124 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Mon Jun 12 2023 Than Ngo - 1.13.0-123 -- migrated to SPDX license - -* Wed Jan 18 2023 Fedora Release Engineering - 1.13.0-122 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Wed Jul 20 2022 Fedora Release Engineering - 1.13.0-121 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Wed Jan 19 2022 Fedora Release Engineering - 1.13.0-120 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Wed Jul 21 2021 Fedora Release Engineering - 1.13.0-119 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Mon Jan 25 2021 Fedora Release Engineering - 1.13.0-118 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Fri Jul 31 2020 Fedora Release Engineering - 1.13.0-117 -- Second attempt - Rebuilt for - https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Mon Jul 27 2020 Fedora Release Engineering - 1.13.0-116 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Tue Jan 28 2020 Fedora Release Engineering - 1.13.0-115 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Wed Jul 24 2019 Fedora Release Engineering - 1.13.0-114 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Thu Jan 31 2019 Fedora Release Engineering - 1.13.0-113 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Fri Jan 25 2019 Jonathan Wakely - 1.13.0-112 -- Rebuilt for Boost 1.69 - -* Thu Jul 12 2018 Fedora Release Engineering - 1.13.0-111 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Tue Feb 20 2018 Rex Dieter - 1.13.0-110 -- BR: gcc-c++, use %%ldconfig_scriptlets - -* Wed Feb 07 2018 Fedora Release Engineering - 1.13.0-109 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Tue Jan 23 2018 Jonathan Wakely - 1.13.0-108 -- Rebuilt for Boost 1.66 - -* Sun Aug 06 2017 Björn Esser - 1.13.0-107 -- Rebuilt for AutoReq cmake-filesystem - -* Wed Aug 02 2017 Fedora Release Engineering - 1.13.0-106 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild - -* Wed Jul 26 2017 Fedora Release Engineering - 1.13.0-105 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Tue Jul 18 2017 Jonathan Wakely - 1.13.0-104 -- Rebuilt for Boost 1.64 - -* Fri Feb 10 2017 Fedora Release Engineering - 1.13.0-103 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Wed Feb 03 2016 Fedora Release Engineering - 1.13.0-102 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Thu Dec 17 2015 Rex Dieter 1.13.0-101 -- -devel: re-enable dbus-1/interfaces, Conflicts: kf5-akonadi-server-devel - -* Fri Dec 11 2015 Rex Dieter 1.13.0-100 -- for kf5 kdepim world, build libakonadi bits only (omit server and related files) - -* Thu Nov 12 2015 Rex Dieter 1.13.0-22 -- Recommends: akonadi-mysql - -* Sun Aug 30 2015 Jonathan Wakely 1.13.0-21 -- Rebuilt for Boost 1.59 - -* Wed Aug 05 2015 Jonathan Wakely 1.13.0-20 -- Rebuilt for Boost 1.58 - -* Fri Jul 31 2015 Rex Dieter 1.13.0-19 -- pull in latest 1.13 branch fixes - -* Wed Jul 29 2015 Fedora Release Engineering - 1.13.0-18 -- Rebuilt for https://fedoraproject.org/wiki/Changes/F23Boost159 - -* Wed Jul 22 2015 David Tardon - 1.13.0-17 -- rebuild for Boost 1.58 - -* Mon Jun 29 2015 Daniel Vrátil - 1.13.0-16 -- pull upstream fix for KDE#341884 - -* Tue Jun 16 2015 Fedora Release Engineering - 1.13.0-15 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild - -* Thu May 07 2015 Rex Dieter 1.13.0-14 -- %%build: explicitly set -DCMAKE_BUILD_TYPE="Release" (-DQT_NO_DEBUG was used already) - -* Mon Apr 27 2015 Daniel Vrátil - 1.13.0-13 -- Rebuild for boost - * Sun Mar 08 2015 Rex Dieter - 1.13.0-12 - explicit BuildRequires: mariadb-server - -mysql: Recommends: mariadb-server (f21+, #1199797)