update evince, seems to work now

This commit is contained in:
Vladimír Čunát 2013-01-29 09:20:14 +01:00
parent bf4313cd88
commit dd4a846b0f
4 changed files with 71 additions and 67 deletions

View File

@ -1,59 +0,0 @@
{ fetchurl, stdenv, perl, perlXMLParser, gettext, intltool
, pkgconfig, glib, gtk, gnomedocutils, gnomeicontheme
, libgnome, libgnomeui, scrollkeeper, libxslt
, libglade, libgnome_keyring, dbus, dbus_glib
, poppler, libspectre, djvulibre, shared_mime_info
, makeWrapper, which, ghostscript
, recentListSize ? null # 5 is not enough, allow passing a different number
}:
stdenv.mkDerivation rec {
name = "evince-2.32.0";
src = fetchurl {
url = "http://ftp.gnome.org/pub/GNOME/sources/evince/2.32/${name}.tar.bz2";
sha256 = "2a4c91ae38f8b5028cebb91b9da9ddc50ea8ae3f3d429df89ba351da2d787ff7";
};
buildInputs = [
perl perlXMLParser gettext intltool pkgconfig glib gtk
gnomedocutils gnomeicontheme libgnome libgnomeui libglade
scrollkeeper libgnome_keyring
libxslt # for `xsltproc'
dbus dbus_glib poppler libspectre djvulibre makeWrapper which
ghostscript
];
configureFlags = "--with-libgnome --enable-dbus --enable-pixbuf "
# Do not use nautilus
+ " --disable-nautilus "
# 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" \
--prefix XDG_DATA_DIRS : "${shared_mime_info}/share:$out/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+";
};
}

View File

@ -0,0 +1,68 @@
{ 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 = "http://ftp.gnome.org/pub/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"
for pkg in "${gsettings_desktop_schemas}" "${gtk3}"; do
cp -s $pkg/share/glib-2.0/schemas/*.gschema.xml $out/share/glib-2.0/schemas/
done
${glib}/bin/glib-compile-schemas $out/share/glib-2.0/schemas/
'';
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+";
};
}

View File

@ -15,6 +15,8 @@ rec {
at_spi2_core = callPackage ./core/at-spi2-core { };
evince = callPackage ./core/evince { }; # ToDo: dbus would prevent compilation, enable tests
gconf = callPackage ./core/gconf { };
gcr = callPackage ./core/gcr { }; # ToDo: tests fail

View File

@ -6896,14 +6896,7 @@ let
keepassx = callPackage ../applications/misc/keepassx { };
# FIXME: Evince and other GNOME/GTK+ apps (e.g., Viking) provide
# `share/icons/hicolor/icon-theme.cache'. Arbitrarily give this one a
# higher priority.
evince = hiPrio (callPackage ../applications/misc/evince {
inherit (gnome) gnomedocutils gnomeicontheme libgnome
libgnomeui libglade scrollkeeper;
poppler = poppler_0_18;
});
inherit (gnome3) evince;
evolution_data_server = newScope (gnome) ../servers/evolution-data-server { };