SHA256
1
0
forked from pool/python-apsw

5 Commits

Author SHA256 Message Date
ead2134d4c Sync changes to SLFO-1.2 branch 2025-08-20 11:01:10 +02:00
211c31518d Accepting request 1297684 from devel:languages:python
OBS-URL: https://build.opensuse.org/request/show/1297684
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-apsw?expand=0&rev=28
2025-08-06 12:33:07 +00:00
f84e2e7679 - Update to 3.50.4.0
* PyPI binary builds are available for:
    * Python 3.14
    * Windows ARM
    * Python 3.14 `free threaded`__ (no GIL).  The GIL will be
      enabled when APSW is loaded.  APSW will be free threaded
      in the future (#568)
- from version 3.50.3.0
  * preupdate_hook` is available. The `commit` and `rollback`
    hooks let you provide multiple callbacks, multiplex by APSW.
    `apsw.ext.Trace` can now show updates, and transaction begin,
    commit, and rollback.
- from version 3.50.2.0
  * PyPi builds now use `cibuildwheel version 3` which advances
    the minimum supported Linux distribution.  It is configured
    to continue building both 32 and 64 bit binaries.
- from version 3.50.1.0
  * No user visible changes.
- from version 3.50.0.0
  * Full support for the `session`
  * Added `Connection.setlk_timeout`, `apsw.mapping_setlk_timeout_flags`,
    and enabled the timeout for amalgamation builds such as PyPI.
  * Shell `open command <shell-cmd-open>` allows specifying flags to
    open a connection, and `connection command <shell-cmd-connection>`
    shows flags used for each open. (#557)
  * Type stubs updated to `collections.abc.Buffer` (Python 3.12+)
    wherever some bytes are taken.  `Buffers `__ have always been used,
    but Python 3.12 added typing.
- from version 3.49.2.0
  * Shell dump command handles generated columns correctly. (#556)

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-apsw?expand=0&rev=61
2025-08-05 10:44:08 +00:00
bbd7f0346c Accepting request 1204392 from devel:languages:python
- update to 3.46.1.0:
  * The shell dump command outputs the application_id in addition
    to the user_version.

OBS-URL: https://build.opensuse.org/request/show/1204392
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-apsw?expand=0&rev=27
2024-09-30 13:38:11 +00:00
176412f1ba - update to 3.46.1.0:
* The shell dump command outputs the application_id in addition
    to the user_version.

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-apsw?expand=0&rev=59
2024-09-28 19:16:51 +00:00
5 changed files with 91 additions and 4 deletions

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d8640f6d4b0ab2b604bce1f6d0e380d150613e0d77b55a1dc9995fe5593f32a2
size 912632

BIN
apsw-3.46.1.0.tar.gz LFS Normal file

Binary file not shown.

View File

@@ -0,0 +1,72 @@
From 0103ade603b321aa66e5bfc7a5a078219e888481 Mon Sep 17 00:00:00 2001
From: Roger Binns <rogerb@rogerbinns.com>
Date: Mon, 7 Oct 2024 07:13:54 -0700
Subject: [PATCH] Disable infinite recursion test in non-debug builds
You'll need a wide window to read this
This is the backtrace on Ubuntu 24.10 with Python 3.12.7 - it has occurred on versions too
Thread 1 "python3" received signal SIGSEGV, Segmentation fault.
#0 0x00007ffff7c6c804 in __printf_buffer (buf=buf@entry=0x7fffff7ff240, format=0x71cdf5 "%zd", ap=0x7fffff7ff290, mode_flags=6) at ./stdio-common/vfprintf-internal.c:600
#1 0x00007ffff7c8dc93 in __vsprintf_internal (string=string@entry=0x7fffff7ff430 "", maxlen=maxlen@entry=26, format=<optimised out>, args=args@entry=0x7fffff7ff290, mode_flags=mode_flags@entry=6) at ./libio/iovsprintf.c:62
#2 0x00007ffff7d4228f in ___sprintf_chk (s=s@entry=0x7fffff7ff430 "", flag=flag@entry=2, slen=slen@entry=26, format=<optimised out>) at ./debug/sprintf_chk.c:40
#3 0x00000000005abf85 in sprintf (__s=<optimised out>, __fmt=<optimised out>) at /usr/include/x86_64-linux-gnu/bits/stdio2.h:30
#4 unicode_fromformat_arg (writer=0x7fffff7ff3f0, f=0x71cdf7 "d", vargs=0x7fffff7ff3d8) at ../Objects/unicodeobject.c:2740
#5 PyUnicode_FromFormatV (format=<optimised out>, vargs=vargs@entry=0x7fffff7ff4a8) at ../Objects/unicodeobject.c:2963
#6 0x00000000005b3c6f in PyUnicode_FromFormat (format=format@entry=0x71cdf5 "%zd") at ../Objects/unicodeobject.c:3011
#7 0x00000000005d7a3e in too_many_positional (co=<optimised out>, tstate=0xbae310 <_PyRuntime+458992>, given=2, defaults=<optimised out>, localsplus=0x7ffff7fb0cb0, qualname='APSW.testIssue425.<locals>.handler') at ../Python/ceval.c:1150
#8 initialize_locals (tstate=tstate@entry=0xbae310 <_PyRuntime+458992>, func=func@entry=0x7fffe9094ae0, localsplus=<optimised out>, args=<optimised out>, argcount=<optimised out>, kwnames=<optimised out>) at ../Python/ceval.c:1459
#9 0x00000000005d7642 in _PyEvalFramePushAndInit (tstate=0xbae310 <_PyRuntime+458992>, func=0x7fffe9094ae0, locals=<optimised out>, args=0x7fffff7ff708, argcount=<optimised out>, kwnames=0x0) at ../Python/ceval.c:1594
#10 _PyEval_Vector (tstate=0xbae310 <_PyRuntime+458992>, func=0x7fffe9094ae0, locals=<optimised out>, args=0x7fffff7ff708, argcount=2, kwnames=0x0) at ../Python/ceval.c:1677
#11 0x000000000054a2d5 in _PyObject_VectorcallTstate (tstate=0xbae310 <_PyRuntime+458992>, callable=<function at remote 0x7fffe9094ae0>, args=<optimised out>, nargsf=<optimised out>, kwnames=<optimised out>) at ../Include/internal/pycore_call.h:92
#12 PyObject_Vectorcall (callable=<function at remote 0x7fffe9094ae0>, args=<optimised out>, nargsf=<optimised out>, kwnames=<optimised out>) at ../Objects/call.c:325
#13 0x00007fffe96aa94c in apsw_logger (arg=0x7fffe9094ae0, errcode=1, message=0x7fffff7ff770 "apsw_write_unraisable TypeError: APSW.testIssue425.<locals>.handler() takes 0 positional arguments but 2 were given") at src/apsw.c:447
#14 0x00007fffe945ece4 in renderLogMsg (iErrCode=1, zFormat=0x7fffe96ce958 "apsw_write_unraisable %s: %s", ap=0x7fffff7ff880) at sqlite3/sqlite3.c:32459
#15 0x00007fffe945edfa in sqlite3_log (iErrCode=1, zFormat=0x7fffe96ce958 "apsw_write_unraisable %s: %s") at sqlite3/sqlite3.c:32470
#16 0x00007fffe95d903a in apsw_write_unraisable (hookobject=0x0) at src/util.c:174
#17 0x00007fffe96aaaf1 in apsw_logger (arg=0x7fffe9094ae0, errcode=1, message=0x7fffff7ffbc0 "apsw_write_unraisable TypeError: APSW.testIssue425.<locals>.handler() takes 0 positional arguments but 2 were given") at src/apsw.c:464
#18 0x00007fffe945ece4 in renderLogMsg (iErrCode=1, zFormat=0x7fffe96ce958 "apsw_write_unraisable %s: %s", ap=0x7fffff7ffcd0) at sqlite3/sqlite3.c:32459
#19 0x00007fffe945edfa in sqlite3_log (iErrCode=1, zFormat=0x7fffe96ce958 "apsw_write_unraisable %s: %s") at sqlite3/sqlite3.c:32470
#20 0x00007fffe95d903a in apsw_write_unraisable (hookobject=0x0) at src/util.c:174
#21 0x00007fffe96aaaf1 in apsw_logger (arg=0x7fffe9094ae0, errcode=1, message=0x7fffff800010 "apsw_write_unraisable TypeError: APSW.testIssue425.<locals>.handler() takes 0 positional arguments but 2 were given") at src/apsw.c:464
#22 0x00007fffe945ece4 in renderLogMsg (iErrCode=1, zFormat=0x7fffe96ce958 "apsw_write_unraisable %s: %s", ap=0x7fffff800120) at sqlite3/sqlite3.c:32459
#23 0x00007fffe945edfa in sqlite3_log (iErrCode=1, zFormat=0x7fffe96ce958 "apsw_write_unraisable %s: %s") at sqlite3/sqlite3.c:32470
#24 0x00007fffe95d903a in apsw_write_unraisable (hookobject=0x0) at src/util.c:174
#25 0x00007fffe96aaaf1 in apsw_logger (arg=0x7fffe9094ae0, errcode=1, message=0x7fffff800460 "apsw_write_unraisable TypeError: APSW.testIssue425.<locals>.handler() takes 0 positional arguments but 2 were given") at src/apsw.c:464
#26 0x00007fffe945ece4 in renderLogMsg (iErrCode=1, zFormat=0x7fffe96ce958 "apsw_write_unraisable %s: %s", ap=0x7fffff800570) at sqlite3/sqlite3.c:32459
#27 0x00007fffe945edfa in sqlite3_log (iErrCode=1, zFormat=0x7fffe96ce958 "apsw_write_unraisable %s: %s") at sqlite3/sqlite3.c:32470
#28 0x00007fffe95d903a in apsw_write_unraisable (hookobject=0x0) at src/util.c:174
#29 0x00007fffe96aaaf1 in apsw_logger (arg=0x7fffe9094ae0, errcode=1, message=0x7fffff8008b0 "apsw_write_unraisable TypeError: APSW.testIssue425.<locals>.handler() takes 0 positional arguments but 2 were given") at src/apsw.c:464
#30 0x00007fffe945ece4 in renderLogMsg (iErrCode=1, zFormat=0x7fffe96ce958 "apsw_write_unraisable %s: %s", ap=0x7fffff8009c0) at sqlite3/sqlite3.c:32459
#31 0x00007fffe945edfa in sqlite3_log (iErrCode=1, zFormat=0x7fffe96ce958 "apsw_write_unraisable %s: %s") at sqlite3/sqlite3.c:32470
#32 0x00007fffe95d903a in apsw_write_unraisable (hookobject=0x0) at src/util.c:174
#33 0x00007fffe96aaaf1 in apsw_logger (arg=0x7fffe9094ae0, errcode=1, message=0x7fffff800d00 "apsw_write_unraisable TypeError: APSW.testIssue425.<locals>.handler() takes 0 positional arguments but 2 were given") at src/apsw.c:464
#34 0x00007fffe945ece4 in renderLogMsg (iErrCode=1, zFormat=0x7fffe96ce958 "apsw_write_unraisable %s: %s", ap=0x7fffff800e10) at sqlite3/sqlite3.c:32459
#35 0x00007fffe945edfa in sqlite3_log (iErrCode=1, zFormat=0x7fffe96ce958 "apsw_write_unraisable %s: %s") at sqlite3/sqlite3.c:32470
#36 0x00007fffe95d903a in apsw_write_unraisable (hookobject=0x0) at src/util.c:174
These repeat because that is the point of the test until you get into the Python test code.
---
apsw/tests.py | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/apsw/tests.py b/apsw/tests.py
index a349533b..bfec8e9f 100644
--- a/apsw/tests.py
+++ b/apsw/tests.py
@@ -1188,6 +1188,14 @@ def testIssue376(self):
def testIssue425(self):
"Infinite recursion"
+ # When Python tries to output an error message after reaching
+ # the recursion limit it can segv which is nothing to do with
+ # the apsw code, and the Python code looks good to me. Debug
+ # Python builds don't have this problem. See the commit
+ # message for this change for backtrace etc.
+ if "d" not in getattr(sys, "abiflags", ""):
+ return
+
class VFSA(apsw.VFS):
def __init__(self):

View File

@@ -1,3 +1,16 @@
-------------------------------------------------------------------
Tue Aug 19 11:54:17 UTC 2025 - Daniel Garcia <daniel.garcia@suse.com>
- Add upstream patch disable-infinite-recursion-in-tests.patch
gh#rogerbinns/apsw@0103ade60
-------------------------------------------------------------------
Sat Sep 28 19:15:48 UTC 2024 - Dirk Müller <dmueller@suse.com>
- update to 3.46.1.0:
* The shell dump command outputs the application_id in addition
to the user_version.
-------------------------------------------------------------------
Sun Jun 30 21:32:30 UTC 2024 - Dirk Müller <dmueller@suse.com>

View File

@@ -18,13 +18,15 @@
%{?sle15_python_module_pythons}
Name: python-apsw
Version: 3.46.0.1
Version: 3.46.1.0
Release: 0
Summary: Another Python SQLite Wrapper
License: Zlib
Group: Development/Libraries/Python
URL: https://github.com/rogerbinns/apsw/
Source: https://github.com/rogerbinns/apsw/archive/refs/tags/%{version}.tar.gz#/apsw-%{version}.tar.gz
# PATCH-FIX-UPSTREAM disable-infinite-recursion-in-tests.patch -- gh#rogerbinns/apsw@0103ade60
Patch0: disable-infinite-recursion-in-tests.patch
BuildRequires: %{python_module devel >= 3.8}
BuildRequires: %{python_module pip}
BuildRequires: %{python_module setuptools}