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.

+63 -99
+3 -3
pkgs/applications/editors/texstudio/default.nix
··· 1 - { stdenv, fetchurl, qt4, popplerQt4, zlib}: 2 3 stdenv.mkDerivation rec { 4 pname = "texstudio"; ··· 11 sha256 = "167d78nfk265jjvl129nr70v8ladb2rav2qyhw7ngr6m54gak831"; 12 }; 13 14 - buildInputs = [ qt4 popplerQt4 zlib ]; 15 16 preConfigure = '' 17 - export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I$(echo ${popplerQt4}/include/poppler/qt4) " 18 qmake PREFIX=$out texstudio.pro 19 ''; 20
··· 1 + { stdenv, fetchurl, qt4, poppler_qt4, zlib}: 2 3 stdenv.mkDerivation rec { 4 pname = "texstudio"; ··· 11 sha256 = "167d78nfk265jjvl129nr70v8ladb2rav2qyhw7ngr6m54gak831"; 12 }; 13 14 + buildInputs = [ qt4 poppler_qt4 zlib ]; 15 16 preConfigure = '' 17 + export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I$(echo ${poppler_qt4}/include/poppler/qt4) " 18 qmake PREFIX=$out texstudio.pro 19 ''; 20
+1 -1
pkgs/applications/kde-apps-14.12/default.nix
··· 107 OggVorbis = libvorbis; 108 OpenAL = openal; 109 OpenEXR = openexr; 110 - Poppler = poppler.poppler_qt4; 111 Prison = prison; 112 PulseAudio = pulseaudio; 113 PythonLibrary = python;
··· 107 OggVorbis = libvorbis; 108 OpenAL = openal; 109 OpenEXR = openexr; 110 + Poppler = poppler_qt4; 111 Prison = prison; 112 PulseAudio = pulseaudio; 113 PythonLibrary = python;
+2 -2
pkgs/applications/misc/qpdfview/default.nix
··· 1 - {stdenv, fetchurl, qt4, pkgconfig, popplerQt4, djvulibre, libspectre, cups 2 , file, ghostscript 3 }: 4 let ··· 11 sha256 = "15d88xzqvrcp9szmz8d1lj65yrdx90j6fp78gia5c8kra2z8bik9"; 12 }; 13 buildInputs = [ 14 - qt4 popplerQt4 pkgconfig djvulibre libspectre cups file ghostscript 15 ]; 16 in 17 stdenv.mkDerivation {
··· 1 + {stdenv, fetchurl, qt4, pkgconfig, poppler_qt4, djvulibre, libspectre, cups 2 , file, ghostscript 3 }: 4 let ··· 11 sha256 = "15d88xzqvrcp9szmz8d1lj65yrdx90j6fp78gia5c8kra2z8bik9"; 12 }; 13 buildInputs = [ 14 + qt4 poppler_qt4 pkgconfig djvulibre libspectre cups file ghostscript 15 ]; 16 in 17 stdenv.mkDerivation {
+2 -2
pkgs/applications/office/calligra/default.nix
··· 1 { stdenv, fetchurl, cmake, kdelibs, attica, perl, zlib, libpng, boost, mesa 2 , kdepimlibs, createresources ? null, eigen, qca2, exiv2, soprano, marble, lcms2 3 - , fontconfig, freetype, sqlite, icu, libwpd, libwpg, pkgconfig, popplerQt4 4 , libkdcraw, libxslt, fftw, glew, gsl, shared_desktop_ontologies, okular 5 , libvisio, kactivities, mysql, postgresql, freetds, xbase, openexr, ilmbase 6 , libodfgen, opencolorio, openjpeg, pstoedit, librevenge ··· 21 22 buildInputs = [ kdelibs attica zlib libpng boost mesa kdepimlibs 23 createresources eigen qca2 exiv2 soprano marble lcms2 fontconfig freetype 24 - sqlite icu libwpd libwpg popplerQt4 libkdcraw libxslt fftw glew gsl 25 shared_desktop_ontologies okular libodfgen opencolorio openjpeg 26 libvisio kactivities mysql.lib postgresql freetds xbase openexr pstoedit 27 librevenge
··· 1 { stdenv, fetchurl, cmake, kdelibs, attica, perl, zlib, libpng, boost, mesa 2 , kdepimlibs, createresources ? null, eigen, qca2, exiv2, soprano, marble, lcms2 3 + , fontconfig, freetype, sqlite, icu, libwpd, libwpg, pkgconfig, poppler_qt4 4 , libkdcraw, libxslt, fftw, glew, gsl, shared_desktop_ontologies, okular 5 , libvisio, kactivities, mysql, postgresql, freetds, xbase, openexr, ilmbase 6 , libodfgen, opencolorio, openjpeg, pstoedit, librevenge ··· 21 22 buildInputs = [ kdelibs attica zlib libpng boost mesa kdepimlibs 23 createresources eigen qca2 exiv2 soprano marble lcms2 fontconfig freetype 24 + sqlite icu libwpd libwpg poppler_qt4 libkdcraw libxslt fftw glew gsl 25 shared_desktop_ontologies okular libodfgen opencolorio openjpeg 26 libvisio kactivities mysql.lib postgresql freetds xbase openexr pstoedit 27 librevenge
+2 -2
pkgs/applications/office/kbibtex/default.nix
··· 1 - { stdenv, fetchurl, kdelibs, libxslt, popplerQt4 }: 2 3 stdenv.mkDerivation rec { 4 pname = "kbibtex"; ··· 14 sed -e '25i#include <QModelIndex>' -i src/gui/preferences/settingsabstractwidget.h 15 ''; 16 17 - buildInputs = [ kdelibs libxslt popplerQt4 ]; 18 }
··· 1 + { stdenv, fetchurl, kdelibs, libxslt, poppler_qt4 }: 2 3 stdenv.mkDerivation rec { 4 pname = "kbibtex"; ··· 14 sed -e '25i#include <QModelIndex>' -i src/gui/preferences/settingsabstractwidget.h 15 ''; 16 17 + buildInputs = [ kdelibs libxslt poppler_qt4 ]; 18 }
+2 -2
pkgs/desktops/kde-4.14/kdegraphics/okular.nix
··· 1 - { stdenv, chmlib, djvulibre, ebook_tools, kde, kdelibs, libspectre, popplerQt4, qca2 2 , qimageblitz, libtiff, kactivities, pkgconfig, libkexiv2 }: 3 4 kde { 5 6 # TODO: package activeapp, qmobipocket 7 8 - buildInputs = [ kdelibs chmlib djvulibre ebook_tools libspectre popplerQt4 9 qca2 qimageblitz libtiff kactivities libkexiv2 ]; 10 11 nativeBuildInputs = [ pkgconfig ];
··· 1 + { stdenv, chmlib, djvulibre, ebook_tools, kde, kdelibs, libspectre, poppler_qt4, qca2 2 , qimageblitz, libtiff, kactivities, pkgconfig, libkexiv2 }: 3 4 kde { 5 6 # TODO: package activeapp, qmobipocket 7 8 + buildInputs = [ kdelibs chmlib djvulibre ebook_tools libspectre poppler_qt4 9 qca2 qimageblitz libtiff kactivities libkexiv2 ]; 10 11 nativeBuildInputs = [ pkgconfig ];
+2 -2
pkgs/desktops/kde-4.14/kdelibs/kfilemetadata.nix
··· 1 - { stdenv, kde, kdelibs, pkgconfig, doxygen, popplerQt4, taglib, exiv2, ffmpeg }: 2 3 kde { 4 buildInputs = [ 5 - kdelibs popplerQt4 taglib exiv2 ffmpeg 6 ]; 7 8 nativeBuildInputs = [ pkgconfig doxygen ];
··· 1 + { stdenv, kde, kdelibs, pkgconfig, doxygen, poppler_qt4, taglib, exiv2, ffmpeg }: 2 3 kde { 4 buildInputs = [ 5 + kdelibs poppler_qt4 taglib exiv2 ffmpeg 6 ]; 7 8 nativeBuildInputs = [ pkgconfig doxygen ];
+2 -2
pkgs/desktops/kde-4.14/kdelibs/nepomuk-core.nix
··· 1 - { stdenv, kde, kdelibs, soprano, shared_desktop_ontologies, exiv2, ffmpeg, taglib, popplerQt4 2 , pkgconfig, doxygen, ebook_tools 3 }: 4 ··· 8 9 buildInputs = [ 10 kdelibs soprano shared_desktop_ontologies taglib exiv2 ffmpeg 11 - popplerQt4 ebook_tools 12 ]; 13 14 nativeBuildInputs = [ pkgconfig doxygen ];
··· 1 + { stdenv, kde, kdelibs, soprano, shared_desktop_ontologies, exiv2, ffmpeg, taglib, poppler_qt4 2 , pkgconfig, doxygen, ebook_tools 3 }: 4 ··· 8 9 buildInputs = [ 10 kdelibs soprano shared_desktop_ontologies taglib exiv2 ffmpeg 11 + poppler_qt4 ebook_tools 12 ]; 13 14 nativeBuildInputs = [ pkgconfig doxygen ];
+1 -1
pkgs/desktops/plasma-5.2/default.nix
··· 38 { 39 LibBlueDevil = pkgs.libbluedevil; 40 PolkitQt5-1 = pkgs.polkit_qt5.override { inherit qt5; }; 41 - PopplerQt5 = (pkgs.poppler.override { inherit qt5; }).poppler_qt5; 42 } // 43 # packages from nixpkgs 44 (with pkgs;
··· 38 { 39 LibBlueDevil = pkgs.libbluedevil; 40 PolkitQt5-1 = pkgs.polkit_qt5.override { inherit qt5; }; 41 + PopplerQt5 = pkgs.poppler_qt.override { inherit qt5; }; 42 } // 43 # packages from nixpkgs 44 (with pkgs;
+29 -58
pkgs/development/libraries/poppler/default.nix
··· 1 { stdenv, fetchurl, fetchpatch, pkgconfig, libiconv, libintlOrEmpty 2 , zlib, curl, cairo, freetype, fontconfig, lcms, libjpeg, openjpeg 3 - , qt4Support ? false, qt4 ? null, qt5 4 }: 5 6 let 7 version = "0.32.0"; # even major numbers are stable 8 sha256 = "162vfbvbz0frvqyk00ldsbl49h4bj8i8wn0ngfl30xg1lldy6qs9"; 9 10 - poppler_drv = nameSuff: merge: stdenv.mkDerivation (stdenv.lib.mergeAttrsByFuncDefaultsClean [ 11 - rec { 12 - name = "poppler-${nameSuff}-${version}"; 13 14 - src = fetchurl { 15 - url = "${meta.homepage}/poppler-${version}.tar.xz"; 16 - inherit sha256; 17 - }; 18 19 - propagatedBuildInputs = [ zlib cairo freetype fontconfig libjpeg lcms curl openjpeg ]; 20 21 - nativeBuildInputs = [ pkgconfig libiconv ] ++ libintlOrEmpty; 22 23 - configureFlags = [ 24 "--enable-xpdf-headers" 25 "--enable-libcurl" 26 "--enable-zlib" 27 - ]; 28 - 29 - patches = [ ./datadir_env.patch ./poppler-glib.patch ]; 30 31 - # XXX: The Poppler/Qt4 test suite refers to non-existent PDF files 32 - # such as `../../../test/unittestcases/UseNone.pdf'. 33 - #doCheck = !qt4Support; 34 - checkTarget = "test"; 35 36 - enableParallelBuilding = true; 37 38 - meta = { 39 - homepage = http://poppler.freedesktop.org/; 40 - description = "A PDF rendering library"; 41 - 42 - longDescription = '' 43 - Poppler is a PDF rendering library based on the xpdf-3.0 code base. 44 - ''; 45 - 46 - license = stdenv.lib.licenses.gpl2; 47 - platforms = stdenv.lib.platforms.all; 48 - }; 49 - } merge ]); # poppler_drv 50 - 51 - /* We always use cairo in poppler, so we always depend on glib, 52 - so we always build the glib wrapper (~350kB). 53 - We also always build the cpp wrapper (<100kB). 54 - ToDo: around half the size could be saved by splitting out headers and tools (1.5 + 0.5 MB). 55 - */ 56 - 57 - poppler_glib = poppler_drv "glib" { }; 58 - 59 - poppler_qt4 = poppler_drv "qt4" { 60 - #patches = [ qtcairo_patch ]; # text rendering artifacts in recent versions 61 - propagatedBuildInputs = [ qt4 poppler_glib ]; 62 - NIX_LDFLAGS = "-lpoppler"; 63 - postConfigure = '' 64 - mkdir -p "$out/lib/pkgconfig" 65 - install -c -m 644 poppler-qt4.pc "$out/lib/pkgconfig" 66 - cd qt4 67 ''; 68 - }; 69 70 - poppler_qt5 = poppler_drv "qt5" { 71 - propagatedBuildInputs = [ qt5.base poppler_glib ]; 72 - postConfigure = '' 73 - mkdir -p "$out/lib/pkgconfig" 74 - install -c -m 644 poppler-qt5.pc "$out/lib/pkgconfig" 75 - cd qt5 76 - ''; 77 }; 78 - 79 - in { inherit poppler_glib poppler_qt4 poppler_qt5; } // poppler_glib
··· 1 { stdenv, fetchurl, fetchpatch, pkgconfig, libiconv, libintlOrEmpty 2 , zlib, curl, cairo, freetype, fontconfig, lcms, libjpeg, openjpeg 3 + , qt4Support ? false, qt4 ? null, qt5Support ? false, qt5 ? null 4 + , utils ? false, suffix ? "glib" 5 }: 6 7 let 8 version = "0.32.0"; # even major numbers are stable 9 sha256 = "162vfbvbz0frvqyk00ldsbl49h4bj8i8wn0ngfl30xg1lldy6qs9"; 10 + in 11 + stdenv.mkDerivation rec { 12 + name = "poppler-${suffix}-${version}"; 13 14 + src = fetchurl { 15 + url = "${meta.homepage}/poppler-${version}.tar.xz"; 16 + inherit sha256; 17 + }; 18 19 + patches = [ ./datadir_env.patch ]; 20 21 + propagatedBuildInputs = with stdenv.lib; 22 + [ zlib cairo freetype fontconfig libjpeg lcms curl openjpeg ] 23 + ++ optional qt4Support qt4 24 + ++ optional qt5Support qt5.base; 25 26 + nativeBuildInputs = [ pkgconfig libiconv ] ++ libintlOrEmpty; 27 28 + configureFlags = 29 + [ 30 "--enable-xpdf-headers" 31 "--enable-libcurl" 32 "--enable-zlib" 33 + ] 34 + ++ stdenv.lib.optional (!utils) "--disable-utils"; 35 36 + enableParallelBuilding = true; 37 38 + meta = { 39 + homepage = http://poppler.freedesktop.org/; 40 + description = "A PDF rendering library"; 41 42 + longDescription = '' 43 + Poppler is a PDF rendering library based on the xpdf-3.0 code base. 44 ''; 45 46 + license = stdenv.lib.licenses.gpl2; 47 + platforms = stdenv.lib.platforms.all; 48 + maintainers = with stdenv.lib.maintainers; [ ttuegel ]; 49 }; 50 + }
-19
pkgs/development/libraries/poppler/poppler-glib.patch
··· 1 - diff -rupN a/poppler-glib.pc.cmake b/poppler-glib.pc.cmake 2 - --- a/poppler-glib.pc.cmake 2013-08-17 01:20:41.000000001 +0200 3 - +++ b/poppler-glib.pc.cmake 2014-01-01 09:30:50.000000001 +0100 4 - @@ -10,4 +10,4 @@ Requires: glib-2.0 >= @GLIB_REQUIRED@ go 5 - @PC_REQUIRES_PRIVATE@ 6 - 7 - Libs: -L${libdir} -lpoppler-glib 8 - -Cflags: -I${includedir}/poppler/glib 9 - +Cflags: -I${includedir}/poppler/glib -I${includedir}/poppler 10 - diff -rupN a/poppler-glib.pc.in b/poppler-glib.pc.in 11 - --- a/poppler-glib.pc.in 2013-08-17 01:20:41.000000001 +0200 12 - +++ b/poppler-glib.pc.in 2014-01-01 09:27:17.000000001 +0100 13 - @@ -10,4 +10,5 @@ Requires: glib-2.0 >= @GLIB_REQUIRED@ go 14 - @PC_REQUIRES_PRIVATE@ 15 - 16 - Libs: -L${libdir} -lpoppler-glib 17 - -Cflags: -I${includedir}/poppler/glib 18 - +Cflags: -I${includedir}/poppler/glib -I${includedir}/poppler 19 - +
···
+15 -3
pkgs/top-level/all-packages.nix
··· 7230 7231 policykit = callPackage ../development/libraries/policykit { }; 7232 7233 - poppler = callPackage ../development/libraries/poppler { lcms = lcms2; qt5 = qt54; }; 7234 - popplerQt4 = poppler.poppler_qt4; 7235 - poppler_qt5 = poppler.poppler_qt5; 7236 7237 popt = callPackage ../development/libraries/popt { }; 7238
··· 7230 7231 policykit = callPackage ../development/libraries/policykit { }; 7232 7233 + poppler = callPackage ../development/libraries/poppler { lcms = lcms2; }; 7234 + 7235 + poppler_qt4 = poppler.override { 7236 + inherit qt4; 7237 + qt4Support = true; 7238 + suffix = "qt4"; 7239 + }; 7240 + 7241 + poppler_qt5 = poppler.override { 7242 + qt5 = qt54; 7243 + qt5Support = true; 7244 + suffix = "qt5"; 7245 + }; 7246 + 7247 + poppler_utils = poppler.override { suffix = "utils"; utils = true; }; 7248 7249 popt = callPackage ../development/libraries/popt { }; 7250
+2 -2
pkgs/top-level/python-packages.nix
··· 3361 md5 = "9c4c5a59b878aed78e96a6ae58c6c185"; 3362 }; 3363 3364 - propagatedBuildInputs = [ pkgs.pyqt4 pkgs.pkgconfig pkgs.popplerQt4 ]; 3365 3366 preBuild = "${python}/bin/${python.executable} setup.py build_ext" + 3367 - " --include-dirs=${pkgs.popplerQt4}/include/poppler/"; 3368 3369 meta = with stdenv.lib; { 3370 description = "A Python binding to Poppler-Qt4";
··· 3361 md5 = "9c4c5a59b878aed78e96a6ae58c6c185"; 3362 }; 3363 3364 + propagatedBuildInputs = [ pkgs.pyqt4 pkgs.pkgconfig pkgs.poppler_qt4 ]; 3365 3366 preBuild = "${python}/bin/${python.executable} setup.py build_ext" + 3367 + " --include-dirs=${pkgs.poppler_qt4}/include/poppler/"; 3368 3369 meta = with stdenv.lib; { 3370 description = "A Python binding to Poppler-Qt4";