commit: 8ca3b6b71e0fee3c037ee436f541995726ea6bae Author: Michał Górny <mgorny <AT> gentoo <DOT> org> AuthorDate: Mon Dec 21 09:16:09 2020 +0000 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org> CommitDate: Mon Dec 21 09:29:35 2020 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8ca3b6b7
dev-python/backports-zoneinfo: Backport segv fix for py3.8.7rc1+ Signed-off-by: Michał Górny <mgorny <AT> gentoo.org> ...1.ebuild => backports-zoneinfo-0.2.1-r1.ebuild} | 6 ++++++ .../files/backports-zoneinfo-0.2.1-py38.patch | 22 ++++++++++++++++++++++ 2 files changed, 28 insertions(+) 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 29e10ab9d79..77b7ae5c51d 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 00000000000..dbe9695a9a5 --- /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 <pablog...@gmail.com> +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 +