In Evolution, when adding CalDAV based calendars, remote iCals or even Google based calendars, and using TLS/SSL, Evolution refuses to sync, claiming that TLS(/SSL) support is not available, and that we should install glib-networking.
Since in the wrapper's GIO_EXTRA_MODULES definitions, glib-networking is there and pointing to an existing directory (and that mails using TLS/SSL works), my guess, is that Evolution is communicating to an external process?
I have pkgs.gnome3.evolution in my users.extraUsers.minijackson.packages and I have services.gnome3.evolution-data-server enabled.
"x86_64-linux"Linux 4.14.38, NixOS, 18.03.132229.7cbf6ca1c84 (Impala)yesnonix-env (Nix) 2.0.1"nixos-18.03.132229.7cbf6ca1c84"/nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgsPerhaps a patch like this might work:
--- a/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix
+++ b/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix
@@ -1,6 +1,6 @@
{ fetchurl, stdenv, pkgconfig, gnome3, python3, dconf, gobjectIntrospection
, intltool, libsoup, libxml2, libsecret, icu, sqlite
-, p11-kit, db, nspr, nss, libical, gperf, makeWrapper
+, p11-kit, db, nspr, nss, libical, gperf, wrapGAppsHook, glib-networking
, vala, cmake, ninja, kerberos, openldap, webkitgtk, libaccounts-glib, json-glib }:
stdenv.mkDerivation rec {
@@ -15,12 +15,12 @@
};
nativeBuildInputs = [
- cmake ninja pkgconfig intltool python3 gperf makeWrapper gobjectIntrospection vala
+ cmake ninja pkgconfig intltool python3 gperf wrapGAppsHook gobjectIntrospection vala
];
buildInputs = with gnome3; [
glib libsoup libxml2 gtk gnome-online-accounts
gcr p11-kit libgweather libgdata libaccounts-glib json-glib
- icu sqlite kerberos openldap webkitgtk
+ icu sqlite kerberos openldap webkitgtk glib-networking
];
propagatedBuildInputs = [ libsecret nss nspr libical db ];
@@ -36,14 +36,6 @@
cmakeFlags="-DINCLUDE_INSTALL_DIR=$dev/include $cmakeFlags"
'';
- preFixup = ''
- for f in $(find $out/libexec/ -type f -executable); do
- wrapProgram "$f" \
- --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" \
- --prefix GIO_EXTRA_MODULES : "${stdenv.lib.getLib dconf}/lib/gio/modules"
- done
- '';
-
passthru = {
updateScript = gnome3.updateScript {
packageName = "evolution-data-server";
Weird, that does not seem to wrap the files in Edit: Never mind, it does. Not sure what I was building.${evolution-data-server.out}/libexec at all. No idea why.
@minijackson Does it work for you?
I'm sorry but could you give me quick directions on how to override <nixpkgs> ? When I try it, I have to recompile my whole system from source :-/
What I'm currently trying is to copy the directory: /nix/var/nix/profiles/per-user/root/channels/nixos/, applying the patch, and then nixos-rebuild test -I nixpkgs=/my/new/nixpkgs.
Well, quite a few packages depend on eds so rebuild of GNOME is to be expected. But since it is a systemd service, you might try to merge the following to your configuration:
let
eds = pkgs.gnome3.evolution-data-server.overrideAttrs (super: {
nativeBuildInputs = super.nativeBuildInputs ++ [ pkgs.wrapGAppsHook ];
buildInputs = super.buildInputs ++ [ pkgs.glib-networking ];
preFixup = "";
});
in {
services.gnome3.evolution-data-server.enable = false;
environment.systemPackages = [ eds ];
services.dbus.packages = [ eds ];
systemd.packages = [ eds ];
}
You may need to reload the daemon definitions in systemd or restart your session or something to make the change express itself.
Yes, that works @jtojnar, thank you very much!
Closed in 4feaecc23de45b37a3ca1f4b886b951d0be6d8f1
Most helpful comment
Perhaps a patch like this might work: