summary refs log tree commit diff
path: root/pkgs/applications/misc/evince/default.nix
blob: 837930738e85455fbeb97433824f688c26e22ee2 (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
{ fetchurl, stdenv, perl, perlXMLParser, gettext, intltool
, pkgconfig, glib, gtk, gnomedocutils, gnomeicontheme
, libgnome, libgnomeui, scrollkeeper, libxslt
, libglade, dbus, dbus_glib
, poppler, libspectre, djvulibre, shared_mime_info
, makeWrapper, which
, recentListSize ? null # 5 is not enough, allow passing a different number
}:

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

  src = fetchurl {
    url = "http://ftp.gnome.org/pub/GNOME/sources/evince/2.26/${name}.tar.bz2";
    sha256 = "1wsl5vdrj0829wq223dryq5p7izgzsz6mfl4igix7b5wga42zff1";
  };

  buildInputs = [
    perl perlXMLParser gettext intltool
    pkgconfig glib gtk gnomedocutils gnomeicontheme
    libgnome libgnomeui libglade scrollkeeper
    libxslt  # for `xsltproc'
    dbus dbus_glib
    poppler libspectre djvulibre
    makeWrapper which
  ];

  configureFlags = "--with-libgnome --enable-dbus --enable-pixbuf "

    # Do not update Scrollkeeper's database (GNOME's help system).
    + "--disable-scrollkeeper";

  postUnpack = if recentListSize != null then ''
    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
  '' else "";

  postInstall = ''
    # Tell Glib/GIO about the MIME info directory, which is used
    # by `g_file_info_get_content_type ()'.
    wrapProgram "$out/bin/evince" \
      --set XDG_DATA_DIRS "${shared_mime_info}/share"
  '';

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