summary refs log tree commit diff
path: root/pkgs/desktops/gnome-3/core/evince/default.nix
blob: a9fce6369372fe704dde36789a7a13c3a6c5a54a (plain) (blame)
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
{ fetchurl, stdenv, pkgconfig, intltool, perl, perlXMLParser, libxml2
, glib, gtk3, pango, atk, gdk_pixbuf, shared_mime_info
, itstool, gnome_icon_theme, libgnome_keyring, gsettings_desktop_schemas
, poppler, ghostscriptX, djvulibre, libspectre
, makeWrapper #, python /*just for tests*/
, recentListSize ? null # 5 is not enough, allow passing a different number
}:

stdenv.mkDerivation rec {
  name = "evince-3.6.1";

  src = fetchurl {
    url = "mirror://gnome/sources/evince/3.6/${name}.tar.xz";
    sha256 = "1da1pij030dh8mb0pr0jnyszgsbjnh8lc17rj5ii52j3kmbv51qv";
  };

  buildInputs = [
    pkgconfig intltool perl perlXMLParser libxml2
    glib gtk3 pango atk gdk_pixbuf
    itstool gnome_icon_theme libgnome_keyring gsettings_desktop_schemas
    poppler ghostscriptX djvulibre libspectre
    makeWrapper
  ];

  configureFlags = [
    "--disable-nautilus" # Do not use nautilus
    "--disable-dbus" # strange compilation error
  ];

  preConfigure = with stdenv.lib;
    optionalString doCheck ''
      for file in test/*.py; do
        echo "patching $file"
        sed '1s,/usr,${python},' -i "$file"
      done
    '' + optionalString (recentListSize != null) ''
      sed -i 's/\(gtk_recent_chooser_set_limit .*\)5)/\1${builtins.toString recentListSize})/' shell/ev-open-recent-action.c
      sed -i 's/\(if (++n_items == \)5\(.*\)/\1${builtins.toString recentListSize}\2/' shell/ev-window.c
    '';

  postInstall = ''
    # Tell Glib/GIO about the MIME info directory, which is used
    # by `g_file_info_get_content_type ()'.
    wrapProgram "$out/bin/evince" \
      --prefix XDG_DATA_DIRS : "${shared_mime_info}/share:$out/share"
  '' + gsettings_desktop_schemas.doCompileSchemas;
  doCheck = false; # would need pythonPackages.dogTail, which is missing

  meta = {
    homepage = http://www.gnome.org/projects/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 = "GPLv2+";
  };
}