diff --git a/pkgs/development/libraries/poppler/default.nix b/pkgs/development/libraries/poppler/default.nix index 5a41fb0c341d..c508af66507e 100644 --- a/pkgs/development/libraries/poppler/default.nix +++ b/pkgs/development/libraries/poppler/default.nix @@ -1,10 +1,30 @@ -{ stdenv, lib, fetchurl, fetchpatch, cmake, ninja, pkg-config, libiconv, libintl -, zlib, curl, cairo, freetype, fontconfig, lcms, libjpeg, openjpeg +{ stdenv +, lib +, fetchurl +, fetchpatch +, cmake +, ninja +, pkg-config +, libiconv +, libintl +, zlib +, curl +, cairo +, freetype +, fontconfig +, lcms +, libjpeg +, openjpeg , withData ? true, poppler_data , qt5Support ? false, qtbase ? null , introspectionSupport ? false, gobject-introspection ? null , utils ? false, nss ? null -, minimal ? false, suffix ? "glib" +, minimal ? false +, suffix ? "glib" +, inkscape +, cups-filters +, texlive +, scribusUnstable }: let @@ -12,33 +32,46 @@ let in stdenv.mkDerivation (rec { name = "poppler-${suffix}-${version}"; - version = "21.02.0"; # beware: updates often break cups-filters build, check texlive and scribusUnstable too! - - src = fetchurl { - url = "${meta.homepage}/poppler-${version}.tar.xz"; - sha256 = "sha256-XBR1nJmJHm5HKs7W1fD/Haz4XYDNkCbTZcVcZT7feSw="; - }; + version = "21.05.0"; # beware: updates often break cups-filters build, check texlive and scribusUnstable too! outputs = [ "out" "dev" ]; - buildInputs = [ libiconv libintl ] ++ lib.optional withData poppler_data; + src = fetchurl { + url = "${meta.homepage}/poppler-${version}.tar.xz"; + sha256 = "sha256-2v1Te2gPrRIVvED8U9HzjoRJ18GFvGDVqJ4dJskNvYw="; + }; + + nativeBuildInputs = [ + cmake + ninja + pkg-config + ]; + + buildInputs = [ + libiconv + libintl + ] ++ lib.optional withData [ + poppler_data + ]; # TODO: reduce propagation to necessary libs - propagatedBuildInputs = with lib; - [ zlib freetype fontconfig libjpeg openjpeg ] - ++ optionals (!minimal) [ cairo lcms curl ] - ++ optional qt5Support qtbase - ++ optional utils nss - ++ optional introspectionSupport gobject-introspection; - - nativeBuildInputs = [ cmake ninja pkg-config ]; - - # Workaround #54606 - preConfigure = lib.optionalString stdenv.isDarwin '' - sed -i -e '1i cmake_policy(SET CMP0025 NEW)' CMakeLists.txt - ''; - - dontWrapQtApps = true; + propagatedBuildInputs = [ + zlib + freetype + fontconfig + libjpeg + openjpeg + ] ++ lib.optionals (!minimal) [ + cairo + lcms + curl + ] ++ lib.optionals qt5Support [ + qtbase + ] ++ lib.optionals utils [ + nss + ] ++ lib.optionals introspectionSupport [ + gobject-introspection + ]; cmakeFlags = [ (mkFlag true "UNSTABLE_API_ABI_HEADERS") # previously "XPDF_HEADERS" @@ -49,6 +82,20 @@ stdenv.mkDerivation (rec { (mkFlag qt5Support "QT5") ]; + dontWrapQtApps = true; + + # Workaround #54606 + preConfigure = lib.optionalString stdenv.isDarwin '' + sed -i -e '1i cmake_policy(SET CMP0025 NEW)' CMakeLists.txt + ''; + + passthru = { + tests = { + # These depend on internal poppler code that frequently changes. + inherit inkscape cups-filters texlive scribusUnstable; + }; + }; + meta = with lib; { homepage = "https://poppler.freedesktop.org/"; description = "A PDF rendering library"; @@ -59,7 +106,7 @@ stdenv.mkDerivation (rec { installed separately. ''; - license = licenses.gpl2; + license = licenses.gpl2Plus; platforms = platforms.all; maintainers = with maintainers; [ ttuegel ] ++ teams.freedesktop.members; };