- update to 18.1.11:
* WARNING - BREAKING CHANGE: Drop support for Python 3.8. This breaking change should usually require a major and/or minor number update. Since berkeleydb traditional numbering is related to the higher Oracle Berkeley DB supported, I would usually wait until Oracle releases a new version to upgrade my own version and deprecate old Python support at the same time. Given that Oracle has not released a new Oracle Berkeley DB in almost five years, I must break this practice for now. I am sorry if this update breaks your Python 3.8 environment. In that case, please pin your berkeleydb installation to OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-berkeleydb?expand=0&rev=5
This commit is contained in:
commit
16e78b99be
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
## Default LFS
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
.osc
|
3
berkeleydb-18.1.10.tar.gz
Normal file
3
berkeleydb-18.1.10.tar.gz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:426341a16007a9002d987a6f4d97226f8eafffcb1a0488488053d38a3127c81a
|
||||
size 298248
|
3
berkeleydb-18.1.11.tar.gz
Normal file
3
berkeleydb-18.1.11.tar.gz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:7454f560d2d1a0e5d0d5630a437f19926b68bc794eb161edea2cdc4b267cf574
|
||||
size 174774
|
3
berkeleydb-18.1.8.tar.gz
Normal file
3
berkeleydb-18.1.8.tar.gz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:e1831a790bfd855740e5c12f952f19f646c269806cfc362775afd9878cf32557
|
||||
size 294803
|
125
python-berkeleydb.changes
Normal file
125
python-berkeleydb.changes
Normal file
@ -0,0 +1,125 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Nov 19 12:52:51 UTC 2024 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- update to 18.1.11:
|
||||
* WARNING - BREAKING CHANGE: Drop support for Python 3.8. This
|
||||
breaking change should usually require a major and/or minor
|
||||
number update. Since berkeleydb traditional numbering is
|
||||
related to the higher Oracle Berkeley DB supported, I would
|
||||
usually wait until Oracle releases a new version to upgrade
|
||||
my own version and deprecate old Python support at the same
|
||||
time. Given that Oracle has not released a new Oracle
|
||||
Berkeley DB in almost five years, I must break this practice
|
||||
for now. I am sorry if this update breaks your Python 3.8
|
||||
environment. In that case, please pin your berkeleydb
|
||||
installation to
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Oct 9 06:33:55 UTC 2024 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- update to 18.1.10:
|
||||
* Since MS Windows is unsupported without community help, I
|
||||
deleted some legacy code. It could be restored if there is
|
||||
demand and some help to improve MS Windows support.
|
||||
* New URL for :Oracle:`Oracle documentation <index.html>`.
|
||||
* Now we also use Python Stable ABI under Python 3.8 and 3.9.
|
||||
Under Python 3.10 and up we can define types that users can
|
||||
not instantiate as Py_TPFLAGS_DISALLOW_INSTANTIATION, but
|
||||
that flag is not available under previous Python versions. In
|
||||
Python 3.8 and 3.9 we used to do type->tp_new = NULL; for
|
||||
that, but this approach is not available under Python Stable
|
||||
ABI. That is the reason this module could use Python Stable
|
||||
ABI only when compiled under Python 3.10 and superior. In
|
||||
this release we define the slot Py_tp_new as NULL in Python
|
||||
3.8 and 3.9 to achieve the same effect, and that is available
|
||||
under Python Stable ABI.
|
||||
* Since this module can now use Python Stable ABI under all
|
||||
supported Python releases, that is exactly what we do. From
|
||||
now on this module always uses Python Stable ABI.
|
||||
* WARNING - BREAKING CHANGE: Change return value of
|
||||
berkeleydb.py_limited_api(). This function was introduced in
|
||||
18.1.9 and it is used to indicate if the module was using the
|
||||
Python Stable ABI or not, and the version Python Stable ABI
|
||||
used. Now that the module has been improved to use Python
|
||||
Stable ABI always, the function returns a tuple of integers.
|
||||
First tuple element tells us what Python Stable ABI version
|
||||
are we supporting. Second element tells us what Python
|
||||
release was this module compiled under, although it should
|
||||
work in any more recent Python release. Since this function
|
||||
was introduced in release 18.1.9, we consider this breaking
|
||||
change a minor infraction affecting most probably nobody.
|
||||
* Delete some unneeded ancient Python 2.x code.
|
||||
* Delete more unneeded code to check threading support since
|
||||
Python 3.7 and up always guarantee threads.
|
||||
* pkg_resources is deprecated, so migrate to packaging. This is
|
||||
already provided by modern setuptools. This change only
|
||||
affects you if you run the test suite.
|
||||
* If compiled under Python 3.10 or higher, we use the Python
|
||||
Stable ABI, as defined in PEP 384 and related PEPs. That is,
|
||||
you can use the same compiled module with any Python release
|
||||
if Python version >= 3.10. In order to achieve this, we have
|
||||
made these changes: Some fast Python API (not error
|
||||
checking) have been replaced by somewhat slower functions
|
||||
(functions that do error checking), because the former are
|
||||
not available in the Stable ABI: PyBytes_GET_SIZE(),
|
||||
PyBytes_AS_STRING(), PyTuple_SET_ITEM(). We replaced
|
||||
PyErr_Warn() by PyErr_WarnEx() because it is not available in
|
||||
the Stable ABI. When an exception is raised because an
|
||||
incompatible type, we need to write complicated code because
|
||||
Py_TYPE(keyobj)->tp_name is not available in the Stable ABI.
|
||||
Code generated for Python < 3.11 is "ugly", we will clean it
|
||||
up when the minimum supported Python version is 3.11.
|
||||
TYPE->tp_alloc is not available under the Stable ABI. We
|
||||
replace it with PyType_GenericNew(). Internal types that
|
||||
should NOT be instanciated by the user has type->tp_new =
|
||||
NULL. This can not be done under the Stable ABI, so we use
|
||||
Py_TPFLAGS_DISALLOW_INSTANTIATION flag. This is the reason we
|
||||
only create Stable ABI modules under Python >= 3.10, because
|
||||
that flag is defined in that Python release. The new function
|
||||
berkeleydb.py_limited_api() returns an integer describing the
|
||||
minimum supported Stable ABI or None. If None, the module is
|
||||
not compiled with Stable ABI and can not be used with a
|
||||
different Python version. When not None, the value of
|
||||
berkeleydb.py_limited_api() can be easily interpreted using
|
||||
something like hex(berkeleydb.py_limited_api()).
|
||||
* Some fast Python API (not error checking) have been replaced
|
||||
by somewhat slower functions (functions that do error
|
||||
checking), because the former are not available in the Stable
|
||||
ABI: PyBytes_GET_SIZE(), PyBytes_AS_STRING(),
|
||||
PyTuple_SET_ITEM().
|
||||
* We replaced PyErr_Warn() by PyErr_WarnEx() because it is not
|
||||
available in the Stable ABI.
|
||||
* When an exception is raised because an incompatible type, we
|
||||
need to write complicated code because
|
||||
Py_TYPE(keyobj)->tp_name is not available in the Stable ABI.
|
||||
Code generated for Python < 3.11 is "ugly", we will clean it
|
||||
up when the minimum supported Python version is 3.11.
|
||||
* TYPE->tp_alloc is not available under the Stable ABI. We
|
||||
replace it with PyType_GenericNew().
|
||||
* Internal types that should NOT be instanciated by the user
|
||||
has type->tp_new = NULL. This can not be done under the
|
||||
Stable ABI, so we use Py_TPFLAGS_DISALLOW_INSTANTIATION flag.
|
||||
This is the reason we only create Stable ABI modules under
|
||||
Python >= 3.10, because that flag is defined in that Python
|
||||
release.
|
||||
* The new function berkeleydb.py_limited_api() returns an
|
||||
integer describing the minimum supported Stable ABI or None.
|
||||
If None, the module is not compiled with Stable ABI and can
|
||||
not be used with a different Python version. When not None,
|
||||
the value of berkeleydb.py_limited_api() can be easily
|
||||
interpreted using something like
|
||||
hex(berkeleydb.py_limited_api()).
|
||||
* Python 3.13 added to the full test matrix.
|
||||
* Experimental Python 3.13 support. Tested under 3.13.0b2.
|
||||
* This code can be compiled under MS Windows, but I am unable
|
||||
to provide support for it and it is far from trivial. Because
|
||||
of this and some complains about it, I change the
|
||||
"Classifiers" for this project from 'Operating System :: OS
|
||||
Independent' to 'Operating System :: Unix' I would restore
|
||||
MS Windows support if there is some kind of community support
|
||||
for it. I can not do it by myself alone. Sorry about that.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Feb 5 03:28:49 UTC 2024 - Steve Kowalik <steven.kowalik@suse.com>
|
||||
|
||||
- Initial release of 18.1.8
|
81
python-berkeleydb.spec
Normal file
81
python-berkeleydb.spec
Normal file
@ -0,0 +1,81 @@
|
||||
#
|
||||
# spec file for package python-berkeleydb
|
||||
#
|
||||
# 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
|
||||
# upon. The license for this file, and modifications and additions to the
|
||||
# file, is the same license as for the pristine package itself (unless the
|
||||
# license for the pristine package is not an Open Source License, in which
|
||||
# case the license is the MIT License). An "Open Source License" is a
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
|
||||
Name: python-berkeleydb
|
||||
Version: 18.1.11
|
||||
Release: 0
|
||||
Summary: Python bindings for Oracle Berkeley DB
|
||||
License: BSD-3-Clause
|
||||
URL: https://www.jcea.es/programacion/pybsddb.htm
|
||||
Source: https://files.pythonhosted.org/packages/source/b/berkeleydb/berkeleydb-%{version}.tar.gz
|
||||
BuildRequires: %{python_module devel}
|
||||
BuildRequires: %{python_module pip}
|
||||
BuildRequires: %{python_module setuptools >= 65.5.0}
|
||||
BuildRequires: %{python_module testsuite}
|
||||
BuildRequires: %{python_module wheel}
|
||||
BuildRequires: db-devel
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: python-rpm-macros
|
||||
%python_subpackages
|
||||
|
||||
%description
|
||||
This module provides a nearly complete wrapping of the Oracle/Sleepycat C API
|
||||
for the Database Environment, Database, Cursor, Log Cursor, Sequence and
|
||||
Transaction objects, and each of these is exposed as a Python type in the
|
||||
berkeleydb.db module. The database objects can use various access methods:
|
||||
btree, hash, recno, queue and heap. Complete support of Oracle Berkeley DB
|
||||
distributed transactions. Complete support for Oracle Berkeley DB Replication
|
||||
Manager. Complete support for Oracle Berkeley DB Base Replication.
|
||||
|
||||
%package devel
|
||||
Summary: Development files for %{name}
|
||||
Requires: %{name} = %{version}
|
||||
|
||||
%description devel
|
||||
This module provides a nearly complete wrapping of the Oracle/Sleepycat C API
|
||||
for the Database Environment, Database, Cursor, Log Cursor, Sequence and
|
||||
Transaction objects, and each of these is exposed as a Python type in the
|
||||
berkeleydb.db module.
|
||||
|
||||
This package contains the development files for %{name}
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n berkeleydb-%{version}
|
||||
|
||||
%build
|
||||
export CFLAGS="%{optflags} -fno-strict-aliasing"
|
||||
%pyproject_wheel
|
||||
|
||||
%install
|
||||
%pyproject_install
|
||||
%python_expand %fdupes %{buildroot}%{$python_sitearch} %{buildroot}%{_docdir}
|
||||
|
||||
%check
|
||||
%python_exec test.py
|
||||
|
||||
%files %{python_files}
|
||||
%doc ChangeLog README.txt docs/*
|
||||
%license LICENSE.txt licenses.txt
|
||||
%{python_sitearch}/berkeleydb
|
||||
%{python_sitearch}/berkeleydb-%{version}.dist-info
|
||||
|
||||
%files %{python_files devel}
|
||||
%license licenses.txt LICENSE.txt
|
||||
%{_includedir}/python%{python_version}*/berkeleydb
|
||||
|
||||
%changelog
|
Loading…
Reference in New Issue
Block a user