diff options
Diffstat (limited to 'dev-python/asyncssh')
-rw-r--r-- | dev-python/asyncssh/Manifest | 3 | ||||
-rw-r--r-- | dev-python/asyncssh/asyncssh-2.14.2.ebuild | 9 | ||||
-rw-r--r-- | dev-python/asyncssh/files/asyncssh-2.14.2-py313.patch | 151 |
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): |