84aa23742f
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
113 lines
2.4 KiB
Nix
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;
|
|
};
|
|
}
|