nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 stdenv,
3 lib,
4 fetchFromGitHub,
5 glib,
6 gobject-introspection,
7 intltool,
8 shared-mime-info,
9 gtk3,
10 wrapGAppsHook3,
11 libarchive,
12 libxml2,
13 xapp,
14 xapp-symbolic-icons,
15 meson,
16 pkg-config,
17 cairo,
18 libsecret,
19 poppler,
20 libspectre,
21 libgxps,
22 webkitgtk_4_1,
23 mathjax,
24 ninja,
25 djvulibre,
26 backends ? [
27 "pdf"
28 "ps" # "dvi" "t1lib"
29 "djvu"
30 "tiff"
31 "pixbuf"
32 "comics"
33 "xps"
34 "epub"
35 ],
36}:
37
38stdenv.mkDerivation (finalAttrs: {
39 pname = "xreader";
40 version = "4.6.3";
41
42 src = fetchFromGitHub {
43 owner = "linuxmint";
44 repo = "xreader";
45 rev = finalAttrs.version;
46 hash = "sha256-lVJFNOiayAai/Lg4tl8lNaK5fdTlZ0ptzstUzciH1mA=";
47 };
48
49 nativeBuildInputs = [
50 shared-mime-info
51 wrapGAppsHook3
52 meson
53 ninja
54 pkg-config
55 gobject-introspection
56 intltool
57 ];
58
59 mesonFlags = [
60 # FIXME: `MathJax.js` is only available in MathJax 2.7.x.
61 "-Dmathjax-directory=${mathjax}"
62 "-Dintrospection=true"
63 ]
64 ++ (map (x: "-D${x}=true") backends);
65
66 buildInputs = [
67 glib
68 gtk3
69 xapp
70 cairo
71 libarchive
72 libxml2
73 libsecret
74 poppler
75 libspectre
76 libgxps
77 webkitgtk_4_1
78 mathjax
79 djvulibre
80 ];
81
82 preFixup = ''
83 gappsWrapperArgs+=(
84 --prefix XDG_DATA_DIRS : "${lib.makeSearchPath "share" [ xapp-symbolic-icons ]}"
85 )
86 '';
87
88 meta = {
89 description = "Document viewer capable of displaying multiple and single page
90document formats like PDF and Postscript";
91 homepage = "https://github.com/linuxmint/xreader";
92 license = lib.licenses.gpl2Plus;
93 platforms = lib.platforms.linux;
94 teams = [ lib.teams.cinnamon ];
95 };
96})