Files
nixpkgs/pkgs/development/libraries/libxml2/default.nix
T

83 lines
2.7 KiB
Nix
Raw Normal View History

{ stdenv, lib, fetchurl, fetchpatch
2018-07-23 15:37:08 -04:00
, zlib, xz, python2, findXMLCatalogs
, pythonSupport ? stdenv.buildPlatform == stdenv.hostPlatform
2017-02-10 23:48:28 -05:00
, icuSupport ? false, icu ? null
, enableShared ? stdenv.hostPlatform.libc != "msvcrt"
2018-07-23 15:37:08 -04:00
, enableStatic ? !enableShared,
2017-02-10 23:48:28 -05:00
}:
2016-10-17 09:39:10 +02:00
let
python = python2;
2017-02-11 11:15:41 +08:00
2016-10-17 09:39:10 +02:00
in stdenv.mkDerivation rec {
name = "libxml2-${version}";
2018-03-14 19:51:48 -07:00
version = "2.9.8";
2006-10-12 15:43:01 +00:00
src = fetchurl {
2015-04-04 16:07:31 +02:00
url = "http://xmlsoft.org/sources/${name}.tar.gz";
2018-03-14 19:51:48 -07:00
sha256 = "0ci7is75bwqqw2p32vxvrk6ds51ik7qgx73m920rakv5jlayax0b";
2006-10-12 15:43:01 +00:00
};
2018-08-05 18:20:33 -04:00
patches = [
(fetchpatch {
name = "CVE-2018-14567_CVE-2018-9251.patch";
url = https://gitlab.gnome.org/GNOME/libxml2/commit/2240fbf5912054af025fb6e01e26375100275e74.patch;
sha256 = "1xpqsfkzhrqasza51c821mnds5l317djrz8086fmzpyf68vld03h";
})
(fetchpatch {
name = "CVE-2018-14404.patch";
url = https://gitlab.gnome.org/GNOME/libxml2/commit/a436374994c47b12d5de1b8b1d191a098fa23594.patch;
sha256 = "19vp7p32vrninnfa7vk9ipw7n4cl1gg16xxbhjy2d0kwp1crvzqh";
2018-08-05 18:20:33 -04:00
})
];
2018-06-13 16:07:54 +00:00
outputs = [ "bin" "dev" "out" "man" "doc" ]
2018-06-22 17:44:05 +02:00
++ lib.optional pythonSupport "py"
++ lib.optional enableStatic "static";
2016-11-08 10:55:21 +01:00
propagatedBuildOutputs = "out bin" + lib.optionalString pythonSupport " py";
2015-07-26 13:36:22 +02:00
2016-11-08 10:55:21 +01:00
buildInputs = lib.optional pythonSupport python
# Libxml2 has an optional dependency on liblzma. However, on impure
# platforms, it may end up using that from /usr/lib, and thus lack a
# RUNPATH for that, leading to undefined references for its users.
2016-02-09 15:37:04 +01:00
++ lib.optional stdenv.isFreeBSD xz;
2012-09-29 12:08:25 -04:00
2017-02-11 11:15:41 +08:00
propagatedBuildInputs = [ zlib findXMLCatalogs ] ++ lib.optional icuSupport icu;
2018-07-24 20:13:43 -04:00
configureFlags = [
"--exec_prefix=$dev"
(lib.enableFeature enableStatic "static")
(lib.enableFeature enableShared "shared")
(lib.withFeature icuSupport "icu")
(lib.withFeatureAs pythonSupport "python" python)
];
2009-02-03 16:14:23 +00:00
2012-10-16 11:50:35 -04:00
enableParallelBuilding = true;
2018-01-12 02:27:33 -06:00
doCheck = (stdenv.hostPlatform == stdenv.buildPlatform) && !stdenv.isDarwin &&
stdenv.hostPlatform.libc != "musl";
2016-05-26 15:09:28 +02:00
2016-11-08 10:55:21 +01:00
preInstall = lib.optionalString pythonSupport
2016-02-09 15:37:04 +01:00
''substituteInPlace python/libxml2mod.la --replace "${python}" "$py"'';
2016-11-08 10:55:21 +01:00
installFlags = lib.optionalString pythonSupport
2016-02-09 15:37:04 +01:00
''pythondir="$(py)/lib/${python.libPrefix}/site-packages"'';
postFixup = ''
moveToOutput bin/xml2-config "$dev"
moveToOutput lib/xml2Conf.sh "$dev"
moveToOutput share/man/man1 "$bin"
2018-06-22 17:44:05 +02:00
'' + lib.optionalString enableStatic ''
moveToOutput lib/libxml2.a "$static"
'';
2016-11-08 10:55:21 +01:00
passthru = { inherit version; pythonSupport = pythonSupport; };
meta = {
2009-02-03 16:14:23 +00:00
homepage = http://xmlsoft.org/;
description = "An XML parsing library for C";
license = lib.licenses.mit;
2018-07-20 13:56:15 -04:00
platforms = lib.platforms.all;
2016-02-09 15:37:04 +01:00
maintainers = [ lib.maintainers.eelco ];
2009-02-03 16:14:23 +00:00
};
}