From 19686fea5913454e411f9e230d1f641bfd5bf52a Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Tue, 13 Feb 2018 21:14:14 +0000
Subject: libxml2: update to 2.9.7+4

---
 abs/core/libxml2/PKGBUILD                          | 58 +++++++++++++++-------
 .../libxml2/libxml2-2.9.4-remove-pyverify_fd.patch | 12 +++++
 2 files changed, 51 insertions(+), 19 deletions(-)
 create mode 100644 abs/core/libxml2/libxml2-2.9.4-remove-pyverify_fd.patch

diff --git a/abs/core/libxml2/PKGBUILD b/abs/core/libxml2/PKGBUILD
index fe3e82c..87d8792 100644
--- a/abs/core/libxml2/PKGBUILD
+++ b/abs/core/libxml2/PKGBUILD
@@ -4,42 +4,62 @@
 # Contributor: John Proctor <jproctor@prium.net>
 
 pkgname=libxml2
-pkgver=2.9.3
+pkgver=2.9.7+4+g7218255
 pkgrel=1
 pkgdesc="XML parsing library, version 2"
-arch=(i686 x86_64)
+arch=(x86_64)
 license=('MIT')
-depends=('zlib' 'readline' 'ncurses' 'xz')
-makedepends=('python2')
-optdepends=('python2: python bindings to libxml')
+depends=('zlib' 'readline' 'ncurses' 'xz' 'icu')
+options=(!makeflags)
+makedepends=('python2' 'python' 'git')
 url="http://www.xmlsoft.org/"
-source=(ftp://ftp.xmlsoft.org/${pkgname}/${pkgname}-${pkgver}.tar.gz
-        http://www.w3.org/XML/Test/xmlts20080827.tar.gz)
-md5sums=('daece17e045f1c107610e137ab50c179'
-         'ae3d1ebe000a3972afa104ca7f0e1b4a')
+_commit=72182550926d31ad17357bd3ed69e49d7e69df02  # master~7
+source=(git+https://git.gnome.org/browse/libxml2#commit=$_commit
+        https://www.w3.org/XML/Test/xmlts20130923.tar.gz
+        libxml2-2.9.4-remove-pyverify_fd.patch)
+sha256sums=('SKIP'
+            '9b61db9f5dbffa545f4b8d78422167083a8568c59bd1129f94138f936cf6fc1f'
+            'c9cebff010bd99c5453847e87b9fa8fdd7f744f415bf680b3650877789460ca9')
 
-prepare() {
-  cd ${pkgname}-${pkgver}
-  sed -e 's|/usr/bin/python -u|/usr/bin/python2 -u|g' -e 's|/usr/bin/python$|/usr/bin/python2|g' -i python/tests/*.py
-  mv ../xmlconf .
+pkgver() {
+  cd $pkgname
+  git describe --long | sed -e 's/-rc/rc/' -e 's/-/+/g' -e 's/^v//'
 }
 
-build() {
-  cd ${pkgname}-${pkgver}
-  ./configure --prefix=/usr --with-threads --with-history --with-python=/usr/bin/python2
+prepare() {
+  mkdir build-py3
+  mkdir build-py2
+  mv xmlconf build-py2/
+  cd $pkgname
 
-  sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0 /g' -e 's/    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then/      func_append compile_command " -Wl,-O1,--as-needed"\n      func_append finalize_command " -Wl,-O1,--as-needed"\n\0/' libtool
+  patch -Np1 -i ../libxml2-2.9.4-remove-pyverify_fd.patch
+  NOCONFIGURE=1 ./autogen.sh
+}
 
+build() {
+  cd build-py2
+  ../$pkgname/configure --prefix=/usr --with-threads --with-history --with-python=/usr/bin/python2 --with-icu
+  sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0 /g' libtool
   make
+
+  cd ../build-py3
+  ../$pkgname/configure --prefix=/usr --with-threads --with-history --with-python=/usr/bin/python --with-icu
+  sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0 /g' libtool
+  PYTHONHASHSEED=0 make
 }
 
 check() {
-  cd ${pkgname}-${pkgver}
+  cd build-py2
   make check
 }
 
 package() {
-  cd ${pkgname}-${pkgver}
+  cd build-py2
+  find doc -type f -exec chmod 0644 {} \;
+
   make DESTDIR="${pkgdir}" install
   install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
+
+  cd ../build-py3/python
+  PYTHONHASHSEED=0 make DESTDIR="${pkgdir}" install
 }
diff --git a/abs/core/libxml2/libxml2-2.9.4-remove-pyverify_fd.patch b/abs/core/libxml2/libxml2-2.9.4-remove-pyverify_fd.patch
new file mode 100644
index 0000000..d05d4cb
--- /dev/null
+++ b/abs/core/libxml2/libxml2-2.9.4-remove-pyverify_fd.patch
@@ -0,0 +1,12 @@
+diff -Nur libxml2-2.9.4.orig/python/types.c libxml2-2.9.4/python/types.c
+--- libxml2-2.9.4.orig/python/types.c	2016-02-09 03:17:33.000000000 -0700
++++ libxml2-2.9.4/python/types.c	2016-12-21 12:34:06.755650986 -0700
+@@ -31,8 +31,6 @@
+     const char *mode;
+ 
+     fd = PyObject_AsFileDescriptor(f);
+-    if (!_PyVerify_fd(fd))
+-        return(NULL);
+     /*
+      * Get the flags on the fd to understand how it was opened
+      */
-- 
cgit v0.12