summary refs log tree commit diff
path: root/pkgs/development/libraries/poppler/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/libraries/poppler/default.nix')
-rw-r--r--pkgs/development/libraries/poppler/default.nix94
1 files changed, 34 insertions, 60 deletions
diff --git a/pkgs/development/libraries/poppler/default.nix b/pkgs/development/libraries/poppler/default.nix
index 263162336485..2512979bfa3d 100644
--- a/pkgs/development/libraries/poppler/default.nix
+++ b/pkgs/development/libraries/poppler/default.nix
@@ -1,76 +1,50 @@
-{ stdenv, fetchurl, fetchgit, cairo, freetype, fontconfig, zlib
-, libjpeg, curl, libpthreadstubs, xorg, openjpeg
-, libxml2, pkgconfig, cmake, lcms2
+{ fetchurl, stdenv, cairo, freetype, fontconfig, zlib
+, libjpeg, pixman, curl, libpthreadstubs, libXau, libXdmcp, openjpeg
+, libxml2, pkgconfig, cmake, lcms
+, gtkSupport ? false, glib ? null, gtk ? null
 , qt4Support ? false, qt4 ? null
 }:
 
-let
-  version = "0.22.3";
-  sha256 = "0ca4jci8xmbdz4fhahdcck0cqms6ax55yggi2ih3clgrpqf96sli";
+stdenv.mkDerivation rec {
+  name = "poppler-0.18.4";
 
-  qtcairo_patches =
-    let qtcairo = fetchgit { # the version for poppler-0.22
-      url = "git://github.com/giddie/poppler-qt4-cairo-backend.git";
-      rev = "7a12c58e5cefc2b7a5179c53b387fca8963195c0";
-      sha256 = "1jg2d5y62d0bv206nijb63x426zfb2awy70505nx22d0fx1v1p9k";
-    }; in
-      [ "${qtcairo}/0001-Cairo-backend-added-to-Qt4-wrapper.patch"
-        "${qtcairo}/0002-Setting-default-Qt4-backend-to-Cairo.patch"
-        "${qtcairo}/0003-Forcing-subpixel-rendering-in-Cairo-backend.patch" ];
-
-  poppler_drv = nameSuff: merge: stdenv.mkDerivation (stdenv.lib.mergeAttrsByFuncDefaultsClean [
-  rec {
-    name = "poppler-${nameSuff}-${version}";
-
-    src = fetchurl {
-      url = "${meta.homepage}/poppler-${version}.tar.gz";
-      inherit sha256;
-    };
-
-    propagatedBuildInputs = with xorg;
-      [ zlib cairo freetype fontconfig libjpeg lcms2 curl
-        libpthreadstubs libxml2
-        libXau libXdmcp libxcb libXrender libXext
-        openjpeg
-      ];
-
-    nativeBuildInputs = [ pkgconfig cmake ];
+  src = fetchurl {
+    url = "${meta.homepage}${name}.tar.gz";
+    sha256 = "0bnl05al7mjndp2h0355946j59nfw76f5v0x57d47q68rm412hik";
+  };
 
-    cmakeFlags = "-DENABLE_XPDF_HEADERS=ON -DENABLE_LIBCURL=ON -DENABLE_ZLIB=ON";
+  propagatedBuildInputs =
+    [ zlib cairo freetype fontconfig libjpeg lcms pixman curl
+      libpthreadstubs libXau libXdmcp openjpeg libxml2 stdenv.gcc.libc
+    ]
+    ++ stdenv.lib.optionals gtkSupport [ glib gtk ]
+    ++ stdenv.lib.optional qt4Support qt4;
 
-    patches = [ ./datadir_env.patch ];
+  nativeBuildInputs = [ pkgconfig cmake ];
 
-    # XXX: The Poppler/Qt4 test suite refers to non-existent PDF files
-    # such as `../../../test/unittestcases/UseNone.pdf'.
-    #doCheck = !qt4Support;
-    checkTarget = "test";
+  cmakeFlags = "-DENABLE_XPDF_HEADERS=ON -DENABLE_LIBCURL=ON -DENABLE_ZLIB=ON";
 
-    enableParallelBuilding = true;
+  patches = [ ./datadir_env.patch ];
 
-    meta = {
-      homepage = http://poppler.freedesktop.org/;
-      description = "A PDF rendering library";
+  # XXX: The Poppler/Qt4 test suite refers to non-existent PDF files
+  # such as `../../../test/unittestcases/UseNone.pdf'.
+  #doCheck = !qt4Support;
+  checkTarget = "test";
 
-      longDescription = ''
-        Poppler is a PDF rendering library based on the xpdf-3.0 code base.
-      '';
+  enableParallelBuilding = true;
 
-      license = "GPLv2";
-    };
-  } merge ]); # poppler_drv
+  meta = {
+    homepage = http://poppler.freedesktop.org/;
+    description = "Poppler, a PDF rendering library";
 
-in rec {
-  /* We always use cairo in poppler, so we always depend on glib,
-     so we always build the glib wrapper (~350kB).
-     We also always build the cpp wrapper (<100kB).
-     ToDo: around half the size could be saved by splitting out headers and tools (1.5 + 0.5 MB).
-  */
+    longDescription = ''
+      Poppler is a PDF rendering library based on the xpdf-3.0 code base.
+    '';
 
-  poppler_glib = poppler_drv "glib" { };
+    platforms = if qt4Support
+      then qt4.meta.platforms
+      else stdenv.lib.platforms.all;
 
-  poppler_qt4 = poppler_drv "qt4" {
-    propagatedBuildInputs = [ qt4 poppler_glib ];
-    patches = qtcairo_patches;
-    postConfigure = "cd qt4";
+    license = "GPLv2";
   };
 }