14
0
Files
python-asyncssh/python-asyncssh.spec

82 lines
2.7 KiB
RPMSpec
Raw Permalink Normal View History

#
# spec file for package python-asyncssh
#
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
Accepting request 670363 from home:mimi_vx:branches:devel:languages:python - update to 1.15.1 * Added callback-based host validation in SSHClient, allowing callers to decide programmatically whether to trust server host keys and certificates rather than having to provide a list of trusted values in advance. * Changed SSH client code to only load the default known hosts file if if exists. Previously an error was returned if a known_hosts value wasn't specified and the default known_hosts file didn't exist. For host validate to work in this case, verification callbacks must be implemented or other forms of validation such as X.509 trusted CAs or GSS-based key exchange must be used. * Fixed known hosts validation to completely disable certificate checks when known_hosts is set to None. * Switched curve25519 key exchange to use the PyCA implementation * Added get_fingerprint() method to return a fingerprint of an SSHKey. * Added the ability to pass keyword arguments provided in the scp() command through to asyncssh.connect() calls it makes, allowing things like custom credentials to be specified. * Added support for a reuse_port argument in create_server(). * Added support for "soft" EOF when line editing in enabled * Added support for the Windows 10 OpenSSH ssh-agent. * Reworked scoped link-local IPv6 address normalization to work better on Linux systems. * Fixed a problem preserving directory structure in recursive scp(). * Fixed SFTP chmod tests to avoid attempting to set the sticky bit on a plain file * Updated note in SSHClientChannel's send_signal() documentation to reflect that OpenSSH 7.9 and later should now support processing of signal messages. OBS-URL: https://build.opensuse.org/request/show/670363 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-asyncssh?expand=0&rev=3
2019-01-31 14:28:14 +00:00
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%{?sle15_python_module_pythons}
Name: python-asyncssh
- update to 2.21.0: * Added sparse file support for SFTP, allowing file copying which automatically skips over any "holes" in a source file, transferring only the data ranges which are actually present. * Added support for applications to request that session, connection, or TUN/TAP requests arriving on an SSHServerConnection be forwarded out some other established SSHClientConnection. Callback methods on SSHServer which decide how to handle these requests can now return an SSHClientConnection to set up this tunneling, instead of having to accept the request and implement their own forwarding logic. * Further hardened the SSH key exchange process to make AsyncSSH more strict when accepting messages during key exchange. Thanks go to Fabian Bäumer and Marcus Brinkmann for identifying potential issues here. * Added support for the auth_completed callback in SSHServer to be either a callable or a coroutine, allowing async operations to be performed when user authentication completes successfully, prior to accepting session requests. * Added support for the sftp_factory config argument be either a callable or a coroutine, allowing async operations to be performed when starting up a new SFTP server session. * Fixed a bug where the exit() method of SFTPServer didn't handle being declared as a coroutine. Thanks go to C. R. Oldham for reporting this issue. * Improved handling of exceptions in connection_lost() callbacks. Exceptions in connection_lost() will now be reported in the debug log, but other cleanup code in AsyncSSH will continue, ignoring those exceptions. Thanks go to Danil OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-asyncssh?expand=0&rev=64
2025-07-12 17:35:24 +00:00
Version: 2.21.0
Release: 0
Summary: Asynchronous SSHv2 client and server library
Accepting request 670363 from home:mimi_vx:branches:devel:languages:python - update to 1.15.1 * Added callback-based host validation in SSHClient, allowing callers to decide programmatically whether to trust server host keys and certificates rather than having to provide a list of trusted values in advance. * Changed SSH client code to only load the default known hosts file if if exists. Previously an error was returned if a known_hosts value wasn't specified and the default known_hosts file didn't exist. For host validate to work in this case, verification callbacks must be implemented or other forms of validation such as X.509 trusted CAs or GSS-based key exchange must be used. * Fixed known hosts validation to completely disable certificate checks when known_hosts is set to None. * Switched curve25519 key exchange to use the PyCA implementation * Added get_fingerprint() method to return a fingerprint of an SSHKey. * Added the ability to pass keyword arguments provided in the scp() command through to asyncssh.connect() calls it makes, allowing things like custom credentials to be specified. * Added support for a reuse_port argument in create_server(). * Added support for "soft" EOF when line editing in enabled * Added support for the Windows 10 OpenSSH ssh-agent. * Reworked scoped link-local IPv6 address normalization to work better on Linux systems. * Fixed a problem preserving directory structure in recursive scp(). * Fixed SFTP chmod tests to avoid attempting to set the sticky bit on a plain file * Updated note in SSHClientChannel's send_signal() documentation to reflect that OpenSSH 7.9 and later should now support processing of signal messages. OBS-URL: https://build.opensuse.org/request/show/670363 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-asyncssh?expand=0&rev=3
2019-01-31 14:28:14 +00:00
License: EPL-2.0 OR GPL-2.0-or-later
Group: Development/Languages/Python
URL: https://github.com/ronf/asyncssh
Source: https://files.pythonhosted.org/packages/source/a/asyncssh/asyncssh-%{version}.tar.gz
Patch0: gss_test.patch
# SECTION test requirements
- Update to 1.16.0: * Added support for Ed448 host/client keys and certificates and rewrote Ed25519 support to use the PyCA implementation, reducing the dependency on libnacl and libsodium to only be needed to support the chacha20-poly1305 cipher. * Added support for PKCS#8 format Ed25519 and Ed448 private and public keys (in addition to the OpenSSH format previously supported). * Added support for multiple delimiters in SSHReader’s readuntil() function, causing it to return data as soon as any of the specified delimiters are matched. * Added the ability to register custom key handlers in the line editor which can modify the input line, extending the built-in editing functionality. * Added SSHSubprocessProtocol and SSHSubprocessTransport classes to provide compatibility with asyncio.SubprocessProtocol and asyncio.SubprocessTransport. Code which is designed to call BaseEventLoop.subprocess_shell() or BaseEventLoop.subprocess_exec() can be easily adapted to work against a remote process by calling SSHClientConnection.create_subprocess(). * Added support for sending keepalive messages when the SSH connection is idle, with an option to automatically disconnect the connection if the remote system doesn’t respond to these keepalives. * Changed AsyncSSH to ignore errors when loading unsupported key types from the default file locations. * Changed the reuse_port option to only be available on Python releases which support it (3.4.4 and later). * Fixed an issue where MSG_IGNORE packets could sometimes be sent between MSG_NEWKEYS and MSG_EXT_INFO, which caused some SSH implementations to fail to properly parse the MSG_EXT_INFO. * Fixed a couple of errors in the handling of disconnects occurring prior to authentication completing. * Renamed “session_encoding” and “session_errors” arguments in asyncssh.create_server() to “encoding” and “errors”, to match the names used for these arguments in other AsyncSSH APIs. The old names are still supported for now, but they are marked as deprecated and will be removed in a future release. OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-asyncssh?expand=0&rev=7
2019-03-06 12:55:59 +00:00
BuildRequires: %{python_module bcrypt >= 3.1.3}
- update to 2.1.0 * Added support in the SSHProcess redirect mechanism to accept asyncio StreamReader and StreamWriter objects, allowing asyncio streams to be plugged in as stdin/stdout/stderr in an SSHProcess. * Added support for key handlers in the AsyncSSH line editor to trigger signals being delivered when certain “hot keys” are hit while reading input. * Improved cleanup of unreturned connection objects when an error occurs or the connection request is canceled or times out. * Improved cleanup of SSH agent client objects to avoid triggering a false positive warning in Python 3.8. * Added an example to the documentation for how to create reverse-direction SSH client and server connections. * Made check of session objects against None explicit to avoid confusion on user-defined sessions that implement __len__ or __bool__. Thanks go to Lars-Dominik Braun for contributing this improvement! * Some API changes which should have been included in the 2.0.0 release were missed. This release corrects that, but means that additional changes may be needed in applications moving to 2.0.1. This should hopefully be the last of such changes, but if any other issues are discovered, additional changes will be limited to 2.0.x patch releases and the API will stabilize again in the AsyncSSH 2.1 release. See the next bullet for details about the additional incompatible change. * To be consistent with other connect and listen functions, all methods on SSHClientConnection which previously returned None on listen failures have been changed to raise an exception instead. A new ChannelListenError exception will now be raised when an SSH server returns failure on a request to open a remote listener. This change affects the following SSHClientConnection methods: create_server, create_unix_server, start_server, start_unix_server, forward_remote_port, and forward_remote_path. * Restored the ability for SSHListener objects to be used as async context managers. This previously worked in AsyncSSH 1.x and was unintentionally broken in AsyncSSH 2.0.0. * Added support for a number of additional functions to be called from within an “async with” statement. These functions already returned objects capable of being async context managers, but were not decorated to allow them to be directly called from within “async with”. This change applies to the top level functions create_server, listen, and listen_reverse and the SSHClientConnection methods create_server, create_unix_server, start_server, start_unix_server, forward_local_port, forward_local_path, forward_remote_port, forward_remote_path, listen_ssh, and listen_reverse_ssh, * Fixed a couple of issues in loading OpenSSH-format certificates which were missing a trailing newline. * Changed load_certificates() to allow multiple certificates to be loaded from a single byte string argument, making it more consistent with how load_certificates() works when reading from a file. * Updated AsyncSSH to use the modern async/await syntax internally, now requiring Python 3.6 or later. Those wishing to use AsyncSSH on Python 3.4 or 3.5 should stick to the AsyncSSH 1.x releases. * Changed first argument of SFTPServer constructor from an SSHServerConnection (conn) to an SSHServerChannel (chan) to allow custom SFTP server implementations to access environment variables set on the channel that SFTP is run over. Applications which subclass the SFTPServer class and implement an __init__ method will need to be updated to account for this change and pass the new argument through to the SFTPServer parent class. If the subclass has no __init__ and just uses the connection, channel, and env properties of SFTPServer to access this information, no changes should be required. * Removed deprecated “session_encoding” and “session_errors” arguments from create_server() and listen() functions. These arguments were renamed to “encoding” and “errors” back in version 1.16.0 to be consistent with other AsyncSSH APIs. * Removed get_environment(), get_command(), and get_subsystem() methods on SSHServerProcess class. This information was made available as “env”, “command”, and “subsystem” properties of SSHServerProcess in AsyncSSH 1.11.0. * Removed optional loop argument from all public AsyncSSH APIs, consistent with the deprecation of this argument in the asyncio package in Python 3.8. Calls will now always use the event loop which is active at the time of the call. * Removed support for non-async context managers on AsyncSSH connections and processes and SFTP client connections and file objects. Callers should use “async with” to invoke the async the context managers on these objects. * Added support for SSHAgentClient being an async context manager. To be consistent with other connect calls, connect_agent() will now raise an exception when no agent is found or a connection failure occurs, rather than logging a warning and returning None. Callers should catch OSError or ChannelOpenError exceptions rather than looking for a return value of None when calling this function. * Added set_input() and clear_input() methods on SSHLineEditorChannel to change the value of the current input line when line editing is enabled. * Added is_closing() method to the SSHChannel, SSHProcess, SSHWriter, and SSHSubprocessTransport classes. mirroring the asyncio BaseTransport and StreamWriter methods added in Python 3.7. * Added wait_closed() async method to the SSHWriter class, mirroring the asyncio StreamWriter method added in Python 3.7. OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-asyncssh?expand=0&rev=22
2020-01-16 12:18:52 +00:00
BuildRequires: %{python_module cryptography >= 2.8}
BuildRequires: %{python_module fido2 >= 0.8.1}
- Update to 1.16.0: * Added support for Ed448 host/client keys and certificates and rewrote Ed25519 support to use the PyCA implementation, reducing the dependency on libnacl and libsodium to only be needed to support the chacha20-poly1305 cipher. * Added support for PKCS#8 format Ed25519 and Ed448 private and public keys (in addition to the OpenSSH format previously supported). * Added support for multiple delimiters in SSHReader’s readuntil() function, causing it to return data as soon as any of the specified delimiters are matched. * Added the ability to register custom key handlers in the line editor which can modify the input line, extending the built-in editing functionality. * Added SSHSubprocessProtocol and SSHSubprocessTransport classes to provide compatibility with asyncio.SubprocessProtocol and asyncio.SubprocessTransport. Code which is designed to call BaseEventLoop.subprocess_shell() or BaseEventLoop.subprocess_exec() can be easily adapted to work against a remote process by calling SSHClientConnection.create_subprocess(). * Added support for sending keepalive messages when the SSH connection is idle, with an option to automatically disconnect the connection if the remote system doesn’t respond to these keepalives. * Changed AsyncSSH to ignore errors when loading unsupported key types from the default file locations. * Changed the reuse_port option to only be available on Python releases which support it (3.4.4 and later). * Fixed an issue where MSG_IGNORE packets could sometimes be sent between MSG_NEWKEYS and MSG_EXT_INFO, which caused some SSH implementations to fail to properly parse the MSG_EXT_INFO. * Fixed a couple of errors in the handling of disconnects occurring prior to authentication completing. * Renamed “session_encoding” and “session_errors” arguments in asyncssh.create_server() to “encoding” and “errors”, to match the names used for these arguments in other AsyncSSH APIs. The old names are still supported for now, but they are marked as deprecated and will be removed in a future release. OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-asyncssh?expand=0&rev=7
2019-03-06 12:55:59 +00:00
BuildRequires: %{python_module gssapi >= 1.2.0}
BuildRequires: %{python_module pip}
- Update to 1.16.0: * Added support for Ed448 host/client keys and certificates and rewrote Ed25519 support to use the PyCA implementation, reducing the dependency on libnacl and libsodium to only be needed to support the chacha20-poly1305 cipher. * Added support for PKCS#8 format Ed25519 and Ed448 private and public keys (in addition to the OpenSSH format previously supported). * Added support for multiple delimiters in SSHReader’s readuntil() function, causing it to return data as soon as any of the specified delimiters are matched. * Added the ability to register custom key handlers in the line editor which can modify the input line, extending the built-in editing functionality. * Added SSHSubprocessProtocol and SSHSubprocessTransport classes to provide compatibility with asyncio.SubprocessProtocol and asyncio.SubprocessTransport. Code which is designed to call BaseEventLoop.subprocess_shell() or BaseEventLoop.subprocess_exec() can be easily adapted to work against a remote process by calling SSHClientConnection.create_subprocess(). * Added support for sending keepalive messages when the SSH connection is idle, with an option to automatically disconnect the connection if the remote system doesn’t respond to these keepalives. * Changed AsyncSSH to ignore errors when loading unsupported key types from the default file locations. * Changed the reuse_port option to only be available on Python releases which support it (3.4.4 and later). * Fixed an issue where MSG_IGNORE packets could sometimes be sent between MSG_NEWKEYS and MSG_EXT_INFO, which caused some SSH implementations to fail to properly parse the MSG_EXT_INFO. * Fixed a couple of errors in the handling of disconnects occurring prior to authentication completing. * Renamed “session_encoding” and “session_errors” arguments in asyncssh.create_server() to “encoding” and “errors”, to match the names used for these arguments in other AsyncSSH APIs. The old names are still supported for now, but they are marked as deprecated and will be removed in a future release. OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-asyncssh?expand=0&rev=7
2019-03-06 12:55:59 +00:00
BuildRequires: %{python_module pyOpenSSL >= 17.0.0}
BuildRequires: %{python_module pytest}
Accepting request 670363 from home:mimi_vx:branches:devel:languages:python - update to 1.15.1 * Added callback-based host validation in SSHClient, allowing callers to decide programmatically whether to trust server host keys and certificates rather than having to provide a list of trusted values in advance. * Changed SSH client code to only load the default known hosts file if if exists. Previously an error was returned if a known_hosts value wasn't specified and the default known_hosts file didn't exist. For host validate to work in this case, verification callbacks must be implemented or other forms of validation such as X.509 trusted CAs or GSS-based key exchange must be used. * Fixed known hosts validation to completely disable certificate checks when known_hosts is set to None. * Switched curve25519 key exchange to use the PyCA implementation * Added get_fingerprint() method to return a fingerprint of an SSHKey. * Added the ability to pass keyword arguments provided in the scp() command through to asyncssh.connect() calls it makes, allowing things like custom credentials to be specified. * Added support for a reuse_port argument in create_server(). * Added support for "soft" EOF when line editing in enabled * Added support for the Windows 10 OpenSSH ssh-agent. * Reworked scoped link-local IPv6 address normalization to work better on Linux systems. * Fixed a problem preserving directory structure in recursive scp(). * Fixed SFTP chmod tests to avoid attempting to set the sticky bit on a plain file * Updated note in SSHClientChannel's send_signal() documentation to reflect that OpenSSH 7.9 and later should now support processing of signal messages. OBS-URL: https://build.opensuse.org/request/show/670363 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-asyncssh?expand=0&rev=3
2019-01-31 14:28:14 +00:00
BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module typing_extensions}
- update to 2.1.0 * Added support in the SSHProcess redirect mechanism to accept asyncio StreamReader and StreamWriter objects, allowing asyncio streams to be plugged in as stdin/stdout/stderr in an SSHProcess. * Added support for key handlers in the AsyncSSH line editor to trigger signals being delivered when certain “hot keys” are hit while reading input. * Improved cleanup of unreturned connection objects when an error occurs or the connection request is canceled or times out. * Improved cleanup of SSH agent client objects to avoid triggering a false positive warning in Python 3.8. * Added an example to the documentation for how to create reverse-direction SSH client and server connections. * Made check of session objects against None explicit to avoid confusion on user-defined sessions that implement __len__ or __bool__. Thanks go to Lars-Dominik Braun for contributing this improvement! * Some API changes which should have been included in the 2.0.0 release were missed. This release corrects that, but means that additional changes may be needed in applications moving to 2.0.1. This should hopefully be the last of such changes, but if any other issues are discovered, additional changes will be limited to 2.0.x patch releases and the API will stabilize again in the AsyncSSH 2.1 release. See the next bullet for details about the additional incompatible change. * To be consistent with other connect and listen functions, all methods on SSHClientConnection which previously returned None on listen failures have been changed to raise an exception instead. A new ChannelListenError exception will now be raised when an SSH server returns failure on a request to open a remote listener. This change affects the following SSHClientConnection methods: create_server, create_unix_server, start_server, start_unix_server, forward_remote_port, and forward_remote_path. * Restored the ability for SSHListener objects to be used as async context managers. This previously worked in AsyncSSH 1.x and was unintentionally broken in AsyncSSH 2.0.0. * Added support for a number of additional functions to be called from within an “async with” statement. These functions already returned objects capable of being async context managers, but were not decorated to allow them to be directly called from within “async with”. This change applies to the top level functions create_server, listen, and listen_reverse and the SSHClientConnection methods create_server, create_unix_server, start_server, start_unix_server, forward_local_port, forward_local_path, forward_remote_port, forward_remote_path, listen_ssh, and listen_reverse_ssh, * Fixed a couple of issues in loading OpenSSH-format certificates which were missing a trailing newline. * Changed load_certificates() to allow multiple certificates to be loaded from a single byte string argument, making it more consistent with how load_certificates() works when reading from a file. * Updated AsyncSSH to use the modern async/await syntax internally, now requiring Python 3.6 or later. Those wishing to use AsyncSSH on Python 3.4 or 3.5 should stick to the AsyncSSH 1.x releases. * Changed first argument of SFTPServer constructor from an SSHServerConnection (conn) to an SSHServerChannel (chan) to allow custom SFTP server implementations to access environment variables set on the channel that SFTP is run over. Applications which subclass the SFTPServer class and implement an __init__ method will need to be updated to account for this change and pass the new argument through to the SFTPServer parent class. If the subclass has no __init__ and just uses the connection, channel, and env properties of SFTPServer to access this information, no changes should be required. * Removed deprecated “session_encoding” and “session_errors” arguments from create_server() and listen() functions. These arguments were renamed to “encoding” and “errors” back in version 1.16.0 to be consistent with other AsyncSSH APIs. * Removed get_environment(), get_command(), and get_subsystem() methods on SSHServerProcess class. This information was made available as “env”, “command”, and “subsystem” properties of SSHServerProcess in AsyncSSH 1.11.0. * Removed optional loop argument from all public AsyncSSH APIs, consistent with the deprecation of this argument in the asyncio package in Python 3.8. Calls will now always use the event loop which is active at the time of the call. * Removed support for non-async context managers on AsyncSSH connections and processes and SFTP client connections and file objects. Callers should use “async with” to invoke the async the context managers on these objects. * Added support for SSHAgentClient being an async context manager. To be consistent with other connect calls, connect_agent() will now raise an exception when no agent is found or a connection failure occurs, rather than logging a warning and returning None. Callers should catch OSError or ChannelOpenError exceptions rather than looking for a return value of None when calling this function. * Added set_input() and clear_input() methods on SSHLineEditorChannel to change the value of the current input line when line editing is enabled. * Added is_closing() method to the SSHChannel, SSHProcess, SSHWriter, and SSHSubprocessTransport classes. mirroring the asyncio BaseTransport and StreamWriter methods added in Python 3.7. * Added wait_closed() async method to the SSHWriter class, mirroring the asyncio StreamWriter method added in Python 3.7. OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-asyncssh?expand=0&rev=22
2020-01-16 12:18:52 +00:00
BuildRequires: %{python_module uvloop >= 0.9.1}
BuildRequires: %{python_module wheel}
Accepting request 670363 from home:mimi_vx:branches:devel:languages:python - update to 1.15.1 * Added callback-based host validation in SSHClient, allowing callers to decide programmatically whether to trust server host keys and certificates rather than having to provide a list of trusted values in advance. * Changed SSH client code to only load the default known hosts file if if exists. Previously an error was returned if a known_hosts value wasn't specified and the default known_hosts file didn't exist. For host validate to work in this case, verification callbacks must be implemented or other forms of validation such as X.509 trusted CAs or GSS-based key exchange must be used. * Fixed known hosts validation to completely disable certificate checks when known_hosts is set to None. * Switched curve25519 key exchange to use the PyCA implementation * Added get_fingerprint() method to return a fingerprint of an SSHKey. * Added the ability to pass keyword arguments provided in the scp() command through to asyncssh.connect() calls it makes, allowing things like custom credentials to be specified. * Added support for a reuse_port argument in create_server(). * Added support for "soft" EOF when line editing in enabled * Added support for the Windows 10 OpenSSH ssh-agent. * Reworked scoped link-local IPv6 address normalization to work better on Linux systems. * Fixed a problem preserving directory structure in recursive scp(). * Fixed SFTP chmod tests to avoid attempting to set the sticky bit on a plain file * Updated note in SSHClientChannel's send_signal() documentation to reflect that OpenSSH 7.9 and later should now support processing of signal messages. OBS-URL: https://build.opensuse.org/request/show/670363 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-asyncssh?expand=0&rev=3
2019-01-31 14:28:14 +00:00
BuildRequires: openssh
BuildRequires: openssl
BuildRequires: (libnettle8 if python38-base)
# /SECTION
BuildRequires: fdupes
Accepting request 670363 from home:mimi_vx:branches:devel:languages:python - update to 1.15.1 * Added callback-based host validation in SSHClient, allowing callers to decide programmatically whether to trust server host keys and certificates rather than having to provide a list of trusted values in advance. * Changed SSH client code to only load the default known hosts file if if exists. Previously an error was returned if a known_hosts value wasn't specified and the default known_hosts file didn't exist. For host validate to work in this case, verification callbacks must be implemented or other forms of validation such as X.509 trusted CAs or GSS-based key exchange must be used. * Fixed known hosts validation to completely disable certificate checks when known_hosts is set to None. * Switched curve25519 key exchange to use the PyCA implementation * Added get_fingerprint() method to return a fingerprint of an SSHKey. * Added the ability to pass keyword arguments provided in the scp() command through to asyncssh.connect() calls it makes, allowing things like custom credentials to be specified. * Added support for a reuse_port argument in create_server(). * Added support for "soft" EOF when line editing in enabled * Added support for the Windows 10 OpenSSH ssh-agent. * Reworked scoped link-local IPv6 address normalization to work better on Linux systems. * Fixed a problem preserving directory structure in recursive scp(). * Fixed SFTP chmod tests to avoid attempting to set the sticky bit on a plain file * Updated note in SSHClientChannel's send_signal() documentation to reflect that OpenSSH 7.9 and later should now support processing of signal messages. OBS-URL: https://build.opensuse.org/request/show/670363 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-asyncssh?expand=0&rev=3
2019-01-31 14:28:14 +00:00
BuildRequires: python-rpm-macros
- Update to 1.16.0: * Added support for Ed448 host/client keys and certificates and rewrote Ed25519 support to use the PyCA implementation, reducing the dependency on libnacl and libsodium to only be needed to support the chacha20-poly1305 cipher. * Added support for PKCS#8 format Ed25519 and Ed448 private and public keys (in addition to the OpenSSH format previously supported). * Added support for multiple delimiters in SSHReader’s readuntil() function, causing it to return data as soon as any of the specified delimiters are matched. * Added the ability to register custom key handlers in the line editor which can modify the input line, extending the built-in editing functionality. * Added SSHSubprocessProtocol and SSHSubprocessTransport classes to provide compatibility with asyncio.SubprocessProtocol and asyncio.SubprocessTransport. Code which is designed to call BaseEventLoop.subprocess_shell() or BaseEventLoop.subprocess_exec() can be easily adapted to work against a remote process by calling SSHClientConnection.create_subprocess(). * Added support for sending keepalive messages when the SSH connection is idle, with an option to automatically disconnect the connection if the remote system doesn’t respond to these keepalives. * Changed AsyncSSH to ignore errors when loading unsupported key types from the default file locations. * Changed the reuse_port option to only be available on Python releases which support it (3.4.4 and later). * Fixed an issue where MSG_IGNORE packets could sometimes be sent between MSG_NEWKEYS and MSG_EXT_INFO, which caused some SSH implementations to fail to properly parse the MSG_EXT_INFO. * Fixed a couple of errors in the handling of disconnects occurring prior to authentication completing. * Renamed “session_encoding” and “session_errors” arguments in asyncssh.create_server() to “encoding” and “errors”, to match the names used for these arguments in other AsyncSSH APIs. The old names are still supported for now, but they are marked as deprecated and will be removed in a future release. OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-asyncssh?expand=0&rev=7
2019-03-06 12:55:59 +00:00
Requires: python-bcrypt >= 3.1.3
- update to 2.1.0 * Added support in the SSHProcess redirect mechanism to accept asyncio StreamReader and StreamWriter objects, allowing asyncio streams to be plugged in as stdin/stdout/stderr in an SSHProcess. * Added support for key handlers in the AsyncSSH line editor to trigger signals being delivered when certain “hot keys” are hit while reading input. * Improved cleanup of unreturned connection objects when an error occurs or the connection request is canceled or times out. * Improved cleanup of SSH agent client objects to avoid triggering a false positive warning in Python 3.8. * Added an example to the documentation for how to create reverse-direction SSH client and server connections. * Made check of session objects against None explicit to avoid confusion on user-defined sessions that implement __len__ or __bool__. Thanks go to Lars-Dominik Braun for contributing this improvement! * Some API changes which should have been included in the 2.0.0 release were missed. This release corrects that, but means that additional changes may be needed in applications moving to 2.0.1. This should hopefully be the last of such changes, but if any other issues are discovered, additional changes will be limited to 2.0.x patch releases and the API will stabilize again in the AsyncSSH 2.1 release. See the next bullet for details about the additional incompatible change. * To be consistent with other connect and listen functions, all methods on SSHClientConnection which previously returned None on listen failures have been changed to raise an exception instead. A new ChannelListenError exception will now be raised when an SSH server returns failure on a request to open a remote listener. This change affects the following SSHClientConnection methods: create_server, create_unix_server, start_server, start_unix_server, forward_remote_port, and forward_remote_path. * Restored the ability for SSHListener objects to be used as async context managers. This previously worked in AsyncSSH 1.x and was unintentionally broken in AsyncSSH 2.0.0. * Added support for a number of additional functions to be called from within an “async with” statement. These functions already returned objects capable of being async context managers, but were not decorated to allow them to be directly called from within “async with”. This change applies to the top level functions create_server, listen, and listen_reverse and the SSHClientConnection methods create_server, create_unix_server, start_server, start_unix_server, forward_local_port, forward_local_path, forward_remote_port, forward_remote_path, listen_ssh, and listen_reverse_ssh, * Fixed a couple of issues in loading OpenSSH-format certificates which were missing a trailing newline. * Changed load_certificates() to allow multiple certificates to be loaded from a single byte string argument, making it more consistent with how load_certificates() works when reading from a file. * Updated AsyncSSH to use the modern async/await syntax internally, now requiring Python 3.6 or later. Those wishing to use AsyncSSH on Python 3.4 or 3.5 should stick to the AsyncSSH 1.x releases. * Changed first argument of SFTPServer constructor from an SSHServerConnection (conn) to an SSHServerChannel (chan) to allow custom SFTP server implementations to access environment variables set on the channel that SFTP is run over. Applications which subclass the SFTPServer class and implement an __init__ method will need to be updated to account for this change and pass the new argument through to the SFTPServer parent class. If the subclass has no __init__ and just uses the connection, channel, and env properties of SFTPServer to access this information, no changes should be required. * Removed deprecated “session_encoding” and “session_errors” arguments from create_server() and listen() functions. These arguments were renamed to “encoding” and “errors” back in version 1.16.0 to be consistent with other AsyncSSH APIs. * Removed get_environment(), get_command(), and get_subsystem() methods on SSHServerProcess class. This information was made available as “env”, “command”, and “subsystem” properties of SSHServerProcess in AsyncSSH 1.11.0. * Removed optional loop argument from all public AsyncSSH APIs, consistent with the deprecation of this argument in the asyncio package in Python 3.8. Calls will now always use the event loop which is active at the time of the call. * Removed support for non-async context managers on AsyncSSH connections and processes and SFTP client connections and file objects. Callers should use “async with” to invoke the async the context managers on these objects. * Added support for SSHAgentClient being an async context manager. To be consistent with other connect calls, connect_agent() will now raise an exception when no agent is found or a connection failure occurs, rather than logging a warning and returning None. Callers should catch OSError or ChannelOpenError exceptions rather than looking for a return value of None when calling this function. * Added set_input() and clear_input() methods on SSHLineEditorChannel to change the value of the current input line when line editing is enabled. * Added is_closing() method to the SSHChannel, SSHProcess, SSHWriter, and SSHSubprocessTransport classes. mirroring the asyncio BaseTransport and StreamWriter methods added in Python 3.7. * Added wait_closed() async method to the SSHWriter class, mirroring the asyncio StreamWriter method added in Python 3.7. OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-asyncssh?expand=0&rev=22
2020-01-16 12:18:52 +00:00
Requires: python-cryptography >= 2.8
- Update to 1.16.0: * Added support for Ed448 host/client keys and certificates and rewrote Ed25519 support to use the PyCA implementation, reducing the dependency on libnacl and libsodium to only be needed to support the chacha20-poly1305 cipher. * Added support for PKCS#8 format Ed25519 and Ed448 private and public keys (in addition to the OpenSSH format previously supported). * Added support for multiple delimiters in SSHReader’s readuntil() function, causing it to return data as soon as any of the specified delimiters are matched. * Added the ability to register custom key handlers in the line editor which can modify the input line, extending the built-in editing functionality. * Added SSHSubprocessProtocol and SSHSubprocessTransport classes to provide compatibility with asyncio.SubprocessProtocol and asyncio.SubprocessTransport. Code which is designed to call BaseEventLoop.subprocess_shell() or BaseEventLoop.subprocess_exec() can be easily adapted to work against a remote process by calling SSHClientConnection.create_subprocess(). * Added support for sending keepalive messages when the SSH connection is idle, with an option to automatically disconnect the connection if the remote system doesn’t respond to these keepalives. * Changed AsyncSSH to ignore errors when loading unsupported key types from the default file locations. * Changed the reuse_port option to only be available on Python releases which support it (3.4.4 and later). * Fixed an issue where MSG_IGNORE packets could sometimes be sent between MSG_NEWKEYS and MSG_EXT_INFO, which caused some SSH implementations to fail to properly parse the MSG_EXT_INFO. * Fixed a couple of errors in the handling of disconnects occurring prior to authentication completing. * Renamed “session_encoding” and “session_errors” arguments in asyncssh.create_server() to “encoding” and “errors”, to match the names used for these arguments in other AsyncSSH APIs. The old names are still supported for now, but they are marked as deprecated and will be removed in a future release. OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-asyncssh?expand=0&rev=7
2019-03-06 12:55:59 +00:00
Requires: python-gssapi >= 1.2.0
Requires: python-libnacl >= 1.4.2
Requires: python-pyOpenSSL >= 17.0.0
Recommends: libnettle8
Recommends: python-fido2 >= 0.8.1
BuildArch: noarch
%python_subpackages
%description
AsyncSSH is a Python package which provides an asynchronous client and
- update to 2.1.0 * Added support in the SSHProcess redirect mechanism to accept asyncio StreamReader and StreamWriter objects, allowing asyncio streams to be plugged in as stdin/stdout/stderr in an SSHProcess. * Added support for key handlers in the AsyncSSH line editor to trigger signals being delivered when certain “hot keys” are hit while reading input. * Improved cleanup of unreturned connection objects when an error occurs or the connection request is canceled or times out. * Improved cleanup of SSH agent client objects to avoid triggering a false positive warning in Python 3.8. * Added an example to the documentation for how to create reverse-direction SSH client and server connections. * Made check of session objects against None explicit to avoid confusion on user-defined sessions that implement __len__ or __bool__. Thanks go to Lars-Dominik Braun for contributing this improvement! * Some API changes which should have been included in the 2.0.0 release were missed. This release corrects that, but means that additional changes may be needed in applications moving to 2.0.1. This should hopefully be the last of such changes, but if any other issues are discovered, additional changes will be limited to 2.0.x patch releases and the API will stabilize again in the AsyncSSH 2.1 release. See the next bullet for details about the additional incompatible change. * To be consistent with other connect and listen functions, all methods on SSHClientConnection which previously returned None on listen failures have been changed to raise an exception instead. A new ChannelListenError exception will now be raised when an SSH server returns failure on a request to open a remote listener. This change affects the following SSHClientConnection methods: create_server, create_unix_server, start_server, start_unix_server, forward_remote_port, and forward_remote_path. * Restored the ability for SSHListener objects to be used as async context managers. This previously worked in AsyncSSH 1.x and was unintentionally broken in AsyncSSH 2.0.0. * Added support for a number of additional functions to be called from within an “async with” statement. These functions already returned objects capable of being async context managers, but were not decorated to allow them to be directly called from within “async with”. This change applies to the top level functions create_server, listen, and listen_reverse and the SSHClientConnection methods create_server, create_unix_server, start_server, start_unix_server, forward_local_port, forward_local_path, forward_remote_port, forward_remote_path, listen_ssh, and listen_reverse_ssh, * Fixed a couple of issues in loading OpenSSH-format certificates which were missing a trailing newline. * Changed load_certificates() to allow multiple certificates to be loaded from a single byte string argument, making it more consistent with how load_certificates() works when reading from a file. * Updated AsyncSSH to use the modern async/await syntax internally, now requiring Python 3.6 or later. Those wishing to use AsyncSSH on Python 3.4 or 3.5 should stick to the AsyncSSH 1.x releases. * Changed first argument of SFTPServer constructor from an SSHServerConnection (conn) to an SSHServerChannel (chan) to allow custom SFTP server implementations to access environment variables set on the channel that SFTP is run over. Applications which subclass the SFTPServer class and implement an __init__ method will need to be updated to account for this change and pass the new argument through to the SFTPServer parent class. If the subclass has no __init__ and just uses the connection, channel, and env properties of SFTPServer to access this information, no changes should be required. * Removed deprecated “session_encoding” and “session_errors” arguments from create_server() and listen() functions. These arguments were renamed to “encoding” and “errors” back in version 1.16.0 to be consistent with other AsyncSSH APIs. * Removed get_environment(), get_command(), and get_subsystem() methods on SSHServerProcess class. This information was made available as “env”, “command”, and “subsystem” properties of SSHServerProcess in AsyncSSH 1.11.0. * Removed optional loop argument from all public AsyncSSH APIs, consistent with the deprecation of this argument in the asyncio package in Python 3.8. Calls will now always use the event loop which is active at the time of the call. * Removed support for non-async context managers on AsyncSSH connections and processes and SFTP client connections and file objects. Callers should use “async with” to invoke the async the context managers on these objects. * Added support for SSHAgentClient being an async context manager. To be consistent with other connect calls, connect_agent() will now raise an exception when no agent is found or a connection failure occurs, rather than logging a warning and returning None. Callers should catch OSError or ChannelOpenError exceptions rather than looking for a return value of None when calling this function. * Added set_input() and clear_input() methods on SSHLineEditorChannel to change the value of the current input line when line editing is enabled. * Added is_closing() method to the SSHChannel, SSHProcess, SSHWriter, and SSHSubprocessTransport classes. mirroring the asyncio BaseTransport and StreamWriter methods added in Python 3.7. * Added wait_closed() async method to the SSHWriter class, mirroring the asyncio StreamWriter method added in Python 3.7. OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-asyncssh?expand=0&rev=22
2020-01-16 12:18:52 +00:00
server implementation of the SSHv2 protocol on top of the Python asyncio framework.
%prep
%autosetup -p1 -n asyncssh-%{version}
%build
%pyproject_wheel
%install
%pyproject_install
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%check
%pytest -k 'not (test_connect_timeout_exceeded or test_forward_remote or test_enroll)'
%files %{python_files}
%license LICENSE COPYRIGHT
%doc README.rst
%{python_sitelib}/asyncssh
%{python_sitelib}/asyncssh-%{version}.dist-info
%changelog