Bug#1058027: pybj: FTBFS with Python 3.12

2024-01-12 Thread s3v
Dear Maintainer,

Python 3.12 changed recursion mechanism [1]

 sys.setrecursionlimit() and sys.getrecursionlimit(). The recursion limit
 now applies only to Python code. Builtin functions do not use the recursion
 limit, but are protected by a different mechanism that prevents recursion
 from causing a virtual machine crash.

so increasing recursion limit as py-ubjson did [2] makes your package
buildable.
E.g.

--- a/test/test.py
+++ b/test/test.py
@@ -477,10 +477,10 @@
 
 def test_recursion(self):
 old_limit = getrecursionlimit()
-    setrecursionlimit(200)
+    setrecursionlimit(100)
 try:
 obj = current = []
-    for _ in range(getrecursionlimit() * 2):
+    for _ in range(getrecursionlimit() * 30):
 new_list = []
 current.append(new_list)
 current = new_list
@@ -488,7 +488,7 @@
 with self.assert_raises_regex(RuntimeError, 'recursion'):
 self.bjddumpb(obj)
 
-    raw = ARRAY_START * (getrecursionlimit() * 2)
+    raw = ARRAY_START * (getrecursionlimit() * 30)
 with self.assert_raises_regex(RuntimeError, 'recursion'):
 self.bjdloadb(raw)
 finally:


Kind Regards

[1] https://docs.python.org/3/whatsnew/3.12.html#sys
[2] 
https://sources.debian.org/src/py-ubjson/0.16.1-3/debian/patches/py12_recursion_PR19.diff/



Bug#1058027: pybj: FTBFS with Python 3.12

2023-12-11 Thread Graham Inggs
Source: pybj
Version: 0.2.6-1
Severity: serious
Tags: ftbfs sid trixie
User: debian-pyt...@lists.debian.org
Usertags: python3.12

Hi Maintainer

pybj FTBFS [1] with Python 3.12 as a supported version.  I've copied
what I hope is the relevant part of the log below.

Regards
Graham

[1] https://buildd.debian.org/status/package.php?p=pybj


==
FAIL: test_recursion (test.TestEncodeDecodeFpExt.test_recursion)
--
Traceback (most recent call last):
  File "/<>/.pybuild/cpython3_3.12_bjdata/build/test/test.py",
line 488, in test_recursion
with self.assert_raises_regex(RuntimeError, 'recursion'):
AssertionError: RuntimeError not raised

==
FAIL: test_recursion (test.TestEncodeDecodePlainExt.test_recursion)
--
Traceback (most recent call last):
  File "/<>/.pybuild/cpython3_3.12_bjdata/build/test/test.py",
line 488, in test_recursion
with self.assert_raises_regex(RuntimeError, 'recursion'):
AssertionError: RuntimeError not raised

--
Ran 120 tests in 4.563s

FAILED (failures=2)
E: pybuild pybuild:395: test: plugin distutils failed with: exit
code=1: cd /<>/.pybuild/cpython3_3.12_bjdata/build;
python3.12 -m unittest discover -v test/
I: pybuild base:310: cd
/<>/.pybuild/cpython3_3.11_bjdata/build; python3.11 -m
unittest discover -v test/