3
0
Fork 0
forked from mirrors/nixpkgs
nixpkgs/pkgs/development/libraries/libxml2/default.nix
Daniel Oertwig 42560c78bb libxml2 w/o python --with-python=no on all systems
When building libxml2 without python enabled, pass "--with-python=no" to
configure on all systems, not only on FreeBSD. Omitting mentioned
configure option results in building libxml2 WITH python enabled. In
this case, configure is looking for python by itself in system paths.
With a rootless configuration, python includes from the host are accessed.
If those files (Python.h) are not available, building libxml2 fails.
2013-12-16 21:30:36 +01:00

48 lines
1.5 KiB
Nix

{ stdenv, fetchurl, zlib, xz, python ? null, pythonSupport ? true }:
assert pythonSupport -> python != null;
#TODO: share most stuff between python and non-python builds, perhaps via multiple-output
stdenv.mkDerivation (rec {
name = "libxml2-2.9.1";
src = fetchurl {
url = "ftp://xmlsoft.org/libxml2/${name}.tar.gz";
sha256 = "1nqgd1qqmg0cg09mch78m2ac9klj9n87blilx4kymi7jcv5n8g7x";
};
buildInputs = stdenv.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.
++ (stdenv.lib.optional stdenv.isFreeBSD xz);
propagatedBuildInputs = [ zlib ];
setupHook = ./setup-hook.sh;
passthru = { inherit pythonSupport; };
enableParallelBuilding = true;
meta = {
homepage = http://xmlsoft.org/;
description = "An XML parsing library for C";
license = "bsd";
platforms = stdenv.lib.platforms.unix;
maintainers = [ stdenv.lib.maintainers.eelco ];
};
} // stdenv.lib.optionalAttrs pythonSupport {
configureFlags = "--with-python=${python}";
# this is a pair of ugly hacks to make python stuff install into the right place
preInstall = ''substituteInPlace python/libxml2mod.la --replace "${python}" "$out"'';
installFlags = ''pythondir="$(out)/lib/${python.libPrefix}/site-packages"'';
} // stdenv.lib.optionalAttrs (!pythonSupport) {
configureFlags = "--with-python=no"; # otherwise build impurity bites us
})