nixpkgs/pkgs/desktops/gnome-3/core/evince/default.nix
2019-07-22 18:50:57 -04:00

140 lines
2.8 KiB
Nix

{ fetchFromGitLab
, stdenv
, fetchpatch
, meson
, ninja
, pkgconfig
, gettext
, libxml2
, appstream
, glib
, gtk3
, pango
, atk
, gdk-pixbuf
, shared-mime-info
, itstool
, gnome3
, poppler
, ghostscriptX
, djvulibre
, libspectre
, libarchive
, libsecret
, wrapGAppsHook
, librsvg
, gobject-introspection
, yelp-tools
, gspell
, adwaita-icon-theme
, gsettings-desktop-schemas
, gnome-desktop
, dbus
, python3
, texlive
, t1lib
, gst_all_1
, supportMultimedia ? true # PDF multimedia
, libgxps
, supportXPS ? true # Open XML Paper Specification via libgxps
}:
stdenv.mkDerivation rec {
pname = "evince";
version = "3.32.0";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "GNOME";
repo = pname;
rev = version;
sha256 = "1klq8j70q8r8hyqv1wi6jcx8g76yh46bh8614y82zzggn4cx6y3r";
};
patches = [
(fetchpatch {
name = "CVE-2019-11459.patch";
url = "https://gitlab.gnome.org/GNOME/evince/commit/3e38d5ad724a042eebadcba8c2d57b0f48b7a8c7.patch";
sha256 = "1ds6iwr2r9i86nwrly8cx7p1kbvf1gljjplcffa67znxqmwx4n74";
})
];
postPatch = ''
chmod +x meson_post_install.py
patchShebangs meson_post_install.py
'';
nativeBuildInputs = [
meson
ninja
pkgconfig
gobject-introspection
gettext
itstool
yelp-tools
appstream
wrapGAppsHook
python3
];
buildInputs = [
glib
gtk3
pango
atk
gdk-pixbuf
libxml2
gsettings-desktop-schemas
poppler
ghostscriptX
djvulibre
libspectre
libarchive
libsecret
librsvg
adwaita-icon-theme
gspell
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 ]);
mesonFlags = [
"-Dnautilus=false"
"-Dps=enabled"
"-Dgtk_doc=false"
];
NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
preFixup = ''
gappsWrapperArgs+=(--prefix XDG_DATA_DIRS : "${shared-mime-info}/share")
'';
passthru = {
updateScript = gnome3.updateScript {
packageName = pname;
};
};
meta = with stdenv.lib; {
homepage = https://wiki.gnome.org/Apps/Evince;
description = "GNOME's document viewer";
longDescription = ''
Evince is a document viewer for multiple document formats. It
currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
of Evince is to replace the multiple document viewers that exist
on the GNOME Desktop with a single simple application.
'';
license = stdenv.lib.licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = gnome3.maintainers ++ [ maintainers.vcunat ];
};
}