Compare commits
1 Commits
Author | SHA256 | Date | |
---|---|---|---|
76ad7467c8 |
BIN
apsw-3.42.0.1.tar.gz
(Stored with Git LFS)
BIN
apsw-3.42.0.1.tar.gz
(Stored with Git LFS)
Binary file not shown.
BIN
apsw-3.46.1.0.tar.gz
(Stored with Git LFS)
Normal file
BIN
apsw-3.46.1.0.tar.gz
(Stored with Git LFS)
Normal file
Binary file not shown.
72
disable-infinite-recursion-in-tests.patch
Normal file
72
disable-infinite-recursion-in-tests.patch
Normal 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):
|
@@ -1,3 +1,137 @@
|
||||
-------------------------------------------------------------------
|
||||
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>
|
||||
|
||||
- update to 3.46.0.1:
|
||||
* :func:`apsw.ext.query_info` provides the count and names of
|
||||
bindings parameters. (:issue:`528`)
|
||||
* Address how errors are handled in VFS xRandomness routine,
|
||||
that is only called once by SQLite to seed its random number
|
||||
generator. (:issue:`526`)
|
||||
* Added :meth:`Connection.vfsname` and updated corresponding
|
||||
shell command to get the diagnostic names of the vfs stack
|
||||
for the connection. (:issue:`525`)
|
||||
* Do not cache :meth:`Connection.pragma` statements to avoid
|
||||
encryption keys, or pragmas that run during prepare from
|
||||
being retained. (:issue:`522`)
|
||||
* :meth:`Connection.pragma` adds keyword schema argument to run
|
||||
pragma against attached databases. (:issue:`524`)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jun 6 08:35:40 UTC 2024 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- update to 3.46.0.0:
|
||||
* Adjusted levels in :func:`apsw.ext.log_sqlite` to be lower
|
||||
for some SQLite messages like SQLITE_SCHEMA and
|
||||
SQLITE_NOTICE_RECOVER_WAL (:issue:`518`)
|
||||
* Previous source releases were signed with PGP. Starting with
|
||||
this release Sigstore's cosign tool is used
|
||||
(:ref:`instructions <verifydownload>`). (:issue:`512`)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Apr 20 14:09:15 UTC 2024 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- update to 3.45.3.0:
|
||||
* No APSW changes.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Mar 18 10:27:56 UTC 2024 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- update to 3.45.2.0:
|
||||
* Minor doc and tests change due to changed behaviour of
|
||||
sqlite3_serialize on an empty database, used by
|
||||
:meth:`Connection.serialize`.
|
||||
* No APSW changes.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Jan 20 12:28:34 UTC 2024 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- update to 3.45.0.0:
|
||||
* Correctly handle NULL/None VFS filenames (:issue:`506`)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jan 3 09:42:09 UTC 2024 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- require setuptools
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Dec 2 20:18:36 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- update to 3.44.2.0:
|
||||
* Added `logger` parameter to :func:`apsw.ext.log_sqlite` to
|
||||
use a specific :class:`logging.Logger` (:issue:`493`)
|
||||
* Added :func:`apsw.ext.result_string` to turn an result code
|
||||
into a string, taking into account if it is extended or not.
|
||||
* Provide detail when C implemented objects are printed. For
|
||||
example :class:`connections <Connection>` include the filename.
|
||||
* Added :meth:`URIFilename.parameters` (:issue:`496`)
|
||||
* :class:`URIFilename` are only valid for the duration of the
|
||||
:meth:`VFS.xOpen` call. If you save and use the object later
|
||||
you will get an exception. (:issue:`501`)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Nov 14 15:52:45 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- update to 3.44.0.0:
|
||||
* Added virtual table :meth:`VTTable.Integrity` support.
|
||||
* On 64 bit platforms with the amalgamation,
|
||||
`SQLITE_MAX_MMAP_SIZE SQLite's default limit is 2GB.
|
||||
* :meth:`Connection.create_aggregate_function` can take a class
|
||||
with step and final methods. (:issue:`421`)
|
||||
* Corrected non :pep:`8` :ref:`compliant names <renaming>`.
|
||||
The old names remain as aliases to the new ones, and your
|
||||
code will not break.
|
||||
* :doc:`Exception <exceptions>` handling has been updated, with
|
||||
multiple exceptions in the same SQLite control flow being
|
||||
chained together.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Oct 6 06:51:24 UTC 2023 - ecsos <ecsos@opensuse.org>
|
||||
|
||||
- Update to 3.43.1.0
|
||||
- All C code calling into Python and all C code called by Python
|
||||
uses vectorcall / fastcall (see PEP 590) which reduces the
|
||||
overhead of passing and receiving positional and keyword
|
||||
arguments. (APSW issue 477 APSW issue 446):
|
||||
* Conversion of arguments from Python values to C values drops
|
||||
generic PyArg_ParseTupleAndKeywords in favour of direct
|
||||
processing which is more efficient and allows better
|
||||
exception messages.
|
||||
* Running speedtest with a VFS that inherits all methods went
|
||||
from being 17% slower than pure SQLite to 2% slower.
|
||||
* A virtual table benchmark takes 35% less time. (Remember that
|
||||
benchmarks are best case!)
|
||||
- The shell JSON output modes have been fixed. Mode 'json'
|
||||
outputs a json array, while mode 'jsonl' does newline delimited
|
||||
json objects, aka json lines. (APSW issue 483)
|
||||
- Changes from 3.43.1.0
|
||||
- This is the last version that supports Python 3.6 and
|
||||
Python 3.7 (both end of life). The policy as stated in the
|
||||
about page is that there will be one more APSW release after
|
||||
a Python version goes end of life supporting that Python
|
||||
version. (APSW issue 471)
|
||||
- Added best practice module (APSW issue 460)
|
||||
- apsw.ext.log_sqlite() outputs SQLite warnings at warning level.
|
||||
(APSW issue 472)
|
||||
- sqlite3_stmt_explain is wrapped available as a explain keyword
|
||||
parameter on execute/executemany methods. (APSW issue 474)
|
||||
- Added documentation and helper class for implementing custom
|
||||
pragmas in your own Virtual File System (VFS) (APSW issue 464)
|
||||
- Reduced overhead of the Column method when using
|
||||
apsw.ext.make_virtual_module() (APSW issue 465)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jul 26 14:57:47 UTC 2023 - Matej Cepl <mcepl@suse.com>
|
||||
|
||||
@@ -169,7 +303,7 @@ Mon Jan 17 20:40:34 UTC 2022 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- update to 3.37.0-r1:
|
||||
* Allow breaking of reference cycles between objects that contain a
|
||||
Connection or Cursor
|
||||
Connection or Cursor
|
||||
* Fixed custom VFS extension loading failure could leave the error message
|
||||
unterminated
|
||||
* Updated size of mutex array used by the fork checker
|
||||
@@ -190,7 +324,7 @@ Fri Jun 25 06:20:00 UTC 2021 - ecsos <ecsos@opensuse.org>
|
||||
it by default with –enable-all-extensions.
|
||||
- Use the newer buffer API for Python 3
|
||||
(old API removed in Python 3.10).
|
||||
- Fix loadable extensions are missing,
|
||||
- Fix loadable extensions are missing,
|
||||
so insert --enable-all-extensions and --enable=load_extension.
|
||||
See: https://rogerbinns.github.io/apsw/build.html#building
|
||||
|
||||
@@ -200,7 +334,7 @@ Tue Dec 29 13:46:03 UTC 2020 - Dirk Müller <dmueller@suse.com>
|
||||
- udpate to 3.34.0-r1:
|
||||
* Windows MSI installer files are now provided
|
||||
* Added Connection.txn_state()
|
||||
* Added constants: SQLITE_IOERR_CORRUPTFS
|
||||
* Added constants: SQLITE_IOERR_CORRUPTFS
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Sep 22 11:54:56 UTC 2020 - Tomáš Chvátal <tchvatal@suse.com>
|
||||
|
@@ -1,7 +1,7 @@
|
||||
#
|
||||
# spec file for package python-apsw
|
||||
#
|
||||
# Copyright (c) 2023 SUSE LLC
|
||||
# Copyright (c) 2024 SUSE LLC
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
@@ -18,20 +18,23 @@
|
||||
|
||||
%{?sle15_python_module_pythons}
|
||||
Name: python-apsw
|
||||
Version: 3.42.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
|
||||
BuildRequires: %{python_module devel}
|
||||
# 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}
|
||||
BuildRequires: %{python_module wheel}
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: python-rpm-macros
|
||||
BuildRequires: pkgconfig(sqlite3) >= 3.42
|
||||
BuildRequires: pkgconfig(sqlite3) >= 3.44
|
||||
%python_subpackages
|
||||
|
||||
%description
|
||||
|
Reference in New Issue
Block a user