Compare commits
1 Commits
| Author | SHA256 | Date | |
|---|---|---|---|
| ead2134d4c |
BIN
apsw-3.46.1.0.tar.gz
LFS
Normal file
BIN
apsw-3.46.1.0.tar.gz
LFS
Normal file
Binary file not shown.
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a3322d4f44b19693dc5e3d9b24339ecb2b5225e0ac8b00090b3c466d3c2e4dc6
|
||||
size 1156262
|
||||
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,170 +1,8 @@
|
||||
-------------------------------------------------------------------
|
||||
Fri Dec 12 10:55:57 UTC 2025 - Dirk Müller <dmueller@suse.com>
|
||||
Tue Aug 19 11:54:17 UTC 2025 - Daniel Garcia <daniel.garcia@suse.com>
|
||||
|
||||
- update to 3.51.1.0:
|
||||
* All objects that can be closed implement __bool__() which
|
||||
returns True while open and False when closed - Connection,
|
||||
Cursor, Backup, Blob, Session, ChangesetBuilder, Rebaser.
|
||||
- update to 3.51.0.0:
|
||||
* JSON can be used as though it is a native type of SQLite,
|
||||
with automatic conversion of Python objects on writing and
|
||||
reading. (example)
|
||||
* Connection.convert_binding (and Cursor.convert_binding)
|
||||
callback to allow conversion of bindings when executing SQL.
|
||||
* Connection.convert_jsonb (and Cursor.convert_jsonb) callback
|
||||
to allow conversion of JSONB when reading query results.
|
||||
(JSONB is SQLite’s binary internal parsed format for quick
|
||||
operations on JSON.)
|
||||
* 3 functions for working directly with JSONB allowing direct
|
||||
conversion between Python objects and JSONB, without having
|
||||
to go through the intermediate JSON text format.
|
||||
* Added apsw.ext.Function() for calling SQL functions directly
|
||||
from Python.
|
||||
* When using with (Connection context manager) you can set the
|
||||
outer transaction mode to DEFERRED (default) / IMMEDIATE /
|
||||
EXCLUSIVE. (APSW issue 578)
|
||||
* Changeset.apply() now takes filter_change parameter for
|
||||
allowing filtering on individual change level, taking
|
||||
advantage of sqlite3changeset_apply_v3
|
||||
* Updated Connection.status() to use 64 bit API, and
|
||||
apsw.ext.ShowResourceUsage() to show TEMPBUF_SPILL. (pragma
|
||||
cache_size controls the amount of temp/cache memory
|
||||
available.)
|
||||
* The percentile extension is enabled when enabling all
|
||||
extensions, which is standard for pypi downloads. It enables
|
||||
several percentile, median, and related SQL functions.
|
||||
* The carray extension is enabled when enabling all extensions,
|
||||
which is standard for pypi downloads. apsw.carray() allows
|
||||
binding bulk numbers, strings, and blobs to a query. See the
|
||||
example.
|
||||
* SQLITE_SCM_ constants (BRANCH, TAGS, DATETIME) are available
|
||||
on the module if built with the amalgamation.
|
||||
* apsw.ext.generate_series_sqlite() updated to exactly match
|
||||
SQLite’s behaviour. apsw.ext.generate_series() is recommended
|
||||
as it matches other databases.
|
||||
* Updated apsw.unicode to support Unicode 17.0 which adds 4,803
|
||||
new codepoints, and updated line breaking, along with other
|
||||
small tweaks.
|
||||
* The Geopoly extension (GeoJSON access to RTree) is enabled
|
||||
when --enable-all-extensions is used with setup.py. This
|
||||
includes pypi builds.
|
||||
* This is the final release supporting Python 3.9.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Aug 5 08:38:22 UTC 2025 - John Paul Adrian Glaubitz <adrian.glaubitz@suse.com>
|
||||
|
||||
- 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)
|
||||
- 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 <pyobject>` 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 <sources>` are also available in tar format (#548),
|
||||
and have updated source release signing `instructions <verifydownload>`.
|
||||
(#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 <memdb>`.
|
||||
- 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 <shell-cmd-pages-svg>`.
|
||||
- from version 3.47.1.0
|
||||
* Documentation on how to `build for packagers <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
|
||||
<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 <shell-cmd-pages>` 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 <build>`.
|
||||
* Added `recursive triggers <apsw.bestpractice.connection_recursive_triggers>`
|
||||
and `optimize <apsw.bestpractice.connection_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 <shell-cmd-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 <textsearch>` 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 <apsw.fts5.Table.create>`) 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
|
||||
<shell-cmd-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
|
||||
- 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>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#
|
||||
# spec file for package python-apsw
|
||||
#
|
||||
# Copyright (c) 2025 SUSE LLC and contributors
|
||||
# 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
|
||||
@@ -16,22 +16,18 @@
|
||||
#
|
||||
|
||||
|
||||
%if 0%{?suse_version} > 1500
|
||||
%bcond_without libalternatives
|
||||
%else
|
||||
%bcond_with libalternatives
|
||||
%endif
|
||||
|
||||
%{?sle15_python_module_pythons}
|
||||
Name: python-apsw
|
||||
Version: 3.51.1.0
|
||||
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://files.pythonhosted.org/packages/source/a/apsw/apsw-%{version}.tar.gz
|
||||
BuildRequires: %{python_module devel >= 3.9}
|
||||
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}
|
||||
BuildRequires: %{python_module wheel}
|
||||
@@ -39,13 +35,6 @@ 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
|
||||
@@ -56,8 +45,6 @@ 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
|
||||
@@ -73,7 +60,6 @@ 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
|
||||
@@ -82,19 +68,9 @@ 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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user