diff --git a/apsw-3.46.1.0.tar.gz b/apsw-3.46.1.0.tar.gz deleted file mode 100644 index 6852657..0000000 --- a/apsw-3.46.1.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2ecab0d2fb41f96d90ff7439bb34793e8803186f5cb1aa8c613d6b0ba11b3963 -size 913223 diff --git a/apsw-3.50.4.0.tar.gz b/apsw-3.50.4.0.tar.gz new file mode 100644 index 0000000..fe0c233 --- /dev/null +++ b/apsw-3.50.4.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a817c387ce2f4030ab7c3064cf21e9957911155f24f226c3ad4938df3a155e11 +size 1093635 diff --git a/python-apsw.changes b/python-apsw.changes index 8d5508e..990d235 100644 --- a/python-apsw.changes +++ b/python-apsw.changes @@ -1,3 +1,119 @@ +------------------------------------------------------------------- +Tue Aug 5 08:38:22 UTC 2025 - John Paul Adrian Glaubitz + +- 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 ` allows specifying flags to + open a connection, and `connection command ` + 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) +- from version 3.49.1.0 + * No APSW changes. +- from version 3.49.0.0 + * `Connection.set_progress_handler` allows multiple callbacks + (multiplexed by APSW). + * Added `apsw.ext.query_limit` to limit total row count and execution + time within a block. (#520) + * `Connection.config` updated with new DBCONFIG options + * Adjustments for SQLite's new build process. +- from version 3.48.0.0 + * You can `pass any Python objects ` into SQLite, and + return them when used as runtime values such as functions. SQLite's + `pointer passing interface` is used behind the scenes. (#521) + * `Source releases ` are also available in tar format (#548), + and have updated source release signing `instructions `. + (#549) + * `Shared cache` (2006) is omitted when APSW includes the amalgamation + like PyPI builds. This is `recommended by SQLite `, has been `discouraged + for a long time`. `apsw.enable_shared_cache` will raise an exception + if called and the shared cache has been omitted. You can see what options + are in effect in `apsw.compile_options`. If you were using it for + shared memory databases then `use the memdb VFS `. +- from version 3.47.2.0 + * Added `apsw.ext.page_usage_to_svg` which shows database usage as + SVG. Available as shell `.pages-svg command `. +- from version 3.47.1.0 + * Documentation on how to `build for packagers ` such as + those maintaining Linux and BSD distributions. + * Documentation on how to `build for pyodide>`, the Python WASM + implementation that runs in the browser and NPM. PyPI does not + accept pyodide packages yet. + * A command line tool ``apsw`` is defined which invokes the `shell + `. This also allows using `uvx apsw` without having to + explicitly install APSW. + * Added `apsw.ext.analyze_pages` which uses `dbstat` to provide useful + information about the pages making up the database, and fragmentation. + The shell `.pages command ` shows it in a pretty form. +- from version 3.47.0.0 + * Support for Python 3.8 removed (#539). + * The readonly database statistics virtual table (`dbstat`) is enabled + by default for PyPI builds, and when ``--enable-all-extensions`` is + passed to manual `builds `. + * Added `recursive triggers ` + and `optimize ` to `apsw.bestpractice`. + * Multiple callbacks can be present for `Connection.trace_v2` with APSW ensuring + they are all called (#502) + * `Connection.trace_v2` callback information now has ``trigger``, ``id``, + and ``total_changes`` fields. + * Added `Connection.data_version` for getting a change counter. `pragma + data_version` doesn't update when changes are made on the same connection, + only others. + * Added `apsw.ext.ShowResourceUsage` for getting resource and SQLite usage + in a context block, and also use it for the shell `timer ` + command. + * Added `apsw.ext.Trace` for tracing SQL execution, row and change + counting, and timing per statement for use in a context block. + * Added `FTS5 support ` including registering and + calling tokenizers, and auxiliary functions. The `apsw.fts5` + module provides many additional classes and methods for working with + FTS5, including tokenizers for HTML, JSON, regular expressions, + support tokenizers for synonyms, stop words, transformers, and a + `~apsw.fts5.Table` class that wraps access to a FTS5 table + (including `creating one `) with + `~apsw.fts5.Table.search`, `~apsw.fts5.Table.more_like`, + and `~apsw.fts5.Table.query_suggest`. `apsw.fts5query` can + parse, modify, and reconstruct queries. The shell gets a `ftsq + ` command for issuing queries. + * Added `apsw.unicode` which implements Unicode algorithms for + determining codepoint groups making up a user perceived character, + word and sentence splitting, and where line breaks can be made. These + are used to make provided FTS5 tokenizers and auxiliary functions + fully Unicode aware. There are many additional methods such as + getting categories, stripping diacritics, case folding, width when + output to a terminal, text wrapping, and more. + * `apsw.ext.format_query_table` uses `apsw.unicode` to get widths and + line breaks more accurate. As a side effect it loses the `word_wrap` + parameter (breaking change). +- Add support for both update-alternatives and libalternatives +- Include apsw binary in %files section +- Remove shebang from all Python sources +- Switch upstream source back to PyPi +- Update BuildRequires from pyproject.toml + ------------------------------------------------------------------- Sat Sep 28 19:15:48 UTC 2024 - Dirk Müller diff --git a/python-apsw.spec b/python-apsw.spec index 8fb746c..2099df3 100644 --- a/python-apsw.spec +++ b/python-apsw.spec @@ -1,7 +1,7 @@ # # spec file for package python-apsw # -# Copyright (c) 2024 SUSE LLC +# Copyright (c) 2025 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -15,17 +15,22 @@ # Please submit bugfixes or comments via https://bugs.opensuse.org/ # +%if 0%{?suse_version} > 1500 +%bcond_without libalternatives +%else +%bcond_with libalternatives +%endif %{?sle15_python_module_pythons} Name: python-apsw -Version: 3.46.1.0 +Version: 3.50.4.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 >= 3.8} +Source: https://files.pythonhosted.org/packages/source/a/apsw/apsw-%{version}.tar.gz +BuildRequires: %{python_module devel >= 3.9} BuildRequires: %{python_module pip} BuildRequires: %{python_module setuptools} BuildRequires: %{python_module wheel} @@ -33,6 +38,13 @@ BuildRequires: fdupes BuildRequires: pkgconfig BuildRequires: python-rpm-macros BuildRequires: pkgconfig(sqlite3) >= 3.44 +%if %{with libalternatives} +Requires: alts +BuildRequires: alts +%else +Requires(post): update-alternatives +Requires(postun):update-alternatives +%endif %python_subpackages %description @@ -43,6 +55,8 @@ complete SQLite API into Python. %prep %autosetup -p1 -n apsw-%{version} +# Remove shebang from all Python sources +find . -name "*.py" -exec sed -i "/#\!\/usr\/bin\/env python3/d" {} \; # See the discussion on gh#rogerbinns/apsw#462 cat << EOF >setup.apsw @@ -58,6 +72,7 @@ export CFLAGS="%{optflags} -fno-strict-aliasing" %install %pyproject_install %python_expand %fdupes %{buildroot}%{$python_sitearch} +%python_clone -a %{buildroot}%{_bindir}/apsw %check # gh#rogerbinns/apsw#462 @@ -66,9 +81,19 @@ export CFLAGS="%{optflags} -fno-strict-aliasing" $python -m apsw.tests -v } +%pre +%python_libalternatives_reset_alternative apsw + +%post +%python_install_alternative apsw + +%postun +%python_uninstall_alternative apsw + %files %{python_files} %license LICENSE %doc README.rst +%python_alternative %{_bindir}/apsw %{python_sitearch}/apsw %{python_sitearch}/apsw-%{version}*-info