CVS commit: pkgsrc/devel/py-greenlet

"Adam Ciarcinski" <[email protected]> Fri, 7 Aug 2026 18:51:43 +0000
Newsgroups gmane.os.netbsd.devel.pkgsrc.cvs
Message-ID <[email protected]>
Module Name:	pkgsrc
Committed By:	adam
Date:		Fri Aug  7 18:51:43 UTC 2026

Modified Files:
	pkgsrc/devel/py-greenlet: Makefile PLIST distinfo

Log Message:
py-greenlet: updated to 3.5.4

3.5.4 (2026-07-22)

- Fix a crash (segfault) on free-threaded builds of Python 3.14 and
  later when the garbage collector runs while a greenlet that was
  started from a non-empty C-stack-reference state is active.
  See `issue 515
  <https://github.com/python-greenlet/greenlet/issues/515>`_.
  Thanks to ddorian and Kumar Aditya.

- Fix a potential use-after-free on free-threaded builds of Python 3.14
  and later when the garbage collector runs while a greenlet is
  suspended holding a ``_PyCStackRef`` (for example, mid attribute
  resolution). See
  `issue 515 <https://github.com/python-greenlet/greenlet/issues/515>`_.
  Thanks to ddorian and Kumar Aditya.

- Fix a deadlock on free-threaded builds when a greenlet switch happened
  while a ``PyCriticalSection`` was held -- for example inside asyncio's
  ``Task.__step``, which holds one on the running task for the duration of
  the step. See `PR 519 <https://github.com/python-greenlet/greenlet/pull/519/>`.
  Thanks to ddorian and Kumar Aditya.

.. note::
    Binary 3.15 wheels are now built with Python 3.15b4. These may not
    be compatible with earlier or later versions of 3.15. Binary
    3.15 wheels of greenlet from previous releases (e.g., 3.5.3)
    may not be compatible with Python 3.15b4.


To generate a diff of this commit:
cvs rdiff -u -r1.43 -r1.44 pkgsrc/devel/py-greenlet/Makefile
cvs rdiff -u -r1.10 -r1.11 pkgsrc/devel/py-greenlet/PLIST
cvs rdiff -u -r1.41 -r1.42 pkgsrc/devel/py-greenlet/distinfo

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
(unnamed) (text/x-diff, 3.5 KB)
Modified files:

Index: pkgsrc/devel/py-greenlet/Makefile
diff -u pkgsrc/devel/py-greenlet/Makefile:1.43 pkgsrc/devel/py-greenlet/Makefile:1.44
--- pkgsrc/devel/py-greenlet/Makefile:1.43	Mon Jun 29 05:29:34 2026
+++ pkgsrc/devel/py-greenlet/Makefile	Fri Aug  7 18:51:43 2026
@@ -1,6 +1,6 @@
-# $NetBSD: Makefile,v 1.43 2026/06/29 05:29:34 adam Exp $
+# $NetBSD: Makefile,v 1.44 2026/08/07 18:51:43 adam Exp $
 
-DISTNAME=	greenlet-3.5.3
+DISTNAME=	greenlet-3.5.4
 PKGNAME=	${PYPKGPREFIX}-${DISTNAME}
 CATEGORIES=	devel python
 MASTER_SITES=	${MASTER_SITE_PYPI:=g/greenlet/}

Index: pkgsrc/devel/py-greenlet/PLIST
diff -u pkgsrc/devel/py-greenlet/PLIST:1.10 pkgsrc/devel/py-greenlet/PLIST:1.11
--- pkgsrc/devel/py-greenlet/PLIST:1.10	Mon Feb 23 15:02:57 2026
+++ pkgsrc/devel/py-greenlet/PLIST	Fri Aug  7 18:51:43 2026
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.10 2026/02/23 15:02:57 adam Exp $
+@comment $NetBSD: PLIST,v 1.11 2026/08/07 18:51:43 adam Exp $
 ${PYINC}/greenlet/greenlet.h
 ${PYSITELIB}/${WHEEL_INFODIR}/METADATA
 ${PYSITELIB}/${WHEEL_INFODIR}/RECORD
@@ -78,6 +78,9 @@ ${PYSITELIB}/greenlet/tests/_test_extens
 ${PYSITELIB}/greenlet/tests/_test_extension.so
 ${PYSITELIB}/greenlet/tests/_test_extension_cpp.cpp
 ${PYSITELIB}/greenlet/tests/_test_extension_cpp.so
+${PYSITELIB}/greenlet/tests/fail_c_stack_refs_suspended_gc.py
+${PYSITELIB}/greenlet/tests/fail_c_stack_refs_suspended_gc.pyc
+${PYSITELIB}/greenlet/tests/fail_c_stack_refs_suspended_gc.pyo
 ${PYSITELIB}/greenlet/tests/fail_clearing_run_switches.py
 ${PYSITELIB}/greenlet/tests/fail_clearing_run_switches.pyc
 ${PYSITELIB}/greenlet/tests/fail_clearing_run_switches.pyo
@@ -87,9 +90,15 @@ ${PYSITELIB}/greenlet/tests/fail_cpp_exc
 ${PYSITELIB}/greenlet/tests/fail_initialstub_already_started.py
 ${PYSITELIB}/greenlet/tests/fail_initialstub_already_started.pyc
 ${PYSITELIB}/greenlet/tests/fail_initialstub_already_started.pyo
+${PYSITELIB}/greenlet/tests/fail_issue_515_freethread_gc.py
+${PYSITELIB}/greenlet/tests/fail_issue_515_freethread_gc.pyc
+${PYSITELIB}/greenlet/tests/fail_issue_515_freethread_gc.pyo
 ${PYSITELIB}/greenlet/tests/fail_slp_switch.py
 ${PYSITELIB}/greenlet/tests/fail_slp_switch.pyc
 ${PYSITELIB}/greenlet/tests/fail_slp_switch.pyo
+${PYSITELIB}/greenlet/tests/fail_switch_critical_section.py
+${PYSITELIB}/greenlet/tests/fail_switch_critical_section.pyc
+${PYSITELIB}/greenlet/tests/fail_switch_critical_section.pyo
 ${PYSITELIB}/greenlet/tests/fail_switch_three_greenlets.py
 ${PYSITELIB}/greenlet/tests/fail_switch_three_greenlets.pyc
 ${PYSITELIB}/greenlet/tests/fail_switch_three_greenlets.pyo

Index: pkgsrc/devel/py-greenlet/distinfo
diff -u pkgsrc/devel/py-greenlet/distinfo:1.41 pkgsrc/devel/py-greenlet/distinfo:1.42
--- pkgsrc/devel/py-greenlet/distinfo:1.41	Mon Jun 29 05:29:34 2026
+++ pkgsrc/devel/py-greenlet/distinfo	Fri Aug  7 18:51:43 2026
@@ -1,5 +1,5 @@
-$NetBSD: distinfo,v 1.41 2026/06/29 05:29:34 adam Exp $
+$NetBSD: distinfo,v 1.42 2026/08/07 18:51:43 adam Exp $
 
-BLAKE2s (greenlet-3.5.3.tar.gz) = b80be61d2e5422f596dcf11545338977754c066cfa9dc68bc2773ad90e4ae64a
-SHA512 (greenlet-3.5.3.tar.gz) = a6c2d188c0edc71e3820baa43f130b87d902c9b4dcc4e1f8bc627c0198266d088d6e9a635ff5c1ad939ee5ac019704c5abd7ecdd73f6e54bf08ccb86518b7fed
-Size (greenlet-3.5.3.tar.gz) = 200270 bytes
+BLAKE2s (greenlet-3.5.4.tar.gz) = b7beeb148f35087a294166592879c1c9c77303ebdad8ad416ff87d18526c8fc0
+SHA512 (greenlet-3.5.4.tar.gz) = c7681567f21533eff0fbc235c212f036b8547c05f846d599f8942fa37b2c15e6cff45bc4aa5986d885aa15158a1f6cd8a628bb58056351364edb106fef27a7e0
+Size (greenlet-3.5.4.tar.gz) = 206538 bytes