diff options
-rw-r--r-- | nixos/modules/module-list.nix | 1 | ||||
-rw-r--r-- | nixos/modules/services/desktops/gnome3/evince.nix | 35 | ||||
-rw-r--r-- | nixos/modules/services/x11/desktop-managers/gnome3.nix | 1 | ||||
-rw-r--r-- | pkgs/desktops/gnome-3/core/evince/default.nix | 50 |
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"; |