NEWS: auto-generated from git

Starting now, the NEWS file is generated from git using the git2news.pl
script. This makes it always accurate and up-to-date, even for daily
snapshots etc.
diff --git a/NEWS b/NEWS
index 644a090..f48ae35 100644
--- a/NEWS
+++ b/NEWS
@@ -1,791 +1,3 @@
-This release includes the following changes:
+The old NEWS file.
 
- o Added libssh2_free().  By Simon Josefsson.
- o Added libssh2_channel_get_exit_signal().  By Tommy Lindgren.
-
-libssh2 1.2.7 (August 17, 2010)
-
-This release includes the following changes:
-
- o Added Watcom makefile
-
-This release includes the following bugfixes:
-
- o Better handling of invalid key files
- o inputchecks: make lots of API functions check for NULL pointers
- o libssh2_session_callback_set: extended the man page
- o SFTP: limit write() to not produce overly large packets
- o agent: make libssh2_agent_userauth() work blocking properly
- o _libssh2_userauth_publickey: reject method names longer than the data
- o channel_free: ignore problems with channel_close()
- o typedef: make ssize_t get typedef without LIBSSH2_WIN32
- o _libssh2_wait_socket: poll needs milliseconds
- o libssh2_wait_socket: reset error code to "leak" EAGAIN less
- o Added include for sys/select.h to get fd.set on some platforms
- o session_free: free more data to avoid memory leaks
- o openssl: make use of the EVP interface
- o Fix underscore typo for 64-bit printf format specifiers on Windows
- o Make libssh2_debug() create a correctly terminated string
- o userauth_hostbased_fromfile: packet length too short
- o handshake: Compression enabled at the wrong time
- o Don't overflow MD5 server hostkey
-
-libssh2 1.2.6 (June 10, 2010)
-
-This release includes the following changes:
-
- o Added libssh2_sftp_statvfs() and libssh2_sftp_fstatvfs()
- o Added libssh2_knownhost_checkp()
- o Added libssh2_scp_send64()
-
-This release includes the following bugfixes:
-
- o wait_socket: make c89 compliant and use two fd_sets for select()
- o OpenSSL AES-128-CTR detection
- o proper keyboard-interactive user dialog in the sftp.c example
- o build procedure for VMS
- o fixed libssh2.dsw to use the generated libssh2.dsp
- o several Windows-related build fixes
- o fail to init SFTP if session isn't already authenticated
- o many tiny fixes that address clang-analyzer warnings
- o sftp_open: deal with short channel_write calls
- o libssh2_publickey_init: fixed to work better non-blocking
- o sftp_close_handle: add precation to not access NULL pointer
- o sftp_readdir: simplified and bugfixed
- o channel_write: if data has been sent, don't return EAGAIN
-
-Version 1.2.5 (April 13, 2010)
-
-This release includes the following changes:
-
- o Added Add keep-alive support: libssh2_keepalive_config() and
-   libssh2_keepalive_send()
- o Added libssh2_knownhost_addc(), libssh2_init() and libssh2_exit()
- o Added LIBSSH2_SFTP_S_IS***() macros
-
-This release includes the following bugfixes:
-
- o fix memory leak in libssh2_session_startup()
- o added missing error codes - shown as hangs in blocking mode
- o fix memory leak in userauth_keyboard_interactive()
- o libssh2_knownhost_del: fix write to freed memory
- o Send and receive channel EOF before sending SSH_MSG_CHANNEL_CLOSE
- o Use AES-CTR from OpenSSL when available
- o Fixed gettimeofday to compile with Visual C++ 6
- o NULL dereference when window adjusting a non-existing channel
- o avoid using poll on interix and mac os x systems
- o fix scp memory leak
- o Correctly clear blocking flag after sending multipart packet
- o Reduce used window sizes by factor 10
- o libssh2_userauth_publickey_fromfile_ex() handles a NULL password
- o sftp_init() deal with _libssh2_channel_write() short returns
-
- o Use poll instead of select when available.  By Paul Querna.
-
- o Add APIs to have libssh2 automatically send keep-alive requests.
-   The APIs are libssh2_keepalive_config, and libssh2_keepalive_send.
-   By Simon Josefsson.
-
- o Add global init/exit points, to do crypto initialization in one place.
-   The APIs are libssh2_init and libssh2_exit.  By Lars Nordin.
-
-* (February 15 2010) Daniel Stenberg:
-- Added 46 new man pages for public convenience macros. The man pages  are
-  just short redirects to the actual underlying function. The were all
-  initially created by a script.
-
-- Committed the patch by Yoichi Iwaki in bug #2929647, which fixed a memory
-  leak when an 'outbuf' was still allocated when a session was freed.
-
-Version 1.2.4 (February 13, 2010)
-
- o Resolve compile issues on Solaris x64 and UltraSPARC
- o Allow compiling with OpenSSL when AES isn't available
- o Fix Tru64 socklen_t compile issue with example/direct_tcpip.c
-
-Version 1.2.3 (February 3, 2010)
-
- o Added libssh2_trace_sethandler()
- o Added the direct_tcpip.c example
- o Fixed memory leak in userauth_publickey
- o Added support for authentication via SSH-Agent.  By Daiki Ueno.
-
- o Respond to unknown SSH_MSG_GLOBAL_REQUEST/SSH_MSG_CHANNEL_REQUEST
-   with SSH_MSG_REQUEST_FAILURE/SSH_MSG_CHANNEL_FAILURE in order to
-   make (at least) OpenSSH server keepalive work.  Before OpenSSH
-   servers (configured with a positive ClientAliveInterval) would
-   terminate connections against libssh2 clients because libssh2 did
-   not respond properly to the request.  By Simon Josefsson.
-
-Version 1.2.2 (November 16, 2009)
-
-* This release includes the following changes:
-
-  o Fix crash when server sends an invalid SSH_MSG_IGNORE message.
-    Reported by Bob Alexander <balexander@expressor-software.com> in
-    <http://thread.gmane.org/gmane.network.ssh.libssh2.devel/2530>.
-    By Simon Josefsson.
-
-  o Support for the "aes128-ctr", "aes192-ctr", "aes256-ctr" ciphers
-    as per RFC 4344 for libgcrypt and OpenSSL.  They are now the
-    preferred ciphers.  By Simon Josefsson.
-
-  o Support for the "arcfour128" cipher as per RFC 4345 for libgcrypt
-    and OpenSSL.  It is preferred over the normal "arcfour" cipher
-    which is somewhat broken.  By Simon Josefsson.
-
-  o Add support for GCC visibility features.  By Cristian Rodríguez.
-
-  o Fix libssh2_channel_forward_accept.  By Juzna.
-
-  o Generate Win32 files correctly.   By Peter Stuge.
-
-  o Fix permission issue in ssh2 self test.  By Dan Fandrich.
-
-  o Use memmove instead of memcpy in one place which copies
-    overlapping memory areas.
-
-  o Cleanup hard coding of cipher modes in libgcrypt backend.  By Simon.
-
-  o Added man page for libssh2_knownhost_free.  By Daniel.
-
-Version 1.2.1 (September 28, 2009)
-
-* This release includes the following changes:
-
-  o generate and install libssh2.pc
-
-  ... and the following bugfixes:
-
-  o proper return codes returned from several functions
-  o return EAGAIN internal cleanup
-  o added knownhost.c to windows makefiles
-  o pass private-key to OpenSSL as a filename with BIO_new_file().
-  o make libssh2_scp_send/recv do blocking mode correctly
-  o libssh2_channel_wait_closed() could hang
-  o libssh2_channel_read_ex() must return 0 when closed
-  o added gettimeofday() function for win32 for the debug trace outputs
-  o transport layer bug causing invalid -39 (LIBSSH2_ERROR_BAD_USE) errors
-  o scp examples now loop correctly over libssh2_channel_write()
-
-* (August 29 2009) Daniel Stenberg:
-
- - I fixed all code to use the recently added dedicated linked list functions
-   instead of doing the same stuff spread out all over.
-
- - I also fixed a few cases where local variables where used to keep memory
-   but was used to keep state for re-invokes due to non-blocking situations
-   which would lead to segfaults.
-
-Version 1.2 (August 10, 2009)
------------------------------
-
-* (August 02 2009) Alexander Lamaison:
-
- - changed _libssh2_rsa_new_private and _libssh2_rsa_new_private so that they
-   no longer use the OpenSSL functions that take a FILE* argument.  Passing
-   CRT-created objects across a DLL boundary causes crashes on Windows of the
-   DLL and the client aren't linked to the exact same verison of the CRT. Now
-   we pass the keys as strings to avoid this issue.
-
-* (May 29 2009) Daniel Stenberg:
-
- - Updated the knownhost API and there are now 9 functions, and all of them
-   have man pages. The libssh2.h now defines HAVE_LIBSSH2_KNOWNHOST_API to
-   ease things for applications to check for the correct release before trying
-   to use it.
-
-* (May 23 2009) Daniel Stenberg:
-
- - Anonymous bug report #2795816 revealed that doing subsequent
-   libssh2_sftp_init() calls on the same session failed.
-
-* (May 20 2009) Daniel Stenberg:
-
-  - made libssh2_sftp_write() properly deal with huge/any sized input buffers.
-
-  - fixed libssh2_channel_write_ex() to return the correct return code, and
-    deal with sending off huge buffers better
-
-* (May 7 2009) Daniel Stenberg:
-
-  - linked list code. I got a bit tired of the fact that we don't have any
-    generic linked-list functions within libssh2 so I wrote up the first embryo
-    for one that I use for this new functionality. The plan would then be to
-    move all existing code that uses linked lists to use this new set.
-
-  - base64 encode. I had to add a base64 encoding function which was missing
-    in the code base so it helps to "bloat" my patch.
-
-  - The knownhost API is currently:
-
-    _init() - init a bundle of known hosts
-    _add()  - add a known host
-    _del()  - delete a known host
-    _free() - free an entire bundle of known hosts
-    _check() - check if a host+key is present in the bundle
-
-    The convenience function:
-
-    _parsefile() - reads a ~/.ssh/known_hosts file and add all entries to the
-                   given bundle
-
-   - there's no docs other than some comments in the code/headers yet
-
-  - the patch includes changes to example/simple/ssh2_exec.c that makes use of
-    a few of these functions. Using that I've verified that the functions in
-    fact can verify my localhost's key agains my ~/.ssh/known_hosts file
-
-* (Apr 30 2009) Daniel Stenberg:
-
-  Markus posted a bug report about a bad 0-return from libssh2_channel_read:
-  http://libssh2.haxx.se/mail/libssh2-devel-archive-2009-04/0076.shtml
-
-  And it was indeed a bad loop that terminated too early due to a receveived
-  close packet.
-
-* (Apr 14 2009) Daniel Stenberg:
-
-  libssh2_poll() and libssh2_poll_channel_read() are now considered and
-  documented deprecated and they will be removed at next soname bump. It also
-  saves us from fixing some rather quirky bugs in libssh2_poll()...
-
-
-Version 1.1 (April 2, 2009)
----------------------------
-
-- (Mar 28 2009) Daniel Stenberg:
-
-  Jean-Louis Charton found a memory leak in
-  libssh2_userauth_hostbased_fromfile_ex()
-
-- (Mar 25 2009) Daniel Stenberg:
-
-   * Renamed the functions in src/transport.c to be _libssh2_transport_ prefixed
-     and introduced a transport.h header.
-
-   * Fixed the blocking mode to only change behavior not the actual underlying
-     socket mode so we now always work with non-blocking sockets. This also
-     introduces a new rule of thumb in libssh2 code: we don't call the
-     external function calls internally. We use the internal (non-blocking)
-     ones!
-
-   * libssh2_channel_receive_window_adjust2 was added and
-     libssh2_channel_receive_window_adjust is now deprecated
-
-   * Introduced "local" header files with prototypes etc for different parts
-     instead of cramming everything into libssh2_priv.h. channel.h is the
-     first.
-
-- (Mar 19 2009) Daniel Stenberg: based on a patch by "E L" we now use errno
-  properly after recv() and send() calls (that internally are now known as
-  _libssh2_recv() and _libssh2_send()) so that the API and more works fine on
-  windows too!
-
-- (Mar 17 2009) Simon Josefsson:
-
-  Added a Libtool -export-symbols-regex flag to reduce the number of
-  exported symbols in shared libraries.  Reported by Mikhail Gusarov.
-
-- (Mar 16 2009) Daniel Stenberg:
-
-  I renamed a few man pages to match the exact name of the functions they
-  describe. I also added template versions for the 13 functions that
-  previously lacked man pages. While these don't contain any docs just yet, it
-  will now be easier to add the info as the foundation is there!
-
-- (Mar 15 2009) Daniel Stenberg:
-
-  * libssh2_channel_read_ex() was simplified and enhanced. It now adjusts the
-    window less frequent and uses much larger window that now allows MUCH
-    faster transfers.
-
-  * SCP send/recv now allow file names with whitespaces etc, thanks to a patch
-    by Heiner Steven
-
-- (Mar 13 2009) Daniel Stenberg: Cleanups, that do seem to have boosted SFTP
-  download performance up to 300% in some tests:
-
-  * cut off "_ex" from several internal function names
-
-  * corrected some log outputs
-
-  * simplified libssh2_channel_read_ex() and made it much faster in the process
-
-  * cut out {{{ and }}} comments that were incorrect anyway
-
-  * fixed sftp_packet_ask() to return the correct packet by using memcmp() and
-    not strncmp()
-
-  * fixed mkdir()'s wait for packet to use the correct request_id - it
-    semi-worked previously because strncmp() in sftp_packet_ask() made it
-    match far too easily.
-
-  * took away the polling functionality from sftp_packet_ask() since it wasn't
-    used
-
-- (Mar 7 2009) Olivier Hervieu pointed out a flaw in the
-  libssh2_channel_x11_req_ex() function that made it produce a crappy random
-  chunk of data. Peter Stuge improved the fix to not do out-of-boundary
-  writes. I (Daniel Stenberg) replaced the snprintf() with a plain sprintf()
-  since the size argument wasn't adding anything anyway.
-
-- (Feb 23 2009) Added libssh2_version()
-
-- (Feb 20 2009) libssh2_channel_direct_tcpip_ex() bug #1902169 fixed, which
-  caused it to fail when called a second time.
-
-- (Feb 12 2009) Romain Bondue extended Markus Moeller fix from Feb 8, based on
-  a previous (uncommitted) patch by Erik Brossler. It improves
-  libssh2_channel_write_ex in blocking situations when the socket is set non-
-  blocking.
-
-- (Feb 8 2009) Markus Moeller fixed a flaw in libssh2_channel_write_ex() that
-  would occur on EAGAIN situations.
-
-Version 1.0 (December 26 2008)
-------------------------------
-
-- (Dec 20 2008) Based on Alexander Lamaison's patch, there's now a new
-  function called libssh2_sftp_tell64() that returns the 64 bit file offset,
-  as the existing libssh2_sftp_tell() only returns a size_t.
-
-- (Dec 18 2008) Markus Moeller fixed the issue also reported by Alexander
-  Lamaison which caused SFTP reads with large buffers to fail.
-
-- Several flaws were fixed that prevented at least SFTP to work reliably
-
-- Vlad Grachov brought the new function called
-  libssh2_session_block_directions() which returns a bitmask for what
-  directions the connection blocks. It is to be used applications that use
-  non-blocking sockets and when a libssh2 function returns
-  LIBSSH2_ERROR_EAGAIN this function can be used to figure out in which
-  direction the socket would block and thus it can wait for the socket to
-  again be ready for communication in that direction before it calls libssh2
-  again.
-
-- Vincent Jaulin brought the new libssh2_channel_request_pty_size_ex()
-  function.
-
-- Carlo Bramini fixed the build for msys+mingw. Bug #1943976.
-
-- Neil Gierman provided improved Visual Studio 2008 code in bug #1946268
-
-- Bug #1862727 fixed libssh2_poll() to work on windows (by defining
-  HAVE_SELECT).
-
-- Based on bug #1815692, we introduce libssh2_sftp_seek64() that allows
-  seeking beyond the 2GB margin even on 32bit machines.
-
-- Based on a patch in bug #1878059 by Steven Ayre libssh2 now parses >2GB file
-  sizes when downloading SCP files.
-
-- Bug #2064371 pointed out that the SSH2 banner may not use dash
-  ('-'). Reported by Bjorn Stenborg.
-
-- Sean Peterson fixed a key re-exchange bug:
-  http://daniel.haxx.se/projects/libssh2/mail/libssh2-devel-archive-2008-06/0002.shtml
-
-- Mike Protts filed the bug report #1908724 that identified and fixed a problem
-  with SFTP stat on files >4GB in size. Previously it used 32bit math only.
-
-- Removed a stderr debug message that was accidentally left in (bug #1863153)
-
-- OpenSSL and libz detection changed to make cross-compiling to Mingw
-  work.  See README for parameters to use if the auto-detection does
-  not work for you.  From Simon Josefsson.
-
-- Simon Josefsson added a self-test that uses libssh2 to connect to a
-  local sshd (only enabled if if OpenSSH is installed).
-
-Version 0.18 (November 11 2007)
--------------------------------
-
-- Various changes that improve non-blocking operations and prevent stalls.
-  Especially noticable on Windows since libssh2 just didn't work properly
-  non-blocking on Windows before.
-
-- Peter O'Gorman reported how a SCP transfer would hang for him, and it was
-  fairly easy reproducable. One bug was in the transport layer, ignoring to
-  read more data while there was data left even though it couldn't decrypt the
-  data that was left due to it being too little... The other bug was in the
-  channel layer, where the libssh2_channel_receive_window_adjust() function
-  missed to set the state variables at times and thus this function would
-  misbehave on repeated invokes.
-
-- Changed the signature of libssh2_channel_setenv_ex to add const to the
-  "varname" parameter (Dan Fandrich)
-
-- Satish Mittal and David J Sullivan fixed an infinit recv() loop in
-  libssh2_banner_receive()
-
-Version 0.17 (August 6 2007)
-----------------------------
-Changes since previous version include:
-
-   o Re-indented the source code with this GNU indent setup:
-
-      --braces-on-if-line
-      --braces-after-struct-decl-line
-      --space-after-cast
-      --line-length 79
-      --comment-line-length 79
-      --cuddle-else
-      --no-tabs
-      --tab-size 8
-      --indent-level 4
-      --no-space-after-for
-      --space-after-if
-      --space-after-while
-      --no-space-after-function-call-names
-
-Version 0.16 (August 6 2007)
-----------------------------
-Changes since previous version include:
-
-   o CRLF stripping fix for PEM reading
-   o libssh2_scp_recv() error message fix
-   o added HACKING as an initial attempt to describe our source code format
-   o new public defines in include/libssh2.h to allow applictions to figure out
-     version number etc
-   o new script (maketgz) to build releases with
-   o updated files for building with MSVC and mingw
-   o keyboard-interactive would always fail due to claimed memory problem
-   o a few minor memory leaks fixed
-   o libssh2_poll() no longer relies on C99 features
-   o AIX 4 and 5 now supports non-blocking sockets
-   o large file magic checks in configure
-   o LIBSSH2_APINO was removed from the public header file
-
-This release would not have been possible without these friendly contributors:
-
-   James Housley, Simon Josefsson, Dan Fandrich, Guenter Knauf and I too did
-   some poking. (Sorry if I forgot anyone I should've mentioned here.)
-
-Of course we would have nothing without the great work by Sara Golemon that
-we're extending and building upon.
-
-Version 0.15 (June 15 2007)
----------------------------
-  Added libssh2_sftp_readdir_ex() and updated LIBSSH2_APINO to
-  200706151200 (James Housley)
-
-  Converted all of the libssh2 code to be able to work in non-blocking
-  mode.  This included some public API changes, listed below (James Housley)
-    Changed function return values:
-     int libssh2_session_free()
-     int libssh2_publickey_shutdown()
-     ssize_t libssh2_channel_read_ex()
-     ssize_t libssh2_channel_write_ex()
-
-    Added functions:
-     libssh2_session_last_errno(), libssh2_channel_handle_extended_data2(),
-     libssh2_channel_wait_closed(), libssh2_channel_wait_eof(),
-     libssh2_session_set_blocking()
-
-    Removed functions:
-     libssh2_channel_readnb_ex(), libssh2_channel_writenb_ex(),
-     libssh2_sftp_readnb(), libssh2_sftp_writenb(),
-     libssh2_sftp_mkdirnb_ex()
-
-  Added the following functions for non-blocking operations: (Daniel Stenberg)
-   libssh2_channel_readnb_ex()
-   libssh2_channel_writenb_ex()
-   libssh2_sftp_readnb()
-   libssh2_sftp_writenb()
-
-  Size parameter changed from 'int' to 'unsigned int' in several
-  public APIs.
-
-  Added (a few) man pages in docs/. (Daniel Stenberg)
-
-  Maximum SSH packet size is now some 35000 bytes.
-
-  Private include files are now in src/ and only public headers are in
-  include/.  (Daniel Stenberg)
-
-  Automake and libtool are being used (increased portability). (Daniel
-  Stenberg)
-
-  Fixed OpenSSL detection using pkg-config. (Daniel Stenberg)
-
-  Simple self test added to tests/. (Simon Josefsson)
-
-  Libgcrypt can now be used instead of OpenSSL if you specify
-  --with-libgcrypt.  (Simon Josefsson)
-
-  Fixed a memory leak in the packet handling, and better handle out of
-  memory situations. (Dan Fandrich)
-
-  Made libssh2 build with OpenSSL 0.9.6. (Dan Fandrich)
-
-  Improved portability to Solaris related to -lsocket and
-  -lnsl. (Simon Josefsson)
-
-  Clean up of README, INSTALL, NEWS, added ChangeLog. (Simon
-  Josefsson)
-
-  Improve debugging code.  Avoids many #ifdef's.
-
-  Improved session closing to avoid potentially truncated files on
-  OpenSSH servers (Dan Fandrich)
-
-  Made some function parameters in the API const (Dan Fandrich)
-
-Version 0.14
-------------
-
-  Plug leaks in EVP cipher init/shutdown. (Selcuk Gueney)
-
-  Allow socket_fd == 0 in libssh2_session_startup(). (puudeli)
-
-  Swap ordering of packet_add/packet-inspection to avoid inspect after
-  free. (Selcuk)
-
-  Swap KEX_INIT ordering, send our KEX_INIT first.
-
-  Add check for oportunistic KEX_INIT packets.  Burn bad guess if necessary.
-
-  Fix OpenSSL detection using pkg-config. (Dan Casey)
-
-Version 0.13
-------------
-
-  Fixed channel not being marked closed when CHANNEL_CLOSE package cannot be
-  sent. (David Robins)
-
-  Fixed payload packet allocation bug when invalid packet length
-  received. (David Robins)
-
-  Fixed `make install' target for MacOSX.
-
-  Add terminating NULL character to readlink()/realpath() results.
-
-  BugFix#1436593: Apply build options for HPUX targets.
-
-Version 0.12
-------------
-
-  Added support for publickey subsytem (not the same as publickey auth).
-
-  Fix x11_req.  Multiple packet_len issues and error handling logic.
-    (Thanks Simon Hart)
-
-  Fix generation of 'e' portion of Diffie-Hellman keyset.
-
-  Use appropriate order for BN_rand() rather than fixed group1-specific value.
-
-  Re-fixed libssh2_sftp_rename_ex()
-
-  Transport had right packet_len, but sftp layer still had extra 4 bytes.
-
-  Fixed build with newer OpenSSL headers.
-
-  Added extern "C" declarations to libssh2_sftp.h for C++ compatability.
-
-Version 0.11
-------------
-
-  Added libssh2_chnnale_get_exit_status() -- Mikhail
-
-  Added libssh2_channel_wait_closed() -- Mikhail
-
-  Added libssh2_userauth_keyboard_interactive_ex() -- Mikhail
-
-  Added libssh2_channel_receive_window_adjust() to be able to increase the
-  size of the receive window.
-
-  Added queueing for small window_adjust packets to avoid unnecessary packet
-  conversation.
-
-  Fixed libssh2_sftp_rename_ex() to only send flags parameter if version >= 5
-  negotiated (not currently possible, but will be and might as well keep the
-  API consistent).
-
-Version 0.10
-------------
-
-  Added developer debugging hooks.  See --enable-debug-* options to ./configure
-
-  Ignore extended data in the SFTP layer.  With no other mechanism to deal
-  with that data it'd just fill up and get stuck.
-
-  (Re)Fixed channel_write() to provide an opportunity for window space to
-  become available again.
-
-  (Re)Fixed SFTP INIT to send the correct SFTP packet length.
-
-  Fixed segfault when client and host can't agree on a hostkey/crypt/mac/comp
-  method. (Thanks puudeli)
-
-  Fixed major issue with sftp packet buffering mechanism.  Using wrong
-  blocking semantics. (No puudeli, YOU the man)
-
-  Reduced busy-looping of libssh2_sftp_packet_requirev.
-
-Version 0.9
------------
-
-  Changed blocking_read to only block as much as necessary and not an
-  arbitrary length of time. (Thanks Felix)
-
-  Fixed SFTP INIT/VERSION to exclude request_id and send correct maximum
-  version number.
-
-  Fixed SFTP to be properly BC with version 1 and 2 servers.
-
-  Fixed libssh2_poll() to recognized closed sessions/channels.
-
-  Fixed libssh2_channel_write_ex() to fully block when set to blocking mode.
-  Return actual bytes written as well.  (Thanks deadem)
-
-  Added tests for -lm and -lsocket and add them when necessary.
-
-  Added libssh2_channel_window_read_ex() and libssh2_channel_window_write_ex()
-  for examining the ssh transport windowing states.
-
-Version 0.8
------------
-
-  Fix potential segfault in compression/decompression.
-
-  Fix compatability with older versions of OpenSSL
-
-  Swapped order of none,zlib compression modes to prefer no compression by
-  default.
-
-  Added sys/uio.h for platforms (FBSD) which need it in order to define struct
-  iovec.
-
-  Added libssh2_poll() to check status of sockets/channels/listeners.
-
-  Removed unnecessary inclusion of stdio.h (holdover from debugging)
-
-Version 0.7
------------
-
-  Added libssh2_userauth_hostbased_fromfile_ex() for authenticating from hostkey.
-
-  Added configure recognition for MacOSX (Darwin) (Thanks Gabe)
-
-  Fixed extended data identification in libssh2_channel_read().
-
-  Fixed window adjust code.  Hadn't acknowledged adjustments correctly.
-
-  Removed initial_window_size requirement for sending window adjust packet.
-
-
-Version 0.6
------------
-
-  Added LIBSSH2_FLAG_SIGPIPE to enable/disable SIGPIPE generated by
-  send()/recv() calls. Default off.
-
-  Added libssh2_session_flag() to set optional session flags.
-
-  Collapsed exchanging_keys/newkeys/authenticated flags into single state
-  attribute.
-
-  Fix zlib compression issue when internal buffer state misses partial sync.
-
-  Fix segfault when libssh2_session_methods() is called prior to
-  session_startup().
-
-  Fixed client to server channel windowing.  Pervent send queue overruns.
-
-  Swapped banner send/receive order (send first, then wait for response).
-
-Version 0.5
------------
-
-  *** BC Break ***
-  Reimplemented libssh2_session_methods() to match
-  libssh2_session_method_pref() style
-
-  Fixed libssh2_attr2bin() (effects any setstat style call).
-
-  Fixed authenticating with encrypted private key.
-
-  Fixed authenticating via ssh-dss public key.
-
-  Fixed KEX_INIT cookie and packet padding to use actual random data
-
-  Added DESTDIR support to makefiles (Adam Go³êbiowski -- I hope that
-  character set translates right)
-
-  Added libssh2_channel_forward_listen_ex(), libssh2_channel_forward_cancel(),
-  and libssh2_channel_forward_accept().
-
-  Added ./configure option '--disable-gex-new' to allow using the older
-  group-exchange format
-
-  Added MAC methods hmac-md5 and hmac-md5-96.
-
-Version 0.4
------------
-
-  Fixed crash when trying to free sftp_dirhandle data from a filehandle struct.
-
-  Fixed leak in sftp_open_ex(), handle->handle not freed in handle_close().
-
-  Fixed leak in sftp_symlink_ex(), result for READLINK and REALPATH not freed unless there was an error.
-
-  Added libssh2_banner_set(), specify an arbitrary banner to send on introduction.
-
-Version 0.3
------------
-
-  Fixed libssh2_channel_read_ex().  Packet loop initialized BEFORE transport polled for new packets (should have been after).
-
-  Fixed blocking issues in scp_send()/scp_recv().
-
-  Fixed degree of indirection in macerror callback.
-
-  Changed packet read mechanism to use a fixed buffer and avoid unnecessary alloc/free calls. (especially while non-block looping)
-
-  Added channel close callback.
-
-  Added SFTP support (Using its own header file: libssh2_sftp.h)
-
-Version 0.2
------------
-
-  Changed extended data ignorance mechanism:
-    libssh2_channel_ignore_extended_data() changed to libssh2_channel_handle_extended_data()
-    Macro introduced for backward compatability during beta phase.
-    *** THE LIBSSH2_CHANNEL_IGNORE_EXTENDED_DATA() MACRO WILL BE REMOVED PRIOR TO 1.0 RELEASE ***
-    libssh2_channel_handle_extended_data() may be passed one of three "ignore_mode" constants
-      LIBSSH2_CHANNEL_EXTENDED_DATA_NONE       Default behavior, queue ED packets and return them with read_ex
-      LIBSSH2_CHANNEL_EXTENDED_DATA_IGNORE     Equivalent to libssh2_channel_ignore_extended_data()
-                                               IGNORE will implicitly flush the extended data stream(s)
-      LIBSSH2_CHANNEL_EXTENDED_DATA_MERGE      Calls to channel_read() will check both the standard data stream
-                                               and the extended data stream(s) for the first available packet
-
-  Changed libssh2_session_disconnect_ex() to return an error code when alloc fails
-
-  Added libssh2_channel_flush_ex() and basic macros: ..._flush() ..._flush_stderr()
-    flush_ex accepts either the streamid (0 for standard data, 1 for stderr) or one of the two following constants:
-      LIBSSH2_CHANNEL_FLUSH_ALL                Flush all streams
-      LIBSSH2_CHANNEL_FLUSH_EXTENDED_DATA      Flush all streams EXCEPT the standard data stream
-
-  Added libssh2_session_callback_set() for setting ignore/debug/disconnect/macerror callbacks
-
-  Added libssh2_session_method_pref() to selectively set methods and method preferences.
-
-  Added libssh2_session_methods() to determine what methods were negotiated.
-
-  Added libssh2_session_abstract() for retreiving &session->abstract
-
-  Added libssh2_session_last_error() for retreiving error codes/messages
-
-Version 0.1
------------
-
-  Initial Release:
-    KEX methods: diffie-hellman-group14-sha1, diffie-hellman-group-exchange-sha1, diffie-hellman-group1-sha1
-    Hostkey methods: ssh-rsa, ssh-dss
-    Cipher methods: aes256-cbc, rijndael-cbc@lysator.liu.se, aes192-cbc, aes128-cbc, blowfish-cbc, arcfour, cast128-cbc, 3des-cbc, none*
-    Compression methods: zlib, none
-    MAC methods: hmac-sha1, hmac-sha1-96, hmac-ripemd160, hmac-ripemd160@openssh.com none*
-    *Cipher/MAC "none" is disabled by default for security purposes,
-     Use --enable-crypt-none and/or --enable-mac-none with ./configure to enable
+NEWS is now generated from git and put into the release tarballs.
diff --git a/git2news.pl b/git2news.pl
new file mode 100755
index 0000000..7da4709
--- /dev/null
+++ b/git2news.pl
@@ -0,0 +1,76 @@
+#!/usr/bin/perl
+
+# git log --pretty=fuller --no-color --date=short --decorate=full
+
+my @mname = ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
+             'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' );
+
+sub nicedate {
+    my ($date)=$_;
+
+    if($date =~ /(\d\d\d\d)-(\d\d)-(\d\d)/) {
+        return sprintf("%d %s %4d", $3, $mname[$2-1], $1);
+    }
+    return $date;
+}
+
+print 
+'   Changelog for the libssh2 project. Generated with git2news.pl
+';
+
+my $line;
+my $tag;
+while(<STDIN>) {
+    my $l = $_;
+
+    if($l =~/^commit ([[:xdigit:]]*) ?(.*)/) {
+        $co = $1;
+        my $ref = $2;
+        if ($ref =~ /refs\/tags\/(libssh2-|VERSION\.)([0-9._]*)/) {
+            $tag = $2;
+        } else {
+            $tag = '';
+        }
+    }
+    elsif($l =~ /^Author: *(.*) +</) {
+        $a = $1;
+    }
+    elsif($l =~ /^Commit: *(.*) +</) {
+        $c = $1;
+    }
+    elsif($l =~ /^CommitDate: (.*)/) {
+        $date = nicedate($1);
+    }
+    elsif($l =~ /^(    )(.*)/) {
+        my $extra;
+        if ($tag) {
+            # Version entries have a special format
+            print "\nVersion " . $tag." ($date)\n";
+            $oldc = "";
+            $tag = "";
+        }
+        if($a ne $c) {
+            $extra=sprintf("\n- [%s brought this change]\n\n  ", $a);
+        }
+        else {
+            $extra="\n- ";
+        }
+        if($co ne $oldco) {
+            if($c ne $oldc) {
+                print "\n$c ($date)$extra";
+            }
+            else {
+                print "$extra";
+            }
+            $line =0;
+        }
+
+        $oldco = $co;
+        $oldc = $c;
+        $olddate = $date;
+        if($line++) {
+            print "  ";
+        }
+        print $2."\n";
+    }
+}
diff --git a/maketgz b/maketgz
index ab6656f..dee14ef 100755
--- a/maketgz
+++ b/maketgz
@@ -63,6 +63,13 @@
   automake --include-deps Makefile >/dev/null
 fi
 
+#######################################################################
+#
+# Generate the changelog
+#
+echo "generate NEWS"
+git log --pretty=fuller --no-color --date=short --decorate=full -1000 | ./log2changes.pl > NEWS.dist
+
 ############################################################################
 #
 # Now run make dist to generate a tar.gz archive