python-greenlet/python-greenlet.spec

101 lines
3.0 KiB
RPMSpec
Raw Normal View History

#
# spec file for package python-greenlet
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2010 B1 Systems GmbH, Vohburg, Germany.
#
# 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/
#
# Requires python-furo
%bcond_with docs
%{?sle15_python_module_pythons}
Name: python-greenlet
Version: 3.0.3
Release: 0
Summary: Lightweight in-process concurrent programming
License: MIT
Group: Development/Libraries/Python
URL: https://github.com/python-greenlet/greenlet
Source0: https://files.pythonhosted.org/packages/source/g/greenlet/greenlet-%{version}.tar.gz
Source9: python-greenlet-rpmlintrc
BuildRequires: %{python_module devel >= 3.7}
- update to 2.0.2: * Fix calling ``greenlet.settrace()`` with the same tracer object that was currently active. * Various compilation and standards conformance fixes. * Python 3.11: Fix a memory leak. See issue 328 and gevent issue 1924. - 2.0.0.post0 (2022-11-03) * Add Programming Language :: Python :: 3.11 to the PyPI classifier metadata. - 2.0.0rc5 (2022-10-31) * Linux: Fix another group of rare crashes that could occur when shutting down an interpeter running multiple threads. See issue 325. - 2.0.0rc4 (2022-10-30) * Linux: Fix a rare crash that could occur when shutting down an interpreter running multiple threads, when some of those threads are in greenlets making calls to functions that release the GIL. - 2.0.0rc1 (2022-10-27) * Deal gracefully with greenlet switches that occur while deferred deallocation of objects is happening using CPython's "trash can" mechanism. Previously, if a large nested container held items that switched greenlets during delayed deallocation, and that second greenlet also invoked the trash can, CPython's internal state could become corrupt. This was visible as an assertion error in debug builds. Now, the relevant internal state is saved and restored during greenlet switches. See also gevent issue 1909. * Rename the C API function PyGreenlet_GET_PARENT to PyGreenlet_GetParent for consistency. The old name remains available as a deprecated alias. - 2.0.0a1 (2022-01-20) * Drop support for very old versions of GCC and MSVC. Compilation now requires a compiler that either supports C++11 or has some other intrinsic way to create thread local variables; for older GCC, clang OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=68
2023-05-04 16:46:15 +02:00
BuildRequires: %{python_module objgraph}
BuildRequires: %{python_module pip}
BuildRequires: %{python_module psutil}
BuildRequires: %{python_module setuptools}
- update to 2.0.2: * Fix calling ``greenlet.settrace()`` with the same tracer object that was currently active. * Various compilation and standards conformance fixes. * Python 3.11: Fix a memory leak. See issue 328 and gevent issue 1924. - 2.0.0.post0 (2022-11-03) * Add Programming Language :: Python :: 3.11 to the PyPI classifier metadata. - 2.0.0rc5 (2022-10-31) * Linux: Fix another group of rare crashes that could occur when shutting down an interpeter running multiple threads. See issue 325. - 2.0.0rc4 (2022-10-30) * Linux: Fix a rare crash that could occur when shutting down an interpreter running multiple threads, when some of those threads are in greenlets making calls to functions that release the GIL. - 2.0.0rc1 (2022-10-27) * Deal gracefully with greenlet switches that occur while deferred deallocation of objects is happening using CPython's "trash can" mechanism. Previously, if a large nested container held items that switched greenlets during delayed deallocation, and that second greenlet also invoked the trash can, CPython's internal state could become corrupt. This was visible as an assertion error in debug builds. Now, the relevant internal state is saved and restored during greenlet switches. See also gevent issue 1909. * Rename the C API function PyGreenlet_GET_PARENT to PyGreenlet_GetParent for consistency. The old name remains available as a deprecated alias. - 2.0.0a1 (2022-01-20) * Drop support for very old versions of GCC and MSVC. Compilation now requires a compiler that either supports C++11 or has some other intrinsic way to create thread local variables; for older GCC, clang OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=68
2023-05-04 16:46:15 +02:00
BuildRequires: %{python_module wheel}
BuildRequires: c++_compiler
BuildRequires: fdupes
BuildRequires: python-rpm-macros
%if %{with docs}
BuildRequires: python3-Sphinx
BuildRequires: python3-furo
%endif
%python_subpackages
%description
The greenlet package is a spin-off of Stackless, a version of CPython
that supports micro-threads called "tasklets". Tasklets run
pseudo-concurrently (typically in a single or a few OS-level threads)
and are synchronized with data exchanges on "channels".
%package devel
Summary: C development headers for python-greenlet
Group: Development/Libraries/Python
Requires: %{name} = %{version}
BuildArch: noarch
%description devel
This package contains header files required for C modules development.
%prep
%autosetup -p1 -n greenlet-%{version}
sed -i '1{/env python/d}' src/greenlet/tests/test_version.py
%build
export CFLAGS="%{optflags} -fno-tree-dominator-opts -fno-strict-aliasing"
- update to 2.0.2: * Fix calling ``greenlet.settrace()`` with the same tracer object that was currently active. * Various compilation and standards conformance fixes. * Python 3.11: Fix a memory leak. See issue 328 and gevent issue 1924. - 2.0.0.post0 (2022-11-03) * Add Programming Language :: Python :: 3.11 to the PyPI classifier metadata. - 2.0.0rc5 (2022-10-31) * Linux: Fix another group of rare crashes that could occur when shutting down an interpeter running multiple threads. See issue 325. - 2.0.0rc4 (2022-10-30) * Linux: Fix a rare crash that could occur when shutting down an interpreter running multiple threads, when some of those threads are in greenlets making calls to functions that release the GIL. - 2.0.0rc1 (2022-10-27) * Deal gracefully with greenlet switches that occur while deferred deallocation of objects is happening using CPython's "trash can" mechanism. Previously, if a large nested container held items that switched greenlets during delayed deallocation, and that second greenlet also invoked the trash can, CPython's internal state could become corrupt. This was visible as an assertion error in debug builds. Now, the relevant internal state is saved and restored during greenlet switches. See also gevent issue 1909. * Rename the C API function PyGreenlet_GET_PARENT to PyGreenlet_GetParent for consistency. The old name remains available as a deprecated alias. - 2.0.0a1 (2022-01-20) * Drop support for very old versions of GCC and MSVC. Compilation now requires a compiler that either supports C++11 or has some other intrinsic way to create thread local variables; for older GCC, clang OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=68
2023-05-04 16:46:15 +02:00
%pyproject_wheel
%if %{with docs}
export PYTHONPATH=$PWD/src
cd docs && make html && rm _build/html/.buildinfo
%endif
%install
- update to 2.0.2: * Fix calling ``greenlet.settrace()`` with the same tracer object that was currently active. * Various compilation and standards conformance fixes. * Python 3.11: Fix a memory leak. See issue 328 and gevent issue 1924. - 2.0.0.post0 (2022-11-03) * Add Programming Language :: Python :: 3.11 to the PyPI classifier metadata. - 2.0.0rc5 (2022-10-31) * Linux: Fix another group of rare crashes that could occur when shutting down an interpeter running multiple threads. See issue 325. - 2.0.0rc4 (2022-10-30) * Linux: Fix a rare crash that could occur when shutting down an interpreter running multiple threads, when some of those threads are in greenlets making calls to functions that release the GIL. - 2.0.0rc1 (2022-10-27) * Deal gracefully with greenlet switches that occur while deferred deallocation of objects is happening using CPython's "trash can" mechanism. Previously, if a large nested container held items that switched greenlets during delayed deallocation, and that second greenlet also invoked the trash can, CPython's internal state could become corrupt. This was visible as an assertion error in debug builds. Now, the relevant internal state is saved and restored during greenlet switches. See also gevent issue 1909. * Rename the C API function PyGreenlet_GET_PARENT to PyGreenlet_GetParent for consistency. The old name remains available as a deprecated alias. - 2.0.0a1 (2022-01-20) * Drop support for very old versions of GCC and MSVC. Compilation now requires a compiler that either supports C++11 or has some other intrinsic way to create thread local variables; for older GCC, clang OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=68
2023-05-04 16:46:15 +02:00
%pyproject_install
%python_expand %fdupes %{buildroot}%{$python_sitearch}
%check
export CFLAGS="%{optflags} -fno-tree-dominator-opts -fno-strict-aliasing"
# ignore some Flaky tests
export GREENLET_MANYLINUX=1
%pyunittest_arch discover -v greenlet.tests
%files %{python_files}
%doc AUTHORS CHANGES.rst README.rst
%if %{with docs}
%doc docs/_build/html/
%endif
%license LICENSE*
%{python_sitearch}/greenlet
%{python_sitearch}/greenlet-%{version}.dist-info
%files %{python_files devel}
%doc AUTHORS
%license LICENSE*
%{_includedir}/python%{python_version}*/greenlet/
%changelog