1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
|
{ 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 = [
"-Dauto_features=enabled"
"-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 ];
};
}
|