diff options
author | Alyssa Ross <hi@alyssa.is> | 2021-01-26 18:06:19 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2021-01-26 18:21:18 +0000 |
commit | 7ac6743433dd45ceaead2ca96f6356dc0d064ce6 (patch) | |
tree | b68ec89d7d2a8d2b6e6b1ff94ba26d6af4096350 /nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution | |
parent | c5c7451dbef37b51f52792d6395a670ef5183d27 (diff) | |
parent | 891f607d5301d6730cb1f9dcf3618bcb1ab7f10e (diff) | |
download | nixlib-7ac6743433dd45ceaead2ca96f6356dc0d064ce6.tar nixlib-7ac6743433dd45ceaead2ca96f6356dc0d064ce6.tar.gz nixlib-7ac6743433dd45ceaead2ca96f6356dc0d064ce6.tar.bz2 nixlib-7ac6743433dd45ceaead2ca96f6356dc0d064ce6.tar.lz nixlib-7ac6743433dd45ceaead2ca96f6356dc0d064ce6.tar.xz nixlib-7ac6743433dd45ceaead2ca96f6356dc0d064ce6.tar.zst nixlib-7ac6743433dd45ceaead2ca96f6356dc0d064ce6.zip |
Merge commit '891f607d5301d6730cb1f9dcf3618bcb1ab7f10e'
Diffstat (limited to 'nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution')
3 files changed, 198 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix new file mode 100644 index 000000000000..c9fdbf3a9133 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix @@ -0,0 +1,136 @@ +{ lib, stdenv +, cmake +, ninja +, intltool +, fetchurl +, libxml2 +, webkitgtk +, highlight +, pkg-config +, gtk3 +, glib +, libnotify +, gspell +, evolution-data-server +, libgdata +, libgweather +, glib-networking +, gsettings-desktop-schemas +, wrapGAppsHook +, itstool +, shared-mime-info +, libical +, db +, gcr +, sqlite +, gnome3 +, librsvg +, gdk-pixbuf +, libsecret +, nss +, nspr +, icu +, libcanberra-gtk3 +, bogofilter +, gst_all_1 +, procps +, p11-kit +, openldap +, spamassassin +}: + +stdenv.mkDerivation rec { + pname = "evolution"; + version = "3.38.2"; + + src = fetchurl { + url = "mirror://gnome/sources/evolution/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + sha256 = "1whjgfhcxpb5yhhvyqb8pv71vprw6fv02czin4k4z6dxrxsq32qx"; + }; + + nativeBuildInputs = [ + cmake + intltool + itstool + libxml2 + ninja + pkg-config + wrapGAppsHook + ]; + + buildInputs = [ + gnome3.adwaita-icon-theme + bogofilter + db + evolution-data-server + gcr + gdk-pixbuf + glib + glib-networking + gnome3.gnome-desktop + gsettings-desktop-schemas + gst_all_1.gst-plugins-base + gst_all_1.gstreamer + gtk3 + gspell + highlight + icu + libcanberra-gtk3 + libgdata + libgweather + libical + libnotify + librsvg + libsecret + nspr + nss + openldap + p11-kit + procps + shared-mime-info + sqlite + webkitgtk + ]; + + propagatedUserEnvPkgs = [ + evolution-data-server + ]; + + cmakeFlags = [ + "-DENABLE_AUTOAR=OFF" + "-DENABLE_LIBCRYPTUI=OFF" + "-DENABLE_PST_IMPORT=OFF" + "-DENABLE_YTNEF=OFF" + "-DWITH_SPAMASSASSIN=${spamassassin}/bin/spamassassin" + "-DWITH_SA_LEARN=${spamassassin}/bin/sa-learn" + "-DWITH_BOGOFILTER=${bogofilter}/bin/bogofilter" + "-DWITH_OPENLDAP=${openldap}" + ]; + + requiredSystemFeatures = [ + "big-parallel" + ]; + + doCheck = true; + + patches = [ + ./moduledir_from_env.patch + ]; + + passthru = { + updateScript = gnome3.updateScript { + packageName = "evolution"; + attrPath = "gnome3.evolution"; + }; + }; + + PKG_CONFIG_LIBEDATASERVERUI_1_2_UIMODULEDIR = "${placeholder "out"}/lib/evolution-data-server/ui-modules"; + + meta = with lib; { + homepage = "https://wiki.gnome.org/Apps/Evolution"; + description = "Personal information management application that provides integrated mail, calendaring and address book functionality"; + maintainers = teams.gnome.members; + license = licenses.lgpl2Plus; + platforms = platforms.linux; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/moduledir_from_env.patch b/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/moduledir_from_env.patch new file mode 100644 index 000000000000..2a5edfb9a5a1 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/moduledir_from_env.patch @@ -0,0 +1,21 @@ +diff --git a/src/shell/main.c b/src/shell/main.c +index 5d089225ca..030908d684 100644 +--- a/src/shell/main.c ++++ b/src/shell/main.c +@@ -407,7 +407,15 @@ create_default_shell (void) + } + + /* Load all shared library modules. */ +- module_types = e_module_load_all_in_directory (EVOLUTION_MODULEDIR); ++ const gchar *modules_directory = EVOLUTION_MODULEDIR; ++ const gchar *modules_directory_env; ++ ++ modules_directory_env = g_getenv ("EVOLUTION_MODULEDIR"); ++ if (modules_directory_env && ++ g_file_test (modules_directory_env, G_FILE_TEST_IS_DIR)) ++ modules_directory = g_strdup (modules_directory_env); ++ ++ module_types = e_module_load_all_in_directory (modules_directory); + g_list_free_full (module_types, (GDestroyNotify) g_type_module_unuse); + + flags = G_APPLICATION_HANDLES_OPEN | diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/wrapper.nix b/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/wrapper.nix new file mode 100644 index 000000000000..050082c6f933 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution/wrapper.nix @@ -0,0 +1,41 @@ +{ lib, makeWrapper, symlinkJoin, gnome3, plugins }: + +symlinkJoin { + name = "evolution-with-plugins"; + paths = [ gnome3.evolution-data-server ] ++ plugins; + + buildInputs = [ makeWrapper ]; + + postBuild = '' + for i in $out/bin/* $out/libexec/**; do + if [ ! -d $i ]; then + echo wrapping $i + wrapProgram $i \ + --set LD_LIBRARY_PATH "$out/lib" \ + --set EDS_ADDRESS_BOOK_MODULES "$out/lib/evolution-data-server/addressbook-backends/" \ + --set EDS_CALENDAR_MODULES "$out/lib/evolution-data-server/calendar-backends/" \ + --set EDS_CAMEL_PROVIDER_DIR "$out/lib/evolution-data-server/camel-providers/" \ + --set EDS_REGISTRY_MODULES "$out/lib/evolution-data-server/registry-modules/" \ + --set EVOLUTION_MODULEDIR "$out/lib/evolution/modules" + fi + done + + fixSymlink () { + local link=$1 + local target=$(readlink $link); + local newtarget=$(sed "s@/nix/store/[^/]*/@$out/@" <<< "$target") + if [[ $target != $newtarget ]] && [[ -d $newtarget ]]; then + echo fixing link to point to $newtarget instead of $target + rm $link + ln -s $newtarget $link + fi + } + + fixSymlink $out/share/dbus-1/service + fixSymlink $out/lib/systemd/user + for i in $out/share/dbus-1/services/*.service $out/lib/systemd/user/*.service; do + echo fixing service file $i to point to $out + sed -i "s@/nix/store/[^/]*/@$out/@" $i + done + ''; +} |