NEWS 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423
  1. aria2 1.16.4
  2. ============
  3. Release Note
  4. ------------
  5. This release fixes the bug that active downloads are not saved with
  6. --save-session-interval and the bug that aria2 hangs when size of
  7. download result exceeds its maximum. BitTorrent UDP tracker support
  8. was added. If the filename specified using --save-session ends with
  9. ".gz", aria2 stores the session file in gzipped form. The -i option
  10. can handle this gzipped file as well as plain text file. 1.15.2 based
  11. Portuguese translated manual was added.
  12. Changes
  13. -------
  14. * Make configure argument meaning more consistent and obvious.
  15. Most other software uses --disable/--without for features it does
  16. build or at least check by default.
  17. Change aria2 configure options so that:
  18. * --enable-*: do not build by default, unless --enable specified
  19. * --disable-*: check and build by default, unless --disable specified
  20. * --with-*: do not use by default, unless --with specified
  21. * --without-*: check and use by default, unless without specified
  22. Contributed by Nils Maier
  23. * Allow for out-of-tree Sphinx builds
  24. Contributed by Nils Maier
  25. * Bring back datetime in console log
  26. * Run checksum check if -V and -c are used and file is completed
  27. With -c option, aria2 can continue download after the existing file
  28. position. If it is not completed, then after completion aria2 runs
  29. checksum checking if available. But if existing file has already
  30. been completed, then CreateRequestCommand exits without issuing
  31. checksum checking. And aria2 treats it download error because it
  32. needs checksum verification but it has not been done. This change
  33. fixes this by properly checking download state and issue checksum
  34. checking before CreateRequestCommand.
  35. * Support for gzipped -i and --save-session
  36. Saved sessions may very large, as in hundreds and even thousands of
  37. megabyte when dealing with large queues. Add support to save and
  38. reload sessions to gzipped files, when libz is available.
  39. The session serializer will output gzipped contents when the file
  40. ends with .gz, while the input file reader (UriListParser) will
  41. accept whatever is thrown at it.
  42. Document -i/--save-session gzip behaviour
  43. Contributed by Nils Maier
  44. * Do not use a virtual varargs function
  45. This stuff breaks in some compiler (configurations)
  46. Contributed by Nils Maier
  47. * Check for sys/signal.h and/or signal.h
  48. mingw-w64 does not actually have sys/signal.h, while OSX currently
  49. has a broken signal.h Better check the presence of both and use
  50. sys/signal.h if present, else signal.h
  51. Contributed by Nils Maier
  52. * Hygiene: Fix some clang warnings, mostly unused private members.
  53. Contributed by Nils Maier
  54. * Fix bustage on OSX with ./configure CC=cc CXX=c++ (clang)
  55. Contributed by Nils Maier
  56. * Do not reference RequestGroups longer than necessary
  57. There is an initial vector of SharedHandle<RequestGroup> to seed the
  58. DownloadEngine. This vector was however kept alive via main.cc ->
  59. MultiUrlRequestInfo up until the program exits, hence effetively
  60. leaking all initial RequestGroups and associated object instances.
  61. Hence, as a matter of dirty-workaround, drop the contents of that
  62. initial vector as soon as it is not required any longer.
  63. Contributed by Nils Maier
  64. * Detect console with on Windows
  65. Contributed by Nils Maier
  66. * Fix infinite loop when size of downloadResults_ exceeds maxDownloadResult_
  67. * Support BitTorrent UDP tracker
  68. It shares UDP listening port with IPv4 DHT. At the moment, in order
  69. to enable UDP tracker support, enable IPv4 DHT.
  70. * Show correct end byte in error message when HTTP response range is not ok
  71. Previously, unless HTTP pipelining is enabled, end byte in that
  72. message is always 0. With this change, it shows correct end byte
  73. sent to the HTTP server.
  74. * Add Portuguese manual
  75. This translation is based on aria2 version 1.15.2 manual.
  76. Contributed by Gilberto dos Santos Alves
  77. * Fix bug that active downloads are not saved with --save-session-interval
  78. aria2 1.16.3
  79. ============
  80. Release Note
  81. ------------
  82. This release fixes the bug which causes random crash. It also fixes
  83. socket option setting failure on Windows platform.
  84. Changes
  85. -------
  86. * Fix failure to set TCP_NODELAY on Windows
  87. On Windows setting TCP_NODELAY after non-blocking connect fails at
  88. least on Windows 7.
  89. * Fix invalid iterator handling when deleting RequestGroup
  90. aria2 1.16.2
  91. ============
  92. Release Note
  93. ------------
  94. This release fixes the bug which causes long running BitTorrent
  95. download to stall. The several new options have been added.
  96. Changes
  97. -------
  98. * Check SSL_OP_NO_COMPRESSION is available before using it
  99. * Fix bug returnPeer is not called if sequence_ == INITIATOR_SEND_KEY
  100. In InitiatorMSEHandshakeCommand, when aborting connection, we must
  101. return peer to the PeerStorage. But it is not done if sequence_ is
  102. INITIATOR_SEND_KEY. This causes stale Peer objects whose usedBy()
  103. returns true eventually occupies peer list and aria2 cannot make any
  104. connections.
  105. * Accept k and m as well as K and M in util::getRealSize()
  106. * mingw32: Make NTFS sparse file on --file-allocation=trunc
  107. * Added --save-session-interval option
  108. --save-session-interval option saves error/unfinished downloads to a
  109. file specified by --save-session option every SEC seconds. If 0 is
  110. given, file will be saved only when aria2 exits.
  111. * Use request URI as referer if --referer="*" is given
  112. * Log warn if unknown option is found in config file or -i file
  113. * Added --console-log-level option
  114. --console-log-level option sets log level to output to console.
  115. aria2 1.16.1
  116. ============
  117. Release Note
  118. ------------
  119. This release adds the ability to persist GID across sessions. The GID
  120. will be saved with --save-session. There are several restrictions how
  121. GID is persisted. See the manual for details. For this change, now GID
  122. is 64 bits binary data and represented by 16 characters hex string in
  123. RPC query. The disk cache feature was added, which may reduce disk
  124. activity. The console readout was redesigned. The warning displayed
  125. when --file-allocation=falloc is used on MinGW32 build was removed as
  126. a bug.
  127. Changes
  128. -------
  129. * mingw32: Re-open files with read-only mode enabled on seeding
  130. On Mingw32 build, if aria2 opens file with GENERIC_WRITE access
  131. right, some programs cannot open the file aria2 is seeding. To avoid
  132. this situation, re-open files with read-only enabled when seeding is
  133. about to begin.
  134. * Save gid option with --save-session option
  135. * Added --gid option
  136. This option sets GID manually. aria2 identifies each download by the
  137. ID called GID. The GID must be hex string of 16 characters, thus
  138. [0-9a-zA-Z] are allowed and leading zeros must not be stripped. The
  139. GID all 0 is reserved and must not be used. The GID must be unique,
  140. otherwise error is reported and the download is not added. This
  141. option is useful when restoring the sessions saved using
  142. --save-session option. If this option is not used, new GID is
  143. generated by aria2.
  144. * Use 64 bits random bytes as GID
  145. This change replaces the current 64 bit sequential GID with 64 bits
  146. random bytes GID in an attempt to support persistent
  147. GID. Internally, the GID is stored as uint64_t. For human
  148. representation and RPC interface, GID is represented as 16 bytes hex
  149. string. For console readout, 16 bytes are too long, so it is
  150. abbreviated to first 6 bytes. When querying GID in RPC calls, user
  151. can speicfy the prefix of GID as long as the prefix is shared by
  152. more than 1 GID entries.
  153. * Fixed BitfieldMan::getOffsetCompletedLength overflow on 32-bit systems
  154. * mingw32: Use HANDLE only for MinGW32 build
  155. * Changed console readout, making it more compact
  156. "SIZE:" is removed because it is obvious. SEEDING, SEED, SPD and UP
  157. are now replaced with SEED, SD, DL and UL respectively.
  158. * Compact readout when more than 1 simultaneous downloads are going on
  159. If more than 1 simultaneous downloads are going on, use more compact
  160. format in readout. Currently, at most 5 download stats are
  161. displayed.
  162. util::abbrevSize() is rewritten to support "Gi" unit and provides
  163. more compact abbreviation.
  164. * Console color output
  165. Log level and download result string is now colored.
  166. * Logger: Simplified console output and change level format in log
  167. The date and time are now removed from console output. The log
  168. level is now formatted as "[LEVEL]".
  169. * Start to find faster host before the number of missing segments becomes 1
  170. The old implementation starts to find faster host when the number of
  171. missing segment becomes 1. Because of --min-split-size option,
  172. before the number of missing segment becomes 1, the number of
  173. connection becomes 1 and it can be slow. In this case, we have to
  174. wait until the last segment is reached. The new implementation
  175. starts to find faster host when the remaining length is less than
  176. --min-split-size * 2, to mitigate the problem stated above.
  177. * Removed warning when --file-allocation=falloc is used in MinGW32 build
  178. The warning was just a mistake. SetFilePointerEx + SetEndOfFile
  179. actually allocate disk space.
  180. * Write data in 4K aligned offset in write with disk cache enabled
  181. This greatly reduces disk activity especially on Win + NTFS. Not so
  182. much difference on Linux.
  183. * mingw32: Removed FSCTL_SET_SPARSE set
  184. * Added --disk-cache option
  185. This option enables disk cache. If SIZE is 0, the disk cache is
  186. disabled. This feature caches the downloaded data in memory, which
  187. grows to at most SIZE bytes. The cache storage is created for aria2
  188. instance and shared by all downloads. The one advantage of the disk
  189. cache is reduce the disk seek time because the data is written in
  190. larger unit and it is reordered by the offset of the file. If the
  191. underlying file is heavily fragmented it is not the case.
  192. aria2 1.16.0
  193. ============
  194. Release Note
  195. ------------
  196. This release adds SSL/TLS encryption support in RPC transport. The new
  197. RPC method aria2.appendUri is added, which is a wrapper to
  198. aria2.changeUri. The Content-Disposition parser is now RFC 6266
  199. conformant. The resource leak in XmlParser, JSON and Bencode parser
  200. was fixed. The uploaded data size calculation bug was fixed. For
  201. MinGW32 build, files are now opened with read/write shared mode.
  202. Changes
  203. -------
  204. * mingw32: Open file using _wsopen and added --enable-mmap support
  205. I tried CreateFile but the subsequent ReadFile fails with Access
  206. Denied if sparse file is read on NTFS. I mostly reverted previous
  207. changes and use _wsopen with read/write share enabled instead of
  208. CreateFile.
  209. This change also includes --enable-mmap support for MinGW32
  210. build. Memory mapped file may be useful for 64-bits OS and lots of
  211. RAM. Currently, FlushViewOfFile is not called during the download,
  212. so it is slightly vulnerable against sudden power loss. I found lots
  213. of read when resuming download due to page fault. So for now it is
  214. useful for the initial download. I recommend not to use
  215. --file-allocation=prealloc with --enable-mmap for MinGW32, because
  216. it triggers page faults even in the initial download. Anyway, the
  217. option is experimental.
  218. * Removed PO files and generated aria2.pot from repository
  219. Currently, message translation is done at launchpad. All PO files
  220. can be exported from there. The merge process from launchpad is done
  221. when new release. First download export file from launchpad And use
  222. import-po script to import PO files into po directory.
  223. * Set F_GLOBAL_NOCACHE for Mac OS X
  224. * Enabled TCP_NODELAY
  225. * Don't use AC_FUNC_MMAP
  226. Don't use AC_FUNC_MMAP becaue it fails on some platforms (e.g.,
  227. OpenWRT) which have mmap and it works in the way we use in aria2.
  228. Instead use mmap in AC_CHECK_FUNCS list.
  229. * Added --force-save option.
  230. --force-save option saves download with --save-session option even
  231. if the download is completed or removed. This may be useful to save
  232. BitTorrent seeding which is recognized as completed state. The
  233. default value is false.
  234. * Get the correct uploaded data size
  235. Subtract msgHdrLen_ from writtenLength to get the uploaded data
  236. size. Without this correction, the seeder assumes it has uploaded
  237. more data than it actually has.
  238. * Made --http-no-cache false by default
  239. * Fixed memory leak in AsyncNameResolver
  240. * Fixed resource leak in XmlParser and GenericParser
  241. * Reset iostream format state
  242. * gnutls: Added more status checking when verifying peer
  243. * Content-Disposition parser conforming to RFC 6266.
  244. RFC 2231 Continuation is not supported.
  245. * Reworked download/upload statistics calculation
  246. The old implementation calculates download/upload statistics for a
  247. RequestGroup by summing up all PeerStat objects. For global
  248. statistics, those are summed together. This clearly incurs runtime
  249. penalty and we introduced some kind of caching which updates
  250. statistics every 250ms but it did not work right.
  251. This change removes all these aggregation code, and instead makes
  252. RequestGroup and RequestGroupMan objects hold NetStat object and
  253. download/upload bytes are directly calculated by thier own NetStat.
  254. This is far more simplar than the old way and less runtime penalty
  255. and brings more accuracy.
  256. * Added --rpc-save-upload-metadata option
  257. If true is given, which is default, save the uploaded torrent or
  258. metalink metadata in the directory specified by --dir option. The
  259. filename consists of SHA1-hash hex string of metadata plus
  260. extension. For torrent, the extension is '.torrent'. For metalink,
  261. it is '.meta4'. If false is given to this option, the downloads
  262. added by aria2.addTorrent or aria2.addMetalink will not be saved by
  263. --save-session option.
  264. * Perform SSL/TLS handshake after checking whether connection is established
  265. * Fixed bug that --enable-mmap won't work if MultiDiskAdaptor is used
  266. * RPC over SSL/TLS transport
  267. To enable RPC over SSL/TLS, specify server certificate and private
  268. key using --rpc-certificate and --rpc-private-key options and enable
  269. --rpc-secure option. After the encryption is enabled, use https and
  270. wss scheme to access RPC server.
  271. * aria2rpc: Added appendUri command
  272. This command calls aria2.changeUri(GID, fileIndex, [], [URI,...])
  273. internally.
  274. * Don't send Proxy-Connection header field
  275. * Don't set SNI hostname if it does not include "." for GNUTLS
  276. * Disable SSL/TLS compression with OpenSSL
  277. * Pause download even if download is completed
  278. This allows to pause and unpause BitTorrent seed.
  279. * Use execlp() instead of execl()