Hello Guilers, I'm pleased to announce Guile-SSH 0.11.2: https://github.com/artyom-poptsov/guile-ssh/releases/tag/v0.11.2 Please find the package signed with my GPG key[1] here: - ftp://memory-heap.org/software/guile-ssh/guile-ssh-0.11.2.tar.gz - ftp://memory-heap.org/software/guile-ssh/guile-ssh-0.11.2.tar.gz.sig This is a bugfix release. Most of the changes address Guile-SSH issues related to GNU Guile 2.2 support. The release also includes a fix for segmentation faults that occured when a freed Guile-SSH channel is printed or converted. For details, please see the list of user-visible changes below. Thanks for all the contributions, they where very helpful. Contributors listed in the documentation, 'AUTHORS' and 'THANKS' files included in the distribution. * What is Guile-SSH? Guile-SSH is a library that provides access to the SSH protocol[2] for programs written in GNU Guile interpreter. It is built upon the libssh[3] 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 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. * The list of user-visible changes Here's the list of user-visible changes (an excerpt from NEWS file): --8<---------------cut here---------------start------------->8--- * Changes in version 0.11.2 (2017-06-18) ** Bugfixes *** Always reset the channel and sftp streams when closing ports In Guile 2.2 objects (and thus Guile-SSH channels) are finalized in a separate finalizer thread, but libssh does not work properly in such a multi-threaded fashion -- which leads to segfaults in Guile-SSH. To address that problem the following changes are made: - In (ssh dist node) REPL channels opened in 'node-eval' are closed explicitly. - Channels and SFTP streams are always reset when closing ports. Thanks to Ludovic Courtès for the patches! Reported by Ludovic Courtès and Mark H Weaver, in *** In (ssh dist node) **** 'node-guile-version' now does not fail The procedure would always fail to get Guile version. Now that should be fixed. Reported by Mark H Weaver and Ludovic Courtès, in *** In (ssh session) **** 'session-set!' now throws an option with its value on an error *** In (ssh channel) **** Printing a channel now works with Guile 2.2 **** 'channel-get-exit-status' handle freed channels properly 'channel-get-exit-status' now handles freed channels properly by throwing 'wrong-type-arg' error. **** Printing a freed channel doesn't lead to SIGSEGV anymore Guile-SSH would always crash with SIGSEGV errors when tried to print a freed channel object (e.g. after calling 'close' on a channel). This bug is fixed now by introducing new checks. Now a freed channel will be printed like this: # ** Update unit tests *** Add test cases for fixed bugs ** Misc *** Improve logging --8<---------------cut here---------------end--------------->8--- Happy hacking! - Artyom [1] https://pgp.mit.edu/pks/lookup?search=0x0898A02F&op=index [2] https://en.wikipedia.org/wiki/Secure_Shell [3] https://www.libssh.org/ -- Artyom V. Poptsov ; GPG Key: 0898A02F Home page: http://poptsov-artyom.narod.ru/