diff options
Diffstat (limited to 'pkgs/development/libraries/libxml2/default.nix')
-rw-r--r-- | pkgs/development/libraries/libxml2/default.nix | 31 |
1 files changed, 24 insertions, 7 deletions
diff --git a/pkgs/development/libraries/libxml2/default.nix b/pkgs/development/libraries/libxml2/default.nix index 04954f3e1f5..f5dcb3357f7 100644 --- a/pkgs/development/libraries/libxml2/default.nix +++ b/pkgs/development/libraries/libxml2/default.nix @@ -1,22 +1,33 @@ { stdenv, lib, fetchurl -, zlib, xz, python2, ncurses, findXMLCatalogs +, zlib, xz, python, ncurses, findXMLCatalogs , pythonSupport ? stdenv.buildPlatform == stdenv.hostPlatform , icuSupport ? false, icu ? null , enableShared ? stdenv.hostPlatform.libc != "msvcrt" , enableStatic ? !enableShared, }: -let - python = python2; - -in stdenv.mkDerivation rec { +stdenv.mkDerivation rec { pname = "libxml2"; - version = "2.9.9"; + version = "2.9.10"; src = fetchurl { url = "http://xmlsoft.org/sources/${pname}-${version}.tar.gz"; - sha256 = "0wd881jzvqayx0ihzba29jl80k06xj9ywp16kxacdqs3064p1ywl"; + sha256 = "07xynh8hcxb2yb1fs051xrgszjvj37wnxvxgsj10rzmqzy9y3zma"; }; + patches = [ + # Upstream bugs: + # https://bugzilla.gnome.org/show_bug.cgi?id=789714 + # https://gitlab.gnome.org/GNOME/libxml2/issues/64 + # Patch from https://bugzilla.opensuse.org/show_bug.cgi?id=1065270 , + # but only the UTF-8 part. + # Can also be mitigated by fixing malformed XML inputs, such as in + # https://gitlab.gnome.org/GNOME/gnumeric/merge_requests/3 . + # Other discussion: + # https://github.com/itstool/itstool/issues/22 + # https://github.com/NixOS/nixpkgs/pull/63174 + # https://github.com/NixOS/nixpkgs/pull/72342 + ./utf8-xmlErrorFuncHandler.patch + ]; outputs = [ "bin" "dev" "out" "man" "doc" ] ++ lib.optional pythonSupport "py" @@ -42,6 +53,12 @@ in stdenv.mkDerivation rec { enableParallelBuilding = true; + # disable test that's problematic with newer pythons: see + # https://mail.gnome.org/archives/xml/2017-August/msg00014.html + preCheck = lib.optionalString (pythonSupport && !(python?pythonOlder && python.pythonOlder "3.5")) '' + echo "" > python/tests/tstLastError.py + ''; + doCheck = (stdenv.hostPlatform == stdenv.buildPlatform) && !stdenv.isDarwin && stdenv.hostPlatform.libc != "musl"; |