diff --git a/pkgs/applications/misc/evince/default.nix b/pkgs/applications/misc/evince/default.nix deleted file mode 100644 index 793c7bda2994..000000000000 --- a/pkgs/applications/misc/evince/default.nix +++ /dev/null @@ -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+"; - }; -} diff --git a/pkgs/desktops/gnome-3/core/evince/default.nix b/pkgs/desktops/gnome-3/core/evince/default.nix new file mode 100644 index 000000000000..d9fea7f82e67 --- /dev/null +++ b/pkgs/desktops/gnome-3/core/evince/default.nix @@ -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+"; + }; +} diff --git a/pkgs/desktops/gnome-3/default.nix b/pkgs/desktops/gnome-3/default.nix index 75e20ef0d502..9f9ca123fa19 100644 --- a/pkgs/desktops/gnome-3/default.nix +++ b/pkgs/desktops/gnome-3/default.nix @@ -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 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index a38aad96a848..fcfb7ffa65c6 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -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 { };