blob: 4f8e877897eeda626038f958978768eed91391da (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
KDE_DESIGNERPLUGIN="true"
KDE_TEST="forceoptional"
VIRTUALDBUS_TEST="true"
VIRTUALX_REQUIRED="test"
inherit kde5
DESCRIPTION="Storage service for PIM data and libraries for PIM apps"
HOMEPAGE="https://community.kde.org/KDE_PIM/akonadi"
KEYWORDS="amd64 ~arm ~arm64 x86"
LICENSE="LGPL-2.1+"
IUSE="+mysql postgres sqlite tools xml"
REQUIRED_USE="|| ( mysql postgres sqlite ) test? ( tools )"
COMMON_DEPEND="
$(add_frameworks_dep kcompletion)
$(add_frameworks_dep kconfig)
$(add_frameworks_dep kconfigwidgets)
$(add_frameworks_dep kcoreaddons)
$(add_frameworks_dep kcrash)
$(add_frameworks_dep kdbusaddons)
$(add_frameworks_dep ki18n)
$(add_frameworks_dep kiconthemes)
$(add_frameworks_dep kio)
$(add_frameworks_dep kitemmodels)
$(add_frameworks_dep kitemviews)
$(add_frameworks_dep kwidgetsaddons)
$(add_frameworks_dep kwindowsystem)
$(add_frameworks_dep kxmlgui)
$(add_qt_dep qtdbus)
$(add_qt_dep qtgui)
$(add_qt_dep qtnetwork)
$(add_qt_dep qtsql 'mysql?,postgres?')
$(add_qt_dep qtwidgets)
$(add_qt_dep qtxml)
sqlite? (
$(add_qt_dep qtsql 'sqlite' '' '5=')
dev-db/sqlite:3
)
xml? ( dev-libs/libxml2 )
"
DEPEND="${COMMON_DEPEND}
dev-libs/boost
dev-libs/libxslt
test? ( sys-apps/dbus )
"
RDEPEND="${COMMON_DEPEND}
!kde-apps/akonadi:4
!<kde-apps/kapptemplate-17.11.80
!kde-apps/kdepim-l10n
!kde-apps/kdepimlibs
mysql? ( virtual/mysql )
postgres? ( dev-db/postgresql )
"
# some akonadi tests time out, that probably needs more work as it's ~700 tests
RESTRICT+=" test"
PATCHES=(
"${FILESDIR}/${PN}-18.12.2-mysql56-crash.patch"
"${FILESDIR}/${P}-major-regression-updating-attributes.patch"
"${FILESDIR}/${P}-collection-detach-at-wrong-time-in-attribute.patch"
)
pkg_setup() {
# Set default storage backend in order: MySQL, PostgreSQL, SQLite
# reverse driver check to keep the order
use sqlite && DRIVER="QSQLITE3"
use postgres && DRIVER="QPSQL"
use mysql && DRIVER="QMYSQL"
if use sqlite || has_version "<${CATEGORY}/${P}[sqlite]"; then
ewarn "We strongly recommend you change your Akonadi database backend to either MySQL"
ewarn "or PostgreSQL in your user configuration."
ewarn "In particular, kde-apps/kmail does not work properly with the sqlite backend."
fi
kde5_pkg_setup
}
src_configure() {
local mycmakeargs=(
-DAKONADI_BUILD_QSQLITE=$(usex sqlite)
-DBUILD_TOOLS=$(usex tools)
$(cmake-utils_use_find_package xml LibXml2)
)
kde5_src_configure
}
src_install() {
# Who knows, maybe it accidentally fixes our permission issues
cat <<-EOF > "${T}"/akonadiserverrc
[%General]
Driver=${DRIVER}
EOF
insinto /usr/share/config/akonadi
doins "${T}"/akonadiserverrc
kde5_src_install
}
pkg_postinst() {
kde5_pkg_postinst
elog "You can select the storage backend in ~/.config/akonadi/akonadiserverrc."
elog "Available drivers are:"
use mysql && elog " QMYSQL"
use postgres && elog " QPSQL"
use sqlite && elog " QSQLITE3"
elog "${DRIVER} has been set as your default akonadi storage backend."
}
|