- 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:
Dirk Mueller 2024-11-19 12:53:05 +00:00 committed by Git OBS Bridge
commit 16e78b99be
7 changed files with 239 additions and 0 deletions

23
.gitattributes vendored Normal file
View 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
View File

@ -0,0 +1 @@
.osc

View File

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

View 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
View File

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

125
python-berkeleydb.changes Normal file
View 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
View 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