summaryrefslogtreecommitdiff
path: root/dev-python/asyncssh
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python/asyncssh')
-rw-r--r--dev-python/asyncssh/Manifest3
-rw-r--r--dev-python/asyncssh/asyncssh-2.14.2.ebuild9
-rw-r--r--dev-python/asyncssh/files/asyncssh-2.14.2-py313.patch151
3 files changed, 158 insertions, 5 deletions
diff --git a/dev-python/asyncssh/Manifest b/dev-python/asyncssh/Manifest
index c755ca2f1f14..c4154b7ab9fc 100644
--- a/dev-python/asyncssh/Manifest
+++ b/dev-python/asyncssh/Manifest
@@ -1,3 +1,4 @@
+AUX asyncssh-2.14.2-py313.patch 4720 BLAKE2B 7bc1d71906c22efe1aa03e65b165d66a98b985d11e15f81e514696d669a99c801cab2d1683e2df041ff7b95d5811c11d4098ff8274f1c7040edfcbc9ab05157e SHA512 8f02d1acca847d5ceaa2d08f639c2bc4c862a5219ee9558d43979b85d89c5d3c7f65f761ceda0748a314c32c6e85ecd91b488ddadce5c108cc33b4b8b8fd713e
DIST asyncssh-2.14.2.tar.gz 498190 BLAKE2B 66cc538322688d0782e203eb723c7c7a196fd5da725fe95df8b31e25e35e45b86bb01cb5c46f5516475614b9cf7b8076bc3994ec77daf552e030724b0734c2d1 SHA512 76952b8837832139274fbfc4ec4aa84841c66a4eb4c1bd09fd532727287574509fb2b94b684c14d6f76add80a1fe5c8236a3412ab6a71574c203706895b23f93
-EBUILD asyncssh-2.14.2.ebuild 1499 BLAKE2B bdc7b89c00931b1c59b02cbef8e8b6e98a376f40dd7b8497a3e89337a5bc5ffd51e9d9f2963e8919410fb2528e0baa540578488ff4e358eee751df3ecb7a4a8f SHA512 7cd3d6ada72e86fd63c1e84c91a5b1361ba045545c433195f12d02d1011f63f4b50a4ecfcd937f62b8818c50a0cf680e5586c5e1edc302786062f3588056b4d7
+EBUILD asyncssh-2.14.2.ebuild 1469 BLAKE2B 7b09bfaf45778156bc1f37f5a33681ee34196b59ca447d816f681ad2fd0ec7902cde2643056b9425c594a6a80856b3e3716d6152dae8f2d8080cdc0564e8efa0 SHA512 e1e17058678b5aaa61c7fcec6c1fcd1fb61760903d86d51cff4f29806822f94c852359a3bc0a9ad55c73d0aa8a2b3b5a9789a0a9999209a38978077148df7991
MISC metadata.xml 402 BLAKE2B e4c5d013286a9519d2a2fe0807a3a92ee44bbeb3b862b81fba432a2cda5ec2531d5e1356776de401b9a1c57aaed97d172e3d293254e6e809b5b5cc8670c22489 SHA512 772970deecc78319abfff75ab660da279a92933e4d8efb39b35eb10f3d1edde117fe9b980b04a222e53674402443f48e57b91d07f7f6da395a800bc69632b364
diff --git a/dev-python/asyncssh/asyncssh-2.14.2.ebuild b/dev-python/asyncssh/asyncssh-2.14.2.ebuild
index 1ad40f7b2969..0c7015523b72 100644
--- a/dev-python/asyncssh/asyncssh-2.14.2.ebuild
+++ b/dev-python/asyncssh/asyncssh-2.14.2.ebuild
@@ -4,7 +4,7 @@
EAPI=8
DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{10..12} )
+PYTHON_COMPAT=( python3_{10..13} )
inherit distutils-r1 optfeature pypi
@@ -35,11 +35,12 @@ BDEPEND="
)
"
-EPYTEST_DESELECT=(
- # https://github.com/ronf/asyncssh/pull/578
- tests/test_process.py::_TestAsyncFileRedirection::test_stdout_aiofile
+PATCHES=(
+ # https://github.com/ronf/asyncssh/issues/616
+ "${FILESDIR}/${P}-py313.patch"
)
+EPYTEST_XDIST=1
distutils_enable_tests pytest
distutils_enable_sphinx docs
diff --git a/dev-python/asyncssh/files/asyncssh-2.14.2-py313.patch b/dev-python/asyncssh/files/asyncssh-2.14.2-py313.patch
new file mode 100644
index 000000000000..fa3752a2b516
--- /dev/null
+++ b/dev-python/asyncssh/files/asyncssh-2.14.2-py313.patch
@@ -0,0 +1,151 @@
+From 58168139adcaa4bf12448904137cd77812636b18 Mon Sep 17 00:00:00 2001
+From: Ron Frederick <ronf@timeheart.net>
+Date: Sat, 23 Dec 2023 10:25:14 -0800
+Subject: [PATCH] Guard against possible UNIX domain socket cleanup in Python
+ 3.13
+
+This commit adds guards around code which cleans up UNIX domain
+sockets, to protect against a change proposed at
+https://github.com/python/cpython/issues/111246
+which would cause the socket to clean itself up on close.
+---
+ tests/test_agent.py | 5 ++++-
+ tests/test_forward.py | 50 +++++++++++++++++++++++++++++++++----------
+ 2 files changed, 43 insertions(+), 12 deletions(-)
+
+diff --git a/tests/test_agent.py b/tests/test_agent.py
+index 28ca730..2f0b83c 100644
+--- a/tests/test_agent.py
++++ b/tests/test_agent.py
+@@ -85,7 +85,10 @@ async def stop(self):
+ self._server.close()
+ await self._server.wait_closed()
+
+- os.remove(self._path)
++ try:
++ os.remove(self._path)
++ except OSError:
++ pass
+
+
+ class _TestAgent(AsyncTestCase):
+diff --git a/tests/test_forward.py b/tests/test_forward.py
+index cae199d..4d30eda 100644
+--- a/tests/test_forward.py
++++ b/tests/test_forward.py
+@@ -651,7 +651,10 @@ async def test_forward_local_path_to_port(self):
+ async with conn.forward_local_path_to_port('local', '', 7):
+ await self._check_local_unix_connection('local')
+
+- os.remove('local')
++ try:
++ os.remove('local')
++ except OSError:
++ pass
+
+ @unittest.skipIf(sys.platform == 'win32',
+ 'skip UNIX domain socket tests on Windows')
+@@ -665,7 +668,10 @@ async def test_forward_local_path_to_port_failure(self):
+ with self.assertRaises(OSError):
+ await conn.forward_local_path_to_port('local', '', 7)
+
+- os.remove('local')
++ try:
++ os.remove('local')
++ except OSError:
++ pass
+
+ @asynctest
+ async def test_forward_local_port_pause(self):
+@@ -798,7 +804,11 @@ async def test_forward_remote_port_to_path(self):
+
+ server.close()
+ await server.wait_closed()
+- os.remove('local')
++
++ try:
++ os.remove('local')
++ except OSError:
++ pass
+
+ @asynctest
+ async def test_forward_remote_specific_port(self):
+@@ -1020,7 +1030,10 @@ async def test_unix_server(self):
+ await listener.wait_closed()
+ listener.close()
+
+- os.remove('echo')
++ try:
++ os.remove('echo')
++ except OSError:
++ pass
+
+ @asynctest
+ async def test_unix_server_open(self):
+@@ -1053,7 +1066,10 @@ async def test_unix_server_non_async(self):
+ async with conn.start_unix_server(_unix_listener_non_async, path):
+ await self._check_local_unix_connection('echo')
+
+- os.remove('echo')
++ try:
++ os.remove('echo')
++ except OSError:
++ pass
+
+ @asynctest
+ async def test_unix_server_failure(self):
+@@ -1071,7 +1087,10 @@ async def test_forward_local_path(self):
+ async with conn.forward_local_path('local', '/echo'):
+ await self._check_local_unix_connection('local')
+
+- os.remove('local')
++ try:
++ os.remove('local')
++ except OSError:
++ pass
+
+ @asynctest
+ async def test_forward_local_port_to_path_accept_handler(self):
+@@ -1149,8 +1168,11 @@ async def test_forward_remote_path(self):
+ server.close()
+ await server.wait_closed()
+
+- os.remove('echo')
+- os.remove('local')
++ try:
++ os.remove('echo')
++ os.remove('local')
++ except OSError:
++ pass
+
+ @asynctest
+ async def test_forward_remote_path_to_port(self):
+@@ -1167,11 +1189,14 @@ async def test_forward_remote_path_to_port(self):
+ path, '127.0.0.1', server_port):
+ await self._check_local_unix_connection('echo')
+
+- os.remove('echo')
+-
+ server.close()
+ await server.wait_closed()
+
++ try:
++ os.remove('echo')
++ except OSError:
++ pass
++
+ @asynctest
+ async def test_forward_remote_path_failure(self):
+ """Test failure of forwarding a remote UNIX domain path"""
+@@ -1184,7 +1209,10 @@ async def test_forward_remote_path_failure(self):
+ with self.assertRaises(asyncssh.ChannelListenError):
+ await conn.forward_remote_path(path, 'local')
+
+- os.remove('echo')
++ try:
++ os.remove('echo')
++ except OSError:
++ pass
+
+ @asynctest
+ async def test_forward_remote_path_not_permitted(self):