[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[ANN] Guile-SSH 0.11.2 released
From: |
Artyom V . Poptsov |
Subject: |
[ANN] Guile-SSH 0.11.2 released |
Date: |
Sun, 18 Jun 2017 09:31:44 +0300 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux) |
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
<https://bugs.gnu.org/26976>
*** 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
<https://bugs.gnu.org/26976>
*** 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:
#<unknown channel (freed) 9412f0>
** 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 <address@hidden>; GPG Key: 0898A02F
Home page: http://poptsov-artyom.narod.ru/
signature.asc
Description: PGP signature
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [ANN] Guile-SSH 0.11.2 released,
Artyom V . Poptsov <=