python314: 3.14.0a4 -> 3.14.0a5

https://docs.python.org/3.14/whatsnew/changelog.html#python-3-14-0-alpha-5

Changed files
+3 -50
pkgs
development
interpreters
-45
pkgs/development/interpreters/python/cpython/3.12/CVE-2024-12254.patch
···
-
From e991ac8f2037d78140e417cc9a9486223eb3e786 Mon Sep 17 00:00:00 2001
-
From: "J. Nick Koston" <nick@koston.org>
-
Date: Thu, 5 Dec 2024 22:33:03 -0600
-
Subject: [PATCH] gh-127655: Ensure `_SelectorSocketTransport.writelines`
-
pauses the protocol if needed (#127656)
-
-
Ensure `_SelectorSocketTransport.writelines` pauses the protocol if it reaches the high water mark as needed.
-
-
Co-authored-by: Kumar Aditya <kumaraditya@python.org>
-
-
diff --git a/Lib/asyncio/selector_events.py b/Lib/asyncio/selector_events.py
-
index f94bf10b4225e7..f1ab9b12d69a5d 100644
-
--- a/Lib/asyncio/selector_events.py
-
+++ b/Lib/asyncio/selector_events.py
-
@@ -1175,6 +1175,7 @@ def writelines(self, list_of_data):
-
# If the entire buffer couldn't be written, register a write handler
-
if self._buffer:
-
self._loop._add_writer(self._sock_fd, self._write_ready)
-
+ self._maybe_pause_protocol()
-
-
def can_write_eof(self):
-
return True
-
diff --git a/Lib/test/test_asyncio/test_selector_events.py b/Lib/test/test_asyncio/test_selector_events.py
-
index aaeda33dd0c677..efca30f37414f9 100644
-
--- a/Lib/test/test_asyncio/test_selector_events.py
-
+++ b/Lib/test/test_asyncio/test_selector_events.py
-
@@ -805,6 +805,18 @@ def test_writelines_send_partial(self):
-
self.assertTrue(self.sock.send.called)
-
self.assertTrue(self.loop.writers)
-
-
+ def test_writelines_pauses_protocol(self):
-
+ data = memoryview(b'data')
-
+ self.sock.send.return_value = 2
-
+ self.sock.send.fileno.return_value = 7
-
+
-
+ transport = self.socket_transport()
-
+ transport._high_water = 1
-
+ transport.writelines([data])
-
+ self.assertTrue(self.protocol.pause_writing.called)
-
+ self.assertTrue(self.sock.send.called)
-
+ self.assertTrue(self.loop.writers)
-
+
-
@unittest.skipUnless(selector_events._HAS_SENDMSG, 'no sendmsg')
-
def test_write_sendmsg_full(self):
-
data = memoryview(b'data')
+1 -3
pkgs/development/interpreters/python/cpython/default.nix
···
# (since it will do a futile invocation of gcc (!) to find
# libuuid, slowing down program startup a lot).
noldconfigPatch
-
] ++ optionals (!isPy312 && !isPy313) [
+
] ++ optionals (pythonOlder "3.12") [
# https://www.cve.org/CVERecord?id=CVE-2025-0938
./CVE-2025-0938.patch
] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform && stdenv.hostPlatform.isFreeBSD) [
···
] ++ optionals (pythonOlder "3.12") [
# https://github.com/python/cpython/issues/90656
./loongarch-support.patch
-
] ++ optionals isPy314 [
-
./3.12/CVE-2024-12254.patch
] ++ optionals (pythonAtLeast "3.11" && pythonOlder "3.13") [
# backport fix for https://github.com/python/cpython/issues/95855
./platform-triplet-detection.patch
+2 -2
pkgs/development/interpreters/python/default.nix
···
major = "3";
minor = "14";
patch = "0";
-
suffix = "a4";
+
suffix = "a5";
};
-
hash = "sha256-wk8HiBhzwdRgIoeVymyoyZEw4wx3PJFGPTDX6o/w5ws=";
+
hash = "sha256-dOg/Jt4eT7nu8bVkks/5JQiDS7cawT9cWAQ4zp8JNoI=";
inherit passthruFun;
};
# Minimal versions of Python (built without optional dependencies)