Date: Thursday, May 13, 2021 @ 16:07:13 Author: anthraxx Revision: 415284
archrelease: copy trunk to testing-x86_64 Added: libxml2/repos/testing-x86_64/ libxml2/repos/testing-x86_64/PKGBUILD (from rev 415283, libxml2/trunk/PKGBUILD) libxml2/repos/testing-x86_64/libxml2-2.9.8-python3-unicode-errors.patch (from rev 415283, libxml2/trunk/libxml2-2.9.8-python3-unicode-errors.patch) --------------------------------------------+ PKGBUILD | 82 +++++++++++++++++++++++++++ libxml2-2.9.8-python3-unicode-errors.patch | 34 +++++++++++ 2 files changed, 116 insertions(+) Copied: libxml2/repos/testing-x86_64/PKGBUILD (from rev 415283, libxml2/trunk/PKGBUILD) =================================================================== --- testing-x86_64/PKGBUILD (rev 0) +++ testing-x86_64/PKGBUILD 2021-05-13 16:07:13 UTC (rev 415284) @@ -0,0 +1,82 @@ +# Maintainer: Levente Polyak <anthraxx[at]archlinux[dot]org> +# Maintainer: Jan de Groot <j...@archlinux.org> +# Contributor: Tom Gundersen <t...@jklm.no> +# Contributor: John Proctor <jproc...@prium.net> + +pkgname=libxml2 +pkgver=2.9.11 +pkgrel=1 +pkgdesc='XML parsing library, version 2' +url='http://www.xmlsoft.org/' +arch=(x86_64) +license=(MIT) +depends=(zlib readline ncurses xz icu) +makedepends=(python2 python git) +_commit=e1bcffea180d6cc0651757bb64284a763e0e2239 # tags/v2.9.11^0 +source=("git+https://gitlab.gnome.org/GNOME/libxml2.git#commit=$_commit" + libxml2-2.9.8-python3-unicode-errors.patch + https://www.w3.org/XML/Test/xmlts20130923.tar.gz) +sha256sums=('SKIP' + '37eb81a8ec6929eed1514e891bff2dd05b450bcf0c712153880c485b7366c17c' + '9b61db9f5dbffa545f4b8d78422167083a8568c59bd1129f94138f936cf6fc1f') + +pkgver() { + cd $pkgname + git describe --tags | sed 's/-rc/rc/;s/^v//;s/\([^-]*-g\)/r\1/;s/-/./g' +} + +prepare() { + mkdir build-py{2,3} + cd $pkgname + + # Take patches from https://src.fedoraproject.org/rpms/libxml2/tree/master + local src + for src in "${source[@]}"; do + src="${src%%::*}" + src="${src##*/}" + [[ $src = *.patch ]] || continue + echo "Applying patch $src..." + patch -Np1 < "../$src" + done + + sed -e '/cd fuzz; /d' -e 's/fuzz //g' -i Makefile.am + autoreconf -fiv +} + +_build() ( + cd build-py$1 + ../$pkgname/configure \ + --prefix=/usr \ + --with-threads \ + --with-history \ + --with-python=/usr/bin/python$1 \ + --with-icu + sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0 /g' libtool + PYTHONHASHSEED=0 make + find doc -type f -exec chmod 0644 {} + +) + +build() { + _build 2 + _build 3 +} + +check() { + cd build-py3 + ln -s ../xmlconf + make check +} + +package() { + make -C build-py2 DESTDIR="$pkgdir" install + make -C build-py3/python DESTDIR="$pkgdir" install + install -Dm 644 build-py2/COPYING -t "$pkgdir/usr/share/licenses/$pkgname" + + #Disabled for now, as I don't want to introduce file conflicts during a security update + #python2 -m compileall -d /usr/lib/python2.7 "$pkgdir/usr/lib/python2.7" + #python2 -O -m compileall -d /usr/lib/python2.7 "$pkgdir/usr/lib/python2.7" + #python -m compileall -d /usr/lib/python3.9 "$pkgdir/usr/lib/python3.9" + #python -O -m compileall -d /usr/lib/python3.9 "$pkgdir/usr/lib/python3.9" +} + +# vim: ts=2 sw=2 et: Copied: libxml2/repos/testing-x86_64/libxml2-2.9.8-python3-unicode-errors.patch (from rev 415283, libxml2/trunk/libxml2-2.9.8-python3-unicode-errors.patch) =================================================================== --- testing-x86_64/libxml2-2.9.8-python3-unicode-errors.patch (rev 0) +++ testing-x86_64/libxml2-2.9.8-python3-unicode-errors.patch 2021-05-13 16:07:13 UTC (rev 415284) @@ -0,0 +1,34 @@ +Index: libxml2-2.9.5/python/libxml.c +=================================================================== +--- libxml2-2.9.5.orig/python/libxml.c ++++ libxml2-2.9.5/python/libxml.c +@@ -1620,6 +1620,7 @@ libxml_xmlErrorFuncHandler(ATTRIBUTE_UNU + PyObject *message; + PyObject *result; + char str[1000]; ++ unsigned char *ptr = (unsigned char *)str; + + #ifdef DEBUG_ERROR + printf("libxml_xmlErrorFuncHandler(%p, %s, ...) called\n", ctx, msg); +@@ -1636,12 +1637,20 @@ libxml_xmlErrorFuncHandler(ATTRIBUTE_UNU + str[999] = 0; + va_end(ap); + ++#if PY_MAJOR_VERSION >= 3 ++ /* Ensure the error string doesn't start at UTF8 continuation. */ ++ while (*ptr && (*ptr & 0xc0) == 0x80) ++ ptr++; ++#endif ++ + list = PyTuple_New(2); + PyTuple_SetItem(list, 0, libxml_xmlPythonErrorFuncCtxt); + Py_XINCREF(libxml_xmlPythonErrorFuncCtxt); +- message = libxml_charPtrConstWrap(str); ++ message = libxml_charPtrConstWrap(ptr); + PyTuple_SetItem(list, 1, message); + result = PyEval_CallObject(libxml_xmlPythonErrorFuncHandler, list); ++ /* Forget any errors caused in the error handler. */ ++ PyErr_Clear(); + Py_XDECREF(list); + Py_XDECREF(result); + }