Compare commits

...
Sign in to create a new pull request.

45 commits

Author SHA1 Message Date
Fedora Release Engineering
f93f842792 Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild 2026-01-16 03:32:46 +00:00
Fedora Release Engineering
04d7652051 Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-23 16:51:21 +00:00
Fedora Release Engineering
d5433cf6e8 Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-16 10:46:32 +00:00
Fedora Release Engineering
b94e5a0e93 Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-17 16:46:09 +00:00
Fedora Release Engineering
547cef98b9 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-22 22:49:46 +00:00
Fedora Release Engineering
2bcdc9e18b Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-19 12:29:49 +00:00
Fedora Release Engineering
aefd5236d8 Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-19 13:03:56 +00:00
Than Ngo
8e0da1155d migrated to SPDX license 2023-06-12 12:12:13 +02:00
Fedora Release Engineering
3e10cdbabe Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-18 21:32:30 +00:00
Fedora Release Engineering
bad5a7962c Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-20 20:35:13 +00:00
Fedora Release Engineering
24bd5578bf - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-01-19 21:04:02 +00:00
Fedora Release Engineering
e513ef09a9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-21 17:23:36 +00:00
Fedora Release Engineering
1c611726ac - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-21 12:28:20 +00:00
Fedora Release Engineering
1d79ef60cf - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-01-25 23:56:12 +00:00
Fedora Release Engineering
e0c683030d - Second attempt - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-07-31 23:53:20 +00:00
Fedora Release Engineering
b53992e7f4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-07-27 11:52:34 +00:00
Neal Gompa
71184c15cb Update to new out-of-source build mechanism 2020-07-05 14:46:26 -04:00
Fedora Release Engineering
d4cb712128 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-01-28 11:21:56 +00:00
Fedora Release Engineering
5a7644bcb2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-07-24 17:42:27 +00:00
Fedora Release Engineering
5f516d08a4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-01-31 13:07:51 +00:00
Jonathan Wakely
e63e99f1ef Rebuilt for Boost 1.69 2019-01-25 08:13:03 +00:00
Fedora Release Engineering
442c71f0ec - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-07-12 20:05:38 +00:00
Rex Dieter
c183a6e345 BR: gcc-c++, use %ldconfig_scriptlets 2018-02-20 15:47:13 -06:00
Fedora Release Engineering
070820a23d - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-02-07 02:02:35 +00:00
Jonathan Wakely
e0386f5e78 Rebuilt for Boost 1.66 2018-01-23 12:01:43 +00:00
Björn Esser
99916b63be Rebuilt for AutoReq cmake-filesystem 2017-08-06 11:28:59 +02:00
Fedora Release Engineering
80b6168b8d - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild 2017-08-02 17:28:23 +00:00
Fedora Release Engineering
b8f85d80a1 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild 2017-07-26 02:42:05 +00:00
Jonathan Wakely
13aaf3464f Rebuilt for Boost 1.64 2017-07-18 12:13:23 +01:00
Fedora Release Engineering
cba6ce5ec1 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild 2017-02-10 05:50:28 +00:00
Dennis Gilmore
2981736d02 - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild 2016-02-03 16:04:06 +00:00
Rex Dieter
80bf6d98ef devel: re-enable dbus-1/interfaces, Conflicts: kf5-akonadi-server-devel 2015-12-17 13:45:30 -06:00
Rex Dieter
04ca9f646e for kf5 kdepim world, build libakonadi bits only (omit server and related files) 2015-12-11 08:38:19 -06:00
Rex Dieter
21ec943481 Recommends: akonadi-mysql 2015-11-12 10:29:52 -06:00
Jonathan Wakely
b97ca23711 Rebuilt for Boost 1.59 2015-08-30 17:39:19 +01:00
Rex Dieter
7e082edf72 Revert "15.08.0"
This reverts commit 36b47e46be.

moving to qt5 pim stack will be a lot more work, not ready till
at least sometime next week.
2015-08-30 11:30:12 -05:00
Than Ngo
36b47e46be 15.08.0 2015-08-20 22:28:40 +02:00
Jonathan Wakely
258eaca3ec Rebuilt for Boost 1.58 2015-08-05 19:35:04 +01:00
Rex Dieter
8b4426d5d3 pull in latest 1.13 branch fixes 2015-08-02 13:38:23 -05:00
Dennis Gilmore
6505b31d44 - Rebuilt for https://fedoraproject.org/wiki/Changes/F23Boost159 2015-07-29 11:57:10 -05:00
David Tardon
eb7406d932 rebuild for Boost 1.58 2015-07-22 18:03:59 +02:00
Dan Vrátil
62a3cba7d7 Pull upstream fix for KDE#341884 2015-06-29 23:03:33 +02:00
Dennis Gilmore
8942b654a7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild 2015-06-16 23:44:25 +00:00
Rex Dieter
bc3af2d35c %build: explicitly set -DCMAKE_BUILD_TYPE="Release" (-DQT_NO_DEBUG was used already) 2015-05-07 13:47:35 -05:00
Dan Vrátil
3845bc69ad Rebuild for boost 2015-04-27 15:04:52 +02:00
6 changed files with 452 additions and 142 deletions

View file

@ -0,0 +1,52 @@
From c23607679fa1451f0c6890bd4a5656c07d519853 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Dan=20Vr=C3=A1til?= <dvratil@redhat.com>
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<QStringList>("mimetypes");
QTest::addColumn<QVector<qint64>>("expectedResults");
- QTest::newRow("") << QVector<qint64>({ 0 })
- << QStringList({ QLatin1String("text/plain") })
- << QVector<qint64>({ col4.id(), col5.id(), col7.id() });
- QTest::newRow("") << QVector<qint64>({ 0 })
- << QStringList({ QLatin1String("application/octet-stream") })
- << QVector<qint64>({ col2.id(), col3.id(), col6.id(), col8.id() });
- QTest::newRow("") << QVector<qint64>({ col1.id() })
- << QStringList({ QLatin1String("text/plain") })
- << QVector<qint64>({ col4.id() });
- QTest::newRow("") << QVector<qint64>({ col1.id() })
- << QStringList({ QLatin1String("unique/mime-type") })
+ QTest::newRow("") << (QVector<qint64>() << 0)
+ << (QStringList() << QLatin1String("text/plain"))
+ << (QVector<qint64>() << col4.id() << col5.id() << col7.id());
+ QTest::newRow("") << (QVector<qint64>() << 0)
+ << (QStringList() << QLatin1String("application/octet-stream"))
+ << (QVector<qint64>() << col2.id() << col3.id() << col6.id() << col8.id());
+ QTest::newRow("") << (QVector<qint64>() << col1.id())
+ << (QStringList() << QLatin1String("text/plain"))
+ << (QVector<qint64>() << col4.id());
+ QTest::newRow("") << (QVector<qint64>() << col1.id())
+ << (QStringList() << QLatin1String("unique/mime-type"))
<< QVector<qint64>();
- QTest::newRow("") << QVector<qint64>({ col2.id(), col7.id() })
- << QStringList({ QLatin1String("application/octet-stream") })
- << QVector<qint64>({ col3.id(), col8.id() });
+ QTest::newRow("") << (QVector<qint64>() << col2.id() << col7.id())
+ << (QStringList() << QLatin1String("application/octet-stream"))
+ << (QVector<qint64>() << col3.id() << col8.id());
}
void testSearchHelperCollectionListing()
--
2.4.3

View file

@ -0,0 +1,60 @@
From abe71f46c3b2e657db25ac16c43a4c76b2212a9f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Dan=20Vr=C3=A1til?= <dvratil@redhat.com>
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<PimItem> items = qb.result();
if ( items.isEmpty() ) {
- throw HandlerException( "No items found" );
+ return successResponse( "MOVE complete" );
}
// Split the list by source collection
--
2.4.3

View file

@ -0,0 +1,140 @@
From 9c0dc6b3f0826d32eac310b2e7ecd858ca3df681 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Dan=20Vr=C3=A1til?= <dvratil@redhat.com>
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<qint64>("expectedPartSize");
QTest::addColumn<bool>("expectedChanged");
QTest::addColumn<bool>("isExternal");
+ QTest::addColumn<int>("version");
QTest::addColumn<PimItem>("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<Part> 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<Akonadi::Server::Response>();
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

View file

@ -0,0 +1,25 @@
From 18ed37d89b8185ac15a8bfe245de8a88d17f2c64 Mon Sep 17 00:00:00 2001
From: David Faure <faure@kde.org>
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

View file

@ -0,0 +1,33 @@
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()

View file

@ -1,3 +1,5 @@
# 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
@ -5,39 +7,21 @@
# trim changelog included in binary rpms
%global _changelog_trimtime %(date +%s -d "1 year ago")
# 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
Summary: PIM Storage Service Libraries
Name: akonadi
Version: 1.13.0
Release: 12%{?dist}
Release: 130%{?dist}
License: LGPLv2+
License: LGPL-2.0-or-later
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
## mysql config
Source10: akonadiserverrc.mysql
## downstream patches
Patch100: akonadi-1.13.0-libs_only.patch
## upstreamable patches
## upstream patches
## upstream patches (1.13 branch)
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
@ -69,171 +53,187 @@ 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
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}
%cmake -DCMAKE_BUILD_TYPE:STRING="Release"
%cmake_build
%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
%cmake_install
## unpackaged files
# omit mysql-global-mobile.conf
rm -fv %{buildroot}%{_sysconfdir}/akonadi/mysql-global-mobile.conf
rm -fv %{buildroot}%{_datadir}/mime/packages/akonadi-mime.xml
%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} ||:
%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
%ldconfig_scriptlets
%files
%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/
%doc AUTHORS
%license lgpl-license
%{_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/
%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
%{_datadir}/dbus-1/interfaces/org.freedesktop.Akonadi.*.xml
%changelog
* Fri Jan 16 2026 Fedora Release Engineering <releng@fedoraproject.org> - 1.13.0-130
- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
* Wed Jul 23 2025 Fedora Release Engineering <releng@fedoraproject.org> - 1.13.0-129
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Thu Jan 16 2025 Fedora Release Engineering <releng@fedoraproject.org> - 1.13.0-128
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Wed Jul 17 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.13.0-127
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Mon Jan 22 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.13.0-126
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Fri Jan 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.13.0-125
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Wed Jul 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.13.0-124
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Mon Jun 12 2023 Than Ngo <than@redhat.com> - 1.13.0-123
- migrated to SPDX license
* Wed Jan 18 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.13.0-122
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Wed Jul 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.13.0-121
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Wed Jan 19 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.13.0-120
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Wed Jul 21 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.13.0-119
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Mon Jan 25 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.13.0-118
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Fri Jul 31 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.13.0-117
- Second attempt - Rebuilt for
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.13.0-116
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.13.0-115
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.13.0-114
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.13.0-113
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Fri Jan 25 2019 Jonathan Wakely <jwakely@redhat.com> - 1.13.0-112
- Rebuilt for Boost 1.69
* Thu Jul 12 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.13.0-111
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Tue Feb 20 2018 Rex Dieter <rdieter@fedoraproject.org> - 1.13.0-110
- BR: gcc-c++, use %%ldconfig_scriptlets
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.13.0-109
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Tue Jan 23 2018 Jonathan Wakely <jwakely@redhat.com> - 1.13.0-108
- Rebuilt for Boost 1.66
* Sun Aug 06 2017 Björn Esser <besser82@fedoraproject.org> - 1.13.0-107
- Rebuilt for AutoReq cmake-filesystem
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.13.0-106
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.13.0-105
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Tue Jul 18 2017 Jonathan Wakely <jwakely@redhat.com> - 1.13.0-104
- Rebuilt for Boost 1.64
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.13.0-103
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1.13.0-102
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Thu Dec 17 2015 Rex Dieter <rdieter@fedoraproject.org> 1.13.0-101
- -devel: re-enable dbus-1/interfaces, Conflicts: kf5-akonadi-server-devel
* Fri Dec 11 2015 Rex Dieter <rdieter@fedoraproject.org> 1.13.0-100
- for kf5 kdepim world, build libakonadi bits only (omit server and related files)
* Thu Nov 12 2015 Rex Dieter <rdieter@fedoraproject.org> 1.13.0-22
- Recommends: akonadi-mysql
* Sun Aug 30 2015 Jonathan Wakely <jwakely@redhat.com> 1.13.0-21
- Rebuilt for Boost 1.59
* Wed Aug 05 2015 Jonathan Wakely <jwakely@redhat.com> 1.13.0-20
- Rebuilt for Boost 1.58
* Fri Jul 31 2015 Rex Dieter <rdieter@fedoraproject.org> 1.13.0-19
- pull in latest 1.13 branch fixes
* Wed Jul 29 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.13.0-18
- Rebuilt for https://fedoraproject.org/wiki/Changes/F23Boost159
* Wed Jul 22 2015 David Tardon <dtardon@redhat.com> - 1.13.0-17
- rebuild for Boost 1.58
* Mon Jun 29 2015 Daniel Vrátil <dvratil@redhat.com> - 1.13.0-16
- pull upstream fix for KDE#341884
* Tue Jun 16 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.13.0-15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Thu May 07 2015 Rex Dieter <rdieter@fedoraproject.org> 1.13.0-14
- %%build: explicitly set -DCMAKE_BUILD_TYPE="Release" (-DQT_NO_DEBUG was used already)
* Mon Apr 27 2015 Daniel Vrátil <dvratil@redhat.com> - 1.13.0-13
- Rebuild for boost
* Sun Mar 08 2015 Rex Dieter <rdieter@fedoraproject.org> - 1.13.0-12
- explicit BuildRequires: mariadb-server
- -mysql: Recommends: mariadb-server (f21+, #1199797)