about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--nixos/modules/module-list.nix1
-rw-r--r--nixos/modules/services/desktops/gnome3/evince.nix35
-rw-r--r--nixos/modules/services/x11/desktop-managers/gnome3.nix1
-rw-r--r--pkgs/desktops/gnome-3/core/evince/default.nix50
4 files changed, 74 insertions, 13 deletions
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 03e5f537c224..ed6de399ca8a 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -265,6 +265,7 @@
   ./services/desktops/pipewire.nix
   ./services/desktops/gnome3/at-spi2-core.nix
   ./services/desktops/gnome3/chrome-gnome-shell.nix
+  ./services/desktops/gnome3/evince.nix
   ./services/desktops/gnome3/evolution-data-server.nix
   ./services/desktops/gnome3/file-roller.nix
   ./services/desktops/gnome3/gnome-disks.nix
diff --git a/nixos/modules/services/desktops/gnome3/evince.nix b/nixos/modules/services/desktops/gnome3/evince.nix
new file mode 100644
index 000000000000..5f040a16f067
--- /dev/null
+++ b/nixos/modules/services/desktops/gnome3/evince.nix
@@ -0,0 +1,35 @@
+# Evince.
+
+{ config, pkgs, lib, ... }:
+
+with lib;
+
+{
+
+  ###### interface
+
+  options = {
+
+    services.gnome3.evince = {
+
+      enable = mkEnableOption
+        "systemd and dbus services for Evince, the GNOME document viewer";
+
+    };
+
+  };
+
+
+  ###### implementation
+
+  config = mkIf config.services.gnome3.evince.enable {
+
+    environment.systemPackages = [ pkgs.evince ];
+
+    services.dbus.packages = [ pkgs.evince ];
+
+    systemd.packages = [ pkgs.evince ];
+
+  };
+
+}
diff --git a/nixos/modules/services/x11/desktop-managers/gnome3.nix b/nixos/modules/services/x11/desktop-managers/gnome3.nix
index 71ab8b6f49af..121ef07c00dd 100644
--- a/nixos/modules/services/x11/desktop-managers/gnome3.nix
+++ b/nixos/modules/services/x11/desktop-managers/gnome3.nix
@@ -126,6 +126,7 @@ in {
     services.dleyna-renderer.enable = mkDefault true;
     services.dleyna-server.enable = mkDefault true;
     services.gnome3.at-spi2-core.enable = true;
+    services.gnome3.evince.enable = mkDefault true;
     services.gnome3.evolution-data-server.enable = true;
     services.gnome3.file-roller.enable = mkDefault true;
     services.gnome3.gnome-disks.enable = mkDefault true;
diff --git a/pkgs/desktops/gnome-3/core/evince/default.nix b/pkgs/desktops/gnome-3/core/evince/default.nix
index 80a8700ab6ad..4b0ae91d78f5 100644
--- a/pkgs/desktops/gnome-3/core/evince/default.nix
+++ b/pkgs/desktops/gnome-3/core/evince/default.nix
@@ -1,6 +1,7 @@
-{ fetchurl
+{ fetchFromGitLab
 , stdenv
-, autoreconfHook
+, meson
+, ninja
 , pkgconfig
 , gettext
 , libxml2
@@ -26,21 +27,37 @@
 , gspell
 , adwaita-icon-theme
 , gsettings-desktop-schemas
+, gnome-desktop
+, dbus
+, python3
+, texlive
+, t1lib
+, gst_all_1
+, supportMultimedia ? true # PDF multimedia
 , libgxps
-, supportXPS ? false # Open XML Paper Specification via libgxps
+, supportXPS ? true # Open XML Paper Specification via libgxps
 }:
 
 stdenv.mkDerivation rec {
   pname = "evince";
   version = "3.32.0";
 
-  src = fetchurl {
-    url = "mirror://gnome/sources/evince/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0h2c6b2h6g3zy0gnycrjk1y7rp0kf7ppci76dmd2zvb6chhpgngh";
+  src = fetchFromGitLab {
+    domain = "gitlab.gnome.org";
+    owner = "GNOME";
+    repo = pname;
+    rev = version;
+    sha256 = "1klq8j70q8r8hyqv1wi6jcx8g76yh46bh8614y82zzggn4cx6y3r";
   };
 
+  postPatch = ''
+    chmod +x meson_post_install.py
+    patchShebangs meson_post_install.py
+  '';
+
   nativeBuildInputs = [
-    autoreconfHook
+    meson
+    ninja
     pkgconfig
     gobject-introspection
     gettext
@@ -48,6 +65,7 @@ stdenv.mkDerivation rec {
     yelp-tools
     appstream
     wrapGAppsHook
+    python3
   ];
 
   buildInputs = [
@@ -67,13 +85,19 @@ stdenv.mkDerivation rec {
     librsvg
     adwaita-icon-theme
     gspell
-  ] ++ stdenv.lib.optional supportXPS libgxps;
+    gnome-desktop
+    dbus # only needed to find the service directory
+    texlive.bin.core # kpathsea for DVI support
+    t1lib
+  ] ++ stdenv.lib.optional supportXPS libgxps
+    ++ stdenv.lib.optionals supportMultimedia (with gst_all_1; [
+      gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav ]);
 
-  configureFlags = [
-    "--disable-nautilus" # Do not build nautilus plugin
-    "--enable-ps"
-    "--enable-introspection"
-    (if supportXPS then "--enable-xps" else "--disable-xps")
+  mesonFlags = [
+    "-Dauto_features=enabled"
+    "-Dnautilus=false"
+    "-Dps=enabled"
+    "-Dgtk_doc=false"
   ];
 
   NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";