Files
nixpkgs/pkgs/development/libraries/poppler/default.nix
T
Trolli Schmittlauch 611cedc127 poppler: build with nss by default for signature support
Since 21.01, poppler supports PDF signing. As applications like okular
start to make use of that feature, nss support for poppler is enabled by
default to avoid unnecessary package duplication.
When building a `minimal` version of poppler, nss is disabled as well.

closes #120928

(cherry picked from commit 5f9862d524ee0ec1edcaa450fff4f54f4f5cc68e)
2021-05-27 03:48:21 -04:00

113 lines
2.4 KiB
Nix

{ 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"
, inkscape
, cups-filters
, texlive
, scribusUnstable
}:
let
mkFlag = optset: flag: "-DENABLE_${flag}=${if optset then "on" else "off"}";
in
stdenv.mkDerivation rec {
name = "poppler-${suffix}-${version}";
version = "21.05.0"; # beware: updates often break cups-filters build, check texlive and scribusUnstable too!
outputs = [ "out" "dev" ];
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 = [
zlib
freetype
fontconfig
libjpeg
openjpeg
] ++ lib.optionals (!minimal) [
cairo
lcms
curl
nss
] ++ lib.optionals qt5Support [
qtbase
] ++ lib.optionals introspectionSupport [
gobject-introspection
];
cmakeFlags = [
(mkFlag true "UNSTABLE_API_ABI_HEADERS") # previously "XPDF_HEADERS"
(mkFlag (!minimal) "GLIB")
(mkFlag (!minimal) "CPP")
(mkFlag (!minimal) "LIBCURL")
(mkFlag utils "UTILS")
(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";
longDescription = ''
Poppler is a PDF rendering library based on the xpdf-3.0 code
base. In addition it provides a number of tools that can be
installed separately.
'';
license = licenses.gpl2Plus;
platforms = platforms.all;
maintainers = with maintainers; [ ttuegel ] ++ teams.freedesktop.members;
};
}