summaryrefslogtreecommitdiff
path: root/dev-python/pexpect
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2025-05-11 06:59:09 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2025-05-11 06:59:09 +0000
commitbcb42b6d8524e860c5ba24dc09c897cd89ca4a35 (patch)
tree01e615b5810ce103da32e5eaa356ca994319b04d /dev-python/pexpect
parent03038b30c85963a154098a63076d2cda0cc79e9f (diff)
downloadbaldeagleos-repo-bcb42b6d8524e860c5ba24dc09c897cd89ca4a35.tar.gz
baldeagleos-repo-bcb42b6d8524e860c5ba24dc09c897cd89ca4a35.tar.xz
baldeagleos-repo-bcb42b6d8524e860c5ba24dc09c897cd89ca4a35.zip
Adding metadata
Diffstat (limited to 'dev-python/pexpect')
-rw-r--r--dev-python/pexpect/files/pexpect-4.9.0-py314.patch107
-rw-r--r--dev-python/pexpect/pexpect-4.9.0.ebuild2
2 files changed, 109 insertions, 0 deletions
diff --git a/dev-python/pexpect/files/pexpect-4.9.0-py314.patch b/dev-python/pexpect/files/pexpect-4.9.0-py314.patch
new file mode 100644
index 000000000000..a7d1f8f83593
--- /dev/null
+++ b/dev-python/pexpect/files/pexpect-4.9.0-py314.patch
@@ -0,0 +1,107 @@
+https://github.com/pexpect/pexpect/commit/456bc10d94b57e254568e7ea9a8b3cffb856ebff
+
+From 456bc10d94b57e254568e7ea9a8b3cffb856ebff Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz>
+Date: Fri, 22 Nov 2024 16:41:55 +0100
+Subject: [PATCH] Tests: Avoid the multiprocessing forkserver method
+
+Fixes https://github.com/pexpect/pexpect/issues/807
+---
+ tests/test_expect.py | 12 ++++++++++--
+ tests/test_socket.py | 24 ++++++++++++++++--------
+ 2 files changed, 26 insertions(+), 10 deletions(-)
+
+diff --git a/tests/test_expect.py b/tests/test_expect.py
+index c16e0551..fb1e30e2 100755
+--- a/tests/test_expect.py
++++ b/tests/test_expect.py
+@@ -33,6 +33,14 @@
+
+ PY3 = bool(sys.version_info.major >= 3)
+
++# Python 3.14 changed the non-macOS POSIX default to forkserver
++# but the code in this module does not work with it
++# See https://github.com/python/cpython/issues/125714
++if multiprocessing.get_start_method() == 'forkserver':
++ mp_context = multiprocessing.get_context(method='fork')
++else:
++ mp_context = multiprocessing.get_context()
++
+ # Many of these test cases blindly assume that sequential directory
+ # listings of the /bin directory will yield the same results.
+ # This may not be true, but seems adequate for testing now.
+@@ -682,7 +690,7 @@ def test_stdin_closed(self):
+ '''
+ Ensure pexpect continues to operate even when stdin is closed
+ '''
+- class Closed_stdin_proc(multiprocessing.Process):
++ class Closed_stdin_proc(mp_context.Process):
+ def run(self):
+ sys.__stdin__.close()
+ cat = pexpect.spawn('cat')
+@@ -698,7 +706,7 @@ def test_stdin_stdout_closed(self):
+ '''
+ Ensure pexpect continues to operate even when stdin and stdout is closed
+ '''
+- class Closed_stdin_stdout_proc(multiprocessing.Process):
++ class Closed_stdin_stdout_proc(mp_context.Process):
+ def run(self):
+ sys.__stdin__.close()
+ sys.__stdout__.close()
+diff --git a/tests/test_socket.py b/tests/test_socket.py
+index b801b00a..6521d368 100644
+--- a/tests/test_socket.py
++++ b/tests/test_socket.py
+@@ -29,6 +29,14 @@
+ import time
+ import errno
+
++# Python 3.14 changed the non-macOS POSIX default to forkserver
++# but the code in this module does not work with it
++# See https://github.com/python/cpython/issues/125714
++if multiprocessing.get_start_method() == 'forkserver':
++ mp_context = multiprocessing.get_context(method='fork')
++else:
++ mp_context = multiprocessing.get_context()
++
+
+ class SocketServerError(Exception):
+ pass
+@@ -83,8 +91,8 @@ def setUp(self):
+ self.prompt3 = b'Press X to exit:'
+ self.enter = b'\r\n'
+ self.exit = b'X\r\n'
+- self.server_up = multiprocessing.Event()
+- self.server_process = multiprocessing.Process(target=self.socket_server, args=(self.server_up,))
++ self.server_up = mp_context.Event()
++ self.server_process = mp_context.Process(target=self.socket_server, args=(self.server_up,))
+ self.server_process.daemon = True
+ self.server_process.start()
+ counter = 0
+@@ -189,9 +197,9 @@ def test_timeout(self):
+ session.expect(b'Bogus response')
+
+ def test_interrupt(self):
+- timed_out = multiprocessing.Event()
+- all_read = multiprocessing.Event()
+- test_proc = multiprocessing.Process(target=self.socket_fn, args=(timed_out, all_read))
++ timed_out = mp_context.Event()
++ all_read = mp_context.Event()
++ test_proc = mp_context.Process(target=self.socket_fn, args=(timed_out, all_read))
+ test_proc.daemon = True
+ test_proc.start()
+ while not all_read.is_set():
+@@ -203,9 +211,9 @@ def test_interrupt(self):
+ self.assertEqual(test_proc.exitcode, errno.ETIMEDOUT)
+
+ def test_multiple_interrupts(self):
+- timed_out = multiprocessing.Event()
+- all_read = multiprocessing.Event()
+- test_proc = multiprocessing.Process(target=self.socket_fn, args=(timed_out, all_read))
++ timed_out = mp_context.Event()
++ all_read = mp_context.Event()
++ test_proc = mp_context.Process(target=self.socket_fn, args=(timed_out, all_read))
+ test_proc.daemon = True
+ test_proc.start()
+ while not all_read.is_set():
+
diff --git a/dev-python/pexpect/pexpect-4.9.0.ebuild b/dev-python/pexpect/pexpect-4.9.0.ebuild
index 9fcbc6b945d3..4c6fa32b4607 100644
--- a/dev-python/pexpect/pexpect-4.9.0.ebuild
+++ b/dev-python/pexpect/pexpect-4.9.0.ebuild
@@ -32,6 +32,8 @@ distutils_enable_sphinx doc \
PATCHES=(
# https://github.com/pexpect/pexpect/pull/794
"${FILESDIR}/${P}-py313.patch"
+ # https://github.com/pexpect/pexpect/pull/808
+ "${FILESDIR}/${P}-py314.patch"
)
src_test() {