1{
2 mkDerivation,
3 lib,
4 kdepimTeam,
5 extra-cmake-modules,
6 shared-mime-info,
7 accounts-qt,
8 boost,
9 kaccounts-integration,
10 kcompletion,
11 kconfigwidgets,
12 kcrash,
13 kdbusaddons,
14 kdesignerplugin,
15 ki18n,
16 kiconthemes,
17 kio,
18 kitemmodels,
19 kwindowsystem,
20 mariadb,
21 postgresql,
22 qttools,
23 signond,
24 xz,
25
26 mysqlSupport ? true,
27 postgresSupport ? false,
28 defaultDriver ? if mysqlSupport then "MYSQL" else "POSTGRES",
29}:
30
31assert mysqlSupport || postgresSupport;
32
33mkDerivation {
34 pname = "akonadi";
35 meta = {
36 license = [ lib.licenses.lgpl21 ];
37 maintainers = kdepimTeam;
38 };
39 patches = [
40 ./0001-akonadi-paths.patch
41 ./0002-akonadi-timestamps.patch
42 ./0003-akonadi-revert-make-relocatable.patch
43 ];
44 nativeBuildInputs = [
45 extra-cmake-modules
46 shared-mime-info
47 ];
48 buildInputs = [
49 kaccounts-integration
50 kcompletion
51 kconfigwidgets
52 kcrash
53 kdbusaddons
54 kdesignerplugin
55 ki18n
56 kiconthemes
57 kio
58 kwindowsystem
59 xz
60 accounts-qt
61 qttools
62 signond
63 ];
64 propagatedBuildInputs = [
65 boost
66 kitemmodels
67 ];
68 outputs = [
69 "out"
70 "dev"
71 ];
72 CXXFLAGS = [
73 ''-DNIXPKGS_MYSQL_MYSQLD=\"${lib.optionalString mysqlSupport "${lib.getBin mariadb}/bin/mysqld"}\"''
74 ''-DNIXPKGS_MYSQL_MYSQLADMIN=\"${lib.optionalString mysqlSupport "${lib.getBin mariadb}/bin/mysqladmin"}\"''
75 ''-DNIXPKGS_MYSQL_MYSQL_INSTALL_DB=\"${lib.optionalString mysqlSupport "${lib.getBin mariadb}/bin/mysql_install_db"}\"''
76 ''-DNIXPKGS_MYSQL_MYSQLCHECK=\"${lib.optionalString mysqlSupport "${lib.getBin mariadb}/bin/mysqlcheck"}\"''
77 ''-DNIXPKGS_POSTGRES_PG_CTL=\"${lib.optionalString postgresSupport "${lib.getBin postgresql}/bin/pg_ctl"}\"''
78 ''-DNIXPKGS_POSTGRES_PG_UPGRADE=\"${lib.optionalString postgresSupport "${lib.getBin postgresql}/bin/pg_upgrade"}\"''
79 ''-DNIXPKGS_POSTGRES_INITDB=\"${lib.optionalString postgresSupport "${lib.getBin postgresql}/bin/initdb"}\"''
80 ''-DNIX_OUT=\"${placeholder "out"}\"''
81 ''-I${lib.getDev kio}/include/KF5'' # Fixes: kio_version.h: No such file or directory
82 ];
83
84 cmakeFlags = lib.optional (defaultDriver != "MYSQL") "-DDATABASE_BACKEND=${defaultDriver}";
85
86 postInstall = ''
87 # added as an include directory by cmake files and fails to compile if it's missing
88 mkdir -p "$dev/include/KF5"
89 '';
90}