guile-user
[Top][All Lists]
Advanced

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

[ANN] Guile-SSH 0.7.0 released


From: Artyom Poptsov
Subject: [ANN] Guile-SSH 0.7.0 released
Date: Sun, 31 Aug 2014 23:38:54 +0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux)

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 <address@hidden>;  GPG Key: 0898A02F
Home page: http://poptsov-artyom.narod.ru/



reply via email to

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