aria2 is a lightweight multi-protocol & multi-source, cross platform download utility operated in command-line. It supports HTTP/HTTPS, FTP, SFTP, BitTorrent and Metalink.
This release fixes the bug that file name is not logged with --conditional-get option is used. The new option --keep-unfinished-download-result was added to keep incomplete downloads in memory regardless of --max-download-result so that we can save those downloads with --save-session option. This option is enabled by default.
This release
Restore LTLIBINTL in src/Makefile.am
Patch from Juan Francisco Cantero Hurtado
Add --keep-unfinished-download-result option
This option keeps unfinished download results even if doing so exceeds --max-download-result. This is useful if all unfinished downloads must be saved in session file (see --save-session option). Please keep in mind that there is no upper bound to the number of unfinished download result to keep. This option is enabled by default.
Fix -Wexpansion-to-defined warning with clang-3.9
The error message was:
warning: macro expansion producing 'defined' has undefined behavior [-Wexpansion-to-defined]
http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20160118/147239.html
Fix bug that file name is not logged with --conditional-get
GH-742
This release fixes bug which may cause crash if UDP tracker is used. It adds new option --save-not-found which prevents downloads failed by "not found" error from being saved in session file.
Hard-disable openssl in osx build
Closes #739
Fix possible cause of crash if UDP tracker is used
Remove custom ftruncate64 for Android
The latest NDK versions support ftruncate64, so building a local copy of ftruncate64 is no longer needed.
Also, the arm and x86 builds of ftruncate64 failed when targeting API level 21 or higher, as they include <linux/err.h> which are not present starting from API level 21.
Patch from Fredrik Fornwall
Fix typo found by Debian's Lintian
Add --save-not-found option
Update comment to match code
Patch from Torbjörn Lönnemark
WinTLS: Better errors (from WSA)
Compile with openssl 1.1.0
This release fixes the bug that causes assertion failure during BitTorrent downloads.
Make assertion hold
If we have peer which is already used, make addAndCheckoutPeer() fail. If peer is in unused list, first remove the old entry, and then add new one. This would make assertion in ~DefaultPeerStorage hold.
This release fixes linking bug with libaria2 enabled. It also changes how aria2 renames the download file name when the same name already exists in file system. In summary, we use numbers before extension (e.g., foo.1.txt), rather than after extension (e.g., foo.txt.1). Now --seed-time option can take floating point number to specify fractional minutes.
aria2mon: Replace client.call with local method
Patch from Florian Gamböck
Reorder a note section in aria2c.rst
Patch from Artur Petrov
Closes GH-722
bash_completion: Add missing options which takes one of pre-defined values
Replace "/" with "-" in magnet dn name when used as in-memory download name
Fix Dockerfile.raspberrypi to correctly decompress expat archive
Patch from Char
Enable ccache in travis-ci
Speeds up the build most of the time.
Closes GH-710
Enable OSX/macOS build for travis
Closes GH-711 Closes GH-666
Better auto-renaming
Up until now aria2 file auto renaming worked by just appending a new unique number to the file path, behind the file name extension, if any, changing what most other programs consider the file extension in the process. Now, aria2 will attempt to insert the number before the file extension, leaving the extension intact, so that e.g. a ".jpg" still is a ".jpg" file and opens in your configured image viewer when clicking it. If a file has no extension (incl. so called "dot files"), the number will be appended to the file name as usual.
Note: This is a potentially breaking change that might break third party scripts that rely on aria2 auto file renaming producing a certain format for renamed files. Please fix your scripts accordingly.
Closes GH-709
Log number of items loaded from input file
Link external libraries to libaria2 with --enable-libaria2
Fixes GH-707
Allow seconds for seed-time (fractional minutes)
Patch from Sébastien Cabaniols
Closes GH-704
This release fixes many bugs reported so far. There is no new functionality in this release. We have fixed many performance issues in BitTorrent downloads.
Update third-party libraries for binary releases
Send have message without too much delay
Also send bitfield rather than have messages if bitfield message is equal to or less than the sum of have messages which otherwise would be sent.
Fix bug that causes bogus EOF connection failure in BitTorrent downloads
Fix frequent interested/not interested message transmission
Fix frequent choke/unchoke message transmission
Try to use available URI if all pooled requests are sleeping
Update expat in OSX build
Closes GH-694
aria2mon: Add --secret option
Fixes GH-700
Set server status error on network failure in server performance profile
Disable AI_ADDRCONFIG if no IPv4/IPv6 address is configured for any interface
Fixes GH-698
Russian manual: Update aria2c.rst
Patch from ITriskTI
Apply --retry-wait on 503 only
Ensure that lowest speed check is done even when download speed is 0
Fixes GH-686
Document that -o is always relative to -d option
Fixes GH-684
Allow larger ut_metadata size
Fixes GH-681
mingw: Change FD_SETSIZE to 32768
Fixes GH-678
Fix compile error on OS X
Fixes GH-683
This release fixes several bugs. The new functionality is that when options which is only applicable in waiting state are submitted to an active download via RPC, the download is now automatically restarted to reflect the changes. Previously, those options were just ignored.
BitTorrent: Allow 32KiB request
It looks like the 32KiB is the default request size of python bittorrent client. Previously, aria2 only allowed maximum 16KiB request.
Don't unchoke peer which is not interested in us
Fix bug that evaluation of Peer::amChoking is negated
Faster seed/download on fast connection
Increase DHT task concurrency to 15
Fix GH-653
Fixed mmap failure check with MAP_FAILED flag
Fix GH-662
Patch from suzker
Added file size overflow check for mmap on 32bit os
Fix GH-662
Patch from suzker
Use standard percent-encode for tracker request query
Fix GH-659
mingw32: Gain privilege before opening files
Fix GH-657
Restart active download to apply previously not applicable options
Previously, we categorized options that can be used in aria2.changeOption RPC method into 2 categories. The options in one category can be applied on the fly, meaning that download continues to be active while applying options. Another category includes options which are only applicable when downloads are waiting or paused.
In this change, when active download is ordered to change options which only applicable in waiting or paused state, it is now paused, and then automatically restarted. Although we have limited number of download concurrency, the pause and restart is done atomically, and the download is inserted at the front of the queue, it is picked up immediately if the concurrency regulation allows.
Fix GH-640 and GH-644
This release fixes several bugs reported by users, and adds several new features. Read the following section for details.
Simplify cache write
The previous cache write routine was too complex. I'm sure I can rewrite it to more elegantly. But the primary motivation of this complex logic is for disk activity reduction on Windows 7, and I observed it on my old IDE disk. I checked it again recently, and there is no difference between with and without this complex logic. For this reason, it was removed. Will revert this change if many of users are not happy with this.
Allow subsecond value in ns cookie.txt file's expiry time field
Fixes GH-655
Adjust chromium cookie time
import-po: iterate on glob, not ls output
Patch from Mingye Wang
Add --stderr option to redirect all stdout log output to stderr
Fixes GH-638
Add "hide" to --download-result option
Fixes GH-639
Fix downloaded metaurl torrent filename
Add a little bit of color to have a better visual of important informations
Patch from rotor
Update README URLs based on HTTP redirects
Patch from ReadmeCritic
Relocate from github.com/tatsuhiro-t/aria2 to github.com/aria2/aria2
Fixes GH-602
mingw: Defer the falloc warning until falloc is specified by option
Fixes GH-594
Add bittorrent key to aria2.tellStopped status
Fixes GH-612
Addsystem.listNotifications RPC method
Merges GH-620
Patch from Sonny Piers
Report CheckIntegrity info in tellStatus
Closes GH-561
Patch from Kurt Kartaltepe
This release adds new feature that manages the number of concurrent downloads dynamically. --stream-piece-selector option gets new value "random" which randomizes the piece selection for HTTP/FTP downloads. This effectively randomizes the order of files on multi-file Web Seeding. Now all contributor's names are in AUTHORS file. Previously, aria2 shows error when it sees floating point number in a torrent file because torrent file specification does not allow floating point number. In this release, they are just ignored, and aria2 continues to parse the rest of the torrent file as if there is nothing wrong.
Add description about possible fragmentation with --file-allocation=trunc
Make single-entry metalink download with multi-file torrent work
Add all contributor's names in AUTHORS
Ignore floating number in torrent file
Added support for a dynamic management of the number of concurrent downloads as a function of the overall bandwidth observed
This change adds --optimize-concurrent-downloads option.
Patch from oliviercommelarbre
Add --stream-piece-selector=random
This release fixes several bugs, see the Changes for details. We added "following" key to the response of aria2.tellStatus RPC method as reverse link for followedBy.
SessionSerializer: Fix bug that pause=true is added to wrong item
This change also defers writing metadata download to the location where first its follower download is written.
Add "following" to aria2.tellStatus response key as reverse link for followedBy
mingw: Add warning for falloc
Update ciphers in AppleTLS
Also enable fast start while at it
OSX: Enable libssh2 and sftp
Closes GH-468
Update OSX dependencies
Closes GH-466
Fix compile error without TLS support
Add support for using gnutls system wide crypto policy
Patch from Athmane Madjoudj