guile-user
[Top][All Lists]
Advanced

[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/

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]