* [ANN] Guile-SSH 0.11.2 released
@ 2017-06-18 6:31 Artyom V. Poptsov
0 siblings, 0 replies; only message in thread
From: Artyom V. Poptsov @ 2017-06-18 6:31 UTC (permalink / raw)
To: Guile Users' Mailing List
[-- Attachment #1: Type: text/plain, Size: 4636 bytes --]
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 <poptsov.artyom@gmail.com>; GPG Key: 0898A02F
Home page: http://poptsov-artyom.narod.ru/
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2017-06-18 6:31 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-06-18 6:31 [ANN] Guile-SSH 0.11.2 released Artyom V. Poptsov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).