nixpkgs/pkgs/development/libraries/libxslt/default.nix
Dmitry Bogatov 0d3428cd75 pkgsStatic.libxslt: fix build
Make default value of "pythonSupport" to depend configuration of libxml2, which
only builds python support when shared libraries are enabled. This way libxslt
can be built on pkgsStatic platform (albeit without python support) instead of
refusing to build due "meta.broken". That allows to build statically some
packages that depend on libxslt, but don't necessary need python support.
2022-11-12 09:57:57 -05:00

90 lines
2.0 KiB
Nix

{ lib
, stdenv
, fetchurl
, pkg-config
, autoreconfHook
, libxml2
, findXMLCatalogs
, gettext
, python
, ncurses
, libxcrypt
, libgcrypt
, cryptoSupport ? false
, pythonSupport ? libxml2.pythonSupport
, gnome
}:
stdenv.mkDerivation rec {
pname = "libxslt";
version = "1.1.37";
outputs = [ "bin" "dev" "out" "doc" "devdoc" ] ++ lib.optional pythonSupport "py";
outputMan = "bin";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "Oksn3IAnzNYUZyWVAzbx7FIJKPMg8UTrX6eZCuYSOrQ=";
};
strictDeps = true;
nativeBuildInputs = [
pkg-config
autoreconfHook
];
buildInputs = [
libxml2.dev libxcrypt
] ++ lib.optionals stdenv.isDarwin [
gettext
] ++ lib.optionals pythonSupport [
libxml2.py
python
ncurses
] ++ lib.optionals cryptoSupport [
libgcrypt
];
propagatedBuildInputs = [
findXMLCatalogs
];
configureFlags = [
"--without-debug"
"--without-mem-debug"
"--without-debugger"
(lib.withFeature pythonSupport "python")
(lib.optionalString pythonSupport "PYTHON=${python.pythonForBuild.interpreter}")
] ++ lib.optionals (!cryptoSupport) [
"--without-crypto"
];
postFixup = ''
moveToOutput bin/xslt-config "$dev"
moveToOutput lib/xsltConf.sh "$dev"
'' + lib.optionalString pythonSupport ''
mkdir -p $py/nix-support
echo ${libxml2.py} >> $py/nix-support/propagated-build-inputs
moveToOutput ${python.sitePackages} "$py"
'';
passthru = {
inherit pythonSupport;
updateScript = gnome.updateScript {
packageName = pname;
versionPolicy = "none";
};
};
meta = with lib; {
homepage = "https://gitlab.gnome.org/GNOME/libxslt";
description = "A C library and tools to do XSL transformations";
license = licenses.mit;
platforms = platforms.all;
maintainers = with maintainers; [ eelco jtojnar ];
broken = pythonSupport && !libxml2.pythonSupport; # see #73102 for why this is not an assert
};
}