forked from aria2/aria2
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
9a164bb
commit 51bbdbb
Showing
1 changed file
with
84 additions
and
131 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |