guile-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[ANN] Guile-SSH 0.16.3 released


From: Artyom V. Poptsov
Subject: [ANN] Guile-SSH 0.16.3 released
Date: Sun, 29 Jan 2023 20:14:16 +0300
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux)

Hello Guilers!

I'm pleased to announce Guile-SSH 0.16.3:
  https://github.com/artyom-poptsov/guile-ssh/releases/tag/v0.16.3

As usual, this release tag is signed with my GPG key[1].

This release fixes "channel leak" error reported by GNU Guix users.

Guile-SSH 0.16.3 API should be backward-compatible with Guile-SSH
0.16.2, 0.16.1 and 0.16.0.

You can read the Guile-SSH documentation online here:
  <https://memory-heap.org/~avp/projects/guile-ssh/manual/>

Or here (through the Yggdrasil[2] network):
  <http://[209:81d:7123:9c1:7a4:586e:2c54:37af]/~avp/projects/guile-ssh/manual/>

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: <https://memory-heap.org/~avp/>

  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:

--8<---------------cut here---------------start------------->8---
* Changes in version 0.16.3 (2023-01-29)
** Fix Guile-SSH/libssh channel leak
Guile-SSH channel would always "leak" the libssh channels when the remote side
issued the closing request.  Now this bug is fixed by freeing libssh channel
when the remote side is closed.

Reported by Andrew Tropin <andrew@trop.in> in
<https://debbugs.gnu.org/cgi/bugreport.cgi?bug=58290>

The test for reproducing the problem was provided by Ludovic Courtès
<ludo@gnu.org>.
--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

References:
1. https://pgp.mit.edu/pks/lookup?search=0x0898A02F&op=index
2. https://yggdrasil-network.github.io/
3. https://en.wikipedia.org/wiki/Secure_Shell
4. https://www.libssh.org/

-- 
Artyom "avp" Poptsov <poptsov.artyom@gmail.com>
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

Attachment: signature.asc
Description: PGP signature


reply via email to

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