* [ANN] Guile-SSH 0.7.0 released
@ 2014-08-31 19:38 Artyom Poptsov
0 siblings, 0 replies; only message in thread
From: Artyom Poptsov @ 2014-08-31 19:38 UTC (permalink / raw
To: Guile Users' Mailing List
Hello Guilers!
I'm pleased to announce Guile-SSH 0.7.0:
https://github.com/artyom-poptsov/guile-ssh/releases/tag/v0.7.0
Also you can find the Guile-SSH 0.7.0 archive signed with my GPG key [1]
on my FTP server:
ftp://memory-heap.org/software/guile-ssh/
This release includes lots of changes, namely:
- Migration to libssh 0.6.3 was done.
- Bug with premature GC'ing of Guile-SSH objects was fixed: Objects
such as sessions won't be GC'ed as long as their child objects (such
as channels) are alive.
- Bug with segmentation faults in (ssh channel) procedures was fixed:
Procedures now handle freed channels by means of throwing of an
exception.
- Bug with predicates `public-key?' and `private-key?' was fixed:
Predicates now return `#f' for a non-key object instead of throwing
of an exception.
- New (ssh log) module that provides a way to manage libssh logging
facilities. As a consequence, Guile-SSH now works better with Emacs
Scheme REPL mode thanks to the default log printer procedure which
comments out libssh log messages with `;;; ', so they don't mix with
the actual output from procedures.
- New procedures: `userauth-public-key/try', `bytevector->hex-string',
`session-get', `channel-get-session', `message-get-session'.
- Some of procedures got better names (such as
`userauth-public-key!').
- Printing of Guile-SSH objects was improved, consequently you can get
useful information about objects at glance.
- New bug-catching tests were added.
- Examples of Guile-SSH usage were added to the documenation (see
"Examples" chapter).
Please note that some of the changes break the backward compatibility,
so you will probably need to make some changes to your application to
make it work with this release.
Here is an excerpt from the NEWS file that contains longer and more
detailed list of user-visible changes:
--8<---------------cut here---------------start------------->8---
* Changes in version 0.7.0 (2014-08-31)
** Require GNU Guile 2.0
** Require libssh 0.6.3
** Change `get-public-key-hash'
*** Move the procedure to (ssh key)
*** Return the hash as a bytevector
*** Accept a public key as the first argument
*** Accept a hash type as the second argument
Possible types are: 'md5, 'sha1
** (ssh auth) procedures now throw an exception if the session is not connected
** (ssh channel) procedures now handle closed and freed channels
- `channel-open?' returns `#f' if the channel has been closed freed.
- `channel-open-session' and `channel-eof?' throw to `guile-ssh-error' if
the channel has been closed and freed.
- `channel-request-env', `channel-request-exec', `channel-request-pty',
`channel-request-shell', `channel-set-pty-size!', `channel-set-stream!',
`channel-get-stream' now throw `wrong-type-arg` if the channel is closed.
** Some (ssh session) procedures now throw an exception if the session is not connected
These procedures are:
- `get-protocol-version'
- `authenticate-server'
- `get-server-public-key'
- `write-known-host!'
** Change `userauth-pubkey!'
*** Rename it to `userauth-public-key!'
*** Change arguments
** `blocking-flush!' now returns `error' symbol on error
instead of throwing of an exception
** `connect!' now returns `error' symbol on error
instead of throwing of an exception
** `authenticate-server' now returns `error' symbol on error
instead of throwing of an exception
** `private-key-from-file' now takes only a file name
** New (ssh log) module
** Rename `userauth-pubkey-auto!' to `userauth-public-key/auto!'
** New `userauth-public-key/try' procedure in (ssh auth)
** New `bytevector->hex-string' procedure in (ssh key)
** New `session-get' procedure in (ssh session)
** New `channel-get-session' procedure in (ssh channel)
** New `message-get-session' procedure in (ssh message)
** Improve printing of Guile-SSH objects
*** Print more detailed information about `session' object
Print user name, host name and current state of a `session' object.
*** Print object address for `channel' object
*** Print object address for `message' object
*** Print object address for `key' object
** Changes in tests
*** Add tests for Guile-SSH keys
*** Add tests for `authenticate-server' procedure
** Bug fixes
*** Fix a GC issue
Keep a reference to the parent session in channels and messages to prevent
the session from premature GC'ing. Without that GC could free a session
even if there are live channels and by that break the channels.
*** `public-key?' and `private-key?' now produce correct result
Functions now return `#f' if the given argument is not a Guile-SSH
key object.
** Documentation update
*** Fix old URLs to Guile-SSH repository in the `Installation' chapter
*** Add an overview of programming with Guile-SSH to the "Examples" chapter
--8<---------------cut here---------------end--------------->8---
Known bugs:
--8<---------------cut here---------------start------------->8---
** Guile-SSH does not work properly if libssh is compiled with GCrypt
instead of OpenSSL.
--8<---------------cut here---------------end--------------->8---
Guile-SSH 0.7.0 was tested on the following GNU/Linux distributions:
Gentoo (Base System release 2.2), Debian 7.6 (wheezy).
This release of Guile-SSH, as the previous ones, was prepared in hope
that the program will be useful. So please don't hesitate to mail me
any comments, sugguestions and (especially) bug reports.
Thanks,
- Artyom
[1] http://pgp.mit.edu:11371/pks/lookup?op=get&search=0xE9C5A2D90898A02F
--
Artyom V. Poptsov <poptsov.artyom@gmail.com>; GPG Key: 0898A02F
Home page: http://poptsov-artyom.narod.ru/
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2014-08-31 19:38 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-08-31 19:38 [ANN] Guile-SSH 0.7.0 released Artyom 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).