evolution: improve out-of-gnome use

Add `evolution_data_server` to `propagatedUserEnvPkgs`. Evolution needs
`${gnome3.evolution_data_server}/libexec/evolution-source-registry` to
be running to be able to find or create any account settings at all, and
it apparently doesn't know to start it if it's not in the user env.

Use `makeGAppsWrapper` instead of a custom `wrapProgram` invocation.

Add `glib_networking`, `libgnome_keyring` and `dconf` to `buildInputs`.
`libgnome_keyring` appears to be necessary for evolution to remember a
password even for a single session, even if it doesn't get added to the
keyring permanently. `dconf` is necessary to persist preferences.
`glib_networking` is necessary to connect to mail servers.
This commit is contained in:
Benjamin Herr 2016-08-22 23:49:31 +02:00 committed by Bjørn Forsman
parent 4ff7facccc
commit 240ca8bebe
1 changed files with 9 additions and 13 deletions

View File

@ -1,8 +1,8 @@
{ stdenv, intltool, fetchurl, libxml2, webkitgtk, highlight { stdenv, intltool, fetchurl, libxml2, webkitgtk, highlight
, pkgconfig, gtk3, glib, libnotify, gtkspell3 , pkgconfig, gtk3, glib, libnotify, gtkspell3
, makeWrapper, itstool, shared_mime_info, libical, db, gcr, sqlite , wrapGAppsHook, itstool, shared_mime_info, libical, db, gcr, sqlite
, gnome3, librsvg, gdk_pixbuf, libsecret, nss, nspr, icu, libtool , gnome3, librsvg, gdk_pixbuf, libsecret, nss, nspr, icu, libtool
, libcanberra_gtk3, bogofilter, gst_all_1, procps, p11_kit }: , libcanberra_gtk3, bogofilter, gst_all_1, procps, p11_kit, dconf }:
let let
majVer = gnome3.version; majVer = gnome3.version;
@ -11,18 +11,22 @@ in stdenv.mkDerivation rec {
doCheck = true; doCheck = true;
propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard
gnome3.evolution_data_server ];
propagatedBuildInputs = [ gnome3.gtkhtml ]; propagatedBuildInputs = [ gnome3.gtkhtml ];
buildInputs = [ pkgconfig gtk3 glib intltool itstool libxml2 libtool buildInputs = [ gtk3 glib intltool itstool libxml2 libtool
gdk_pixbuf gnome3.defaultIconTheme librsvg db icu gdk_pixbuf gnome3.defaultIconTheme librsvg db icu
gnome3.evolution_data_server libsecret libical gcr gnome3.evolution_data_server libsecret libical gcr
webkitgtk shared_mime_info gnome3.gnome_desktop gtkspell3 webkitgtk shared_mime_info gnome3.gnome_desktop gtkspell3
libcanberra_gtk3 bogofilter gnome3.libgdata sqlite libcanberra_gtk3 bogofilter gnome3.libgdata sqlite
gst_all_1.gstreamer gst_all_1.gst-plugins-base p11_kit gst_all_1.gstreamer gst_all_1.gst-plugins-base p11_kit
nss nspr libnotify procps highlight gnome3.libgweather nss nspr libnotify procps highlight gnome3.libgweather
gnome3.gsettings_desktop_schemas makeWrapper ]; gnome3.gsettings_desktop_schemas dconf
gnome3.libgnome_keyring gnome3.glib_networking ];
nativeBuildInputs = [ pkgconfig wrapGAppsHook ];
configureFlags = [ "--disable-spamassassin" "--disable-pst-import" "--disable-autoar" configureFlags = [ "--disable-spamassassin" "--disable-pst-import" "--disable-autoar"
"--disable-libcryptui" ]; "--disable-libcryptui" ];
@ -31,14 +35,6 @@ in stdenv.mkDerivation rec {
enableParallelBuilding = true; enableParallelBuilding = true;
preFixup = ''
for f in $out/bin/* $out/libexec/*; do
wrapProgram "$f" \
--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
--prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
done
'';
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = https://wiki.gnome.org/Apps/Evolution; homepage = https://wiki.gnome.org/Apps/Evolution;
description = "Personal information management application that provides integrated mail, calendaring and address book functionality"; description = "Personal information management application that provides integrated mail, calendaring and address book functionality";