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
+ 

Reply via email to