nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 stdenv,
3 lib,
4 fetchurl,
5 gnome,
6 cmake,
7 gettext,
8 intltool,
9 pkg-config,
10 evolution-data-server,
11 evolution,
12 gtk3,
13 libsoup_3,
14 libical,
15 json-glib,
16 libmspack,
17 webkitgtk_4_1,
18 replaceVars,
19 _experimental-update-script-combinators,
20 glib,
21 makeHardcodeGsettingsPatch,
22}:
23
24stdenv.mkDerivation rec {
25 pname = "evolution-ews";
26 version = "3.58.2";
27
28 src = fetchurl {
29 url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
30 hash = "sha256-+m/A39F+9hpjCtM8ZFuDWMQmZ2YSbxcWs8ef79KQyPs=";
31 };
32
33 patches = [
34 # evolution-ews contains .so files loaded by evolution-data-server referring
35 # schemas from evolution. evolution-data-server is not wrapped with
36 # evolution's schemas because it would be a circular dependency with
37 # evolution.
38 (replaceVars ./hardcode-gsettings.patch {
39 evo = glib.makeSchemaPath evolution evolution.name;
40 })
41 ];
42
43 nativeBuildInputs = [
44 cmake
45 gettext
46 intltool
47 pkg-config
48 ];
49
50 buildInputs = [
51 evolution-data-server
52 evolution
53 gtk3
54 libsoup_3
55 libical
56 json-glib
57 libmspack
58 # For evolution-shell-3.0
59 webkitgtk_4_1
60 ];
61
62 cmakeFlags = [
63 # don't try to install into ${evolution}
64 "-DFORCE_INSTALL_PREFIX=ON"
65 ];
66
67 passthru = {
68 hardcodeGsettingsPatch = makeHardcodeGsettingsPatch {
69 inherit src;
70 schemaIdToVariableMapping = {
71 "org.gnome.evolution.mail" = "evo";
72 "org.gnome.evolution.calendar" = "evo";
73 };
74 schemaExistsFunction = "e_ews_common_utils_gsettings_schema_exists";
75 };
76
77 updateScript =
78 let
79 updateSource = gnome.updateScript {
80 packageName = "evolution-ews";
81 versionPolicy = "odd-unstable";
82 };
83 updatePatch = _experimental-update-script-combinators.copyAttrOutputToFile "evolution-ews.hardcodeGsettingsPatch" ./hardcode-gsettings.patch;
84 in
85 _experimental-update-script-combinators.sequence [
86 updateSource
87 updatePatch
88 ];
89 };
90
91 meta = {
92 description = "Evolution connector for Microsoft Exchange Server protocols";
93 homepage = "https://gitlab.gnome.org/GNOME/evolution-ews";
94 license = lib.licenses.lgpl21Plus; # https://gitlab.gnome.org/GNOME/evolution-ews/issues/111
95 maintainers = [ lib.maintainers.dasj19 ];
96 platforms = lib.platforms.linux;
97 };
98}