summary refs log tree commit diff
path: root/pkgs/development/libraries/poppler
diff options
context:
space:
mode:
authorThomas Tuegel <ttuegel@gmail.com>2015-04-02 09:50:37 -0500
committerThomas Tuegel <ttuegel@gmail.com>2015-04-02 09:51:44 -0500
commitc0d5cd0ff90cac2e04f6b436991baa4c4471150f (patch)
tree10a4782e57c637d12db8f59c079117e1b2c56ab2 /pkgs/development/libraries/poppler
parentda74e8c317519059b62383a90f48d5403863038d (diff)
downloadnixlib-c0d5cd0ff90cac2e04f6b436991baa4c4471150f.tar
nixlib-c0d5cd0ff90cac2e04f6b436991baa4c4471150f.tar.gz
nixlib-c0d5cd0ff90cac2e04f6b436991baa4c4471150f.tar.bz2
nixlib-c0d5cd0ff90cac2e04f6b436991baa4c4471150f.tar.lz
nixlib-c0d5cd0ff90cac2e04f6b436991baa4c4471150f.tar.xz
nixlib-c0d5cd0ff90cac2e04f6b436991baa4c4471150f.tar.zst
nixlib-c0d5cd0ff90cac2e04f6b436991baa4c4471150f.zip
poppler: fix build of Qt 4 and Qt 5 wrappers
The autoconf build system for poppler does not support building the
wrappers separately, so this slightly enlarges the size of closures. To
compensate, the command-line utilities have been separated into their
own package.
Diffstat (limited to 'pkgs/development/libraries/poppler')
-rw-r--r--pkgs/development/libraries/poppler/default.nix87
-rw-r--r--pkgs/development/libraries/poppler/poppler-glib.patch19
2 files changed, 29 insertions, 77 deletions
diff --git a/pkgs/development/libraries/poppler/default.nix b/pkgs/development/libraries/poppler/default.nix
index bec779e221a3..c79cdfd44665 100644
--- a/pkgs/development/libraries/poppler/default.nix
+++ b/pkgs/development/libraries/poppler/default.nix
@@ -1,79 +1,50 @@
 { stdenv, fetchurl, fetchpatch, pkgconfig, libiconv, libintlOrEmpty
 , zlib, curl, cairo, freetype, fontconfig, lcms, libjpeg, openjpeg
-, qt4Support ? false, qt4 ? null, qt5
+, qt4Support ? false, qt4 ? null, qt5Support ? false, qt5 ? null
+, utils ? false, suffix ? "glib"
 }:
 
 let
   version = "0.32.0"; # even major numbers are stable
   sha256 = "162vfbvbz0frvqyk00ldsbl49h4bj8i8wn0ngfl30xg1lldy6qs9";
+in
+stdenv.mkDerivation rec {
+  name = "poppler-${suffix}-${version}";
 
-  poppler_drv = nameSuff: merge: stdenv.mkDerivation (stdenv.lib.mergeAttrsByFuncDefaultsClean [
-  rec {
-    name = "poppler-${nameSuff}-${version}";
+  src = fetchurl {
+    url = "${meta.homepage}/poppler-${version}.tar.xz";
+    inherit sha256;
+  };
 
-    src = fetchurl {
-      url = "${meta.homepage}/poppler-${version}.tar.xz";
-      inherit sha256;
-    };
+  patches = [ ./datadir_env.patch ];
 
-    propagatedBuildInputs = [ zlib cairo freetype fontconfig libjpeg lcms curl openjpeg ];
+  propagatedBuildInputs = with stdenv.lib;
+    [ zlib cairo freetype fontconfig libjpeg lcms curl openjpeg ]
+    ++ optional qt4Support qt4
+    ++ optional qt5Support qt5.base;
 
-    nativeBuildInputs = [ pkgconfig libiconv ] ++ libintlOrEmpty;
+  nativeBuildInputs = [ pkgconfig libiconv ] ++ libintlOrEmpty;
 
-    configureFlags = [
+  configureFlags =
+    [
       "--enable-xpdf-headers"
       "--enable-libcurl"
       "--enable-zlib"
-    ];
-
-    patches = [ ./datadir_env.patch ./poppler-glib.patch ];
-
-    # XXX: The Poppler/Qt4 test suite refers to non-existent PDF files
-    # such as `../../../test/unittestcases/UseNone.pdf'.
-    #doCheck = !qt4Support;
-    checkTarget = "test";
-
-    enableParallelBuilding = true;
-
-    meta = {
-      homepage = http://poppler.freedesktop.org/;
-      description = "A PDF rendering library";
+    ]
+    ++ stdenv.lib.optional (!utils) "--disable-utils";
 
-      longDescription = ''
-        Poppler is a PDF rendering library based on the xpdf-3.0 code base.
-      '';
+  enableParallelBuilding = true;
 
-      license = stdenv.lib.licenses.gpl2;
-      platforms = stdenv.lib.platforms.all;
-    };
-  } merge ]); # poppler_drv
+  meta = {
+    homepage = http://poppler.freedesktop.org/;
+    description = "A PDF rendering library";
 
-  /* 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).
-  */
-
-  poppler_glib = poppler_drv "glib" { };
-
-  poppler_qt4 = poppler_drv "qt4" {
-    #patches = [ qtcairo_patch ]; # text rendering artifacts in recent versions
-    propagatedBuildInputs = [ qt4 poppler_glib ];
-    NIX_LDFLAGS = "-lpoppler";
-    postConfigure = ''
-      mkdir -p "$out/lib/pkgconfig"
-      install -c -m 644 poppler-qt4.pc "$out/lib/pkgconfig"
-      cd qt4
+    longDescription = ''
+      Poppler is a PDF rendering library based on the xpdf-3.0 code base.
     '';
-  };
 
-  poppler_qt5 = poppler_drv "qt5" {
-    propagatedBuildInputs = [ qt5.base poppler_glib ];
-    postConfigure = ''
-      mkdir -p "$out/lib/pkgconfig"
-      install -c -m 644 poppler-qt5.pc "$out/lib/pkgconfig"
-      cd qt5
-    '';
+    license = stdenv.lib.licenses.gpl2;
+    platforms = stdenv.lib.platforms.all;
+    maintainers = with stdenv.lib.maintainers; [ ttuegel ];
   };
-
-in { inherit poppler_glib poppler_qt4 poppler_qt5; } // poppler_glib
+}
diff --git a/pkgs/development/libraries/poppler/poppler-glib.patch b/pkgs/development/libraries/poppler/poppler-glib.patch
deleted file mode 100644
index 09f5a145b847..000000000000
--- a/pkgs/development/libraries/poppler/poppler-glib.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-diff -rupN a/poppler-glib.pc.cmake b/poppler-glib.pc.cmake
---- a/poppler-glib.pc.cmake	2013-08-17 01:20:41.000000001 +0200
-+++ b/poppler-glib.pc.cmake	2014-01-01 09:30:50.000000001 +0100
-@@ -10,4 +10,4 @@ Requires: glib-2.0 >= @GLIB_REQUIRED@ go
- @PC_REQUIRES_PRIVATE@
- 
- Libs: -L${libdir} -lpoppler-glib
--Cflags: -I${includedir}/poppler/glib
-+Cflags: -I${includedir}/poppler/glib -I${includedir}/poppler
-diff -rupN a/poppler-glib.pc.in b/poppler-glib.pc.in
---- a/poppler-glib.pc.in	2013-08-17 01:20:41.000000001 +0200
-+++ b/poppler-glib.pc.in	2014-01-01 09:27:17.000000001 +0100
-@@ -10,4 +10,5 @@ Requires: glib-2.0 >= @GLIB_REQUIRED@ go
- @PC_REQUIRES_PRIVATE@
- 
- Libs: -L${libdir} -lpoppler-glib
--Cflags: -I${includedir}/poppler/glib
-+Cflags: -I${includedir}/poppler/glib -I${includedir}/poppler
-+