summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick McLean <patrick.mclean@sony.com>2019-11-20 21:26:35 -0800
committerPatrick McLean <chutzpah@gentoo.org>2019-11-20 21:26:35 -0800
commitd2541deb97e7445ac2e0344485ababc6f4ec83b0 (patch)
treec31b29f9bf5ca140b8efe450b34ebb9eeecd91c9 /dev-python/pylibmc
parentdev-python/zope-testing: Revbump to 4.7-r1 add py38 (diff)
downloadgentoo-d2541deb97e7445ac2e0344485ababc6f4ec83b0.tar.gz
gentoo-d2541deb97e7445ac2e0344485ababc6f4ec83b0.tar.bz2
gentoo-d2541deb97e7445ac2e0344485ababc6f4ec83b0.zip
dev-python/pylibmc: Version bump to 1.6.1, EAPI=7, py38
Copyright: Sony Interactive Entertainment Inc. Package-Manager: Portage-2.3.79, Repoman-2.3.18 Signed-off-by: Patrick McLean <chutzpah@gentoo.org>
Diffstat (limited to 'dev-python/pylibmc')
-rw-r--r--dev-python/pylibmc/Manifest1
-rw-r--r--dev-python/pylibmc/files/pylibmc-1.6.1-fix-test-failures.patch18
-rw-r--r--dev-python/pylibmc/pylibmc-1.6.1.ebuild65
3 files changed, 84 insertions, 0 deletions
diff --git a/dev-python/pylibmc/Manifest b/dev-python/pylibmc/Manifest
index c7a52afcc1f9..f98ddd40cd53 100644
--- a/dev-python/pylibmc/Manifest
+++ b/dev-python/pylibmc/Manifest
@@ -1 +1,2 @@
DIST pylibmc-1.5.1.tar.gz 69525 BLAKE2B 5039ad7d99a5ca57bd6cf7f00c77cc8bba122fe5852de164df34a71b4f5d1e4fcb428e749a66d384691b74f30b99e000f5cb9cd6479af2fc324d885b0fa59aa7 SHA512 efc40fae9721a6be589f87b66109132d4656725f718e1d63d7d25b9b27790b7c00fc3c7e4e47235895b7127cebc64229ddb284d23d0d903d3a510da7e1ce4549
+DIST pylibmc-1.6.1.tar.gz 72061 BLAKE2B ebaa6f9dfc341d862a8b46bbbf0db1420ff400cb40390f7bee6bf198ff941ad7967b578040ffe1209721ea84a163a39649108a2a23f3dadc2d579db740b2ccf3 SHA512 a3874435389486b29bab5f1d29e5c179d67655d90995bb27fcb7cd46ce7eb3b60117b94f901602f8a65dc0e587d5f8edfcf15e259effd439411adb58ddb7065e
diff --git a/dev-python/pylibmc/files/pylibmc-1.6.1-fix-test-failures.patch b/dev-python/pylibmc/files/pylibmc-1.6.1-fix-test-failures.patch
new file mode 100644
index 000000000000..c19ab468ce8a
--- /dev/null
+++ b/dev-python/pylibmc/files/pylibmc-1.6.1-fix-test-failures.patch
@@ -0,0 +1,18 @@
+diff --git a/src/_pylibmcmodule.c b/src/_pylibmcmodule.c
+index 5324d1d..70c18cb 100644
+--- a/src/_pylibmcmodule.c
++++ b/src/_pylibmcmodule.c
+@@ -600,6 +600,13 @@ static PyObject *_PylibMC_parse_memcached_value(PylibMC_Client *self,
+ }
+ #endif
+
++#if PY_MAJOR_VERSION >= 3
++ /* make sure we don't pass a null pointer to _PylibMC_deserialize_native */
++ if (value == NULL) {
++ value = "";
++ }
++#endif
++
+ if (self->native_deserialization) {
+ retval = _PylibMC_deserialize_native(self, NULL, value, size, flags);
+ } else {
diff --git a/dev-python/pylibmc/pylibmc-1.6.1.ebuild b/dev-python/pylibmc/pylibmc-1.6.1.ebuild
new file mode 100644
index 000000000000..11264e7c1316
--- /dev/null
+++ b/dev-python/pylibmc/pylibmc-1.6.1.ebuild
@@ -0,0 +1,65 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python{2_7,3_{5,6,7,8}} )
+
+inherit distutils-r1
+
+DESCRIPTION="Libmemcached wrapper written as a Python extension"
+HOMEPAGE="http://sendapatch.se/projects/pylibmc/ https://pypi.org/project/pylibmc/"
+# One image is missing from the doc at PyPI
+# https://github.com/lericson/pylibmc/pull/221
+SRC_URI="https://github.com/lericson/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc test"
+
+RDEPEND=">=dev-libs/libmemcached-0.32"
+# Older sphinx versions fail to compile the doc
+# https://github.com/sphinx-doc/sphinx/issues/3266
+BDEPEND="${RDEPEND}
+ doc? ( $(python_gen_any_dep '>=dev-python/sphinx-1.5.1-r1[${PYTHON_USEDEP}]') )
+ test? (
+ net-misc/memcached
+ dev-python/nose[${PYTHON_USEDEP}]
+ )"
+
+RESTRICT="!test? ( test )"
+
+PATCHES=(
+ "${FILESDIR}/pylibmc-1.6.1-fix-test-failures.patch"
+)
+
+python_check_deps() {
+ use doc || return 0
+ has_version ">=dev-python/sphinx-1.5.1-r1[${PYTHON_USEDEP}]"
+}
+
+python_prepare_all() {
+ sed -e "/with-info=1/d" -i setup.cfg || die
+
+ # some amazon thing, expects to be in AWS
+ rm tests/test_autoconf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ if use doc; then
+ # This variable is added to sys.path
+ # but it does not seem to be useful
+ PYLIBMC_DIR="." emake -C docs
+ HTML_DOCS=( docs/_build/html/. )
+ fi
+}
+
+python_test() {
+ distutils_install_for_testing
+ memcached -d -p 11219 -u nobody -l localhost -P "${T}/m.pid" || die
+ MEMCACHED_PORT=11219 nosetests -v
+ local ret=${?}
+ kill "$(<"${T}/m.pid")" || die
+ [[ ${ret} == 0 ]] || die "Tests fail with ${EPYTHON}!"
+}