commit 1b873d8ec1af48a4d6f2be43fb3d7ee642c101d7 Author: Adrian Schröter Date: Tue Oct 10 10:27:03 2023 +0200 Sync from SUSE:ALP:Source:Standard:1.0 python-greenlet revision a72cdfd2cc5b459304e8e89474807411 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..fecc750 --- /dev/null +++ b/.gitattributes @@ -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 diff --git a/greenlet-3.0.0.tar.gz b/greenlet-3.0.0.tar.gz new file mode 100644 index 0000000..ba10737 --- /dev/null +++ b/greenlet-3.0.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:19834e3f91f485442adc1ee440171ec5d9a4840a1f7bd5ed97833544719ce10b +size 174704 diff --git a/python-greenlet-rpmlintrc b/python-greenlet-rpmlintrc new file mode 100644 index 0000000..e9444b2 --- /dev/null +++ b/python-greenlet-rpmlintrc @@ -0,0 +1 @@ +addFilter('devel-file-in-non-devel-package .*/greenlet/.*') diff --git a/python-greenlet.changes b/python-greenlet.changes new file mode 100644 index 0000000..f69fca6 --- /dev/null +++ b/python-greenlet.changes @@ -0,0 +1,436 @@ +------------------------------------------------------------------- +Wed Oct 4 06:25:18 UTC 2023 - Daniel Garcia + +- 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 + +- 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 + `_ from Khem + Raj. + * Add initial support for Python 3.12. See `issue + `_ and `PR + `_; 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 + `_. + * Require a compiler that supports C++11. + +------------------------------------------------------------------- +Thu May 4 14:37:30 UTC 2023 - Dirk Müller + +- 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 + +- add sle15_python_module_pythons (jsc#PED-68) + +------------------------------------------------------------------- +Thu Apr 13 22:41:39 UTC 2023 - Matej Cepl + +- Make calling of %{sle15modernpython} optional. + +------------------------------------------------------------------- +Thu Jan 5 07:41:02 UTC 2023 - Daniel Garcia + +- 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 + +- update to 1.1.3: + * Add support for Python 3.11. + +------------------------------------------------------------------- +Sat Oct 16 19:07:41 UTC 2021 - Dirk Müller + +- 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 + +- 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 + +- 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 + +- update to 0.4.17: + - Support for PEP 567 ContextVars + +------------------------------------------------------------------- +Mon Jun 8 19:32:54 UTC 2020 - Dirk Mueller + +- 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 + +- 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) + diff --git a/python-greenlet.spec b/python-greenlet.spec new file mode 100644 index 0000000..d2c83cf --- /dev/null +++ b/python-greenlet.spec @@ -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