From 8ca3b6b71e0fee3c037ee436f541995726ea6bae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Mon, 21 Dec 2020 10:16:09 +0100 Subject: [PATCH] dev-python/backports-zoneinfo: Backport segv fix for py3.8.7rc1+ MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- ...ild => backports-zoneinfo-0.2.1-r1.ebuild} | 6 +++++ .../files/backports-zoneinfo-0.2.1-py38.patch | 22 +++++++++++++++++++ 2 files changed, 28 insertions(+) rename dev-python/backports-zoneinfo/{backports-zoneinfo-0.2.1.ebuild => backports-zoneinfo-0.2.1-r1.ebuild} (92%) create mode 100644 dev-python/backports-zoneinfo/files/backports-zoneinfo-0.2.1-py38.patch diff --git a/dev-python/backports-zoneinfo/backports-zoneinfo-0.2.1.ebuild b/dev-python/backports-zoneinfo/backports-zoneinfo-0.2.1-r1.ebuild similarity index 92% rename from dev-python/backports-zoneinfo/backports-zoneinfo-0.2.1.ebuild rename to dev-python/backports-zoneinfo/backports-zoneinfo-0.2.1-r1.ebuild index 29e10ab9d7932..77b7ae5c51dc1 100644 --- a/dev-python/backports-zoneinfo/backports-zoneinfo-0.2.1.ebuild +++ b/dev-python/backports-zoneinfo/backports-zoneinfo-0.2.1-r1.ebuild @@ -38,6 +38,12 @@ BDEPEND=" # pytest-subtests distutils_enable_tests unittest +PATCHES=( + # fix segv in py3.8.7rc1+ + # https://github.com/pganssle/zoneinfo/pull/97 + "${FILESDIR}"/${P}-py38.patch +) + python_test() { if [[ ${EPYTHON} == pypy3 ]]; then # pypy3.6 does not support dataclasses, and the backport diff --git a/dev-python/backports-zoneinfo/files/backports-zoneinfo-0.2.1-py38.patch b/dev-python/backports-zoneinfo/files/backports-zoneinfo-0.2.1-py38.patch new file mode 100644 index 0000000000000..dbe9695a9a53e --- /dev/null +++ b/dev-python/backports-zoneinfo/files/backports-zoneinfo-0.2.1-py38.patch @@ -0,0 +1,22 @@ +From 0e42cc3999b4e3833b5f3f41857b8c1e3c9143f3 Mon Sep 17 00:00:00 2001 +From: Pablo Galindo +Date: Mon, 21 Dec 2020 02:02:34 +0000 +Subject: [PATCH] Decrement the refcount of _PyLong_One in the correct branch + +--- + lib/zoneinfo_module.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/zoneinfo_module.c b/lib/zoneinfo_module.c +index e0c72d3..07ef603 100644 +--- a/lib/zoneinfo_module.c ++++ b/lib/zoneinfo_module.c +@@ -616,7 +616,7 @@ zoneinfo_fromutc(PyObject *obj_self, PyObject *dt) + Py_DECREF(args); + Py_DECREF(kwargs); + Py_DECREF(replace); +-#ifndef ATLEAST_37 ++#ifdef ATLEAST_37 + Py_DECREF(one); + #endif +