Sync from SUSE:SLFO:Main python-greenlet revision a72cdfd2cc5b459304e8e89474807411

This commit is contained in:
Adrian Schröter 2024-05-03 20:52:50 +02:00
commit d9f784f121
5 changed files with 550 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

BIN
greenlet-3.0.0.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1 @@
addFilter('devel-file-in-non-devel-package .*/greenlet/.*')

436
python-greenlet.changes Normal file
View File

@ -0,0 +1,436 @@
-------------------------------------------------------------------
Wed Oct 4 06:25:18 UTC 2023 - Daniel Garcia <daniel.garcia@suse.com>
- Update to 3.0.0:
* No changes from 3.0rc3 aside from the version number.
- Ignore some slow and flaky tests
-------------------------------------------------------------------
Tue Sep 19 22:04:57 UTC 2023 - Dirk Müller <dmueller@suse.com>
- update to 3.0.0~rc3:
* Fix an intermittent error during process termination on some
platforms (GCC/Linux/libstdc++).
* Fix some potential bugs (assertion failures and memory leaks) in
previously-untested error handling code. In some cases, this means
that the process will execute a controlled ``abort()`` after severe
trouble when previously the process might have continued for some
time with a corrupt state. It is unlikely those errors occurred in
practice.
* Fix some assertion errors and potential bugs with re-entrant
switches.
* Fix a potential crash when certain compilers compile greenlet with
high levels of optimization. The symptom would be that switching to
a greenlet for the first time immediately crashes.
* Fix a potential crash when the callable object passed to the
greenlet constructor (or set as the ``greenlet.run`` attribute) has
a destructor attached to it that switches. Typically, triggering
this issue would require an unlikely subclass of
``greenlet.greenlet``.
* Python 3.11+: Fix rare switching errors that could occur when a
garbage collection was triggered during the middle of a switch, and
Python-level code in ``__del__`` or weakref callbacks switched to a
different greenlet and ultimately switched back to the original
greenlet. This often manifested as a ``SystemError``: "switch
returned NULL without an exception set."
* Python 3.12: Fix walking the frame stack of suspended greenlets.
Previously accessing ``glet.gr_frame.f_back`` would crash due to
`changes in CPython's undocumented internal frame handling
* Make the platform-specific low-level C/assembly snippets stop using
the ``register`` storage class. Newer versions of standards remove
this storage class, and it has been generally ignored by many
compilers for some time. See `PR 347
<https://github.com/python-greenlet/greenlet/pull/347>`_ from Khem
Raj.
* Add initial support for Python 3.12. See `issue
<https://github.com/python-greenlet/greenlet/issues/323>`_ and `PR
<https://github.com/python-greenlet/greenlet/pull/327>`_; thanks go
to (at least) Michael Droettboom, Andreas Motl, Thomas A Caswell,
raphaelauv, Hugo van Kemenade, Mark Shannon, and Petr Viktorin.
* Remove support for end-of-life Python versions, including Python
2.7, Python 3.5 and Python 3.6.
* Require a compiler that supports ``noinline`` directives. See
`issue 271
<https://github.com/python-greenlet/greenlet/issues/266>`_.
* Require a compiler that supports C++11.
-------------------------------------------------------------------
Thu May 4 14:37:30 UTC 2023 - Dirk Müller <dmueller@suse.com>
- 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
and SunStudio we use __thread, while for older MSVC we use
__declspec(thread).
* This version of greenlet is known to compile and pass tests on CPython
3.11.0a4. Earlier or later 3.11 releases may or may not work. See PR 280.
Special thanks to Brandt Bucher and the CPython developers.
* Fix several leaks that could occur when using greenlets from multiple
threads. For example, it is no longer necessary to call getcurrent()
before exiting a thread to allow its main greenlet to be cleaned up. See
issue 252.
* Fix the C API PyGreenlet_Throw to perform the same error checking that the
Python API greenlet.throw() does. Previously, it did no error checking.
- drop sphinx-6.0.0.patch (upstream)
-------------------------------------------------------------------
Fri Apr 21 12:25:51 UTC 2023 - Dirk Müller <dmueller@suse.com>
- add sle15_python_module_pythons (jsc#PED-68)
-------------------------------------------------------------------
Thu Apr 13 22:41:39 UTC 2023 - Matej Cepl <mcepl@suse.com>
- Make calling of %{sle15modernpython} optional.
-------------------------------------------------------------------
Thu Jan 5 07:41:02 UTC 2023 - Daniel Garcia <daniel.garcia@suse.com>
- Add sphinx-6.0.0.patch to make it work with new version of Sphinx.
-------------------------------------------------------------------
Mon Sep 12 20:13:22 UTC 2022 - Dirk Müller <dmueller@suse.com>
- update to 1.1.3:
* Add support for Python 3.11.
-------------------------------------------------------------------
Sat Oct 16 19:07:41 UTC 2021 - Dirk Müller <dmueller@suse.com>
- update to 1.1.2:
- Fix a potential crash due to a reference counting error when Python
subclasses of ``greenlet.greenlet`` were deallocated. The crash
became more common on Python 3.10; on earlier versions, silent
memory corruption could result.
- Fix a leak of a list object when the last reference to a greenlet
was deleted from some other thread than the one to which it
belonged. For this to work correctly, you must call a greenlet API
like ``getcurrent()`` before the thread owning the greenlet exits:
this is a long-standing limitation that can also lead to the leak of
a thread's main greenlet if not called; we hope to lift this
limitation. Note that in some cases this may also fix leaks of
greenlet objects themselves. See `issue 251
- Python 3.10: Tracing or profiling into a spawned greenlet didn't
work as expected. See `issue 256
-------------------------------------------------------------------
Mon Aug 30 11:46:34 UTC 2021 - pgajdos@suse.com
- %check: use %pyunittest rpm macro
-------------------------------------------------------------------
Sun Jun 6 12:37:38 UTC 2021 - Dirk Müller <dmueller@suse.com>
- update to 1.1.0:
* Add support for Python 3.10. Pre-built binary wheels for 3.10 are
not currently available for all platforms. The greenlet ABI is
different on Python 3.10 from all previous versions, but as 3.10 was
never supported before, and the ABI has not changed on other Python
versions, this is not considered a reason to change greenlet's major
version.
-------------------------------------------------------------------
Mon Feb 1 22:13:52 UTC 2021 - Dirk Müller <dmueller@suse.com>
- update to 1.0.0:
* Require setuptools to build from source.
* Stop asking setuptools to build both .tar.gz and .zip
sdists. PyPI has standardized on .tar.gz for all platforms.
* Publish the change log to https://greenlet.readthedocs.io
-------------------------------------------------------------------
Mon Sep 28 10:54:19 UTC 2020 - Dirk Mueller <dmueller@suse.com>
- update to 0.4.17:
- Support for PEP 567 ContextVars
-------------------------------------------------------------------
Mon Jun 8 19:32:54 UTC 2020 - Dirk Mueller <dmueller@suse.com>
- update to 0.4.16:
- Support for DEC Alpha architecture
- Support for Python 3.9
- Support for Python 3.10a0
-------------------------------------------------------------------
Sun Sep 16 15:31:38 UTC 2018 - Arun Persaud <arun@gmx.de>
- specfile:
* update copyright year
* be more specific in %files section
- update to version 0.4.15:
* Support for RISC-V architecture
* Workaround a gcc bug on ppc64
-------------------------------------------------------------------
Tue Aug 7 15:26:22 UTC 2018 - toddrme2178@gmail.com
- Update to 0.4.14
* Support for C-SKY architecture
* Fixed support for ppc64 ABI
* Fixed support for Python 3.7
- Remove upstream-included greenlet-ppc64le.patch
-------------------------------------------------------------------
Fri Feb 2 13:34:46 UTC 2018 - tchvatal@suse.com
- Add patch to fix build on ppc64le to not clobber r2 register:
* greenlet-ppc64le.patch
-------------------------------------------------------------------
Fri Feb 2 13:32:25 UTC 2018 - tchvatal@suse.com
- Version update to 0.4.13:
* Support for Python 3.7
* Support for MinGW x64
-------------------------------------------------------------------
Wed Apr 19 17:46:25 UTC 2017 - toddrme2178@gmail.com
- Update to 0.4.12
* Stop using trashcan api
- Update to 0.4.11
* Fixes for aarch64 architecture
- Implement singlespec version
-------------------------------------------------------------------
Fri Sep 2 21:10:46 UTC 2016 - tbechtold@suse.com
- update to 4.10.0:
- Added missing files to manifest
- Added workaround for ppc32 on Linux
- Start building binary manylinux1 wheels
- Use pypi.io as Source url
-------------------------------------------------------------------
Sat Apr 16 21:29:08 UTC 2016 - t.gruner@katodev.de
- update to 0.4.9
- remove ppc64le-support.patch (is part of this version now)
-------------------------------------------------------------------
Mon Jun 22 14:34:33 UTC 2015 - tbechtold@suse.com
- update to 0.4.7:
- Added a missing workaround for `return 0` on mips
- Restore compatibility with Python 2.5
- Fixed stack switching on sparc
-------------------------------------------------------------------
Wed May 6 12:29:51 UTC 2015 - benoit.monin@gmx.fr
- update to version 0.4.6:
* Expose `_stack_saved` property on greenlet objects, it may be
used to introspect the amount of memory used by a saved stack,
but the API is subject to change in the future
* Added a workaround for `return 0` compiler optimizations on all
architectures
* C API typo fixes
- add -fno-strict-aliasing to CFLAGS to fix compiler warnings
- remove hidden file .buildinfo from html documentation
-------------------------------------------------------------------
Tue Nov 18 13:57:34 UTC 2014 - toddrme2178@gmail.com
- Update to 0.4.5
- Fixed several bugs in greenlet C API
- Fixed a bug in multi-threaded applications, which manifested itself
with spurious "cannot switch to a different thread" exceptions
- Fixed some crashes on arm and mips architectures
-------------------------------------------------------------------
Thu Nov 6 04:56:09 UTC 2014 - tserong@suse.com
- Include LICENSE and LICENSE.PSF in package
-------------------------------------------------------------------
Mon Nov 3 22:19:05 UTC 2014 - dvaleev@suse.com
- build with -fno-tree-dominator-opts (boo#902146)
-------------------------------------------------------------------
Fri Sep 12 21:22:30 UTC 2014 - dmueller@suse.com
- update to 0.4.4:
- Fixed PyGreenlet_SetParent signature, thanks to BoonsNaibot
- Fixed 64-bit Windows builds depending on wrong runtime dll
-------------------------------------------------------------------
Fri Aug 15 11:58:41 UTC 2014 - mcihar@suse.cz
- Update to version 0.4.3:
+ Better slp_switch performance on SPARC
+ Drop support for Python 2.3
+ Fix trashcan assertions on debug builds of Python
+ Remove deprecated -fno-tree-dominator-opts compiler switch
+ Enable switch code for SunStudio on 32-bit SunOS
+ Support for abc abstract methods in greenlet subclasses
+ Support custom directories for tests
+ Document switch tracing support
-------------------------------------------------------------------
Fri Jan 17 15:26:02 UTC 2014 - speilicke@suse.com
- Update to version 0.4.2:
+ Add .travis.yml
+ Fix 'err' may be used uninitialized in this function
+ Check _MSC_VER for msvc specific code
+ Fix slp_switch on SPARC for multi-threaded environments
+ Add support for m68k
-------------------------------------------------------------------
Tue Dec 10 12:33:07 UTC 2013 - uweigand@de.ibm.com
- ppc64le-support.patch: Support powerpc64le-linux (ELFv2 ABI).
Save/restore vector and floating-point registers as well on ppc.
-------------------------------------------------------------------
Thu Oct 24 11:06:14 UTC 2013 - speilicke@suse.com
- Require python-setuptools instead of distribute (upstreams merged)
-------------------------------------------------------------------
Thu Aug 8 10:54:47 UTC 2013 - dvaleev@suse.com
- run tests we optflags. Stuff got compiled in %check again.
-------------------------------------------------------------------
Tue Aug 6 12:34:48 UTC 2013 - speilicke@suse.com
- Drop python-greenlet-aarch64-support.diff
-------------------------------------------------------------------
Mon Jun 10 12:35:26 UTC 2013 - dmueller@suse.com
- update to 0.4.1:
* fix segfaults when using gcc 4.8 on amd64/x86 unix
* try to disable certain gcc 4.8 optimizations that make greenlet
crash
* Fix greenlet on aarch64 with gcc 4.8
* workaround segfault on SunOS/sun4v
* Add support for Aarch64
* Add support for x32 psABI on x86_64
* Changed memory constraints for assembly macro for PPC Linux
platforms.
- remove python-greenlet-aarch64-support.diff
-------------------------------------------------------------------
Mon Apr 8 11:40:21 UTC 2013 - matz@suse.de
- Add python-greenlet-aarch64-support.diff, for, well, aarch64
support.
-------------------------------------------------------------------
Wed Jan 2 18:01:09 UTC 2013 - toddrme2178@gmail.com
- Fix building on SLES
-------------------------------------------------------------------
Wed Dec 19 15:52:27 UTC 2012 - saschpe@suse.de
- The devel subpackage contains only headers and thus is noarch
-------------------------------------------------------------------
Fri Nov 23 12:05:16 UTC 2012 - saschpe@suse.de
- Update to version 0.4.0:
+ Greenlet has an instance dictionary now, which means it can be
used for implementing greenlet local storage, etc. However, this
might introduce incompatibility if subclasses have __dict__ in their
__slots__. Classes like that will fail, because greenlet already
has __dict__ out of the box.
+ Greenlet no longer leaks memory after thread termination, as long as
terminated thread has no running greenlets left at the time.
+ Add support for debian sparc and openbsd5-sparc64
+ Add support for ppc64 linux
+ Don't allow greenlets to be copied with copy.copy/deepcopy
+ Fix arm32/thumb support
+ Restore greenlet's parent after kill
+ Add experimental greenlet tracing
- Changes from version 0.3.4:
+ Use plain distutils for install command, this fixes installation of
the greenlet.h header.
+ Enhanced arm32 support
+ Fix support for Linux/S390 zSeries
+ Workaround compiler bug on RHEL 3 / CentOS 3
- Changes from version 0.3.3:
+ Use sphinx to build documentation and publish it on greenlet.rtfd.org
+ Prevent segfaults on openbsd 4/i386
+ Workaround gcc-4.0 not allowing to clobber rbx
+ Enhance test infrastructure
+ Fix possible compilation problems when including greenlet.h in C++ mode
+ Make the greenlet module work on x64 windows
+ Add a test for greenlet C++ exceptions
+ Fix compilation on Solaris with SunStudio
- Changes from version 0.3.2:
+ Fix various crashes with recent gcc versions and VC90
+ Try to fix stack save/restore on arm32
+ Store and restore the threadstate on exceptions like pypy/stackless do
+ GreenletExit is now based on BaseException on Python >= 2.5
+ Switch to using PyCapsule for Python 2.7 and 3.1
+ Port for AIX on PowerPC
+ Fix the sparc/solaris header
+ Improved build dependencies patch from flub.
+ Can't pass parent=None to greenlet.greenlet() (fixes #21)
+ Rudimentary gc support (only non-live greenlets are garbage collected though)
- Dropped the following patches (merged upstream):
+ get-rid-of-ts_origin.patch
+ i686-register-fixes.patch
+ ppc-support.patch
+ ppc64-support.patch
- Build HTML documentation
-------------------------------------------------------------------
Tue Jul 3 09:53:32 UTC 2012 - dvaleev@suse.com
- add ppc64 platform support
- fix ppc platform
-------------------------------------------------------------------
Fri Dec 23 13:20:47 UTC 2011 - idonmez@suse.com
- Add upstream commits 25bf29f4d3b7 and 2d5b17472757 (bnc#738431)
- Implement %check
-------------------------------------------------------------------
Wed Sep 21 09:35:58 UTC 2011 - saschpe@suse.de
- Spec file cleanup:
* BuildRequire modern python-distribute instead of python-setuptools
* No need for changing executable bits for benchmarks
* Use SUSE version checks around specific macros
* Only require %{name} = %{version} in devel package
-------------------------------------------------------------------
Fri Nov 26 14:44:42 UTC 2010 - seife+obs@b1-systems.com
- initial package (version 0.3.1)

87
python-greenlet.spec Normal file
View File

@ -0,0 +1,87 @@
#
# spec file for package python-greenlet
#
# Copyright (c) 2023 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/
#
%{?sle15_python_module_pythons}
Name: python-greenlet
Version: 3.0.0
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}
BuildRequires: %{python_module objgraph}
BuildRequires: %{python_module pip}
BuildRequires: %{python_module psutil}
BuildRequires: %{python_module wheel}
BuildRequires: c++_compiler
BuildRequires: fdupes
BuildRequires: python-rpm-macros
BuildRequires: python3-Sphinx
%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}
%build
export CFLAGS="%{optflags} -fno-tree-dominator-opts -fno-strict-aliasing"
%pyproject_wheel
export PYTHONPATH=$PWD/src
cd docs && make html && rm _build/html/.buildinfo
%install
%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
%doc docs/_build/html/
%license LICENSE*
%{python_sitearch}/greenlet*
%files %{python_files devel}
%doc AUTHORS
%license LICENSE*
%{_includedir}/python%{python_version}*/greenlet/
%changelog