commit:     b7e4a7a2b15894d75902cf594bfaac1eea95c831
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Feb  3 11:53:26 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Feb  3 11:53:43 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b7e4a7a2

dev-python/cbor2: Bump to 5.6.1

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 dev-python/cbor2/Manifest                     |  1 +
 dev-python/cbor2/cbor2-5.6.1.ebuild           | 51 +++++++++++++++++++++++++++
 dev-python/cbor2/files/cbor2-5.6.1-cext.patch | 40 +++++++++++++++++++++
 3 files changed, 92 insertions(+)

diff --git a/dev-python/cbor2/Manifest b/dev-python/cbor2/Manifest
index 616f25fc4ff6..38c10ee95f47 100644
--- a/dev-python/cbor2/Manifest
+++ b/dev-python/cbor2/Manifest
@@ -1 +1,2 @@
 DIST cbor2-5.5.1.tar.gz 94221 BLAKE2B 
651d229c9a4e5fda2ae61302f8bd72a165f15e008333525a301f2fc94dc81259698f4ae9b8c1f3a0b5fadffadd4d55f2ba4bf1445938a10342997bca64ceba31
 SHA512 
7878b997ae5bdf44cb04b7cef8445a94f11c1722819ea85073bd56f99976cf2c1c1180e72d9ae9cd7dd7d06a6aa55dc1cb3f919a869098a9feede210f8355fb4
+DIST cbor2-5.6.1.tar.gz 99268 BLAKE2B 
95a310c6fea00f90ba512d836691ab8fb75ebb9f6b59ca0698b7f97d2c969d2f8809ed2717c48354812f309856a35873c96571194dd86c48a225696b27ec806f
 SHA512 
9ddf2c3690780816ff50ff4ed371435ca45b597b706254c37c9f01d1f1a699892e2c945a72e69b5506a803c41692f399b58b4e32d9409a0197c677e537e656b2

diff --git a/dev-python/cbor2/cbor2-5.6.1.ebuild 
b/dev-python/cbor2/cbor2-5.6.1.ebuild
new file mode 100644
index 000000000000..34465192386c
--- /dev/null
+++ b/dev-python/cbor2/cbor2-5.6.1.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( pypy3 python3_{10..12} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Pure Python CBOR (de)serializer with extensive tag support"
+HOMEPAGE="
+       https://github.com/agronholm/cbor2/
+       https://pypi.org/project/cbor2/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc ~ppc64 ~riscv 
~s390 ~sparc ~x86"
+IUSE="+native-extensions"
+
+BDEPEND="
+       >=dev-python/setuptools-61[${PYTHON_USEDEP}]
+       >=dev-python/setuptools-scm-6.4[${PYTHON_USEDEP}]
+       test? (
+               dev-python/hypothesis[${PYTHON_USEDEP}]
+       )
+"
+
+distutils_enable_tests pytest
+
+python_prepare_all() {
+       local PATCHES=(
+               # https://github.com/agronholm/cbor2/issues/213
+               "${FILESDIR}/${P}-cext.patch"
+       )
+
+       # remove pytest-cov dep
+       sed -i -e "s/--cov//" pyproject.toml || die
+       distutils-r1_python_prepare_all
+}
+
+python_compile() {
+       local -x CBOR2_BUILD_C_EXTENSION=1
+       # pypy3 not supported upstream
+       if [[ ${EPYTHON} == pypy3 ]] || ! use native-extensions; then
+               CBOR2_BUILD_C_EXTENSION=0
+       fi
+       distutils-r1_python_compile
+}

diff --git a/dev-python/cbor2/files/cbor2-5.6.1-cext.patch 
b/dev-python/cbor2/files/cbor2-5.6.1-cext.patch
new file mode 100644
index 000000000000..1695038e4b42
--- /dev/null
+++ b/dev-python/cbor2/files/cbor2-5.6.1-cext.patch
@@ -0,0 +1,40 @@
+From 4de6991ba29bf2290d7b9d83525eda7d021873df Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Alex=20Gr=C3=B6nholm?= <[email protected]>
+Date: Sat, 3 Feb 2024 13:03:38 +0200
+Subject: [PATCH] Check PyObject_Hash() return value for errors
+
+Fixes #213.
+---
+ docs/versionhistory.rst | 5 +++++
+ source/tags.c           | 2 ++
+ 2 files changed, 7 insertions(+)
+
+diff --git a/docs/versionhistory.rst b/docs/versionhistory.rst
+index 70948c5..c91cdd0 100644
+--- a/docs/versionhistory.rst
++++ b/docs/versionhistory.rst
+@@ -5,6 +5,11 @@ Version history
+ 
+ This library adheres to `Semantic Versioning <http://semver.org/>`_.
+ 
++**UNRELEASED**
++
++- Fixed ``__hash__()`` of the C version of the ``CBORTag`` type crashing when 
there's a recursive
++  reference cycle
++
+ **5.6.1** (2024-02-01)
+ 
+ - Fixed use-after-free in the decoder's C version when prematurely 
encountering the end of stream
+diff --git a/source/tags.c b/source/tags.c
+index b718f55..ceb0916 100644
+--- a/source/tags.c
++++ b/source/tags.c
+@@ -182,6 +182,8 @@ CBORTag_hash(CBORTagObject *self)
+         goto exit;
+ 
+     ret = PyObject_Hash(tmp);
++    if (ret == -1)
++        goto exit;
+ 
+     // Remove id(self) from thread_locals.running_hashes
+     if (PySet_Discard(running_hashes, self_id) == -1) {

Reply via email to