diff options
author | alpine-mips-patches <info@mobile-stream.com> | 2019-02-11 13:18:22 +0000 |
---|---|---|
committer | Leonardo Arena <rnalrd@alpinelinux.org> | 2019-03-05 15:59:45 +0000 |
commit | a551bde04b190822fcace4d589677aac37613be9 (patch) | |
tree | d27b755cbe35bbc0766348ac845d3418c1349006 | |
parent | 7f90328d3f882f558e1a22830974308c31fef713 (diff) | |
download | aports-a551bde04b190822fcace4d589677aac37613be9.tar.bz2 aports-a551bde04b190822fcace4d589677aac37613be9.tar.xz |
community/py-augeas: fix crash on mips*
On mips* dynamically imported symbol (here 'free') must be looked
up in its explicitly dlopen()ed module (here 'None' which means
the standard C library in cffi world). This change does not break
x86_64 at least and actually follows the cffi docs at
cdef.html#ffi-dlopen-loading-libraries-in-abi-mode
-rw-r--r-- | community/py-augeas/APKBUILD | 9 | ||||
-rw-r--r-- | community/py-augeas/dlopen-libc-explicitly.patch | 32 |
2 files changed, 38 insertions, 3 deletions
diff --git a/community/py-augeas/APKBUILD b/community/py-augeas/APKBUILD index 51ed80a623..ea105877a9 100644 --- a/community/py-augeas/APKBUILD +++ b/community/py-augeas/APKBUILD @@ -3,7 +3,7 @@ pkgname=py-augeas _pkgname=python-augeas pkgver=1.0.3 -pkgrel=0 +pkgrel=1 pkgdesc="Pure python bindings for augeas" url="https://pypi.python.org/pypi/python-augeas" arch="noarch" @@ -11,7 +11,9 @@ license="GPL-2.1" depends="augeas-libs py-cffi" makedepends="python2-dev python3-dev py-setuptools" subpackages="py3-${pkgname/py-/}:_py3 py2-${pkgname/py-/}:_py2" -source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz" +source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz + dlopen-libc-explicitly.patch + " builddir="$srcdir"/$_pkgname-$pkgver @@ -46,4 +48,5 @@ _py2() { _py3() { _py python3 } -sha512sums="737b41e7bb438d80da75b55714c3f0b1706a4b2cacddd20fadf855bc3044e532f4079319b3775032e6f6009cf7f282af33fdf583332772b443a6c2d4925639fa python-augeas-1.0.3.tar.gz" +sha512sums="737b41e7bb438d80da75b55714c3f0b1706a4b2cacddd20fadf855bc3044e532f4079319b3775032e6f6009cf7f282af33fdf583332772b443a6c2d4925639fa python-augeas-1.0.3.tar.gz +938e1a28d70c8ffbf62fd2936a57276603487608fbb3e23bf3a59a4f655e7d875ad51e6506acbddf4eea27a433fe3c9c35da3e00be04c8c866a5a966cdf3b161 dlopen-libc-explicitly.patch" diff --git a/community/py-augeas/dlopen-libc-explicitly.patch b/community/py-augeas/dlopen-libc-explicitly.patch new file mode 100644 index 0000000000..c7aa05a2b8 --- /dev/null +++ b/community/py-augeas/dlopen-libc-explicitly.patch @@ -0,0 +1,32 @@ +--- a/augeas/__init__.py ++++ b/augeas/__init__.py +@@ -42,7 +42,7 @@ + + import cffi + import types +-from augeas.ffi import ffi, lib ++from augeas.ffi import ffi, lib, c89 + + PY3 = _pyver >= (3,) + AUGENC = 'utf8' +@@ -421,8 +421,8 @@ + # Create a python string and append it to our matches list + item = ffi.string(array[i]) + matches.append(dec(item)) +- lib.free(array[i]) +- lib.free(array) ++ c89.free(array[i]) ++ c89.free(array) + return matches + + def span(self, path): +--- a/augeas/ffi.py ++++ b/augeas/ffi.py +@@ -40,6 +40,7 @@ + """) + + lib = ffi.dlopen("augeas") ++c89 = ffi.dlopen(None) + + if __name__ == "__main__": + ffi.compile(verbose=True) |