Hello Guilers! I'm pleased to announce Guile-SSH 0.16.2: https://github.com/artyom-poptsov/guile-ssh/releases/tag/v0.16.2 As usual, this release tag is signed with my GPG key[1]. This release fixes errors in tests related to libssh 0.10. Guile-SSH 0.16.2 API should be backward-compatible with Guile-SSH 0.16.1 and 0.16.0. Also now you can read the Guile-SSH documentation online here: Or here (through the Yggdrasil[2] network): Please note that: 1. The Yggdrasil access is experimental and there's no guarantees; the actual Yggdrasil IPv6 address can be found on the main page of the site: 2. The site itself is self-hosted so sometimes it is a bit flacky. * What is Guile-SSH? Guile-SSH is a library that provides access to the SSH protocol[3] for programs written in GNU Guile interpreter. It is built upon the libssh[4] library. Currently Guile-SSH provides the following features: - The API that is sufficient for building of standalone SSH clients and servers, or for embedding client/server functionality in your lispy Scheme applications. - Several authentication methods are supported, including password authentication, public key and SSH agent authentication methods. - Key management procedures: you can make key pairs, read keys from files, get key hashes, get public keys from private keys etc. DSS, RSA, RSA1 and ECDSA (by means of OpenSSL) are supported. - Port forwarding procedures and high-level API for creating of SSH tunnels. - Distributed forms ('dist-map', 'distribute', ...) that allow to spread the evaluation of Scheme code between remote hosts. Or you can just connect to a remote REPL from Scheme using 'with-ssh' procedure and evaluate some expressions. No special server needed on the remote side, just an SSH daemon and GNU Guile installed! - SFTP client API allows you to read and write remote files, or do directory traversal over the SSH protocol right from the Scheme code. - Remote popen API that allows you to make either input, output or bidirectional pipes to remote processes. - Detailed documentation in Texinfo format with examples included, even more examples in 'examples' directory. - Procedures for interaction with SSH agents. * The list of user-visible changes Here's the list of user-visible changes between 0.16.0 and 0.16.2 (an excerpt from NEWS file): --8<---------------cut here---------------start------------->8--- * Changes in version 0.16.2 (2023-01-02) ** Bugfix in test "string->public-key, ECDSA" The test used to explicitly compare libssh version with "9" so it would always fail on platforms with libssh 0.10. Now the test does numerical comparison and uses "ecdsa-p256" on platforms that have libssh 0.9 or later version. Reported by Vagrant Cascadian, here: * Changes in version 0.16.1 (2022-12-31) ** Disable the tests that require DSA algorithm by default When DSA support is disabled in libssh (which is the default state since libssh 0.10) all DSA-related Guile-SSH procedures will fail. Now Guile-SSH disables by default all the tests that are require the DSA algorithm support by default. Although those changes do not affect the Guile-SSH API directly, users should be aware that DSA support will be removed altogether in the next major libssh release. Reported by Vagrant Cascadian, here: ** Add '--enable-dsa' Autoconf option 'configure.ac' now has '--enable-dsa' option that allows to enable DSA public key algorithm support in Guile-SSH. ** (ssh version): 'dsa-support?': New procedure ** guix.scm: Use libssh 0.10.0 The development GNU Guix environment now uses libssh 0.10.0. --8<---------------cut here---------------end--------------->8--- Many thanks to all the people who helped me with bug reports, pull requests and other hints. I added all contributors to "AUTHORS" and "THANKS" files -- please let me know if I forgot to thank someone or if there any typos. - Artyom -- Artyom "avp" Poptsov Home page: https://memory-heap.org/~avp/ CADR Hackerspace co-founder: https://cadrspace.ru/ GPG: D0C2 EAC1 3310 822D 98DE B57C E9C5 A2D9 0898 A02F