Skip to content

Commit

Permalink
Update NEWS
Browse files Browse the repository at this point in the history
  • Loading branch information
tatsuhiro-t committed Sep 8, 2013
1 parent 9a164bb commit 51bbdbb
Showing 1 changed file with 84 additions and 131 deletions.
215 changes: 84 additions & 131 deletions NEWS
Original file line number Diff line number Diff line change
@@ -1,182 +1,135 @@
aria2 1.17.1
aria2 1.18.0
============

Release Note
------------

This release adds large file support for Android build and libuv
support for event polling mechanism. AppleTLS now supports Snow
Leopard (10.6). The experimental libaria2 C++ library API was added.
This release changes the default disk cache size to 16 MiB. To change
the default size, --with-disk-cache configure option was added. Now
used URIs are also saved by --save-session option. The control file is
now always saved if --force-save is given. The ctrl-c handling on
Mingw build was improved. The internal intl library is no longer
supplied. From this release, C++11 compiler is required to build aria2
executable. For gcc, at least 4.6.3 is required.

Changes
-------

* Add code to detect rst2html.py or rst2html
* Use AM subdir-objects

* AppleTLS: Properly support Snow Leopard (10.6)
Doing so in AM_INIT_AUTOMAKE seems to be the most compatible way of
doing so.

Tested on 10.6.8 + XCode 4.2 (llvm-gcc-4.2, clang)
Closes GH-120

Contributed by Nils Maier
* AM_SILENT_RULES([yes]) with backwards-compatiblity

* Enable multicast loopback in BitTorrent local peer discovery
Supported since automake-1.11. There is no point in having the very
verbose compile stuff running about, which cannot even silenced
properly with `make -s` by default. Otherwise, `make V=1` or
`--disable-silent-rules` are your friends

* Enable TLS1.1 with gnutls build
* Fix automake-1.14 am_aux_dir

* Support off64_t for Android build
AC_USE_SYSTEM_EXTENSIONS will cause AC_PROG_CC, which is overridden
by automake-1.14, which will then init (part) of automake, in
particular am_aux_dir expansion, which in turn relies on ac_aux-dir,
which is not initialized at this point, and thus: certain doom (or
fun, depending on your POV and mood :p)

Android NDK R8e does not provide ftruncate64, but bionic has the
assembler code to access kernel function. We borrowed those
ftruncate64.S files from android source code repository. It turns
out that x86 asm.h in NDK R8e is also broken, so latest asm.h was
also borrowed.
Hence call AC_USE_SYSTEM_EXTENSIONS only after
AM_INIT_AUTOMAKE. This, of course, caused a lot of related macro
shuffling.

* Check zlib availability usin AC_CHECK_LIB
Tested against automake-1.10 (OSX Lion/XCode version) and
automake-1.14 (homebrew version)

This is workaround for zlib 1.2.3 which does not come with
pkg-config file.
* Require external gettext for --enable-nls

* Treat response is completed if EOF is received before streamFilter
completes
And stop using the internal flavor with ./intl

This fixes the error with web server which has buggy chunked
encoding.
* Make AX_CXX_COMPILE_STDCXX_11 test for -stdlib=libc++ via std::shared_ptr

* uitos: Fix off-by-one error bug
The clang shipped with OSX XCode and clangs not build enabling
libcpp, will default to the libstdc++ headers and lib installed on
the system. In the OSX case, that libstdc++ is the one bundles with
gcc-4.2, which is far too old to provide all required C++11 types,
such as std::shared_ptr. Hence, the C++11 check should try to
compile a program with a C++11 type and try -stdlib=libc++ if the
default lib fails to compile said program.

* Add configure support for linking tcmalloc_minimal and/or jemalloc
* Make the configure check for C++11 compiler mandatory

Both tcmalloc_minimal and jemalloc outperform the native malloc
implemention on Windows (MSVCRT) in terms of committed memory
consumption (~-30%) and performance (e.g. far less page faults,
~-60%), depending, of course, on the actual workload. The longer
the download queue, the bigger the impact ;)
Remove stray "dnl", so that mandatory actually works with (my)
autoreconf.

On *nix the picture is a little different... tcmalloc usually still
outperforms the native malloc implementation, but not that
significantly than on Windows. jemalloc however is only marginally
better than recent native Linux implementations, while it is already
used by some BSD as the native allocator.
* Always build doc/manual-src

tcmalloc is part of gperftools and very mature and tested by now. It
doesn't work on OSX in the default configuration, however.
http://code.google.com/p/gperftools/
Should sphinx-build be not available AND the man file not be prsent,
then just "touch" it into existence (and warn about that)

jemalloc is the default allocator at least on FreeBSD and NetBSD and
used in Firefox. http://www.canonware.com/jemalloc/index.html
* Win: Use SetConsoleCtrlHandler for SIGINT/SIGTERM

Contributed by Nils Maier
* Implement a simple resource lock (threading)

* Close GZipFiles in the d'tor
In this initial implementation Locks are no-ops on platforms other
than Windows.

Contributed by Nils Maier
* Check for sphinx-build during configure

* Add libaria2, C++ library interface to aria2
* Add --with-disk-cache configure option

The libaria2 is a C++ library and offers the core functionality of
aria2. The library takes care of all networking and downloading
stuff, so its usage is very straight forward right now. See
libaria2ex.cc in examples directory to see how to use API. By
default, libaria2 is not built. See libaria2 section in README to
how to enable it.
Enables packagers more fine grained control over the default value
without having to mess with config files.

The APIs in this release is considered experimental.
See GH-115

* Add missing check for sigaction
* Change defaults: Enable 16M disk cache by default.

* Fix cached data is not flushed when downloaded data is less than
16KiB
* Always save control file if --force-save is given

* LibUV: Implement LibuvEventPoll
* Set log level DEBUG for unittests

LibUV event will use the best available polling method on a system,
kind of like aria2 does already with the different *EventPoll
implementations. However, libuv may support different/newer polling
mechanisms; for example on Windows it will use IO Completion Ports
which are superior to select() ;)
* Check that C++ compiler supports override keyword

Contributed by Nils Maier
If the compiler supports override, define CXX11_OVERRIDE as
override, otherwise define it as empty. Use CXX11_OVERRIDE instead
of override.

* AppleTLS: Fix MessageDigestImpl

aria2 1.17.0
============

Release Note
------------

This release adds Mac OS X native SSL/TLS library support. The IPv6
asynchronous DNS is enabled by default and A/AAAA lookups are done in
parallel. The simple Happy Eyeballs algorithm was implemented to
mitigate long timeout when connecting to IPv6 host on dual-stack host.
--save-session option only saves the options specified by command-line
or RPC.

Changes
-------

* Updated Russian manual

Contributed by ITriskTI

* Updated Portuguese manual

Contributed by Gilberto dos Santos Alves

* Append --static to pkg-config arguments when ARIA2_STATIC=yes

* Save options directly specified for download in --save-session

This change makes --save-session save only options specified for
download, more specifically, options in command-line, -i file and
via RPC. The other options from conf file and default values are not
saved. This will drastically decrease the size of session file.

* Save URI returned only from FileEntry::getRemainingUris()

The currently used URIs are inserted back into remaining URI list in
FileEntry::putBackRequest(), which overlaps to some of the URIs in
spentUris_. If we save spent URIs, each time save is performed, the
number of URIs are increased due to this overlap. This change fixes
this bug.

* Print linked 3rd party libraries with version in `aria2c -v` output

* AppleTLS: Support credentials via KeyChain fingerprints

Contributed by Nils Maier
* AppleTLS: Fix session CFRelease stuff

* AppleTLS: Implement AppleTLS and Apple Message Digest
* Use AX_CXX_COMPILE_STDCXX_11 macro to detect C++0x/C++11 support in
compiler

Contributed by Nils Maier
* Require -std=c++11 and use std::shared_ptr instead of SharedHandle

* Use info level log for system trusted ca imports failure
* Join URI on redirect

This is because on some platforms (gnutls on cygwin for example),
library always fails for this function and getting ERROR every time
aria2c invoked is too hard.
* Send HAVE message to the peer which the piece is downloaded from

* Don't add Windows native DLLs for Cygwin build
Historically, aria2 did not send HAVE message to the peer which the
piece is coming from, thinking it is obvious that the peer knows we
have the piece. But it is not obvious if one piece is download from
more than 1 peers (e.g., end game mode). So it is better to send
HAVE to all peers connected.

* Remove deprecated options: --enable-direct-io and --metalink-servers
* Improvements to --follow-torrent=false documentation.

* Deprecate --enable-async-dns6
Patch from gt

The IPv6 asynchronous name resolver is enabled if the host has at
least one interface with IPv6 address configured (the loopback
address will not be counted), which is roughly the same behaviour of
the standard getaddrinfo(3). To disable IPv6 asynchronous name
resolver, use --disable-ipv6.
* SessionSerializer: Truly unique URIs

* Fix uninitialized UDPTrackerClient::numWatchers_
Before, only spent uris where sanitized not to be contained within
remaining uris. Change this so that each uri in the
union(remaining,spent) get saved once at most. The order of the
uris will won't be changed, with remaining uris going first followed
by spent uris.

* Implement simple Happy Eyeballs for HTTP/FTP downloads
Also avoid copying the uri std::strings around during dupe checking,
usually resulting in better performance regarding CPU and space.

* Parallel A and AAAA record lookups with c-ares
* Make getOption RPC method return option for stopped downloads

But we don't wait for AAAA query response if A query response has
been received. If we got IPv4 lookup response, we don't wait for
IPv6 lookup response. This is because DNS server may drop AAAA query
and we have to wait for the long time before timeout. We don't do
the inverse, because, based on todays deployment of DNS server,
almost all of them can respond A query just fine.
* SessionSerializer: Save spent URIs as well as remaining ones

0 comments on commit 51bbdbb

Please sign in to comment.